diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..bdc4c1e --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +weights/** filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md index 428ad18..4073c97 100644 --- a/README.md +++ b/README.md @@ -22,13 +22,19 @@ If original repository is updated, this one will become obsolete. - Updated dependencies to @tensorflow/tfjs since backends were removed from @tensorflow/tfjs-core - Removed following models as they are either obsolete or non-functional with tfjs 2.0+ - - ssdMobilenetv1: Relies on batchNorm() function which is made obsolete in tfjs 2.0 - mtcnn: Mostly obsolete - tinyYolov2: Non-functional since weights are missing -Which means the only valid model is **tinyFaceDetector** +- Updated newer version for mobileNetv1 model from + Note that updated model was in TF Frozen format and needed to be converted to TFJS Graph format -Due to reduced code and changed build process, resulting bundle is about **2.5x smaller** than the original! +Which means valid models are **tinyFaceDetector** and **mobileNetv1** + +Due to reduced code and changed build process, resulting bundle is about **2x smaller** than the original! + +## Weights + +Pretrained models are includes in `./weights` and uplodaed using GIT LFS support. ## Build @@ -44,3 +50,24 @@ Which will compile everything in `./src` into `./build` and create both standard ## Documentation For documentation refer to original project + +## Todo + +face-api.js mobilenetv1 model actuall comes from which has been updated for tfjs@2.0 compatibility. +unfortunately, model provided at is in frozen format, so needed to convert it to tfjs graph model: + +> summarize_graph \ + --in_graph="./frozen_inference_graph_face.pb" \ + --print_structure=false +Found 4 possible outputs: (name=detection_boxes, op=Identity) (name=detection_scores, op=Identity) (name=detection_classes, op=Identity) (name=num_detections, op=Identity) +> tensorflowjs_converter \ + --input_format tf_frozen_model \ + --output_format tfjs_graph_model \ + --skip_op_check \ + --strip_debug_ops=True \ + --weight_shard_size_bytes 4194304 \ + --output_node_names detection_boxes,detection_scores,num_detections \ + ./frozen_inference_graph_face.pb \ + ./converted/ +> cat converted/model.json | sed 's/group1-/ssd_mobilenetv1_model-/g' > converted/ssd_mobilenetv1_model-weights_manifest.json +> rm converted/model.json diff --git a/build/NeuralNetwork.d.ts.map b/build/NeuralNetwork.d.ts.map index 613b14f..8d88bd8 100644 --- a/build/NeuralNetwork.d.ts.map +++ b/build/NeuralNetwork.d.ts.map @@ -1 +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 +{"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;IAKhC,SAAS,CAAC,KAAK,EAAE,MAAM;IAHnC,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAY;IACrD,SAAS,CAAC,cAAc,EAAE,YAAY,EAAE,CAAK;gBAEvB,KAAK,EAAE,MAAM;IAEnC,IAAW,MAAM,IAAI,UAAU,GAAG,SAAS,CAAwB;IACnE,IAAW,aAAa,IAAI,YAAY,EAAE,CAA+B;IACzE,IAAW,QAAQ,IAAI,OAAO,CAAyB;IAEhD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM;IAK9C,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM;IAM1D,YAAY;;;;IAOZ,kBAAkB;;;;IAIlB,eAAe;;;;IAIf,QAAQ;IAMR,MAAM;IAQN,OAAO,CAAC,gBAAgB,GAAE,OAAc;IAUxC,eAAe,IAAI,YAAY;IAQzB,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IASpE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IASnC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAoB/C,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc;IAU9C,cAAc,CAAC,OAAO,EAAE,YAAY;IAU3C,OAAO,CAAC,oBAAoB;IAqB5B,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 bc9b3cb..274c0d8 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/dom/loadWeightMap.d.ts.map b/build/dom/loadWeightMap.d.ts.map index 7bae637..1df48d9 100644 --- a/build/dom/loadWeightMap.d.ts.map +++ b/build/dom/loadWeightMap.d.ts.map @@ -1 +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 +{"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,CAK5B"} \ No newline at end of file diff --git a/build/dom/loadWeightMap.js b/build/dom/loadWeightMap.js index 4791577..ed34fdc 100644 --- a/build/dom/loadWeightMap.js +++ b/build/dom/loadWeightMap.js @@ -4,6 +4,7 @@ import { fetchJson } from './fetchJson'; export async function loadWeightMap(uri, defaultModelName) { const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName); const manifest = await fetchJson(manifestUri); + console.log(typeof manifest, manifest); return tf.io.loadWeights(manifest, modelBaseUri); } //# sourceMappingURL=loadWeightMap.js.map \ No newline at end of file diff --git a/build/dom/loadWeightMap.js.map b/build/dom/loadWeightMap.js.map index 1ab9647..4dac605 100644 --- a/build/dom/loadWeightMap.js.map +++ b/build/dom/loadWeightMap.js.map @@ -1 +1 @@ -{"version":3,"file":"loadWeightMap.js","sourceRoot":"","sources":["../../src/dom/loadWeightMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAuB,EACvB,gBAAwB;IAExB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;IAEzE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAA8B,WAAW,CAAC,CAAA;IAE1E,OAAO,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;AAClD,CAAC"} \ No newline at end of file +{"version":3,"file":"loadWeightMap.js","sourceRoot":"","sources":["../../src/dom/loadWeightMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAuB,EACvB,gBAAwB;IAExB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;IACzE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAA8B,WAAW,CAAC,CAAA;IAC1E,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;AAClD,CAAC"} \ No newline at end of file diff --git a/build/euclideanDistance.d.ts.map b/build/euclideanDistance.d.ts.map index 84007a7..a1c4064 100644 --- a/build/euclideanDistance.d.ts.map +++ b/build/euclideanDistance.d.ts.map @@ -1 +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 +{"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,UAY7F"} \ No newline at end of file diff --git a/build/euclideanDistance.js b/build/euclideanDistance.js index f8056d8..04e3ca0 100644 --- a/build/euclideanDistance.js +++ b/build/euclideanDistance.js @@ -1,7 +1,6 @@ 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 f503ad4..0f5a0d0 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,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 +{"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 diff --git a/build/globalApi/DetectFacesTasks.d.ts.map b/build/globalApi/DetectFacesTasks.d.ts.map index 6bf3cfc..10a3650 100644 --- a/build/globalApi/DetectFacesTasks.d.ts.map +++ b/build/globalApi/DetectFacesTasks.d.ts.map @@ -1 +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 +{"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;AAKnC,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,oBAAkD;CAIxE;AAED,qBAAa,kBAAmB,SAAQ,mBAAmB,CAAC,aAAa,EAAE,CAAC;IAE7D,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAuB5C,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/DetectFacesTasks.js b/build/globalApi/DetectFacesTasks.js index 2aa9b62..f10628e 100644 --- a/build/globalApi/DetectFacesTasks.js +++ b/build/globalApi/DetectFacesTasks.js @@ -1,12 +1,14 @@ import { extendWithFaceDetection } from '../factories/WithFaceDetection'; +import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options'; import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions'; +import { TinyYolov2Options } from '../tinyYolov2'; import { ComposableTask } from './ComposableTask'; import { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks'; import { nets } from './nets'; import { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask'; import { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask'; export class DetectFacesTaskBase extends ComposableTask { - constructor(input, options = new TinyFaceDetectorOptions()) { + constructor(input, options = new SsdMobilenetv1Options()) { super(); this.input = input; this.options = options; @@ -17,7 +19,11 @@ export class DetectAllFacesTask extends DetectFacesTaskBase { const { input, options } = this; const faceDetectionFunction = options instanceof TinyFaceDetectorOptions ? (input) => nets.tinyFaceDetector.locateFaces(input, options) - : null; + : (options instanceof SsdMobilenetv1Options + ? (input) => nets.ssdMobilenetv1.locateFaces(input, options) + : (options instanceof TinyYolov2Options + ? (input) => nets.tinyYolov2.locateFaces(input, options) + : null)); if (!faceDetectionFunction) { throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options'); } diff --git a/build/globalApi/DetectFacesTasks.js.map b/build/globalApi/DetectFacesTasks.js.map index 4abdb78..73f1afe 100644 --- a/build/globalApi/DetectFacesTasks.js.map +++ b/build/globalApi/DetectFacesTasks.js.map @@ -1 +1 @@ -{"version":3,"file":"DetectFacesTasks.js","sourceRoot":"","sources":["../../src/globalApi/DetectFacesTasks.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"DetectFacesTasks.js","sourceRoot":"","sources":["../../src/globalApi/DetectFacesTasks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAqB,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAC;AAG/G,MAAM,OAAO,mBAA6B,SAAQ,cAAuB;IACvE,YACY,KAAgB,EAChB,UAAgC,IAAI,qBAAqB,EAAE;QAErE,KAAK,EAAE,CAAA;QAHG,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAAoD;IAGvE,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,mBAAoC;IAEnE,KAAK,CAAC,GAAG;QAEd,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QAE/B,MAAM,qBAAqB,GAAG,OAAO,YAAY,uBAAuB;YACtE,CAAC,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;YACzE,CAAC,CAAC,CACA,OAAO,YAAY,qBAAqB;gBACtC,CAAC,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;gBACvE,CAAC,CAAC,CACA,OAAO,YAAY,iBAAiB;oBAClC,CAAC,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;oBACnE,CAAC,CAAC,IAAI,CACT,CACJ,CAAA;QAEH,IAAI,CAAC,qBAAqB,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,qIAAqI,CAAC,CAAA;SACvJ;QAED,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IAEO,8BAA8B;QACpC,OAAO,IAAI,OAAO,CAA0B,KAAK,EAAC,GAAG,EAAC,EAAE;YACtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;YACnC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,uBAAuB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;QACjF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,iBAAiB,CAAC,qBAA8B,KAAK;QACnD,OAAO,IAAI,0BAA0B,CACnC,IAAI,CAAC,8BAA8B,EAAE,EACrC,IAAI,CAAC,KAAK,EACV,kBAAkB,CACnB,CAAA;IACH,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,6BAA6B,CACtC,IAAI,CAAC,8BAA8B,EAAE,EACrC,IAAI,CAAC,KAAK,CACX,CAAA;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,0BAA0B,CACnC,IAAI,CAAC,8BAA8B,EAAE,EACrC,IAAI,CAAC,KAAK,CACX,CAAA;IACH,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,mBAA8C;IAE/E,KAAK,CAAC,GAAG;QACd,MAAM,cAAc,GAAG,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,IAAI,6BAA6B,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACtD,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YACrC,IAAI,aAAa,CAAC,KAAK,GAAG,6BAA6B,CAAC,KAAK,EAAE;gBAC7D,6BAA6B,GAAG,aAAa,CAAC;aAC/C;QACH,CAAC,CAAC,CAAC;QACH,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAEO,6BAA6B;QACnC,OAAO,IAAI,OAAO,CAAwB,KAAK,EAAC,GAAG,EAAC,EAAE;YACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;YAClC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAK,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAChF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,iBAAiB,CAAC,qBAA8B,KAAK;QACnD,OAAO,IAAI,6BAA6B,CACtC,IAAI,CAAC,6BAA6B,EAAE,EACpC,IAAI,CAAC,KAAK,EACV,kBAAkB,CACnB,CAAA;IACH,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,gCAAgC,CACzC,IAAI,CAAC,6BAA6B,EAAE,EACpC,IAAI,CAAC,KAAK,CACX,CAAA;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,6BAA6B,CACtC,IAAI,CAAC,6BAA6B,EAAE,EACpC,IAAI,CAAC,KAAK,CACX,CAAA;IACH,CAAC;CACF"} \ No newline at end of file diff --git a/build/globalApi/allFaces.d.ts b/build/globalApi/allFaces.d.ts index 8bf0ad2..9673e4e 100644 --- a/build/globalApi/allFaces.d.ts +++ b/build/globalApi/allFaces.d.ts @@ -1,5 +1,7 @@ import { TNetInput } from '../dom'; import { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories'; import { ITinyYolov2Options } from '../tinyYolov2'; +export declare function allFacesSsdMobilenetv1(input: TNetInput, minConfidence?: number): Promise>>[]>; export declare function allFacesTinyYolov2(input: TNetInput, forwardParams?: ITinyYolov2Options): Promise>>[]>; -export declare const allFaces: typeof allFacesTinyYolov2; +export declare const allFaces: typeof allFacesSsdMobilenetv1; +//# sourceMappingURL=allFaces.d.ts.map \ No newline at end of file diff --git a/build/globalApi/allFaces.d.ts.map b/build/globalApi/allFaces.d.ts.map new file mode 100644 index 0000000..537c791 --- /dev/null +++ b/build/globalApi/allFaces.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"allFaces.d.ts","sourceRoot":"","sources":["../../src/globalApi/allFaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAqB,MAAM,eAAe,CAAC;AAKtE,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,SAAS,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAKzE;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAChB,aAAa,GAAE,kBAAuB,GACrC,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAKzE;AAED,eAAO,MAAM,QAAQ,+BAAyB,CAAA"} \ No newline at end of file diff --git a/build/globalApi/allFaces.js b/build/globalApi/allFaces.js index 1b9f4ce..556c384 100644 --- a/build/globalApi/allFaces.js +++ b/build/globalApi/allFaces.js @@ -1,11 +1,18 @@ +import { SsdMobilenetv1Options } from '../ssdMobilenetv1'; import { TinyYolov2Options } from '../tinyYolov2'; import { detectAllFaces } from './detectFaces'; // export allFaces API for backward compatibility +export async function allFacesSsdMobilenetv1(input, minConfidence) { + console.warn('allFacesSsdMobilenetv1 is deprecated and will be removed soon, use the high level api instead'); + return await detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {})) + .withFaceLandmarks() + .withFaceDescriptors(); +} export async function allFacesTinyYolov2(input, forwardParams = {}) { console.warn('allFacesTinyYolov2 is deprecated and will be removed soon, use the high level api instead'); return await detectAllFaces(input, new TinyYolov2Options(forwardParams)) .withFaceLandmarks() .withFaceDescriptors(); } -export const allFaces = allFacesTinyYolov2; +export const allFaces = allFacesSsdMobilenetv1; //# sourceMappingURL=allFaces.js.map \ No newline at end of file diff --git a/build/globalApi/allFaces.js.map b/build/globalApi/allFaces.js.map index 3d82c09..9b4b3fc 100644 --- a/build/globalApi/allFaces.js.map +++ b/build/globalApi/allFaces.js.map @@ -1 +1 @@ -{"version":3,"file":"allFaces.js","sourceRoot":"","sources":["../../src/globalApi/allFaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,iDAAiD;AAEjD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAgB,EAChB,gBAAoC,EAAE;IAEtC,OAAO,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAA;IACzG,OAAO,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;SACrE,iBAAiB,EAAE;SACnB,mBAAmB,EAAE,CAAA;AAC1B,CAAC;AAGD,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAA"} \ No newline at end of file +{"version":3,"file":"allFaces.js","sourceRoot":"","sources":["../../src/globalApi/allFaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAsB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,iDAAiD;AAEjD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAgB,EAChB,aAAsB;IAEtB,OAAO,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAA;IAC7G,OAAO,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAClG,iBAAiB,EAAE;SACnB,mBAAmB,EAAE,CAAA;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAgB,EAChB,gBAAoC,EAAE;IAEtC,OAAO,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAA;IACzG,OAAO,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;SACrE,iBAAiB,EAAE;SACnB,mBAAmB,EAAE,CAAA;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,sBAAsB,CAAA"} \ No newline at end of file diff --git a/build/globalApi/detectFaces.d.ts.map b/build/globalApi/detectFaces.d.ts.map index ab46855..0e3ef1e 100644 --- a/build/globalApi/detectFaces.d.ts.map +++ b/build/globalApi/detectFaces.d.ts.map @@ -1 +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 +{"version":3,"file":"detectFaces.d.ts","sourceRoot":"","sources":["../../src/globalApi/detectFaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,oBAAkD,GAC1D,oBAAoB,CAEtB;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,oBAAkD,GAC1D,kBAAkB,CAEpB"} \ No newline at end of file diff --git a/build/globalApi/detectFaces.js b/build/globalApi/detectFaces.js index dbd971d..94ae9c2 100644 --- a/build/globalApi/detectFaces.js +++ b/build/globalApi/detectFaces.js @@ -1,9 +1,9 @@ +import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options'; import { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks'; -import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions'; -export function detectSingleFace(input, options = new TinyFaceDetectorOptions()) { +export function detectSingleFace(input, options = new SsdMobilenetv1Options()) { return new DetectSingleFaceTask(input, options); } -export function detectAllFaces(input, options = new TinyFaceDetectorOptions()) { +export function detectAllFaces(input, options = new SsdMobilenetv1Options()) { return new DetectAllFacesTask(input, options); } //# sourceMappingURL=detectFaces.js.map \ No newline at end of file diff --git a/build/globalApi/detectFaces.js.map b/build/globalApi/detectFaces.js.map index 1712607..ebee87d 100644 --- a/build/globalApi/detectFaces.js.map +++ b/build/globalApi/detectFaces.js.map @@ -1 +1 @@ -{"version":3,"file":"detectFaces.js","sourceRoot":"","sources":["../../src/globalApi/detectFaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAGtF,MAAM,UAAU,gBAAgB,CAC9B,KAAgB,EAChB,UAAgC,IAAI,uBAAuB,EAAE;IAE7D,OAAO,IAAI,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAgB,EAChB,UAAgC,IAAI,uBAAuB,EAAE;IAE7D,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC"} \ No newline at end of file +{"version":3,"file":"detectFaces.js","sourceRoot":"","sources":["../../src/globalApi/detectFaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG9E,MAAM,UAAU,gBAAgB,CAC9B,KAAgB,EAChB,UAAgC,IAAI,qBAAqB,EAAE;IAE3D,OAAO,IAAI,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAgB,EAChB,UAAgC,IAAI,qBAAqB,EAAE;IAE3D,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC"} \ No newline at end of file diff --git a/build/globalApi/index.d.ts b/build/globalApi/index.d.ts index 1b36e41..120830e 100644 --- a/build/globalApi/index.d.ts +++ b/build/globalApi/index.d.ts @@ -1,3 +1,4 @@ +export * from './allFaces'; export * from './ComposableTask'; export * from './ComputeFaceDescriptorsTasks'; export * from './detectFaces'; diff --git a/build/globalApi/index.d.ts.map b/build/globalApi/index.d.ts.map index 163cefe..1afcf07 100644 --- a/build/globalApi/index.d.ts.map +++ b/build/globalApi/index.d.ts.map @@ -1 +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 +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/globalApi/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,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/index.js b/build/globalApi/index.js index 78d179a..e9c24a1 100644 --- a/build/globalApi/index.js +++ b/build/globalApi/index.js @@ -1,3 +1,4 @@ +export * from './allFaces'; export * from './ComposableTask'; export * from './ComputeFaceDescriptorsTasks'; export * from './detectFaces'; diff --git a/build/globalApi/index.js.map b/build/globalApi/index.js.map index 8efdbf7..0de97b9 100644 --- a/build/globalApi/index.js.map +++ b/build/globalApi/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","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 +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/globalApi/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,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 96d62b0..d1367d3 100644 --- a/build/globalApi/nets.d.ts +++ b/build/globalApi/nets.d.ts @@ -8,10 +8,13 @@ import { FaceExpressions } from '../faceExpressionNet/FaceExpressions'; import { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net'; import { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet'; import { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet'; +import { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1'; +import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options'; import { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector'; import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions'; -import { TinyYolov2 } from '../tinyYolov2'; +import { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2'; export declare const nets: { + ssdMobilenetv1: SsdMobilenetv1; tinyFaceDetector: TinyFaceDetector; tinyYolov2: TinyYolov2; faceLandmark68Net: FaceLandmark68Net; @@ -20,6 +23,14 @@ export declare const nets: { faceExpressionNet: FaceExpressionNet; ageGenderNet: AgeGenderNet; }; +/** + * Attempts to detect all faces in an image using SSD Mobilenetv1 Network. + * + * @param input The input image. + * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters). + * @returns Bounding box of each face with score. + */ +export declare const ssdMobilenetv1: (input: TNetInput, options: SsdMobilenetv1Options) => Promise; /** * Attempts to detect all faces in an image using the Tiny Face Detector. * @@ -28,6 +39,14 @@ export declare const nets: { * @returns Bounding box of each face with score. */ export declare const tinyFaceDetector: (input: TNetInput, options: TinyFaceDetectorOptions) => Promise; +/** + * Attempts to detect all faces in an image using the Tiny Yolov2 Network. + * + * @param input The input image. + * @param options (optional, default: see TinyYolov2Options constructor for default parameters). + * @returns Bounding box of each face with score. + */ +export declare const tinyYolov2: (input: TNetInput, options: ITinyYolov2Options) => Promise; /** * Detects the 68 point face landmark positions of the face shown in an image. * @@ -73,6 +92,7 @@ export declare const recognizeFaceExpressions: (input: TNetInput) => Promise Promise; +export declare const loadSsdMobilenetv1Model: (url: string) => Promise; export declare const loadTinyFaceDetectorModel: (url: string) => Promise; export declare const loadTinyYolov2Model: (url: string) => Promise; export declare const loadFaceLandmarkModel: (url: string) => Promise; @@ -81,6 +101,6 @@ export declare const loadFaceRecognitionModel: (url: string) => Promise; export declare const loadFaceExpressionModel: (url: string) => Promise; export declare const loadAgeGenderModel: (url: string) => Promise; export declare const loadFaceDetectionModel: (url: string) => Promise; -export declare const locateFaces: typeof TinyFaceDetector; +export declare const locateFaces: (input: TNetInput, options: SsdMobilenetv1Options) => Promise; 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 index eeefd40..c3147a4 100644 --- a/build/globalApi/nets.d.ts.map +++ b/build/globalApi/nets.d.ts.map @@ -1 +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 +{"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,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE/D,eAAO,MAAM,IAAI;;;;;;;;;CAShB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,UAAW,SAAS,WAAW,qBAAqB,KAAG,QAAQ,aAAa,EAAE,CACxD,CAAA;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,UAAW,SAAS,WAAW,uBAAuB,KAAG,QAAQ,aAAa,EAAE,CAC1D,CAAA;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,UAAW,SAAS,WAAW,kBAAkB,KAAG,QAAQ,aAAa,EAAE,CACrD,CAAA;AAE7C;;;;;;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,uBAAuB,QAAS,MAAM,kBAAkC,CAAA;AACrF,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,QAVU,MAAM,kBAUU,CAAA;AAC7D,eAAO,MAAM,WAAW,UA1Fc,SAAS,WAAW,qBAAqB,KAAG,QAAQ,aAAa,EAAE,CA0FhE,CAAA;AACzC,eAAO,MAAM,eAAe,UA7De,SAAS,KAAG,QAAQ,eAAe,GAAG,eAAe,EAAE,CA6DhD,CAAA"} \ No newline at end of file diff --git a/build/globalApi/nets.js b/build/globalApi/nets.js index 668e68f..c39b26b 100644 --- a/build/globalApi/nets.js +++ b/build/globalApi/nets.js @@ -3,9 +3,11 @@ import { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet'; import { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net'; import { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet'; import { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet'; +import { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1'; import { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector'; import { TinyYolov2 } from '../tinyYolov2'; export const nets = { + ssdMobilenetv1: new SsdMobilenetv1(), tinyFaceDetector: new TinyFaceDetector(), tinyYolov2: new TinyYolov2(), faceLandmark68Net: new FaceLandmark68Net(), @@ -14,6 +16,14 @@ export const nets = { faceExpressionNet: new FaceExpressionNet(), ageGenderNet: new AgeGenderNet() }; +/** + * Attempts to detect all faces in an image using SSD Mobilenetv1 Network. + * + * @param input The input image. + * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters). + * @returns Bounding box of each face with score. + */ +export const ssdMobilenetv1 = (input, options) => nets.ssdMobilenetv1.locateFaces(input, options); /** * Attempts to detect all faces in an image using the Tiny Face Detector. * @@ -22,6 +32,14 @@ export const nets = { * @returns Bounding box of each face with score. */ export const tinyFaceDetector = (input, options) => nets.tinyFaceDetector.locateFaces(input, options); +/** + * Attempts to detect all faces in an image using the Tiny Yolov2 Network. + * + * @param input The input image. + * @param options (optional, default: see TinyYolov2Options constructor for default parameters). + * @returns Bounding box of each face with score. + */ +export const tinyYolov2 = (input, options) => nets.tinyYolov2.locateFaces(input, options); /** * Detects the 68 point face landmark positions of the face shown in an image. * @@ -67,6 +85,7 @@ export const recognizeFaceExpressions = (input) => nets.faceExpressionNet.predic * @returns Predictions with age, gender and gender probability or array thereof in case of batch input. */ export const predictAgeAndGender = (input) => nets.ageGenderNet.predictAgeAndGender(input); +export const loadSsdMobilenetv1Model = (url) => nets.ssdMobilenetv1.load(url); export const loadTinyFaceDetectorModel = (url) => nets.tinyFaceDetector.load(url); export const loadTinyYolov2Model = (url) => nets.tinyYolov2.load(url); export const loadFaceLandmarkModel = (url) => nets.faceLandmark68Net.load(url); @@ -75,7 +94,7 @@ export const loadFaceRecognitionModel = (url) => nets.faceRecognitionNet.load(ur export const loadFaceExpressionModel = (url) => nets.faceExpressionNet.load(url); export const loadAgeGenderModel = (url) => nets.ageGenderNet.load(url); // backward compatibility -export const loadFaceDetectionModel = loadTinyFaceDetectorModel; -export const locateFaces = TinyFaceDetector; +export const loadFaceDetectionModel = loadSsdMobilenetv1Model; +export const locateFaces = ssdMobilenetv1; export const detectLandmarks = detectFaceLandmarks; //# sourceMappingURL=nets.js.map \ No newline at end of file diff --git a/build/globalApi/nets.js.map b/build/globalApi/nets.js.map index b36b653..30134fb 100644 --- a/build/globalApi/nets.js.map +++ b/build/globalApi/nets.js.map @@ -1 +1 @@ -{"version":3,"file":"nets.js","sourceRoot":"","sources":["../../src/globalApi/nets.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"nets.js","sourceRoot":"","sources":["../../src/globalApi/nets.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/globalApi/types.d.ts b/build/globalApi/types.d.ts index b0b285f..b8f644a 100644 --- a/build/globalApi/types.d.ts +++ b/build/globalApi/types.d.ts @@ -1,6 +1,8 @@ import { FaceDetection } from '../classes/FaceDetection'; import { TNetInput } from '../dom'; +import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options'; import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions'; -export declare type FaceDetectionOptions = TinyFaceDetectorOptions; +import { TinyYolov2Options } from '../tinyYolov2'; +export declare type FaceDetectionOptions = TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options; 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 index dc8144f..1b8c6a8 100644 --- a/build/globalApi/types.d.ts.map +++ b/build/globalApi/types.d.ts.map @@ -1 +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 +{"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,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,oBAAY,oBAAoB,GAAG,uBAAuB,GAAG,qBAAqB,GAAG,iBAAiB,CAAA;AAEtG,oBAAY,qBAAqB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA"} \ No newline at end of file diff --git a/build/index.d.ts b/build/index.d.ts index 8ead65d..66d549d 100644 --- a/build/index.d.ts +++ b/build/index.d.ts @@ -1,4 +1,4 @@ -import * as tf from '@tensorflow/tfjs'; +import * as tf from '@tensorflow/tfjs-core'; import * as draw from './draw'; import * as utils from './utils'; export { draw, utils, tf }; @@ -12,6 +12,7 @@ export * from './faceRecognitionNet/index'; export * from './factories/index'; export * from './globalApi/index'; export * from './ops/index'; +export * from './ssdMobilenetv1/index'; export * from './tinyFaceDetector/index'; export * from './tinyYolov2/index'; export * from './euclideanDistance'; diff --git a/build/index.d.ts.map b/build/index.d.ts.map index b583b5f..b4f43d8 100644 --- a/build/index.d.ts.map +++ b/build/index.d.ts.map @@ -1 +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 +{"version":3,"file":"index.d.ts","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,wBAAwB,CAAC;AACvC,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 diff --git a/build/index.js b/build/index.js index fa4a248..430104f 100644 --- a/build/index.js +++ b/build/index.js @@ -1,4 +1,4 @@ -import * as tf from '@tensorflow/tfjs'; +import * as tf from '@tensorflow/tfjs-core'; import * as draw from './draw'; import * as utils from './utils'; export { draw, utils, tf }; @@ -12,6 +12,7 @@ export * from './faceRecognitionNet/index'; export * from './factories/index'; export * from './globalApi/index'; export * from './ops/index'; +export * from './ssdMobilenetv1/index'; export * from './tinyFaceDetector/index'; export * from './tinyYolov2/index'; export * from './euclideanDistance'; diff --git a/build/index.js.map b/build/index.js.map index 71a9867..2e73931 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,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 +{"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,wBAAwB,CAAC;AACvC,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 diff --git a/build/resizeResults.d.ts.map b/build/resizeResults.d.ts.map index 4474772..64ef8be 100644 --- a/build/resizeResults.d.ts.map +++ b/build/resizeResults.d.ts.map @@ -1 +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 +{"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,CA4BvE"} \ No newline at end of file diff --git a/build/resizeResults.js.map b/build/resizeResults.js.map index 8fce2a2..4278f2d 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;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 +{"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 diff --git a/build/ssdMobilenetv1/SsdMobilenetv1.d.ts b/build/ssdMobilenetv1/SsdMobilenetv1.d.ts new file mode 100644 index 0000000..f19cb15 --- /dev/null +++ b/build/ssdMobilenetv1/SsdMobilenetv1.d.ts @@ -0,0 +1,28 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { FaceDetection } from '../classes/FaceDetection'; +import { NetInput, TNetInput } from '../dom'; +import { NeuralNetwork } from '../NeuralNetwork'; +import { ISsdMobilenetv1Options } from './SsdMobilenetv1Options'; +import { NetParams } from './types'; +export declare class SsdMobilenetv1 extends NeuralNetwork { + constructor(); + forwardInput(input: NetInput): { + boxes: tf.Tensor2D[]; + scores: tf.Tensor1D[]; + }; + forward(input: TNetInput): Promise<{ + boxes: tf.Tensor2D[]; + scores: tf.Tensor1D[]; + }>; + locateFaces(input: TNetInput, options?: ISsdMobilenetv1Options): Promise; + protected getDefaultModelName(): string; + protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap): { + params: NetParams; + paramMappings: import("../common").ParamMapping[]; + }; + protected extractParams(weights: Float32Array): { + params: NetParams; + paramMappings: import("../common").ParamMapping[]; + }; +} +//# sourceMappingURL=SsdMobilenetv1.d.ts.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/SsdMobilenetv1.d.ts.map b/build/ssdMobilenetv1/SsdMobilenetv1.d.ts.map new file mode 100644 index 0000000..70a16b0 --- /dev/null +++ b/build/ssdMobilenetv1/SsdMobilenetv1.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"SsdMobilenetv1.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/SsdMobilenetv1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAc,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,OAAO,EAAE,sBAAsB,EAAyB,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,qBAAa,cAAe,SAAQ,aAAa,CAAC,SAAS,CAAC;;IAMnD,YAAY,CAAC,KAAK,EAAE,QAAQ;;;;IAuBtB,OAAO,CAAC,KAAK,EAAE,SAAS;;;;IAIxB,WAAW,CACtB,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,aAAa,EAAE,CAAC;IAqE3B,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/ssdMobilenetv1/SsdMobilenetv1.js b/build/ssdMobilenetv1/SsdMobilenetv1.js new file mode 100644 index 0000000..982a823 --- /dev/null +++ b/build/ssdMobilenetv1/SsdMobilenetv1.js @@ -0,0 +1,82 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { Rect } from '../classes'; +import { FaceDetection } from '../classes/FaceDetection'; +import { toNetInput } from '../dom'; +import { NeuralNetwork } from '../NeuralNetwork'; +import { extractParams } from './extractParams'; +import { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap'; +import { mobileNetV1 } from './mobileNetV1'; +import { nonMaxSuppression } from './nonMaxSuppression'; +import { outputLayer } from './outputLayer'; +import { predictionLayer } from './predictionLayer'; +import { SsdMobilenetv1Options } from './SsdMobilenetv1Options'; +export class SsdMobilenetv1 extends NeuralNetwork { + constructor() { + super('SsdMobilenetv1'); + } + forwardInput(input) { + const { params } = this; + if (!params) { + throw new Error('SsdMobilenetv1 - load model before inference'); + } + return tf.tidy(() => { + const batchTensor = input.toBatchTensor(512, false).toFloat(); + const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)); + const features = mobileNetV1(x, params.mobilenetv1); + const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer); + return outputLayer(boxPredictions, classPredictions, params.output_layer); + }); + } + async forward(input) { + return this.forwardInput(await toNetInput(input)); + } + async locateFaces(input, options = {}) { + const { maxResults, minConfidence } = new SsdMobilenetv1Options(options); + const netInput = await toNetInput(input); + const { boxes: _boxes, scores: _scores } = this.forwardInput(netInput); + // TODO batches + const boxes = _boxes[0]; + const scores = _scores[0]; + for (let i = 1; i < _boxes.length; i++) { + _boxes[i].dispose(); + _scores[i].dispose(); + } + // TODO find a better way to filter by minConfidence + const scoresData = Array.from(await scores.data()); + const iouThreshold = 0.5; + const indices = nonMaxSuppression(boxes, scoresData, maxResults, iouThreshold, minConfidence); + const reshapedDims = netInput.getReshapedInputDimensions(0); + const inputSize = netInput.inputSize; + const padX = inputSize / reshapedDims.width; + const padY = inputSize / reshapedDims.height; + const boxesData = boxes.arraySync(); + const results = indices + .map(idx => { + const [top, bottom] = [ + Math.max(0, boxesData[idx][0]), + Math.min(1.0, boxesData[idx][2]) + ].map(val => val * padY); + const [left, right] = [ + Math.max(0, boxesData[idx][1]), + Math.min(1.0, boxesData[idx][3]) + ].map(val => val * padX); + return new FaceDetection(scoresData[idx], new Rect(left, top, right - left, bottom - top), { + height: netInput.getInputHeight(0), + width: netInput.getInputWidth(0) + }); + }); + boxes.dispose(); + scores.dispose(); + return results; + } + getDefaultModelName() { + return 'ssd_mobilenetv1_model'; + } + extractParamsFromWeigthMap(weightMap) { + return extractParamsFromWeigthMap(weightMap); + } + extractParams(weights) { + return extractParams(weights); + } +} +//# sourceMappingURL=SsdMobilenetv1.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/SsdMobilenetv1.js.map b/build/ssdMobilenetv1/SsdMobilenetv1.js.map new file mode 100644 index 0000000..448a2f0 --- /dev/null +++ b/build/ssdMobilenetv1/SsdMobilenetv1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SsdMobilenetv1.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/SsdMobilenetv1.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/SsdMobilenetv1Options.d.ts b/build/ssdMobilenetv1/SsdMobilenetv1Options.d.ts new file mode 100644 index 0000000..8b6800e --- /dev/null +++ b/build/ssdMobilenetv1/SsdMobilenetv1Options.d.ts @@ -0,0 +1,13 @@ +export interface ISsdMobilenetv1Options { + minConfidence?: number; + maxResults?: number; +} +export declare class SsdMobilenetv1Options { + protected _name: string; + private _minConfidence; + private _maxResults; + constructor({ minConfidence, maxResults }?: ISsdMobilenetv1Options); + get minConfidence(): number; + get maxResults(): number; +} +//# sourceMappingURL=SsdMobilenetv1Options.d.ts.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/SsdMobilenetv1Options.d.ts.map b/build/ssdMobilenetv1/SsdMobilenetv1Options.d.ts.map new file mode 100644 index 0000000..f159f41 --- /dev/null +++ b/build/ssdMobilenetv1/SsdMobilenetv1Options.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"SsdMobilenetv1Options.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/SsdMobilenetv1Options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,qBAAqB;IAChC,SAAS,CAAC,KAAK,EAAE,MAAM,CAA0B;IAEjD,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,WAAW,CAAQ;gBAEf,EAAE,aAAa,EAAE,UAAU,EAAE,GAAE,sBAA2B;IAatE,IAAI,aAAa,IAAI,MAAM,CAA+B;IAC1D,IAAI,UAAU,IAAI,MAAM,CAA4B;CACrD"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/SsdMobilenetv1Options.js b/build/ssdMobilenetv1/SsdMobilenetv1Options.js new file mode 100644 index 0000000..da74d09 --- /dev/null +++ b/build/ssdMobilenetv1/SsdMobilenetv1Options.js @@ -0,0 +1,16 @@ +export class SsdMobilenetv1Options { + constructor({ minConfidence, maxResults } = {}) { + this._name = 'SsdMobilenetv1Options'; + this._minConfidence = minConfidence || 0.5; + this._maxResults = maxResults || 100; + if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) { + throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`); + } + if (typeof this._maxResults !== 'number') { + throw new Error(`${this._name} - expected maxResults to be a number`); + } + } + get minConfidence() { return this._minConfidence; } + get maxResults() { return this._maxResults; } +} +//# sourceMappingURL=SsdMobilenetv1Options.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/SsdMobilenetv1Options.js.map b/build/ssdMobilenetv1/SsdMobilenetv1Options.js.map new file mode 100644 index 0000000..4de33c6 --- /dev/null +++ b/build/ssdMobilenetv1/SsdMobilenetv1Options.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SsdMobilenetv1Options.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/SsdMobilenetv1Options.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,qBAAqB;IAMhC,YAAY,EAAE,aAAa,EAAE,UAAU,KAA6B,EAAE;QAL5D,UAAK,GAAW,uBAAuB,CAAA;QAM/C,IAAI,CAAC,cAAc,GAAG,aAAa,IAAI,GAAG,CAAA;QAC1C,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,GAAG,CAAA;QAEpC,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE;YACnG,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,0DAA0D,CAAC,CAAA;SACzF;QAED,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,uCAAuC,CAAC,CAAA;SACtE;IACH,CAAC;IAED,IAAI,aAAa,KAAa,OAAO,IAAI,CAAC,cAAc,CAAA,CAAC,CAAC;IAC1D,IAAI,UAAU,KAAa,OAAO,IAAI,CAAC,WAAW,CAAA,CAAC,CAAC;CACrD"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/boxPredictionLayer.d.ts b/build/ssdMobilenetv1/boxPredictionLayer.d.ts new file mode 100644 index 0000000..df8fcfd --- /dev/null +++ b/build/ssdMobilenetv1/boxPredictionLayer.d.ts @@ -0,0 +1,7 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { BoxPredictionParams } from './types'; +export declare function boxPredictionLayer(x: tf.Tensor4D, params: BoxPredictionParams): { + boxPredictionEncoding: tf.Tensor; + classPrediction: tf.Tensor; +}; +//# sourceMappingURL=boxPredictionLayer.d.ts.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/boxPredictionLayer.d.ts.map b/build/ssdMobilenetv1/boxPredictionLayer.d.ts.map new file mode 100644 index 0000000..245a71d --- /dev/null +++ b/build/ssdMobilenetv1/boxPredictionLayer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"boxPredictionLayer.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/boxPredictionLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG9C,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,EAAE,CAAC,QAAQ,EACd,MAAM,EAAE,mBAAmB;;;EAoB5B"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/boxPredictionLayer.js b/build/ssdMobilenetv1/boxPredictionLayer.js new file mode 100644 index 0000000..7018d0c --- /dev/null +++ b/build/ssdMobilenetv1/boxPredictionLayer.js @@ -0,0 +1,14 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { convLayer } from '../common'; +export function boxPredictionLayer(x, params) { + return tf.tidy(() => { + const batchSize = x.shape[0]; + const boxPredictionEncoding = tf.reshape(convLayer(x, params.box_encoding_predictor), [batchSize, -1, 1, 4]); + const classPrediction = tf.reshape(convLayer(x, params.class_predictor), [batchSize, -1, 3]); + return { + boxPredictionEncoding, + classPrediction + }; + }); +} +//# sourceMappingURL=boxPredictionLayer.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/boxPredictionLayer.js.map b/build/ssdMobilenetv1/boxPredictionLayer.js.map new file mode 100644 index 0000000..93497d7 --- /dev/null +++ b/build/ssdMobilenetv1/boxPredictionLayer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"boxPredictionLayer.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/boxPredictionLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,MAAM,UAAU,kBAAkB,CAChC,CAAc,EACd,MAA2B;IAE3B,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAElB,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAE5B,MAAM,qBAAqB,GAAG,EAAE,CAAC,OAAO,CACtC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAC3C,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACtB,CAAA;QACD,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAChC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,EACpC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACnB,CAAA;QAED,OAAO;YACL,qBAAqB;YACrB,eAAe;SAChB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/extractParams.d.ts b/build/ssdMobilenetv1/extractParams.d.ts new file mode 100644 index 0000000..12cc2d4 --- /dev/null +++ b/build/ssdMobilenetv1/extractParams.d.ts @@ -0,0 +1,7 @@ +import { ParamMapping } from '../common'; +import { NetParams } from './types'; +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/ssdMobilenetv1/extractParams.d.ts.map b/build/ssdMobilenetv1/extractParams.d.ts.map new file mode 100644 index 0000000..0b1ab49 --- /dev/null +++ b/build/ssdMobilenetv1/extractParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParams.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/extractParams.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,YAAY,EAAqC,MAAM,WAAW,CAAC;AACpG,OAAO,EAAe,SAAS,EAA8C,MAAM,SAAS,CAAC;AA8L7F,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAsCzG"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/extractParams.js b/build/ssdMobilenetv1/extractParams.js new file mode 100644 index 0000000..6de523c --- /dev/null +++ b/build/ssdMobilenetv1/extractParams.js @@ -0,0 +1,159 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { extractWeightsFactory } from '../common'; +function extractorsFactory(extractWeights, paramMappings) { + function extractDepthwiseConvParams(numChannels, mappedPrefix) { + const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]); + const batch_norm_scale = tf.tensor1d(extractWeights(numChannels)); + const batch_norm_offset = tf.tensor1d(extractWeights(numChannels)); + const batch_norm_mean = tf.tensor1d(extractWeights(numChannels)); + const batch_norm_variance = tf.tensor1d(extractWeights(numChannels)); + paramMappings.push({ paramPath: `${mappedPrefix}/filters` }, { paramPath: `${mappedPrefix}/batch_norm_scale` }, { paramPath: `${mappedPrefix}/batch_norm_offset` }, { paramPath: `${mappedPrefix}/batch_norm_mean` }, { paramPath: `${mappedPrefix}/batch_norm_variance` }); + return { + filters, + batch_norm_scale, + batch_norm_offset, + batch_norm_mean, + batch_norm_variance + }; + } + function extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, isPointwiseConv) { + const filters = tf.tensor4d(extractWeights(channelsIn * channelsOut * filterSize * filterSize), [filterSize, filterSize, channelsIn, channelsOut]); + const bias = tf.tensor1d(extractWeights(channelsOut)); + paramMappings.push({ paramPath: `${mappedPrefix}/filters` }, { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` }); + return { filters, bias }; + } + function extractPointwiseConvParams(channelsIn, channelsOut, filterSize, mappedPrefix) { + const { filters, bias } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true); + return { + filters, + batch_norm_offset: bias + }; + } + function extractConvPairParams(channelsIn, channelsOut, mappedPrefix) { + const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`); + const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`); + return { depthwise_conv, pointwise_conv }; + } + function extractMobilenetV1Params() { + const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0'); + const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1'); + const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2'); + const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3'); + const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4'); + const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5'); + const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6'); + const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7'); + const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8'); + const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9'); + const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10'); + const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11'); + const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12'); + const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13'); + return { + conv_0, + conv_1, + conv_2, + conv_3, + conv_4, + conv_5, + conv_6, + conv_7, + conv_8, + conv_9, + conv_10, + conv_11, + conv_12, + conv_13 + }; + } + function extractPredictionLayerParams() { + const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0'); + const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1'); + const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2'); + const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3'); + const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4'); + const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5'); + const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6'); + const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7'); + const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor'); + const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor'); + const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor'); + const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor'); + const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor'); + const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor'); + const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor'); + const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor'); + const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor'); + const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor'); + const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor'); + const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor'); + const box_predictor_0 = { + box_encoding_predictor: box_encoding_0_predictor, + class_predictor: class_predictor_0 + }; + const box_predictor_1 = { + box_encoding_predictor: box_encoding_1_predictor, + class_predictor: class_predictor_1 + }; + const box_predictor_2 = { + box_encoding_predictor: box_encoding_2_predictor, + class_predictor: class_predictor_2 + }; + const box_predictor_3 = { + box_encoding_predictor: box_encoding_3_predictor, + class_predictor: class_predictor_3 + }; + const box_predictor_4 = { + box_encoding_predictor: box_encoding_4_predictor, + class_predictor: class_predictor_4 + }; + const box_predictor_5 = { + box_encoding_predictor: box_encoding_5_predictor, + class_predictor: class_predictor_5 + }; + return { + conv_0, + conv_1, + conv_2, + conv_3, + conv_4, + conv_5, + conv_6, + conv_7, + box_predictor_0, + box_predictor_1, + box_predictor_2, + box_predictor_3, + box_predictor_4, + box_predictor_5 + }; + } + return { + extractMobilenetV1Params, + extractPredictionLayerParams + }; +} +export function extractParams(weights) { + const paramMappings = []; + const { extractWeights, getRemainingWeights } = extractWeightsFactory(weights); + const { extractMobilenetV1Params, extractPredictionLayerParams } = extractorsFactory(extractWeights, paramMappings); + const mobilenetv1 = extractMobilenetV1Params(); + const prediction_layer = extractPredictionLayerParams(); + const extra_dim = tf.tensor3d(extractWeights(5118 * 4), [1, 5118, 4]); + const output_layer = { + extra_dim + }; + paramMappings.push({ paramPath: 'output_layer/extra_dim' }); + if (getRemainingWeights().length !== 0) { + throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`); + } + return { + params: { + mobilenetv1, + prediction_layer, + output_layer + }, + paramMappings + }; +} +//# sourceMappingURL=extractParams.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/extractParams.js.map b/build/ssdMobilenetv1/extractParams.js.map new file mode 100644 index 0000000..7757ed6 --- /dev/null +++ b/build/ssdMobilenetv1/extractParams.js.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/extractParams.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/extractParamsFromWeigthMap.d.ts b/build/ssdMobilenetv1/extractParamsFromWeigthMap.d.ts new file mode 100644 index 0000000..163969a --- /dev/null +++ b/build/ssdMobilenetv1/extractParamsFromWeigthMap.d.ts @@ -0,0 +1,8 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { ParamMapping } from '../common'; +import { NetParams } from './types'; +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/ssdMobilenetv1/extractParamsFromWeigthMap.d.ts.map b/build/ssdMobilenetv1/extractParamsFromWeigthMap.d.ts.map new file mode 100644 index 0000000..7f09d00 --- /dev/null +++ b/build/ssdMobilenetv1/extractParamsFromWeigthMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParamsFromWeigthMap.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/extractParamsFromWeigthMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAqE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5G,OAAO,EAAoC,SAAS,EAA8C,MAAM,SAAS,CAAC;AAwGlH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,EAAE,CAAC,cAAc,GAC3B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CA2BtD"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/extractParamsFromWeigthMap.js b/build/ssdMobilenetv1/extractParamsFromWeigthMap.js new file mode 100644 index 0000000..8e32ed4 --- /dev/null +++ b/build/ssdMobilenetv1/extractParamsFromWeigthMap.js @@ -0,0 +1,100 @@ +import { disposeUnusedWeightTensors, extractWeightEntryFactory } from '../common'; +import { isTensor3D } from '../utils'; +function extractorsFactory(weightMap, paramMappings) { + const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings); + function extractPointwiseConvParams(prefix, idx, mappedPrefix) { + const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`); + const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`); + return { filters, batch_norm_offset }; + } + function extractConvPairParams(idx) { + const mappedPrefix = `mobilenetv1/conv_${idx}`; + const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`; + const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`; + const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`; + const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`); + const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`); + const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`); + const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`); + const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`); + return { + depthwise_conv: { + filters, + batch_norm_scale, + batch_norm_offset, + batch_norm_mean, + batch_norm_variance + }, + pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv) + }; + } + function extractMobilenetV1Params() { + return { + conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'), + conv_1: extractConvPairParams(1), + conv_2: extractConvPairParams(2), + conv_3: extractConvPairParams(3), + conv_4: extractConvPairParams(4), + conv_5: extractConvPairParams(5), + conv_6: extractConvPairParams(6), + conv_7: extractConvPairParams(7), + conv_8: extractConvPairParams(8), + conv_9: extractConvPairParams(9), + conv_10: extractConvPairParams(10), + conv_11: extractConvPairParams(11), + conv_12: extractConvPairParams(12), + conv_13: extractConvPairParams(13) + }; + } + function extractConvParams(prefix, mappedPrefix) { + const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`); + const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`); + return { filters, bias }; + } + function extractBoxPredictorParams(idx) { + const box_encoding_predictor = extractConvParams(`Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`, `prediction_layer/box_predictor_${idx}/box_encoding_predictor`); + const class_predictor = extractConvParams(`Prediction/BoxPredictor_${idx}/ClassPredictor`, `prediction_layer/box_predictor_${idx}/class_predictor`); + return { box_encoding_predictor, class_predictor }; + } + function extractPredictionLayerParams() { + return { + conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'), + conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'), + conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'), + conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'), + conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'), + conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'), + conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'), + conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'), + box_predictor_0: extractBoxPredictorParams(0), + box_predictor_1: extractBoxPredictorParams(1), + box_predictor_2: extractBoxPredictorParams(2), + box_predictor_3: extractBoxPredictorParams(3), + box_predictor_4: extractBoxPredictorParams(4), + box_predictor_5: extractBoxPredictorParams(5) + }; + } + return { + extractMobilenetV1Params, + extractPredictionLayerParams + }; +} +export function extractParamsFromWeigthMap(weightMap) { + const paramMappings = []; + const { extractMobilenetV1Params, extractPredictionLayerParams } = extractorsFactory(weightMap, paramMappings); + const extra_dim = weightMap['Output/extra_dim']; + paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' }); + if (!isTensor3D(extra_dim)) { + throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`); + } + const params = { + mobilenetv1: extractMobilenetV1Params(), + prediction_layer: extractPredictionLayerParams(), + output_layer: { + extra_dim + } + }; + disposeUnusedWeightTensors(weightMap, paramMappings); + return { params, paramMappings }; +} +//# sourceMappingURL=extractParamsFromWeigthMap.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/extractParamsFromWeigthMap.js.map b/build/ssdMobilenetv1/extractParamsFromWeigthMap.js.map new file mode 100644 index 0000000..b60921e --- /dev/null +++ b/build/ssdMobilenetv1/extractParamsFromWeigthMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParamsFromWeigthMap.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/extractParamsFromWeigthMap.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/index.d.ts b/build/ssdMobilenetv1/index.d.ts new file mode 100644 index 0000000..7ce6251 --- /dev/null +++ b/build/ssdMobilenetv1/index.d.ts @@ -0,0 +1,8 @@ +import { SsdMobilenetv1 } from './SsdMobilenetv1'; +export * from './SsdMobilenetv1'; +export * from './SsdMobilenetv1Options'; +export declare function createSsdMobilenetv1(weights: Float32Array): SsdMobilenetv1; +export declare function createFaceDetectionNet(weights: Float32Array): SsdMobilenetv1; +export declare class FaceDetectionNet extends SsdMobilenetv1 { +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/index.d.ts.map b/build/ssdMobilenetv1/index.d.ts.map new file mode 100644 index 0000000..8ca1c39 --- /dev/null +++ b/build/ssdMobilenetv1/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAExC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,kBAIzD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,kBAE3D;AAGD,qBAAa,gBAAiB,SAAQ,cAAc;CAAG"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/index.js b/build/ssdMobilenetv1/index.js new file mode 100644 index 0000000..7ca7b0d --- /dev/null +++ b/build/ssdMobilenetv1/index.js @@ -0,0 +1,15 @@ +import { SsdMobilenetv1 } from './SsdMobilenetv1'; +export * from './SsdMobilenetv1'; +export * from './SsdMobilenetv1Options'; +export function createSsdMobilenetv1(weights) { + const net = new SsdMobilenetv1(); + net.extractWeights(weights); + return net; +} +export function createFaceDetectionNet(weights) { + return createSsdMobilenetv1(weights); +} +// alias for backward compatibily +export class FaceDetectionNet extends SsdMobilenetv1 { +} +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/index.js.map b/build/ssdMobilenetv1/index.js.map new file mode 100644 index 0000000..761f8e5 --- /dev/null +++ b/build/ssdMobilenetv1/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAExC,MAAM,UAAU,oBAAoB,CAAC,OAAqB;IACxD,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAA;IAChC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAqB;IAC1D,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC;AAED,iCAAiC;AACjC,MAAM,OAAO,gBAAiB,SAAQ,cAAc;CAAG"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/mobileNetV1.d.ts b/build/ssdMobilenetv1/mobileNetV1.d.ts new file mode 100644 index 0000000..1d11181 --- /dev/null +++ b/build/ssdMobilenetv1/mobileNetV1.d.ts @@ -0,0 +1,7 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { MobileNetV1 } from './types'; +export declare function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params): { + out: tf.Tensor4D; + conv11: any; +}; +//# sourceMappingURL=mobileNetV1.d.ts.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/mobileNetV1.d.ts.map b/build/ssdMobilenetv1/mobileNetV1.d.ts.map new file mode 100644 index 0000000..eaf0a67 --- /dev/null +++ b/build/ssdMobilenetv1/mobileNetV1.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mobileNetV1.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/mobileNetV1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA6BtC,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM;;;EA0CrE"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/mobileNetV1.js b/build/ssdMobilenetv1/mobileNetV1.js new file mode 100644 index 0000000..3d7fcd7 --- /dev/null +++ b/build/ssdMobilenetv1/mobileNetV1.js @@ -0,0 +1,51 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { pointwiseConvLayer } from './pointwiseConvLayer'; +const epsilon = 0.0010000000474974513; +function depthwiseConvLayer(x, params, strides) { + return tf.tidy(() => { + let out = tf.depthwiseConv2d(x, params.filters, strides, 'same'); + out = tf.batchNorm(out, params.batch_norm_mean, params.batch_norm_variance, params.batch_norm_offset, params.batch_norm_scale, epsilon); + return tf.clipByValue(out, 0, 6); + }); +} +function getStridesForLayerIdx(layerIdx) { + return [2, 4, 6, 12].some(idx => idx === layerIdx) ? [2, 2] : [1, 1]; +} +export function mobileNetV1(x, params) { + return tf.tidy(() => { + let conv11 = null; + let out = pointwiseConvLayer(x, params.conv_0, [2, 2]); + const convPairParams = [ + params.conv_1, + params.conv_2, + params.conv_3, + params.conv_4, + params.conv_5, + params.conv_6, + params.conv_7, + params.conv_8, + params.conv_9, + params.conv_10, + params.conv_11, + params.conv_12, + params.conv_13 + ]; + convPairParams.forEach((param, i) => { + const layerIdx = i + 1; + const depthwiseConvStrides = getStridesForLayerIdx(layerIdx); + out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides); + out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]); + if (layerIdx === 11) { + conv11 = out; + } + }); + if (conv11 === null) { + throw new Error('mobileNetV1 - output of conv layer 11 is null'); + } + return { + out, + conv11: conv11 + }; + }); +} +//# sourceMappingURL=mobileNetV1.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/mobileNetV1.js.map b/build/ssdMobilenetv1/mobileNetV1.js.map new file mode 100644 index 0000000..35f0263 --- /dev/null +++ b/build/ssdMobilenetv1/mobileNetV1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mobileNetV1.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/mobileNetV1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,OAAO,GAAG,qBAAqB,CAAA;AAErC,SAAS,kBAAkB,CACzB,CAAc,EACd,MAAuC,EACvC,OAAyB;IAEzB,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAElB,IAAI,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAChE,GAAG,GAAG,EAAE,CAAC,SAAS,CAChB,GAAG,EACH,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,mBAAmB,EAC1B,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,gBAAgB,EACvB,OAAO,CACR,CAAA;QACD,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAElC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAc,EAAE,MAA0B;IACpE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAElB,IAAI,MAAM,GAAG,IAAI,CAAA;QACjB,IAAI,GAAG,GAAG,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAEtD,MAAM,cAAc,GAAG;YACrB,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,OAAO;SACf,CAAA;QAED,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;YACtB,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;YAC5D,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAA;YACzE,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC3D,IAAI,QAAQ,KAAK,EAAE,EAAE;gBACnB,MAAM,GAAG,GAAG,CAAA;aACb;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;SACjE;QAED,OAAO;YACL,GAAG;YACH,MAAM,EAAE,MAAa;SACtB,CAAA;IAEH,CAAC,CAAC,CAAA;AACJ,CAAC"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/nonMaxSuppression.d.ts b/build/ssdMobilenetv1/nonMaxSuppression.d.ts new file mode 100644 index 0000000..580a5de --- /dev/null +++ b/build/ssdMobilenetv1/nonMaxSuppression.d.ts @@ -0,0 +1,3 @@ +import * as tf from '@tensorflow/tfjs-core'; +export declare function nonMaxSuppression(boxes: tf.Tensor2D, scores: number[], maxOutputSize: number, iouThreshold: number, scoreThreshold: number): number[]; +//# sourceMappingURL=nonMaxSuppression.d.ts.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/nonMaxSuppression.d.ts.map b/build/ssdMobilenetv1/nonMaxSuppression.d.ts.map new file mode 100644 index 0000000..756dccb --- /dev/null +++ b/build/ssdMobilenetv1/nonMaxSuppression.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"nonMaxSuppression.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/nonMaxSuppression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAE3C,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,EAAE,CAAC,QAAQ,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,MAAM,EAAE,CAwCV"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/nonMaxSuppression.js b/build/ssdMobilenetv1/nonMaxSuppression.js new file mode 100644 index 0000000..e705ac5 --- /dev/null +++ b/build/ssdMobilenetv1/nonMaxSuppression.js @@ -0,0 +1,54 @@ +export function nonMaxSuppression(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) { + const numBoxes = boxes.shape[0]; + const outputSize = Math.min(maxOutputSize, numBoxes); + const candidates = scores + .map((score, boxIndex) => ({ score, boxIndex })) + .filter(c => c.score > scoreThreshold) + .sort((c1, c2) => c2.score - c1.score); + const suppressFunc = (x) => x <= iouThreshold ? 1 : 0; + const selected = []; + candidates.forEach(c => { + if (selected.length >= outputSize) { + return; + } + const originalScore = c.score; + for (let j = selected.length - 1; j >= 0; --j) { + const iou = IOU(boxes, c.boxIndex, selected[j]); + if (iou === 0.0) { + continue; + } + c.score *= suppressFunc(iou); + if (c.score <= scoreThreshold) { + break; + } + } + if (originalScore === c.score) { + selected.push(c.boxIndex); + } + }); + return selected; +} +function IOU(boxes, i, j) { + const boxesData = boxes.arraySync(); + const yminI = Math.min(boxesData[i][0], boxesData[i][2]); + const xminI = Math.min(boxesData[i][1], boxesData[i][3]); + const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]); + const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]); + const yminJ = Math.min(boxesData[j][0], boxesData[j][2]); + const xminJ = Math.min(boxesData[j][1], boxesData[j][3]); + const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]); + const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]); + const areaI = (ymaxI - yminI) * (xmaxI - xminI); + const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ); + if (areaI <= 0 || areaJ <= 0) { + return 0.0; + } + const intersectionYmin = Math.max(yminI, yminJ); + const intersectionXmin = Math.max(xminI, xminJ); + const intersectionYmax = Math.min(ymaxI, ymaxJ); + const intersectionXmax = Math.min(xmaxI, xmaxJ); + const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0) * + Math.max(intersectionXmax - intersectionXmin, 0.0); + return intersectionArea / (areaI + areaJ - intersectionArea); +} +//# sourceMappingURL=nonMaxSuppression.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/nonMaxSuppression.js.map b/build/ssdMobilenetv1/nonMaxSuppression.js.map new file mode 100644 index 0000000..e1d629c --- /dev/null +++ b/build/ssdMobilenetv1/nonMaxSuppression.js.map @@ -0,0 +1 @@ +{"version":3,"file":"nonMaxSuppression.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/nonMaxSuppression.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/outputLayer.d.ts b/build/ssdMobilenetv1/outputLayer.d.ts new file mode 100644 index 0000000..f8ab338 --- /dev/null +++ b/build/ssdMobilenetv1/outputLayer.d.ts @@ -0,0 +1,7 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { OutputLayerParams } from './types'; +export declare function outputLayer(boxPredictions: tf.Tensor4D, classPredictions: tf.Tensor4D, params: OutputLayerParams): { + boxes: tf.Tensor2D[]; + scores: tf.Tensor1D[]; +}; +//# sourceMappingURL=outputLayer.d.ts.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/outputLayer.d.ts.map b/build/ssdMobilenetv1/outputLayer.d.ts.map new file mode 100644 index 0000000..2f44527 --- /dev/null +++ b/build/ssdMobilenetv1/outputLayer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"outputLayer.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/outputLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA+C5C,wBAAgB,WAAW,CACzB,cAAc,EAAE,EAAE,CAAC,QAAQ,EAC3B,gBAAgB,EAAE,EAAE,CAAC,QAAQ,EAC7B,MAAM,EAAE,iBAAiB;;;EAgC1B"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/outputLayer.js b/build/ssdMobilenetv1/outputLayer.js new file mode 100644 index 0000000..df80ca7 --- /dev/null +++ b/build/ssdMobilenetv1/outputLayer.js @@ -0,0 +1,47 @@ +import * as tf from '@tensorflow/tfjs-core'; +function getCenterCoordinatesAndSizesLayer(x) { + const vec = tf.unstack(tf.transpose(x, [1, 0])); + const sizes = [ + tf.sub(vec[2], vec[0]), + tf.sub(vec[3], vec[1]) + ]; + const centers = [ + tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))), + tf.add(vec[1], tf.div(sizes[1], tf.scalar(2))) + ]; + return { + sizes, + centers + }; +} +function decodeBoxesLayer(x0, x1) { + const { sizes, centers } = getCenterCoordinatesAndSizesLayer(x0); + const vec = tf.unstack(tf.transpose(x1, [1, 0])); + const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2)); + const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]); + const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2)); + const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]); + return tf.transpose(tf.stack([ + tf.sub(add0_out, div0_out), + tf.sub(add1_out, div1_out), + tf.add(add0_out, div0_out), + tf.add(add1_out, div1_out) + ]), [1, 0]); +} +export function outputLayer(boxPredictions, classPredictions, params) { + return tf.tidy(() => { + const batchSize = boxPredictions.shape[0]; + let boxes = decodeBoxesLayer(tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]), tf.reshape(boxPredictions, [-1, 4])); + boxes = tf.reshape(boxes, [batchSize, (boxes.shape[0] / batchSize), 4]); + const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1])); + let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]); + scores = tf.reshape(scores, [batchSize, scores.shape[1]]); + const boxesByBatch = tf.unstack(boxes); + const scoresByBatch = tf.unstack(scores); + return { + boxes: boxesByBatch, + scores: scoresByBatch + }; + }); +} +//# sourceMappingURL=outputLayer.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/outputLayer.js.map b/build/ssdMobilenetv1/outputLayer.js.map new file mode 100644 index 0000000..895fb27 --- /dev/null +++ b/build/ssdMobilenetv1/outputLayer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"outputLayer.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/outputLayer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/pointwiseConvLayer.d.ts b/build/ssdMobilenetv1/pointwiseConvLayer.d.ts new file mode 100644 index 0000000..1782b95 --- /dev/null +++ b/build/ssdMobilenetv1/pointwiseConvLayer.d.ts @@ -0,0 +1,4 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { PointwiseConvParams } from './types'; +export declare function pointwiseConvLayer(x: tf.Tensor4D, params: PointwiseConvParams, strides: [number, number]): tf.Tensor4D; +//# sourceMappingURL=pointwiseConvLayer.d.ts.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/pointwiseConvLayer.d.ts.map b/build/ssdMobilenetv1/pointwiseConvLayer.d.ts.map new file mode 100644 index 0000000..2075ede --- /dev/null +++ b/build/ssdMobilenetv1/pointwiseConvLayer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pointwiseConvLayer.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/pointwiseConvLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,EAAE,CAAC,QAAQ,EACd,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,eAS1B"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/pointwiseConvLayer.js b/build/ssdMobilenetv1/pointwiseConvLayer.js new file mode 100644 index 0000000..7f5dace --- /dev/null +++ b/build/ssdMobilenetv1/pointwiseConvLayer.js @@ -0,0 +1,9 @@ +import * as tf from '@tensorflow/tfjs-core'; +export function pointwiseConvLayer(x, params, strides) { + return tf.tidy(() => { + let out = tf.conv2d(x, params.filters, strides, 'same'); + out = tf.add(out, params.batch_norm_offset); + return tf.clipByValue(out, 0, 6); + }); +} +//# sourceMappingURL=pointwiseConvLayer.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/pointwiseConvLayer.js.map b/build/ssdMobilenetv1/pointwiseConvLayer.js.map new file mode 100644 index 0000000..7b1686d --- /dev/null +++ b/build/ssdMobilenetv1/pointwiseConvLayer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pointwiseConvLayer.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/pointwiseConvLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAI5C,MAAM,UAAU,kBAAkB,CAChC,CAAc,EACd,MAA2B,EAC3B,OAAyB;IAEzB,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAElB,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACvD,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC3C,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAElC,CAAC,CAAC,CAAA;AACJ,CAAC"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/predictionLayer.d.ts b/build/ssdMobilenetv1/predictionLayer.d.ts new file mode 100644 index 0000000..9f8662d --- /dev/null +++ b/build/ssdMobilenetv1/predictionLayer.d.ts @@ -0,0 +1,7 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { PredictionLayerParams } from './types'; +export declare function predictionLayer(x: tf.Tensor4D, conv11: tf.Tensor4D, params: PredictionLayerParams): { + boxPredictions: tf.Tensor4D; + classPredictions: tf.Tensor4D; +}; +//# sourceMappingURL=predictionLayer.d.ts.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/predictionLayer.d.ts.map b/build/ssdMobilenetv1/predictionLayer.d.ts.map new file mode 100644 index 0000000..c49a5c9 --- /dev/null +++ b/build/ssdMobilenetv1/predictionLayer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"predictionLayer.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/predictionLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAI5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,eAAe,CAC7B,CAAC,EAAE,EAAE,CAAC,QAAQ,EACd,MAAM,EAAE,EAAE,CAAC,QAAQ,EACnB,MAAM,EAAE,qBAAqB;;;EA2C9B"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/predictionLayer.js b/build/ssdMobilenetv1/predictionLayer.js new file mode 100644 index 0000000..5e4814a --- /dev/null +++ b/build/ssdMobilenetv1/predictionLayer.js @@ -0,0 +1,42 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { boxPredictionLayer } from './boxPredictionLayer'; +import { pointwiseConvLayer } from './pointwiseConvLayer'; +export function predictionLayer(x, conv11, params) { + return tf.tidy(() => { + const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]); + const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]); + const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]); + const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]); + const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]); + const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]); + const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]); + const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]); + const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0); + const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1); + const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2); + const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3); + const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4); + const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5); + const boxPredictions = tf.concat([ + boxPrediction0.boxPredictionEncoding, + boxPrediction1.boxPredictionEncoding, + boxPrediction2.boxPredictionEncoding, + boxPrediction3.boxPredictionEncoding, + boxPrediction4.boxPredictionEncoding, + boxPrediction5.boxPredictionEncoding + ], 1); + const classPredictions = tf.concat([ + boxPrediction0.classPrediction, + boxPrediction1.classPrediction, + boxPrediction2.classPrediction, + boxPrediction3.classPrediction, + boxPrediction4.classPrediction, + boxPrediction5.classPrediction + ], 1); + return { + boxPredictions, + classPredictions + }; + }); +} +//# sourceMappingURL=predictionLayer.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/predictionLayer.js.map b/build/ssdMobilenetv1/predictionLayer.js.map new file mode 100644 index 0000000..0b5ce45 --- /dev/null +++ b/build/ssdMobilenetv1/predictionLayer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"predictionLayer.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/predictionLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,UAAU,eAAe,CAC7B,CAAc,EACd,MAAmB,EACnB,MAA6B;IAE7B,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAElB,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE9D,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACzE,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACpE,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACxE,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACxE,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACxE,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QAExE,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;YAC/B,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;SACrC,EAAE,CAAC,CAAgB,CAAA;QAEpB,MAAM,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC;YACjC,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;SAC/B,EAAE,CAAC,CAAgB,CAAA;QAEpB,OAAO;YACL,cAAc;YACd,gBAAgB;SACjB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/types.d.ts b/build/ssdMobilenetv1/types.d.ts new file mode 100644 index 0000000..25ba550 --- /dev/null +++ b/build/ssdMobilenetv1/types.d.ts @@ -0,0 +1,64 @@ +import * as tf from '@tensorflow/tfjs-core'; +import { ConvParams } from '../common'; +export declare type PointwiseConvParams = { + filters: tf.Tensor4D; + batch_norm_offset: tf.Tensor1D; +}; +export declare namespace MobileNetV1 { + type DepthwiseConvParams = { + filters: tf.Tensor4D; + batch_norm_scale: tf.Tensor1D; + batch_norm_offset: tf.Tensor1D; + batch_norm_mean: tf.Tensor1D; + batch_norm_variance: tf.Tensor1D; + }; + type ConvPairParams = { + depthwise_conv: DepthwiseConvParams; + pointwise_conv: PointwiseConvParams; + }; + type Params = { + conv_0: PointwiseConvParams; + conv_1: ConvPairParams; + conv_2: ConvPairParams; + conv_3: ConvPairParams; + conv_4: ConvPairParams; + conv_5: ConvPairParams; + conv_6: ConvPairParams; + conv_7: ConvPairParams; + conv_8: ConvPairParams; + conv_9: ConvPairParams; + conv_10: ConvPairParams; + conv_11: ConvPairParams; + conv_12: ConvPairParams; + conv_13: ConvPairParams; + }; +} +export declare type BoxPredictionParams = { + box_encoding_predictor: ConvParams; + class_predictor: ConvParams; +}; +export declare type PredictionLayerParams = { + conv_0: PointwiseConvParams; + conv_1: PointwiseConvParams; + conv_2: PointwiseConvParams; + conv_3: PointwiseConvParams; + conv_4: PointwiseConvParams; + conv_5: PointwiseConvParams; + conv_6: PointwiseConvParams; + conv_7: PointwiseConvParams; + box_predictor_0: BoxPredictionParams; + box_predictor_1: BoxPredictionParams; + box_predictor_2: BoxPredictionParams; + box_predictor_3: BoxPredictionParams; + box_predictor_4: BoxPredictionParams; + box_predictor_5: BoxPredictionParams; +}; +export declare type OutputLayerParams = { + extra_dim: tf.Tensor3D; +}; +export declare type NetParams = { + mobilenetv1: MobileNetV1.Params; + prediction_layer: PredictionLayerParams; + output_layer: OutputLayerParams; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/types.d.ts.map b/build/ssdMobilenetv1/types.d.ts.map new file mode 100644 index 0000000..b9f2056 --- /dev/null +++ b/build/ssdMobilenetv1/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ssdMobilenetv1/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,oBAAY,mBAAmB,GAAG;IAChC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAA;IACpB,iBAAiB,EAAE,EAAE,CAAC,QAAQ,CAAA;CAC/B,CAAA;AAED,yBAAiB,WAAW,CAAC;IAE3B,KAAY,mBAAmB,GAAG;QAChC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAA;QACpB,gBAAgB,EAAE,EAAE,CAAC,QAAQ,CAAA;QAC7B,iBAAiB,EAAE,EAAE,CAAC,QAAQ,CAAA;QAC9B,eAAe,EAAE,EAAE,CAAC,QAAQ,CAAA;QAC5B,mBAAmB,EAAE,EAAE,CAAC,QAAQ,CAAA;KACjC,CAAA;IAED,KAAY,cAAc,GAAG;QAC3B,cAAc,EAAE,mBAAmB,CAAA;QACnC,cAAc,EAAE,mBAAmB,CAAA;KACpC,CAAA;IAED,KAAY,MAAM,GAAG;QACnB,MAAM,EAAE,mBAAmB,CAAA;QAC3B,MAAM,EAAE,cAAc,CAAA;QACtB,MAAM,EAAE,cAAc,CAAA;QACtB,MAAM,EAAE,cAAc,CAAA;QACtB,MAAM,EAAE,cAAc,CAAA;QACtB,MAAM,EAAE,cAAc,CAAA;QACtB,MAAM,EAAE,cAAc,CAAA;QACtB,MAAM,EAAE,cAAc,CAAA;QACtB,MAAM,EAAE,cAAc,CAAA;QACtB,MAAM,EAAE,cAAc,CAAA;QACtB,OAAO,EAAE,cAAc,CAAA;QACvB,OAAO,EAAE,cAAc,CAAA;QACvB,OAAO,EAAE,cAAc,CAAA;QACvB,OAAO,EAAE,cAAc,CAAA;KACxB,CAAA;CAEF;AAED,oBAAY,mBAAmB,GAAG;IAChC,sBAAsB,EAAE,UAAU,CAAA;IAClC,eAAe,EAAE,UAAU,CAAA;CAC5B,CAAA;AAED,oBAAY,qBAAqB,GAAG;IAClC,MAAM,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,mBAAmB,CAAA;IAC3B,MAAM,EAAE,mBAAmB,CAAA;IAC3B,eAAe,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,mBAAmB,CAAA;CACrC,CAAA;AAED,oBAAY,iBAAiB,GAAG;IAC9B,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAA;CACvB,CAAA;AAED,oBAAY,SAAS,GAAG;IACtB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC;IAChC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,YAAY,EAAE,iBAAiB,CAAA;CAChC,CAAA"} \ No newline at end of file diff --git a/build/ssdMobilenetv1/types.js b/build/ssdMobilenetv1/types.js new file mode 100644 index 0000000..718fd38 --- /dev/null +++ b/build/ssdMobilenetv1/types.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/ssdMobilenetv1/types.js.map b/build/ssdMobilenetv1/types.js.map new file mode 100644 index 0000000..c7a2d5f --- /dev/null +++ b/build/ssdMobilenetv1/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ssdMobilenetv1/types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/face-api.js b/dist/face-api.js index 14cd77a..2c03a6b 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((exports3, module) => { + var require_alea = __commonJS((exports, 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), state6 = opts && opts.state, prng = xg.next; + var xg = new Alea(seed), state = 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 (state6) { - if (typeof state6 == "object") - copy(state6, xg); + if (state) { + if (typeof state == "object") + copy(state, xg); prng.state = function() { return copy(xg, {}); }; @@ -112,11 +112,11 @@ var faceapi = (() => { } else { this.alea = impl; } - })(exports3, typeof module == "object" && module, typeof define == "function" && define); + })(exports, typeof module == "object" && module, typeof define == "function" && define); }); // node_modules/seedrandom/lib/xor128.js - var require_xor128 = __commonJS((exports3, module) => { + var require_xor128 = __commonJS((exports, 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), state6 = opts && opts.state, prng = function() { + var xg = new XorGen(seed), state = 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 (state6) { - if (typeof state6 == "object") - copy(state6, xg); + if (state) { + if (typeof state == "object") + copy(state, xg); prng.state = function() { return copy(xg, {}); }; @@ -178,11 +178,11 @@ var faceapi = (() => { } else { this.xor128 = impl; } - })(exports3, typeof module == "object" && module, typeof define == "function" && define); + })(exports, typeof module == "object" && module, typeof define == "function" && define); }); // node_modules/seedrandom/lib/xorwow.js - var require_xorwow = __commonJS((exports3, module) => { + var require_xorwow = __commonJS((exports, 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), state6 = opts && opts.state, prng = function() { + var xg = new XorGen(seed), state = 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 (state6) { - if (typeof state6 == "object") - copy(state6, xg); + if (state) { + if (typeof state == "object") + copy(state, xg); prng.state = function() { return copy(xg, {}); }; @@ -251,11 +251,11 @@ var faceapi = (() => { } else { this.xorwow = impl; } - })(exports3, typeof module == "object" && module, typeof define == "function" && define); + })(exports, typeof module == "object" && module, typeof define == "function" && define); }); // node_modules/seedrandom/lib/xorshift7.js - var require_xorshift7 = __commonJS((exports3, module) => { + var require_xorshift7 = __commonJS((exports, 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), state6 = opts && opts.state, prng = function() { + var xg = new XorGen(seed), state = 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 (state6) { - if (state6.x) - copy(state6, xg); + if (state) { + if (state.x) + copy(state, xg); prng.state = function() { return copy(xg, {}); }; @@ -340,11 +340,11 @@ var faceapi = (() => { } else { this.xorshift7 = impl; } - })(exports3, typeof module == "object" && module, typeof define == "function" && define); + })(exports, typeof module == "object" && module, typeof define == "function" && define); }); // node_modules/seedrandom/lib/xor4096.js - var require_xor4096 = __commonJS((exports3, module) => { + var require_xor4096 = __commonJS((exports, 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), state6 = opts && opts.state, prng = function() { + var xg = new XorGen(seed), state = 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 (state6) { - if (state6.X) - copy(state6, xg); + if (state) { + if (state.X) + copy(state, xg); prng.state = function() { return copy(xg, {}); }; @@ -444,11 +444,11 @@ var faceapi = (() => { } else { this.xor4096 = impl; } - })(exports3, typeof module == "object" && module, typeof define == "function" && define); + })(exports, typeof module == "object" && module, typeof define == "function" && define); }); // node_modules/seedrandom/lib/tychei.js - var require_tychei = __commonJS((exports3, module) => { + var require_tychei = __commonJS((exports, 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), state6 = opts && opts.state, prng = function() { + var xg = new XorGen(seed), state = 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 (state6) { - if (typeof state6 == "object") - copy(state6, xg); + if (state) { + if (typeof state == "object") + copy(state, xg); prng.state = function() { return copy(xg, {}); }; @@ -516,7 +516,7 @@ var faceapi = (() => { } else { this.tychei = impl; } - })(exports3, typeof module == "object" && module, typeof define == "function" && define); + })(exports, 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((exports3, module) => { - (function(pool4, math) { + var require_seedrandom = __commonJS((exports, module) => { + (function(pool3, 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 seedrandom5(seed, options, callback) { + function seedrandom2(seed, options, callback) { var key = []; options = options == true ? {entropy: true} : options || {}; - var shortseed = mixkey(flatten4(options.entropy ? [seed, tostring(pool4)] : seed == null ? autoseed() : seed, 3), key); + var shortseed = mixkey(flatten2(options.entropy ? [seed, tostring(pool3)] : 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), pool4); - return (options.pass || callback || function(prng2, seed2, is_math_call, state6) { - if (state6) { - if (state6.S) { - copy(state6, arc4); + mixkey(tostring(arc4.S), pool3); + return (options.pass || callback || function(prng2, seed2, is_math_call, state) { + if (state) { + if (state.S) { + copy(state, 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] = seedrandom5; + math["seed" + rngname] = seedrandom2; 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(count2) { + (me.g = function(count) { var t2, r = 0, i2 = me.i, j2 = me.j, s2 = me.S; - while (count2--) { + while (count--) { 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 flatten4(obj, depth) { + function flatten2(obj, depth) { var result = [], typ = typeof obj, prop; if (depth && typ == "object") { for (prop in obj) { try { - result.push(flatten4(obj[prop], depth - 1)); + result.push(flatten2(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(pool4)]; + return [+new Date(), global2, plugins, global2.screen, tostring(pool3)]; } } function tostring(a) { return String.fromCharCode.apply(0, a); } - mixkey(math.random(), pool4); + mixkey(math.random(), pool3); if (typeof module == "object" && module.exports) { - module.exports = seedrandom5; + module.exports = seedrandom2; try { nodecrypto = require_disabled_crypto(); } catch (ex) { } } else if (typeof define == "function" && define.amd) { define(function() { - return seedrandom5; + return seedrandom2; }); } })([], Math); }); // node_modules/seedrandom/index.js - var require_seedrandom2 = __commonJS((exports3, module) => { - var alea5 = require_alea(); + var require_seedrandom2 = __commonJS((exports, module) => { + var alea2 = 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 = alea5; + sr.alea = alea2; sr.xor128 = xor128; sr.xorwow = xorwow; sr.xorshift7 = xorshift7; @@ -671,17 +671,9 @@ 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((exports3, module) => { - __export(exports3, { + var require_isNodejs = __commonJS((exports, module) => { + __export(exports, { isNodejs: () => isNodejs3 }); function isNodejs3() { @@ -690,8 +682,8 @@ var faceapi = (() => { }); // build/index.js - var require_build = __commonJS((exports3) => { - __export(exports3, { + var require_build = __commonJS((exports) => { + __export(exports, { AgeGenderNet: () => AgeGenderNet, BoundingBox: () => BoundingBox, Box: () => Box, @@ -708,6 +700,7 @@ var faceapi = (() => { Dimensions: () => Dimensions, FACE_EXPRESSION_LABELS: () => FACE_EXPRESSION_LABELS, FaceDetection: () => FaceDetection, + FaceDetectionNet: () => FaceDetectionNet, FaceExpressionNet: () => FaceExpressionNet, FaceExpressions: () => FaceExpressions, FaceLandmark68Net: () => FaceLandmark68Net, @@ -728,17 +721,24 @@ var faceapi = (() => { Point: () => Point, PredictedBox: () => PredictedBox, Rect: () => Rect, + SsdMobilenetv1: () => SsdMobilenetv1, + SsdMobilenetv1Options: () => SsdMobilenetv1Options, TinyFaceDetector: () => TinyFaceDetector, TinyFaceDetectorOptions: () => TinyFaceDetectorOptions, TinyYolov2: () => TinyYolov2, TinyYolov2Options: () => TinyYolov2Options, TinyYolov2SizeType: () => TinyYolov2SizeType, + allFaces: () => allFaces, + allFacesSsdMobilenetv1: () => allFacesSsdMobilenetv1, + allFacesTinyYolov2: () => allFacesTinyYolov2, awaitMediaLoaded: () => awaitMediaLoaded, bufferToImage: () => bufferToImage, computeFaceDescriptor: () => computeFaceDescriptor, - createCanvas: () => createCanvas2, + createCanvas: () => createCanvas, createCanvasFromMedia: () => createCanvasFromMedia, + createFaceDetectionNet: () => createFaceDetectionNet, createFaceRecognitionNet: () => createFaceRecognitionNet, + createSsdMobilenetv1: () => createSsdMobilenetv1, createTinyFaceDetector: () => createTinyFaceDetector, createTinyYolov2: () => createTinyYolov2, detectAllFaces: () => detectAllFaces, @@ -780,6 +780,7 @@ var faceapi = (() => { loadFaceLandmarkModel: () => loadFaceLandmarkModel, loadFaceLandmarkTinyModel: () => loadFaceLandmarkTinyModel, loadFaceRecognitionModel: () => loadFaceRecognitionModel, + loadSsdMobilenetv1Model: () => loadSsdMobilenetv1Model, loadTinyFaceDetectorModel: () => loadTinyFaceDetectorModel, loadTinyYolov2Model: () => loadTinyYolov2Model, loadWeightMap: () => loadWeightMap, @@ -796,8 +797,10 @@ var faceapi = (() => { resolveInput: () => resolveInput, shuffleArray: () => shuffleArray, sigmoid: () => sigmoid6, - tf: () => dist_exports2, + ssdMobilenetv1: () => ssdMobilenetv1, + tf: () => dist_exports, tinyFaceDetector: () => tinyFaceDetector, + tinyYolov2: () => tinyYolov23, toNetInput: () => toNetInput, utils: () => utils_exports, validateConfig: () => validateConfig @@ -1289,20 +1292,20 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function shuffle(array2) { - let counter = array2.length; + function shuffle(array) { + let counter = array.length; let temp = 0; let index = 0; while (counter > 0) { index = Math.random() * counter | 0; counter--; - temp = array2[counter]; - array2[counter] = array2[index]; - array2[index] = temp; + temp = array[counter]; + array[counter] = array[index]; + array[index] = temp; } } - function clamp(min6, x, max8) { - return Math.max(min6, Math.min(x, max8)); + function clamp(min5, x, max7) { + return Math.max(min5, Math.min(x, max7)); } function nearestLargerEven(val) { return val % 2 === 0 ? val : val + 1; @@ -1685,11 +1688,11 @@ var faceapi = (() => { return a instanceof Float32Array && dtype === "float32" || a instanceof Int32Array && dtype === "int32" || a instanceof Uint8Array && dtype === "bool"; } function makeOnesTypedArray(size, dtype) { - const array2 = makeZerosTypedArray(size, dtype); - for (let i = 0; i < array2.length; i++) { - array2[i] = 1; + const array = makeZerosTypedArray(size, dtype); + for (let i = 0; i < array.length; i++) { + array[i] = 1; } - return array2; + return array; } function makeZerosTypedArray(size, dtype) { if (dtype == null || dtype === "float32" || dtype === "complex64") { @@ -1836,9 +1839,9 @@ var faceapi = (() => { const shape = rightPad(result.shape.toString(), 14); let inputShapesDescription = ""; for (const name2 in inputs) { - const input2 = inputs[name2]; - if (input2 != null) { - const inputShape = input2.shape || result.shape; + const input = inputs[name2]; + if (input != null) { + const inputShape = input.shape || result.shape; const inputRank = inputShape.length; inputShapesDescription += `${name2}: ${inputRank}D ${inputRank > 0 ? inputShape : ""} `; } @@ -1874,10 +1877,10 @@ var faceapi = (() => { const node = tape2[i]; const nodeInputs = node.inputs; for (const inputName in nodeInputs) { - const input2 = nodeInputs[inputName]; + const input = nodeInputs[inputName]; let anyInputFromX = false; for (let j = 0; j < xs.length; j++) { - if (tensorsFromX[input2.id]) { + if (tensorsFromX[input.id]) { node.outputs.forEach((output) => tensorsFromX[output.id] = true); anyInputFromX = true; nodesFromX[node.id] = true; @@ -1924,7 +1927,7 @@ var faceapi = (() => { } return filteredTape; } - function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy2, add30) { + function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy2, add29) { for (let i = filteredTape.length - 1; i >= 0; i--) { const node = filteredTape[i]; const dys = []; @@ -1956,7 +1959,7 @@ var faceapi = (() => { tensorAccumulatedGradientMap[x.id] = dx; } else { const curGradient = tensorAccumulatedGradientMap[x.id]; - tensorAccumulatedGradientMap[x.id] = add30(curGradient, dx); + tensorAccumulatedGradientMap[x.id] = add29(curGradient, dx); curGradient.dispose(); } } @@ -2456,18 +2459,18 @@ var faceapi = (() => { walkTensorContainer(result, list, seen); return list; } - function walkTensorContainer(container2, list, seen) { - if (container2 == null) { + function walkTensorContainer(container, list, seen) { + if (container == null) { return; } - if (container2 instanceof Tensor) { - list.push(container2); + if (container instanceof Tensor) { + list.push(container); return; } - if (!isIterable(container2)) { + if (!isIterable(container)) { return; } - const iterable = container2; + const iterable = container; for (const k in iterable) { const val = iterable[k]; if (!seen.has(val)) { @@ -2521,8 +2524,8 @@ var faceapi = (() => { } } class Engine { - constructor(ENV4) { - this.ENV = ENV4; + constructor(ENV3) { + this.ENV = ENV3; this.registry = {}; this.registryFactory = {}; this.pendingBackendInitId = 0; @@ -3120,8 +3123,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((input2, i) => { - inputMap[i] = input2; + inputs.forEach((input, i) => { + inputMap[i] = input; }); return this.runKernelFunc((_, save) => { res = f(...[...inputs, save]); @@ -4453,8 +4456,8 @@ var faceapi = (() => { function tidy(nameOrFn, fn) { return ENGINE.tidy(nameOrFn, fn); } - function dispose(container2) { - const tensors = getTensorsInContainer(container2); + function dispose(container) { + const tensors = getTensorsInContainer(container); tensors.forEach((tensor17) => tensor17.dispose()); } function keep(result) { @@ -4839,11 +4842,11 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - 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 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 maskToAxes(mask) { @@ -5372,36 +5375,36 @@ var faceapi = (() => { * ============================================================================= */ function broadcastTo_(x, shape) { - let input2 = convertToTensor(x, "broadcastTo", "x"); - const xShape = input2.shape; + let input = convertToTensor(x, "broadcastTo", "x"); + const xShape = input.shape; if (shape.some((d) => !(d > 0) || d % 1 !== 0)) { throw new Error(`broadcastTo(): Invalid broadcast shape [${shape}].`); } - if (shape.length < input2.rank) { - throw new Error(`broadcastTo(): shape.length=${shape.length} < input.rank=${input2.rank}.`); + if (shape.length < input.rank) { + throw new Error(`broadcastTo(): shape.length=${shape.length} < input.rank=${input.rank}.`); } - if (shape.length > input2.rank) { - const newShape = input2.shape.slice(); + if (shape.length > input.rank) { + const newShape = input.shape.slice(); while (newShape.length < shape.length) { newShape.unshift(1); } - input2 = reshape(input2, newShape); + input = reshape(input, newShape); } - const inputShape = input2.shape; + const inputShape = input.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 (input2.shape[i] !== 1) { + } else if (input.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(input2); + return clone(input); } - const forward = (backend2) => backend2.tile(input2, reps); - const inputs = {x: input2}; + const forward = (backend2) => backend2.tile(input, reps); + const inputs = {x: input}; const attrs = {shape, inputShape}; return ENGINE.runKernelFunc(forward, inputs, null, BroadcastTo, attrs); } @@ -6291,9 +6294,9 @@ var faceapi = (() => { let $b = convertToTensor(b, "b", "div"); [$a, $b] = makeTypesMatch($a, $b); const divResult = div($a, $b); - const zeros10 = zerosLike(divResult); - const bEqualsZero = equal($b, zeros10); - return where(bEqualsZero, zeros10, divResult); + const zeros9 = zerosLike(divResult); + const bEqualsZero = equal($b, zeros9); + return where(bEqualsZero, zeros9, divResult); } const divNoNan = op({divNoNan_}); @@ -6590,15 +6593,15 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function fft_(input2) { - assert(input2.dtype === "complex64", () => `The dtype for tf.spectral.fft() must be complex64 but got ${input2.dtype}.`); - const inputs = {input: input2}; + function fft_(input) { + assert(input.dtype === "complex64", () => `The dtype for tf.spectral.fft() must be complex64 but got ${input.dtype}.`); + const inputs = {input}; return ENGINE.runKernelFunc((backend2) => { - const innerDimensionSize = input2.shape[input2.shape.length - 1]; - const batch = input2.size / innerDimensionSize; - const input2D = input2.as2D(batch, innerDimensionSize); + const innerDimensionSize = input.shape[input.shape.length - 1]; + const batch = input.size / innerDimensionSize; + const input2D = input.as2D(batch, innerDimensionSize); const result = backend2.fft(input2D); - return result.reshape(input2.shape); + return result.reshape(input.shape); }, inputs, null, FFT); } const fft = op({fft_}); @@ -6856,15 +6859,15 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function ifft_(input2) { - assert(input2.dtype === "complex64", () => `The dtype for tf.spectral.ifft() must be complex64 but got ${input2.dtype}.`); - const inputs = {input: input2}; + function ifft_(input) { + assert(input.dtype === "complex64", () => `The dtype for tf.spectral.ifft() must be complex64 but got ${input.dtype}.`); + const inputs = {input}; return ENGINE.runKernelFunc((backend2) => { - const innerDimensionSize = input2.shape[input2.shape.length - 1]; - const batch = input2.size / innerDimensionSize; - const input2D = reshape(input2, [batch, innerDimensionSize]); + const innerDimensionSize = input.shape[input.shape.length - 1]; + const batch = input.size / innerDimensionSize; + const input2D = reshape(input, [batch, innerDimensionSize]); const result = backend2.ifft(input2D); - return reshape(result, input2.shape); + return reshape(result, input.shape); }, inputs, null, IFFT); } const ifft = op({ifft_}); @@ -6886,8 +6889,8 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function imag_(input2) { - const $input = convertToTensor(input2, "input", "imag"); + function imag_(input) { + const $input = convertToTensor(input, "input", "imag"); const forward = (backend2) => { return backend2.imag($input); }; @@ -6913,8 +6916,8 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function real_(input2) { - const $input = convertToTensor(input2, "input", "real"); + function real_(input) { + const $input = convertToTensor(input, "input", "real"); const forward = (backend2) => { return backend2.real($input); }; @@ -7002,17 +7005,17 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function irfft_(input2) { - const innerDimensionSize = input2.shape[input2.shape.length - 1]; - const batch = input2.size / innerDimensionSize; + function irfft_(input) { + const innerDimensionSize = input.shape[input.shape.length - 1]; + const batch = input.size / innerDimensionSize; let ret; if (innerDimensionSize <= 2) { - const complexInput = reshape(input2, [batch, innerDimensionSize]); + const complexInput = reshape(input, [batch, innerDimensionSize]); ret = ifft(complexInput); } else { const outputShape = [batch, 2 * (innerDimensionSize - 1)]; - const realInput = reshape(real(input2), [batch, innerDimensionSize]); - const imagInput = reshape(imag(input2), [batch, innerDimensionSize]); + const realInput = reshape(real(input), [batch, innerDimensionSize]); + const imagInput = reshape(imag(input), [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); @@ -7021,9 +7024,9 @@ var faceapi = (() => { ret = ifft(complexInput); } ret = real(ret); - if (input2.rank === 3 && input2.shape[0] !== 0) { + if (input.rank === 3 && input.shape[0] !== 0) { const temp = ret; - const batch2 = input2.shape[0]; + const batch2 = input.shape[0]; ret = reshape(ret, [batch2, ret.shape[0] / batch2, ret.shape[1]]); temp.dispose(); } @@ -8231,13 +8234,13 @@ var faceapi = (() => { const $data = convertToTensor(data, "data", "multiRNNCell"); const $c = convertToTensorArray(c, "c", "multiRNNCell"); const $h = convertToTensorArray(h, "h", "multiRNNCell"); - let input2 = $data; + let input = $data; const newStates = []; for (let i = 0; i < lstmCells.length; i++) { - const output = lstmCells[i](input2, $c[i], $h[i]); + const output = lstmCells[i](input, $c[i], $h[i]); newStates.push(output[0]); newStates.push(output[1]); - input2 = output[1]; + input = output[1]; } const newC = []; const newH = []; @@ -8498,7 +8501,7 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function pool_(input2, windowShape, poolingType, pad8, dilations, strides) { + function pool_(input, windowShape, poolingType, pad8, dilations, strides) { if (dilations == null) { dilations = [1, 1]; } @@ -8508,7 +8511,7 @@ var faceapi = (() => { if (pad8 === 0) { pad8 = "valid"; } - const $x = convertToTensor(input2, "x", "maxPool"); + const $x = convertToTensor(input, "x", "maxPool"); let x4D = $x; let reshapedTo4D = false; if ($x.rank === 3) { @@ -8951,10 +8954,10 @@ Expected: ${expectedFlat}.`); } } class UniformRandom { - constructor(min6 = 0, max8 = 1, dtype, seed) { + constructor(min5 = 0, max7 = 1, dtype, seed) { this.canReturnFloat = () => this.dtype == null || this.dtype === "float32"; - this.min = min6; - this.range = max8 - min6; + this.min = min5; + this.range = max7 - min5; this.dtype = dtype; if (seed == null) { seed = Math.random(); @@ -8963,7 +8966,7 @@ Expected: ${expectedFlat}.`); seed = seed.toString(); } if (!this.canReturnFloat() && this.range <= 1) { - throw new Error(`The difference between ${min6} - ${max8} <= 1 and dtype is not float`); + throw new Error(`The difference between ${min5} - ${max7} <= 1 and dtype is not float`); } this.random = seedrandom.alea(seed); } @@ -9334,11 +9337,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((count2, value) => { + const numOfNegs = numOrSizeSplits.reduce((count, value) => { if (value === -1) { - count2 += 1; + count += 1; } - return count2; + return count; }, 0); assert(numOfNegs <= 1, () => "There should be only one negative value in split array."); const negIndex = numOrSizeSplits.indexOf(-1); @@ -9399,24 +9402,24 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - 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; + 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; let adjustedInput; if (fftLength != null && fftLength < innerDimensionSize) { - 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); + 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); innerDimensionSize = fftLength; } else if (fftLength != null && fftLength > innerDimensionSize) { - const zerosShape = input2.shape.map((v) => v); - zerosShape[input2.shape.length - 1] = fftLength - innerDimensionSize; - adjustedInput = concat([input2, zeros(zerosShape)], input2.shape.length - 1); + const zerosShape = input.shape.map((v) => v); + zerosShape[input.shape.length - 1] = fftLength - innerDimensionSize; + adjustedInput = concat([input, zeros(zerosShape)], input.shape.length - 1); innerDimensionSize = fftLength; } else { - adjustedInput = input2; + adjustedInput = input; } const zerosInput = zerosLike(adjustedInput); const complexInput = reshape(complex(adjustedInput, zerosInput), [batch, innerDimensionSize]); @@ -11041,7 +11044,7 @@ Expected: ${expectedFlat}.`); const predictionsVals = await $predictions.data(); const targetsVals = await $targets.data(); const [batch, size] = [predictionsVals.length / lastDim, lastDim]; - const precision3 = getTypedArrayFromDType("bool", batch); + const precision = getTypedArrayFromDType("bool", batch); for (let b = 0; b < batch; b++) { const offset = b * size; const vals = predictionsVals.subarray(offset, offset + size); @@ -11050,10 +11053,10 @@ Expected: ${expectedFlat}.`); valAndInd.push({value: vals[i], index: i}); } valAndInd.sort((a, b2) => b2.value - a.value); - precision3[b] = 0; + precision[b] = 0; for (let i = 0; i < k; i++) { if (valAndInd[i].index === targetsVals[b]) { - precision3[b] = 1; + precision[b] = 1; break; } } @@ -11064,7 +11067,7 @@ Expected: ${expectedFlat}.`); if (targets !== $targets) { $targets.dispose(); } - return tensor5(precision3, $targets.shape, "bool"); + return tensor5(precision, $targets.shape, "bool"); } const inTopKAsync = inTopKAsync_; @@ -11133,14 +11136,14 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function getFusedDyActivation(dy, y, activation2) { - if (activation2 == null || activation2 === "linear") { + function getFusedDyActivation(dy, y, activation) { + if (activation == null || activation === "linear") { return dy; } - if (activation2 === "relu") { + if (activation === "relu") { return mul(dy, step(y)); } - throw new Error(`Cannot compute gradient for fused activation ${activation2}.`); + throw new Error(`Cannot compute gradient for fused activation ${activation}.`); } function getFusedBiasGradient(bias, dyActivation) { let res = dyActivation; @@ -11150,23 +11153,23 @@ Expected: ${expectedFlat}.`); } return reshape(res, bias.shape); } - function applyActivation(x, activation2, preluActivationWeights) { - if (activation2 === "linear") { + function applyActivation(x, activation, preluActivationWeights) { + if (activation === "linear") { return x; - } else if (activation2 === "relu") { + } else if (activation === "relu") { return relu(x); - } else if (activation2 === "elu") { + } else if (activation === "elu") { return elu(x); - } else if (activation2 === "relu6") { + } else if (activation === "relu6") { return relu6(x); - } else if (activation2 === "prelu") { + } else if (activation === "prelu") { return prelu(x, preluActivationWeights); } - throw new Error(`Unknown fused activation ${activation2}.`); + throw new Error(`Unknown fused activation ${activation}.`); } - const shouldFuse = (gradientDepth, activation2) => { + const shouldFuse = (gradientDepth, activation) => { const gradientMode = gradientDepth > 0; - return !gradientMode || activation2 === "linear"; + return !gradientMode || activation === "linear"; }; // node_modules/@tensorflow/tfjs-core/dist/ops/fused_conv2d.js @@ -11186,14 +11189,14 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - 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) { + 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) { let result = conv2d(x, filter, strides, pad8, dataFormat, dilations, dimRoundingMode); if (bias != null) { result = add2(result, bias); } - return applyActivation(result, activation2, preluActivationWeights); + return applyActivation(result, activation, preluActivationWeights); } const $x = convertToTensor(x, "x", "conv2d"); const $filter = convertToTensor(filter, "filter", "conv2d"); @@ -11224,7 +11227,7 @@ Expected: ${expectedFlat}.`); } const grad2 = (dy, saved) => { const [$filter2, x4D2, y, $bias2] = saved; - const dyActivation = getFusedDyActivation(dy, y, activation2); + const dyActivation = getFusedDyActivation(dy, y, activation); 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); @@ -11241,7 +11244,7 @@ Expected: ${expectedFlat}.`); filter: $filter, convInfo, bias: $bias, - activation: activation2, + activation, preluActivationWeights: $preluActivationWeights }); return res; @@ -11252,7 +11255,7 @@ Expected: ${expectedFlat}.`); bias: $bias, preluActivationWeights: $preluActivationWeights }; - const attrs = {strides, pad: pad8, dataFormat, dilations, dimRoundingMode, activation: activation2}; + const attrs = {strides, pad: pad8, dataFormat, dilations, dimRoundingMode, activation}; if (bias == null) { const customOp = customGrad((x4D2, filter2, save) => { let res = ENGINE.runKernelFunc(forward, inputs, null, FusedConv2D, attrs); @@ -11360,13 +11363,13 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - 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) { + function fusedDepthwiseConv2d_({x, filter, strides, pad: pad8, dataFormat = "NHWC", dilations = [1, 1], dimRoundingMode, bias, activation = "linear", preluActivationWeights}) { + if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) { let result = depthwiseConv2d(x, filter, strides, pad8, dataFormat, dilations, dimRoundingMode); if (bias != null) { result = add2(result, bias); } - return applyActivation(result, activation2, preluActivationWeights); + return applyActivation(result, activation, preluActivationWeights); } const $x = convertToTensor(x, "x", "depthwiseConv2d"); const $filter = convertToTensor(filter, "filter", "depthwiseConv2d"); @@ -11400,7 +11403,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, activation2); + const dyActivation = getFusedDyActivation(dy, y, activation); const xDer = depthwiseConv2dNativeBackpropInput(x4D2.shape, dyActivation, $filter2, convInfo); const filterDer = depthwiseConv2dNativeBackpropFilter(x4D2, dyActivation, $filter2.shape, convInfo); if (bias2 != null) { @@ -11415,7 +11418,7 @@ Expected: ${expectedFlat}.`); filter: $filter, convInfo, bias: $bias, - activation: activation2, + activation, preluActivationWeights: $preluActivationWeights }); return res; @@ -11426,7 +11429,7 @@ Expected: ${expectedFlat}.`); bias: $bias, preluActivationWeights: $preluActivationWeights }; - const attrs = {strides, pad: pad8, dataFormat, dilations, dimRoundingMode, activation: activation2}; + const attrs = {strides, pad: pad8, dataFormat, dilations, dimRoundingMode, activation}; if (bias == null) { const customOp = customGrad((x4D2, filter2, save) => { let res = ENGINE.runKernelFunc(forward, inputs, null, FusedDepthwiseConv2D, attrs); @@ -11468,13 +11471,13 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function fusedMatMul_({a, b, transposeA = false, transposeB = false, bias, activation: activation2 = "linear", preluActivationWeights}) { - if (shouldFuse(ENGINE.state.gradientDepth, activation2) === false) { + function fusedMatMul_({a, b, transposeA = false, transposeB = false, bias, activation = "linear", preluActivationWeights}) { + if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) { let result = matMul(a, b, transposeA, transposeB); if (bias != null) { result = add2(result, bias); } - return applyActivation(result, activation2, preluActivationWeights); + return applyActivation(result, activation, preluActivationWeights); } let $a = convertToTensor(a, "a", "fused matMul"); let $b = convertToTensor(b, "b", "fused matMul"); @@ -11505,7 +11508,7 @@ Expected: ${expectedFlat}.`); } const grad2 = (dy, saved) => { const [a3D2, b3D2, y, $bias2] = saved; - const dyActivation = getFusedDyActivation(reshape(dy, y.shape), y, activation2); + const dyActivation = getFusedDyActivation(reshape(dy, y.shape), y, activation); let aDer; let bDer; if (!transposeA && !transposeB) { @@ -11535,7 +11538,7 @@ Expected: ${expectedFlat}.`); transposeA, transposeB, bias: $bias, - activation: activation2, + activation, preluActivationWeights: $preluActivationWeights }); return y; @@ -11546,7 +11549,7 @@ Expected: ${expectedFlat}.`); bias: $bias, preluActivationWeights: $preluActivationWeights }; - const attrs = {transposeA, transposeB, activation: activation2}; + const attrs = {transposeA, transposeB, activation}; if (bias == null) { const customOp = customGrad((a3D2, b3D2, save) => { const res = ENGINE.runKernelFunc(forward, inputs, null, _FusedMatMul, attrs); @@ -11723,8 +11726,8 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function cropAndResize_(image3, boxes, boxInd, cropSize, method, extrapolationValue) { - const $image = convertToTensor(image3, "image", "cropAndResize"); + function cropAndResize_(image2, boxes, boxInd, cropSize, method, extrapolationValue) { + const $image = convertToTensor(image2, "image", "cropAndResize"); const $boxes = convertToTensor(boxes, "boxes", "cropAndResize", "float32"); const $boxInd = convertToTensor(boxInd, "boxInd", "cropAndResize", "int32"); method = method || "bilinear"; @@ -11761,8 +11764,8 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function flipLeftRight_(image3) { - const $image = convertToTensor(image3, "image", "flipLeftRight", "float32"); + function flipLeftRight_(image2) { + const $image = convertToTensor(image2, "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, {}); @@ -11787,8 +11790,8 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function rotateWithOffset_(image3, radians, fillValue = 0, center = 0.5) { - const $image = convertToTensor(image3, "image", "rotateWithOffset", "float32"); + function rotateWithOffset_(image2, radians, fillValue = 0, center = 0.5) { + const $image = convertToTensor(image2, "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}; @@ -12511,20 +12514,20 @@ Expected: ${expectedFlat}.`); })(Reduction || (Reduction = {})); // node_modules/@tensorflow/tfjs-core/dist/ops/compute_weighted_loss.js - function computeWeightedLoss_(losses8, weights, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { - const $losses = convertToTensor(losses8, "losses", "computeWeightedLoss"); + function computeWeightedLoss_(losses2, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { + const $losses = convertToTensor(losses2, "losses", "computeWeightedLoss"); let $weights = null; if (weights != null) { $weights = convertToTensor(weights, "weights", "computeWeightedLoss"); } const weightedLoss = $weights == null ? $losses : mul($losses, $weights); - if (reduction2 === Reduction.NONE) { + if (reduction === Reduction.NONE) { return weightedLoss; } - if (reduction2 === Reduction.SUM) { + if (reduction === Reduction.SUM) { return sum2(weightedLoss); } - if (reduction2 === Reduction.MEAN) { + if (reduction === Reduction.MEAN) { if ($weights == null) { return mean(weightedLoss); } else { @@ -12533,7 +12536,7 @@ Expected: ${expectedFlat}.`); return broadcastFactor > 1 ? div(result, scalar(broadcastFactor)) : result; } } - if (reduction2 === Reduction.SUM_BY_NONZERO_WEIGHTS) { + if (reduction === Reduction.SUM_BY_NONZERO_WEIGHTS) { if ($weights == null) { return div(sum2(weightedLoss), scalar($losses.size)); } else { @@ -12542,7 +12545,7 @@ Expected: ${expectedFlat}.`); return div(sum2(weightedLoss), numNonZeros); } } - throw Error(`Unknown reduction: ${reduction2}`); + throw Error(`Unknown reduction: ${reduction}`); } const computeWeightedLoss = op({computeWeightedLoss_}); @@ -12563,7 +12566,7 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function absoluteDifference_(labels, predictions, weights, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function absoluteDifference_(labels, predictions, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { const $labels = convertToTensor(labels, "labels", "absoluteDifference"); const $predictions = convertToTensor(predictions, "predictions", "absoluteDifference"); let $weights = null; @@ -12571,13 +12574,13 @@ Expected: ${expectedFlat}.`); $weights = convertToTensor(weights, "weights", "absoluteDifference"); } assertShapesMatch($labels.shape, $predictions.shape, "Error in absoluteDifference: "); - const losses8 = abs(sub($labels, $predictions)); - return computeWeightedLoss(losses8, $weights, reduction2); + const losses2 = abs(sub($labels, $predictions)); + return computeWeightedLoss(losses2, $weights, reduction); } const absoluteDifference = op({absoluteDifference_}); // node_modules/@tensorflow/tfjs-core/dist/ops/cosine_distance.js - function cosineDistance_(labels, predictions, axis, weights, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function cosineDistance_(labels, predictions, axis, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { const $labels = convertToTensor(labels, "labels", "cosineDistance"); const $predictions = convertToTensor(predictions, "predictions", "cosineDistance"); let $weights = null; @@ -12586,13 +12589,13 @@ Expected: ${expectedFlat}.`); } assertShapesMatch($labels.shape, $predictions.shape, "Error in cosineDistance: "); const one = scalar(1); - const losses8 = sub(one, sum2(mul($labels, $predictions), axis, true)); - return computeWeightedLoss(losses8, $weights, reduction2); + const losses2 = sub(one, sum2(mul($labels, $predictions), axis, true)); + return computeWeightedLoss(losses2, $weights, reduction); } const cosineDistance = op({cosineDistance_}); // node_modules/@tensorflow/tfjs-core/dist/ops/hinge_loss.js - function hingeLoss_(labels, predictions, weights, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function hingeLoss_(labels, predictions, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { let $labels = convertToTensor(labels, "labels", "hingeLoss"); const $predictions = convertToTensor(predictions, "predictions", "hingeLoss"); let $weights = null; @@ -12602,8 +12605,8 @@ Expected: ${expectedFlat}.`); assertShapesMatch($labels.shape, $predictions.shape, "Error in hingeLoss: "); const one = scalar(1); $labels = sub(mul(scalar(2), $labels), one); - const losses8 = relu(sub(one, mul($labels, $predictions))); - return computeWeightedLoss(losses8, $weights, reduction2); + const losses2 = relu(sub(one, mul($labels, $predictions))); + return computeWeightedLoss(losses2, $weights, reduction); } const hingeLoss = op({hingeLoss_}); @@ -12624,7 +12627,7 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function huberLoss_(labels, predictions, weights, delta = 1, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function huberLoss_(labels, predictions, weights, delta = 1, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { const $labels = convertToTensor(labels, "labels", "huberLoss"); const $predictions = convertToTensor(predictions, "predictions", "huberLoss"); let $weights = null; @@ -12636,8 +12639,8 @@ Expected: ${expectedFlat}.`); const error = abs(sub($predictions, $labels)); const quadratic = minimum(error, deltaScalar); const linear = sub(error, quadratic); - const losses8 = add2(mul(scalar(0.5), square(quadratic)), mul(deltaScalar, linear)); - return computeWeightedLoss(losses8, $weights, reduction2); + const losses2 = add2(mul(scalar(0.5), square(quadratic)), mul(deltaScalar, linear)); + return computeWeightedLoss(losses2, $weights, reduction); } const huberLoss = op({huberLoss_}); @@ -12658,7 +12661,7 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function logLoss_(labels, predictions, weights, epsilon2 = 1e-7, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function logLoss_(labels, predictions, weights, epsilon2 = 1e-7, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { const $labels = convertToTensor(labels, "labels", "logLoss"); const $predictions = convertToTensor(predictions, "predictions", "logLoss"); let $weights = null; @@ -12668,10 +12671,10 @@ Expected: ${expectedFlat}.`); assertShapesMatch($labels.shape, $predictions.shape, "Error in logLoss: "); const one = scalar(1); 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 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 logLoss = op({logLoss_}); @@ -12692,7 +12695,7 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function meanSquaredError_(labels, predictions, weights, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function meanSquaredError_(labels, predictions, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { const $labels = convertToTensor(labels, "labels", "meanSquaredError"); const $predictions = convertToTensor(predictions, "predictions", "meanSquaredError"); let $weights = null; @@ -12700,8 +12703,8 @@ Expected: ${expectedFlat}.`); $weights = convertToTensor(weights, "weights", "meanSquaredError"); } assertShapesMatch($labels.shape, $predictions.shape, "Error in meanSquaredError: "); - const losses8 = squaredDifference($labels, $predictions); - return computeWeightedLoss(losses8, $weights, reduction2); + const losses2 = squaredDifference($labels, $predictions); + return computeWeightedLoss(losses2, $weights, reduction); } const meanSquaredError = op({meanSquaredError_}); @@ -12731,7 +12734,7 @@ Expected: ${expectedFlat}.`); const sigmoidOutput = log1p(exp(neg(abs($logits)))); return add2(sub(maxOutput, outputXTarget), sigmoidOutput); } - function sigmoidCrossEntropy_(multiClassLabels, logits, weights, labelSmoothing = 0, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function sigmoidCrossEntropy_(multiClassLabels, logits, weights, labelSmoothing = 0, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { let $multiClassLabels = convertToTensor(multiClassLabels, "multiClassLabels", "sigmoidCrossEntropy"); const $logits = convertToTensor(logits, "logits", "sigmoidCrossEntropy"); let $weights = null; @@ -12745,8 +12748,8 @@ Expected: ${expectedFlat}.`); const half = scalar(0.5); $multiClassLabels = add2(mul($multiClassLabels, sub(one, labelSmoothingScalar)), mul(half, labelSmoothingScalar)); } - const losses8 = sigmoidCrossEntropyWithLogits_($multiClassLabels, $logits); - return computeWeightedLoss(losses8, $weights, reduction2); + const losses2 = sigmoidCrossEntropyWithLogits_($multiClassLabels, $logits); + return computeWeightedLoss(losses2, $weights, reduction); } const sigmoidCrossEntropy = op({sigmoidCrossEntropy_}); @@ -12793,7 +12796,7 @@ Expected: ${expectedFlat}.`); }); return customOp(labels, logits); } - function softmaxCrossEntropy_(onehotLabels, logits, weights, labelSmoothing = 0, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function softmaxCrossEntropy_(onehotLabels, logits, weights, labelSmoothing = 0, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { let $onehotLabels = convertToTensor(onehotLabels, "onehotLabels", "softmaxCrossEntropy"); const $logits = convertToTensor(logits, "logits", "softmaxCrossEntropy"); let $weights = null; @@ -12807,8 +12810,8 @@ Expected: ${expectedFlat}.`); const numClasses = scalar($onehotLabels.shape[1]); $onehotLabels = add2(mul($onehotLabels, sub(one, labelSmoothingScalar)), div(labelSmoothingScalar, numClasses)); } - const losses8 = softmaxCrossEntropyWithLogits_($onehotLabels, $logits); - return computeWeightedLoss(losses8, $weights, reduction2); + const losses2 = softmaxCrossEntropyWithLogits_($onehotLabels, $logits); + return computeWeightedLoss(losses2, $weights, reduction); } const softmaxCrossEntropy = op({softmaxCrossEntropy_}); @@ -13262,13 +13265,13 @@ Expected: ${expectedFlat}.`); } else if (dtype === "complex64") { values = new Float32Array(byteBuffer); const real6 = new Float32Array(values.length / 2); - const image3 = new Float32Array(values.length / 2); + const image2 = new Float32Array(values.length / 2); for (let i = 0; i < real6.length; i++) { real6[i] = values[i * 2]; - image3[i] = values[i * 2 + 1]; + image2[i] = values[i * 2 + 1]; } const realTensor = tensor5(real6, shape, "float32"); - const imageTensor = tensor5(image3, shape, "float32"); + const imageTensor = tensor5(image2, shape, "float32"); out[name] = complex(realTensor, imageTensor); } else { throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`); @@ -14662,8 +14665,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } } async getWeights() { - const variables5 = [...this.accumulatedGrads, ...this.accumulatedUpdates]; - return [await this.saveIterations()].concat(variables5.map((v) => ({name: v.originalName, tensor: v.variable}))); + const variables = [...this.accumulatedGrads, ...this.accumulatedUpdates]; + return [await this.saveIterations()].concat(variables.map((v) => ({name: v.originalName, tensor: v.variable}))); } async setWeights(weightValues) { weightValues = await this.extractIterations(weightValues); @@ -14852,8 +14855,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } } async getWeights() { - const variables5 = [...this.accumulatedFirstMoment, ...this.accumulatedSecondMoment]; - return [await this.saveIterations()].concat(variables5.map((v) => ({name: v.originalName, tensor: v.variable}))); + const variables = [...this.accumulatedFirstMoment, ...this.accumulatedSecondMoment]; + return [await this.saveIterations()].concat(variables.map((v) => ({name: v.originalName, tensor: v.variable}))); } async setWeights(weightValues) { weightValues = await this.extractIterations(weightValues); @@ -15248,11 +15251,11 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } } async getWeights() { - const variables5 = [...this.accumulatedMeanSquares, ...this.accumulatedMoments]; + const variables = [...this.accumulatedMeanSquares, ...this.accumulatedMoments]; if (this.centered) { - variables5.push(...this.accumulatedMeanGrads); + variables.push(...this.accumulatedMeanGrads); } - return [await this.saveIterations()].concat(variables5.map((v) => ({name: v.originalName, tensor: v.variable}))); + return [await this.saveIterations()].concat(variables.map((v) => ({name: v.originalName, tensor: v.variable}))); } async setWeights(weightValues) { weightValues = await this.extractIterations(weightValues); @@ -16015,7 +16018,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); batchMatMul(a, b, transposeA, transposeB) { return notYetImplemented("batchMatMul"); } - fusedBatchMatMul({a, b, transposeA, transposeB, bias, activation: activation2, preluActivationWeights}) { + fusedBatchMatMul({a, b, transposeA, transposeB, bias, activation, preluActivationWeights}) { return notYetImplemented("fusedBatchMatMul"); } slice(x, begin, size) { @@ -16201,7 +16204,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); int(x) { return notYetImplemented("int"); } - clip(x, min6, max8) { + clip(x, min5, max7) { return notYetImplemented("clip"); } abs(x) { @@ -16261,7 +16264,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); step(x, alpha) { return notYetImplemented("step"); } - fusedConv2d({input: input2, filter, convInfo, bias, activation: activation2, preluActivationWeights}) { + fusedConv2d({input, filter, convInfo, bias, activation, preluActivationWeights}) { return notYetImplemented("fusedConv2d"); } conv2d(x, filter, convInfo) { @@ -16273,10 +16276,10 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); conv2dDerFilter(x, dY, convInfo) { return notYetImplemented("conv2dDerFilter"); } - fusedDepthwiseConv2D({input: input2, filter, convInfo, bias, activation: activation2, preluActivationWeights}) { + fusedDepthwiseConv2D({input, filter, convInfo, bias, activation, preluActivationWeights}) { return notYetImplemented("fusedDepthwiseConv2D"); } - depthwiseConv2D(input2, filter, convInfo) { + depthwiseConv2D(input, filter, convInfo) { return notYetImplemented("depthwiseConv2D"); } depthwiseConv2DDerInput(dy, filter, convInfo) { @@ -16390,13 +16393,13 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); complex(real6, imag6) { return notYetImplemented("complex"); } - real(input2) { + real(input) { return notYetImplemented("real"); } - imag(input2) { + imag(input) { return notYetImplemented("imag"); } - cropAndResize(image3, boxes, boxIndex, cropSize, method, extrapolationValue) { + cropAndResize(image2, boxes, boxIndex, cropSize, method, extrapolationValue) { return notYetImplemented("cropAndResize"); } depthToSpace(x, blockSize, dataFormat) { @@ -16815,9 +16818,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * limitations under the License. * ============================================================================= */ - function avgPool3dBackprop_(dy, input2, filterSize, strides, dilations = [1, 1, 1], pad8, dimRoundingMode) { + function avgPool3dBackprop_(dy, input, filterSize, strides, dilations = [1, 1, 1], pad8, dimRoundingMode) { const $dy = convertToTensor(dy, "dy", "avgPool3dBackprop"); - const $input = convertToTensor(input2, "input", "avgPool3dBackprop"); + const $input = convertToTensor(input, "input", "avgPool3dBackprop"); let dy5D = $dy; let input5D = $input; let reshapedTo5D = false; @@ -16899,9 +16902,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * limitations under the License. * ============================================================================= */ - function avgPoolBackprop_(dy, input2, filterSize, strides, pad8) { + function avgPoolBackprop_(dy, input, filterSize, strides, pad8) { const $dy = convertToTensor(dy, "dy", "avgPoolBackprop"); - const $input = convertToTensor(input2, "input", "avgPoolBackprop"); + const $input = convertToTensor(input, "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; @@ -18038,8 +18041,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); return { logits: () => { const keepDims = true; - const softmax4 = exp(value); - return sub(dy, mul(sum2(dy, axis, keepDims), softmax4)); + const softmax3 = exp(value); + return sub(dy, mul(sum2(dy, axis, keepDims), softmax3)); } }; } @@ -18217,9 +18220,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * limitations under the License. * ============================================================================= */ - function maxPool3dBackprop_(dy, input2, output, filterSize, strides, dilations = [1, 1, 1], pad8, dimRoundingMode) { + function maxPool3dBackprop_(dy, input, output, filterSize, strides, dilations = [1, 1, 1], pad8, dimRoundingMode) { const $dy = convertToTensor(dy, "dy", "maxPool3dBackprop"); - const $input = convertToTensor(input2, "input", "maxPool3dBackprop"); + const $input = convertToTensor(input, "input", "maxPool3dBackprop"); const $output = convertToTensor(output, "output", "maxPool3dBackprop"); let dy5D = $dy; let input5D = $input; @@ -18312,9 +18315,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * limitations under the License. * ============================================================================= */ - function maxPoolBackprop_(dy, input2, output, filterSize, strides, pad8, dimRoundingMode) { + function maxPoolBackprop_(dy, input, output, filterSize, strides, pad8, dimRoundingMode) { const $dy = convertToTensor(dy, "dy", "maxPoolBackprop"); - const $input = convertToTensor(input2, "input", "maxPoolBackprop"); + const $input = convertToTensor(input, "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}.`); @@ -19799,35278 +19802,8 @@ 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, @@ -55096,8 +19829,6 @@ return (round(mod(b, 2.0)) != 1) ? BatchMatMul: () => BatchMatMul, BatchToSpaceND: () => BatchToSpaceND, BroadcastTo: () => BroadcastTo, - Callback: () => Callback, - CallbackList: () => CallbackList, Cast: () => Cast, Ceil: () => Ceil, ClipByValue: () => ClipByValue, @@ -55113,7 +19844,6 @@ return (round(mod(b, 2.0)) != 1) ? Cosh: () => Cosh, CropAndResize: () => CropAndResize, Cumsum: () => Cumsum, - CustomCallback: () => CustomCallback, DataStorage: () => DataStorage, DepthToSpace: () => DepthToSpace, DepthwiseConv2dNative: () => DepthwiseConv2dNative, @@ -55125,7 +19855,6 @@ return (round(mod(b, 2.0)) != 1) ? Dilation2DBackpropInput: () => Dilation2DBackpropInput, Div: () => Div, ENV: () => ENV, - EarlyStopping: () => EarlyStopping, Elu: () => Elu, EluGrad: () => EluGrad, Environment: () => Environment, @@ -55144,22 +19873,17 @@ return (round(mod(b, 2.0)) != 1) ? 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, @@ -55196,7 +19920,6 @@ return (round(mod(b, 2.0)) != 1) ? Prelu: () => Prelu, Prod: () => Prod, RMSPropOptimizer: () => RMSPropOptimizer, - RNN: () => RNN, Range: () => Range, Rank: () => Rank, Real: () => Real, @@ -55217,7 +19940,6 @@ return (round(mod(b, 2.0)) != 1) ? ScatterNd: () => ScatterNd, SelectV2: () => SelectV2, Selu: () => Selu, - Sequential: () => Sequential, Sigmoid: () => Sigmoid, Sign: () => Sign, Sin: () => Sin, @@ -55235,7 +19957,6 @@ return (round(mod(b, 2.0)) != 1) ? StridedSlice: () => StridedSlice, Sub: () => Sub, Sum: () => Sum, - SymbolicTensor: () => SymbolicTensor, Tan: () => Tan, Tanh: () => Tanh, Tensor: () => Tensor, @@ -55277,7 +19998,6 @@ return (round(mod(b, 2.0)) != 1) ? broadcastTo: () => broadcastTo, browser: () => browser_exports, buffer: () => buffer, - callbacks: () => callbacks, cast: () => cast, ceil: () => ceil, clipByValue: () => clipByValue, @@ -55288,7 +20008,6 @@ return (round(mod(b, 2.0)) != 1) ? concat2d: () => concat2d, concat3d: () => concat3d, concat4d: () => concat4d, - constraints: () => exports_constraints_exports, conv1d: () => conv1d, conv2d: () => conv2d, conv2dTranspose: () => conv2dTranspose, @@ -55299,11 +20018,9 @@ return (round(mod(b, 2.0)) != 1) ? 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, @@ -55352,8 +20069,6 @@ return (round(mod(b, 2.0)) != 1) ? imag: () => imag, image: () => image, inTopKAsync: () => inTopKAsync, - initializers: () => exports_initializers_exports, - input: () => input, io: () => io_exports, irfft: () => irfft, isFinite: () => isFinite2, @@ -55361,7 +20076,6 @@ return (round(mod(b, 2.0)) != 1) ? isNaN: () => isNaN2, keep: () => keep, kernel_impls: () => kernel_impls_exports, - layers: () => exports_layers_exports, leakyRelu: () => leakyRelu, less: () => less, lessEqual: () => lessEqual, @@ -55369,8 +20083,6 @@ return (round(mod(b, 2.0)) != 1) ? lessStrict: () => lessStrict, linalg: () => linalg, linspace: () => linspace, - loadGraphModel: () => loadGraphModel, - loadLayersModel: () => loadLayersModel, localResponseNormalization: () => localResponseNormalization, log: () => log, log1p: () => log1p, @@ -55392,14 +20104,11 @@ return (round(mod(b, 2.0)) != 1) ? 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, @@ -55437,11 +20146,8 @@ return (round(mod(b, 2.0)) != 1) ? real: () => real, reciprocal: () => reciprocal, registerBackend: () => registerBackend, - registerCallbackConstructor: () => registerCallbackConstructor, registerGradient: () => registerGradient, registerKernel: () => registerKernel, - registerOp: () => registerOp, - regularizers: () => exports_regularizers_exports, relu: () => relu, relu6: () => relu6, removeBackend: () => removeBackend, @@ -55459,7 +20165,6 @@ return (round(mod(b, 2.0)) != 1) ? scatter_util: () => scatter_nd_util_exports, selu: () => selu, separableConv2d: () => separableConv2d, - sequential: () => sequential, serialization: () => serialization_exports, setBackend: () => setBackend, setPlatform: () => setPlatform, @@ -55521,10 +20226,7 @@ return (round(mod(b, 2.0)) != 1) ? valueAndGrads: () => valueAndGrads, variable: () => variable, variableGrads: () => variableGrads, - version: () => version16, - version_converter: () => version6, version_core: () => version, - version_layers: () => version2, where: () => where, whereAsync: () => whereAsync, zeros: () => zeros, @@ -55532,7 +20234,7 @@ return (round(mod(b, 2.0)) != 1) ? }); /** * @license - * Copyright 2018 Google LLC. All Rights Reserved. + * 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 @@ -55546,15 +20248,6 @@ return (round(mod(b, 2.0)) != 1) ? * 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) { @@ -55602,7 +20295,7 @@ return (round(mod(b, 2.0)) != 1) ? computeReshapedDimensions: () => computeReshapedDimensions, getCenterPoint: () => getCenterPoint, isDimensions: () => isDimensions, - isEven: () => isEven2, + isEven: () => isEven, isFloat: () => isFloat, isTensor: () => isTensor, isTensor1D: () => isTensor1D, @@ -55611,7 +20304,7 @@ return (round(mod(b, 2.0)) != 1) ? isTensor4D: () => isTensor4D, isValidNumber: () => isValidNumber, isValidProbablitiy: () => isValidProbablitiy, - range: () => range5, + range: () => range4, round: () => round3 }); function isTensor(tensor17, dim) { @@ -55632,7 +20325,7 @@ return (round(mod(b, 2.0)) != 1) ? function isFloat(num) { return num % 1 !== 0; } - function isEven2(num) { + function isEven(num) { return num % 2 === 0; } function round3(num, prec = 2) { @@ -55649,7 +20342,7 @@ return (round(mod(b, 2.0)) != 1) ? function getCenterPoint(pts) { return pts.reduce((sum26, pt) => sum26.add(pt), new Point(0, 0)).div(new Point(pts.length, pts.length)); } - function range5(num, start, step7) { + function range4(num, start, step7) { return Array(num).fill(0).map((_, i) => start + i * step7); } function isValidNumber(num) { @@ -55923,10 +20616,10 @@ return (round(mod(b, 2.0)) != 1) ? function minBbox(pts) { const xs = pts.map((pt) => pt.x); const ys = pts.map((pt) => pt.y); - 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); + 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); return new BoundingBox(minX, minY, maxX, maxY); } @@ -55991,14 +20684,14 @@ return (round(mod(b, 2.0)) != 1) ? // build/ops/shuffleArray.js function shuffleArray(inputArray) { - const array2 = inputArray.slice(); - for (let i = array2.length - 1; i > 0; i--) { + const array = inputArray.slice(); + for (let i = array.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); - const x = array2[i]; - array2[i] = array2[j]; - array2[j] = x; + const x = array[i]; + array[i] = array[j]; + array[j] = x; } - return array2; + return array; } // build/ops/index.js @@ -56073,9 +20766,9 @@ return (round(mod(b, 2.0)) != 1) ? 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(padding2) { + alignMinBbox(padding) { const box = minBbox(this.positions); - return box.pad(box.width * padding2, box.height * padding2); + return box.pad(box.width * padding, box.height * padding); } getRefPointsForAlignment() { throw new Error("getRefPointsForAlignment not implemented by base class"); @@ -56184,11 +20877,11 @@ return (round(mod(b, 2.0)) != 1) ? descriptors: this.descriptors.map((d) => Array.from(d)) }; } - static fromJSON(json17) { - const descriptors = json17.descriptors.map((d) => { + static fromJSON(json) { + const descriptors = json.descriptors.map((d) => { return new Float32Array(d); }); - return new LabeledFaceDescriptors(json17.label, descriptors); + return new LabeledFaceDescriptors(json.label, descriptors); } } @@ -56399,13 +21092,13 @@ return (round(mod(b, 2.0)) != 1) ? })(AnchorPosition || (AnchorPosition = {})); class DrawTextFieldOptions { constructor(options = {}) { - const {anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding: padding2} = options; + const {anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding} = 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 = padding2 || 4; + this.padding = padding || 4; } } class DrawTextField { @@ -56415,12 +21108,12 @@ return (round(mod(b, 2.0)) != 1) ? this.options = new DrawTextFieldOptions(options); } measureWidth(ctx) { - const {padding: padding2} = this.options; - return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => w0 < w1 ? w1 : w0, 0) + 2 * padding2; + const {padding} = this.options; + return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => w0 < w1 ? w1 : w0, 0) + 2 * padding; } measureHeight() { - const {fontSize, padding: padding2} = this.options; - return this.text.length * fontSize + 2 * padding2; + const {fontSize, padding} = this.options; + return this.text.length * fontSize + 2 * padding; } getUpperLeft(ctx, canvasDims) { const {anchorPosition} = this.options; @@ -56441,7 +21134,7 @@ return (round(mod(b, 2.0)) != 1) ? draw(canvasArg) { const canvas = resolveInput(canvasArg); const ctx = getContext2dOrThrow(canvas); - const {backgroundColor, fontColor, fontSize, fontStyle, padding: padding2} = this.options; + const {backgroundColor, fontColor, fontSize, fontStyle, padding} = this.options; ctx.font = `${fontSize}px ${fontStyle}`; const maxTextWidth = this.measureWidth(ctx); const textHeight = this.measureHeight(); @@ -56450,8 +21143,8 @@ return (round(mod(b, 2.0)) != 1) ? ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight); ctx.fillStyle = fontColor; this.text.forEach((textLine, i) => { - const x = padding2 + upperLeft.x; - const y = padding2 + upperLeft.y + (i + 1) * fontSize; + const x = padding + upperLeft.x; + const y = padding + upperLeft.y + (i + 1) * fontSize; ctx.fillText(textLine, x, y); }); } @@ -56554,19 +21247,19 @@ return (round(mod(b, 2.0)) != 1) ? } // build/dom/getMediaDimensions.js - function getMediaDimensions(input2) { + function getMediaDimensions(input) { const {Image, Video} = env2.getEnv(); - if (input2 instanceof Image) { - return new Dimensions(input2.naturalWidth, input2.naturalHeight); + if (input instanceof Image) { + return new Dimensions(input.naturalWidth, input.naturalHeight); } - if (input2 instanceof Video) { - return new Dimensions(input2.videoWidth, input2.videoHeight); + if (input instanceof Video) { + return new Dimensions(input.videoWidth, input.videoHeight); } - return new Dimensions(input2.width, input2.height); + return new Dimensions(input.width, input.height); } // build/dom/createCanvas.js - function createCanvas2({width, height}) { + function createCanvas({width, height}) { const {createCanvasElement} = env2.getEnv(); const canvas = createCanvasElement(); canvas.width = width; @@ -56579,7 +21272,7 @@ return (round(mod(b, 2.0)) != 1) ? throw new Error("createCanvasFromMedia - media has not finished loading yet"); } const {width, height} = dims || getMediaDimensions(media); - const canvas = createCanvas2({width, height}); + const canvas = createCanvas({width, height}); if (media instanceof ImageData2) { getContext2dOrThrow(canvas).putImageData(media, 0, 0); } else { @@ -56599,23 +21292,23 @@ return (round(mod(b, 2.0)) != 1) ? } // build/dom/isMediaElement.js - function isMediaElement(input2) { + function isMediaElement(input) { const {Image, Canvas, Video} = env2.getEnv(); - return input2 instanceof Image || input2 instanceof Canvas || input2 instanceof Video; + return input instanceof Image || input instanceof Canvas || input instanceof Video; } // build/dom/imageToSquare.js - function imageToSquare(input2, inputSize, centerImage = false) { + function imageToSquare(input, inputSize, centerImage = false) { const {Image, Canvas} = env2.getEnv(); - if (!(input2 instanceof Image || input2 instanceof Canvas)) { + if (!(input instanceof Image || input instanceof Canvas)) { throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement"); } - const dims = getMediaDimensions(input2); + const dims = getMediaDimensions(input); const scale2 = inputSize / Math.max(dims.height, dims.width); const width = scale2 * dims.width; const height = scale2 * dims.height; - const targetCanvas = createCanvas2({width: inputSize, height: inputSize}); - const inputCanvas = input2 instanceof Canvas ? input2 : createCanvasFromMedia(input2); + const targetCanvas = createCanvas({width: inputSize, height: inputSize}); + const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input); const offset = Math.abs(width - height) / 2; const dx = centerImage && width < height ? offset : 0; const dy = centerImage && height < width ? offset : 0; @@ -56635,22 +21328,22 @@ return (round(mod(b, 2.0)) != 1) ? } this._treatAsBatchInput = treatAsBatchInput; this._batchSize = inputs.length; - inputs.forEach((input2, idx) => { - if (isTensor3D(input2)) { - this._imageTensors[idx] = input2; - this._inputDimensions[idx] = input2.shape; + inputs.forEach((input, idx) => { + if (isTensor3D(input)) { + this._imageTensors[idx] = input; + this._inputDimensions[idx] = input.shape; return; } - if (isTensor4D(input2)) { - const batchSize = input2.shape[0]; + if (isTensor4D(input)) { + const batchSize = input.shape[0]; if (batchSize !== 1) { throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`); } - this._imageTensors[idx] = input2; - this._inputDimensions[idx] = input2.shape.slice(1); + this._imageTensors[idx] = input; + this._inputDimensions[idx] = input.shape.slice(1); return; } - const canvas = input2 instanceof env2.getEnv().Canvas ? input2 : createCanvasFromMedia(input2); + const canvas = input instanceof env2.getEnv().Canvas ? input : createCanvasFromMedia(input); this._canvases[idx] = canvas; this._inputDimensions[idx] = [canvas.height, canvas.width, 3]; }); @@ -56674,7 +21367,7 @@ return (round(mod(b, 2.0)) != 1) ? return this._inputSize; } get reshapedInputDimensions() { - return range5(this.batchSize, 0, 1).map((_, batchIdx) => this.getReshapedInputDimensions(batchIdx)); + return range4(this.batchSize, 0, 1).map((_, batchIdx) => this.getReshapedInputDimensions(batchIdx)); } getInput(batchIdx) { return this.canvases[batchIdx] || this.imageTensors[batchIdx]; @@ -56699,20 +21392,20 @@ return (round(mod(b, 2.0)) != 1) ? toBatchTensor(inputSize, isCenterInputs = true) { this._inputSize = inputSize; return tidy(() => { - 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(); + 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(); 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 (input2 instanceof env2.getEnv().Canvas) { - return browser_exports.fromPixels(imageToSquare(input2, inputSize, isCenterInputs)); + if (input instanceof env2.getEnv().Canvas) { + return browser_exports.fromPixels(imageToSquare(input, inputSize, isCenterInputs)); } - throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input2}`); + throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`); }); const batchTensor = stack(inputTensors.map((t) => t.toFloat())).as4D(this.batchSize, inputSize, inputSize, 3); return batchTensor; @@ -56731,30 +21424,30 @@ return (round(mod(b, 2.0)) != 1) ? } const getIdxHint = (idx) => Array.isArray(inputs) ? ` at input index ${idx}:` : ""; const inputArray = inputArgArray.map(resolveInput); - inputArray.forEach((input2, i) => { - if (!isMediaElement(input2) && !isTensor3D(input2) && !isTensor4D(input2)) { + inputArray.forEach((input, i) => { + if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) { 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(input2)) { - const batchSize = input2.shape[0]; + if (isTensor4D(input)) { + const batchSize = input.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((input2) => isMediaElement(input2) && awaitMediaLoaded(input2))); + await Promise.all(inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input))); return new NetInput(inputArray, Array.isArray(inputs)); } // build/dom/extractFaces.js - async function extractFaces(input2, detections) { + async function extractFaces(input, detections) { const {Canvas} = env2.getEnv(); - let canvas = input2; - if (!(input2 instanceof Canvas)) { - const netInput = await toNetInput(input2); + let canvas = input; + if (!(input instanceof Canvas)) { + const netInput = await toNetInput(input); if (netInput.batchSize > 1) { throw new Error("extractFaces - batchSize > 1 not supported"); } @@ -56764,7 +21457,7 @@ return (round(mod(b, 2.0)) != 1) ? 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 = createCanvas2({width, height}); + const faceImg = createCanvas({width, height}); getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0); return faceImg; }); @@ -56847,14 +21540,15 @@ return (round(mod(b, 2.0)) != 1) ? async function loadWeightMap(uri, defaultModelName) { const {manifestUri, modelBaseUri} = getModelUris(uri, defaultModelName); const manifest = await fetchJson(manifestUri); + console.log(typeof manifest, manifest); return io_exports.loadWeights(manifest, modelBaseUri); } // build/dom/matchDimensions.js - function matchDimensions(input2, reference, useMediaDimensions = false) { + function matchDimensions(input, reference, useMediaDimensions = false) { const {width, height} = useMediaDimensions ? getMediaDimensions(reference) : reference; - input2.width = width; - input2.height = height; + input.width = width; + input.height = height; return {width, height}; } @@ -57009,9 +21703,9 @@ return (round(mod(b, 2.0)) != 1) ? } // build/common/convLayer.js - function convLayer(x, params, padding2 = "same", withRelu = false) { + function convLayer(x, params, padding = "same", withRelu = false) { return tidy(() => { - const out = add2(conv2d(x, params.filters, [1, 1], padding2), params.bias); + const out = add2(conv2d(x, params.filters, [1, 1], padding), params.bias); return withRelu ? relu(out) : out; }); } @@ -57198,13 +21892,13 @@ return (round(mod(b, 2.0)) != 1) ? constructor() { super("FaceFeatureExtractor"); } - forwardInput(input2) { + forwardInput(input) { const {params} = this; if (!params) { throw new Error("FaceFeatureExtractor - load model before inference"); } return tidy(() => { - const batchTensor = input2.toBatchTensor(112, true); + const batchTensor = input.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); @@ -57215,8 +21909,8 @@ return (round(mod(b, 2.0)) != 1) ? return out; }); } - async forward(input2) { - return this.forwardInput(await toNetInput(input2)); + async forward(input) { + return this.forwardInput(await toNetInput(input)); } getDefaultModelName() { return "face_feature_extractor_model"; @@ -57285,13 +21979,13 @@ return (round(mod(b, 2.0)) != 1) ? get faceFeatureExtractor() { return this._faceFeatureExtractor; } - runNet(input2) { + runNet(input) { const {params} = this; if (!params) { throw new Error(`${this._name} - load model before inference`); } return tidy(() => { - const bottleneckFeatures = input2 instanceof NetInput ? this.faceFeatureExtractor.forwardInput(input2) : input2; + const bottleneckFeatures = input instanceof NetInput ? this.faceFeatureExtractor.forwardInput(input) : input; return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc); }); } @@ -57344,14 +22038,14 @@ return (round(mod(b, 2.0)) != 1) ? constructor(faceFeatureExtractor = new FaceFeatureExtractor()) { super("FaceExpressionNet", faceFeatureExtractor); } - forwardInput(input2) { - return tidy(() => softmax(this.runNet(input2))); + forwardInput(input) { + return tidy(() => softmax(this.runNet(input))); } - async forward(input2) { - return this.forwardInput(await toNetInput(input2)); + async forward(input) { + return this.forwardInput(await toNetInput(input)); } - async predictExpressions(input2) { - const netInput = await toNetInput(input2); + async predictExpressions(input) { + const netInput = await toNetInput(input); const out = await this.forwardInput(netInput); const probabilitesByBatch = await Promise.all(unstack(out).map(async (t) => { const data = await t.data(); @@ -57524,7 +22218,7 @@ return (round(mod(b, 2.0)) != 1) ? reduction_block_1: entry_flow_reduction_block_1 }; const middle_flow = {}; - range5(numMainBlocks, 0, 1).forEach((idx) => { + range4(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"); @@ -57578,7 +22272,7 @@ return (round(mod(b, 2.0)) != 1) ? reduction_block_1: entry_flow_reduction_block_1 }; const middle_flow = {}; - range5(numMainBlocks, 0, 1).forEach((idx) => { + range4(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"); @@ -57615,19 +22309,19 @@ return (round(mod(b, 2.0)) != 1) ? super("TinyXception"); this._numMainBlocks = numMainBlocks; } - forwardInput(input2) { + forwardInput(input) { const {params} = this; if (!params) { throw new Error("TinyXception - load model before inference"); } return tidy(() => { - const batchTensor = input2.toBatchTensor(112, true); + const batchTensor = input.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); - range5(this._numMainBlocks, 0, 1).forEach((idx) => { + range4(this._numMainBlocks, 0, 1).forEach((idx) => { out = mainBlock(out, params.middle_flow[`main_block_${idx}`]); }); out = reductionBlock(out, params.exit_flow.reduction_block); @@ -57635,8 +22329,8 @@ return (round(mod(b, 2.0)) != 1) ? return out; }); } - async forward(input2) { - return this.forwardInput(await toNetInput(input2)); + async forward(input) { + return this.forwardInput(await toNetInput(input)); } getDefaultModelName() { return "tiny_xception_model"; @@ -57700,30 +22394,30 @@ return (round(mod(b, 2.0)) != 1) ? get faceFeatureExtractor() { return this._faceFeatureExtractor; } - runNet(input2) { + runNet(input) { const {params} = this; if (!params) { throw new Error(`${this._name} - load model before inference`); } return tidy(() => { - const bottleneckFeatures = input2 instanceof NetInput ? this.faceFeatureExtractor.forwardInput(input2) : input2; + const bottleneckFeatures = input instanceof NetInput ? this.faceFeatureExtractor.forwardInput(input) : input; 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(input2) { + forwardInput(input) { return tidy(() => { - const {age, gender} = this.runNet(input2); + const {age, gender} = this.runNet(input); return {age, gender: softmax(gender)}; }); } - async forward(input2) { - return this.forwardInput(await toNetInput(input2)); + async forward(input) { + return this.forwardInput(await toNetInput(input)); } - async predictAgeAndGender(input2) { - const netInput = await toNetInput(input2); + async predictAgeAndGender(input) { + const netInput = await toNetInput(input); const out = await this.forwardInput(netInput); const ages = unstack(out.age); const genders = unstack(out.gender); @@ -57792,32 +22486,32 @@ return (round(mod(b, 2.0)) != 1) ? fill([68], fillX), fill([68], fillY) ], 1).as2D(1, 136).as1D(); - const getPadding2 = (batchIdx, cond) => { + const getPadding = (batchIdx, cond) => { const {width, height} = inputDimensions[batchIdx]; return cond(width, height) ? Math.abs(width - height) / 2 : 0; }; - const getPaddingX = (batchIdx) => getPadding2(batchIdx, (w, h) => w < h); - const getPaddingY = (batchIdx) => getPadding2(batchIdx, (w, h) => h < w); + const getPaddingX = (batchIdx) => getPadding(batchIdx, (w, h) => w < h); + const getPaddingY = (batchIdx) => getPadding(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(input2) { + forwardInput(input) { return tidy(() => { - const out = this.runNet(input2); - return this.postProcess(out, input2.inputSize, input2.inputDimensions.map(([height, width]) => ({height, width}))); + const out = this.runNet(input); + return this.postProcess(out, input.inputSize, input.inputDimensions.map(([height, width]) => ({height, width}))); }); } - async forward(input2) { - return this.forwardInput(await toNetInput(input2)); + async forward(input) { + return this.forwardInput(await toNetInput(input)); } - async detectLandmarks(input2) { - const netInput = await toNetInput(input2); + async detectLandmarks(input) { + const netInput = await toNetInput(input); 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) => isEven2(i)); - const yCoords = landmarksArray.filter((_, i) => !isEven2(i)); + const xCoords = landmarksArray.filter((_, i) => isEven(i)); + const yCoords = landmarksArray.filter((_, i) => !isEven(i)); return new FaceLandmarks68(Array(68).fill(0).map((_, i) => new Point(xCoords[i], yCoords[i])), { height: netInput.getInputHeight(batchIdx), width: netInput.getInputWidth(batchIdx) @@ -57879,13 +22573,13 @@ return (round(mod(b, 2.0)) != 1) ? constructor() { super("TinyFaceFeatureExtractor"); } - forwardInput(input2) { + forwardInput(input) { const {params} = this; if (!params) { throw new Error("TinyFaceFeatureExtractor - load model before inference"); } return tidy(() => { - const batchTensor = input2.toBatchTensor(112, true); + const batchTensor = input.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); @@ -57895,8 +22589,8 @@ return (round(mod(b, 2.0)) != 1) ? return out; }); } - async forward(input2) { - return this.forwardInput(await toNetInput(input2)); + async forward(input) { + return this.forwardInput(await toNetInput(input)); } getDefaultModelName() { return "face_feature_extractor_tiny_model"; @@ -57932,9 +22626,9 @@ return (round(mod(b, 2.0)) != 1) ? } // build/faceRecognitionNet/convLayer.js - function convLayer2(x, params, strides, withRelu, padding2 = "same") { + function convLayer2(x, params, strides, withRelu, padding = "same") { const {filters, bias} = params.conv; - let out = conv2d(x, filters, strides, padding2); + let out = conv2d(x, filters, strides, padding); out = add2(out, bias); out = scale(out, params.scale); return withRelu ? relu(out) : out; @@ -58116,7 +22810,7 @@ return (round(mod(b, 2.0)) != 1) ? let out = convDown(x, params.conv1); out = convNoRelu(out, params.conv2); let pooled = avgPool(x, 2, 2, "valid"); - const zeros10 = zeros(pooled.shape); + const zeros9 = 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) { @@ -58129,7 +22823,7 @@ return (round(mod(b, 2.0)) != 1) ? const zerosH = zeros(padShapeY); out = concat([out, zerosH], 2); } - pooled = isPad ? concat([pooled, zeros10], 3) : pooled; + pooled = isPad ? concat([pooled, zeros9], 3) : pooled; out = add2(pooled, out); out = relu(out); return out; @@ -58140,13 +22834,13 @@ return (round(mod(b, 2.0)) != 1) ? constructor() { super("FaceRecognitionNet"); } - forwardInput(input2) { + forwardInput(input) { const {params} = this; if (!params) { throw new Error("FaceRecognitionNet - load model before inference"); } return tidy(() => { - const batchTensor = input2.toBatchTensor(150, true).toFloat(); + const batchTensor = input.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); @@ -58170,11 +22864,11 @@ return (round(mod(b, 2.0)) != 1) ? return fullyConnected; }); } - async forward(input2) { - return this.forwardInput(await toNetInput(input2)); + async forward(input) { + return this.forwardInput(await toNetInput(input)); } - async computeFaceDescriptor(input2) { - const netInput = await toNetInput(input2); + async computeFaceDescriptor(input) { + const netInput = await toNetInput(input); const faceDescriptorTensors = tidy(() => unstack(this.forwardInput(netInput))); const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())); faceDescriptorTensors.forEach((t) => t.dispose()); @@ -58224,27 +22918,593 @@ return (round(mod(b, 2.0)) != 1) ? // build/factories/index.js - // build/globalApi/ComposableTask.js - class ComposableTask { - async then(onfulfilled) { - return onfulfilled(await this.run()); + // build/ssdMobilenetv1/extractParams.js + function extractorsFactory7(extractWeights, paramMappings) { + function extractDepthwiseConvParams(numChannels, mappedPrefix) { + const filters = tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]); + const batch_norm_scale = tensor1d(extractWeights(numChannels)); + const batch_norm_offset = tensor1d(extractWeights(numChannels)); + const batch_norm_mean = tensor1d(extractWeights(numChannels)); + const batch_norm_variance = tensor1d(extractWeights(numChannels)); + paramMappings.push({paramPath: `${mappedPrefix}/filters`}, {paramPath: `${mappedPrefix}/batch_norm_scale`}, {paramPath: `${mappedPrefix}/batch_norm_offset`}, {paramPath: `${mappedPrefix}/batch_norm_mean`}, {paramPath: `${mappedPrefix}/batch_norm_variance`}); + return { + filters, + batch_norm_scale, + batch_norm_offset, + batch_norm_mean, + batch_norm_variance + }; } - async run() { - throw new Error("ComposableTask - run is not implemented"); + function extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, isPointwiseConv) { + const filters = tensor4d(extractWeights(channelsIn * channelsOut * filterSize * filterSize), [filterSize, filterSize, channelsIn, channelsOut]); + const bias = tensor1d(extractWeights(channelsOut)); + paramMappings.push({paramPath: `${mappedPrefix}/filters`}, {paramPath: `${mappedPrefix}/${isPointwiseConv ? "batch_norm_offset" : "bias"}`}); + return {filters, bias}; + } + function extractPointwiseConvParams(channelsIn, channelsOut, filterSize, mappedPrefix) { + const {filters, bias} = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true); + return { + filters, + batch_norm_offset: bias + }; + } + function extractConvPairParams(channelsIn, channelsOut, mappedPrefix) { + const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`); + const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`); + return {depthwise_conv, pointwise_conv}; + } + function extractMobilenetV1Params() { + const conv_0 = extractPointwiseConvParams(3, 32, 3, "mobilenetv1/conv_0"); + const conv_1 = extractConvPairParams(32, 64, "mobilenetv1/conv_1"); + const conv_2 = extractConvPairParams(64, 128, "mobilenetv1/conv_2"); + const conv_3 = extractConvPairParams(128, 128, "mobilenetv1/conv_3"); + const conv_4 = extractConvPairParams(128, 256, "mobilenetv1/conv_4"); + const conv_5 = extractConvPairParams(256, 256, "mobilenetv1/conv_5"); + const conv_6 = extractConvPairParams(256, 512, "mobilenetv1/conv_6"); + const conv_7 = extractConvPairParams(512, 512, "mobilenetv1/conv_7"); + const conv_8 = extractConvPairParams(512, 512, "mobilenetv1/conv_8"); + const conv_9 = extractConvPairParams(512, 512, "mobilenetv1/conv_9"); + const conv_10 = extractConvPairParams(512, 512, "mobilenetv1/conv_10"); + const conv_11 = extractConvPairParams(512, 512, "mobilenetv1/conv_11"); + const conv_12 = extractConvPairParams(512, 1024, "mobilenetv1/conv_12"); + const conv_13 = extractConvPairParams(1024, 1024, "mobilenetv1/conv_13"); + return { + conv_0, + conv_1, + conv_2, + conv_3, + conv_4, + conv_5, + conv_6, + conv_7, + conv_8, + conv_9, + conv_10, + conv_11, + conv_12, + conv_13 + }; + } + function extractPredictionLayerParams() { + const conv_0 = extractPointwiseConvParams(1024, 256, 1, "prediction_layer/conv_0"); + const conv_1 = extractPointwiseConvParams(256, 512, 3, "prediction_layer/conv_1"); + const conv_2 = extractPointwiseConvParams(512, 128, 1, "prediction_layer/conv_2"); + const conv_3 = extractPointwiseConvParams(128, 256, 3, "prediction_layer/conv_3"); + const conv_4 = extractPointwiseConvParams(256, 128, 1, "prediction_layer/conv_4"); + const conv_5 = extractPointwiseConvParams(128, 256, 3, "prediction_layer/conv_5"); + const conv_6 = extractPointwiseConvParams(256, 64, 1, "prediction_layer/conv_6"); + const conv_7 = extractPointwiseConvParams(64, 128, 3, "prediction_layer/conv_7"); + const box_encoding_0_predictor = extractConvParams(512, 12, 1, "prediction_layer/box_predictor_0/box_encoding_predictor"); + const class_predictor_0 = extractConvParams(512, 9, 1, "prediction_layer/box_predictor_0/class_predictor"); + const box_encoding_1_predictor = extractConvParams(1024, 24, 1, "prediction_layer/box_predictor_1/box_encoding_predictor"); + const class_predictor_1 = extractConvParams(1024, 18, 1, "prediction_layer/box_predictor_1/class_predictor"); + const box_encoding_2_predictor = extractConvParams(512, 24, 1, "prediction_layer/box_predictor_2/box_encoding_predictor"); + const class_predictor_2 = extractConvParams(512, 18, 1, "prediction_layer/box_predictor_2/class_predictor"); + const box_encoding_3_predictor = extractConvParams(256, 24, 1, "prediction_layer/box_predictor_3/box_encoding_predictor"); + const class_predictor_3 = extractConvParams(256, 18, 1, "prediction_layer/box_predictor_3/class_predictor"); + const box_encoding_4_predictor = extractConvParams(256, 24, 1, "prediction_layer/box_predictor_4/box_encoding_predictor"); + const class_predictor_4 = extractConvParams(256, 18, 1, "prediction_layer/box_predictor_4/class_predictor"); + const box_encoding_5_predictor = extractConvParams(128, 24, 1, "prediction_layer/box_predictor_5/box_encoding_predictor"); + const class_predictor_5 = extractConvParams(128, 18, 1, "prediction_layer/box_predictor_5/class_predictor"); + const box_predictor_0 = { + box_encoding_predictor: box_encoding_0_predictor, + class_predictor: class_predictor_0 + }; + const box_predictor_1 = { + box_encoding_predictor: box_encoding_1_predictor, + class_predictor: class_predictor_1 + }; + const box_predictor_2 = { + box_encoding_predictor: box_encoding_2_predictor, + class_predictor: class_predictor_2 + }; + const box_predictor_3 = { + box_encoding_predictor: box_encoding_3_predictor, + class_predictor: class_predictor_3 + }; + const box_predictor_4 = { + box_encoding_predictor: box_encoding_4_predictor, + class_predictor: class_predictor_4 + }; + const box_predictor_5 = { + box_encoding_predictor: box_encoding_5_predictor, + class_predictor: class_predictor_5 + }; + return { + conv_0, + conv_1, + conv_2, + conv_3, + conv_4, + conv_5, + conv_6, + conv_7, + box_predictor_0, + box_predictor_1, + box_predictor_2, + box_predictor_3, + box_predictor_4, + box_predictor_5 + }; + } + return { + extractMobilenetV1Params, + extractPredictionLayerParams + }; + } + function extractParams11(weights) { + const paramMappings = []; + const {extractWeights, getRemainingWeights} = extractWeightsFactory(weights); + const {extractMobilenetV1Params, extractPredictionLayerParams} = extractorsFactory7(extractWeights, paramMappings); + const mobilenetv1 = extractMobilenetV1Params(); + const prediction_layer = extractPredictionLayerParams(); + const extra_dim = tensor3d(extractWeights(5118 * 4), [1, 5118, 4]); + const output_layer = { + extra_dim + }; + paramMappings.push({paramPath: "output_layer/extra_dim"}); + if (getRemainingWeights().length !== 0) { + throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`); + } + return { + params: { + mobilenetv1, + prediction_layer, + output_layer + }, + paramMappings + }; + } + + // build/ssdMobilenetv1/extractParamsFromWeigthMap.js + function extractorsFactory8(weightMap, paramMappings) { + const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings); + function extractPointwiseConvParams(prefix, idx, mappedPrefix) { + const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`); + const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`); + return {filters, batch_norm_offset}; + } + function extractConvPairParams(idx) { + const mappedPrefix = `mobilenetv1/conv_${idx}`; + const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`; + const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`; + const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`; + const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`); + const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`); + const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`); + const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`); + const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`); + return { + depthwise_conv: { + filters, + batch_norm_scale, + batch_norm_offset, + batch_norm_mean, + batch_norm_variance + }, + pointwise_conv: extractPointwiseConvParams("MobilenetV1", idx, mappedPrefixPointwiseConv) + }; + } + function extractMobilenetV1Params() { + return { + conv_0: extractPointwiseConvParams("MobilenetV1", 0, "mobilenetv1/conv_0"), + conv_1: extractConvPairParams(1), + conv_2: extractConvPairParams(2), + conv_3: extractConvPairParams(3), + conv_4: extractConvPairParams(4), + conv_5: extractConvPairParams(5), + conv_6: extractConvPairParams(6), + conv_7: extractConvPairParams(7), + conv_8: extractConvPairParams(8), + conv_9: extractConvPairParams(9), + conv_10: extractConvPairParams(10), + conv_11: extractConvPairParams(11), + conv_12: extractConvPairParams(12), + conv_13: extractConvPairParams(13) + }; + } + function extractConvParams(prefix, mappedPrefix) { + const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`); + const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`); + return {filters, bias}; + } + function extractBoxPredictorParams(idx) { + const box_encoding_predictor = extractConvParams(`Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`, `prediction_layer/box_predictor_${idx}/box_encoding_predictor`); + const class_predictor = extractConvParams(`Prediction/BoxPredictor_${idx}/ClassPredictor`, `prediction_layer/box_predictor_${idx}/class_predictor`); + return {box_encoding_predictor, class_predictor}; + } + function extractPredictionLayerParams() { + return { + conv_0: extractPointwiseConvParams("Prediction", 0, "prediction_layer/conv_0"), + conv_1: extractPointwiseConvParams("Prediction", 1, "prediction_layer/conv_1"), + conv_2: extractPointwiseConvParams("Prediction", 2, "prediction_layer/conv_2"), + conv_3: extractPointwiseConvParams("Prediction", 3, "prediction_layer/conv_3"), + conv_4: extractPointwiseConvParams("Prediction", 4, "prediction_layer/conv_4"), + conv_5: extractPointwiseConvParams("Prediction", 5, "prediction_layer/conv_5"), + conv_6: extractPointwiseConvParams("Prediction", 6, "prediction_layer/conv_6"), + conv_7: extractPointwiseConvParams("Prediction", 7, "prediction_layer/conv_7"), + box_predictor_0: extractBoxPredictorParams(0), + box_predictor_1: extractBoxPredictorParams(1), + box_predictor_2: extractBoxPredictorParams(2), + box_predictor_3: extractBoxPredictorParams(3), + box_predictor_4: extractBoxPredictorParams(4), + box_predictor_5: extractBoxPredictorParams(5) + }; + } + return { + extractMobilenetV1Params, + extractPredictionLayerParams + }; + } + function extractParamsFromWeigthMap11(weightMap) { + const paramMappings = []; + const {extractMobilenetV1Params, extractPredictionLayerParams} = extractorsFactory8(weightMap, paramMappings); + const extra_dim = weightMap["Output/extra_dim"]; + paramMappings.push({originalPath: "Output/extra_dim", paramPath: "output_layer/extra_dim"}); + if (!isTensor3D(extra_dim)) { + throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`); + } + const params = { + mobilenetv1: extractMobilenetV1Params(), + prediction_layer: extractPredictionLayerParams(), + output_layer: { + extra_dim + } + }; + disposeUnusedWeightTensors(weightMap, paramMappings); + return {params, paramMappings}; + } + + // build/ssdMobilenetv1/pointwiseConvLayer.js + function pointwiseConvLayer(x, params, strides) { + return tidy(() => { + let out = conv2d(x, params.filters, strides, "same"); + out = add2(out, params.batch_norm_offset); + return clipByValue(out, 0, 6); + }); + } + + // build/ssdMobilenetv1/mobileNetV1.js + const epsilon = 0.0010000000474974513; + function depthwiseConvLayer(x, params, strides) { + return tidy(() => { + let out = depthwiseConv2d(x, params.filters, strides, "same"); + out = batchNorm(out, params.batch_norm_mean, params.batch_norm_variance, params.batch_norm_offset, params.batch_norm_scale, epsilon); + return clipByValue(out, 0, 6); + }); + } + function getStridesForLayerIdx(layerIdx) { + return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1]; + } + function mobileNetV1(x, params) { + return tidy(() => { + let conv11 = null; + let out = pointwiseConvLayer(x, params.conv_0, [2, 2]); + const convPairParams = [ + params.conv_1, + params.conv_2, + params.conv_3, + params.conv_4, + params.conv_5, + params.conv_6, + params.conv_7, + params.conv_8, + params.conv_9, + params.conv_10, + params.conv_11, + params.conv_12, + params.conv_13 + ]; + convPairParams.forEach((param, i) => { + const layerIdx = i + 1; + const depthwiseConvStrides = getStridesForLayerIdx(layerIdx); + out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides); + out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]); + if (layerIdx === 11) { + conv11 = out; + } + }); + if (conv11 === null) { + throw new Error("mobileNetV1 - output of conv layer 11 is null"); + } + return { + out, + conv11 + }; + }); + } + + // build/ssdMobilenetv1/nonMaxSuppression.js + function nonMaxSuppression3(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) { + const numBoxes = boxes.shape[0]; + const outputSize = Math.min(maxOutputSize, numBoxes); + const candidates = scores.map((score, boxIndex) => ({score, boxIndex})).filter((c) => c.score > scoreThreshold).sort((c1, c2) => c2.score - c1.score); + const suppressFunc = (x) => x <= iouThreshold ? 1 : 0; + const selected = []; + candidates.forEach((c) => { + if (selected.length >= outputSize) { + return; + } + const originalScore = c.score; + for (let j = selected.length - 1; j >= 0; --j) { + const iou3 = IOU(boxes, c.boxIndex, selected[j]); + if (iou3 === 0) { + continue; + } + c.score *= suppressFunc(iou3); + if (c.score <= scoreThreshold) { + break; + } + } + if (originalScore === c.score) { + selected.push(c.boxIndex); + } + }); + return selected; + } + function IOU(boxes, i, j) { + const boxesData = boxes.arraySync(); + const yminI = Math.min(boxesData[i][0], boxesData[i][2]); + const xminI = Math.min(boxesData[i][1], boxesData[i][3]); + const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]); + const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]); + const yminJ = Math.min(boxesData[j][0], boxesData[j][2]); + const xminJ = Math.min(boxesData[j][1], boxesData[j][3]); + const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]); + const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]); + const areaI = (ymaxI - yminI) * (xmaxI - xminI); + const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ); + if (areaI <= 0 || areaJ <= 0) { + return 0; + } + const intersectionYmin = Math.max(yminI, yminJ); + const intersectionXmin = Math.max(xminI, xminJ); + const intersectionYmax = Math.min(ymaxI, ymaxJ); + const intersectionXmax = Math.min(xmaxI, xmaxJ); + const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0) * Math.max(intersectionXmax - intersectionXmin, 0); + return intersectionArea / (areaI + areaJ - intersectionArea); + } + + // build/ssdMobilenetv1/outputLayer.js + function getCenterCoordinatesAndSizesLayer(x) { + const vec = unstack(transpose(x, [1, 0])); + const sizes = [ + sub(vec[2], vec[0]), + sub(vec[3], vec[1]) + ]; + const centers = [ + add2(vec[0], div(sizes[0], scalar(2))), + add2(vec[1], div(sizes[1], scalar(2))) + ]; + return { + sizes, + centers + }; + } + function decodeBoxesLayer(x0, x1) { + const {sizes, centers} = getCenterCoordinatesAndSizesLayer(x0); + const vec = unstack(transpose(x1, [1, 0])); + const div0_out = div(mul(exp(div(vec[2], scalar(5))), sizes[0]), scalar(2)); + const add0_out = add2(mul(div(vec[0], scalar(10)), sizes[0]), centers[0]); + const div1_out = div(mul(exp(div(vec[3], scalar(5))), sizes[1]), scalar(2)); + const add1_out = add2(mul(div(vec[1], scalar(10)), sizes[1]), centers[1]); + return transpose(stack([ + sub(add0_out, div0_out), + sub(add1_out, div1_out), + add2(add0_out, div0_out), + add2(add1_out, div1_out) + ]), [1, 0]); + } + function outputLayer(boxPredictions, classPredictions, params) { + return tidy(() => { + const batchSize = boxPredictions.shape[0]; + let boxes = decodeBoxesLayer(reshape(tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]), reshape(boxPredictions, [-1, 4])); + boxes = reshape(boxes, [batchSize, boxes.shape[0] / batchSize, 4]); + const scoresAndClasses = sigmoid(slice(classPredictions, [0, 0, 1], [-1, -1, -1])); + let scores = slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]); + scores = reshape(scores, [batchSize, scores.shape[1]]); + const boxesByBatch = unstack(boxes); + const scoresByBatch = unstack(scores); + return { + boxes: boxesByBatch, + scores: scoresByBatch + }; + }); + } + + // build/ssdMobilenetv1/boxPredictionLayer.js + function boxPredictionLayer(x, params) { + return tidy(() => { + const batchSize = x.shape[0]; + const boxPredictionEncoding = reshape(convLayer(x, params.box_encoding_predictor), [batchSize, -1, 1, 4]); + const classPrediction = reshape(convLayer(x, params.class_predictor), [batchSize, -1, 3]); + return { + boxPredictionEncoding, + classPrediction + }; + }); + } + + // build/ssdMobilenetv1/predictionLayer.js + function predictionLayer(x, conv11, params) { + return tidy(() => { + const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]); + const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]); + const conv22 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]); + const conv3 = pointwiseConvLayer(conv22, params.conv_3, [2, 2]); + const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]); + const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]); + const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]); + const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]); + const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0); + const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1); + const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2); + const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3); + const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4); + const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5); + const boxPredictions = concat([ + boxPrediction0.boxPredictionEncoding, + boxPrediction1.boxPredictionEncoding, + boxPrediction2.boxPredictionEncoding, + boxPrediction3.boxPredictionEncoding, + boxPrediction4.boxPredictionEncoding, + boxPrediction5.boxPredictionEncoding + ], 1); + const classPredictions = concat([ + boxPrediction0.classPrediction, + boxPrediction1.classPrediction, + boxPrediction2.classPrediction, + boxPrediction3.classPrediction, + boxPrediction4.classPrediction, + boxPrediction5.classPrediction + ], 1); + return { + boxPredictions, + classPredictions + }; + }); + } + + // build/ssdMobilenetv1/SsdMobilenetv1Options.js + class SsdMobilenetv1Options { + constructor({minConfidence, maxResults} = {}) { + this._name = "SsdMobilenetv1Options"; + this._minConfidence = minConfidence || 0.5; + this._maxResults = maxResults || 100; + if (typeof this._minConfidence !== "number" || this._minConfidence <= 0 || this._minConfidence >= 1) { + throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`); + } + if (typeof this._maxResults !== "number") { + throw new Error(`${this._name} - expected maxResults to be a number`); + } + } + get minConfidence() { + return this._minConfidence; + } + get maxResults() { + return this._maxResults; } } - // build/globalApi/extractFacesAndComputeResults.js - async function extractAllFacesAndComputeResults(parentResults, input2, computeResults, extractedFaces, getRectForAlignment = ({alignedRect}) => alignedRect) { - const faceBoxes = parentResults.map((parentResult) => isWithFaceLandmarks(parentResult) ? getRectForAlignment(parentResult) : parentResult.detection); - 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; + // build/ssdMobilenetv1/SsdMobilenetv1.js + class SsdMobilenetv1 extends NeuralNetwork { + constructor() { + super("SsdMobilenetv1"); + } + forwardInput(input) { + const {params} = this; + if (!params) { + throw new Error("SsdMobilenetv1 - load model before inference"); + } + return tidy(() => { + const batchTensor = input.toBatchTensor(512, false).toFloat(); + const x = sub(mul(batchTensor, scalar(0.007843137718737125)), scalar(1)); + const features = mobileNetV1(x, params.mobilenetv1); + const {boxPredictions, classPredictions} = predictionLayer(features.out, features.conv11, params.prediction_layer); + return outputLayer(boxPredictions, classPredictions, params.output_layer); + }); + } + async forward(input) { + return this.forwardInput(await toNetInput(input)); + } + async locateFaces(input, options = {}) { + const {maxResults, minConfidence} = new SsdMobilenetv1Options(options); + const netInput = await toNetInput(input); + const {boxes: _boxes, scores: _scores} = this.forwardInput(netInput); + const boxes = _boxes[0]; + const scores = _scores[0]; + for (let i = 1; i < _boxes.length; i++) { + _boxes[i].dispose(); + _scores[i].dispose(); + } + const scoresData = Array.from(await scores.data()); + const iouThreshold = 0.5; + const indices = nonMaxSuppression3(boxes, scoresData, maxResults, iouThreshold, minConfidence); + const reshapedDims = netInput.getReshapedInputDimensions(0); + const inputSize = netInput.inputSize; + const padX = inputSize / reshapedDims.width; + const padY = inputSize / reshapedDims.height; + const boxesData = boxes.arraySync(); + const results = indices.map((idx) => { + const [top, bottom] = [ + Math.max(0, boxesData[idx][0]), + Math.min(1, boxesData[idx][2]) + ].map((val) => val * padY); + const [left, right] = [ + Math.max(0, boxesData[idx][1]), + Math.min(1, boxesData[idx][3]) + ].map((val) => val * padX); + return new FaceDetection(scoresData[idx], new Rect(left, top, right - left, bottom - top), { + height: netInput.getInputHeight(0), + width: netInput.getInputWidth(0) + }); + }); + boxes.dispose(); + scores.dispose(); + return results; + } + getDefaultModelName() { + return "ssd_mobilenetv1_model"; + } + extractParamsFromWeigthMap(weightMap) { + return extractParamsFromWeigthMap11(weightMap); + } + extractParams(weights) { + return extractParams11(weights); + } } - async function extractSingleFaceAndComputeResult(parentResult, input2, computeResult, extractedFaces, getRectForAlignment) { - return extractAllFacesAndComputeResults([parentResult], input2, async (faces) => computeResult(faces[0]), extractedFaces, getRectForAlignment); + + // build/ssdMobilenetv1/index.js + function createSsdMobilenetv1(weights) { + const net = new SsdMobilenetv1(); + net.extractWeights(weights); + return net; } + function createFaceDetectionNet(weights) { + return createSsdMobilenetv1(weights); + } + class FaceDetectionNet extends SsdMobilenetv1 { + } + + // build/tinyYolov2/const.js + const IOU_THRESHOLD = 0.4; + const BOX_ANCHORS = [ + new Point(0.738768, 0.874946), + new Point(2.42204, 2.65704), + new Point(4.30971, 7.04493), + new Point(10.246, 4.59428), + new Point(12.6868, 11.8741) + ]; + const BOX_ANCHORS_SEPARABLE = [ + new Point(1.603231, 2.094468), + new Point(6.041143, 7.080126), + new Point(2.882459, 3.518061), + new Point(4.266906, 5.178857), + 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_NAME_SEPARABLE_CONV = "tiny_yolov2_separable_conv_model"; // build/tinyYolov2/config.js const isNumber2 = (arg) => typeof arg === "number"; @@ -58272,8 +23532,8 @@ return (round(mod(b, 2.0)) != 1) ? // build/tinyYolov2/leaky.js function leaky(x) { return tidy(() => { - const min6 = mul(x, scalar(0.10000000149011612)); - return add2(relu(sub(x, min6)), min6); + const min5 = mul(x, scalar(0.10000000149011612)); + return add2(relu(sub(x, min5)), min5); }); } @@ -58300,7 +23560,7 @@ return (round(mod(b, 2.0)) != 1) ? } // build/tinyYolov2/extractParams.js - function extractorsFactory7(extractWeights, paramMappings) { + function extractorsFactory9(extractWeights, paramMappings) { const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings); function extractBatchNormParams(size, mappedPrefix) { const sub32 = tensor1d(extractWeights(size)); @@ -58320,10 +23580,10 @@ return (round(mod(b, 2.0)) != 1) ? extractSeparableConvParams }; } - function extractParams11(weights, config2, boxEncodingSize, filterSizes) { + function extractParams13(weights, config2, boxEncodingSize, filterSizes) { const {extractWeights, getRemainingWeights} = extractWeightsFactory(weights); const paramMappings = []; - const {extractConvParams, extractConvWithBatchNormParams, extractSeparableConvParams} = extractorsFactory7(extractWeights, paramMappings); + const {extractConvParams, extractConvWithBatchNormParams, extractSeparableConvParams} = extractorsFactory9(extractWeights, paramMappings); let params; if (config2.withSeparableConvs) { const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes; @@ -58357,7 +23617,7 @@ return (round(mod(b, 2.0)) != 1) ? } // build/tinyYolov2/extractParamsFromWeigthMap.js - function extractorsFactory8(weightMap, paramMappings) { + function extractorsFactory10(weightMap, paramMappings) { const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings); function extractBatchNormParams(prefix) { const sub32 = extractWeightEntry(`${prefix}/sub`, 1); @@ -58381,9 +23641,9 @@ return (round(mod(b, 2.0)) != 1) ? extractSeparableConvParams }; } - function extractParamsFromWeigthMap11(weightMap, config2) { + function extractParamsFromWeigthMap13(weightMap, config2) { const paramMappings = []; - const {extractConvParams, extractConvWithBatchNormParams, extractSeparableConvParams} = extractorsFactory8(weightMap, paramMappings); + const {extractConvParams, extractConvWithBatchNormParams, extractSeparableConvParams} = extractorsFactory10(weightMap, paramMappings); let params; if (config2.withSeparableConvs) { const numFilters = config2.filterSizes && config2.filterSizes.length || 9; @@ -58493,24 +23753,24 @@ return (round(mod(b, 2.0)) != 1) ? out = params.conv7 ? depthwiseSeparableConv3(out, params.conv7) : out; return convLayer(out, params.conv8, "valid", false); } - forwardInput(input2, inputSize) { + forwardInput(input, inputSize) { const {params} = this; if (!params) { throw new Error("TinyYolov2 - load model before inference"); } return tidy(() => { - let batchTensor = input2.toBatchTensor(inputSize, false).toFloat(); + let batchTensor = input.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(input2, inputSize) { - return await this.forwardInput(await toNetInput(input2), inputSize); + async forward(input, inputSize) { + return await this.forwardInput(await toNetInput(input), inputSize); } - async detect(input2, forwardParams = {}) { + async detect(input, forwardParams = {}) { const {inputSize, scoreThreshold} = new TinyYolov2Options(forwardParams); - const netInput = await toNetInput(input2); + const netInput = await toNetInput(input); const out = await this.forwardInput(netInput, inputSize); const out0 = tidy(() => unstack(out)[0].expandDims()); const inputDimensions = { @@ -58532,7 +23792,7 @@ return (round(mod(b, 2.0)) != 1) ? return ""; } extractParamsFromWeigthMap(weightMap) { - return extractParamsFromWeigthMap11(weightMap, this.config); + return extractParamsFromWeigthMap13(weightMap, this.config); } extractParams(weights) { const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES; @@ -58540,7 +23800,7 @@ return (round(mod(b, 2.0)) != 1) ? if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) { throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`); } - return extractParams11(weights, this.config, this.boxEncodingSize, filterSizes); + return extractParams13(weights, this.config, this.boxEncodingSize, filterSizes); } async extractBoxes(outputTensor, inputBlobDimensions, scoreThreshold) { const {width, height} = inputBlobDimensions; @@ -58594,7 +23854,7 @@ return (round(mod(b, 2.0)) != 1) ? return Array(this.config.classes.length).fill(0).map((_, i) => classesData[row][col][anchor][i]).map((classScore, label) => ({ classScore, label - })).reduce((max8, curr) => max8.classScore > curr.classScore ? max8 : curr); + })).reduce((max7, curr) => max7.classScore > curr.classScore ? max7 : curr); } } TinyYolov2Base.DEFAULT_FILTER_SIZES = [ @@ -58609,78 +23869,18 @@ return (round(mod(b, 2.0)) != 1) ? 1024 ]; - // build/tinyFaceDetector/const.js - const IOU_THRESHOLD = 0.4; - const BOX_ANCHORS = [ - new Point(1.603231, 2.094468), - new Point(6.041143, 7.080126), - new Point(2.882459, 3.518061), - new Point(4.266906, 5.178857), - new Point(9.041765, 10.66308) - ]; - const MEAN_RGB = [117.001, 114.697, 97.404]; - - // build/tinyFaceDetector/TinyFaceDetector.js - class TinyFaceDetector extends TinyYolov2Base { - constructor() { - const config2 = { - withSeparableConvs: true, - iouThreshold: IOU_THRESHOLD, - classes: ["face"], - anchors: BOX_ANCHORS, - meanRgb: MEAN_RGB, - isFirstLayerConv2d: true, - filterSizes: [3, 16, 32, 64, 128, 256, 512] - }; - super(config2); - } - get anchors() { - return this.config.anchors; - } - 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 "tiny_face_detector_model"; - } - extractParamsFromWeigthMap(weightMap) { - return super.extractParamsFromWeigthMap(weightMap); - } - } - - // build/tinyYolov2/const.js - const IOU_THRESHOLD2 = 0.4; - const BOX_ANCHORS2 = [ - new Point(0.738768, 0.874946), - new Point(2.42204, 2.65704), - new Point(4.30971, 7.04493), - new Point(10.246, 4.59428), - new Point(12.6868, 11.8741) - ]; - const BOX_ANCHORS_SEPARABLE = [ - new Point(1.603231, 2.094468), - new Point(6.041143, 7.080126), - new Point(2.882459, 3.518061), - new Point(4.266906, 5.178857), - new Point(9.041765, 10.66308) - ]; - const MEAN_RGB_SEPARABLE = [117.001, 114.697, 97.404]; - const DEFAULT_MODEL_NAME2 = "tiny_yolov2_model"; - const DEFAULT_MODEL_NAME_SEPARABLE_CONV = "tiny_yolov2_separable_conv_model"; - // build/tinyYolov2/TinyYolov2.js class TinyYolov2 extends TinyYolov2Base { constructor(withSeparableConvs = true) { const config2 = Object.assign({}, { withSeparableConvs, - iouThreshold: IOU_THRESHOLD2, + iouThreshold: IOU_THRESHOLD, classes: ["face"] }, withSeparableConvs ? { anchors: BOX_ANCHORS_SEPARABLE, meanRgb: MEAN_RGB_SEPARABLE } : { - anchors: BOX_ANCHORS2, + anchors: BOX_ANCHORS, withClassScores: true }); super(config2); @@ -58691,12 +23891,12 @@ return (round(mod(b, 2.0)) != 1) ? get anchors() { return this.config.anchors; } - async locateFaces(input2, forwardParams) { - const objectDetections = await this.detect(input2, forwardParams); + async locateFaces(input, forwardParams) { + const objectDetections = await this.detect(input, 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_NAME2; + return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME; } extractParamsFromWeigthMap(weightMap) { return super.extractParamsFromWeigthMap(weightMap); @@ -58712,8 +23912,79 @@ return (round(mod(b, 2.0)) != 1) ? return net; } + // build/tinyFaceDetector/TinyFaceDetectorOptions.js + class TinyFaceDetectorOptions extends TinyYolov2Options { + constructor() { + super(...arguments); + this._name = "TinyFaceDetectorOptions"; + } + } + + // build/globalApi/ComposableTask.js + class ComposableTask { + async then(onfulfilled) { + return onfulfilled(await this.run()); + } + async run() { + throw new Error("ComposableTask - run is not implemented"); + } + } + + // build/globalApi/extractFacesAndComputeResults.js + async function extractAllFacesAndComputeResults(parentResults, input, computeResults, extractedFaces, getRectForAlignment = ({alignedRect}) => alignedRect) { + const faceBoxes = parentResults.map((parentResult) => isWithFaceLandmarks(parentResult) ? getRectForAlignment(parentResult) : parentResult.detection); + const faces = extractedFaces || (input instanceof Tensor ? await extractFaceTensors(input, faceBoxes) : await extractFaces(input, 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); + } + + // build/tinyFaceDetector/const.js + const IOU_THRESHOLD2 = 0.4; + const BOX_ANCHORS2 = [ + new Point(1.603231, 2.094468), + new Point(6.041143, 7.080126), + new Point(2.882459, 3.518061), + new Point(4.266906, 5.178857), + new Point(9.041765, 10.66308) + ]; + const MEAN_RGB = [117.001, 114.697, 97.404]; + + // build/tinyFaceDetector/TinyFaceDetector.js + class TinyFaceDetector extends TinyYolov2Base { + constructor() { + const config2 = { + withSeparableConvs: true, + iouThreshold: IOU_THRESHOLD2, + classes: ["face"], + anchors: BOX_ANCHORS2, + meanRgb: MEAN_RGB, + isFirstLayerConv2d: true, + filterSizes: [3, 16, 32, 64, 128, 256, 512] + }; + super(config2); + } + get anchors() { + return this.config.anchors; + } + async locateFaces(input, forwardParams) { + const objectDetections = await this.detect(input, forwardParams); + return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, {width: det.imageWidth, height: det.imageHeight})); + } + getDefaultModelName() { + return "tiny_face_detector_model"; + } + extractParamsFromWeigthMap(weightMap) { + return super.extractParamsFromWeigthMap(weightMap); + } + } + // build/globalApi/nets.js const nets = { + ssdMobilenetv1: new SsdMobilenetv1(), tinyFaceDetector: new TinyFaceDetector(), tinyYolov2: new TinyYolov2(), faceLandmark68Net: new FaceLandmark68Net(), @@ -58722,12 +23993,15 @@ return (round(mod(b, 2.0)) != 1) ? faceExpressionNet: new FaceExpressionNet(), ageGenderNet: new AgeGenderNet() }; - 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 ssdMobilenetv1 = (input, options) => nets.ssdMobilenetv1.locateFaces(input, options); + const tinyFaceDetector = (input, options) => nets.tinyFaceDetector.locateFaces(input, options); + const tinyYolov23 = (input, options) => nets.tinyYolov2.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 loadSsdMobilenetv1Model = (url) => nets.ssdMobilenetv1.load(url); const loadTinyFaceDetectorModel = (url) => nets.tinyFaceDetector.load(url); const loadTinyYolov2Model = (url) => nets.tinyYolov2.load(url); const loadFaceLandmarkModel = (url) => nets.faceLandmark68Net.load(url); @@ -58735,16 +24009,16 @@ return (round(mod(b, 2.0)) != 1) ? const loadFaceRecognitionModel = (url) => nets.faceRecognitionNet.load(url); const loadFaceExpressionModel = (url) => nets.faceExpressionNet.load(url); const loadAgeGenderModel = (url) => nets.ageGenderNet.load(url); - const loadFaceDetectionModel = loadTinyFaceDetectorModel; - const locateFaces = TinyFaceDetector; + const loadFaceDetectionModel = loadSsdMobilenetv1Model; + const locateFaces = ssdMobilenetv1; const detectLandmarks = detectFaceLandmarks; // build/globalApi/PredictFaceExpressionsTask.js class PredictFaceExpressionsTaskBase extends ComposableTask { - constructor(parentTask, input2, extractedFaces) { + constructor(parentTask, input, extractedFaces) { super(); this.parentTask = parentTask; - this.input = input2; + this.input = input; this.extractedFaces = extractedFaces; } } @@ -58790,10 +24064,10 @@ return (round(mod(b, 2.0)) != 1) ? // build/globalApi/PredictAgeAndGenderTask.js class PredictAgeAndGenderTaskBase extends ComposableTask { - constructor(parentTask, input2, extractedFaces) { + constructor(parentTask, input, extractedFaces) { super(); this.parentTask = parentTask; - this.input = input2; + this.input = input; this.extractedFaces = extractedFaces; } } @@ -58842,10 +24116,10 @@ return (round(mod(b, 2.0)) != 1) ? // build/globalApi/ComputeFaceDescriptorsTasks.js class ComputeFaceDescriptorsTaskBase extends ComposableTask { - constructor(parentTask, input2) { + constructor(parentTask, input) { super(); this.parentTask = parentTask; - this.input = input2; + this.input = input; } } class ComputeAllFaceDescriptorsTask extends ComputeFaceDescriptorsTaskBase { @@ -58878,20 +24152,12 @@ return (round(mod(b, 2.0)) != 1) ? } } - // build/tinyFaceDetector/TinyFaceDetectorOptions.js - class TinyFaceDetectorOptions extends TinyYolov2Options { - constructor() { - super(...arguments); - this._name = "TinyFaceDetectorOptions"; - } - } - // build/globalApi/DetectFaceLandmarksTasks.js class DetectFaceLandmarksTaskBase extends ComposableTask { - constructor(parentTask, input2, useTinyLandmarkNet) { + constructor(parentTask, input, useTinyLandmarkNet) { super(); this.parentTask = parentTask; - this.input = input2; + this.input = input; this.useTinyLandmarkNet = useTinyLandmarkNet; } get landmarkNet() { @@ -58942,20 +24208,20 @@ return (round(mod(b, 2.0)) != 1) ? // build/globalApi/DetectFacesTasks.js class DetectFacesTaskBase extends ComposableTask { - constructor(input2, options = new TinyFaceDetectorOptions()) { + constructor(input, options = new SsdMobilenetv1Options()) { super(); - this.input = input2; + this.input = input; this.options = options; } } class DetectAllFacesTask extends DetectFacesTaskBase { async run() { - const {input: input2, options} = this; - const faceDetectionFunction = options instanceof TinyFaceDetectorOptions ? (input3) => nets.tinyFaceDetector.locateFaces(input3, options) : null; + const {input, options} = this; + const faceDetectionFunction = options instanceof TinyFaceDetectorOptions ? (input2) => nets.tinyFaceDetector.locateFaces(input2, options) : options instanceof SsdMobilenetv1Options ? (input2) => nets.ssdMobilenetv1.locateFaces(input2, options) : options instanceof TinyYolov2Options ? (input2) => nets.tinyYolov2.locateFaces(input2, options) : null; if (!faceDetectionFunction) { throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options"); } - return faceDetectionFunction(input2); + return faceDetectionFunction(input); } runAndExtendWithFaceDetections() { return new Promise(async (res) => { @@ -59002,18 +24268,28 @@ return (round(mod(b, 2.0)) != 1) ? } // build/globalApi/detectFaces.js - function detectSingleFace(input2, options = new TinyFaceDetectorOptions()) { - return new DetectSingleFaceTask(input2, options); + function detectSingleFace(input, options = new SsdMobilenetv1Options()) { + return new DetectSingleFaceTask(input, options); } - function detectAllFaces(input2, options = new TinyFaceDetectorOptions()) { - return new DetectAllFacesTask(input2, options); + function detectAllFaces(input, options = new SsdMobilenetv1Options()) { + return new DetectAllFacesTask(input, options); } + // build/globalApi/allFaces.js + async function allFacesSsdMobilenetv1(input, minConfidence) { + console.warn("allFacesSsdMobilenetv1 is deprecated and will be removed soon, use the high level api instead"); + return await detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? {minConfidence} : {})).withFaceLandmarks().withFaceDescriptors(); + } + async function allFacesTinyYolov2(input, forwardParams = {}) { + console.warn("allFacesTinyYolov2 is deprecated and will be removed soon, use the high level api instead"); + return await detectAllFaces(input, new TinyYolov2Options(forwardParams)).withFaceLandmarks().withFaceDescriptors(); + } + const allFaces = allFacesSsdMobilenetv1; + // 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)); @@ -59027,8 +24303,8 @@ return (round(mod(b, 2.0)) != 1) ? if (!inputArray.length) { throw new Error(`FaceRecognizer.constructor - expected atleast one input`); } - let count2 = 1; - const createUniqueLabel = () => `person ${count2++}`; + let count = 1; + const createUniqueLabel = () => `person ${count++}`; this._labeledDescriptors = inputArray.map((desc) => { if (desc instanceof LabeledFaceDescriptors) { return desc; @@ -59064,9 +24340,9 @@ return (round(mod(b, 2.0)) != 1) ? labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()) }; } - static fromJSON(json17) { - const labeledDescriptors = json17.labeledDescriptors.map((ld) => LabeledFaceDescriptors.fromJSON(ld)); - return new FaceMatcher(labeledDescriptors, json17.distanceThreshold); + static fromJSON(json) { + const labeledDescriptors = json.labeledDescriptors.map((ld) => LabeledFaceDescriptors.fromJSON(ld)); + return new FaceMatcher(labeledDescriptors, json.distanceThreshold); } } diff --git a/dist/face-api.js.map b/dist/face-api.js.map index 1f40601..f692e95 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", "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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", + "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/../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/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/ssdMobilenetv1/../../src/ssdMobilenetv1/extractParams.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/extractParamsFromWeigthMap.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/pointwiseConvLayer.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/mobileNetV1.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/nonMaxSuppression.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/outputLayer.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/boxPredictionLayer.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/predictionLayer.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/SsdMobilenetv1.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/index.ts", "build/tinyYolov2/../../src/tinyYolov2/const.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/tinyYolov2/../../src/tinyYolov2/TinyYolov2.ts", "build/tinyYolov2/../../src/tinyYolov2/index.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "build/globalApi/../../src/globalApi/ComposableTask.ts", "build/globalApi/../../src/globalApi/extractFacesAndComputeResults.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/const.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetector.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/globalApi/../../src/globalApi/DetectFaceLandmarksTasks.ts", "build/globalApi/../../src/globalApi/DetectFacesTasks.ts", "build/globalApi/../../src/globalApi/detectFaces.ts", "build/globalApi/../../src/globalApi/allFaces.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], + "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AA2BA,IAAC,UAAS,SAAQ,SAAQ;AAE1B,oBAAc;AACZ,YAAI,KAAK,MAAM,OAAO;AAEtB,WAAG,OAAO;AACR,cAAI,IAAI,UAAU,GAAG,KAAK,GAAG,IAAI;AACjC,aAAG,KAAK,GAAG;AACX,aAAG,KAAK,GAAG;AACX,iBAAO,GAAG,KAAK,IAAK,IAAG,IAAI,IAAI;AAAA;AAIjC,WAAG,IAAI;AACP,WAAG,KAAK,KAAK;AACb,WAAG,KAAK,KAAK;AACb,WAAG,KAAK,KAAK;AACb,WAAG,MAAM,KAAK;AACd,YAAI,GAAG,KAAK;AAAK,aAAG,MAAM;AAAA;AAC1B,WAAG,MAAM,KAAK;AACd,YAAI,GAAG,KAAK;AAAK,aAAG,MAAM;AAAA;AAC1B,WAAG,MAAM,KAAK;AACd,YAAI,GAAG,KAAK;AAAK,aAAG,MAAM;AAAA;AAC1B,eAAO;AAAA;AAGT,oBAAc,GAAG;AACf,UAAE,IAAI,EAAE;AACR,UAAE,KAAK,EAAE;AACT,UAAE,KAAK,EAAE;AACT,UAAE,KAAK,EAAE;AACT,eAAO;AAAA;AAGT,oBAAc,MAAM;AAClB,YAAI,KAAK,IAAI,KAAK,OACd,QAAQ,QAAQ,KAAK,OACrB,OAAO,GAAG;AACd,aAAK,QAAQ;AAAa,iBAAQ,GAAG,SAAS,aAAe;AAAA;AAC7D,aAAK,SAAS;AACZ,iBAAO,SAAU,UAAS,UAAW,KAAK;AAAA;AAE5C,aAAK,QAAQ;AACb,YAAI;AACF,cAAI,OAAO,SAAU;AAAU,iBAAK,OAAO;AAC3C,eAAK,QAAQ;AAAa,mBAAO,KAAK,IAAI;AAAA;AAAA;AAE5C,eAAO;AAAA;AAGT;AACE,YAAI,IAAI;AAER,YAAI,OAAO,SAAS;AAClB,iBAAO,KAAK;AACZ,mBAAS,IAAI,GAAG,IAAI,KAAK,QAAQ;AAC/B,iBAAK,KAAK,WAAW;AACrB,gBAAI,IAAI,sBAAsB;AAC9B,gBAAI,MAAM;AACV,iBAAK;AACL,iBAAK;AACL,gBAAI,MAAM;AACV,iBAAK;AACL,iBAAK,IAAI;AAAA;AAEX,iBAAQ,OAAM,KAAK;AAAA;AAGrB,eAAO;AAAA;AAIT,UAAI,WAAU,QAAO;AACnB,gBAAO,UAAU;AAAA,iBACR,WAAU,QAAO;AAC1B,gBAAO;AAAa,iBAAO;AAAA;AAAA;AAE3B,aAAK,OAAO;AAAA;AAAA,OAIZ,SACC,OAAO,UAAW,YAAY,QAC9B,OAAO,UAAW,cAAc;AAAA;;;AC9GnC;AAGA,IAAC,UAAS,SAAQ,SAAQ;AAE1B,sBAAgB;AACd,YAAI,KAAK,MAAM,UAAU;AAEzB,WAAG,IAAI;AACP,WAAG,IAAI;AACP,WAAG,IAAI;AACP,WAAG,IAAI;AAGP,WAAG,OAAO;AACR,cAAI,IAAI,GAAG,IAAK,GAAG,KAAK;AACxB,aAAG,IAAI,GAAG;AACV,aAAG,IAAI,GAAG;AACV,aAAG,IAAI,GAAG;AACV,iBAAO,GAAG,KAAM,GAAG,MAAM,KAAM,IAAK,MAAM;AAAA;AAG5C,YAAI,SAAU,QAAO;AAEnB,aAAG,IAAI;AAAA;AAGP,qBAAW;AAAA;AAIb,iBAAS,IAAI,GAAG,IAAI,QAAQ,SAAS,IAAI;AACvC,aAAG,KAAK,QAAQ,WAAW,KAAK;AAChC,aAAG;AAAA;AAAA;AAIP,oBAAc,GAAG;AACf,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,eAAO;AAAA;AAGT,oBAAc,MAAM;AAClB,YAAI,KAAK,IAAI,OAAO,OAChB,QAAQ,QAAQ,KAAK,OACrB,OAAO;AAAa,iBAAQ,IAAG,WAAW,KAAK;AAAA;AACnD,aAAK,SAAS;AACZ;AACE,gBAAI,MAAM,GAAG,WAAW,IACpB,MAAO,IAAG,WAAW,KAAK,YAC1B,SAAU,OAAM,OAAQ,MAAK;AAAA,mBAC1B,WAAW;AACpB,iBAAO;AAAA;AAET,aAAK,QAAQ,GAAG;AAChB,aAAK,QAAQ;AACb,YAAI;AACF,cAAI,OAAO,SAAU;AAAU,iBAAK,OAAO;AAC3C,eAAK,QAAQ;AAAa,mBAAO,KAAK,IAAI;AAAA;AAAA;AAE5C,eAAO;AAAA;AAGT,UAAI,WAAU,QAAO;AACnB,gBAAO,UAAU;AAAA,iBACR,WAAU,QAAO;AAC1B,gBAAO;AAAa,iBAAO;AAAA;AAAA;AAE3B,aAAK,SAAS;AAAA;AAAA,OAId,SACC,OAAO,UAAW,YAAY,QAC9B,OAAO,UAAW,cAAc;AAAA;;;AC7EnC;AAGA,IAAC,UAAS,SAAQ,SAAQ;AAE1B,sBAAgB;AACd,YAAI,KAAK,MAAM,UAAU;AAGzB,WAAG,OAAO;AACR,cAAI,IAAK,GAAG,IAAK,GAAG,MAAM;AAC1B,aAAG,IAAI,GAAG;AAAG,aAAG,IAAI,GAAG;AAAG,aAAG,IAAI,GAAG;AAAG,aAAG,IAAI,GAAG;AACjD,iBAAQ,IAAG,IAAK,GAAG,IAAI,SAAS,KAC5B,IAAG,IAAK,GAAG,IAAK,GAAG,KAAK,IAAO,KAAK,KAAK,MAAO;AAAA;AAGtD,WAAG,IAAI;AACP,WAAG,IAAI;AACP,WAAG,IAAI;AACP,WAAG,IAAI;AACP,WAAG,IAAI;AAEP,YAAI,SAAU,QAAO;AAEnB,aAAG,IAAI;AAAA;AAGP,qBAAW;AAAA;AAIb,iBAAS,IAAI,GAAG,IAAI,QAAQ,SAAS,IAAI;AACvC,aAAG,KAAK,QAAQ,WAAW,KAAK;AAChC,cAAI,KAAK,QAAQ;AACf,eAAG,IAAI,GAAG,KAAK,KAAK,GAAG,MAAM;AAAA;AAE/B,aAAG;AAAA;AAAA;AAIP,oBAAc,GAAG;AACf,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,eAAO;AAAA;AAGT,oBAAc,MAAM;AAClB,YAAI,KAAK,IAAI,OAAO,OAChB,QAAQ,QAAQ,KAAK,OACrB,OAAO;AAAa,iBAAQ,IAAG,WAAW,KAAK;AAAA;AACnD,aAAK,SAAS;AACZ;AACE,gBAAI,MAAM,GAAG,WAAW,IACpB,MAAO,IAAG,WAAW,KAAK,YAC1B,SAAU,OAAM,OAAQ,MAAK;AAAA,mBAC1B,WAAW;AACpB,iBAAO;AAAA;AAET,aAAK,QAAQ,GAAG;AAChB,aAAK,QAAQ;AACb,YAAI;AACF,cAAI,OAAO,SAAU;AAAU,iBAAK,OAAO;AAC3C,eAAK,QAAQ;AAAa,mBAAO,KAAK,IAAI;AAAA;AAAA;AAE5C,eAAO;AAAA;AAGT,UAAI,WAAU,QAAO;AACnB,gBAAO,UAAU;AAAA,iBACR,WAAU,QAAO;AAC1B,gBAAO;AAAa,iBAAO;AAAA;AAAA;AAE3B,aAAK,SAAS;AAAA;AAAA,OAId,SACC,OAAO,UAAW,YAAY,QAC9B,OAAO,UAAW,cAAc;AAAA;;;AClFnC;AAKA,IAAC,UAAS,SAAQ,SAAQ;AAE1B,sBAAgB;AACd,YAAI,KAAK;AAGT,WAAG,OAAO;AAER,cAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG;AAC9B,cAAI,EAAE;AAAI,eAAM,MAAM;AAAI,cAAI,IAAK,KAAK;AACxC,cAAI,EAAG,IAAI,IAAK;AAAI,eAAK,IAAK,MAAM;AACpC,cAAI,EAAG,IAAI,IAAK;AAAI,eAAK,IAAK,MAAM;AACpC,cAAI,EAAG,IAAI,IAAK;AAAI,eAAK,IAAK,KAAK;AACnC,cAAI,EAAG,IAAI,IAAK;AAAI,cAAI,IAAK,KAAK;AAAK,eAAK,IAAK,KAAK;AACtD,YAAE,KAAK;AACP,aAAG,IAAK,IAAI,IAAK;AACjB,iBAAO;AAAA;AAGT,sBAAc,KAAI;AAChB,cAAI,GAAG,GAAG,IAAI;AAEd,cAAI,UAAU,SAAO;AAEnB,gBAAI,EAAE,KAAK;AAAA;AAGX,oBAAO,KAAK;AACZ,iBAAK,IAAI,GAAG,IAAI,MAAK,QAAQ,EAAE;AAC7B,gBAAE,IAAI,KAAM,EAAE,IAAI,MAAM,KACnB,MAAK,WAAW,KAAK,EAAG,IAAI,IAAK,MAAM;AAAA;AAAA;AAIhD,iBAAO,EAAE,SAAS;AAAG,cAAE,KAAK;AAC5B,eAAK,IAAI,GAAG,IAAI,KAAK,EAAE,OAAO,GAAG,EAAE;AAAE;AACrC,cAAI,KAAK;AAAG,gBAAI,EAAE,KAAK;AAAA;AAAS,gBAAI,EAAE;AAEtC,cAAG,IAAI;AACP,cAAG,IAAI;AAGP,eAAK,IAAI,KAAK,IAAI,GAAG,EAAE;AACrB,gBAAG;AAAA;AAAA;AAIP,aAAK,IAAI;AAAA;AAGX,oBAAc,GAAG;AACf,UAAE,IAAI,EAAE,EAAE;AACV,UAAE,IAAI,EAAE;AACR,eAAO;AAAA;AAGT,oBAAc,MAAM;AAClB,YAAI,QAAQ;AAAM,iBAAO,CAAE,IAAI;AAC/B,YAAI,KAAK,IAAI,OAAO,OAChB,QAAQ,QAAQ,KAAK,OACrB,OAAO;AAAa,iBAAQ,IAAG,WAAW,KAAK;AAAA;AACnD,aAAK,SAAS;AACZ;AACE,gBAAI,MAAM,GAAG,WAAW,IACpB,MAAO,IAAG,WAAW,KAAK,YAC1B,SAAU,OAAM,OAAQ,MAAK;AAAA,mBAC1B,WAAW;AACpB,iBAAO;AAAA;AAET,aAAK,QAAQ,GAAG;AAChB,aAAK,QAAQ;AACb,YAAI;AACF,cAAI,MAAM;AAAG,iBAAK,OAAO;AACzB,eAAK,QAAQ;AAAa,mBAAO,KAAK,IAAI;AAAA;AAAA;AAE5C,eAAO;AAAA;AAGT,UAAI,WAAU,QAAO;AACnB,gBAAO,UAAU;AAAA,iBACR,WAAU,QAAO;AAC1B,gBAAO;AAAa,iBAAO;AAAA;AAAA;AAE3B,aAAK,YAAY;AAAA;AAAA,OAIjB,SACC,OAAO,UAAW,YAAY,QAC9B,OAAO,UAAW,cAAc;AAAA;;;AC9FnC;AAyBA,IAAC,UAAS,SAAQ,SAAQ;AAE1B,sBAAgB;AACd,YAAI,KAAK;AAGT,WAAG,OAAO;AACR,cAAI,IAAI,GAAG,GACP,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG;AAE3B,aAAG,IAAI,IAAK,IAAI,aAAc;AAE9B,cAAI,EAAG,IAAI,KAAM;AACjB,cAAI,EAAE,IAAM,IAAI,IAAK;AACrB,eAAK,KAAK;AACV,eAAK,KAAK;AACV,eAAK,MAAM;AACX,eAAK,MAAM;AAEX,cAAI,EAAE,KAAK,IAAI;AACf,aAAG,IAAI;AAEP,iBAAQ,IAAK,KAAK,MAAM,MAAQ;AAAA;AAGlC,sBAAc,KAAI;AAChB,cAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,QAAQ;AACnC,cAAI,UAAU,SAAO;AAEnB,gBAAI;AACJ,oBAAO;AAAA;AAGP,oBAAO,QAAO;AACd,gBAAI;AACJ,oBAAQ,KAAK,IAAI,OAAO,MAAK;AAAA;AAG/B,eAAK,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,EAAE;AAEhC,gBAAI;AAAM,mBAAK,MAAK,WAAY,KAAI,MAAM,MAAK;AAE/C,gBAAI,MAAM;AAAG,kBAAI;AACjB,iBAAK,KAAK;AACV,iBAAK,MAAM;AACX,iBAAK,KAAK;AACV,iBAAK,MAAM;AACX,gBAAI,KAAK;AACP,kBAAK,IAAI,aAAc;AACvB,kBAAK,EAAE,IAAI,QAAS,IAAI;AACxB,kBAAK,AAAK,KAAL,IAAU,IAAI,IAAI;AAAA;AAAA;AAI3B,cAAI,KAAK;AACP,cAAG,UAAQ,MAAK,UAAU,KAAK,OAAO;AAAA;AAKxC,cAAI;AACJ,eAAK,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE;AACzB,gBAAI,EAAG,IAAI,KAAM;AACjB,gBAAI,EAAE,IAAM,IAAI,IAAK;AACrB,iBAAK,KAAK;AACV,iBAAK,KAAK;AACV,iBAAK,MAAM;AACX,iBAAK,MAAM;AACX,cAAE,KAAK,IAAI;AAAA;AAGb,cAAG,IAAI;AACP,cAAG,IAAI;AACP,cAAG,IAAI;AAAA;AAGT,aAAK,IAAI;AAAA;AAGX,oBAAc,GAAG;AACf,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE,EAAE;AACV,eAAO;AAAA;AACR;AAED,oBAAc,MAAM;AAClB,YAAI,QAAQ;AAAM,iBAAO,CAAE,IAAI;AAC/B,YAAI,KAAK,IAAI,OAAO,OAChB,QAAQ,QAAQ,KAAK,OACrB,OAAO;AAAa,iBAAQ,IAAG,WAAW,KAAK;AAAA;AACnD,aAAK,SAAS;AACZ;AACE,gBAAI,MAAM,GAAG,WAAW,IACpB,MAAO,IAAG,WAAW,KAAK,YAC1B,SAAU,OAAM,OAAQ,MAAK;AAAA,mBAC1B,WAAW;AACpB,iBAAO;AAAA;AAET,aAAK,QAAQ,GAAG;AAChB,aAAK,QAAQ;AACb,YAAI;AACF,cAAI,MAAM;AAAG,iBAAK,OAAO;AACzB,eAAK,QAAQ;AAAa,mBAAO,KAAK,IAAI;AAAA;AAAA;AAE5C,eAAO;AAAA;AAGT,UAAI,WAAU,QAAO;AACnB,gBAAO,UAAU;AAAA,iBACR,WAAU,QAAO;AAC1B,gBAAO;AAAa,iBAAO;AAAA;AAAA;AAE3B,aAAK,UAAU;AAAA;AAAA,OAIf,SACC,OAAO,UAAW,YAAY,QAC9B,OAAO,UAAW,cAAc;AAAA;;;AChJnC;AAIA,IAAC,UAAS,SAAQ,SAAQ;AAE1B,sBAAgB;AACd,YAAI,KAAK,MAAM,UAAU;AAGzB,WAAG,OAAO;AACR,cAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG;AACzC,cAAK,KAAK,KAAO,MAAM,IAAK;AAC5B,cAAK,IAAI,IAAK;AACd,cAAK,KAAK,KAAO,MAAM,IAAK;AAC5B,cAAK,IAAI,IAAK;AACd,aAAG,IAAI,IAAK,KAAK,KAAO,MAAM,KAAM;AACpC,aAAG,IAAI,IAAK,IAAI,IAAK;AACrB,aAAG,IAAK,KAAK,KAAO,MAAM,KAAM;AAChC,iBAAO,GAAG,IAAK,IAAI,IAAK;AAAA;AAmB1B,WAAG,IAAI;AACP,WAAG,IAAI;AACP,WAAG,IAAI,aAAa;AACpB,WAAG,IAAI;AAEP,YAAI,SAAS,KAAK,MAAM;AAEtB,aAAG,IAAK,OAAO,aAAe;AAC9B,aAAG,IAAI,OAAO;AAAA;AAGd,qBAAW;AAAA;AAIb,iBAAS,IAAI,GAAG,IAAI,QAAQ,SAAS,IAAI;AACvC,aAAG,KAAK,QAAQ,WAAW,KAAK;AAChC,aAAG;AAAA;AAAA;AAIP,oBAAc,GAAG;AACf,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,eAAO;AAAA;AACR;AAED,oBAAc,MAAM;AAClB,YAAI,KAAK,IAAI,OAAO,OAChB,QAAQ,QAAQ,KAAK,OACrB,OAAO;AAAa,iBAAQ,IAAG,WAAW,KAAK;AAAA;AACnD,aAAK,SAAS;AACZ;AACE,gBAAI,MAAM,GAAG,WAAW,IACpB,MAAO,IAAG,WAAW,KAAK,YAC1B,SAAU,OAAM,OAAQ,MAAK;AAAA,mBAC1B,WAAW;AACpB,iBAAO;AAAA;AAET,aAAK,QAAQ,GAAG;AAChB,aAAK,QAAQ;AACb,YAAI;AACF,cAAI,OAAO,SAAU;AAAU,iBAAK,OAAO;AAC3C,eAAK,QAAQ;AAAa,mBAAO,KAAK,IAAI;AAAA;AAAA;AAE5C,eAAO;AAAA;AAGT,UAAI,WAAU,QAAO;AACnB,gBAAO,UAAU;AAAA,iBACR,WAAU,QAAO;AAC1B,gBAAO;AAAa,iBAAO;AAAA;AAAA;AAE3B,aAAK,SAAS;AAAA;AAAA,OAId,SACC,OAAO,UAAW,YAAY,QAC9B,OAAO,UAAW,cAAc;AAAA;;;ACnGnC;AAAA;;;ACAA;AAwBA,IAAC,UAAU,OAAM;AAIjB,UAAI,UAAS,MACT,QAAQ,KACR,SAAS,GACT,SAAS,IACT,UAAU,UACV,aAAa,KAAK,IAAI,OAAO,SAC7B,eAAe,KAAK,IAAI,GAAG,SAC3B,WAAW,eAAe,GAC1B,OAAO,QAAQ,GACf;AAMJ,2BAAoB,MAAM,SAAS;AACjC,YAAI,MAAM;AACV,kBAAW,WAAW,OAAQ,CAAE,SAAS,QAAU,WAAW;AAG9D,YAAI,YAAY,OAAO,SACrB,QAAQ,UAAU,CAAC,MAAM,SAAS,UACjC,QAAQ,OAAQ,aAAa,MAAM,IAAI;AAG1C,YAAI,OAAO,IAAI,KAAK;AAIpB,YAAI,OAAO;AACT,cAAI,IAAI,KAAK,EAAE,SACX,IAAI,YACJ,IAAI;AACR,iBAAO,IAAI;AACT,gBAAK,KAAI,KAAK;AACd,iBAAK;AACL,gBAAI,KAAK,EAAE;AAAA;AAEb,iBAAO,KAAK;AACV,iBAAK;AACL,iBAAK;AACL,mBAAO;AAAA;AAET,iBAAQ,KAAI,KAAK;AAAA;AAGnB,aAAK,QAAQ;AAAa,iBAAO,KAAK,EAAE,KAAK;AAAA;AAC7C,aAAK,QAAQ;AAAa,iBAAO,KAAK,EAAE,KAAK;AAAA;AAC7C,aAAK,SAAS;AAGd,eAAO,SAAS,KAAK,IAAI;AAGzB,eAAQ,SAAQ,QAAQ,YACpB,SAAS,OAAM,OAAM,cAAc;AACjC,cAAI;AAEF,gBAAI,MAAM;AAAK,mBAAK,OAAO;AAAA;AAE3B,kBAAK,QAAQ;AAAa,qBAAO,KAAK,MAAM;AAAA;AAAA;AAK9C,cAAI;AAAgB,iBAAK,WAAW;AAAM,mBAAO;AAAA;AAI5C,mBAAO;AAAA,WAElB,MACA,WACA,YAAY,UAAU,QAAQ,SAAU,QAAQ,MAChD,QAAQ;AAAA;AAEV,WAAK,SAAS,WAAW;AAYzB,oBAAc;AACZ,YAAI,GAAG,SAAS,IAAI,QAChB,KAAK,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAGtD,YAAI,CAAC;AAAU,gBAAM,CAAC;AAAA;AAGtB,eAAO,IAAI;AACT,YAAE,KAAK;AAAA;AAET,aAAK,IAAI,GAAG,IAAI,OAAO;AACrB,YAAE,KAAK,EAAE,IAAI,OAAQ,IAAI,IAAI,IAAI,UAAW,KAAI,EAAE;AAClD,YAAE,KAAK;AAAA;AAIT,QAAC,IAAG,IAAI,SAAS;AAEf,cAAI,IAAG,IAAI,GACP,KAAI,GAAG,GAAG,KAAI,GAAG,GAAG,KAAI,GAAG;AAC/B,iBAAO;AACL,iBAAI,GAAE,KAAI,OAAQ,KAAI;AACtB,gBAAI,IAAI,QAAQ,GAAE,OAAS,IAAE,MAAK,GAAE,KAAI,OAAQ,KAAI,OAAQ,IAAE,MAAK;AAAA;AAErE,aAAG,IAAI;AAAG,aAAG,IAAI;AACjB,iBAAO;AAAA,WAIN;AAAA;AAOL,oBAAc,GAAG;AACf,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE;AACR,UAAE,IAAI,EAAE,EAAE;AACV,eAAO;AAAA;AACR;AAMD,wBAAiB,KAAK;AACpB,YAAI,SAAS,IAAI,MAAO,OAAO,KAAM;AACrC,YAAI,SAAS,OAAO;AAClB,eAAK,QAAQ;AACX;AAAM,qBAAO,KAAK,SAAQ,IAAI,OAAO,QAAQ;AAAA,qBAAc;AAAA;AAAA;AAAA;AAG/D,eAAQ,OAAO,SAAS,SAAS,OAAO,WAAW,MAAM,MAAM;AAAA;AAQjE,sBAAgB,MAAM;AACpB,YAAI,aAAa,OAAO,IAAI,OAAO,IAAI;AACvC,eAAO,IAAI,WAAW;AACpB,cAAI,OAAO,KACT,OAAS,UAAS,IAAI,OAAO,KAAK,MAAM,WAAW,WAAW;AAAA;AAElE,eAAO,SAAS;AAAA;AAQlB;AACE;AACE,cAAI;AACJ,cAAI,cAAe,OAAM,WAAW;AAElC,kBAAM,IAAI;AAAA;AAEV,kBAAM,IAAI,WAAW;AACrB,YAAC,SAAO,UAAU,QAAO,UAAU,gBAAgB;AAAA;AAErD,iBAAO,SAAS;AAAA,iBACT;AACP,cAAI,UAAU,QAAO,WACjB,UAAU,WAAW,QAAQ;AACjC,iBAAO,CAAC,CAAC,IAAI,QAAM,SAAQ,SAAS,QAAO,QAAQ,SAAS;AAAA;AAAA;AAQhE,wBAAkB;AAChB,eAAO,OAAO,aAAa,MAAM,GAAG;AAAA;AAUtC,aAAO,KAAK,UAAU;AAMtB,UAAK,OAAO,UAAW,YAAY,OAAO;AACxC,eAAO,UAAU;AAEjB;AACE,uBAAa;AAAA,iBACN;AAAA;AAAA,iBACC,OAAO,UAAW,cAAc,OAAO;AACjD,eAAO;AAAa,iBAAO;AAAA;AAAA;AAAA,OAK3B,IACA;AAAA;;;ACrPF;AAYA,QAAI,QAAO;AAKX,QAAI,SAAS;AAKb,QAAI,SAAS;AAQb,QAAI,YAAY;AAShB,QAAI,UAAU;AAOd,QAAI,SAAS;AAIb,QAAI,KAAK;AAET,OAAG,OAAO;AACV,OAAG,SAAS;AACZ,OAAG,SAAS;AACZ,OAAG,YAAY;AACf,OAAG,UAAU;AACb,OAAG,SAAS;AAEZ,WAAO,UAAU;AAAA;;;AC3DjB;;;;AAAM;AACJ,aAAO,OAAO,WAAW,YACpB,QACA,OAAO,WAAW,eAGlB,OAAO,YAAY,eAAe,CAAC,CAAC,QAAQ;;;;;ACNnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;AAoBA,QAAM,4BAA4B;AApBlC;IAgDE,YAAmB;AAAA,WAAA,SAAA;AATX,WAAA,QAAe;AACf,WAAA,eAAwD;AAExD,WAAA,WAAkB;AAOxB,WAAK;;IAGP,YAAY,cAAsB;AAChC,UAAI,KAAK,YAAY;AACnB,gBAAQ,KACJ,YAAY,KAAK,oEACgB;;AAEvC,WAAK,eAAe;AACpB,WAAK,WAAW;;IAGlB,aACI,UAAkB,cAClB;AACF,WAAK,aAAa,YAAY,CAAC,cAAc;AAI7C,UAAI,KAAK,SAAS,aAAa;AAC7B,cAAM,YAAY,KAAK,SAAS;AAChC,gBAAQ,KACJ,qCAAqC,aAAa;AACtD,aAAK,IAAI,UAAU;;;UAIjB,SAAS;AACb,UAAI,YAAY,KAAK;AACnB,eAAO,KAAK,MAAM;;AAGpB,WAAK,MAAM,YAAY,MAAM,KAAK,aAAa;AAC/C,aAAO,KAAK,MAAM;;IAGpB,IAAI;AACF,UAAI,YAAY,KAAK;AACnB,eAAO,KAAK,MAAM;;AAGpB,YAAM,YAAY,KAAK,aAAa;AACpC,UAAI,qBAAqB;AACvB,cAAM,IAAI,MACN,QAAQ;;AAId,WAAK,MAAM,YAAY;AAEvB,aAAO,KAAK,MAAM;;IAGpB,UAAU;AACR,aAAO,KAAK,IAAI;;IAGlB,QAAQ;AACN,aAAO,KAAK,IAAI;;IAGlB;AACE,aAAO,KAAK;;QAGV;AACF,aAAO,KAAK;;IAGd,IAAI,UAAkB;AACpB,UAAI,KAAK,aAAa,aAAa;AACjC,cAAM,IAAI,MACN,mBAAmB;;AAEzB,WAAK,MAAM,YAAY;AACvB,UAAI,KAAK,aAAa,UAAU,WAAW;AACzC,aAAK,aAAa,UAAU,QAAQ;;;IAIhC,aAAa;AACnB,UAAI,KAAK,aAAa,aAAa;AACjC,cAAM,IAAI,MACN,yBAAyB;;AAE/B,aAAO,KAAK,aAAa,UAAU;;IAGrC,SAAS;AACP,WAAK,QAAQ,OAAO,OAAO,IAAI;;IAGjC;AACE,WAAK,QAAQ;AACb,WAAK,WAAW;AAChB,WAAK;;IAGC;AACN,UAAI,OAAO,KAAK,WAAW,eACvB,OAAO,KAAK,OAAO,aAAa,eAChC,OAAO,KAAK,OAAO,SAAS,WAAW;AACzC;;AAGF,YAAM,YAAY,eAAe,KAAK,OAAO,SAAS;AACtD,UAAI,6BAA6B;AAC/B,cAAM,YAAY,UAAU,2BAA2B,MAAM;AAC7D,kBAAU,QAAQ;AAChB,gBAAM,CAAC,KAAK,SAAS,SAAS,MAAM;AACpC,eAAK,SAAS,OAAO,WAAW,KAAK;;;;;AAMvC,0BAAyB;AAC7B,UAAM,SAAS;AACf,gBAAY,QAAQ,+BAA+B,CAAC,MAAM;AACxD,kBAAY,QAAQ,EAAE,IAAI,EAAE;AAC5B,aAAO,EAAE,KAAK;;AAEhB,WAAO;;AAGT,uBACI,QAAiC,MAAc;AACjD,WAAO,mBAAmB,SAAS,mBAAmB,SAAS;;AAGjE,sBAAoB,UAAkB;AACpC,YAAQ,MAAM;AACd,QAAI,UAAU,UAAU,UAAU;AAChC,aAAO,UAAU;eACR,GAAG,CAAE,YAAY;AAC1B,aAAO,CAAC;;AAEV,UAAM,IAAI,MACN,oCAAoC,kBAAkB;;AAUtD;AACJ,WAAO;;AAGF,MAAI,MAAmB;AACxB,gCAA+B;AACnC,UAAM;;;;AC5MR;;;;;;;;;;;;;;;;AAqBA,MAAI;AAEE;AACJ,QAAI,mBAAmB;AAErB,UAAI;AACJ,UAAI,OAAQ,WAAY;AACtB,aAAK;iBACI,OAAQ,WAAY;AAC7B,aAAK;iBACI,OAAQ,YAAa;AAC9B,aAAK;iBACI,OAAQ,SAAU;AAC3B,aAAK;;AAEL,cAAM,IAAI,MAAM;;AAElB,wBAAkB;;AAEpB,WAAO;;AAIT;AACE,UAAM,KAAK;AACX,QAAI,GAAG,cAAc;AACnB,SAAG,aAAa,IAAI;;AAEtB,WAAO,GAAG;;AAUN,qBAAuB,KAAa;AACxC,UAAM,YAAY;AAClB,QAAI,UAAU,IAAI;AAChB,aAAO,UAAU,IAAI;;AAErB,YAAM,YAAY;AAClB,gBAAU,IAAI,KAAK;AACnB,aAAO,UAAU,IAAI;;;;;ACzClB,QAAM,MAAM;AAGZ,QAAM,OAAO;AAGb,QAAM,QAAQ;AAGd,QAAM,MAAM;AAGZ,QAAM,OAAO;AAGb,QAAM,MAAM;AAOZ,QAAM,MAAM;AAOZ,QAAM,SAAS;AAMf,QAAM,SAAS;AAMf,QAAM,OAAO;AAGb,QAAM,QAAQ;AAGd,QAAM,OAAO;AAGb,QAAM,QAAQ;AAGd,QAAM,QAAQ;AAGd,QAAM,UAAU;AAShB,QAAM,kBAAkB;AAQxB,QAAM,YAAY;AAWlB,QAAM,oBAAoB;AAU1B,QAAM,cAAc;AAOpB,QAAM,iBAAiB;AASvB,QAAM,cAAc;AAOpB,QAAM,OAAO;AAMb,QAAM,OAAO;AAGb,QAAM,cAAc;AAOpB,QAAM,UAAU;AAGhB,QAAM,SAAS;AAMf,QAAM,SAAS;AAUf,QAAM,uBAAuB;AAS7B,QAAM,sBAAsB;AAU5B,QAAM,SAAS;AASf,QAAM,yBAAyB;AAQ/B,QAAM,wBAAwB;AAM9B,QAAM,MAAM;AAGZ,QAAM,OAAO;AAGb,QAAM,SAAS;AAQf,QAAM,gBAAgB;AAStB,QAAM,eAAe;AAOrB,QAAM,wBAAwB;AAW9B,QAAM,sCACT;AAIG,QAAM,qCACT;AAIG,QAAM,OAAO;AAGb,QAAM,aAAa;AAQnB,QAAM,0BAA0B;AAIhC,QAAM,2BAA2B;AAIjC,QAAM,MAAM;AAGZ,QAAM,MAAM;AAGZ,QAAM,UAAU;AAGhB,QAAM,MAAM;AAGZ,QAAM,QAAQ;AAGd,QAAM,MAAM;AAGZ,QAAM,QAAQ;AAGd,QAAM,MAAM;AAGZ,QAAM,OAAO;AAOb,QAAM,gBAAgB;AAGtB,QAAM,QAAQ;AAGd,QAAM,WAAW;AAGjB,QAAM,iBAAiB;AAOvB,QAAM,WAAW;AAMjB,QAAM,WAAW;AAGjB,QAAM,UAAU;AAGhB,QAAM,eAAe;AAGrB,QAAM,WAAW;AAGjB,QAAM,OAAO;AAGb,QAAM,OAAO;AAGb,QAAM,WAAW;AAGjB,QAAM,QAAQ;AAGd,QAAM,QAAQ;AAGd,QAAM,OAAO;AAGb,QAAM,YAAY;AAGlB,QAAM,WAAW;AAMjB,QAAM,MAAM;AAGZ,QAAM,QAAQ;AAGd,QAAM,aAAa;AAGnB,QAAM,aAAa;AAGnB,QAAM,YAAY;AAGlB,QAAM,aAAa;AAMnB,QAAM,MAAM;AASZ,QAAM,cAAc;AASpB,QAAM,MAAM;AAOZ,QAAM,UAAU;AAGhB,QAAM,UAAU;AAShB,QAAM,kBAAkB;AAUxB,QAAM,YAAY;AAWlB,QAAM,oBAAoB;AAW1B,QAAM,oBAAoB;AAS1B,QAAM,OAAO;AAOb,QAAM,MAAM;AAOZ,QAAM,UAAU;AAGhB,QAAM,MAAM;AAGZ,QAAM,WAAW;AAGjB,QAAM,SAAS;AAGf,QAAM,WAAW;AAGjB,QAAM,sBAAsB;AAS5B,QAAM,sBAAsB;AAU5B,QAAM,sBAAsB;AAU5B,QAAM,WAAW;AAGjB,QAAM,SAAS;AAQf,QAAM,QAAQ;AAOd,QAAM,OAAO;AAGb,QAAM,MAAM;AAGZ,QAAM,QAAQ;AAGd,QAAM,OAAO;AAOb,QAAM,QAAQ;AAQd,QAAM,OAAO;AAGb,QAAM,aAAa;AAGnB,QAAM,OAAO;AAGb,QAAM,UAAU;AAMhB,QAAM,wBAAwB;AAO9B,QAAM,4BAA4B;AAIlC,QAAM,iBAAiB;AAOvB,QAAM,qBAAqB;AAG3B,QAAM,QAAQ;AAGd,QAAM,UAAU;AAMhB,QAAM,QAAQ;AAGd,QAAM,QAAQ;AAGd,QAAM,YAAY;AAMlB,QAAM,WAAW;AAGjB,QAAM,OAAO;AAGb,QAAM,QAAQ;AAMd,QAAM,MAAM;AAGZ,QAAM,OAAO;AAGb,QAAM,OAAO;AAGb,QAAM,UAAU;AAGhB,QAAM,WAAW;AAGjB,QAAM,OAAO;AAGb,QAAM,MAAM;AAOZ,QAAM,iBAAiB;AAOvB,QAAM,SAAS;AAOf,QAAM,UAAU;AAMhB,QAAM,oBAAoB;AAG1B,QAAM,SAAS;AAGf,QAAM,MAAM;AAGZ,QAAM,gBAAgB;AAOtB,QAAM,eAAe;AAarB,QAAM,MAAM;AAGZ,QAAM,OAAO;AAGb,QAAM,OAAO;AAMb,QAAM,OAAO;AAOb,QAAM,YAAY;AAQlB,QAAM,SAAS;AAMf,QAAM,qBAAqB;AAO3B,QAAM,YAAY;AAMlB,QAAM,OAAO;AAMb,QAAM,aAAa;AASnB,QAAM,mBAAmB;AAQzB,QAAM,eAAe;AAerB,QAAM,cAAc;AAgBpB,QAAM,uBAAuB;;;ACvzBpC;;;;;;;;;;;;;;;;AAuBA,QAAM,iBACF,UAAU,kBAAkB,MAAM,IAAI;AAC1C,QAAM,eACF,UAAU,gBAAgB,MAAM,IAAI;AAoElC,qBACF,YAAoB;AACtB,UAAM,MAAM,QAAQ,YAAY;AAChC,WAAO,eAAe,IAAI;;AAOtB,uBAAsB;AAC1B,WAAO,aAAa,IAAI;;AAGpB,gCAA+B;AACnC,UAAM,KAAK,eAAe;AAC1B,UAAM,SAAyB;AAE/B,WAAO;AACL,YAAM,CAAC,MAAM,SAAS,GAAG;AACzB,UAAI;AACF;;AAEF,YAAM,CAAC,KAAK,WAAU;AACtB,YAAM,CAAC,YAAa,IAAI,MAAM;AAC9B,UAAI,aAAY;AACd,eAAO,KAAK;;;AAGhB,WAAO;;AAcH,0BAAyB;AAC7B,UAAM,CAAC,YAAY,eAAe;AAClC,UAAM,MAAM,QAAQ,YAAY;AAChC,QAAI,eAAe,IAAI;AACrB,cAAQ,KACJ,eAAe,4BACX;;AAEV,mBAAe,IAAI,KAAK;;AAWpB,4BAA2B;AAC/B,UAAM,CAAC,cAAc;AAErB,QAAI,aAAa,IAAI;AAGnB,UAAI,MAAM,QAAQ;AAChB,gBAAQ,KAAK,gCAAgC;;;AAGjD,iBAAa,IAAI,YAAY;;AAUzB,4BACF,YAAoB;AACtB,UAAM,MAAM,QAAQ,YAAY;AAChC,QAAI,CAAC,eAAe,IAAI;AACtB,YAAM,IAAI,MACN,eAAe,4BACX;;AAEV,mBAAe,OAAO;;AAIlB,8BAA6B;AACjC,QAAI,CAAC,aAAa,IAAI;AACpB,YAAM,IAAI,MACN,iBAAiB;;AAEvB,iBAAa,OAAO;;AAGtB,mBAAiB,YAAoB;AACnC,WAAO,GAAG,eAAe;;;;ACrM3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCM,mBAAkB;AAEtB,QAAI,UAAU,MAAM;AACpB,QAAI,OAAO;AACX,QAAI,QAAQ;AAEZ,WAAO,UAAU;AAEf,cAAS,KAAK,WAAW,UAAW;AAEpC;AAEA,aAAO,MAAM;AACb,YAAM,WAAW,MAAM;AACvB,YAAM,SAAS;;;AAKb,iBAAgB,MAAa,GAAW;AAC5C,WAAO,KAAK,IAAI,MAAK,KAAK,IAAI,GAAG;;AAG7B,6BAA4B;AAChC,WAAO,MAAM,MAAM,IAAI,MAAM,MAAM;;AAG/B,eAAc;AAClB,QAAI,QAAM;AACV,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ;AAC9B,eAAO,IAAI;;AAEb,WAAO;;AAUH,uBAAsB,GAAW;AACrC,UAAM,IAAI,KAAK;AACf,WAAQ,IAAI,IAAM,KAAI,KAAK;;AAIvB,uBAAsB,GAAe;AACzC,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,EAAE,QAAQ;AAC5B,YAAM,OAAO,OAAO,EAAE,MAAM,OAAO,EAAE;AACrC,gBAAU,OAAO;;AAEnB,WAAO;;AAiBH,kBAAiB,MAAe;AACpC,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,OAAO,QAAQ,WAAW,MAAM;;;AAI9C,6BACF,QAAkB,QAAkB,qBAAqB;AAC3D,WACI,YAAY,QAAQ,SACpB,MAAM,qBAAqB,WAAW,cAAc;;AAGpD,yBAAwB;AAC5B,WACI,KAAK,MACL,MAAM;;AAqBN,mBAEF,KAA0B,SAAc,IAAI,iBAAiB;AAC/D,QAAI,UAAU;AACZ,eAAS;;AAEX,QAAI,MAAM,QAAQ,QAAQ,aAAa,QAAQ,CAAC;AAC9C,eAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE;AAChC,gBAAQ,IAAI,IAAI,QAAQ;;;AAG1B,aAAO,KAAK;;AAEd,WAAO;;AAaH,yBAAwB;AAC5B,QAAI,MAAM,WAAW;AAEnB,aAAO;;AAET,QAAI,OAAO,MAAM;AACjB,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ;AAChC,cAAQ,MAAM;;AAEhB,WAAO;;AAGH,yBAAwB;AAC5B,WAAO,MAAM,WAAW;;AAGpB,uBAAsB,IAAgB;AAC1C,QAAI,OAAO;AACT,aAAO;;AAET,QAAI,MAAM,QAAQ,MAAM;AACtB,aAAO;;AAGT,QAAI,GAAG,WAAW,GAAG;AACnB,aAAO;;AAET,aAAS,IAAI,GAAG,IAAI,GAAG,QAAQ;AAC7B,UAAI,GAAG,OAAO,GAAG;AACf,eAAO;;;AAGX,WAAO;;AAGH,iBAAgB;AACpB,WAAO,IAAI,MAAM;;AAGb,gBAAe;AAEnB,QAAK,KAAa,QAAQ;AAExB,aAAQ,KAAa,KAAK;;AAE5B,QAAI,MAAM;AACR,aAAO;eACE,MAAM;AACf,aAAO;;AAEP,YAAM,MAAM,KAAK,IAAI,IAAI;AACzB,aAAQ,OAAM,KAAM,OAAM;;;AAIxB,+BAA8B;AAClC,UAAM,QAAQ,KAAK,KAAK,KAAK,KAAK;AAClC,WAAO,CAAC,OAAO,KAAK,KAAK,OAAO;;AAc5B,iCAAgC;AACpC,UAAM,kBAAkB,IAAI,YAAY;AACxC,aAAS,IAAI,GAAG,IAAI,GAAG,EAAE;AACvB,sBAAgB,KAAK;;AAEvB,YAAQ;AACR,WAAO;;AAGH,oBAAmB,GAAW;AAClC,QAAI,QAAQ,EAAE;AACZ,aAAO;;AAET,WAAO,IAAI,IAAI,OAAO,OAAO,EAAE;;AAG3B,uBACF,SAAwB,UAAU,CAAC,YAAoB,GACvD;AACF,WAAO,IAAI,QAAc,CAAC,SAAS;AACjC,UAAI,WAAW;AAEf,YAAM,QAAQ;AACZ,YAAI;AACF;AACA;;AAGF;AAEA,cAAM,cAAc,QAAQ;AAE5B,YAAI,cAAc,QAAQ,YAAY;AACpC;AACA;;AAEF,mBAAW,OAAO;;AAGpB;;;AAaE,kCACF,OAAiB;AACnB,QAAI,YAAY;AAChB,QAAI,cAAc;AAElB,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE;AAClC,UAAI,MAAM,MAAM;AACd,qBAAa,MAAM;iBACV,MAAM,OAAO;AACtB,YAAI,gBAAgB;AAClB,gBAAM,MACF,yDACmB,uBAAuB;;AAEhD,sBAAc;iBACL,MAAM,KAAK;AACpB,cAAM,MAAM,gCAAgC,MAAM,aAAa;;;AAInE,QAAI,gBAAgB;AAClB,UAAI,OAAO,KAAK,SAAS;AACvB,cAAM,MAAM,QAAQ,yCAAyC;;AAE/D,aAAO;;AAGT,QAAI,cAAc;AAChB,YAAM,MACF,qCAAqC;;AAG3C,QAAI,OAAO,cAAc;AACvB,YAAM,MACF,wDACO,UAAU;;AAGvB,UAAM,WAAW,MAAM;AACvB,aAAS,eAAe,OAAO;AAC/B,WAAO;;AAGH,0BACF,MAAuB;AACzB,UAAM,OAAO,MAAM;AAGnB,WAAO,QAAQ,OAAO,MAAM,IAAI,CAAC,GAAG,MAAM,KAAK,GAAG,OAAO;AAGzD,WACI,KAAK,MAAM,QAAM,MAAM,CAAC,QAAQ,KAAK,OACrC,MACI,+CAA+C,SAAS,sBAC5C;AAGpB,WACI,KAAK,MAAM,QAAM,MAAM,MACvB,MAAM,0DACU;AAGpB,WAAO,KAAK,IAAI,OAAK,IAAI,IAAI,OAAO,IAAI;;AAIpC,wBAAuB,OAAiB;AAE5C,UAAM,WAAqB;AAC3B,UAAM,WAAqB;AAC3B,UAAM,eAAe,QAAQ,QAAQ,MAAM,QAAQ,SAAS,KAAK,WAAW;AAC5E,UAAM,OAAQ,QAAQ,QAAQ,eAC1B,OACA,eAAe,MAAM,OAAO;AAChC,QAAI,IAAI;AACR,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE;AAClC,UAAI,QAAQ;AACV,YAAI,KAAK,OAAO,KAAK,MAAM,OAAO;AAChC,gBAAM,IAAI,MACN,sBAAsB,oBAAoB,MAAM;;AAEtD,YAAK,MAAK,MAAM,QAAQ,KAAK,KAAK,MAAM,MAAM,OAAO;AACnD,mBAAS,KAAK,MAAM;AACpB,mBAAS,KAAK;;AAEhB,YAAI,KAAK,MAAM;AACb;;;AAGJ,UAAI,MAAM,OAAO;AACf,iBAAS,KAAK,MAAM;AACpB,iBAAS,KAAK;;;AAGlB,WAAO,CAAC,UAAU;;AAGd,kCACF,OAAU;AACZ,QAAI,SAAS;AACb,QAAI,SAAS,QAAQ,UAAU;AAC7B,eAAS,IAAI,aAAa;eACjB,UAAU;AACnB,eAAS,IAAI,WAAW;eACf,UAAU;AACnB,eAAS,IAAI,WAAW;;AAExB,YAAM,IAAI,MAAM,qBAAqB;;AAEvC,WAAO;;AAGH,6BACF,OAAU;AACZ,QAAI,SAAS;AACb,QAAI,SAAS,QAAQ,UAAU;AAC7B,eAAS,IAAI,aAAa;eACjB,UAAU;AACnB,eAAS,IAAI,WAAW;eACf,UAAU;AACnB,eAAS,IAAI,WAAW;eACf,UAAU;AACnB,eAAS,IAAI,MAAgB;;AAE7B,YAAM,IAAI,MAAM,qBAAqB;;AAEvC,WAAO;;AAGH,oCACF,MAA+B;AACjC,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ;AAC/B,YAAM,MAAM,KAAK;AACjB,UAAI,MAAM,QAAQ,CAAC,SAAS;AAC1B,cAAM,MAAM,oBAAoB,iCAAiC;;;;AAMjE,wBAAuB;AAC3B,WAAO,UAAU,UAAU,UAAU,eAAe,UAAU,aAC1D,UAAU,WAAW,UAAU;;AAO/B,2BAA0B,SAAmB;AACjD,QAAI,YAAY;AACd,aAAO;;AAET,QAAI,YAAY,aAAa,YAAY;AACvC,aAAO;;AAET,QAAI,YAAY,WAAW,YAAY,aAAa,YAAY;AAC9D,aAAO;;AAET,QAAI,YAAY,UAAU,YAAY;AACpC,aAAO;;AAET,WAAO;;AAGH,wBAAuB;AAC3B,WAAO,aAAa,gBAAgB,aAAa,cAC7C,aAAa;;AAGb,2BAA0B;AAC9B,QAAI,UAAU,aAAa,UAAU;AACnC,aAAO;eACE,UAAU;AACnB,aAAO;eACE,UAAU;AACnB,aAAO;;AAEP,YAAM,IAAI,MAAM,iBAAiB;;;AAU/B,gCAA+B;AACnC,QAAI,OAAO;AACT,aAAO;;AAET,QAAI,QAAQ;AACZ,QAAI,QAAQ,OAAK,SAAS,EAAE;AAC5B,WAAO;;AAIH,oBAAmB;AACvB,WAAO,OAAO,UAAU,YAAY,iBAAiB;;AAGjD,qBAAoB;AACxB,WAAO,OAAO,UAAU;;AAGpB,oBAAmB;AACvB,WAAO,OAAO,UAAU;;AAGpB,sBAAqB;AACzB,QAAI,MAAM,QAAQ;AAChB,aAAO,WAAW,OAAO;;AAE3B,QAAI,kBAAkB;AACpB,aAAO;eACE,kBAAkB,cAAc,kBAAkB;AAC3D,aAAO;eACE,SAAS;AAClB,aAAO;eACE,SAAS;AAClB,aAAO;eACE,UAAU;AACnB,aAAO;;AAET,WAAO;;AAGH,sBAAqB;AACzB,WAAO,CAAC,CAAE,MAAK,EAAE,eAAe,EAAE,QAAQ,EAAE;;AAGxC,0BAAyB,MAAc;AAC3C,aAAS,IAAI,OAAO,IAAI,MAAM,EAAE;AAC9B,UAAI,OAAO,MAAM;AACf,eAAO;;;AAGX,WAAO;;AAGH,0BAAyB;AAC7B,UAAM,OAAO,MAAM;AACnB,QAAI,OAAO;AACT,aAAO;;AAKT,UAAM,UAAU,IAAI,MAAM,OAAO;AACjC,YAAQ,OAAO,KAAK,MAAM,OAAO;AACjC,aAAS,IAAI,OAAO,GAAG,KAAK,GAAG,EAAE;AAC/B,cAAQ,KAAK,QAAQ,IAAI,KAAK,MAAM,IAAI;;AAE1C,WAAO;;AAGH,wBAAuB,GAAe;AAC1C,QAAI,UAAU;AACZ,YAAM,IAAI,MAAM;;AAElB,QAAI,MAAM,QAAQ;AAChB,UAAI,QAAQ;;AAGd,QAAI,MAAM,QAAQ;AAChB,+BAAyB,GAAe;;AAE1C,QAAI,mBAAmB,GAAG;AACxB,aAAO;;AAET,QAAI,SAAS,QAAQ,UAAU,aAAa,UAAU;AACpD,aAAO,IAAI,aAAa;eACf,UAAU;AACnB,aAAO,IAAI,WAAW;eACb,UAAU;AACnB,YAAM,OAAO,IAAI,WAAY,EAAe;AAC5C,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE;AACjC,YAAI,KAAK,MAAO,EAAe,QAAQ;AACrC,eAAK,KAAK;;;AAGd,aAAO;;AAEP,YAAM,IAAI,MAAM,qBAAqB;;;AAIzC,6BAA2B,QAAgB,OAAiB;AAC1D,UAAM,MAAM,IAAI;AAChB,QAAI,MAAM,WAAW;AACnB,YAAM,IAAI,MAAM;AAChB,eAAS,IAAI,GAAG,IAAI,GAAG;AACrB,YAAI,KAAK,EAAE,SAAS;;;AAGtB,YAAM,IAAI,MAAM;AAChB,YAAM,OAAO,MAAM,MAAM;AACzB,YAAM,MAAM,KAAK,OAAO,CAAC,KAAK,MAAM,MAAM;AAC1C,eAAS,IAAI,GAAG,IAAI,GAAG;AACrB,YAAI,KAAK,kBAAkB,SAAS,IAAI,KAAK,MAAM;;;AAGvD,WAAO;;AAIH,yBAAwB,OAAiB;AAC7C,QAAI,MAAM,WAAW;AAEnB,aAAO,EAAE;;AAEX,UAAM,OAAO,MAAM,OAAO,CAAC,KAAK,MAAM,MAAM;AAC5C,QAAI,SAAS;AAEX,aAAO;;AAET,QAAI,SAAS,EAAE;AACb,YAAM,IAAI,MAAM,IAAI,wCAAwC,EAAE;;AAGhE,WAAO,kBAAkB,GAAG,OAAO;;AAGrC,8BAA4B,GAAe;AACzC,WAAQ,aAAa,gBAAgB,UAAU,aAC1C,aAAa,cAAc,UAAU,WACrC,aAAa,cAAc,UAAU;;AAGtC,8BACF,MAAc;AAChB,UAAM,QAAQ,oBAAoB,MAAM;AACxC,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ;AAChC,YAAM,KAAK;;AAEb,WAAO;;AAGH,+BACF,MAAc;AAChB,QAAI,SAAS,QAAQ,UAAU,aAAa,UAAU;AACpD,aAAO,IAAI,aAAa;eACf,UAAU;AACnB,aAAO,IAAI,WAAW;eACb,UAAU;AACnB,aAAO,IAAI,WAAW;;AAEtB,YAAM,IAAI,MAAM,qBAAqB;;;AASnC,qCACF,OAAiB;AACnB,UAAM,OAAO,MAAM,OAAO,CAAC,MAAM,SAAS,OAAO,MAAM;AACvD,QAAI,SAAS,QAAQ,UAAU;AAC7B,aAAO,cAAc,OAAO,IAAI,aAAa;eACpC,UAAU;AACnB,aAAO,cAAc,OAAO,IAAI,WAAW;eAClC,UAAU;AACnB,aAAO,cAAc,OAAO,IAAI,WAAW;;AAE3C,YAAM,IAAI,MAAM,qBAAqB;;;AAcnC;AACJ,WAAO,MAAM,SAAS;;AAGlB,8CAA6C;AACjD,UAAM,QAAQ;AACZ,aACI,OAAO,UAAU,YAAY,WAAW,GACxC,MACI,0EACU;;;AAmBhB,kBACF,MAAc;AAChB,WAAO,MAAM,SAAS,MAAM,MAAM;;AAW9B,wBAAuB,GAAW,WAAW;AACjD,eAAW,YAAY;AACvB,WAAO,MAAM,SAAS,OAAO,GAAG;;AAU5B,wBAAuB,OAAmB,WAAW;AACzD,eAAW,YAAY;AACvB,WAAO,MAAM,SAAS,OAAO,OAAO;;AAWhC,sBACF,MAAgB,MAAc;AAChC,QAAI,SAAS;AACX,aAAO;eACE,SAAS;AAClB,aAAO,KAAK;;AAEd,QAAI,QAAQ,KAAK,KAAK,SAAS;AAC/B,aAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,EAAE;AACrC,eAAS,QAAQ,KAAK,KAAK;;AAE7B,WAAO;;AAWH,sBACF,OAAe,MAAc;AAC/B,QAAI,SAAS;AACX,aAAO;eACE,SAAS;AAClB,aAAO,CAAC;;AAEV,UAAM,OAAiB,IAAI,MAAM;AACjC,aAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,EAAE;AACrC,WAAK,KAAK,KAAK,MAAM,QAAQ,QAAQ;AACrC,eAAS,KAAK,KAAK,QAAQ;;AAE7B,SAAK,KAAK,SAAS,KAAK;AACxB,WAAO;;;;ACxwBT;;;;;;;;;;;;;;;;;IAgCE,YAAoB,cAAoC;AAApC,WAAA,eAAA;AAAoC,WAAA,SAAA;AACtD,UAAI,UAAU;AACZ,aAAK,SAAS,IAAI;;;IAItB,cAAc,YAAoB,QAAwB;AAExD,UAAI;AACJ,YAAM,sBAAsB;AAC1B,kBAAU;;AAEZ,YAAM,QAAQ,KAAK,aAAa,KAAK;AAErC,cAAQ,IAAI;AAGV,UAAE,OAAO,KAAK;AACZ,oCAA0B,YAAY,EAAE,OAAO;;;AAInD,YAAM,gBAAgB;QACpB;QACA;QACA;QACA,QAAQ,MAAM,KAAK,YAAU,OAAO;QACpC,WAAW,MAAM,KACb,YAAU,OAAO,uBAAuB,OACpC,OAAO,wBACP;;AAEV,aAAO;;IAGT,iBAAiB;AACf,YAAM,CAAC,YAAY,SAAS,QAAQ,QAAQ,aAAa;AAEzD,cAAQ,QAAQ;AACd,gBAAQ,IAAI,CAAC,OAAO,QAAQ,QAAQ,YAAY,KAAK;AACnD,eAAK,OAAO,iBACR,YAAY,QAAQ,eAAe,IAAI,eAAe,IAAI,QAC1D,eAAe;;;;;AAMrB,qCACF,MAAsB,OAAU;AAClC,QAAI,UAAU;AAEZ,aAAO;;AAET,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ;AAC/B,YAAM,MAAM,KAAK;AACjB,UAAI,MAAM,QAAQ,CAAC,SAAS;AAE1B,gBAAQ,KAAK,SAAS,yBAAyB;AAC/C,eAAO;;;AAGX,WAAO;;AA9FT;IAkGE,iBACI,MAAc,QAAgB,MAC9B,QAAgC,QAChC;AACF,YAAM,QAAO,OAAO,WAAW,WAAW,AAAK,SAAS,GAAG,YAAY,KAC7B,OAAO;AACjD,YAAM,aAAa,AAAK,SAAS,MAAM;AACvC,YAAM,OAAO,OAAO;AACpB,YAAM,OAAO,OAAO;AACpB,YAAM,QAAQ,AAAK,SAAS,OAAO,MAAM,YAAY;AACrD,UAAI,yBAAyB;AAE7B,iBAAW,SAAQ;AACjB,cAAM,QAAQ,OAAO;AACrB,YAAI,SAAS;AAGX,gBAAM,aAAa,MAAM,SAAS,OAAO;AACzC,gBAAM,YAAY,WAAW;AAC7B,oCACI,GAAG,UAAS,cAAc,YAAY,IAAI,aAAa;;;AAI/D,cAAQ,IACJ,KAAK,gBAAiB,WAAW,SAAS,WAAY,UAClD,4BAA6B,aACjC,oBAAoB,aAAa,cAAc,iBAC/C,gBAAgB;;;;;AC9HxB;;;;;;;;;;;;;;;;AA2CM,gCACF,OAAkB,IAAc;AAGlC,UAAM,eAA8C;AACpD,UAAM,aAA0C;AAChD,aAAS,IAAI,GAAG,IAAI,GAAG,QAAQ;AAC7B,mBAAa,GAAG,GAAG,MAAM;;AAG3B,aAAS,IAAI,GAAG,IAAI,MAAK,QAAQ;AAC/B,YAAM,OAAO,MAAK;AAClB,YAAM,aAAa,KAAK;AACxB,iBAAW,aAAa;AACtB,cAAM,QAAQ,WAAW;AAEzB,YAAI,gBAAgB;AACpB,iBAAS,IAAI,GAAG,IAAI,GAAG,QAAQ;AAC7B,cAAI,aAAa,MAAM;AACrB,iBAAK,QAAQ,QAAQ,YAAU,aAAa,OAAO,MAAM;AACzD,4BAAgB;AAChB,uBAAW,KAAK,MAAM;AACtB;;;AAIJ,YAAI;AACF;;;;AAMN,UAAM,iBAAgD;AACtD,mBAAe,EAAE,MAAM;AACvB,UAAM,WAAwC;AAE9C,aAAS,IAAI,MAAK,SAAS,GAAG,KAAK,GAAG;AACpC,YAAM,OAAO,MAAK;AAClB,YAAM,aAAa,KAAK;AAGxB,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,QAAQ;AACvC,YAAI,eAAe,KAAK,QAAQ,GAAG;AACjC,qBAAW,aAAa;AACtB,2BAAe,WAAW,WAAW,MAAM;AAC3C,qBAAS,KAAK,MAAM;;AAEtB;;;;AAMN,UAAM,eAA2B;AACjC,aAAS,IAAI,GAAG,IAAI,MAAK,QAAQ;AAC/B,YAAM,OAAO,MAAK;AAElB,UAAI,WAAW,KAAK,OAAO,SAAS,KAAK;AAEvC,cAAM,eAA8C;AACpD,mBAAW,aAAa,KAAK;AAC3B,gBAAM,YAAY,KAAK,OAAO;AAC9B,cAAI,aAAa,UAAU;AACzB,yBAAa,aAAa;;;AAK9B,cAAM,aAAa,OAAO,OAAO,IAAI;AACrC,mBAAW,SAAS;AACpB,mBAAW,UAAU,KAAK;AAE1B,qBAAa,KAAK;;;AAItB,WAAO;;AAUH,kCACF,8BACA,cAA0B,OAC1B;AAEF,aAAS,IAAI,aAAa,SAAS,GAAG,KAAK,GAAG;AAC5C,YAAM,OAAO,aAAa;AAE1B,YAAM,MAAgB;AACtB,WAAK,QAAQ,QAAQ;AACnB,cAAM,aAAa,6BAA6B,EAAE;AAClD,YAAI,cAAc;AAChB,cAAI,KAAK;;AAIT,cAAI,KAAK;;;AAIb,UAAI,KAAK,YAAY;AACnB,cAAM,IAAI,MACN,4DACO,KAAK;;AAIlB,YAAM,iBAAiB,KAAK,SAAS;AAErC,iBAAW,aAAa,KAAK;AAC3B,YAAI,CAAE,cAAa;AACjB,gBAAM,IAAI,MACN,iCAAiC,yCACH,OAAO,KAAK;;AAIhD,cAAM,KAAK,MAAK,MAAM,eAAe;AACrC,YAAI,GAAG,UAAU;AACf,gBAAM,IAAI,MACN,4BACI,KAAK,qCACN,iDAAiD,GAAG;;AAE7D,cAAM,IAAI,KAAK,OAAO;AACtB,YAAI,CAAC,AAAK,YAAY,GAAG,OAAO,EAAE;AAChC,gBAAM,IAAI,MACN,4BACI,KAAK,sCACL,yBAAyB,GAAG,wDACL,EAAE;;AAGnC,YAAI,6BAA6B,EAAE,OAAO;AACxC,uCAA6B,EAAE,MAAM;;AAErC,gBAAM,cAAc,6BAA6B,EAAE;AACnD,uCAA6B,EAAE,MAAM,MAAI,aAAa;AACtD,sBAAY;;;;;;;AC5LpB;;;;;;;;;;;;;;;;AAqBA,QAAM,wBAAwB;AAE9B,QAAM,6BAA6B;AAEnC,QAAM,wBAAwB;AAExB,0BACF,MAA2B,OAAiB,OAC5C;AACF,UAAM,UAAU,eAAe;AAC/B,UAAM,YAAY,wBAAwB,MAAM,OAAO,OAAO;AAC9D,UAAM,OAAO,MAAM;AACnB,UAAM,YAAY,kBAAkB,MAAM,OAAO,OAAO,SAAS;AACjE,UAAM,QAAQ,CAAC;AACf,QAAI;AACF,YAAM,KAAK,YAAY;AACvB,YAAM,KAAK,WAAW;AACtB,YAAM,KAAK,aAAa;AACxB,YAAM,KAAK;;AAEb,UAAM,KAAK,UAAU,IAAI,OAAK,SAAS,GAAG,KAAK;AAC/C,WAAO,MAAM,KAAK;;AAGpB,mCACI,MAA2B,OAAiB,OAC5C;AACF,UAAM,IAAI,cAAc;AACxB,UAAM,UAAU,QAAQ,QAAQ,SAAS;AACzC,UAAM,YAAY,IAAI,MAAM,SAAS,KAAK;AAC1C,UAAM,OAAO,MAAM;AACnB,UAAM,iBACF,UAAU,cAAc,oBAAoB,QAAQ;AAExD,QAAI,OAAO;AACT,eAAS,MAAM,GAAG,MAAM,IAAI,SAAS;AACnC,cAAM,SAAS,MAAM;AACrB,iBAAS,IAAI,GAAG,IAAI,SAAS;AAC3B,oBAAU,KAAK,KAAK,IAChB,UAAU,IACV,YAAY,eAAe,SAAS,IAAI,GAAG,OAAO;;;;AAI5D,WAAO;;AAGT,uBACI,KAAqC,MAAa;AACpD,QAAI;AACJ,QAAI,MAAM,QAAQ;AAChB,eAAS,GAAG,WAAW,IAAI,GAAG,QAAQ,6BAC/B,WAAW,IAAI,GAAG,QAAQ;eACxB,SAAS;AAClB,eAAS,IAAI;eACJ,UAAU;AACnB,eAAS,gBAAgB;;AAEzB,eAAS,WAAW,IAAI,QAAQ,wBAAwB;;AAG1D,WAAO,SAAS,QAAQ;;AAG1B,2BAAyB;AACvB,WAAO,MAAM,IAAI,UAAU;;AAG7B,6BACI,MAA2B,OAAiB,OAC5C,SAAmB,WAAqB,SAAS;AACnD,UAAM,oBAAoB,UAAU,cAAc,IAAI;AAEtD,UAAM,OAAO,MAAM;AACnB,UAAM,OAAO,MAAM;AACnB,QAAI,SAAS;AACX,UAAI,UAAU;AACZ,cAAM,eAAe,oBAAoB;AACzC,eAAO,CAAC,YAAY,aAAa,IAAI,GAAG;;AAE1C,UAAI,UAAU;AACZ,eAAO,CAAC,gBAAgB,KAAK;;AAE/B,aAAO,CAAC,KAAK,GAAG;;AAGlB,QAAI,SAAS;AACX,UAAI,OAAO;AACT,cAAM,gBAAgB,6BAA6B;AAEnD,YAAI,YAAY,MAAM,KAClB,KAAK,MAAM,GAAG;AAClB,YAAI,WAAW,MAAM,KAAqC,KAAK,MAC1D,QAAO,8BAA8B,mBACtC,OAAO;AACX,YAAI,UAAU;AACZ,sBAAY,oBAAoB;AAChC,qBAAW,oBAAoB;;AAEjC,eAAO;UACL,MACA,UAAU,IAAI,CAAC,GAAG,MAAM,YAAY,GAAG,UAAU,IAAI,QAChD,KAAK,QACV,YACA,SACK,IACG,CAAC,GAAG,MAAM,YACN,GAAG,UAAU,OAAO,6BAA6B,IAAI,QAC5D,KAAK,QACV;;;AAGJ,YAAM,cACF,UAAU,cAAc,oBAAoB,QACpB,MAAM,KAAoB;AAEtD,aAAO;QACL,MACA,YAAY,IAAI,CAAC,GAAG,MAAM,YAAY,GAAG,UAAU,IAAI,QAClD,KAAK,QACV;;;AAKJ,UAAM,WAAW,MAAM,MAAM;AAC7B,UAAM,aAAa,QAAQ,MAAM;AACjC,UAAM,SAAS,QAAQ,KAAK;AAC5B,UAAM,QAAkB;AACxB,QAAI,OAAO;AACT,eAAS,IAAI,GAAG,IAAI,4BAA4B;AAC9C,cAAM,QAAQ,IAAI;AAClB,cAAM,MAAM,QAAQ;AACpB,cAAM,KAAK,GAAG,kBACV,KAAK,MAAM,OAAO,MAAM,UAAU,OAAO,YAAY,WACrD;;AAEN,YAAM,KAAK;AACX,eAAS,IAAI,OAAO,4BAA4B,IAAI,MAAM;AACxD,cAAM,QAAQ,IAAI;AAClB,cAAM,MAAM,QAAQ;AACpB,cAAM,KAAK,GAAG,kBACV,KAAK,MAAM,OAAO,MAAM,UAAU,OAAO,YAAY,WACrD,MAAM,OAAO;;;AAGnB,eAAS,IAAI,GAAG,IAAI,MAAM;AACxB,cAAM,QAAQ,IAAI;AAClB,cAAM,MAAM,QAAQ;AACpB,cAAM,KAAK,GAAG,kBACV,KAAK,MAAM,OAAO,MAAM,UAAU,OAAO,YAAY,WACrD,MAAM,OAAO;;;AAGrB,UAAM,MAAM,SAAS,IAAI,MAAM;AAC/B,UAAM,KAAK,MAAM,MAAM,KAAK;AAC5B,aAAS,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG;AACpC,YAAM,KAAK,MAAM,MAAM,KAAK;;AAE9B,QAAI,aAAa;AACjB,aAAS,IAAI,GAAG,IAAI,MAAM;AACxB,oBAAc;;AAEhB,UAAM,MAAM,SAAS,KACjB,MAAM,MAAM,MAAM,SAAS,KAAK,MAAO,UAAS,KAAK;AACzD,WAAO;;AAGT,+BAA6B;AAE3B,UAAM,gBAAyC;AAC/C,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,oBAAc,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI;;AAExC,WAAO;;;;ACnMT;;;;;;;;;;;;;;;;;IA4CE,YAAY,OAA2B,OAAU;AAAV,WAAA,QAAA;AACrC,WAAK,QAAQ,MAAM;AACnB,WAAK,OAAO,AAAK,cAAc;AAE/B,UAAI,UAAU;AACZ,cAAM,IAAI,OAAO;AACjB,QAAK,OACD,MAAM,KAAK,MACX,MAAM,qBAAqB,qDACG,KAAK;;AAEzC,UAAI,UAAU;AACZ,cAAM,IAAI,MACN;;AAIN,WAAK,SAAS,UAAU,AAAK,kBAAkB,OAAO,KAAK;AAC3D,WAAK,UAAU,eAAe;;IAUhC,IAAI,UAA6B;AAC/B,UAAI,KAAK,WAAW;AAClB,eAAO,CAAC;;AAEV,MAAK,OACD,KAAK,WAAW,KAAK,MACrB,MAAM,uCAAuC,KAAK,gCAC3B,KAAK;AAEhC,YAAM,QAAQ,KAAK,WAAW;AAC9B,WAAK,OAAO,SAAS;;IASvB,OAAO;AACL,UAAI,KAAK,WAAW;AAClB,eAAO,CAAC;;AAEV,UAAI,IAAI;AACR,iBAAW,OAAO;AAChB,YAAI,MAAM,KAAK,OAAO,KAAK,MAAM;AAC/B,gBAAM,MAAM,qCAAqC,wBAC3B,KAAK;AAC3B,gBAAM,IAAI,MAAM;;AAElB;;AAEF,UAAI,QAAQ,KAAK,KAAK,SAAS;AAC/B,eAAS,KAAI,GAAG,KAAI,KAAK,SAAS,GAAG,EAAE;AACrC,iBAAS,KAAK,QAAQ,MAAK,KAAK;;AAElC,aAAO,KAAK,OAAO;;IAGrB,WAAW;AACT,UAAI,KAAK,SAAS;AAChB,eAAO;iBACE,KAAK,SAAS;AACvB,eAAO,KAAK;;AAEd,UAAI,QAAQ,KAAK,KAAK,SAAS;AAC/B,eAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,EAAE;AACrC,iBAAS,KAAK,QAAQ,KAAK,KAAK;;AAElC,aAAO;;IAGT,WAAW;AACT,UAAI,KAAK,SAAS;AAChB,eAAO;iBACE,KAAK,SAAS;AACvB,eAAO,CAAC;;AAEV,YAAM,OAAiB,IAAI,MAAM,KAAK,MAAM;AAC5C,eAAS,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,EAAE;AACrC,aAAK,KAAK,KAAK,MAAM,QAAQ,KAAK,QAAQ;AAC1C,iBAAS,KAAK,KAAK,KAAK,QAAQ;;AAElC,WAAK,KAAK,SAAS,KAAK;AACxB,aAAO;;QAGL;AACF,aAAO,KAAK,MAAM;;IAOpB;AACE,aAAO,YAAY,WAAW,KAAK,QAAQ,KAAK,OAAO,KAAK;;;AAiChE,MAAI,YAAiC;AAErC,MAAI,YAAuB;AAE3B,MAAI,uBAA8C;AAW5C,4BAA2B;AAC/B,gBAAY;;AAQR,wBAAuB;AAC3B,gBAAY;;AAOR,mCAAkC;AACtC,2BAAuB;;AAtNzB;IAyQE,YAAY,OAAoB,OAAiB,QAAgB;AAXjE,WAAA,OAAO;AA4HG,WAAA,qBAAqB;AAhH7B,WAAK,QAAQ,MAAM;AACnB,WAAK,QAAQ,SAAS;AACtB,WAAK,OAAO,AAAK,cAAc;AAC/B,WAAK,UAAU,eAAe;AAC9B,WAAK,SAAS;AACd,WAAK,KAAK;AACV,WAAK,WAAY,KAAK,OAAO,IAAI,KAAK,KAAK,aAAa;;QAGtD;AACF,aAAO,KAAK,MAAM;;UAOd;AACJ,YAAM,OAAO,MAAM,KAAK;AACxB,aAAO,UAAU,OAAO,KAAK,OAAO,KAAK,OAAY;;IAKvD;AACE,aAAO,UAAU,OAAO,KAAK,OAAO,KAAK,OAAY,KAAK;;UAQtD;AACJ,YAAM,OAAO,MAAM,KAAK;AACxB,aAAO,cAAc,KAAK,OAAO;;IAQnC;AACE,aAAO,cAAc,KAAK,OAAO,KAAK;;UAQlC;AACJ,WAAK;AACL,YAAM,OAAO,YAAY,KAAK,KAAK;AACnC,UAAI,KAAK,UAAU;AACjB,cAAM,QAAQ,MAAM;AACpB;AACE,iBAAO,MAAM,IAAI,OAAK,AAAK,aAAa;iBACxC;AACA,gBAAM,IAAI,MACN;;;AAIR,aAAO;;IAQT;AACE,WAAK;AACL,YAAM,OAAO,YAAY,SAAS,KAAK;AACvC,UAAI,KAAK,UAAU;AACjB;AACE,iBAAQ,KAAsB,IAAI,OAAK,AAAK,aAAa;iBAEzD;AACA,gBAAM,IAAI,MACN;;;AAIR,aAAO;;UAIH;AACJ,WAAK;AACL,YAAM,OAAO,MAAM,YAAY,KAAK,KAAK;AACzC,UAAI,KAAK,UAAU;AACjB,eAAO;;AAEP,eAAO,IAAI,WAAY,KAAoB;;;IAQ/C;AACE,UAAI,KAAK;AACP;;AAEF,kBAAY,cAAc;AAC1B,WAAK,qBAAqB;;QAIxB;AACF,aAAO,KAAK;;IAGd;AACE,UAAI,KAAK;AACP,cAAM,IAAI,MAAM;;;IAWpB,MAAM,UAAU;AACd,aAAO,UAAU,MAAM,MAAM;;IAK/B;AACE,WAAK;AACL,aAAO,UAAU,MAAM;;IAOzB,SAAS,UAAU;AACjB,YAAM,OAAO,KAAK;AAClB,aAAO,eAAe,MAAM,KAAK,OAAO,KAAK,OAAO;;IAGtD,KAAqB;AACnB,WAAK;AACL,aAAO,UAAU,KAAK,MAAW;;IAEnC,SAAS,YAAY,MAAM,MAAe;AACxC,WAAK;AACL,aAAO,YAAY,aAAa,MAAM,WAAW,MAAM;;;AAI3D,SAAO,eAAe,QAAQ,OAAO,aAAa;IAChD,OAAO,CAAC;AACN,aAAO,CAAC,CAAC,YAAY,SAAS,UAAU,QAAQ,SAAS,SAAS,QAC9D,SAAS,SAAS;;;AA7a1B,yBAgdqD;IAGnD,YACI,cAAgC,WAAoB,MACpD;AACF,YACI,aAAa,OAAO,aAAa,OAAO,aAAa,QAAQ;AAH/B,WAAA,YAAA;AAIlC,WAAK,OAAO;;IAUd,OAAO;AACL,UAAI,SAAS,UAAU,KAAK;AAC1B,cAAM,IAAI,MACN,2BAA2B,SAAS,8BACjB,KAAK;;AAE9B,UAAI,CAAC,AAAK,YAAY,SAAS,OAAO,KAAK;AACzC,cAAM,IAAI,MACN,2BAA2B,SAAS,8BACjB,KAAK;;AAE9B,kBAAY,cAAc;AAC1B,WAAK,SAAS,SAAS;AACvB,kBAAY,OAAO,MAAM;;IAG3B;AACE,kBAAY,gBAAgB;AAC5B,WAAK,qBAAqB;;;AAI9B,SAAO,eAAe,UAAU,OAAO,aAAa;IAClD,OAAO,CAAC;AACN,aAAO,oBAAoB,UAAU,SAAS,UAAU,QACpD,SAAS,kBAAkB;;;;;AC3fnC;;;;;;;;;;;;;;;;AAgEA,MAAY;AAAZ,EAAA,UAAY;AACV,UAAA,QAAA;AACA,UAAA,QAAA;AACA,UAAA,QAAA;AACA,UAAA,QAAA;AACA,UAAA,QAAA;AACA,UAAA,QAAA;AACA,UAAA,QAAA;KAPU,QAAA,QAAI;AAqBhB,MAAK;AAAL,EAAA,UAAK;AACH,uBAAA,aAAA;AACA,uBAAA,WAAA;AACA,uBAAA,UAAA;AACA,uBAAA,eAAA;KAJG,qBAAA,qBAAiB;AAOtB,MAAK;AAAL,EAAA,UAAK;AACH,sBAAA,aAAA;AACA,sBAAA,WAAA;AACA,sBAAA,UAAA;AACA,sBAAA,eAAA;KAJG,oBAAA,oBAAgB;AAOrB,MAAK;AAAL,EAAA,UAAK;AACH,yBAAA,aAAA;AACA,yBAAA,WAAA;AACA,yBAAA,UAAA;AACA,yBAAA,eAAA;KAJG,uBAAA,uBAAmB;AAOxB,MAAK;AAAL,EAAA,UAAK;AACH,2BAAA,aAAA;AACA,2BAAA,WAAA;AACA,2BAAA,UAAA;AACA,2BAAA,eAAA;KAJG,yBAAA,yBAAqB;AAO1B,QAAM,gBAAgB;IACpB,SAAW;IACX,OAAS;IACT,MAAQ;IACR,WAAa;;AAGT,sBAAqB,OAAiB;AAC1C,QAAI,UAAU,YAAY,UAAU;AAClC,UAAI,UAAU,YAAY,UAAU;AAClC,eAAO;;AAET,YAAM,IAAI,MAAM,kBAAkB,cAAc;;AAElD,WAAO,cAAc,OAAO;;AAIxB,sBAAqB;AACzB,WAAO,WAAW,MAAM;;;;ACpI1B;;;;;;;;;;;;;;;;;;;;;;;AAsBM,0BAA2C,GAAM;AACrD,QAAI,EAAE,UAAU,EAAE;AAChB,aAAO,CAAC,GAAG;;AAEb,UAAM,QAAQ,WAAW,EAAE,OAAO,EAAE;AACpC,WAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,KAAK;;AAG1B,4BAA2B,GAAW;AAC1C,WACI,EAAE,UAAU,EAAE,OACd,MAAM,2BAA2B,EAAE,qBACpB,EAAE;;AAGjB,0BAAyB,UAAgB;AAC7C,WAAO,WAAW,KAAK,OAAK,EAAE,OAAO,SAAO;;AAexC,iCAAgC;AACpC,UAAM,OAAiB;AACvB,UAAM,OAAO,IAAI;AACjB,wBAAoB,QAAQ,MAAM;AAClC,WAAO;;AAGT,+BACI,WAA4B,MAAgB;AAC9C,QAAI,aAAa;AACf;;AAEF,QAAI,qBAAqB;AACvB,WAAK,KAAK;AACV;;AAEF,QAAI,CAAC,WAAW;AACd;;AAGF,UAAM,WAAW;AACjB,eAAW,KAAK;AACd,YAAM,MAAM,SAAS;AACrB,UAAI,CAAC,KAAK,IAAI;AACZ,aAAK,IAAI;AACT,4BAAoB,KAAK,MAAM;;;;AAMrC,sBAAoB;AAClB,WAAO,MAAM,QAAQ,QAAQ,OAAO,QAAQ;;;;ACrF9C;;;;;;;;;;;;;;;;;IAmFA;AAEE,WAAA,sBAAwC;AAExC,WAAA,iBAAiB;AACjB,WAAA,WAAW;AACX,WAAA,aAAa;AACb,WAAA,mBAAmB;AACnB,WAAA,iBAAiB;AAMjB,WAAA,gBAAgB;AAGhB,WAAA,cAAc;AAId,WAAA,aAA2B;AAK3B,WAAA,oBAA8B;AAC9B,WAAA,cAAc;AAEd,WAAA,aAAa,IAAI;AAQjB,WAAA,YAAY;AACZ,WAAA,gBACI,CAAC,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,IAAI,QAAQ;;IAEpE;AACE,iBAAW,gBAAgB,KAAK;AAC9B,aAAK,oBAAoB,cAAc;;;;AA9H7C;IAmJE,YAAmB;AAAA,WAAA,MAAA;AAbnB,WAAA,WAA0C;AAC1C,WAAA,kBAKI;AAKI,WAAA,uBAAuB;AAG7B,WAAK,QAAQ,IAAI;;UAGb;AACJ,UAAI,KAAK,sBAAsB;AAC7B,eAAO,KAAK,mBAAmB,KAAK;;;AAEtC,UAAI,KAAK,mBAAmB;AAC1B;;AAEF,YAAM,iBAAiB,KAAK;AAE5B,eAAS,IAAI,GAAG,IAAI,eAAe,QAAQ;AACzC,cAAM,cAAc,eAAe;AACnC,cAAM,UAAU,MAAM,KAAK,kBAAkB,aAAa;AAC1D,YAAI;AACF,gBAAM,KAAK,WAAW;AACtB;;;AAIJ,YAAM,IAAI,MACN;;QAIF;AACF,UAAI,KAAK,sBAAsB;AAC7B,cAAM,IAAI,MACN,YAAY,KAAK;;AAIvB,UAAI,KAAK,mBAAmB;AAC1B,cAAM,CAAC,MAAM,aAAa,KAAK;AAC/B,YAAI;AACF,gBAAM,IAAI,MACN,iCAAiC;;AAIvC,aAAK,WAAW;;AAElB,aAAO,KAAK;;IAGd;AACE,aAAO,OAAO,KAAK,KAAK;;IAG1B,YAAY;AACV,UAAI,CAAE,gBAAe,KAAK;AAGxB,YAAI,eAAe,KAAK;AACtB,gBAAM,CAAC,aAAa,KAAK,kBAAkB;AAC3C,cAAI;AAEF,mBAAO;;;AAGT,iBAAO;;;AAGX,aAAO,KAAK,SAAS;;IAGvB,mBAAmB;AAEjB,UAAI,CAAE,gBAAe,KAAK;AACxB,eAAO;;AAET,aAAO,KAAK,gBAAgB,aAAa;;IAG3C,gBACI,aACA,SACA,WAAW;AACb,UAAI,eAAe,KAAK;AACtB,gBAAQ,KACJ,GAAG;AAEP,eAAO;;AAET,WAAK,gBAAgB,eAAe,CAAC,SAAS;AAC9C,aAAO;;UAGH,WAAW;AACf,UAAI,KAAK,gBAAgB,gBAAgB;AACvC,cAAM,IAAI,MAAM,iBAAiB;;AAEnC,WAAK,cAAc;AACnB,UAAI,KAAK,SAAS,gBAAgB;AAChC,aAAK,kBAAkB;AACvB,cAAM,CAAC,SAAS,aAAa,KAAK,kBAAkB;AACpD,cAAM,SAAS,YAAY,MAAM,UAAU;AAC3C,YAAI,CAAC;AACH,iBAAO;;;AAGX,WAAK,kBAAkB,KAAK,SAAS;AACrC,WAAK;AAEL,WAAK,WAAW,IAAI,SAAS,KAAK;AAElC,aAAO;;IAGD;AACN,YAAM,UAAU,qBAAqB,KAAK;AAC1C,cAAQ,QAAQ;AACd,YAAI,OAAO,aAAa;AACtB,iBAAO,UAAU,KAAK;;;;IAKpB,yBAAyB;AAC/B,YAAM,UAAU,qBAAqB;AACrC,cAAQ,QAAQ;AACd,YAAI,OAAO,eAAe;AACxB,iBAAO,YAAY,KAAK,SAAS;;;;IAW/B,kBAAkB;AAExB,YAAM,uBAAuB,KAAK,gBAAgB;AAClD,UAAI,wBAAwB;AAC1B,cAAM,IAAI,MACN,6BAA6B;;AAGnC;AACE,cAAM,WAAU,qBAAqB;AAErC,YAAI,QAAQ,QAAQ,cAAa;AAC/B,gBAAM,YAAY,EAAE,KAAK;AACzB,gBAAM,UACF,SACK,KAAK;AAEJ,gBAAI,YAAY,KAAK;AACnB,qBAAO;;AAET,iBAAK,SAAS,eAAe;AAC7B,iBAAK,qBAAqB;AAC1B,mBAAO;aAER,MAAM;AAEL,gBAAI,YAAY,KAAK;AACnB,qBAAO;;AAET,iBAAK,qBAAqB;AAC1B,oBAAQ,KACJ,6BAA6B;AACjC,oBAAQ,KAAK,IAAI,SAAS,IAAI;AAC9B,mBAAO;;AAEjB,eAAK,qBAAqB;AAC1B,iBAAO,CAAC,SAAS,WAAW;;AAE5B,eAAK,SAAS,eAAe;AAC7B,iBAAO,CAAC,SAAS,MAAM,WAAW;;eAE7B;AACP,gBAAQ,KAAK,6BAA6B;AAC1C,gBAAQ,KAAK,IAAI,SAAS,IAAI;AAC9B,eAAO,CAAC,SAAS,OAAO,WAAW;;;IAIvC,cAAc;AACZ,UAAI,CAAE,gBAAe,KAAK;AACxB,cAAM,IAAI,MAAM,GAAG;;AAErB,UAAI,KAAK,gBAAgB,eAAe,KAAK,sBAAsB;AAGjE,aAAK;;AAGP,UAAI,eAAe,KAAK;AACtB,aAAK,yBAAyB;AAC9B,aAAK,SAAS,aAAa;AAC3B,eAAO,KAAK,SAAS;;AAGvB,aAAO,KAAK,gBAAgB;AAG5B,UAAI,KAAK,gBAAgB;AACvB,aAAK,qBAAqB;AAC1B,aAAK,cAAc;AACnB,aAAK,kBAAkB;;;IAInB;AACN,UAAI,OAAO,KAAK,KAAK,iBAAiB,WAAW;AAC/C,cAAM,IAAI,MAAM;;AAElB,aAAO,OAAO,KAAK,KAAK,iBAAiB,KAAK,CAAC,GAAW;AAExD,eAAO,KAAK,gBAAgB,GAAG,WAC3B,KAAK,gBAAgB,GAAG;;;IAIxB;AAEN,YAAM,iBAAiB,KAAK;AAE5B,eAAS,IAAI,GAAG,IAAI,eAAe,QAAQ;AACzC,cAAM,cAAc,eAAe;AACnC,cAAM,CAAC,SAAS,aAAa,KAAK,kBAAkB;AACpD,YAAI,aAAa;AACf,iBAAO,CAAC,MAAM,aAAa;;;AAG/B,YAAM,IAAI,MACN;;IAIN,SAAS,UAAwB;AAC/B,YAAM,OAAO,KAAK,MAAM,WAAW,IAAI;AACvC,YAAM,aAAa,KAAK;AACxB,YAAM,SAAS,KAAK,SAAS;AAG7B,iBAAW,YAAY;AACvB,WAAK,UAAU;AACf,eAAQ,KAAK,QAAQ,QAAQ,KAAK,OAAO,KAAK;AAC9C,UAAI,KAAK;AAGP,aAAK,MAAM,kBAAkB,KAAK,MAAM,kBAAkB,SAAS;;;IAIvE,KAAgC,UAA6B;AAE3D,UAAI,OAAe;AACnB,UAAI,MAAM;AAER,YAAI,OAAO,aAAa;AACtB,gBAAM,IAAI,MAAM;;AAElB,aAAK;;AAGL,YAAI,OAAO,aAAa,YAAY,CAAE,qBAAoB;AACxD,gBAAM,IAAI,MACN;;AAGN,YAAI,OAAO,OAAO;AAChB,gBAAM,IAAI,MACN;;AAGN,eAAO;;AAIT,UAAI;AACJ,aAAO,KAAK,UACR,MAAM,KAAK,WAAW,OAAO,MAAM,KAAK,SAAS,SAAS;AACxD,iBAAS;AACT,YAAI,kBAAkB;AACpB,kBAAQ,MAAM;;AAEhB,eAAO;;;IAIP,UAAa,OAAmB,KAAiB;AACvD;AACA;AACE,cAAM,MAAM;AACZ;AACA,eAAO;eACA;AACP;AACA,cAAM;;;IAKF;AACN,aAAO,OAAO;;IAIR;AACN,aAAO,OAAO;;IAYR,MAAM;AACZ,YAAM,IAAI,KAAK,qBAAqB,EAAE,QAAQ,EAAE,OAAO,EAAE;AACzD,YAAM,SAAS,CAAC;AAChB,YAAM,QAAO,CAAC,OAAgB;QAC5B,GAAG;AACD,gBAAM,QAAQ;AACd,gBAAM,aAAa,CAAC,GAAG;AACvB,gBAAM,QAAQ,CAAC;AAEf,iBAAO,OAAO,cACV,cAAW,SAAQ,KAAK,IAAI,QAC5B,YAAoC,MAAiB,MACrD;;;AAGR,YAAM,QAAkB;AACxB,WAAK,YAAY,KAAK,MAAM,YAAY,MAAM,QAAQ,CAAC,IAAI,OAAM,OAAO;AACxE,aAAO;;IAgBT,UACI,YAAoB,QAAwB,OAC5C,cAAyB;AAC3B,YAAM,cAAoB;AAC1B,YAAM,gBAAsB;AAI5B,aAAO,KAAK,cACR,aAAa,QAAQ,eAAe,YAAY,OAAO,cACvD;;IAGE;AACN,aAAO,KAAK,IAAI,QAAQ;;IAGlB,sBACJ,YAAoB,kBACpB;AACF,YAAM,kBAAkB,KAAK,QAAQ;AAGrC,UAAI,mBAAmB;AACvB,eAAS,QAAQ;AAGf,4BAAqB,KAAK,UAAU,cAAc,IAAI;;AAQxD,YAAM,WACF,KAAK,MAAM,kBAAkB,KAAK,MAAM,kBAAkB,SAAS;AACvE,YAAM,gBACF,kBAAkB,mBAAmB,mBAAmB;AAC5D,UAAI,gBAAgB;AAClB,cAAM,IAAI,MACN,YAAY,KAAK,6CACb,0CAA0C;;;IAQtD,cACI,aAA6B,QAC7B,eACA,YAAqB,OAAsB,cAC3C;AACF,UAAI;AACJ,UAAI,QAAkB;AACtB,YAAM,WAAW,KAAK;AACtB,UAAI,cAAc;AAChB,qBACI,KAAK,MAAM,eAAe,OAAO,KAAK,MAAM,YAAY,OAAO;;AAGrE,YAAM,oBAAoB,KAAK,MAAM;AACrC,YAAM,qBAAqB,KAAK,MAAM;AAEtC,UAAI,KAAK;AACP,aAAK,MAAM,kBAAkB,KAAK;;AAGpC,UAAI;AACJ,YAAM,SAAS,UAAU,YAAY,KAAK;AAC1C,UAAI;AACJ,UAAI,UAAU;AACZ,qBAAa;AACX,gBAAM,mBAAmB,KAAK,QAAQ;AACtC,gBAAM,OAAO,WAAW,CAAC,QAAQ,OAAO,SAAS,KAAK;AACtD,gBAAM,WAAW,MAAM,QAAQ,OAAO,MAAM,CAAC;AAC7C,cAAI,KAAK;AACP,iBAAK,sBAAsB,YAAY,kBAAkB;;AAE3D,gBAAM,aAAa,SAAS,IACxB,CAAC,CAAC,QAAQ,OAAO,WACb,KAAK,qBAAqB,QAAQ,OAAO;AAMjD,cAAI;AACF,gBAAI,gBACA,KAAK,sBAAsB,YAAY,QAAQ;AACnD,gBAAI,iBAAiB;AAKnB,kBAAI,iBAAiB;AACnB,gCAAgB;;AAElB,oBAAM,aAAa,WAAW,OAAO,CAAC,GAAG,MAAM,cAAc;AAC7D,8BAAiB,iBAAgB,IAAI,QAAQ,OAAO;;AAEtD,oBAAQ,KAAK,2BAA2B;;AAE1C,iBAAO;;;AAGT,cAAM,WAAyB,CAAC;AAI9B,cAAI,CAAC;AACH;;AAEF,kBAAQ,QAAQ,IAAI,cAAU,KAAK,KAAK,KAAK,MAAM;;AAGrD,qBAAa;AACX,gBAAM,mBAAmB,KAAK,QAAQ;AACtC,gBAAM,KAAK,KAAK,MAAM,YAAY,KAAK,SAAS;AAChD,gBAAM,OAAQ,MAAM,QAAQ,OAAO,MAAM,CAAC;AAC1C,cAAI,KAAK;AACP,iBAAK,sBAAsB,YAAY,kBAAkB;;AAE3D,iBAAO;;;AAKX,UAAI;AACJ,WAAK,UACD,MAAM,KAAK,MAAM,eAAe,MAAM,KAAK,MAAM,eAAe;AAC9D,YAAI,CAAC,KAAK,IAAI,QAAQ,YAAY,CAAC,KAAK,MAAM;AAC5C,oBAAU;;AAEV,0BAAgB,KAAK,SAAS,cAC1B,YAAY,QAAQ,MAAM;AAC9B,cAAI,KAAK,IAAI,QAAQ;AACnB,iBAAK,SAAS,iBAAiB;;AAEjC,oBAAU,cAAc;;;AAIhC,UAAI;AACF,aAAK,YACD,YAAY,QAAQ,SAAS,eAAe,OAAO;;AAGzD,UAAI,KAAK,MAAM;AACb,aAAK,MAAM,cAAc,QAAQ,KAAK;UACpC,MAAM;UACN,YAAY,KAAK,MAAM,WAAW;UAClC,oBAAoB,KAAK,MAAM;UAC/B,cAAc,KAAK,MAAM,aAAa;UACtC,sBAAsB,KAAK,MAAM;UACjC,aAAa,OAAO,KAAK,QAAQ,IAC7B,SAAO,OAAO,QAAQ,OAAO,OAAO,KAAK,QAAQ;UACrD,cAAc,QAAQ,IAAI,UAAQ,KAAK;UACvC,cAAc,cAAc;UAC5B,WAAW,cAAc;;;AAG7B,aAAQ,MAAM,QAAQ,OAAO,UAAU,QAAQ;;IAQzC,2BAA2B;AACjC,YAAM,QAAQ,QAAQ,IAAI,cAAU,KAAK,KAAK,KAAK,MAAM;AACzD,aAAO;;IAaD,sBACJ,YAAoB,QACpB;AACF,YAAM,aAAa,YAAY;AAC/B,UAAI,cAAc;AAChB,cAAM,eAAyB,WAAW,gBAAgB;AAC1D,cAAM,gBAA2B,WAAW,iBAAiB;AAI7D,YAAI;AACJ,YAAI,WAAW;AACb,UAAK,OACD,MAAM,QAAQ,SACd,MAAM;AAEV,+BAAqB,OAAO,KAAK,QAAQ,IAAI,CAAC,QAAQ,OAAO;;AAE7D,+BAAqB,aAAa,IAAI,CAAC,cAAc,OAAO;;AAG9D,cAAM,sBACF,QAAQ,OAAO,CAAC,GAAG,MAAM,cAAc;AAE3C,eAAO,mBAAmB,OAAO;;AAInC,aAAO;;IAQT,WACI,QAAoB,OAAiB,OACrC;AACF,UAAI,UAAU;AACZ,cAAM,IAAI,MAAM;;AAElB,cAAQ,SAAS;AACjB,iBAAU,YAAW,KAAK;AAC1B,UAAI,cAAc;AAClB,UAAI,UAAU,YAAY,AAAK,SAAS,OAAO;AAC7C,sBAAe,OAAoB,IAAI,OAAK,AAAK,aAAa;;AAEhE,YAAM,SAAS,SAAQ,MAAM,aAAa,OAAO;AACjD,YAAM,IAAI,IAAI,OAAO,OAAO,OAAO,QAAQ,KAAK;AAChD,WAAK,OAAO,GAAG;AAGf,UAAI,UAAU;AACZ,cAAM,OAAO,KAAK,MAAM,WAAW,IAAI;AACvC,cAAM,WAAW,qBAAqB;AACtC,aAAK,MAAM,YAAY,WAAW,KAAK;AACvC,aAAK,QAAQ;;AAEf,aAAO;;IAQT,qBACI,QAAgB,OAAiB,OACjC;AACF,cAAQ,SAAS;AACjB,YAAM,IAAI,IAAI,OAAO,OAAO,OAAO,QAAQ,KAAK;AAChD,WAAK,OAAO,GAAG;AACf,aAAO;;IAGT,aACI,cAAsB,YAAY,MAAM,MACxC;AACF,aAAO,QAAQ,KAAK,iBAAiB;AACrC,UAAI,SAAS,QAAQ,UAAU,aAAa;AAC1C,uBAAe,aAAa,KAAK;;AAEnC,YAAM,IAAI,IAAI,SAAS,cAAc,WAAW,MAAM,KAAK;AAC3D,UAAI,KAAK,MAAM,oBAAoB,EAAE,SAAS;AAC5C,cAAM,IAAI,MAAM,sBAAsB,EAAE;;AAE1C,WAAK,MAAM,oBAAoB,EAAE,QAAQ;AACzC,WAAK,OAAO,GAAG,KAAK;AACpB,aAAO;;IAGT,OAAO,GAAW;AAChB,YAAM,WAAW,KAAK,MAAM,WAAW,IAAI,EAAE,UACzC,KAAK,MAAM,WAAW,IAAI,EAAE,QAAQ,WACpC;AACJ,WAAK,MAAM;AACX,UAAI,EAAE,UAAU;AACd,aAAK,MAAM;;AAEb,UAAI,aAAa;AACf,aAAK,MAAM;AAIX,YAAI,QAAQ;AACZ,YAAI,EAAE,UAAU,eAAe,EAAE,UAAU;AACzC,kBAAQ,EAAE,OAAO,AAAK,gBAAgB,EAAE;;AAE1C,aAAK,MAAM,WAAW,IAAI,EAAE,QAAQ;UAClC,SAAS,YAAW,KAAK;UACzB,OAAO,EAAE;UACT,OAAO,EAAE;UACT;UACA,UAAU;;AAEZ,aAAK,MAAM,YAAY;;AAEzB,WAAK,MAAM,WAAW,IAAI,EAAE,QAAQ;AACpC,UAAI,CAAE,cAAa;AACjB,aAAK,MAAM;;;IAIf,cAAc;AACZ,UAAI,CAAC,KAAK,MAAM,WAAW,IAAI,EAAE;AAC/B;;AAGF,WAAK,MAAM;AACX,UAAI,EAAE,UAAU;AACd,aAAK,MAAM;;AAEb,YAAM,OAAO,KAAK,MAAM,WAAW,IAAI,EAAE;AACzC,YAAM,WAAW,KAAK;AACtB,UAAI,YAAY;AAGd,YAAI,EAAE,UAAU;AACd,eAAK,MAAM,YAAY,KAAK;;AAE9B,aAAK,MAAM;AACX,aAAK,QAAQ,YAAY,EAAE;AAC3B,aAAK,MAAM,WAAW,OAAO,EAAE;;AAE/B,aAAK,MAAM,WAAW,IAAI,EAAE,QAAQ;;;IAOxC;AACE,iBAAW,WAAW,KAAK,MAAM;AAC/B,cAAM,IAAI,KAAK,MAAM,oBAAoB;AACzC,aAAK,gBAAgB;;;IAIzB,gBAAgB;AACd,WAAK,cAAc;AACnB,UAAI,KAAK,MAAM,oBAAoB,EAAE,SAAS;AAC5C,eAAO,KAAK,MAAM,oBAAoB,EAAE;;;IAI5C;AACE,YAAM,OAAO,KAAK,QAAQ;AAC1B,WAAK,aAAa,KAAK,MAAM;AAC7B,WAAK,iBAAiB,KAAK,MAAM;AACjC,WAAK,WAAW,KAAK,MAAM;AAC3B,UAAI,KAAK,MAAM,mBAAmB;AAChC,aAAK,aAAa;AAClB,YAAI,KAAK,WAAW;AAClB,eAAK,UAAU;;AAEjB,aAAK,QAAQ,KACT;;AAGN,aAAO;;UAGH,QAAQ;AAEZ,WAAK,MAAM,YAAY;AAEvB,YAAM,aAAa,KAAK,MAAM;AAC9B,YAAM,kBAAkB,KAAK,MAAM;AAEnC,WAAK,MAAM,cAAc,UAAU;AACnC,WAAK,MAAM,cAAc,SAAS,MAAM;AAExC,WAAK,MAAM,YAAY;AAEvB,WAAK,MAAM,cAAc,YAAY,KAAK,IACtC,GAAG,KAAK,MAAM,cAAc,QAAQ,IAAI,OAAK,EAAE;AACnD,WAAK,MAAM,cAAc,WAAW,KAAK,MAAM,WAAW;AAC1D,WAAK,MAAM,cAAc,aACrB,KAAK,MAAM,aAAa;AAC5B,iBAAW,UAAU,KAAK,MAAM,cAAc;AAC5C,eAAO,eAAe,MAAM,OAAO;AACnC,eAAO,YAAY,MAAM,OAAO;;AAElC,aAAO,KAAK,MAAM;;IAGpB;AACE,aAAO,KAAK,MAAM,gBAAgB,KAAK,KAAK,MAAM,gBAAgB;;IAG5D,YACJ,YAAoB,QAAwB,SAC5C,eAAyB,OAAiB;AAC5C,YAAM,WACF,CAAC,IAAI,KAAK,MAAM,kBAAkB,YAAY,QAAQ,SAAS;AAEnE,YAAM,aAAa,YAAY;AAC/B,UAAI,cAAc;AAChB,wBAAgB,WAAW;;AAE7B,UAAI,iBAAiB;AACnB,iBAAS,WAAW,CAAC;AAGnB,gBAAM,IAAI,IAAI,CAAC,IAAI;AACjB,gBAAI,MAAM;AACR,oBAAM,SAAS,QAAQ;AACvB,oBAAM,OAAO,AAAK,oBAAoB,OAAO,MAAM,OAAO;AAC1D,qBAAO,KAAK,WAAW,MAAM,OAAO,OAAO,OAAO;;AAEpD,mBAAO;;AAIT,iBAAO,cAAc,IAAI,SAAS,IAAI,MAAM,IAAI,IAAI,OAAO;;;AAG/D,WAAK,MAAM,WAAW,KAAK;;IAG7B,KAAuB;AACrB,aAAO,OAAO;AACd,aAAO;;IAGD;AACN,UAAI,KAAK,MAAM,kBAAkB;AAC/B,aAAK,MAAM,aAAa;;AAE1B,WAAK,MAAM;;IAGL;AACN,WAAK,MAAM;;IAOb,WAAW;AACT,YAAM,YAAwB;QAC5B,OAAO;QACP,MAAM;QACN,IAAI,KAAK,MAAM;;AAEjB,UAAI;AACF,kBAAU,OAAO;;AAEnB,WAAK,MAAM,WAAW,KAAK;AAC3B,WAAK,MAAM,cAAc;;IAO3B,SAAS;AACP,YAAM,yBAAyB,sBAAsB;AACrD,YAAM,4BACF,IAAI,IAAI,uBAAuB,IAAI,OAAK,EAAE;AAG9C,eAAS,IAAI,GAAG,IAAI,KAAK,MAAM,YAAY,MAAM,QAAQ;AACvD,cAAM,WAAS,KAAK,MAAM,YAAY,MAAM;AAC5C,YAAI,CAAC,SAAO,QAAQ,CAAC,0BAA0B,IAAI,SAAO;AACxD,mBAAO;;;AAIX,YAAM,WAAW,KAAK,MAAM,WAAW;AACvC,WAAK,MAAM,cAAc,KAAK,MAAM,WAAW,WAAW,IACtD,OACA,KAAK,MAAM,WAAW,KAAK,MAAM,WAAW,SAAS;AAGzD,6BAAuB,QAAQ;AAG7B,YAAI,CAAC,SAAO,QAAQ,SAAO,YAAY,SAAS;AAC9C,eAAK,MAAM;;;;IAWjB,UACI,GAAY,IAAc,IAC1B,mBAAmB;AACrB,MAAK,OACD,GAAG,SAAS,GAAG,MAAM;AACzB,UAAI,MAAM,QAAQ,GAAG,UAAU;AAC7B,cAAM,IAAI,MAAM,0CAA0C,GAAG;;AAG/D,YAAM,IAAI,KAAK,UACX,MAAM,KAAK,aAAa,MAAM,KAAK,WACnC,MAAM,KAAK,KAAK,WAAW;AAE/B,MAAK,OACD,aAAa,QACb,MAAM;AAEV,YAAM,eAAe,qBAAqB,KAAK,MAAM,YAAY,IAAI;AACrE,UAAI,CAAC,oBAAoB,aAAa,WAAW,KAAK,GAAG,SAAS;AAChE,cAAM,IAAI,MACN;;AAKN,aAAO,KAAK,KAAK,YAAY;AAC3B,cAAM,yBAAuD;AAC7D,+BAAuB,EAAE,MAAO,MAAM,OAAQ,KAAK,EAAE,SAAS;AAG9D,+BACI,wBAAwB,cAExB,QAAK,KAAK,KAAK,KAEf;AACJ,cAAM,SAAQ,GAAG,IAAI,OAAK,uBAAuB,EAAE;AAEnD,YAAI,KAAK,MAAM,kBAAkB;AAG/B,eAAK,MAAM,WAAW,QAAQ;AAC5B,uBAAW,YAAU,KAAK;AACxB,uBAAO;;;AAGX,eAAK,MAAM,aAAa;;AAE1B,eAAO,CAAC,OAAO,GAAG;;;IAItB,WAA6B;AAE3B,MAAK,OACD,AAAK,WAAW,IAChB,MAAM;AACV,aAAO,IAAI;AACT,QAAK,OACD,OAAO,MAAM,OAAK,aAAa,SAC/B,MAAM;AAGV,YAAI;AAIJ,cAAM,WAA2B;AACjC,eAAO,QAAQ,CAAC,OAAO;AACrB,mBAAS,KAAK;;AAEhB,eAAO,KAAK,cACR,CAAC,GAAG;AACF,gBAAM,EAAE,GAAG,CAAC,GAAG,QAAQ;AACvB,UAAK,OACD,IAAI,iBAAiB,QACrB,MAAM;AAEV,UAAK,OACD,AAAK,WAAW,IAAI,WACpB,MAAM;AAEV,iBAAO,IAAI;WAEb,UACA,CAAC,IAAO;AACN,gBAAM,UAAU,IAAI,SAAS,IAAI;AACjC,gBAAM,SACF,MAAM,QAAQ,WAAW,UAAU,CAAC;AACxC,UAAK,OACD,OAAM,WAAW,OAAO,QACxB,MAAM;AAGV,UAAK,OACD,OAAM,MAAM,OAAK,aAAa,SAC9B,MAAM;AAGV,gBAAM,UAAyC;AAC/C,iBAAM,QAAQ,CAAC,OAAM;AACnB,oBAAQ,KAAK,MAAM;;AAErB,iBAAO;;;;IAKjB,SAAS;AAEP,YAAM,OAAO,KAAK,MAAM,WAAW,IAAI;AACvC,aAAO,KAAK,QAAQ,SAAS;;IAE/B,KAAK;AAEH,YAAM,OAAO,KAAK,MAAM,WAAW,IAAI;AACvC,aAAO,KAAK,QAAQ,KAAK;;UAGrB,KAAK;AACT,YAAM,QAAQ;AACd,YAAM,aAAa,MAAM,KAAK,QAAQ,KAAK;AAC3C,iBAAW,SAAS,QAAQ;AAC5B,aAAO;;IASD,MAAwB;AAC9B,UAAI,KAAK,MAAM,eAAe;AAC5B,eAAO,UAAU,KAAK,MAAM,YAAY;AACxC,aAAK,MAAM,YAAY,MAAM,KAAK;;AAGpC,aAAO;;QAGL;AACF,aAAO,KAAK,MAAM;;IAOpB;AAEE,WAAK;AAEL,WAAK,MAAM;AACX,WAAK,IAAI;AACT,WAAK,QAAQ,IAAI;AAEjB,iBAAW,eAAe,KAAK;AAC7B,aAAK,yBAAyB;AAC9B,aAAK,SAAS,aAAa;AAC3B,eAAO,KAAK,SAAS;;AAEvB,WAAK,cAAc;AACnB,WAAK,kBAAkB;AACvB,WAAK,qBAAqB;;;AA3sBb,SAAA,eAAe;AAKf,SAAA,iBAAiB;AA0sBlC,gBAAc;AACZ,UAAM,SAAS,mBAAmB,cAAc,QAAQ;AACxD,WAAO,OAAO,WAAW,QAAQ,OAAO;;AAG1C;AACE,UAAM,KAAK;AACX,QAAI,GAAG,aAAa;AAClB,YAAM,gBAAc,IAAI,YAAY;AACpC,SAAG,YAAY,IAAI,OAAO;;AAE5B,yBAAqB,GAAG,UAAU;AAIlC,qBAAiB,MAAM,GAAG;AAC1B,WAAO,GAAG;;AAGL,QAAM,SAAS;AAQhB,eAAc,GAAW;AAE7B,UAAM,SAAS,CAAC,GAAG;AACnB,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,IAAI,GAAG;AAC3B,WAAK,CAAC,GAAG;AACT,aAAO;OACN,QAAgC,MAAqB;;;;AChrC1D;;;;;;;;;;;;;;;;;;;;;AAkBA;AACE,WAAO,OAAO,cAAc,eAAe,aAAa;;AAGpD;AACJ,QAAI;AAEF,YAAM,IAAI,UAAU,aAAa,UAAU,UAAW,OAAe;AAErE,aAAO,2TACK,KAAK,MAEb,0kDACK,KAAK,EAAE,OAAO,GAAG;;AAE5B,WAAO;;AAGH;AACJ,WAAQ,OAAO,WAAW,eAAe,OAAO,YAAY,QAEvD,OAAO,sBAAsB;;;;ACvCpC;;;;;;;;;;;;;;;;AAmBA,QAAM,OAAM;AAOZ,OAAI,aAAa,SAAS,MAAM,OAAO;AACrC,QAAI;AACF,cAAQ,KACJ;;;AAOR,OAAI,aAAa,cAAc,MAAM,AAAY;AAGjD,OAAI,aACA,WACA,MAAO,OAAO,YAAY,eACrB,OAAO,QAAQ,aAAa,eAC5B,OAAO,QAAQ,SAAS,SAAS;AAG1C,OAAI,aACA,aACA,MAAM,OAAO,cAAc,eAAe,aAAa,QACnD,UAAU,aAAa,QAAQ,SAAS,KAAK,UAAU,cACvD,aAAa,KAAK,UAAU;AAMpC,OAAI,aAAa,QAAQ,MAAM;AAM/B,OAAI,aACA,sCAAsC,MAAM,KAAI,QAAQ;AAG5D,OAAI,aAAa,gCAAgC,MAAM;AAGvD,OAAI,aAAa,WAAW,MAAM;;;ACrElC;;;;;;;;;;;;;;;;AAuBM,sBAAqB,KAAiB;AAC1C,QAAI,YAAwB;AAE5B,QAAI,aAAa;AACf,aAAO,UAAU,WAAW,KAAK,CAAC,IAAI;;AAExC,QAAI,CAAC,MAAM,QAAQ;AACjB,aAAO;;AAET,UAAM,QAAkB;AAExB,WAAO,MAAM,QAAQ,cACd,aAAa,cAAc,UAAU;AAC1C,YAAM,KAAK,UAAU;AACrB,kBAAY,UAAU;;AAExB,QAAI,MAAM,QAAQ,QACd,MAAM,QAAQ;AAChB,iCAA2B,KAAK,OAAO;;AAGzC,WAAO;;AAGT,sCACI,KAAiB,OAAiB;AACpC,cAAU,WAAW;AACrB,QAAI,CAAE,MAAM,QAAQ,QAAS,CAAC,aAAa;AACzC,aACI,MAAM,WAAW,GACjB,MAAM,eAAe,QAAQ,KAAK,+DACU,MAAM;AACtD;;AAEF,WACI,MAAM,SAAS,GACf,MAAM,eAAe,QAAQ,KAAK,oDACR,IAAI;AAClC,WACI,IAAI,WAAW,MAAM,IACrB,MAAM,eAAe,QAAQ,KAAK,sBAAsB,MAAM,wBACrC,IAAI;AACjC,UAAM,WAAW,MAAM,MAAM;AAC7B,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,EAAE;AAChC,iCAA2B,IAAI,IAAI,UAAU,QAAQ,OAAO;;;AAIhE,uBACI,eAAmC,aAAuB,SAC1D;AACF,QAAI,iBAAiB;AACnB;;AAEF,QAAI,kBAAkB,aAAa,kBAAkB,eACjD,kBAAkB,aAAa,gBAAgB;AACjD,YAAM,IAAI,MACN,aAAa,uBAAuB,yBAC9B,iCAAiC;;;AAIzC,2BACF,GAAiB,SAAiB,cAClC,eAAmC;AACrC,QAAI,aAAa;AACf,kBAAY,cAAc,EAAE,OAAO,SAAS;AAC5C,aAAO;;AAET,QAAI,gBAAgB,WAAW;AAG/B,QAAI,kBAAkB,YAClB,CAAC,QAAQ,SAAS,WAAW,QAAQ,iBAAiB;AACxD,sBAAgB;;AAElB,gBAAY,cAAc,eAAe,SAAS;AAElD,QAAK,KAAK,QACL,CAAC,aAAa,MAAM,CAAC,MAAM,QAAQ,MAAM,OAAO,MAAM,YACtD,OAAO,MAAM,aAAa,OAAO,MAAM;AAC1C,YAAM,OAAO,KAAK,OAAO,SAAU,EAAS,YAAY;AACxD,YAAM,IAAI,MACN,aAAa,uBAAuB,0DACF;;AAExC,UAAM,gBAAgB,WAAW,GAAG;AACpC,QAAI,CAAC,aAAa,MAAM,CAAC,MAAM,QAAQ;AACrC,UAAI,CAAC;;AAEP,UAAM,iBAAiB;AACvB,UAAM,SAAS,kBAAkB,WAC7B,aAAa,GAAG,iBAChB,QAAQ,GAAe,IAAI;AAC/B,WAAO,OAAO,WAAW,QAAQ,eAAe;;AAG5C,gCACF,KAA0B,SAAiB,cAC3C,eAAmC;AACrC,QAAI,CAAC,MAAM,QAAQ;AACjB,YAAM,IAAI,MACN,YAAY,qBAAqB;;AAGvC,UAAM,UAAU;AAChB,WAAO,QAAQ,IACX,CAAC,GAAG,MAAM,gBAAgB,GAAG,GAAG,WAAW,MAAM,eACjD;;;;ACnIN;;;;;;;;;;;;;;;;AAuBM,cAAiC;AACrC,UAAM,OAAO,OAAO,KAAK;AACzB,QAAI,KAAK,WAAW;AAClB,YAAM,IAAI,MACN,yGAEG,KAAK;;AAGd,QAAI,SAAS,KAAK;AAClB,UAAM,KAAK,EAAE;AAGb,QAAI,OAAO,SAAS;AAClB,eAAS,OAAO,UAAU,GAAG,OAAO,SAAS;;AAI/C,UAAM,KAAK,IAAI;AACb,aAAO,WAAW;AAClB;AACE,cAAM,SAAS,GAAG,GAAG;AACrB,YAAI,kBAAkB;AACpB,kBAAQ,MAAM;;AAEhB,eAAO,SAAS;AAChB,eAAO;eACA;AACP,eAAO,SAAS;AAChB,cAAM;;;AAGV,WAAO,eAAe,IAAI,QAAQ,CAAC,OAAO,QAAQ,cAAc;AAGhE,WAAO;;;;AC1DT;;;;;;;;;;;;;;;;AAqCA,gBAAgC;AAC9B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAoB,CAAC,GAAG;AAE9B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,WAAK,CAAC;AACN,UAAI,GAAG,UAAU;AACf,eAAO,SAAQ,WAAW;;AAG5B,aAAO,SAAQ,IAAI;OAClB,QAAgC,MAAiB;;AAG/C,QAAM,MAAM,GAAG,CAAC;;;ACpDvB;;;;;;;;;;;;;;;;AAoCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAAqB,CAAC,GAAG;AAE/B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,KAAK;AACzB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,OAAO,GAAG,CAAC;;;AC9CxB;;;;;;;;;;;;;;;;AAsCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAAsB,CAAC,GAAG;AAEhC,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,MAAM;AAC1B,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,QAAQ,GAAG,CAAC;;;AChDzB;;;;;;;;;;;;;;;;AAgDA,gBAAgC,GAAsB;AACpD,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,IAAI,IAAI;AAC5B,WAAK,CAAC,IAAI;AACV,aAAO;;AAGT,UAAM,SAAoB,CAAC,GAAG,IAAI,GAAG;AAErC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,OAAM,GAAG,CAAC;;;AClEvB;;;;;;;;;;;;;;;;AAuCA,iBAAiC;AAC/B,IAAK,OACD,MAAM,QAAQ,UACd,MAAM;AACV,IAAK,OACD,QAAQ,UAAU,GAClB,MAAM,uDACC,QAAQ;AAEnB,UAAM,WACF,QAAQ,IAAI,CAAC,GAAG,MAAM,gBAAgB,GAAG,UAAU,KAAK;AAE5D,UAAM,cAAc,SAAS;AAC7B,aAAS,QAAQ;AACf,UAAI,EAAE,UAAU,YAAY;AAC1B,cAAM,IAAI,MACN;;;AAIR,aAAS,QAAQ;AACf,UAAI,CAAC,AAAK,YAAY,EAAE,OAAO,YAAY;AACzC,cAAM,IAAI,MACN;;;AAIR,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,KAAK;AACzB,WAAK;AACL,aAAO;;AAGT,UAAM,SAAqB;AAE3B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB;;AAIhE,QAAM,OAAO,GAAG,CAAC;;;AC/ExB;;;;;;;;;;;;;;;;AAuBM,gCAA+B,MAAgB;AACnD,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,EAAE;AACjC,UAAI,KAAK,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI;AAC3C,eAAO;;;AAGX,WAAO;;AAGH,4BACF,WAAqB,WAAqB;AAC5C,UAAM,OAAO,UAAU,SAAS,UAAU;AAC1C,UAAM,MAAM;AACZ,QAAI,SAAS;AACb,QAAI,YAAY;AACd,aAAS,MAAM,GAAG,MAAM,MAAM;AAC9B,UAAI,KAAK,QAAQ,SAAS;AACxB,YAAI,KAAK,UAAU;;AAEnB,YAAI,KAAK,UAAU;;;AAGvB,WAAO;;AAGH,qCACF,QAAkB;AACpB,UAAM,WAAW;AACjB,UAAM,OAAO,OAAO;AACpB,aAAS,MAAM,GAAG,MAAM,MAAM;AAC5B,UAAI,KAAK,QAAQ,SAAS;AACxB,iBAAS,KAAK,OAAO;;;AAGzB,UAAM,cAAc,KAAK,IAAI,SAAO,OAAO;AAC3C,WAAO,CAAC,UAAU;;AAGd,gCACF,OAAiB;AACnB,UAAM,iBAAiB,KAAK,IAAI,OAAK;AACrC,WAAO,iBAAiB,OAAO,gBAAgB;;AAG3C,sCACF,KAAa,MAAgB;AAC/B,IAAK,OACD,qBAAqB,MAAM,OAC3B,MAAM,GAAG,uDACO,iBAAiB;;AAQjC,8BAA6B,MAAgB;AAEjD,QAAI,qBAAqB,MAAM;AAC7B,aAAO;;AAET,UAAM,SAAmB;AACzB,aAAS,IAAI,GAAG,IAAI,MAAM,EAAE;AAC1B,UAAI,KAAK,QAAQ,OAAO;AACtB,eAAO,KAAK;;;AAGhB,SAAK,QAAQ,UAAQ,OAAO,KAAK;AACjC,WAAO;;AAIH,kCAAiC;AACrC,WAAO,KAAK,IAAI,CAAC,MAAM,MAAM,CAAC,GAAG,OAC5B,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,IACxB,IAAI,OAAK,EAAE;;AAGZ,4BAA2B,SAAiB;AAChD,UAAM,MAAgB;AACtB,aAAS,IAAI,OAAO,SAAS,IAAI,MAAM,EAAE;AACvC,UAAI,KAAK;;AAEX,WAAO;;;;AC3GT;;;;;;;;;;;;;;;;AAsDA,oBACI,GAAsB;AACxB,UAAM,KAAK,gBAAgB,GAAG,KAAK,WAAW;AAC9C,YAAQ,AAAK,uBAAuB,OAAO,GAAG;AAC9C,IAAK,OACD,GAAG,SAAS,AAAK,cAAc,QAC/B,MAAM;AAEV,UAAM,SAAwB,CAAC,GAAG;AAClC,UAAM,QAAsB,CAAC;AAC7B,UAAM,UACF,CAAC,UAAwB;AACvB,WAAK,CAAC;AACN,aAAO,SAAQ,QAAQ,IAAI;;AAEjC,WAAO,OAAO,cACV,SAAS,QAAgC,MAAiB,SAC1D;;AAEC,QAAM,UAAU,GAAG,CAAC;;;ACzE3B;;;;;;;;;;;;;;;;AA8CA,sBAAsC,GAAiB;AACrD,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,QAAI,QAAQ;AACV,aAAO,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,GAAG;;AAEnC,IAAK,OACD,GAAG,SAAS,KAAK,QACjB,MAAM,qCAAqC,GAAG,kCACb;AACrC,SAAK,QAAQ;AACX,MAAK,OACD,QAAQ,KAAK,OAAO,GAAG,MACvB,MAAM,+CAA+C,GAAG,OAAO,aAC/C;;AAGtB,QAAI,GAAG,QAAQ;AACb,aAAO,GAAG;;AAGZ,UAAM,SAA0B,CAAC,GAAG;AACpC,UAAM,QAAwB,CAAC;AAE/B,WAAO,OAAO,cACV,cAAW,SAAQ,UAAU,IAAI,OAAO,QACxC,MAAqB,WAAW;;AAG/B,QAAM,YAAY,GAAG,CAAC;;;AC3E7B;;;;;;;;;;;;;;;;AA2DA,gBACI,GAAsB,OAAwB,MAAM,WAAW;AACjE,QAAI,KAAK,gBAAgB,GAAG,KAAK,OAAO;AAExC,UAAM,UAA+B,CAAC;AACpC,YAAM,WAAW,eAAe,MAAM,GAAG;AACzC,UAAI,OAAO;AACX,YAAM,eAAe,mBAAmB,MAAM,GAAG;AACjD,UAAI,gBAAgB;AAClB,aAAK,UAAU,IAAI;AACnB,eAAO,iBAAiB,KAAK,QAAQ,GAAG;;AAE1C,YAAM,MAAM,SAAQ,IAAI,IAAI;AAC5B,UAAI;AACF,cAAM,WAAW,qBAAqB,IAAI,OAAO;AACjD,eAAO,QAAQ,KAAK;;AAEtB,aAAO;;AAGT,UAAM,SAAoB,CAAC,GAAG;AAC9B,UAAM,QAAkB,CAAC,MAAM;AAE/B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,KAC1D;;AAGN,QAAM,MAAM,GAAG,CAAC;;;ACvFvB;;;;;;;;;;;;;;;;AA2DA,gBACI,GAAsB,OAAwB,MAAM,WAAW;AACjE,QAAI,KAAK,gBAAgB,GAAG,KAAK,OAAO;AAExC,UAAM,UAA+B,CAAC;AACpC,YAAM,WAAW,eAAe,MAAM,GAAG;AACzC,UAAI,OAAO;AACX,YAAM,eAAe,mBAAmB,MAAM,GAAG;AACjD,UAAI,gBAAgB;AAClB,aAAK,UAAU,IAAI;AACnB,eAAO,iBAAiB,KAAK,QAAQ,GAAG;;AAE1C,YAAM,MAAM,SAAQ,IAAI,IAAI;AAC5B,UAAI;AACF,cAAM,WAAW,qBAAqB,IAAI,OAAO;AACjD,eAAO,QAAQ,KAAK;;AAEtB,aAAO;;AAGT,UAAM,SAAoB,CAAC,GAAG;AAC9B,UAAM,QAAkB,CAAC,MAAM;AAE/B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,KAC1D;;AAIN,QAAM,MAAM,GAAG,CAAC;;;ACxFvB;;;;;;;;;;;;;;;;AAqDA,mBAAmC,GAAsB,OAAO;AAC9D,QAAI,KAAK,gBAAgB,GAAG,KAAK;AAEjC,UAAM,UAA+B,CAAC,UAAS;AAC7C,WAAK,CAAC;AAEN,UAAI,OAAO,AAAK,eAAe,MAAM,GAAG;AACxC,YAAM,eAAe,AAAU,mBAAmB,MAAM,GAAG;AAC3D,UAAI,gBAAgB;AAClB,aAAK,UAAU,IAAI;AACnB,eAAO,AAAU,iBAAiB,KAAK,QAAQ,GAAG;;AAEpD,aAAO,SAAQ,OAAO,IAAI,KAAK;;AAGjC,UAAM,SAAuB,CAAC,GAAG;AACjC,UAAM,QAAqB,CAAC;AAE5B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,QAC1D;;AAGN,QAAM,SAAS,GAAG,CAAC;;;AC5E1B;;;;;;;;;;;;;;;;AAsDA,mBAAmC,GAAsB,OAAO;AAC9D,QAAI,KAAK,gBAAgB,GAAG,KAAK;AAEjC,UAAM,UAA+B,CAAC,UAAS;AAC7C,WAAK,CAAC;AAEN,UAAI,QAAQ;AACV,eAAO;;AAET,UAAI,OAAO,AAAK,eAAe,MAAM,GAAG;AACxC,YAAM,eAAe,AAAU,mBAAmB,MAAM,GAAG;AAC3D,UAAI,gBAAgB;AAClB,aAAK,UAAU,IAAI;AACnB,eAAO,AAAU,iBAAiB,KAAK,QAAQ,GAAG;;AAEpD,aAAO,SAAQ,OAAO,IAAI,KAAK;;AAGjC,UAAM,SAAuB,CAAC,GAAG;AACjC,UAAM,QAAqB,CAAC;AAE5B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,QAC1D;;AAGN,QAAM,SAAS,GAAG,CAAC;;;AChF1B;;;;;;;;;;;;;;;;AAqCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAAqB,CAAC,GAAG;AAE/B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,KAAK;AACzB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,OAAO,GAAG,CAAC;;;AC/CxB;;;;;;;;;;;;;;;;AAsCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAsB,CAAC,GAAG;AAEhC,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,MAAM;AAC1B,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,QAAQ,GAAG,CAAC;;;ACjDzB;;;;;;;;;;;;;;;;AAqCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAqB,CAAC,GAAG;AAE/B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,KAAK;AACzB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,OAAO,GAAG,CAAC;;;AChDxB;;;;;;;;;;;;;;;;AA2CA,kBACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,MAAM,IAAI;AAC9B,WAAK,CAAC,IAAI;AACV,aAAO;;AAET,UAAM,SAAsB,CAAC,GAAG,IAAI,GAAG;AAEvC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,QAAQ,GAAG,CAAC;;;AC7DzB;;;;;;;;;;;;;;;;AAsCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAsB,CAAC,GAAG;AAEhC,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,MAAM;AAC1B,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,QAAQ,GAAG,CAAC;;;ACjDzB;;;;;;;;;;;;;;;;AAsCA,iBAAiC,GAAiB;AAChD,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAGnC,QAAI,CAAC,AAAK,aAAa;AACrB,YAAM,IAAI,MAAM,mCAAmC;;AAErD,QAAI,UAAU,YAAY,GAAG,UAAU,YACnC,UAAU,YAAY,GAAG,UAAU;AACrC,YAAM,IAAI,MAAM;;AAGlB,UAAM,SAAqB,CAAC,GAAG;AAC/B,UAAM,QAAmB,CAAC;AAE1B,WAAO,OAAO,cACV,cAAW,SAAQ,KAAK,IAAI,QAAQ,QACpC,MAAiB,MAAM;;AAGtB,QAAM,OAAO,GAAG,CAAC;;;AC1DxB;;;;;;;;;;;;;;;;AAmGM,iCACF,YACA,aAAuC,SACvC,MAA4B,aAAqB,QACjD;AAKF,UAAM,gBAAgB,WAAW;AACjC,UAAM,eACF,CAAC,GAAG,aAAa;AACrB,UAAM,cAAc,wBAAwB;AAE5C,WAAO,kBACH,YAAY,cAAc,SAAS,WAAW,MAC9C,MAAyB,MAAsB;;AAG/C,6BACF,SACA,YAAqC,SACrC,WAAoC,MACpC,cACA,aAA6C;AAC/C,UAAM,CAAC,cAAc,eAAe,gBAAgB;AAEpD,QAAI;AACJ,QAAI,eAAe;AACjB,oBAAc,CAAC,cAAc,aAAa,QAAQ,IAAI,QAAQ;eACrD,eAAe;AACxB,oBAAc,CAAC,cAAc,aAAa,QAAQ,IAAI,QAAQ;;AAE9D,YAAM,IAAI,MAAM,sBAAsB;;AAGxC,WAAO,kBACH,SAAS,aAAa,SAAS,WAAW,MAAK,cAAc,OAC7D;;AAMA,6BACF,SACA,YACA,SACA,WAA4C,MAC5C,cACA,aAA8B;AAChC,UAAM,CAAC,aAAa,cAAc,eAAe,iBAAiB;AAElE,QAAI;AACJ,QAAI;AACJ,QAAI,eAAe;AACjB,oBAAc;AACd,oBACI,CAAC,aAAa,cAAc,aAAa,QAAQ,IAAI,QAAQ;eACxD,eAAe;AACxB,oBAAc;AACd,oBACI,CAAC,aAAa,cAAc,aAAa,QAAQ,IAAI,QAAQ;;AAEjE,YAAM,IAAI,MAAM,sBAAsB;;AAGxC,WAAO,kBACH,SAAS,aAAa,SAAS,WAAW,MAAK,OAAO,aACtD;;AAOA,6BACF,SACA,aACA,SAAkC,WAClC,MACA,cAAuC,YAAY,OACnD,aAA6C;AAC/C,QAAI,CAAC,WAAW,UAAU,SAAS,cAAc,CAAC,IAAI,IAAI,IAAI;AAC9D,QAAI,eAAe;AACjB,OAAC,WAAW,UAAU,SAAS,cAAc;eACpC,eAAe;AACxB,OAAC,WAAW,YAAY,UAAU,WAAW;;AAE7C,YAAM,IAAI,MAAM,sBAAsB;;AAGxC,UAAM,CAAC,cAAc,aAAY,EAAG,kBAAkB;AACtD,UAAM,CAAC,cAAc,eAAe,gBAAgB;AACpD,UAAM,CAAC,gBAAgB,iBAAiB,gBAAgB;AAExD,UAAM,wBACF,uBAAuB,cAAc;AACzC,UAAM,uBACF,uBAAuB,aAAa;AACxC,UAAM,CAAC,SAAS,WAAW,YAAY,iBACnC,MAAK,UAAU,SAAS,cAAc,aAAa,uBACnD,sBAAsB,cAAc;AAExC,UAAM,cAAc,YAAY,iBAAiB,aAAa;AAE9D,QAAI;AACJ,QAAI,eAAe;AACjB,iBAAW,CAAC,WAAW,aAAa,WAAW;eACtC,eAAe;AACxB,iBAAW,CAAC,WAAW,WAAW,UAAU;;AAG9C,WAAO;MACL;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;;AA0CE,6BACF,SACA,aACA,SACA,WAA4C,MAC5C,YAAY,OACZ,aAA6C,gBAC7C;AACF,QAAI,CAAC,WAAW,SAAS,UAAU,SAAS,cACxC,CAAC,IAAI,IAAI,IAAI,IAAI;AACrB,QAAI,eAAe;AACjB,OAAC,WAAW,SAAS,UAAU,SAAS,cAAc;eAC7C,eAAe;AACxB,OAAC,WAAW,YAAY,SAAS,UAAU,WAAW;;AAEtD,YAAM,IAAI,MAAM,sBAAsB;;AAGxC,UAAM,CAAC,aAAa,cAAc,aAAY,EAAG,kBAC7C;AACJ,UAAM,CAAC,aAAa,cAAc,eAAe,iBAAiB;AAClE,UAAM,CAAC,eAAe,gBAAgB,iBAClC,iBAAiB;AAErB,UAAM,uBACF,uBAAuB,aAAa;AACxC,UAAM,wBACF,uBAAuB,cAAc;AACzC,UAAM,uBACF,uBAAuB,aAAa;AACxC,UAAM,CAAC,SAAS,UAAU,WAAW,YAAY,mBAC7C,MAAK,SAAS,UAAU,SAAS,aAAa,cAAc,aAC5D,sBAAsB,uBAAuB,sBAC7C;AAEJ,UAAM,cAAc,YAAY,iBAAiB,aAAa;AAE9D,QAAI;AACJ,QAAI,eAAe;AACjB,iBAAW,CAAC,WAAW,aAAa,UAAU,WAAW;eAChD,eAAe;AACxB,iBAAW,CAAC,WAAW,UAAU,WAAW,UAAU;;AAGxD,WAAO;MACL;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;;AAIJ,gCACI,SAA2B,WAAmB,QAC9C,SAAkB;AACpB,QAAI,WAAW;AACb,gBAAU,kBAAkB,SAAS,WAAW;;AAElD,UAAM,YAAY,QAAQ;AAC1B,UAAM,YAAY,QAAQ;AAE1B,UAAM,aAAa,iBACd,aAAY,YAAY,IAAI,WAAW,SAAS,GAAG;AACxD,IAAK,OACD,AAAK,MAAM,aACX,MAAM,yBAAyB;AAGnC,UAAM,aAAa,iBACd,aAAY,YAAY,IAAI,WAAW,SAAS,GAAG;AACxD,IAAK,OACD,AAAK,MAAM,aACX,MAAM,4BAA4B;AAGtC,WAAO,CAAC,YAAY;;AAGtB,gCACI,SAA2C,WAC3C,aAAqB,QAAgB,SACrC;AACF,QAAI,WAAW;AACb,gBAAU,kBAAkB,SAAS,WAAW;;AAElD,UAAM,aAAa,QAAQ;AAC3B,UAAM,YAAY,QAAQ;AAC1B,UAAM,YAAY,QAAQ;AAE1B,UAAM,eAAe,iBAChB,cAAa,YAAY,IAAI,WAAW,SAAS,GAAG;AACzD,IAAK,OACD,AAAK,MAAM,eACX,MAAM,2BAA2B;AAGrC,UAAM,aAAa,iBACd,aAAY,YAAY,IAAI,WAAW,SAAS,GAAG;AACxD,IAAK,OACD,AAAK,MAAM,aACX,MAAM,yBAAyB;AAGnC,UAAM,aAAa,iBACd,aAAY,YAAY,IAAI,WAAW,SAAS,GAAG;AACxD,IAAK,OACD,AAAK,MAAM,aACX,MAAM,4BAA4B;AAGtC,WAAO,CAAC,cAAc,YAAY,YAAY;;AAG1C,6BACF,YACA,WAAmB,QAAgB,WAAW;AAChD,UAAM,qBAAqB,uBAAuB,WAAW;AAC7D,WAAO,KAAK,MACP,YAAW,KAAM,UAAS,KAAK,SAAS,sBAAsB;;AAGrE,2BAAyB;AACvB,QAAI,OAAO,UAAU;AACnB,aAAO,CAAC,OAAO,OAAO;;AAExB,QAAI,MAAM,WAAW;AACnB,aAAO,CAAC,MAAM,IAAI,MAAM,IAAI;;AAE9B,WAAO;;AAGT,4BAA0B;AAExB,WAAO,OAAO,UAAU,WAAW,CAAC,OAAO,OAAO,SAAS;;AAc7D,kCAAgC,YAAoB;AAClD,QAAI,YAAY;AACd,aAAO;;AAGT,WAAO,aAAc,cAAa,KAAM,YAAW;;AAGrD,4BACI,MAA4C,UAC5C,SAAiB,cAAsB,aACvC,cAAsB,aACtB,cACA;AAEF,QAAI;AACJ,QAAI;AACJ,QAAI;AAEJ,QAAI,OAAO,SAAQ;AACjB,YAAM,UAAW,SAAQ,IAAK,UAAU;AACxC,gBAAU,CAAC,KAAK,MAAK,QAAQ,MAAK,MAAM,MAAK,OAAO,MAAK,MAAM;AAC/D,YAAM,WAAW,qBACb,CAAC,UAAU,UAAU,cAAc,cAAc,MAAK;AAC1D,kBAAY,SAAS;AACrB,iBAAW,SAAS;eACX,SAAQ;AACjB,kBAAY,KAAK,KAAK,WAAW;AACjC,iBAAW,KAAK,KAAK,UAAU;AAC/B,YAAM,iBACF,KAAK,IAAI,GAAI,aAAY,KAAK,eAAe,eAAe;AAChE,YAAM,gBACF,KAAK,IAAI,GAAI,YAAW,KAAK,cAAc,cAAc;AAC7D,YAAM,MAAM,KAAK,MAAM,iBAAiB;AACxC,YAAM,SAAS,iBAAiB;AAChC,YAAM,OAAO,KAAK,MAAM,gBAAgB;AACxC,YAAM,QAAQ,gBAAgB;AAC9B,gBAAU,CAAC,KAAK,QAAQ,MAAM,OAAO,MAAM;eAClC,SAAQ;AACjB,gBAAU,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM;AACvD,kBAAY,KAAK,KAAM,YAAW,eAAe,KAAK;AACtD,iBAAW,KAAK,KAAM,WAAU,cAAc,KAAK;eAC1C,OAAO,SAAQ;AACxB,YAAM,MAAM,eAAe,iBAAiB,KAAI,GAAG,KAAK,KAAI,GAAG;AAC/D,YAAM,SAAS,eAAe,iBAAiB,KAAI,GAAG,KAAK,KAAI,GAAG;AAClE,YAAM,OAAO,eAAe,iBAAiB,KAAI,GAAG,KAAK,KAAI,GAAG;AAChE,YAAM,QAAQ,eAAe,iBAAiB,KAAI,GAAG,KAAK,KAAI,GAAG;AACjE,YAAM,UAAW,QAAQ,KAAK,WAAW,KAAK,SAAS,KAAK,UAAU,IAClE,UACA;AACJ,gBAAU,CAAC,KAAK,QAAQ,MAAM,OAAO,MAAM;AAC3C,kBAAY,iBACP,YAAW,eAAe,MAAM,UAAU,eAAe,GAC1D;AACJ,iBAAW,iBACN,WAAU,cAAc,OAAO,SAAS,cAAc,GAAG;;AAE9D,YAAM,MAAM,8BAA8B;;AAE5C,WAAO,CAAC,SAAS,WAAW;;AAG9B,8BACI,MAA4B,SAAiB,UAC7C,SAAiB,aAAqB,cACtC,aAAqB,aAAqB,cAC1C,aAAqB;AAMvB,QAAI;AACJ,QAAI;AACJ,QAAI;AACJ,QAAI;AAEJ,QAAI,OAAO,SAAQ;AACjB,YAAM,UAAW,SAAQ,IAAK,UAAU;AACxC,gBAAU;QACR,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;;AAER,YAAM,WAAW,qBACb,CAAC,SAAS,UAAU,SAAS,IAAI,aAAa,GAAG,aAAa,MAC9D;AACJ,iBAAW,SAAS;AACpB,kBAAY,SAAS;AACrB,iBAAW,SAAS;eACX,SAAQ;AACjB,iBAAW,KAAK,KAAK,UAAU;AAC/B,kBAAY,KAAK,KAAK,WAAW;AACjC,iBAAW,KAAK,KAAK,UAAU;AAC/B,YAAM,gBAAiB,YAAW,KAAK,cAAc,cAAc;AACnE,YAAM,iBACD,aAAY,KAAK,eAAe,eAAe;AACpD,YAAM,gBAAiB,YAAW,KAAK,cAAc,cAAc;AACnE,YAAM,QAAQ,KAAK,MAAM,gBAAgB;AACzC,YAAM,OAAO,gBAAgB;AAC7B,YAAM,MAAM,KAAK,MAAM,iBAAiB;AACxC,YAAM,SAAS,iBAAiB;AAChC,YAAM,OAAO,KAAK,MAAM,gBAAgB;AACxC,YAAM,QAAQ,gBAAgB;AAE9B,gBAAU,CAAC,KAAK,QAAQ,MAAM,OAAO,OAAO,MAAM,MAAM;eAC/C,SAAQ;AACjB,gBAAU;QACR,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;;AAER,iBAAW,KAAK,KAAM,WAAU,cAAc,KAAK;AACnD,kBAAY,KAAK,KAAM,YAAW,eAAe,KAAK;AACtD,iBAAW,KAAK,KAAM,WAAU,cAAc,KAAK;;AAEnD,YAAM,MAAM,8BAA8B;;AAE5C,WAAO,CAAC,SAAS,UAAU,WAAW;;AAQxC,4BACI,OAAe;AACjB,QAAI,CAAC;AACH,aAAO;;AAET,YAAQ;WACD;AAEH,eAAO,KAAK,MAAM;WACf;AAEH,eAAO,KAAK,KAAK;WACd;AACH,eAAO,KAAK,MAAM;;AAElB,cAAM,IAAI,MAAM,wBAAwB;;;AAIxC,6BAA4B;AAChC,UAAM,CAAC,MAAM,MAAM,QAAQ,gBAAgB;AAC3C,WAAO,SAAS,KAAK,SAAS,KAAK,SAAS;;AAGxC,0CACF,SAA0B;AAC5B,WAAO,kBAAkB,YAAY,kBAAkB;;AAUnD,mCAAkC;AAEtC,QAAI,eAAe;AACjB,aAAO;eACE,eAAe;AACxB,aAAO;;AAEP,YAAM,IAAI,MAAM,sBAAsB;;;;;AC5mB1C;;;;;;;;;;;;;;;;AAoDA,oBACI,GAAiB,YACjB,SAAkC,MAClC;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK,WAAW;AAC9C,UAAM,YAAY;AAElB,IAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MAAM,wEACa,0BAA0B;AAEjD,QAAI,MAAM;AACV,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAG3D,IAAK,OACD,IAAI,SAAS,GACb,MAAM,mDAAmD,IAAI;AAEjE,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,wEACiB,+BAA+B;;AAG5D,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,YAAY,SAAS,GAAmB,MACnD;AAEJ,WAAK,CAAC;AAEN,UAAI,SAAS,gBAAgB,KAAK,SAAS,iBAAiB,KACxD,AAAK,YAAY,SAAS,SAAS,SAAS;AAC9C,eAAO,IAAI;;AAGb,aAAO,SAAQ,QAAQ,KAAK;;AAG9B,UAAM,SAAwB,CAAC,GAAG;AAElC,UAAM,QAAsB,CAAC,YAAY,SAAS,WAAK;AAEvD,QAAI,MAAM,OAAO,cACb,SAAS,QAAgC,MAAiB,SAC1D;AAEJ,UAAM,KAAK,KAAK,GAAG;AAEnB,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAG7D,WAAO;;AAGF,QAAM,UAAU,GAAG,CAAC;;;AClH3B;;;;;;;;;;;;;;;;AA+BM;AACJ,UAAM,IAAI,QAAQ;;AAgBd;AACJ,UAAM,IAAI,SAAS;;AAIf;AACJ,UAAM,IAAI,gCAAgC;AAC1C,YAAQ,KAAK;;AAIT,2BAA0B;AAC9B,QAAI,MAAM,QAAQ;AAChB,cAAQ,KACJ,MAAM;;;AAId,0BAAwB;AAMlB;AACJ,WAAO;;AAOH;AACJ,WAAO;;AAuBH;AACJ,WAAO,OAAO;;AA+BV,mBAAkB;AAEtB,WAAO,OAAO,QAAQ;;AA0ClB,gBACF,UAA6B;AAC/B,WAAO,OAAO,KAAK,UAAU;;AAazB,mBAAkB;AACtB,UAAM,UAAU,sBAAsB;AACtC,YAAQ,QAAQ,cAAU,SAAO;;AAkC7B,gBAAiC;AACrC,WAAO,OAAO,KAAK;;AA2Bf,gBAAe;AACnB,WAAO,OAAO,KAAK;;AAiBf,sBAAqB;AACzB,WAAO,OAAO,WAAW;;AASrB;AACJ,WAAO,OAAO;;AAQV;AACJ,WAAO,OAAO;;AAOV,yBAAwB;AAC5B,WAAO,cAAc;;AAOjB,uBAAsB;AAC1B,WAAO,OAAO,YAAY;;AAQtB,8BAA6B;AAEjC,WAAO,OAAO,mBAAmB;;AAiB7B,2BACF,MAAc,SACd,WAAW;AACb,WAAO,OAAO,gBAAgB,MAAM,SAAS;;AAUzC;AACJ,WAAO,OAAO;;AASV,uBAAsB,cAAsB;AAChD,UAAM,YAAY,cAAc;;;;AC5WlC;;;;;;;;;;;;;;;;AA4EA,sBACI,GAAiB,YACjB,SAA0C,MAC1C,iBACA,aAA8B,SAC9B;AACF,QAAI,aAAa;AACf,kBAAY,CAAC,GAAG,GAAG;;AAEnB,sBACI;;AAIN,UAAM,KAAK,gBAAgB,GAAG,KAAK,aAAa;AAEhD,QAAI,MAAM;AACV,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAGxE,IAAK,OACD,IAAI,SAAS,GACb,MAAM,qDAAqD,IAAI;AACnE,IAAK,OACD,eAAe,SACf,MAAM,gFACuB;AACjC,IAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MAAM,0EACa,0BAA0B;AAEjD,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,0EACiB,+BAA+B;;AAG5D,UAAM,UAA+B,CAAC,UAAS;AAC7C,UAAI,aAAa;AACf,oBAAY,CAAC,GAAG,GAAG;;AAGrB,YAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,YAAY,SAAS,WAAW,MAAK,iBAChD;AAEJ,WAAK,CAAC;AAEN,aAAO,SAAQ,UAAU,KAAK;;AAGhC,UAAM,SAA0B,CAAC,GAAG;AAEpC,UAAM,QACF,CAAC,YAAY,SAAS,WAAK,iBAAiB,YAAY;AAE5D,QAAI,MAAM,OAAO,cACb,SAAS,QAAgC,MAAiB,WAC1D;AAEJ,UAAM,KAAK,KAAK,IAAI;AAEpB,QAAI;AACF,aAAO,QACI,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAIvE,WAAO;;AAGF,QAAM,YAAY,GAAG,CAAC;;;ACxJ7B;;;;;;;;;;;;;;;;AAmBM,kCAAiC,QAAoB;AACzD,UAAM,OAAO,OAAO,GAAG;AACvB,WAAO,QAAQ,CAAC,OAAO;AACrB,MAAK,OACD,MAAM,WAAW,MACjB,MACI,kBAAkB,0BAA0B,gDAChB;;AAGtC,IAAK,OACD,QAAQ,KAAK,OAAO,MACpB,MAAM,kBAAkB,qCAAqC,OAAO;AAExE,UAAM,aAAa,OAAO;AAC1B,WAAO,QAAQ,CAAC,OAAO;AACrB,eAAS,IAAI,GAAG,IAAI,MAAM;AACxB,QAAK,OACA,MAAM,QAAU,MAAM,OAAO,WAAW,IACzC,MAAM,kBAAkB,2BAA2B,OAAO,gDACb,+CACN;;;;AAK3C,2BAA0B,QAAoB;AAClD,UAAM,cAAc,OAAO,GAAG;AAC9B,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ;AACjC,kBAAY,SAAS,OAAO,GAAG;;AAEjC,WAAO;;;;AClDT;;;;;;;;;;;;;;;;AAwBM,sBACF,QAAoB,OAAiB,eACrC;AACF,QAAI,SAAS;AACX,cAAQ,WAAW;;AAErB,QAAI,UAAU;AACZ,YAAM,IAAI,MACN;;AAGN,QAAI,CAAC,aAAa,WAAW,CAAC,MAAM,QAAQ,WACxC,OAAO,WAAW,YAAY,OAAO,WAAW,aAChD,OAAO,WAAW;AACpB,YAAM,IAAI,MACN;;AAGN,QAAI,SAAS;AACX,yCAAmC;AAEnC,YAAM,eAAe,cAAc;AACnC,YAAM,eAAe,cAAc;AACnC,aACI,iBAAiB,cACjB,MACI,iCAAiC,kCAC9B,+BAA+B;AAE1C,eAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,EAAE;AAC1C,cAAM,WAAW,cAAc;AAC/B,cAAM,oBAAoB,MAAM,cAAc,SAAS,IACnD,aAAa,cAAc,MAAM,MAAM,MACvC;AACJ,eACI,cAAc,OAAO,MAAM,MAAM,CAAC,mBAClC,MAAM,gDACE,qDACM;;;AAItB,QAAI,CAAC,aAAa,WAAW,CAAC,MAAM,QAAQ;AAC1C,eAAS,CAAC;;AAGZ,YAAQ,SAAS;AACjB,aAAS,UAAU,WACf,aAAa,QAAQ,SACrB,QAAQ,QAAoB,IAAI;AACpC,WAAO,OAAO,WAAW,QAAsB,OAAO;;;;AC1ExD;;;;;;;;;;;;;;;;AAmDM,mBACF,QAAoB,OAAqB;AAC3C,UAAM,gBAAgB,WAAW,QAAQ;AACzC,WAAO,WAAW,QAAQ,OAAO,eAAe;;;;ACtDlD;;;;;;;;;;;;;;;;AAoEA,mBAAmC,SAA8B,OAAO;AACtE,WAAO,QAAQ,UAAU,GAAG,MAAM;AAElC,QAAI,WAAW,qBAAqB,SAAS,WAAW;AACxD,QAAI,SAAS,GAAG,UAAU;AACxB,eAAS,QAAQ;AACf,YAAI,SAAO,UAAU;AACnB,gBAAM,IAAI,MAAM;uBACD,SAAO;;;;AAK5B,UAAM,QAAQ,eAAe,MAAM,SAAS,GAAG,OAAO;AACtD,UAAM,WAAW,gBAAgB,SAAS,IAAI,OAAK,EAAE,QAAQ;AAC7D,QAAI,cAAc,cAAc;AAC9B,aAAO,QAAO,IAAI;;AAGpB,eAAW,SAAS,OAAO,OAAK,EAAE,OAAO;AACzC,QAAI,SAAS,WAAW;AACtB,aAAO,SAAS;;AAGlB,UAAM,SAAS,SAAS,IAAI,OAAK,EAAE;AACnC,2BAAuB,QAAQ;AAE/B,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,OAAO,UAAU;AACrC,WAAK;AACL,aAAO;;AAGT,UAAM,SAAuB;AAC7B,UAAM,OAAoB,CAAC;AAE3B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,QAC1D;;AAGN,QAAM,SAAS,GAAG,CAAC;;;AC7G1B;;;;;;;;;;;;;;;;AA4CA,mBACI,GAAiB,GAAiB,aAAa,OAC/C,aAAa;AACf,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,IAAK,OACD,GAAG,QAAQ,KAAK,GAAG,QAAQ,KAAK,GAAG,SAAS,GAAG,MAC/C,MAAM,4EACW,GAAG,YAAY,GAAG;AAEvC,UAAM,cACF,aAAa,GAAG,MAAM,GAAG,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO;AAC5D,UAAM,cACF,aAAa,GAAG,MAAM,GAAG,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO;AAE5D,UAAM,cACF,aAAa,GAAG,MAAM,GAAG,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO;AAC5D,UAAM,cACF,aAAa,GAAG,MAAM,GAAG,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO;AAE5D,UAAM,aAAa,GAAG,MAAM,MAAM,GAAG;AACrC,UAAM,aAAa,GAAG,MAAM,MAAM,GAAG;AACrC,UAAM,YAAY,AAAK,cAAc;AACrC,UAAM,YAAY,AAAK,cAAc;AAErC,IAAK,OACD,AAAK,YAAY,YAAY,aAC7B,MAAM,sCAAsC,oBACrC,sCAAsC,GAAG,aACzC,GAAG;AAEd,IAAK,OACD,gBAAgB,aAChB,MAAM,kCAAkC,qBACjC,uCAAuC,GAAG,aAC1C,GAAG,wBAAwB,6BACX;AAE3B,UAAM,WAAW,GAAG,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa;AAE5D,UAAM,MAAM,aAAa,QAAQ,IAAI,CAAC,WAAW,aAAa,gBACrC,QAAQ,IAAI,CAAC,WAAW,aAAa;AAC9D,UAAM,MAAM,aAAa,QAAQ,IAAI,CAAC,WAAW,aAAa,gBACrC,QAAQ,IAAI,CAAC,WAAW,aAAa;AAE9D,UAAM,UAA+B,CAAC,UAAS;AAC7C,WAAK,CAAC,KAAK;AAEX,aAAO,SAAQ,YACX,KAAiB,KAAiB,YAAY;;AAGpD,UAAM,SAA4B,CAAC,GAAG,KAAK,GAAG;AAE9C,UAAM,QAA0B,CAAC,YAAY;AAE7C,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MAAiB,aAC1D;AAEJ,WAAO,QAAQ,KAAK;;AAGf,QAAM,SAAS,GAAG,CAAC;;;AC7G1B;;;;;;;;;;;;;;;;AAmDA,gBAAgC,GAAsB;AACpD,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,SAAS,IAAI;AACjC,WAAK,CAAC,IAAI;AACV,aAAO;;AAET,UAAM,SAAyB,CAAC,GAAG,IAAI,GAAG;AAE1C,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAEN,QAAM,MAAM,GAAG,CAAC;;;ACnEvB;;;;;;;;;;;;;;;;AAqCA,oBAAoC;AAClC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAwB,CAAC,GAAG;AAElC,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,QAAQ;AAC5B,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,UAAU,GAAG,CAAC;;;AChD3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBM,6BACF,OAAe,OAAiB;AAClC,IAAK,OACD,MAAM,SAAS,MAAM,QACrB,MAAM,iBAAiB,MAAM,0BAA0B,2CACnB,MAAM;AAC9C,IAAK,OACD,MAAM,SAAS,KAAK,QACpB,MAAM,iBAAiB,MAAM,yBAAyB,0CAClB,MAAM;AAE9C,aAAS,IAAI,GAAG,IAAI,MAAM,MAAM,EAAE;AAChC,MAAK,OACD,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,IAClC,MAAM,iBAAiB,MAAM,gBAAgB,aAAa,OAClD,MAAM,KAAK,KAAK,kCAAkC,OAChD,MAAM,MAAM;;;AAKxB,sBAAqB;AACzB,UAAM,OAAO;AACb,QAAI,OAAO;AACX,WAAO,OAAO;AACZ,UAAI,OAAO;AACT,aAAK,KAAK;;AAEZ,cAAQ;AACR;;AAEF,WAAO;;AAIH,4BACF,OAAiB,KAAe;AAClC,UAAM,OAAO;AACb,aAAS,OAAO,GAAG,OAAO,MAAM,QAAQ;AACtC,WAAK,QAAQ,KAAK,KAAM,KAAI,QAAQ,MAAM,SAAS,QAAQ;;AAE7D,WAAO;;AAKH,iCACF,SAAmB,wBAAgC,eACnD;AACF,UAAM,aAAa,CAAC,GAAG;AACvB,aAAS,IAAI,WAAW,QAAQ,IAAI,WAAW,QAAQ;AACrD,iBAAW,KAAK;;AAElB,aAAS,IAAI,GAAG,IAAI,eAAe;AACjC,UAAI,MAAM;AACR,mBAAW,0BAA0B;;AAErC,mBAAW,OACP,wBAAwB,GACxB;AACJ,mBAAW;;;AAGf,WAAO;;AAGT,2BACI,wBAAgC,eAChC;AACF,QAAI,kBAAkB;AACpB,aAAO;;AAGT,WAAO,iBAAkB,iBAAgB;;AAG3C,yBAAuB,eAAuB;AAC5C,UAAM,aAAa;AACnB,aAAS,IAAI,GAAG,IAAI,eAAe;AACjC,iBAAW,KAAK,yBAAyB;;AAE3C,WAAO;;AAKH,sCACF,WAAmB,wBAAgC,eACnD,eAAyB;AAC3B,UAAM,aAAa,CAAC,GAAG;AACvB,UAAM,aAAa,cAAc,eAAe;AAEhD,aAAS,OAAO,GAAG,OAAO,WAAW,QAAQ;AAC3C,UAAI,WAAW,QAAQ,QAAQ;AAC7B,mBAAW,QAAQ;;AAEnB,cAAM,eACF,gBAAgB,wBAAwB,eAAe;AAC3D,YAAI,gBAAgB,cAAc;AAClC,YAAI,YAAY,KAAK;AACnB,0BAAgB;;AAGlB,mBAAW,QAAQ;;;AAGvB,WAAO;;AAKH,qCACF,SAAiB,wBAAgC,eACjD,aAAuB;AACzB,UAAM,aAAa,CAAC,GAAG;AACvB,UAAM,aAAa,cAAc,eAAe;AAEhD,aAAS,OAAO,GAAG,OAAO,WAAW,QAAQ;AAC3C,UAAI,WAAW,QAAQ,QAAQ;AAC7B,mBAAW,QAAQ,OAAO;;AAE1B,cAAM,eACF,gBAAgB,wBAAwB,eAAe;AAC3D,YAAI,gBAAgB,YAAY;AAChC,YAAI,UAAU,KAAK;AACjB,0BAAgB,OAAO;;AAEzB,mBAAW,QAAQ;;;AAIvB,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ;AAErC,YAAM,WAAW,WAAW;AAC5B,UAAI,WAAW,KAAK;AAClB,mBAAW,MAAM;;AAEnB,iBAAW,KAAK,AAAK,MAAM,GAAG,WAAW,IAAI,WAAW;;AAE1D,WAAO;;AAGH,0BACF,SAAmB,MAAc;AACnC,QAAI,SAAS,QAAQ;AACrB,QAAI,eAAgB,KAAK,QAAS,UAAU;AAC1C,eAAS;;AAGX,WAAO;;AAGH,wBACF,WAAmB,cAAwB,SAC3C,YAAsB,MAAc;AAEtC,QAAI,QAAQ,aAAa;AACzB,UAAM,SAAS,QAAQ,SAAS;AAIhC,QAAI,YAAY,KAAK,QAAQ,eAAe,KAAK,QAAQ,SAAS;AAChE,UAAI,SAAS;AAIX,gBAAQ,OAAO;;AAGf,gBAAQ,OAAO;;;AAKnB,UAAM,WAAW,WAAW;AAC5B,QAAI,QAAQ;AACV,eAAS;;AAIX,YAAQ,AAAK,MAAM,GAAG,OAAO,WAAW;AAExC,WAAO;;AAGH,uBACF,SAAiB,aAAuB,SACxC,YAAsB,MAAc;AAEtC,QAAI,OAAO,YAAY;AACvB,UAAM,SAAS,QAAQ,SAAS;AAIhC,QAAI,UAAW,KAAK,QAAS,eAAgB,KAAK,QAAS,QAAQ;AACjE,UAAI,SAAS;AAGX,eAAO,OAAO;;AAGd,eAAO,OAAO;;;AAKlB,UAAM,WAAW,WAAW;AAC5B,QAAI,OAAO;AACT,cAAQ;;AAMV,QAAI,SAAS;AAEX,aAAO,AAAK,MAAM,GAAG,MAAM;;AAG3B,aAAO,AAAK,MAAM,IAAI,MAAM,WAAW;;AAGzC,WAAO;;AAOH,4BACF,OAAiB,OAAiB;AAEpC,QAAI,kBAAkB,KAAK;AAC3B,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ;AAC/B,UAAI,KAAK,KAAK;AACZ,0BAAkB;AAClB;;;AAIJ,aAAS,IAAI,kBAAkB,GAAG,IAAI,KAAK,QAAQ;AACjD,UAAI,MAAM,KAAK,KAAK,KAAK,OAAO,MAAM;AACpC,eAAO;;;AAGX,WAAO;;AAGH,6BAA4B,OAAiB;AACjD,QAAI,aAAa,MAAM,SAAS,IAAI,MAAM,MAAM,SAAS,KAAK;AAC9D,aAAS,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG;AACpC,oBAAc,MAAM,KAAK,QAAQ;;AAEnC,WAAO;;AAGH,4BACF,GAAW,OAAwB;AAErC,QAAI;AACJ,QAAI,OAAO,UAAU;AACnB,eAAS,CAAC,OAAO,GAAG,IAAI,MAAM,EAAE,OAAO,GAAG,KAAK;eACtC,MAAM,SAAS,EAAE;AAC1B,eAAS,MAAM,OAAO,IAAI,MAAM,EAAE,OAAO,MAAM,QAAQ,KAAK;;AAE5D,eAAS,MAAM;;AAEjB,WAAO,QAAQ;AACb,MAAK,OACD,MAAM,IAAI,MAAM;;AAEtB,QAAI;AACJ,QAAI,QAAQ;AACV,cAAQ,IAAI,MAAM,EAAE,MAAM,KAAK;eACtB,OAAO,SAAS;AACzB,cAAQ,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,OAAO,GAAG,KAAK;eACpC,KAAK,SAAS,EAAE;AACzB,cAAQ,KAAK,OAAO,IAAI,MAAM,EAAE,OAAO,KAAK,QAAQ,KAAK;;AAEzD,cAAQ;;AAEV,YAAQ,MAAM,IAAI,CAAC,GAAG;AACpB,UAAI,KAAK;AACP,eAAO;;AAEP,QAAK,OACD,MAAM,IACN,MAAM,qDACC,mCAAmC;AAC9C,eAAO,EAAE,MAAM,KAAK,OAAO;;;AAG/B,WAAO,CAAC,QAAQ;;;;ACxTlB;;;;;;;;;;;;;;;;AA6DA,kBACI,GAAiB,OAAwB;AAC3C,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,QAAI,GAAG,SAAS;AACd,YAAM,IAAI,MAAM;;AAElB,UAAM,CAAC,QAAQ,SAAS,AAAW,iBAAiB,IAAI,OAAO;AAC/D,IAAW,kBAAkB,IAAI,QAAQ;AAEzC,UAAM,UAA+B,CAAC,UAAS;AAC7C,WAAK,CAAC;AACN,aAAO,SAAQ,MAAM,IAAI,QAAQ;;AAGnC,UAAM,SAAsB,CAAC,GAAG;AAChC,UAAM,QAAoB,CAAC,OAAO;AAElC,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,OAC1D;;AAGN,QAAM,QAAQ,GAAG,CAAC;;;ACpFzB;;;;;;;;;;;;;;;;AAqCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAqB,CAAC,GAAG;AAE/B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,IAAI,SAAQ,KAAK;AACvB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,QAAO,GAAG,CAAC;;;AChDxB;;;;;;;;;;;;;;;;AA6CA,0BACI,YAA+B,YAC/B,UAA+B,MAC/B,GAAwB;AAC1B,UAAM,cACF,gBAAgB,YAAY,cAAc;AAC9C,UAAM,cACF,gBAAgB,YAAY,cAAc;AAC9C,UAAM,YAAY,gBAAgB,UAAU,YAAY;AACxD,UAAM,QAAQ,gBAAgB,MAAM,QAAQ;AAC5C,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,WAAW,OAAO,CAAC,OAAO,KAAK;AACrC,UAAM,WAAW,OAAO,UAAU;AAClC,UAAM,MAAgB,KAAI,UAAU;AAGpC,UAAM,YAAY,IAAI,MAAM;AAC5B,UAAM,YAAY,IAAI,MAAM,KAAK;AACjC,UAAM,YAA8B,CAAC,WAAW;AAChD,UAAM,IAAI,MAAM,KAAK,CAAC,GAAG,IAAI;AAC7B,UAAM,IAAI,MAAM,KAAK,CAAC,GAAG,YAAY;AACrC,UAAM,IAAI,MAAM,KAAK,CAAC,GAAG,YAAY,IAAI;AACzC,UAAM,IAAI,MAAM,KAAK,CAAC,GAAG,YAAY,IAAI;AAEzC,UAAM,OACF,KAAI,IAAI,QAAQ,IAAI,MAAK,KACrB,IAAI,IAAI,QAAQ,KAAI,aAAa;AACzC,UAAM,OAAiB,IAAI,MAAK,OAAO,QAAQ;AAC/C,WAAO,CAAC,MAAM;;AAGT,QAAM,gBAAgB,GAAG,CAAC;;;AC9EjC;;;;;;;;;;;;;;;;AA2EA,2BACI,GAAiB,YAAsB;AACzC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,QAAO,WAAW,OAAO,CAAC,GAAG,MAAM,IAAI;AAE7C,IAAK,OACD,GAAG,QAAQ,IAAI,WAAW,QAC1B,MAAM,iBAAiB,GAAG,+CACtB,WAAW;AAEnB,IAAK,OACD,MAAM,WAAW,WAAW,QAC5B,MAAM,mBACF,MAAM,oDACN,WAAW;AAEnB,IAAK,OACD,GAAG,MAAM,KAAK,UAAS,GACvB,MAAM,yBACI,GAAG,MAAM,wEACe,WAAW,KAAK,cAAc;AAEpE,UAAM,UAA0B;AAC9B,aAAO,SAAQ,eAAe,IAAI,YAAY;;AAGhD,UAAM,SAA+B,CAAC,GAAG;AACzC,UAAM,QAA6B,CAAC,YAAY;AAEhD,WAAO,OAAO,cACV,SAAS,QAAgC,MACzC,gBAAgB;;AAGf,QAAM,iBAAiB,GAAG,CAAC;;;ACzF5B,iBAAgC;AACpC,QAAI;AACJ,QAAI,EAAE,SAAS,KAAK,EAAE,SAAS;AAC7B,YAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;eACpB,EAAE,SAAS;AACpB,YAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM;eACnC,EAAE,SAAS;AACpB,YAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM;;AAErD,YAAM;;AAGR,WAAO;;;;AChCT;;;;;;;;;;;;;;;;AAuDA,sBACI,GAAyB,OACzB,UACA,QACA,QACA;AACF,QAAI,mBAAmB;AACrB,wBAAkB;;AAEpB,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,QAAQ,gBAAgB,OAAM,QAAQ;AAC5C,UAAM,YAAY,gBAAgB,UAAU,YAAY;AACxD,QAAI;AACJ,QAAI,UAAS;AACX,eAAS,gBAAgB,QAAO,SAAS;;AAE3C,QAAI;AACJ,QAAI,UAAU;AACZ,gBAAU,gBAAgB,QAAQ,UAAU;;AAG9C,IAAK,OACD,MAAM,SAAS,UAAU,MACzB,MAAM;AAEV,IAAK,OACD,WAAW,QAAQ,MAAM,SAAS,QAAQ,MAC1C,MAAM;AAEV,IAAK,OACD,UAAU,QAAQ,MAAM,SAAS,OAAO,MACxC,MAAM;AAGV,UAAM,MAAgB,MAAM;AAE5B,UAAM,UAA+B,CAAC,UAAS;AAC7C,WAAK,CAAC,KAAK,OAAO,WAAW;AAE7B,aAAO,SAAQ,UACX,KAAK,SAAS,QAAQ,SAAS,YAAY,SAAS,UACpD,SAAS,SAAS;;AAGxB,UAAM,SAA+B;MACnC,GAAG;MACH,OAAO;MACP,QAAQ;MACR,MAAM;MACN,UAAU;;AAGZ,UAAM,QAA6B,CAAC;AAEpC,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MACzC,gBAAgB;AAEpB,WAAO,QAAQ,KAAK,GAAG;;AAGzB,oBAAkB;AAChB,QAAI,KAAK;AACP,aAAO;;AAET,QAAI,EAAE,SAAS;AAEb,aAAO,QAAQ,GAAG,CAAC,EAAE;eACZ,EAAE,SAAS;AACpB,aAAO;eACE,EAAE,SAAS;AAEpB,aAAO,QAAQ,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM;eACpC,EAAE,SAAS;AAEpB,aAAO,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM;;AAExD,WAAO;;AAGF,QAAM,YAAY,GAAG,CAAC;;;ACpG7B,wBACI,GAAwB,OACxB,UACA,QAAuC,QACvC;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,QAAQ,gBAAgB,OAAM,QAAQ;AAC5C,UAAM,YAAY,gBAAgB,UAAU,YAAY;AACxD,QAAI;AACJ,QAAI,UAAS;AACX,eAAS,gBAAgB,QAAO,SAAS;;AAE3C,QAAI;AACJ,QAAI,UAAU;AACZ,gBAAU,gBAAgB,QAAQ,UAAU;;AAE9C,IAAK,OACD,GAAG,SAAS,GACZ,MAAM,uDACC,GAAG;AACd,IAAK,OACD,MAAM,SAAS,KAAK,MAAM,SAAS,GACnC,MAAM,oEACU,MAAM;AAC1B,IAAK,OACD,UAAU,SAAS,KAAK,UAAU,SAAS,GAC3C,MAAM,wEACc,UAAU;AAClC,QAAI,UAAU;AACZ,MAAK,OACD,OAAO,SAAS,KAAK,OAAO,SAAS,GACrC,MAAM,qEACc,OAAO;;AAEjC,QAAI,WAAW;AACb,MAAK,OACD,QAAQ,SAAS,KAAK,QAAQ,SAAS,GACvC,MAAM,sEACc,QAAQ;;AAGlC,WAAO,UAAU,IAAI,OAAO,WAAW,SAAS,QAAQ;;AAGnD,QAAM,cAAc,GAAG,CAAC;;;AC5C/B,wBACI,GAAwB,OACxB,UACA,QAAuC,QACvC;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,QAAQ,gBAAgB,OAAM,QAAQ;AAC5C,UAAM,YAAY,gBAAgB,UAAU,YAAY;AACxD,QAAI;AACJ,QAAI,UAAS;AACX,eAAS,gBAAgB,QAAO,SAAS;;AAE3C,QAAI;AACJ,QAAI,UAAU;AACZ,gBAAU,gBAAgB,QAAQ,UAAU;;AAE9C,IAAK,OACD,GAAG,SAAS,GACZ,MAAM,uDACC,GAAG;AACd,IAAK,OACD,MAAM,SAAS,KAAK,MAAM,SAAS,GACnC,MAAM,oEACU,MAAM;AAC1B,IAAK,OACD,UAAU,SAAS,KAAK,UAAU,SAAS,GAC3C,MAAM,wEACc,UAAU;AAClC,QAAI,UAAU;AACZ,MAAK,OACD,OAAO,SAAS,KAAK,OAAO,SAAS,GACrC,MAAM,qEACc,OAAO;;AAEjC,QAAI,WAAW;AACb,MAAK,OACD,QAAQ,SAAS,KAAK,QAAQ,SAAS,GACvC,MAAM,sEACc,QAAQ;;AAGlC,WAAO,UAAU,IAAI,OAAO,WAAW,SAAS,QAAQ;;AAGnD,QAAM,cAAc,GAAG,CAAC;;;AC5C/B,wBACI,GAAwB,OACxB,UACA,QAAuC,QACvC;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,QAAQ,gBAAgB,OAAM,QAAQ;AAC5C,UAAM,YAAY,gBAAgB,UAAU,YAAY;AACxD,QAAI;AACJ,QAAI,UAAS;AACX,eAAS,gBAAgB,QAAO,SAAS;;AAE3C,QAAI;AACJ,QAAI,UAAU;AACZ,gBAAU,gBAAgB,QAAQ,UAAU;;AAE9C,IAAK,OACD,GAAG,SAAS,GACZ,MAAM,uDACC,GAAG;AACd,IAAK,OACD,MAAM,SAAS,KAAK,MAAM,SAAS,GACnC,MAAM,oEACU,MAAM;AAC1B,IAAK,OACD,UAAU,SAAS,KAAK,UAAU,SAAS,GAC3C,MAAM,wEACc,UAAU;AAClC,QAAI,UAAU;AACZ,MAAK,OACD,OAAO,SAAS,KAAK,OAAO,SAAS,GACrC,MAAM,qEACc,OAAO;;AAEjC,QAAI,WAAW;AACb,MAAK,OACD,QAAQ,SAAS,KAAK,QAAQ,SAAS,GACvC,MAAM,sEACc,QAAQ;;AAElC,WAAO,UAAU,IAAI,OAAO,WAAW,SAAS,QAAQ;;AAGnD,QAAM,cAAc,GAAG,CAAC;;;AC9E/B;;;;;;;;;;;;;;;;AAuCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK,SAAS;AAC5C,UAAM,UAAU,MACZ,OAAO,qBAAqB,GAAG,QAAQ,GAAG,OAAO,GAAG;AAExD,UAAM,SAAyB,CAAC,GAAG;AAInC,WAAO,OAAO,cACV,SAAS,QAAgC,MAAiB;;AAGzD,QAAM,QAAQ,GAAG,CAAC;;;ACpDzB;;;;;;;;;;;;;;;;AA2CA,wBACI,GAAsB;AACxB,QAAI,QAAQ,gBAAgB,GAAG,eAAe;AAC9C,UAAM,SAAS,MAAM;AAErB,QAAI,MAAM,KAAK,OAAK,CAAE,KAAI,MAAM,IAAI,MAAM;AACxC,YAAM,IAAI,MAAM,2CAA2C;;AAG7D,QAAI,MAAM,SAAS,MAAM;AACvB,YAAM,IAAI,MAAM,+BAA+B,MAAM,uBACjD,MAAM;;AAGZ,QAAI,MAAM,SAAS,MAAM;AACvB,YAAM,WAAW,MAAM,MAAM;AAC7B,aAAO,SAAS,SAAS,MAAM;AAC7B,iBAAS,QAAQ;;AAEnB,cAAQ,QAAQ,OAAO;;AAGzB,UAAM,aAAa,MAAM;AACzB,UAAM,OAAiB,MAAM,KAAK;AAClC,aAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG;AACrC,UAAI,WAAW,OAAO,MAAM;AAC1B,aAAK,KAAK;iBACD,MAAM,MAAM,OAAO;AAC5B,cAAM,IAAI,MACN,mBAAmB,mCAAmC;;;AAG9D,UAAM,OAAO,KAAK,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,OAAO,OAAK,KAAK;AAEjE,QAAI,KAAK,WAAW;AAClB,aAAO,MAAM;;AAGf,UAAM,UAAU,CAAC,aAA2B,SAAQ,KAAK,OAAO;AAEhE,UAAM,SAA4B,CAAC,GAAG;AACtC,UAAM,QAA0B,CAAC,OAAO;AAExC,WAAO,OAAO,cACH,SAAS,QAAqC,MAC9C,aAAa;;AAGnB,QAAM,cAAc,GAAG,CAAC;;;AC3F/B;;;;;;;;;;;;;;;;AA8CM,kBACF,OAAoB,QAAW,WAC/B;AACF,YAAQ,SAAS;AACjB,IAAK,mCAAmC;AACxC,WAAO,IAAI,aAAmB,OAAO,OAAO;;;;ACnD9C;;;;;;;;;;;;;;;;AAqCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAqB,CAAC,GAAG;AAC/B,WAAO,OAAO,cACV,cAAW,SAAQ,KAAK,KAAK,QAC7B,MAAiB;;AAEhB,QAAM,OAAO,GAAG,CAAC;;;AC7CxB;;;;;;;;;;;;;;;;AAwCA,wBACI,GAAiB,cAAsB;AACzC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACA,gBAAgB,cACjB,MAAM,uBAAuB,oDACK;AAEtC,UAAM,SAA4B,CAAC,GAAG;AACtC,UAAM,QAA0B,CAAC,cAAc;AAE/C,WAAO,OAAO,cACV,CAAC,UAAS;AACR,YAAM,MAAM,SAAQ,KAAK,IAAI,cAAc;AAC3C,WAAK,CAAC;AACN,aAAO;OAET,QAAgC,MAAiB,aACjD;;AAGC,QAAM,cAAc,GAAG,CAAC;;;AC7D/B;;;;;;;;;;;;;;;;AA6CA,oBAAoC,OAAoB;AACtD,UAAM,QAAQ,gBAAgB,OAAM,QAAQ;AAC5C,UAAM,QAAQ,gBAAgB,OAAM,QAAQ;AAC5C,IAAK,kBACD,MAAM,OAAO,MAAM,OACnB,yBAAyB,MAAM,aAAa,MAAM;AAGtD,UAAM,UAA+B,CAAC;AACpC,aAAO,SAAQ,QAAQ,OAAO;;AAEhC,UAAM,SAAwB,CAAC,MAAM,OAAO,MAAM;AAClD,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,UAAU,GAAG,CAAC;;;AC7B3B,qBAAmB;AACjB,WAAO,OAAO,SAAS;;AAGlB,QAAM,WAAW,GAAG,CAAC;;;ACY5B,qBACI,SAAqC;AACvC,WAAO,OAAO,SAAS;;AAGlB,QAAM,WAAW,GAAG,CAAC;;;ACD5B,qBACI,SAAqC;AACvC,WAAO,OAAO,SAAS;;AAGlB,QAAM,WAAW,GAAG,CAAC;;;AC5B5B,qBACI,SAAqC;AACvC,WAAO,OAAO,SAAS;;AAGlB,QAAM,WAAW,GAAG,CAAC;;;ACnC5B;;;;;;;;;;;;;;;;AA6DA,mBACI,GAAiB,QACjB,SACA,MACA,aAA4B,QAC5B,YAAqC,CAAC,GAAG,IACzC;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,QAAI,MAAM;AACV,QAAI,eAAe;AAEnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAG3D,IAAK,OACD,IAAI,SAAS,GACb,MAAM,uDAAuD,IAAI;AACrE,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,wDACC,QAAQ;AACnB,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,uEACiB,+BAA+B;;AAG5D,UAAM,UAAU,eAAe,SAAS,IAAI,MAAM,KAAK,IAAI,MAAM;AACjE,IAAK,OACD,YAAY,QAAQ,MAAM,IAC1B,MAAM,oCAAoC,8CACZ,QAAQ,MAAM;AAChD,IAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MAAM,uEACa,0BAA0B;AAEjD,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,cAAc,AAAU,wBAAwB;AACtD,YAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,QAAQ,OAAO,SAAS,WAAW,MAAK,iBACnD,OAAO;AACX,YAAM,OAAM,SAAQ,OAAO,KAAK,SAAS;AAEzC,WAAK,CAAC,KAAK;AAEX,aAAO;;AAGT,UAAM,SAAuB,CAAC,GAAG,KAAK,QAAQ;AAC9C,UAAM,QACY,CAAC,SAAS,WAAK,YAAY,WAAW;AAExD,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MAAiB,QAC1D;AAEJ,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAE7D,WAAO;;AAGF,QAAM,SAAS,GAAG,CAAC;;;AC3E1B,mBACI,GAAiB,QAA6B,QAC9C,MACA,aAA0B,OAAO,WAAW,GAC5C;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,QAAI,MAAM;AACV,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM;;AAG9C,IAAK,OACD,IAAI,SAAS,GACb,MAAM,uDAAuD,IAAI;AACrE,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,wDACC,QAAQ;AACnB,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,uEACiB,+BAA+B;;AAG5D,IAAK,OACD,IAAI,MAAM,OAAO,QAAQ,MAAM,IAC/B,MAAM,oCAAoC,IAAI,MAAM,yCACtB,QAAQ,MAAM;AAChD,IAAK,OACD,AAAU,+BAA+B,QAAQ,WACjD,MAAM,oEACY,wBAAwB;AAC9C,IAAK,OACD,eAAe,OACf,MAAM,sCACF;AAER,UAAM,WAAW,QACb,SAAS,CAAC,GAAG,QAAQ,MAAM,IAAI,QAAQ,MAAM,IAAI,QAAQ,MAAM;AACnE,UAAM,UAAU,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,IAAI,MAAM;AACvE,UAAM,UAA4B,CAAC,GAAG;AACtC,UAAM,YAA8B,CAAC,GAAG;AAExC,UAAM,mBAAmB;AAEzB,UAAM,MAAM,OACP,SAAuB,UAAuB,SAAS,MACxD,kBAAkB,WAAW;AAEjC,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM;;AAG/C,WAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAGtD,QAAM,SAAS,GAAG,CAAC;;;ACnH1B;;;;;;;;;;;;;;;;AAoDA,gCACI,QAAmE,IACnE,QAAkB,SAClB,MACA,aAA4B,QAC5B;AACF,IAAK,OACD,OAAO,WAAW,GAAG,MACrB,MAAM,sBACE,OAAO,2BAA2B,GAAG;AAEjD,QAAI,WAAW;AACf,QAAI,OAAO;AACX,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,aAAO,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;AAC1D,iBAAW,CAAC,GAAG,OAAO,IAAI,OAAO,IAAI,OAAO;;AAG9C,IAAK,OACD,SAAS,WAAW,GACpB,MACI,qEACG,SAAS;AACpB,IAAK,OACD,KAAK,SAAS,GACd,MAAM,4DACM,KAAK;AACrB,IAAK,OACD,OAAO,SAAS,GAChB,MAAM,gEACM,OAAO;AACvB,UAAM,UAAU,eAAe,SAAS,SAAS,KAAK,SAAS;AAC/D,UAAM,WAAW,eAAe,SAAS,KAAK,MAAM,KAAK,KAAK,MAAM;AACpE,IAAK,OACD,YAAY,OAAO,MAAM,IACzB,MAAM,4CAA4C,8CACd,OAAO,MAAM;AACrD,IAAK,OACD,aAAa,OAAO,MAAM,IAC1B,MAAM,6CAA6C,gDACd,OAAO,MAAM;AACtD,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,+EACiB,+BAA+B;;AAG5D,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,YAAY;AAElB,YAAM,cAAc,AAAU,wBAAwB;AACtD,YAAM,WAAW,AAAU,kBACvB,UAAU,OAAO,OAAO,SAAS,WAAW,MAAK,iBAAiB,OAClE;AAEJ,YAAM,OAAM,SAAQ,eAAe,MAAM,QAAQ;AAEjD,WAAK,CAAC,MAAM;AAEZ,aAAO;;AAGT,UAAM,SAAoC,CAAC,IAAI,MAAM;AAErD,UAAM,QACF,CAAC,SAAS,WAAK,YAAY,iBAAiB,YAAY;AAE5D,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MACzC,qBAAqB;AAEzB,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAE7D,WAAO;;AAGF,QAAM,sBAAsB,GAAG,CAAC;;;ACzFvC,4BACI,GAAiB,QACjB,aACA,SAAkC,MAClC;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,WAAO,oBACH,aAAa,IAAI,SAAS,SAAS,MAAK,QAAQ;;AAG/C,QAAM,kBAAkB,GAAG,CAAC;;;ACvDnC;;;;;;;;;;;;;;;;AA8DA,mBACI,GAAiB,QACjB,SAA0C,MAC1C,aAA8B,SAC9B,YAA6C,CAAC,GAAG,GAAG;AACtD,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,QAAI,MAAM;AACV,QAAI,eAAe;AAEnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAExE,IAAK,OACD,IAAI,SAAS,GACb,MAAM,uDAAuD,IAAI;AACrE,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,wDACC,QAAQ;AACnB,IAAK,OACD,IAAI,MAAM,OAAO,QAAQ,MAAM,IAC/B,MAAM,oCAAoC,IAAI,MAAM,yCACtB,QAAQ,MAAM;AAChD,IAAK,OACD,+BAA+B,SAAS,YACxC,MAAM,uEACa,0BAA0B;AACjD,IAAK,OACD,eAAe,SACf,MAAM,sCACF;AAER,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,QAAQ,OAAO,SAAS,WAAW;AAClD,YAAM,OAAM,SAAQ,OAAO,KAAK,SAAS;AAEzC,WAAK,CAAC,KAAK;AAEX,aAAO;;AAGT,UAAM,SAAuB,CAAC,GAAG,KAAK,QAAQ;AAE9C,UAAM,QAAqB,CAAC,SAAS,WAAK,YAAY;AAEtD,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MAAiB,QAC1D;AAEJ,QAAI;AACF,aAAO,QACI,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAGvE,WAAO;;AAGF,QAAM,SAAS,GAAG,CAAC;;;AC3H1B;;;;;;;;;;;;;;;;AA6CA,gCACI,QAGA,IAAO,QAAkB,SACzB;AACF,IAAK,OACD,OAAO,WAAW,GAAG,MACrB,MAAM,sBACE,OAAO,2BAA2B,GAAG;AAEjD,QAAI,WAAW;AACf,QAAI,OAAO;AACX,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,aAAO,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;AACvE,iBAAW,CAAC,GAAG,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO;;AAGzD,UAAM,UAAU,SAAS;AACzB,UAAM,WAAW,KAAK,MAAM;AAC5B,IAAK,OACD,SAAS,WAAW,GACpB,MACI,qEACG,SAAS;AACpB,IAAK,OACD,KAAK,SAAS,GACd,MAAM,4DACM,KAAK;AACrB,IAAK,OACD,OAAO,SAAS,GAChB,MAAM,gEACM,OAAO;AACvB,IAAK,OACD,YAAY,OAAO,MAAM,IACzB,MAAM,4CAA4C,8CACd,OAAO,MAAM;AACrD,IAAK,OACD,aAAa,OAAO,MAAM,IAC1B,MAAM,6CAA6C,gDACd,OAAO,MAAM;AAEtD,UAAM,UAA+B;AACnC,YAAM,YAAY;AAElB,YAAM,WAAW,AAAU,kBACvB,UAAU,OAAO,OAAO,SAAS,WAAW;AAEhD,aAAO,SAAQ,eAAe,MAAM,QAAQ;;AAG9C,UAAM,SAAoC,CAAC,IAAI;AAE/C,UAAM,QAAkC,CAAC;AAEzC,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MAAM,uBAC/C;AAEJ,QAAI;AACF,aAAO,QACI,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAGvE,WAAO;;AAGF,QAAM,sBAAsB,GAAG,CAAC;;;ACzEvC,4BACI,GAAiB,QACjB,aAGA,SAA0C;AAC5C,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,WAAO,oBAAoB,aAAa,IAAI,SAAS,SAAS;;AAGzD,QAAM,kBAAkB,GAAG,CAAC;;;ACrDnC;;;;;;;;;;;;;;;;AAqCA,gBAAgC;AAC9B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAoB,CAAC,GAAG;AAE9B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,IAAI;AACxB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,MAAM,GAAG,CAAC;;;AChDvB;;;;;;;;;;;;;;;;AAqCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAAqB,CAAC,GAAG;AAE/B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,KAAK;AACzB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,OAAO,GAAG,CAAC;;;AC/CxB;;;;;;;;;;;;;;;;AAoDA,mBACI,GAAsB,OAAO,GAAG,YAAY,OAAO,WAAU;AAC/D,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UACF,CAAC,UAAwB;AACvB,YAAM,cAAc,mBAAmB,CAAC,OAAO,GAAG;AAClD,UAAI,YAAY;AAChB,UAAI,eAAe;AACjB,oBAAY,UAAU,IAAI;;AAE5B,YAAM,eAAe,iBAAiB,GAAG,GAAG,MAAM;AAClD,UAAI,QAAQ,SAAQ,OAAO,WAAW,cAAc,WAAW;AAC/D,WAAK,CAAC;AAEN,UAAI,eAAe;AACjB,cAAM,qBAAqB,uBAAuB;AAClD,gBAAQ,UAAU,OAAO;;AAE3B,aAAO;;AAGb,UAAM,SAAuB,CAAC,GAAG;AACjC,UAAM,QAAqB,CAAC,MAAM,WAAW;AAE7C,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,QAC1D;;AAGN,QAAM,SAAS,GAAG,CAAC;;;AClF1B;;;;;;;;;;;;;;;;AAgEA,yBACI,GAA0B,WAC1B,aAA4B;AAC9B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,cAAe,eAAe,SAAU,GAAG,MAAM,KAAK,GAAG,MAAM;AACrE,UAAM,aAAc,eAAe,SAAU,GAAG,MAAM,KAAK,GAAG,MAAM;AACpE,UAAM,aAAc,eAAe,SAAU,GAAG,MAAM,KAAK,GAAG,MAAM;AAEpE,IAAK,OACD,cAAc,aAAa,GAC3B,MAAM;MACN,mBAAmB;MACnB,GAAG;AAEP,IAAK,OACD,aAAa,aAAa,GAC1B,MAAM;MACN,kBAAkB;UACd,GAAG;AAEX,IAAK,OACA,aAAc,aAAY,eAAe,GAC1C,MAAM,8CACF,YAAY,oBACZ,gDAAgD,GAAG;AAE3D,UAAM,UAAiC,cACnC,SAAQ,aAAa,IAAI,WAAW;AAExC,UAAM,SAA6B,CAAC,GAAG;AACvC,UAAM,QAA2B,CAAC,WAAW;AAE7C,WAAO,OAAO,cACV,SAAS,QAAgC,MACzC,cAAc;;AAGb,QAAM,eAAe,GAAG,CAAC;;;ACtGhC;;;;;;;;;;;;;;;;AA0EA,4BACI,GAAiB,QACjB,SAAkC,MAClC,aAA4B,QAC5B,YAAqC,CAAC,GAAG,IACzC;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,QAAI,MAAM;AACV,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAE3D,IAAK,OACD,IAAI,SAAS,GACb,MAAM,gEACM,IAAI;AACpB,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,iEACC,QAAQ;AACnB,IAAK,OACD,IAAI,MAAM,OAAO,QAAQ,MAAM,IAC/B,MAAM,uDACE,IAAI,MAAM,qDACJ,QAAQ,MAAM;AAEhC,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,gFACiB,+BAA+B;;AAG5D,UAAM,UAA+B,CAAC,UAAS;AAC7C,UAAI,aAAa;AACf,oBAAY,CAAC,GAAG;;AAGlB,MAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MAAM,gFACgB,0BAA0B;AAEpD,YAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,QAAQ,OAAO,SAAS,WAAW,MAAK,iBACnD;AACJ,YAAM,OAAM,SAAQ,gBAAgB,KAAK,SAAS;AAClD,WAAK,CAAC,KAAK;AACX,aAAO;;AAGT,UAAM,SAAsC,CAAC,GAAG,KAAK,QAAQ;AAC7D,UAAM,QACF,CAAC,SAAS,WAAK,YAAY,WAAW;AAE1C,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MACzC,uBAAuB;AAE3B,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAE7D,WAAO;;AAGF,QAAM,kBAAkB,GAAG,CAAC;;;AC9InC;;;;;;;;;;;;;;;;AA+CA,iBAAe;AACb,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UAA+B;AACnC,YAAM,OAAO,QAAQ,IAAI,CAAC,GAAG;AAC7B,YAAM,SAAS,SAAQ,KAAK;AAC5B,YAAM,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE;AAEnC,aAAO,QAAQ,QAAQ;;AAGzB,UAAM,SAAqB,CAAC,GAAG;AAE/B,WAAO,OAAO,cACV,SAAS,QAAgC,MAAiB;;AAGzD,QAAM,OAAO,GAAG,CAAC;;;AChExB;;;;;;;;;;;;;;;;AA2DA,uBACI,GAAiB,QACjB,SAAkC,MAClC,YAAqC,CAAC,GAAG,IACzC,aAAqB;AACvB,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,IAAK,OACD,GAAG,SAAS,KAAK,GAAG,SAAS,GAC7B,MAAM,gEACC,GAAG;AACd,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,4DACC,QAAQ;AACnB,IAAK,OACD,eAAe,QACf,MAAM,gFACuB;AAEjC,QAAI,MAAM;AACV,QAAI,eAAe;AAEnB,QAAI,GAAG,SAAS;AACd,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;AACzD,qBAAe;;AAGjB,UAAM,SAA2B,CAAC,GAAG,KAAK,QAAQ;AAClD,UAAM,QAAyB,CAAC,SAAS,WAAK;AAE9C,UAAM,MAAM,OAAO,UACH,YAAY,QACZ;AAEhB,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAG7D,WAAO;;AAGF,QAAM,aAAa,GAAG,CAAC;;;ACtG9B;;;;;;;;;;;;;;;;AAoDA,qBACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,SAAS,IAAI;AACjC,WAAK,CAAC,IAAI;AACV,aAAO;;AAET,UAAM,SAAyB,CAAC,GAAG,IAAI,GAAG;AAE1C,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,WAAW,GAAG,CAAC;;;ACtE5B;;;;;;;;;;;;;;;;AAmDA,gBAAgC,GAAsB;AACpD,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,QAAI,GAAG,UAAU,WAAW,GAAG,UAAU;AACvC,aAAO,SAAS,IAAI;;AAGtB,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,WAAW,IAAI;AACnC,WAAK,CAAC,IAAI;AACV,aAAO;;AAGT,UAAM,SAAoB,CAAC,GAAG,IAAI,GAAG;AACrC,UAAM,QAAQ;AAEd,WAAO,OAAO,cACH,SAAS,QAAgC,MAAqB,KAC9D;;AAGN,QAAM,MAAM,GAAG,CAAC;;;AC1EvB;;;;;;;;;;;;;;;;AA0BM,4BACF,SAAmB;AACrB,UAAM,SAAS,QAAQ;AACvB,UAAM,OAAiB;AACvB,aAAS,IAAI,GAAG,IAAI,QAAQ;AAC1B,YAAM,MAAM,SAAS,IAAI;AACzB,YAAM,IAAI,QAAQ,QAAQ;AAC1B,YAAM,IAAI,SAAS,SAAS,SAAS,IAAI,MAAM;AAC/C,UAAI,IAAI,KAAK,MAAM;AACjB,aAAK,QAAQ;;;AAGjB,WAAO;;AAOH,4BACF,SAAmB;AACrB,UAAM,SAAmB;AACzB,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ;AACnC,YAAM,QAAQ,QAAQ,QAAQ,SAAS,IAAI;AAC3C,YAAM,UAAU,SAAS,SAAS,IAAI;AACtC,YAAM,SAAS,SAAS;AACxB,UAAI,SAAS,QAAS,UAAU,KAAK,SAAS;AAC5C,eAAO,QAAQ;;;AAGnB,WAAO;;AAGH,sCACF,QAAkB;AACpB,UAAM,SAAmB;AACzB,UAAM,IAAI,KAAK,IAAI,OAAO,QAAQ,OAAO;AAEzC,aAAS,IAAI,GAAG,IAAI,GAAG;AACrB,UAAI,IAAI,OAAO,OAAO,SAAS,IAAI;AACnC,UAAI,KAAK;AACP,YAAI;;AAEN,UAAI,IAAI,OAAO,OAAO,SAAS,IAAI;AACnC,UAAI,KAAK;AACP,YAAI;;AAEN,UAAI,MAAM;AACR,eAAO,QAAQ;iBACN,MAAM;AACf,eAAO,QAAQ;iBACN,MAAM;AACf,cAAM,SAAS,wDACR,cAAc;AACrB,cAAM,MAAM;;AAEZ,eAAO,QAAQ;;;AAGnB,WAAO;;;;ACrFT;;;;;;;;;;;;;;;;AAyCA,kBACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,UAA+B,cAAW,SAAQ,MAAM,IAAI;AAElE,UAAM,SAAsB,CAAC,GAAG,IAAI,GAAG;AAEvC,WAAO,OAAO,cACH,SAAS,QAAgC,MAAM;;AAGrD,QAAM,QAAQ,GAAG,CAAC;;;ACzDzB;;;;;;;;;;;;;;;;AAmDA,kBACI,WAA8B,GAAiB;AACjD,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,aAAa,gBAAgB,WAAW,aAAa,SAAS;AAIpE,UAAM,iBAAiB,2BAA2B,GAAG,OAAO,GAAG;AAC/D,UAAM,gBAAgB,YAAY,IAAI;AACtC,UAAM,gBAAgB,YAAY,IAAI;AACtC,QAAI,WAAW,SAAS;AAGtB,aACI,WAAW,MAAM,OAAO,GAAG,MAAM,IACjC,MAAM;;AAGZ,QAAI,WAAW,SAAS;AAEtB,wBACI,WAAW,OAAO,cAAc,OAAO;;AAG7C,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,OAAO,YAAY,eAAe;AACtD,WAAK,CAAC;AACN,aAAO;;AAET,UAAM,SAAyB;MAC7B,WAAW;MACX,GAAG;MACH,GAAG;;AAEL,WAAO,OAAO,cACH,SAAS,QAAqC,MAC9C;;AAGN,QAAM,QAAQ,GAAG,CAAC;;;AC3FzB;;;;;;;;;;;;;;;;AAsCA,sBAAsC;AACpC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAA0B,CAAC,GAAG;AACpC,WAAO,OAAO,cACH,cAAW,SAAQ,UAAU,KAAK,QAClC,MAAiB;;AAEvB,QAAM,YAAY,GAAG,CAAC;;;AC7C7B;;;;;;;;;;;;;;;;AAyDA,qBACI,GAAsB;AAExB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,UAAM,YAAY,IAAI,IAAI;AAC1B,UAAM,SAAQ,UAAU;AACxB,UAAM,cAAc,MAAM,IAAI;AAC9B,WAAO,MAAM,aAAa,QAAO;;AAG5B,QAAM,WAAW,GAAG,CAAC;;;ACtE5B;;;;;;;;;;;;;;;;AA0CA,gBAAc,IAAuB;AACnC,UAAM,MAAM,gBAAgB,IAAI,MAAM;AACtC,UAAM,MAAM,gBAAgB,IAAI,MAAM;AAEtC,IAAK,OACA,KAAI,SAAS,KAAK,IAAI,SAAS,MAAO,KAAI,SAAS,KAAK,IAAI,SAAS,IACtE,MAAM,+DACC,IAAI,YAAY,IAAI;AAE/B,UAAM,UAAW,IAAI,SAAS,IAAI,IAAI,OAAO,IAAI,MAAM;AACvD,UAAM,UAAW,IAAI,SAAS,IAAI,IAAI,OAAO,IAAI,MAAM;AAEvD,IAAK,OACD,YAAY,SACZ,MAAM,gEACC,eAAe;AAE1B,QAAI,IAAI,SAAS,KAAK,IAAI,SAAS;AACjC,YAAM,OAAO,QAAQ,KAAK,CAAC,GAAG;AAC9B,YAAM,OAAO,QAAQ,KAAK,CAAC,IAAI;AAC/B,YAAM,OAAO,OAAO,MAAM;AAC1B,aAAO,QAAQ,MAAM;eACZ,IAAI,SAAS,KAAK,IAAI,SAAS;AACxC,YAAM,OAAO,QAAQ,KAAK,CAAC,GAAG;AAC9B,YAAM,OAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM;AACnD,YAAM,OAAO,OAAO,MAAM;AAC1B,aAAO,QAAQ,MAAM,CAAC,KAAK;eAClB,IAAI,SAAS,KAAK,IAAI,SAAS;AACxC,YAAM,OAAO,QAAQ,KAAK,CAAC,IAAI;AAC/B,YAAM,OAAO,OAAO,KAAK;AACzB,aAAO,QAAQ,MAAM,CAAC,KAAK;;AAE3B,YAAM,OAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM;AACnD,YAAM,OAAO,OAAO,KAAK;AACzB,aAAO;;;AAIJ,QAAM,MAAM,GAAG,CAAC;;;AChFvB;;;;;;;;;;;;;;;;AAqCA,gBAAgC;AAC9B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,IAAI,SAAQ,IAAI;AACtB,WAAK,CAAC;AACN,aAAO;;AAGT,UAAM,SAAoB,CAAC,GAAG;AAE9B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB;;AAIhE,QAAM,MAAM,GAAG,CAAC;;;ACrDvB;;;;;;;;;;;;;;;;AAwCA,gBAAgC;AAC9B,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,IAAK,OACD,GAAG,UAAU,WAAW,GAAG,UAAU,WACrC,MAAM;AAEV,QAAI,GAAG,UAAU;AACf,WAAK,KAAK,IAAI;;AAGhB,UAAM,SAAoB,CAAC,GAAG;AAC9B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,IAAI;AACxB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,MAAM,GAAG,CAAC;;;ACzDvB;;;;;;;;;;;;;;;;AAqCA,gBAAgC;AAC9B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAoB,CAAC,GAAG;AAC9B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,IAAI;AACxB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,MAAM,GAAG,CAAC;;;AC/CvB;;;;;;;;;;;;;;;;AAwCA,uBAAuC,GAAsB,OAAO;AAClE,UAAM,UAAoB;AAC1B,UAAM,KAAK,gBAAgB,GAAG,KAAK,cAAc;AAEjD,IAAK,OAAO,QAAQ,GAAG,MAAM,MAAM;AACnC,UAAM,WAAW,GAAG,MAAM;AAC1B,QAAI,OAAO;AAET,MAAK,OACD,CAAE,IAAG,OAAO,MAAM,MAClB,MAAM,iCAAiC,CAAG,IAAG,OAAO,OAAO,GAAG;AAClE,aAAO,GAAG,OAAO,OAAO;;AAE1B,aAAS,OAAO,MAAM,GAAG;AACzB,WAAO,QAAQ,IAAI;;AAGd,QAAM,aAAa,GAAG,CAAC;;;ACzD9B;;;;;;;;;;;;;;;;AAsCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAsB,CAAC,GAAG;AAChC,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,MAAM;AAC1B,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,QAAQ,GAAG,CAAC;;;AChDzB;;;;;;;;;;;;;;;;AAoDA,iBAAiC,GAAiB;AAChD,UAAM,UAAoB;AAC1B,UAAM,KAAK,gBAAgB,GAAG,KAAK,QAAQ;AAC3C,IAAK,OACD,GAAG,SAAS,KAAK,QACjB,MAAM,qCAAqC,GAAG,kCACb;AAErC,UAAM,UAA0B,CAAC,UAAS;AACxC,YAAM,MAAM,SAAQ,KAAK,IAAI;AAC7B,WAAK,CAAC;AACN,aAAO;;AAGT,UAAM,eAAe,CAAC;AACtB,UAAM,SAAqB,CAAC,GAAG;AAC/B,UAAM,QAAmB,CAAC;AAE1B,WAAO,OAAO,cACV,SAAS,QAAqC,MAAiB,MAC/D,OAAkC;;AAGjC,QAAM,OAAO,GAAG,CAAC;;;AC3ExB;;;;;;;;;;;;;;;;AAuCA,gBACI,SAAiB,YACjB,YAKA,QAAkB;AACpB,QAAI,cAAc;AAChB,mBAAa;;AAEf,UAAM,OAAO,OAAO,CAAC,SAAS,aAAa;AAC3C,UAAM,IAAI,WAAW,aAAa,UAAU;AAC5C,aAAS,IAAI,GAAG,IAAI,GAAG,EAAE;AACvB,WAAK,IAAI,GAAG,GAAG;;AAEjB,UAAM,MAAgB,QAAQ,KAAK,YAAY,CAAC,SAAS;AACzD,QAAI,cAAc;AAChB,aAAO;;AAEP,UAAI,WAAW,WAAW;AACxB,eAAO,KAAK,WAAW,KAAK,IAAI,CAAC,WAAW,IAAI,GAAG;iBAC1C,WAAW,WAAW;AAE/B,eAAO,KACI,WAAW,WAAW,KAAK,IAAI,IAC/B,CAAC,WAAW,IAAI,WAAW,IAAI,GAAG;iBACpC,WAAW,WAAW;AAE/B,eAAO,KAAK,WAAW,WAAW,WAAW,KAAK,IAAI,IAAI,IAAI;UACrD,WAAW;UAAI,WAAW;UAAI,WAAW;UAAI;UAAG;;;AAGzD,cAAM,IAAI,MACN,qEAE8B,WAAmB;;;;AAKpD,QAAM,MAAM,GAAG,CAAC;;;AChFvB;;;;;;;;;;;;;;;;AA0CA,gBAAc;AACZ,WACI,MAAM,UAAU,aAChB,MAAM,6DACS,MAAM;AAEzB,UAAM,SAAoB,CAAC;AAE3B,WAAO,OAAO,cAAc;AAE1B,YAAM,qBAAqB,MAAM,MAAM,MAAM,MAAM,SAAS;AAC5D,YAAM,QAAQ,MAAM,OAAO;AAE3B,YAAM,UAAU,MAAM,KAAK,OAAO;AAClC,YAAM,SAAS,SAAQ,IAAI;AAC3B,aAAO,OAAO,QAAQ,MAAM;OAC3B,QAAgC,MAAqB;;AAGnD,QAAM,MAAM,GAAG,CAAC;;;AC7DvB;;;;;;;;;;;;;;;;AAoCA,gBACI,OAAoB,OAAsB;AAC5C,UAAM,QAAmB,CAAC,OAAO,OAAO;AAExC,WAAO,OAAO,cACV,cAAW,SAAQ,KAAK,OAAO,OAAO,QAAQ,IAAI,MAAM,MACxD;;;;AC1CN;;;;;;;;;;;;;;;;AAoCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAsB,CAAC,GAAG;AAChC,WAAO,OAAO,cACV,cAAW,SAAQ,MAAM,KAAK,QAC9B,MAAiB;;AAEhB,QAAM,QAAQ,GAAG,CAAC;;;AC5CzB;;;;;;;;;;;;;;;;AAuBO,QAAM,wBAAwB;AAQ/B,oCAAmC;AACvC,QAAI,UAAU;AACZ,aAAO;;AAET,WAAO,eAAe,QAAQ,KAAK,MAAM,KAAK,KAAK;;;;ACnCrD;;;;;;;;;;;;;;;;;;;;;;AA6BM,yCACF,QAAgB;AAClB,QAAI,OAAO;AACX,QAAI;AAEJ,QAAI,UAAU;AACZ,YAAM;AACN,aAAO;;AAEP,YAAM,eAAe,QAAQ,KAAK,MAAM,KAAK,KAAK;;AAGpD,WAAO,CAAC;AACN,UAAI,MAAM,eAAe,QAAQ;AAC/B,eAAO;;AAEP,cAAM,eAAe,QAAQ,MAAM;;;AAGvC,WAAO;;AAGH,4BACF,QAAkB,MAAc;AAClC,UAAM,WAAW;AACjB,UAAM,OAAO,OAAO;AACpB,aAAS,MAAM,GAAG,MAAM,MAAM;AAC5B,UAAI,QAAQ;AACV,iBAAS,KAAK,OAAO;;AAErB,iBAAS,KAAK;;;AAGlB,WAAO;;AASH,oCACF,GAAW,SAAiB;AAC9B,UAAM,UAAU,EAAE,MAAM;AAExB,UAAM,cAAwB;AAC9B,QAAI,YAAY;AAChB,QAAI,YAAY;AAChB,aAAS,IAAI,GAAG,IAAI,MAAM;AACxB,kBAAY,KAAK,EAAE,MAAM;AACzB,mBAAa,EAAE,MAAM;;AAGvB,aAAS,IAAI,GAAG,IAAI,QAAQ,MAAM;AAChC,kBAAY,KAAK,QAAQ,MAAM;;AAGjC,aAAS,IAAI,OAAO,GAAG,IAAI,EAAE,MAAM;AACjC,kBAAY,KAAK,EAAE,MAAM;AACzB,mBAAa,EAAE,MAAM;;AAGvB,WAAO,CAAC,WAAW,WAAW,SAAS;;;;AC5FzC;;;;;;;;;;;;;;;;AAmDA,mBACI,GAAiB,SAA4B,OAAO;AACtD,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,WAAW,gBAAgB,SAAS,WAAW,UAAU;AAE/D,UAAM,SAAyB,CAAC,GAAG,IAAI,SAAS;AAChD,UAAM,QAAuB,CAAC;AAE9B,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,aAAa,eAAe,MAAM,GAAG,OAAO;AAClD,YAAM,YAAY,yBAAyB,IAAI,UAAU;AAEzD,YAAM,MACF,SAAQ,OAAO,IAAI,QAAQ,UAAU,CAAC,SAAS,QAAQ;AAC3D,WAAK,CAAC,IAAI;AAEV,aAAO,QAAQ,KAAK,UAAU;;AAGhC,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,UAC1D;;AAGN,QAAM,SAAS,GAAG,CAAC;;;AC3E1B;;;;;;;;;;;;;;;;AAyCA,oBACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,UAA+B,cAAW,SAAQ,QAAQ,IAAI;AAEpE,UAAM,SAAwB,CAAC,GAAG,IAAI,GAAG;AAEzC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,UAAU,GAAG,CAAC;;;AC1D3B;;;;;;;;;;;;;;;;AAyCA,yBACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,aAAa,IAAI;AACrC,WAAK,CAAC,IAAI;AACV,aAAO;;AAGT,UAAM,SAA6B,CAAC,GAAG,IAAI,GAAG;AAE9C,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,eAAe,GAAG,CAAC;;;AC9DhC;;;;;;;;;;;;;;;;AA2CA,iBAAe;AACb,WACI,MAAM,UAAU,aAChB,MAAM,8DACS,MAAM;AAEzB,UAAM,SAAqB,CAAC;AAE5B,WAAO,OAAO,cAAc;AAE1B,YAAM,qBAAqB,MAAM,MAAM,MAAM,MAAM,SAAS;AAC5D,YAAM,QAAQ,MAAM,OAAO;AAE3B,YAAM,UAAoB,QAAQ,OAAO,CAAC,OAAO;AACjD,YAAM,SAAS,SAAQ,KAAK;AAC5B,aAAO,QAAQ,QAAQ,MAAM;OAC5B,QAAgC,MAAqB;;AAGnD,QAAM,OAAO,GAAG,CAAC;;;AC9DxB;;;;;;;;;;;;;;;;AAqCA,iBAAiC;AAC/B,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAE/C,UAAM,UAA+B,CAAC;AACpC,aAAO,SAAQ,KAAK;;AAGtB,UAAM,SAAqB,CAAC,OAAO;AACnC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,OAAO,GAAG,CAAC;;;AClDxB;;;;;;;;;;;;;;;;AAuCA,iBAAiC;AAC/B,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAE/C,UAAM,UAA+B,CAAC;AACpC,aAAO,SAAQ,KAAK;;AAGtB,UAAM,SAAqB,CAAC,OAAO;AACnC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,OAAO,GAAG,CAAC;;;ACpDxB;;;;;;;;;;;;;;;;AA4DA,oBACI,GAAiB;AACnB,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UAA+B,CAAC;AACpC,YAAM,OAAO,eAAe,MAAM,GAAG;AACrC,UAAI,GAAG,SAAS;AACd,eAAO,MAAM;;AAEf,YAAM,MAAM,SAAQ,QAAQ,IAAI;AAChC,aAAO,QAAQ,KAAK,GAAG;;AAGzB,UAAM,SAAwB,CAAC,GAAG;AAClC,UAAM,QAAsB,CAAC,MAAM;AAEnC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC,SAAS;;AAGf,QAAM,UAAU,GAAG,CAAC;;;ACjF3B;;;;;;;;;;;;;;;;AAoCM,kBACF,OAAyC;AAC3C,QAAM,cAAa,UAAU,UAAU,YAAa,MAAM,QAAQ,WAC9D,UAAU;AACZ,YAAM,IAAI,MACN;;AAGN,QAAI,UAAU,YAAY,aAAa,UACnC,CAAE,kBAAiB;AACrB,YAAM,IAAI,MACN;;AAGN,UAAM,QAAkB;AACxB,UAAM,gBAA0B;AAChC,WAAO,WAAW,OAAO,OAAO,eAAe;;;;ACpDjD;;;;;;;;;;;;;;;;AAiDA,kBAAgB;AACd,UAAM,qBAAqB,MAAM,MAAM,MAAM,MAAM,SAAS;AAC5D,UAAM,QAAQ,MAAM,OAAO;AAC3B,QAAI;AACJ,QAAI,sBAAsB;AACxB,YAAM,eAAe,QAAQ,OAAO,CAAC,OAAO;AAC5C,YAAM,KAAK;;AAIX,YAAM,cAAc,CAAC,OAAO,IAAK,sBAAqB;AACtD,YAAM,YAAY,QAAQ,KAAK,QAAQ,CAAC,OAAO;AAC/C,YAAM,YAAY,QAAQ,KAAK,QAAQ,CAAC,OAAO;AAE/C,YAAM,gBACF,QAAQ,MAAM,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,qBAAqB,KAAK;AACvE,YAAM,gBAA0B,IAC5B,QAAQ,MAAM,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,qBAAqB,KAAK,IACnE,OAAO;AAEX,YAAM,IAAI,OAAO,CAAC,WAAW,gBAAgB;AAC7C,YAAM,IAAI,OAAO,CAAC,WAAW,gBAAgB;AAC7C,YAAM,eACF,QAAQ,QAAQ,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY;AACxD,YAAM,KAAK;;AAEb,UAAM,KAAK;AAEX,QAAI,MAAM,SAAS,KAAK,MAAM,MAAM,OAAO;AACzC,YAAM,OAAO;AACb,YAAM,SAAQ,MAAM,MAAM;AAC1B,YAAM,QAAQ,KAAK,CAAC,QAAO,IAAI,MAAM,KAAK,QAAO,IAAI,MAAM;AAC3D,WAAK;;AAEP,WAAO;;AAGF,QAAM,QAAQ,GAAG,CAAC;;;ACtFzB;;;;;;;;;;;;;;;;AAqCA,qBAAqC;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAyB,CAAC,GAAG;AAEnC,WAAO,OAAO,cACV,CAAC,aAAY,SAAQ,SAAS,KAAK,QACnC,MAAiB;;AAEhB,QAAM,YAAW,GAAG,CAAC;;;AC9C5B;;;;;;;;;;;;;;;;AAqCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAsB,CAAC,GAAG;AAEhC,WAAO,OAAO,cACV,CAAC,aAAY,SAAQ,MAAM,KAAK,QAChC,MAAiB;;AAEhB,QAAM,QAAQ,GAAG,CAAC;;;AC9CzB;;;;;;;;;;;;;;;;AAqCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAAsB,CAAC,GAAG;AAEhC,WAAO,OAAO,cACV,cAAW,SAAQ,MAAM,KAAK,QAC9B,MAAiB;;AAEhB,QAAM,SAAQ,GAAG,CAAC;;;AC7CzB;;;;;;;;;;;;;;;;AAuDA,oBACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,QAAI,GAAG,UAAU;AACf,WAAK,KAAK,IAAI;AACd,WAAK,KAAK,IAAI;;AAEhB,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,QAAQ,IAAI;AAChC,WAAK,CAAC,IAAI;AACV,aAAO;;AAGT,UAAM,SAAwB,CAAC,GAAG,IAAI,GAAG;AAEzC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,UAAU,GAAG,CAAC;;;AChF3B;;;;;;;;;;;;;;;;AA0CA,sBAAsC,GAAiB,QAAQ;AAC7D,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,WAAO,QAAQ,IAAI,OAAO,QAAQ,KAAK;;AAGlC,QAAM,YAAY,GAAG,CAAC;;;AC/C7B;;;;;;;;;;;;;;;;AAwCA,iBACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,UAA+B,cAAW,SAAQ,KAAK,IAAI;AAEjE,UAAM,SAAqB,CAAC,GAAG,IAAI,GAAG;AAEtC,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB;;AAIhE,QAAM,OAAO,GAAG,CAAC;;;ACzDxB;;;;;;;;;;;;;;;;AAyCA,sBACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,UAAU,IAAI;AAClC,WAAK,CAAC,IAAI;AACV,aAAO;;AAGT,UAAM,SAA0B,CAAC,GAAG,IAAI,GAAG;AAE3C,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,YAAY,GAAG,CAAC;;;AC9D7B;;;;;;;;;;;;;;;;AAiCM,oBAAmB,OAAe,MAAc;AACpD,QAAI,OAAO;AACT,YAAM,IAAI,MAAM;;AAGlB,UAAM,QAAuB,CAAC,OAAO,MAAM;AAC3C,WAAO,OAAO,cACV,cAAW,SAAQ,SAAS,OAAO,MAAM,MAAM,IAC/C,MAAiB,UAAU;;;;ACzCjC;;;;;;;;;;;;;;;;AA2CA,uCACI,GAAiB,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO;AAChE,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACD,GAAG,SAAS,KAAK,GAAG,SAAS,GAC7B,MAAM;sBACU,GAAG;AACvB,IAAK,OACD,AAAK,MAAM,cACX,MAAM,2FAC6B;AAEvC,QAAI,MAAM;AACV,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAG3D,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,IAAI,SAAQ,6BACd,KAAK,aAAa,MAAM,OAAO;AAEnC,WAAK,CAAC,KAAK;AAEX,aAAO;;AAGT,UAAM,SAAoB,CAAC,GAAG;AAE9B,UAAM,QAAkB,CAAC,aAAa,MAAM,OAAO;AAEnD,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MAAiB,KAC1D;AAEJ,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAE3D,aAAO;;;AAIJ,QAAM,6BAA6B,GAAG,CAAC;;;ACtF9C;;;;;;;;;;;;;;;;AAqCA,gBAAgC;AAC9B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAoB,CAAC,GAAG;AAC9B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,IAAI;AACxB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,MAAM,GAAG,CAAC;;;AC/CvB;;;;;;;;;;;;;;;;AAsCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAsB,CAAC,GAAG;AAChC,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,MAAM;AAC1B,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,QAAQ,GAAG,CAAC;;;AChDzB;;;;;;;;;;;;;;;;AAyDA,gBAAc;AAEZ,IAAK,OACD,AAAK,WAAW,IAAI,MAAM;AAC9B,WAAO,CAAC,GAAsB;AAE5B,YAAM,KAAK,gBAAgB,GAAG,KAAK,WAAW;AAC9C,YAAM,MACD,MAAM,OAAQ,gBAAgB,IAAI,MAAM,aAAa;AAC1D,aAAO,OAAO,KAAK;AACjB,cAAM,CAAC,OAAO,iBAAS,OAAO,UAAU,MAAM,EAAE,KAAK,CAAC,KAAK;AAC3D,YAAI,OAAO;AACT,UAAK,kBACD,MAAM,OAAO,IAAI,OACjB;;AAGN,mBAAW;AACX,eAAO,OAAM;;;;AAiCnB,iBAAe;AAEb,IAAK,OACD,AAAK,WAAW,IAAI,MAAM;AAC9B,WAAO,CAAC,MAAgC;AACtC,MAAK,OACD,MAAM,QAAQ,OACd,MAAM;AAGV,YAAM,QAAQ,qBAAqB,MAAM,QAAQ,YAAY;AAC7D,YAAM,MACD,MAAM,OAAQ,gBAAgB,IAAI,MAAM,cAAc;AAC3D,aAAO,OAAO,KAAK;AACjB,cAAM,CAAC,OAAO,iBAAS,OAAO,UAAU,MAAM,EAAE,GAAG,QAAQ,OAAO;AAClE,YAAI,OAAO;AACT,UAAK,kBACD,MAAM,OAAO,IAAI,OACjB;;AAGN,mBAAW;AACX,eAAO;;;;AA6Bb,wBAA0D;AAKxD,IAAK,OACD,AAAK,WAAW,IAChB,MAAM;AACV,WAAO,CAAC,GAAM;AACZ,MAAK,OACD,aAAa,QACb,MAAM;AACV,MAAK,OACD,MAAM,QAAQ,cAAc,QAC5B,MAAM;AACV,YAAM,CAAC,eAAO,SAAS,OAAO,UAAU,MAAM,EAAE,IAAI,CAAC,IAAI;AACzD,iBAAW;AACX,aAAO,CAAC,MAAM,OAAM,IAAS;;;AAkCjC,yBAAyC;AAKvC,IAAK,OACD,AAAK,WAAW,IAChB,MAAM;AACV,WAAO,CAAC,MAAgB;AACtB,MAAK,OACD,MAAM,QAAQ,SAAS,KAAK,MAAM,SAAO,eAAe,SACxD,MAAM;AAEV,MAAK,OACD,MAAM,QAAQ,cAAc,QAC5B,MAAM;AACV,YAAM,MAAM,OAAO,UAAU,MAAM,EAAE,GAAG,OAAO,MAAM;AACrD,UAAI,MAAM;AACR,QAAK,kBACD,IAAI,MAAM,OAAO,GAAG,OACpB;;AAGN,iBAAW,IAAI;AACf,aAAO;;;AAiCX,yBAAuB,GAAiB;AAEtC,IAAK,OACD,AAAK,WAAW,IAChB,MAAM;AACV,IAAK,OACD,WAAW,QACP,MAAM,QAAQ,YAAY,QAAQ,MAAM,OAAK,aAAa,WAC9D,MACI;AAGR,UAAM,mBAAmB,WAAW;AACpC,QAAI,CAAC;AAEH,gBAAU;AACV,iBAAW,WAAW,OAAO;AAC3B,gBAAQ,KAAK,OAAO,oBAAoB;;;AAI5C,UAAM,wBACF,mBAAmB,QAAQ,OAAO,eAAY,CAAC,UAAS,aAAa;AAGzE,UAAM,mBAAmB,QAAQ;AACjC,cAAU,QAAQ,OAAO,eAAY,UAAS;AAC9C,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,gGAC+B;AAGzC,UAAM,mBAAmB;AACzB,UAAM,CAAC,OAAO,iBAAS,OAAO,UAAU,GAAG,SAAS,MAAM;AAE1D,IAAK,OACD,OAAM,KAAK,OAAK,KAAK,OACrB,MAAM;AAGV,IAAK,OACD,MAAM,SAAS,GACf,MAAM,iFACiB,MAAM;AAEjC,UAAM,aAA6B;AACnC,YAAQ,QAAQ,CAAC,GAAG;AAClB,UAAI,OAAM,MAAM;AACd,mBAAW,EAAE,QAAQ,OAAM;;;AAG/B,QAAI,yBAAyB;AAG3B,4BAAsB,QAAQ,OAAK,WAAW,EAAE,QAAQ;;AAE1D,WAAO,CAAC,OAAO,OAAO;;AA0CxB,sBAAsC;AAEpC,WAAO,OAAO,WAAW;;AAG3B,sBAAoB;AAClB,UAAM,mBAAmB,OAAM,OAAO,OAAK,KAAK,MAAM;AACtD,QAAI,mBAAmB;AACrB,YAAM,IAAI,MACN;;;;;;ACvXR;;;;;;;;;;;;;;;;AAsCA,gBAAgC;AAC9B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAuB,CAAC,GAAG;AACjC,WAAO,OAAO,cACV,cAAW,SAAQ,IAAI,KAAK,QAC5B,MAAiB;;AAEhB,QAAM,MAAM,GAAG,CAAC;;;AC9CvB;;;;;;;;;;;;;;;;AAqCA,qBAAqC;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAyB,CAAC,GAAG;AACnC,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,SAAS;AAC7B,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,WAAW,GAAG,CAAC;;;AC/C5B;;;;;;;;;;;;;;;;AAwCA,uBAAuC;AACrC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAKnC,UAAM,WAAW,WAAW,CAAC;AAI3B,YAAM,QAAQ,IAAI,SAAS,IAAI;AAE/B,YAAM,WAAW,CAAC;AAChB,cAAM,OAAO,IAAI,IAAI,QAAQ,IAAI;AACjC,eAAO;;AAET,aAAO,CAAC,OAAO;;AAGjB,WAAO,SAAS;;AAEX,QAAM,aAAa,GAAG,CAAC;;;AC7D9B;;;;;;;;;;;;;;;;AA4DA,gBACI,GAAsB,OAAwB,MAAM,WAAW;AACjE,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,UACF,CAAC,UAAwB;AACvB,YAAM,WAAW,AAAK,eAAe,MAAM,GAAG;AAC9C,UAAI,OAAO;AACX,YAAM,eAAe,AAAU,mBAAmB,MAAM,GAAG;AAC3D,UAAI,WAAW;AACf,UAAI,gBAAgB;AAClB,mBAAW,UAAU,IAAI;AACzB,eAAO,AAAU,iBAAiB,KAAK,QAAQ,SAAS;;AAG1D,YAAM,IAAI,SAAQ,IAAI,UAAU;AAChC,UAAI,gBAAgB;AAClB,iBAAS;;AAGX,UAAI,MAAM;AACV,UAAI;AACF,cAAM,gBAAgB,AAAU,qBAC5B,IAAI,OAAO,AAAK,eAAe,MAAM,GAAG;AAC5C,cAAM,QAAQ,KAAK;AACnB,UAAE;;AAGJ,WAAK,CAAC,IAAI;AACV,aAAO;;AAGb,UAAM,SAAoB,CAAC,GAAG;AAC9B,UAAM,QAAkB,CAAC,kBAAkB,MAAM;AAEjD,WAAO,OAAO,cACH,SAAS,QAAgC,MAAqB,KAC9D;;AAGN,QAAM,MAAM,GAAG,CAAC;;;ACnGvB;;;;;;;;;;;;;;;;AAgDA,gBAAgC,GAAsB;AACpD,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,SAAS,IAAI;AACjC,WAAK,CAAC,IAAI;AACV,aAAO;;AAGT,UAAM,SAAoB,CAAC,GAAG,IAAI,GAAG;AAErC,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB;;AAIhE,QAAM,MAAM,GAAG,CAAC;;;AClEvB;;;;;;;;;;;;;;;;AA4DA,gBACI,GAAsB,OAAwB,MAAM,WAAW;AACjE,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,GAAG,UAAU;AACf,WAAK,KAAK,IAAI;;AAGhB,UAAM,UAA+B,CAAC,UAAS;AAC7C,WAAK,CAAC;AACN,YAAM,OAAO,eAAe,MAAM,GAAG;AAErC,YAAM,cAAc,mBAAmB,MAAM,GAAG;AAChD,UAAI,gBAAgB;AACpB,UAAI,YAAY;AAChB,UAAI,eAAe;AACjB,oBAAY,UAAU,IAAI;AAC1B,wBAAgB,iBAAiB,cAAc,QAAQ,GAAG;;AAE5D,UAAI,QAAQ,SAAQ,IAAI,WAAW;AACnC,UAAI;AACF,cAAM,WAAW,qBAAqB,MAAM,OAAO;AACnD,gBAAQ,QAAQ,OAAO;;AAEzB,aAAO;;AAGT,UAAM,SAAoB,CAAC,GAAG;AAC9B,UAAM,QAAkB,CAAC,MAAM;AAE/B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,KAC1D;;AAGN,QAAM,OAAM,GAAG,CAAC;;;AC9FvB;;;;;;;;;;;;;;;;AAqDA,uBAAuC,QAAsB,OAAO;AAClE,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,QAAI,SAAS;AACX,aAAO,QAAQ,OAAO;;AAExB,QAAI,SAAS,QAAQ,OAAO;AAC1B,YAAM,MACF,gFACmB,QAAQ,qBAAqB;;AAGtD,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,WAAW;AACjB,YAAM,OAAO,IAAI,QAAQ,MAAM;AAC/B,YAAM,UAAU,IAAI,QAAQ;AAC5B,YAAM,QACF,IAAI,KAAK,SAAS,YAAY,IAAI,KAAI,IAAI,UAAU,MAAM;AAC9D,WAAK,CAAC;AACN,aAAO;;AAGT,UAAM,SAA2B,CAAC,QAAQ;AAC1C,UAAM,QAAyB,CAAC;AAEhC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC,YAAY;;AAGlB,QAAM,aAAa,GAAG,CAAC;;;ACnF9B;;;;;;;;;;;;;;;;AA4DA,sBACI,GAAsB,OAAwB,MAAM,WAAW;AACjE,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,OAAO,eAAe,MAAM,GAAG;AACrC,UAAM,OAAO,IAAI,IAAI,MAAM;AAC3B,UAAM,IAAI,IAAI,IAAI;AAClB,UAAM,IAAI,IAAI;AACd,UAAM,IAAI,KAAI,GAAG;AACjB,UAAM,IAAI,IAAI;AACd,UAAM,MAAM,KAAI,QAAQ,MAAM,EAAE,QAAQ;AAExC,QAAI;AACF,YAAM,WAAW,qBAAqB,IAAI,OAAO;AACjD,aAAO,QAAQ,KAAK;;AAEtB,WAAO;;AAGF,QAAM,YAAY,GAAG,CAAC;;;AC/E7B;;;;;;;;;;;;;;;;AAwCA,uBACI,GAAsB;AACxB,UAAM,KAAK,gBAAgB,GAAG,KAAK,cAAc;AACjD,UAAM,KAAK,gBAAgB,GAAG,KAAK,cAAc;AACjD,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,SAA2B,CAAC,GAAG,IAAI,GAAG;AAE5C,WAAO,OAAO,cACH,cAAW,SAAQ,WAAW,IAAI,KAClC,QAAgC,MAAiB;;AAGvD,QAAM,aAAa,GAAG,CAAC;;;ACrD9B;;;;;;;;;;;;;;;;AAqCA,uBAAuC;AACrC,UAAM,KAAK,gBAAgB,GAAG,KAAK,cAAc;AACjD,UAAM,SAA2B,CAAC,GAAG;AACrC,WAAO,OAAO,cACV,cAAW,SAAQ,WAAW,KAAK,QACnC,MAAiB;;AAGhB,QAAM,aAAa,GAAG,CAAC;;;AC7C9B;;;;;;;;;;;;;;;;AAuCA,sBACI,GAAsB;AACxB,UAAM,KAAK,gBAAgB,GAAG,KAAK,aAAa;AAChD,UAAM,KAAK,gBAAgB,GAAG,KAAK,aAAa;AAChD,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,SAA0B,CAAC,GAAG,IAAI,GAAG;AAC3C,WAAO,OAAO,cACH,cAAW,SAAQ,UAAU,IAAI,KACjC,QAAgC,MAAiB;;AAEvD,QAAM,YAAY,GAAG,CAAC;;;AClD7B;;;;;;;;;;;;;;;;AAyCA,uBACI,GAAsB;AACxB,UAAM,KAAK,gBAAgB,GAAG,KAAK,cAAc;AACjD,UAAM,KAAK,gBAAgB,GAAG,KAAK,cAAc;AACjD,+BAA2B,GAAG,OAAO,GAAG;AAGxC,WAAO,WAAW,UAAU,GAAG,IAAI,WAAW,WAAW,GAAG;;AAGvD,QAAM,aAAa,GAAG,CAAC;;;ACnD9B;;;;;;;;;;;;;;;;AAwDA,oBACI,GAAiB,YACjB,SAAkC,MAClC;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,YAAY;AAElB,QAAI,MAAM;AACV,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAG3D,IAAK,OACD,IAAI,SAAS,GACb,MAAM,uDAAuD,IAAI;AACrE,IAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MAAM,wEACa,0BAA0B;AACjD,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,wEACiB,+BAA+B;;AAG5D,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,YAAY,SAAS,GAAmB,MACnD;AAEJ,UAAI;AAEJ,UAAI,SAAS,gBAAgB,KAAK,SAAS,iBAAiB,KACxD,AAAK,YAAY,SAAS,SAAS,SAAS;AAC9C,YAAI,IAAI;;AAER,YAAI,SAAQ,QAAQ,KAAK;;AAG3B,WAAK,CAAC,KAAK;AAEX,aAAO;;AAGT,UAAM,SAAwB,CAAC,GAAG;AAElC,UAAM,QAAsB,CAAC,YAAY,SAAS,WAAK;AAEvD,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MAAiB,SAC1D;AAEJ,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAE7D,WAAO;;AAGF,QAAM,UAAU,GAAG,CAAC;;;ACrH3B;;;;;;;;;;;;;;;;AA0EA,sBACI,GAAiB,aAA8C,CAAC,GAAG,GAAG,IACtE,SAA0C,MAC1C,iBACA,aAA8B,SAC9B;AACF,QAAI,aAAa;AACf,kBAAY,CAAC,GAAG,GAAG;;AAEnB,sBACI;;AAIN,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,QAAI,MAAM;AACV,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAGxE,IAAK,OACD,IAAI,SAAS,GACb,MAAM,qDAAqD,IAAI;AACnE,IAAK,OACD,eAAe,SACf,MAAM,gFACuB;AACjC,IAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MAAM,0EACa,0BAA0B;AACjD,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,0EACiB,+BAA+B;;AAG5D,UAAM,UAA+B,CAAC,UAAS;AAC7C,UAAI,aAAa;AACf,oBAAY,CAAC,GAAG,GAAG;;AAErB,YAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,YAAY,SAAS,WAAW,MAAK,iBAChD;AACJ,YAAM,IAAI,SAAQ,UAAU,KAAK;AACjC,WAAK,CAAC,KAAK;AACX,aAAO;;AAGT,UAAM,SAA0B,CAAC,GAAG;AAEpC,UAAM,QACF,CAAC,YAAY,SAAS,WAAK,iBAAiB,YAAY;AAE5D,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MAAiB,WAC1D;AAEJ,QAAI;AACF,aAAO,QACI,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAIvE,WAAO;;AAGF,QAAM,YAAY,GAAG,CAAC;;;ACjJ7B;;;;;;;;;;;;;;;;AA4DA,8BACI,GAAiB,YACjB,SAAkC,MAClC,sBAAsB;AACxB,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAkC,CAAC,GAAG;AAC5C,UAAM,QACuB,CAAC,YAAY,SAAS,WAAK;AAExD,UAAM,SAAS,OAAO,UACH,mBAAmB,QACnB;AAEnB,WAAO,CAAC,QAAQ,OAAO,IAAI,SAAS,OAAO;;AAGtC,QAAM,oBAAoB,GAAG,CAAC;;;AC7ErC;;;;;;;;;;;;;;;;AAoCM,iBACF,OAAoB,QAAkB;AACxC,QAAI,UAAU;AACZ,YAAM,QAAO,MAAM,OAAO;AAC1B,YAAM,QAAO,MAAM,OAAO;AAC1B,aAAO,QAAQ,OAAM;;AAEvB,UAAM,SAAS,oBAAoB,cAAc,QAAQ;AACzD,WAAO,OAAO,WAAW,QAAQ,OAAO;;;;AC5C1C;;;;;;;;;;;;;;;;AAqCM,iBACF,OAAoB,QAAkB;AACxC,QAAI,UAAU;AACZ,YAAM,QAAO,MAAK,OAAO;AACzB,YAAM,QAAO,MAAM,OAAO;AAC1B,aAAO,QAAQ,OAAM;;AAEvB,UAAM,SAAS,mBAAmB,cAAc,QAAQ;AACxD,WAAO,OAAO,WAAW,QAAQ,OAAO;;;;AC7C1C;;;;;;;;;;;;;;;;AA4DA,iBACI,GAAsB,OAAwB,MAAM,WAAW;AACjE,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,OAAO,eAAe,MAAM,GAAG;AACrC,UAAM,SAAS,0BAA0B,GAAG,OAAO;AACnD,UAAM,cAAc,OAAO;AAC3B,UAAM,aAAa,cAAc;AAIjC,UAAM,WAAW,WAAW,CAAC;AAC3B,YAAM,mBAAmB,OAAO;AAEhC,YAAM,UAAU,iBAAiB,UAAU,GAAE,QACzC,KACA,KAAK,IAAG,iBAAiB;AAC7B,YAAM,MAAM,IAAI,SAAS;AACzB,YAAM,QAAQ,KAAI,KAAK,MAAM;AAE7B,YAAM,WAAW,CAAC;AAChB,cAAM,kBAAkB,GAAE,MAAM;AAChC,aAAK,QAAQ;AACX,0BAAgB,SAAQ;;AAE1B,cAAM,aAAa,QAAQ,IAAI;AAC/B,cAAM,OAAO,IAAI,IAAI,YAAY,MAAK,GAAE,OAAO,aAAa;AAC5D,eAAO;;AAET,aAAO,CAAC,OAAO;;AAGjB,WAAO,SAAS;;AAGX,QAAM,OAAO,GAAG,CAAC;;;ACpCxB,gBACI,GAAsB,OAAwB,MAAM,WAAW;AACjE,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UACF,CAAC,UAAwB;AACvB,YAAM,WAAW,eAAe,MAAM,GAAG;AACzC,UAAI,OAAO;AACX,YAAM,eAAe,AAAU,mBAAmB,MAAM,GAAG;AAC3D,UAAI,WAAW;AACf,UAAI,gBAAgB;AAClB,mBAAW,UAAU,IAAI;AACzB,eAAO,AAAU,iBAAiB,KAAK,QAAQ,GAAG;;AAGpD,YAAM,IAAI,SAAQ,IAAI,UAAU;AAChC,UAAI,gBAAgB;AAClB,iBAAS;;AAGX,UAAI,MAAM;AACV,UAAI;AACF,cAAM,gBACF,AAAU,qBAAqB,IAAI,OAAO;AAC9C,cAAM,QAAQ,GAAG;AACjB,UAAE;;AAGJ,WAAK,CAAC,IAAI;AACV,aAAO;;AAGb,UAAM,SAAoB,CAAC,GAAG;AAC9B,UAAM,QAAkB,CAAC,MAAM;AAE/B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAqB,KAC9D;;AAGN,QAAM,MAAM,GAAG,CAAC;;;ACnGvB;;;;;;;;;;;;;;;;AAuDA,oBACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,QAAI,GAAG,UAAU;AACf,WAAK,KAAK,IAAI;AACd,WAAK,KAAK,IAAI;;AAGhB,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,QAAQ,IAAI;AAChC,WAAK,CAAC,IAAI;AACV,aAAO;;AAET,UAAM,SAAwB,CAAC,GAAG,IAAI,GAAG;AAEzC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,UAAU,GAAG,CAAC;;;AChF3B;;;;;;;;;;;;;;;;AAsDA,gBAAgC,GAAsB;AACpD,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,IAAI,IAAI;AAC5B,WAAK,CAAC,IAAI;AACV,aAAO;;AAET,UAAM,SAAoB,CAAC,GAAG,IAAI,GAAG;AAErC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,MAAM,GAAG,CAAC;;;ACvEvB;;;;;;;;;;;;;;;;AAkCA,mBAAmC;AACjC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,QAAQ;AACd,UAAM,eAAe,CAAC;AACtB,UAAM,gBAA2B;AACjC,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,WAAK,CAAC;AACN,aAAO,SAAQ,OAAO;OACrB,CAAC,GAAG,KAAK,MAAiB,UAAU,OAAO,cAAc;;AAGvD,QAAM,SAAS,GAAG,CAAC;;;AC7C1B;;;;;;;;;;;;;;;;AA2CA,oBACI,GAAsB,OAAwB,MAC9C,WAAW;AACb,QAAI,gBAAgB,GAAG,KAAK;AAC5B,UAAM,OAAO,eAAe,MAAM,EAAE;AACpC,UAAM,QAAQ,KAAK,GAAG,MAAM;AAC5B,QAAI,gBAAgB,MAAM;AAC1B,QAAI,CAAC;AACH,sBAAgB,qBAAqB,MAAM,OAAO;;AAEpD,UAAM,aACF,OAAO,IAAI,KAAK,GAAG,YAAY,QAAQ,OAAO;AAClD,UAAM,WAAW,KAAK,YAAY,MAAM;AACxC,WAAO,CAAC,MAAM,OAAO;;AAGhB,QAAM,UAAU,GAAG,CAAC;;;AChB3B,yBACI,WAA2B,MAC3B,GACA;AACF,UAAM,QAAQ,gBAAgB,MAAM,QAAQ;AAC5C,UAAM,KAAK,qBAAqB,GAAG,KAAK;AACxC,UAAM,KAAK,qBAAqB,GAAG,KAAK;AAExC,QAAI,QAAQ;AACZ,UAAM,YAAY;AAClB,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ;AACpC,YAAM,SAAS,UAAU,GAAG,OAAO,GAAG,IAAI,GAAG;AAC7C,gBAAU,KAAK,OAAO;AACtB,gBAAU,KAAK,OAAO;AACtB,cAAQ,OAAO;;AAEjB,UAAM,OAAmB;AACzB,UAAM,OAAmB;AACzB,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,WAAK,KAAK,UAAU;AACpB,WAAK,KAAK,UAAU,IAAI;;AAE1B,WAAO,CAAC,MAAM;;AAET,QAAM,eAAe,GAAG,CAAC;;;ACnEhC;;;;;;;;;;;;;;;;AA2CA,wBACI,QAAsC,YAAoB,MAC1D,aAAa;AACf,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAClD,UAAM,cAAc,QAAQ;AAC5B,UAAM,WAAW,QAAQ;AACzB,QAAI,cAAc;AAChB,YAAM,IAAI,MACN,+DACG;;AAET,QAAI,WAAW;AACb,YAAM,IAAI,MAAM,gDAAgD;;AAElE,WAAO,QAAQ,KAAK;AACpB,UAAM,WACF,aAAa,IAAI,QAAQ,SAAS,CAAC,GAAG,OAAO;AACjD,UAAM,MAAM,OAAO,cACf,cAAW,SAAQ,YAAY,UAAU,YAAY,YAAY,OACjE,CAAC;AAEL,WAAO,aAAa,IAAI,QAAQ,KAAK,CAAC,IAAI,SAAqB;;AAG1D,QAAM,cAAc,GAAG,CAAC;;;ACnE/B;;;;;;;;;;;;;;;;AAwCA,qBACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,UAA+B,CAAC,aAAY,SAAQ,SAAS,IAAI;AAEvE,UAAM,SAAyB,CAAC,GAAG,IAAI,GAAG;AAE1C,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,WAAW,GAAG,CAAC;;;ACzD5B;;;;;;;;;;;;;;;;AA8CA,mBACI,SAA4B,OAAe,UAAU,GACrD,WAAW;AACb,QAAI,QAAQ;AACV,YAAM,IAAI,MAAM,iDAAiD;;AAEnE,UAAM,WAAW,gBAAgB,SAAS,WAAW,UAAU;AAC/D,UAAM,WAAW,CAAC,GAAG,SAAS,OAAO;AAErC,UAAM,UAA+B,CAAC,UAAS;AAC7C,WAAK,CAAC;AACN,aAAO,QACH,SAAQ,OACJ,QAAQ,UAAU,CAAC,SAAS,QAAQ,OAAO,SAAS,WACxD;;AAGN,UAAM,SAAuB,CAAC,SAAS;AACvC,UAAM,QAAqB,CAAC,OAAO,SAAS;AAE5C,WAAO,OAAO,cACV,SAAS,QAAqC,MAAiB,QAC/D;;AAGC,QAAM,SAAS,GAAG,CAAC;;;ACvE1B;;;;;;;;;;;;;;;;AAyCA,qBAAqC;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UAA+B,CAAC,UAAS;AAC7C,UAAI,GAAG,UAAU;AACf,cAAM,IAAI,SAAS,KAAK;AACxB,cAAM,IAAI,UAAU,KAAK;AACzB,eAAO,QAAQ,GAAG;;AAGpB,aAAO,SAAQ,SAAS;;AAG1B,UAAM,SAAyB,CAAC,GAAG;AACnC,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,WAAW,GAAG,CAAC;;;ACtB5B,yBACI,IAAyB;AAC3B,UAAM,MAAM,gBAAgB,IAAI,MAAM;AACtC,UAAM,MAAM,gBAAgB,IAAI,MAAM;AAEtC,IAAK,OACD,IAAI,SAAS,KAAK,IAAI,SAAS,GAC/B,MAAM,+DACC,IAAI,YAAY,IAAI;AAE/B,UAAM,OAAO,QAAQ,KAAK,CAAC,IAAI;AAC/B,UAAM,OAAO,QAAQ,KAAK,CAAC,GAAG;AAC9B,WAAO,OAAO,MAAM;;AAGf,QAAM,eAAe,GAAG,CAAC;;;ACrDhC;;;;;;;;;;;;;;;;AAkDA,gBACI,GAAiB,UAAmC,gBAAgB;AACtE,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,QAAI,GAAG,SAAS;AACd,YAAM,IAAI,MAAM;;AAElB,UAAM,UAA0B,CAAC,UAAS;AACxC,WAAK,CAAC;AACN,aAAO,SAAQ,IAAI,IAAI,UAAU;;AAGnC,UAAM,QAAoB,CAAC,UAAU;AACrC,UAAM,SAAsB,CAAC,GAAG;AAChC,WAAO,OAAO,cACV,SAAS,QAAqC,MAAiB,OAC/D;;AAGC,QAAM,MAAM,GAAG,CAAC;;;AC3CvB,kBACI,GAAwB,UACxB,gBAAgB;AAClB,WACI,SAAS,WAAW,GACpB,MAAM;AACV,WAAO,IAAI,GAAG,CAAC,WAAW;;AAGrB,QAAM,QAAQ,GAAG,CAAC;;;ACTzB,kBACI,GAAwB,UACxB,gBAAgB;AAClB,WACI,SAAS,WAAW,KAAK,SAAS,GAAG,WAAW,KAC5C,SAAS,GAAG,WAAW,GAC3B,MAAM;AACV,WAAO,IAAI,GAAG,UAAU;;AAGnB,QAAM,QAAQ,GAAG,CAAC;;;ACVzB,kBACI,GACA,UACA,gBAAgB;AAClB,WACI,SAAS,WAAW,KAAK,SAAS,GAAG,WAAW,KAC5C,SAAS,GAAG,WAAW,KAAK,SAAS,GAAG,WAAW,GACvD,MAAM;AACV,WAAO,IAAI,GAAG,UAAU;;AAGnB,QAAM,QAAQ,GAAG,CAAC;;;ACXzB,kBACI,GACA,UAIA,gBAAgB;AAClB,WACI,SAAS,WAAW,KAAK,SAAS,GAAG,WAAW,KAC5C,SAAS,GAAG,WAAW,KAAK,SAAS,GAAG,WAAW,KACnD,SAAS,GAAG,WAAW,GAC3B,MAAM;AACV,WAAO,IAAI,GAAG,UAAU;;AAGnB,QAAM,QAAQ,GAAG,CAAC;;;ACxCzB;;;;;;;;;;;;;;;;AA2EA,2BACI,GAAiB,YAAsB;AACzC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,IAAK,OACD,GAAG,QAAQ,IAAI,WAAW,QAC1B,MAAM,cAAc,GAAG,sCACnB,WAAW;AAEnB,IAAK,OACD,SAAS,WAAW,WAAW,QAC/B,MAAM,qBACF,SAAS,wCAAwC,WAAW;AAEpE,IAAK,OACD,GAAG,MAAM,OACL,CAAC,GAAG,GAAG;AACL,UAAI,IAAI,KAAK,KAAK,WAAW;AAC3B,eAAO,KACD,KAAI,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,MACtC,WAAW,IAAI,OACnB;;AAEP,aAAO;OAET,OACJ,MAAM,4BAA4B,GAAG,MAAM,MAAM,oBAC7C,SAAS,+CACT,WAAW;AAEnB,UAAM,UAA0B,cAC5B,SAAQ,eAAe,IAAI,YAAY;AAE3C,UAAM,SAA+B,CAAC,GAAG;AACzC,UAAM,QAA6B,CAAC,YAAY;AAEhD,WAAO,OAAO,cACV,SAAS,QAAgC,MACzC,gBAAgB;;AAGf,QAAM,iBAAiB,GAAG,CAAC;;;ACpHlC;;;;;;;;;;;;;;;;AAuDA,iBACI,OAAqB,aACrB,aAA0B,MAC1B,WAAqC;AACvC,QAAI,aAAa;AACf,kBAAY,CAAC,GAAG;;AAElB,QAAI,WAAW;AACb,gBAAU;;AAEZ,QAAI,SAAQ;AACV,aAAM;;AAGR,UAAM,KAAK,gBAAgB,OAAO,KAAK;AACvC,QAAI,MAAM;AACV,QAAI,eAAe;AAEnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAG3D,IAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MAAM,qEACa,0BAA0B;AAEjD,UAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,aAAa,SAAS,WAAW;AAChD,UAAM,WACF,CAAC,SAAS,gBAAgB,SAAS;AAOvC,QAAI;AACJ,QAAI,SAAQ;AACV,oBAAc,6BACV,CAAC,SAAS,cAAc,SAAS,cAAc;;AAEnD,oBAAc,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG;;AAG7B,UAAM,gBAAgB,SAAS,OAAO,KAAK,SAAS,OAAO;AAC3D,UAAM,CAAC,iBAAiB,iBAAiB,6BACrC,CAAC,SAAS,UAAU,SAAS,UAAU,UAAU;AACrD,UAAM,eAAe,gBAAgB,OAAM;AAC3C,UAAM,aACF,gBAAgB,MAAM,eAAe,KAAK,UAAU;AAExD,UAAM,YAAY,gBAAgB,QAC9B,MAAM,QAAQ,YAAY,aAAa,SAAS,gBAChD,MAAM,QAAQ,YAAY,aAAa,SAAS;AACpD,UAAM,IAAI;AAEV,UAAM,MAAM,gBAAgB,IAAI,eAAe,GAAG,UAAU;AAE5D,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAG7D,WAAO;;AAMT,wCACI,YAA8B,YAC9B;AACF,UAAM,WAAW,YAAY,IAAI,OAAK,EAAE;AACxC,UAAM,aAAa,YAAY,IAAI,OAAK,EAAE;AAC1C,UAAM,iBAAiB,WAAW,OAAO,UAAU;AACnD,UAAM,cAAc,WAAW,IAAI,CAAC,GAAG,MAAO,KAAI,eAAe,KAAK,KAAK;AAC3E,UAAM,SAAS,WAAW,IAAI,CAAC,GAAG,MAAM,IAAI,YAAY;AACxD,UAAM,WAAW,WAAW,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,OAAO;AAC/D,UAAM,QAAQ,WAAW,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,YAAY;AACvD,WAAO,CAAC,UAAU;;AAMpB,wCACI,aAA+B;AAGjC,UAAM,qBAAqB,YAAY,IAAI,CAAC,GAAG;AAC7C,aAAO,IAAK,KAAI,KAAM,UAAS,KAAK;;AAEtC,UAAM,gBAAgB,mBAAmB,IAAI,OAAK,IAAI;AAItD,UAAM,gBAAgB,cAAc,IAAI,OAAK,KAAK,MAAM,IAAI;AAC5D,UAAM,cAAc,cAAc,IAAI,CAAC,GAAG,MAAM,IAAI,cAAc;AAClE,WAAO,cAAc,IAAI,CAAC,GAAG;AAC3B,aAAO,CAAC,cAAc,IAAI,YAAY;;;AAInC,QAAM,OAAO,GAAG,CAAC;;;AC/JxB;;;;;;;;;;;;;;;;AAqDA,gBACI,MAAyB;AAC3B,QAAI,QAAQ,gBAAgB,MAAM,QAAQ;AAC1C,QAAI,OAAO,gBAAgB,OAAK,OAAO;AACvC,KAAC,OAAO,QAAQ,eAAe,OAAO;AAEtC,UAAM,SAAoB,CAAC,GAAG,OAAO,GAAG;AACxC,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,IAAI,SAAQ,IAAI,OAAO;AAC7B,WAAK,CAAC,OAAO,MAAM;AACnB,aAAO;;AAGT,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,MAAM,GAAG,CAAC;;;ACvEvB;;;;;;;;;;;;;;;;AAyCA,kBAAkC,GAAiB;AACjD,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAE/C,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,MAAM,IAAI;AAC9B,WAAK,CAAC,IAAI;AACV,aAAO;;AAGT,UAAM,SAAsB,CAAC,GAAG,IAAI,OAAO;AAC3C,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB;;AAIhE,QAAM,QAAQ,GAAG,CAAC;;;ACzDzB;;;;;;;;;;;;;;;;AA+BM,iBAAkC,GAAM,UAAU;AACtD,YAAQ,IAAI,EAAE,SAAS;;;;AChCzB;;;;;;;;;;;;;;;;AA6DA,iBACI,GAAsB,OAAwB,MAAM,WAAW;AACjE,QAAI,KAAK,gBAAgB,GAAG,KAAK;AAEjC,UAAM,UAA+B,CAAC;AACpC,UAAI,GAAG,UAAU;AACf,aAAK,KAAK,IAAI;;AAEhB,YAAM,OAAO,eAAe,MAAM,GAAG;AAErC,YAAM,cAAc,mBAAmB,MAAM,GAAG;AAChD,UAAI,gBAAgB;AACpB,UAAI,YAAY;AAChB,UAAI,eAAe;AACjB,oBAAY,UAAU,IAAI;AAC1B,wBAAgB,iBAAiB,cAAc,QAAQ,GAAG;;AAE5D,UAAI,QAAQ,SAAQ,KAAK,WAAW;AACpC,UAAI;AACF,cAAM,WAAW,qBAAqB,MAAM,OAAO;AACnD,gBAAQ,QAAQ,OAAO;;AAGzB,aAAO;;AAGT,UAAM,SAAqB,CAAC,GAAG;AAC/B,UAAM,QAAmB,CAAC,MAAM;AAEhC,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,MAC1D;;AAGN,QAAM,OAAO,GAAG,CAAC;;;AC/FxB;;;;;;;;;;;;;;;;AAiCA,iBACI,OAAoB,cACpB;AACF,UAAM,OAAO,cAAc;AAC3B,QAAI,SAAS;AACb,QAAI,SAAS,QAAQ,UAAU;AAC7B,eAAS,IAAI,aAAa;eACjB,UAAU;AACnB,eAAS,IAAI,WAAW;eACf,UAAU;AACnB,eAAS,IAAI,WAAW;;AAExB,YAAM,IAAI,MAAM,qBAAqB;;AAEvC,aAAS,IAAI,GAAG,IAAI,MAAM;AACxB,aAAO,KAAK;;AAEd,WAAO,OAAO,WAAW,QAAQ,OAAO;;AAGnC,QAAM,OAAO,GAAG,CAAC;;;ACrDxB;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,QAAM,uBAAuB;AACtB,QAAM,uBAAuB;AAE9B,6BACF,QACA,UAAoD;AACtD,QAAI,YAAW;AACb,iBAAU;;AAEZ,WAAO,sBACH,QAAQ,UAAU,CAAC,GAAG,MAAM,SAAS,GAAa,GAAa;;AAG/D;AACJ,WAAO,OAAO,QAAQ,qBAAqB,KAAK,uBACA;;AAGlD,iCACI,QAAoB,UACpB;AACF,QAAI,iBAAiB;AACrB,QAAI,aAAa,WAAW,aAAa;AACvC,uBAAiB;;AAEnB,QAAI,aAAa,WAAW,aAAa;AACvC,uBAAiB;;AAEnB,QAAI;AACF,YAAM,QAAQ,OAAO,YAAY;AACjC,YAAM,QAAQ,SAAS,YAAY;AAEnC,UAAI,UAAU;AACZ,cAAM,IAAI,MACN,yCAAyC,oBAC5B;;;AAIrB,QAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ;AACzC,YAAM,cAAc,WAAW;AAC/B,YAAM,gBAAgB,WAAW;AACjC,UAAI,CAAC,YAAY,aAAa;AAC5B,cAAM,IAAI,MACN,0CACY,4BAA4B;;;AAIhD,UAAM,aACF,aAAa,UAAU,SAAS,QAAQ;AAC5C,UAAM,eAAe,aAAa,YAC9B,WACA,QAAQ;AAEZ,QAAI,WAAW,WAAW,aAAa;AACrC,YAAM,IAAI,MACN,yCAAyC,WAAW,uBACvC,aAAa;YACb;YACA;;AAEnB,aAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,EAAE;AACzC,YAAM,IAAI,WAAW;AACrB,YAAM,IAAI,aAAa;AAEvB,UAAI,CAAC,UAAU,GAAG;AAChB,cAAM,IAAI,MACN,yBAAyB,QAAQ,eAAe,QAAQ;YAC3C;YACA;;;;AAUjB,+BAA8B,IAAuB;AACzD,SAAK,KAAK,MAAM,KAAK,QAAQ,MAAM;;AAG/B,6BAA4B,QAAoB;AACpD,UAAM,QAAM,OAAO,aAAa,YAAY,OAAO,aAAa,YACxD,OAAO,aAAa,YACxB,CAAC,YACD;AACJ,QAAI,SAAS,WAAW,SAAU,OAAoB,OAClD,SAAS,aAAa,SAAU,SAAsB;AAExD,aAAO,sBAAsB,QAAQ,OAAK,CAAC,GAAG,MAAM,KAAK;;AAE3D,WAAO,sBACH,QAAQ,UAAU,CAAC,GAAG,MAAM,SAAS,GAAa,GAAa;;AAG/D,8BAA6B,GAAW,GAAW;AACvD,QAAI,YAAW;AACb,iBAAU;;AAEZ,QAAI,CAAC,SAAS,GAAG,GAAG;AAClB,YAAM,IAAI,MAAM,8BAA8B,mBAAmB;;;AAIrE,oBAAkB,GAAW,GAAW;AACtC,QAAI,CAAC,SAAS,MAAM,CAAC,SAAS;AAC5B,aAAO;;AAET,QAAI,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,IAAI,KAAK;AAC5C,aAAO;;AAET,WAAO;;AAGH,+BACF,QAA6B,KAAa;AAC5C,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ;AACjC,UAAI,OAAO,KAAK,OAAO,OAAO,KAAK;AACjC,cAAM,IAAI,MACN,sBAAsB,OAAO,WAAW,cAAc;;;;AAK1D,mCACF,QAAqB;AAGvB,WAAO,IAAI,aAAa,SAAS,QAAQ,IAAI,aAAa;;;;ACxI5D,qBAA4B;AAjB5B;;;;;;;;;;;;;;;;;IAmDE,YACI,OAAc,cAAsB,OACpC,WAAqB;AACvB,WAAK,OAAO;AACZ,WAAK,SAAS;AACd,WAAK,QAAQ;AACb,WAAK,UAAU;AACf,WAAK,YAAY;AACjB,UAAI,KAAK;AACP,aAAK,QAAQ,KAAK,OAAO,KAAK,SAAS;AACvC,aAAK,QAAQ,KAAK,OAAO,KAAK,SAAS;;AAEzC,YAAM,YAAY,OAAO,OAAO,KAAK;AACrC,WAAK,SAAS,AAAW,gBAAK,UAAU;;IAInC;AACL,UAAI,CAAC,MAAM,KAAK;AACd,cAAM,QAAQ,KAAK;AACnB,aAAK,UAAU;AACf,eAAO;;AAGT,UAAI,SAAiB;AACrB,UAAI,UAAU;AACd,aAAO,CAAC;AACN,YAAI,IAAY,IAAY;AAC5B;AACE,eAAK,IAAI,KAAK,WAAW;AACzB,eAAK,IAAI,KAAK,WAAW;AACzB,cAAI,KAAK,KAAK,KAAK;iBACZ,KAAK,KAAK,MAAM;AAEzB,cAAM,QAAM,KAAK,KAAK,KAAO,KAAK,IAAI,KAAK;AAC3C,kBAAU,KAAK,OAAO,KAAK,SAAS,KAAK;AACzC,kBAAU,KAAK,OAAO,KAAK,SAAS,KAAK;AAEzC,YAAI,CAAC,KAAK,aAAa,KAAK,iBAAiB;AAC3C,oBAAU;;;AAId,UAAI,CAAC,KAAK,aAAa,KAAK,iBAAiB;AAC3C,aAAK,UAAU,KAAK,aAAa;;AAEnC,aAAO,KAAK,aAAa;;IAInB,aAAa;AACnB,UAAI,KAAK,SAAS,QAAQ,KAAK,UAAU;AACvC,eAAO;;AAET,aAAO,KAAK,MAAM;;IAIZ,iBAAiB;AACvB,aAAO,SAAS,KAAK,SAAS,SAAS,KAAK;;;AA9GhD;IA6HE,YACI,OAAe,MAAc,OAC7B;AACF,WAAK,QAAQ;AACb,WAAK,OAAO,IAAI;AAChB,WAAK,QAAQ;AAEb,YAAM,YAAY,OAAO,OAAO,KAAK;AACrC,WAAK,QAAQ,AAAW,gBAAK,UAAU;AACvC,WAAK,QAAQ,IAAI,YAAY,GAAG,GAAG,OAAO,OAAO,KAAK;AAEtD,UAAI,QAAQ;AACV,aAAK,IAAI,QAAS,IAAI;;AAEtB,aAAK,IAAI,QAAS,IAAI;;AAExB,WAAK,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK;;IAI3B;AACL,UAAI,IAAY,IAAY,IAAY,GAAW,GAAW;AAC9D,aAAO;AACL;AACE,cAAI,KAAK,MAAM;AACf,cAAI,IAAK,KAAK,IAAI;iBACX,KAAK;AACd,aAAK,IAAI;AACT,aAAK,IAAI;AACT,aAAK,IAAK,QAAQ,KAAK;AACvB,aAAM,MAAM,KAAO,KAAK,IAAK,KAAI,IAAI,KAAK,IAAI;AAC9C,YAAI,KAAK;AACT,YAAI,IAAI,MAAM,KAAK,IAAI,KAAK;AAC1B;;;AAGJ,UAAK,IAAI,KAAK,OAAQ,KAAK,IAAI;AAC/B,UAAI,KAAK,QAAQ;AACf,aAAK,KAAK,IAAI,KAAK,SAAS,IAAI,KAAK;;AAEvC,aAAO,KAAK,aAAa;;IAGnB,aAAa;AACnB,UAAI,KAAK,UAAU;AACjB,eAAO;;AAET,aAAO,KAAK,MAAM;;;AA5KtB;IAsLE,YACI,OAAM,GAAG,OAAM,GAAG,OAClB;AAmBI,WAAA,iBAAiB,MACpB,KAAK,SAAS,QAAQ,KAAK,UAAU;AAnBxC,WAAK,MAAM;AACX,WAAK,QAAQ,OAAM;AACnB,WAAK,QAAQ;AACb,UAAI,QAAQ;AACV,eAAO,KAAK;;AAEd,UAAI,OAAO,SAAS;AAClB,eAAO,KAAK;;AAGd,UAAI,CAAC,KAAK,oBAAoB,KAAK,SAAS;AAC1C,cAAM,IAAI,MACN,0BAA0B,UAAS;;AAEzC,WAAK,SAAS,AAAW,gBAAK;;IAOxB,aAAa;AACnB,UAAI,KAAK;AACP,eAAO;;AAET,aAAO,KAAK,MAAM;;IAGpB;AACE,aAAO,KAAK,aAAa,KAAK,MAAM,KAAK,QAAQ,KAAK;;;;;ACtN1D;;;;;;;;;;;;;;;;AAuCA,wBACI,OAAoB,OAAe,OAAO,GAC1C,QAA2B,WAAW;AACxC,QAAI,QAAQ;AACV,aAAO;;AAET,QAAI,SAAS;AACX,cAAQ;;AAEV,QAAI,UAAU,aAAa,UAAU;AACnC,YAAM,IAAI,MAAM,yBAAyB;;AAE3C,UAAM,SAAS,IAAI,UAAU,OAAO,MAAM,OAAO;AACjD,UAAM,MAAM,OAAO,OAAO;AAC1B,aAAS,IAAI,GAAG,IAAI,IAAI,OAAO,QAAQ;AACrC,UAAI,OAAO,KAAK,OAAO;;AAEzB,WAAO,IAAI;;AAGN,QAAM,cAAc,GAAG,CAAC;;;AC3D/B;;;;;;;;;;;;;;;;AAsCA,yBACI,OAAoB,QAAO,GAAG,SAAS,GAAG,OAC1C;AACF,QAAI,SAAS,QAAS,UAAuB;AAC3C,YAAM,IAAI,MAAM,yBAAyB;;AAE3C,UAAM,YACF,IAAI,YAAY,OAAM,QAAQ,OAAO,OAAuB;AAChE,UAAM,MAAM,OAAO,OAAO;AAC1B,aAAS,IAAI,GAAG,IAAI,IAAI,OAAO,QAAQ;AACrC,UAAI,OAAO,KAAK,UAAU;;AAE5B,WAAO,IAAI;;AAGN,QAAM,eAAe,GAAG,CAAC;;;ACrDhC;;;;;;;;;;;;;;;;AA2CA,0BACI,OAAoB,SAAS,GAAG,SAAS,GAAG,QAAkB,WAC9D;AACF,UAAM,MAAM,OAAO,OAAO;AAC1B,UAAM,SAAS,IAAI,cAAc,QAAQ,QAAQ,MAAM;AACvD,aAAS,IAAI,GAAG,IAAI,IAAI,OAAO,QAAQ;AACrC,UAAI,OAAO,KAAK,OAAO;;AAEzB,WAAO,IAAI;;AAGN,QAAM,gBAAgB,GAAG,CAAC;;;ACtDjC;;;;;;;;;;;;;;;;AAuCM,oBAAmB,QAAsB;AAC7C,kBAAc;AACd,UAAM,gBAAgB,WAAW,QAAQ;AACzC,QAAI,cAAc,WAAW;AAC3B,YAAM,IAAI,MAAM;;AAElB,UAAM,QAAkB;AACxB,WAAO,WAAW,QAAQ,OAAO,eAAe;;;;AC9ClD;;;;;;;;;;;;;;;;AA4CM,iBACF,OAAe,MAAc,QAAO,GACpC,QAA2B;AAC7B,QAAI,UAAS;AACX,YAAM,IAAI,MAAM;;AAGlB,UAAM,UAA+B;AACnC,YAAM,gBAAgB,UAAU;AAChC,YAAM,8BAA8B,QAAQ,QAAQ,QAAO;AAC3D,YAAM,8BAA8B,OAAO,SAAS,QAAO;AAE3D,UAAI,iBAAiB,+BACjB;AACF,eAAO,MAAM,CAAC,IAAI;;AAGpB,YAAM,cAAc,KAAK,IAAI,KAAK,KAAM,QAAO,SAAS;AACxD,YAAM,SAAS,oBAAoB,aAAa;AAEhD,UAAI,OAAO,SAAS,UAAS;AAG3B,gBAAO;;AAGT,aAAO,KAAK;AACZ,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ;AACjC,eAAO,KAAK,OAAO,IAAI,KAAK;;AAG9B,aAAO,SAAS,QAAQ;;AAG1B,UAAM,QAAoB,CAAC,OAAO,MAAM,aAAM;AAE9C,WAAO,OAAO,cACH,SAAS,IAAiB,MAAiB,OAC3C;;;;AClFb;;;;;;;;;;;;;;;;AAqCA,uBAAuC;AACrC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAA2B,CAAC,GAAG;AACrC,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,WAAW;AAC/B,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,aAAa,GAAG,CAAC;;;AC/C9B;;;;;;;;;;;;;;;;AAuCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UAA+B,CAAC,UAAS;AAC7C,WAAK,CAAC;AAEN,UAAI,GAAG,UAAU;AACf,eAAO,KAAK,IAAI;;AAGlB,aAAO,SAAQ,KAAK;;AAGtB,UAAM,SAAqB,CAAC,GAAG;AAE/B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB;;AAIhE,QAAM,OAAO,GAAG,CAAC;;;AC3DxB;;;;;;;;;;;;;;;;AAuCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UAA+B,CAAC,UAAS;AAC7C,WAAK,CAAC;AAEN,UAAI,GAAG,UAAU;AACf,eAAO,KAAK,IAAI;;AAGlB,aAAO,SAAQ,MAAM;;AAGvB,UAAM,SAAsB,CAAC,GAAG;AAEhC,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB;;AAIhE,QAAM,QAAQ,GAAG,CAAC;;;AC3DzB;;;;;;;;;;;;;;;;AA6BA,sBAAoB;AAClB,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACD,GAAG,SAAS,GACZ,MAAM,qDAAqD,GAAG;AAClE,WAAO,QAAQ,IAAI;;AAGd,QAAM,YAAY,GAAG,CAAC;;;ACrC7B;;;;;;;;;;;;;;;;AA+BA,sBAAoB,GAAwB;AAC1C,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACD,GAAG,SAAS,GACZ,MAAM,qDAAqD,GAAG;AAClE,WAAO,QAAQ,IAAI;;AAGd,QAAM,YAAY,GAAG,CAAC;;;ACvC7B;;;;;;;;;;;;;;;;AA+BA,sBAAoB,GAAwB;AAC1C,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACD,GAAG,SAAS,GACZ,MAAM,qDAAqD,GAAG;AAClE,WAAO,QAAQ,IAAI;;AAGd,QAAM,YAAY,GAAG,CAAC;;;ACvC7B;;;;;;;;;;;;;;;;AA+BA,sBAAoB,GAAwB;AAC1C,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACD,GAAG,SAAS,GACZ,MAAM,qDAAqD,GAAG;AAClE,WAAO,QAAQ,IAAI;;AAGd,QAAM,YAAY,GAAG,CAAC;;;ACdvB,4BACF,GAAsB,iBACtB,OAAO;AACT,QAAI,aAAa;AACjB,QAAI,OAAQ,oBAAqB;AAC/B,aACI,EAAE,MAAM,QAAQ,oBAAoB,GACpC,MAAM;AACV,mBACI,IAAI,MAAM,iBAAiB,KAAK,EAAE,MAAM,QAAQ;;AAEpD,YAAM,YAAY,gBAAgB,OAAO,CAAC,OAAO;AAC/C,YAAI,UAAU;AACZ,mBAAS;;AAEX,eAAO;SACN;AACH,aACI,aAAa,GACb,MAAM;AACV,YAAM,WAAW,gBAAgB,QAAQ;AAGzC,UAAI,aAAa;AACf,cAAM,QAAQ,gBAAgB,OAAO,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI;AAC/D,wBAAgB,YAAY,EAAE,MAAM,QAAQ;;AAE9C,aACI,EAAE,MAAM,UAAU,gBAAgB,OAAO,CAAC,GAAG,MAAM,IAAI,IACvD,MAAM;AACV,mBAAa;;AAGf,WAAO;;;;AC1DT;;;;;;;;;;;;;;;;AA8DA,kBACI,GAAsB,iBAAkC,OAAO;AACjE,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,QAAQ,eAAe,MAAM,GAAG,OAAO;AAC7C,YAAM,aAAa,iBAAiB,IAAI,iBAAiB;AACzD,aAAO,SAAQ,MAAM,IAAI,YAAY;;AAGvC,UAAM,SAAuB,CAAC,GAAG;AACjC,UAAM,OAAoB,CAAC,iBAAiB;AAE5C,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB,QAC1D;;AAGN,QAAM,QAAQ,GAAG,CAAC;;;AChFzB;;;;;;;;;;;;;;;;AAgDA,iBAAe,OAAe;AAC5B,WACI,MAAM,UAAU,WAChB,MAAM,mDAAmD,MAAM;AAEnE,QAAI,qBAAqB,MAAM,MAAM,MAAM,MAAM,SAAS;AAC1D,UAAM,QAAQ,MAAM,OAAO;AAE3B,QAAI;AACJ,QAAI,aAAa,QAAQ,YAAY;AAEnC,YAAM,QAAQ,MAAM,MAAM,IAAI,OAAK;AACnC,YAAM,OAAO,MAAM,MAAM,IAAI,OAAK;AAClC,WAAK,MAAM,MAAM,SAAS,KAAK;AAC/B,sBAAgB,MAAM,OAAO,OAAO;AACpC,2BAAqB;eACZ,aAAa,QAAQ,YAAY;AAE1C,YAAM,aAAa,MAAM,MAAM,IAAI,OAAK;AACxC,iBAAW,MAAM,MAAM,SAAS,KAAK,YAAY;AACjD,sBAAgB,OAAO,CAAC,OAAO,MAAM,cAAc,MAAM,MAAM,SAAS;AACxE,2BAAqB;;AAErB,sBAAgB;;AAIlB,UAAM,aAAa,UAAU;AAC7B,UAAM,eACF,QAAQ,QAAQ,eAAe,aAAa,CAAC,OAAO;AAExD,UAAM,MAAM,IAAI;AAGhB,UAAM,OAAO,KAAK,MAAM,qBAAqB,KAAK;AAClD,UAAM,aAAa,KAAK;AACxB,UAAM,aAAa,KAAK;AACxB,UAAM,uBAAuB,MACzB,YAAY,CAAC,MAAM,qBAAqB,OACxC,WAAW,MAAM,SAAS;AAC9B,UAAM,uBAAuB,MACzB,YAAY,CAAC,MAAM,qBAAqB,OACxC,WAAW,MAAM,SAAS;AAE9B,UAAM,cAAc,cAAc,MAAM;AACxC,gBAAY,cAAc,MAAM,SAAS,KAAK;AAE9C,WAAO,QACH,QAAQ,qBAAqB,IAAI,qBAAqB,KAAK;;AAG1D,QAAM,OAAO,GAAG,CAAC;;;ACnGxB;;;;;;;;;;;;;;;;AAsCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAAsB,CAAC,GAAG;AAEhC,WAAO,OAAO,cACV,CAAC,aAAY,SAAQ,MAAM,KAAK,QAChC,MAAiB;;AAGhB,QAAM,QAAQ,GAAG,CAAC;;;AC/CzB;;;;;;;;;;;;;;;;AAsCA,kBAAkC;AAChC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAsB,CAAC,GAAG;AAEhC,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,MAAM;AAC1B,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,QAAQ,GAAG,CAAC;;;ACjDzB;;;;;;;;;;;;;;;;AAuCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,KAAK;AACzB,WAAK,CAAC;AACN,aAAO;;AAGT,UAAM,SAAqB,CAAC,GAAG;AAE/B,WAAO,OAAO,cACH,SAAS,QAAgC,MAAiB;;AAIhE,QAAM,OAAO,GAAG,CAAC;;;ACexB,4BACI,GAAiB,iBACjB,iBAAsC,SACtC,MAAqB,WAAoC,CAAC,GAAG,IAC7D,aAA4B;AAC9B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,mBACF,gBAAgB,iBAAiB,mBAAmB;AACxD,UAAM,mBACF,gBAAgB,iBAAiB,mBAAmB;AAExD,QAAI,MAAM;AACV,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAG3D,QAAI,eAAe;AACjB,YAAM,IAAI,MACN;;AAIN,IAAK,OACD,IAAI,SAAS,GACb,MAAM,gEACM,IAAI;AACpB,IAAK,OACD,iBAAiB,SAAS,GAC1B,MAAM,2EACU,iBAAiB;AACrC,IAAK,OACD,iBAAiB,SAAS,GAC1B,MAAM,2EACU,iBAAiB;AACrC,IAAK,OACD,iBAAiB,MAAM,OAAO,GAC9B,MACI,yFACuB,iBAAiB,MAAM;AACtD,IAAK,OACD,iBAAiB,MAAM,OAAO,GAC9B,MAAM,yFAC2B,iBAAiB,MAAM;AAE5D,UAAM,aAAa,iBAAiB,MAAM;AAC1C,UAAM,oBAAoB,iBAAiB,MAAM;AACjD,IAAK,OACD,iBAAiB,MAAM,OAAO,aAAa,mBAC3C,MACI,6EACW,aAAa,8BACb,iBAAiB,MAAM;AAE1C,UAAM,YAAY,gBACd,KAAK,kBAAkB,SAAS,MAAK,YAAY;AACrD,UAAM,kBAAkB;AACxB,UAAM,MACF,OAAO,WAAW,kBAAkB,iBAAiB,SAAS;AAElE,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAE7D,WAAO;;AAGF,QAAM,kBAAkB,GAAG,CAAC;;;ACzInC;;;;;;;;;;;;;;;;AAiDA,iCACI,GAAsB;AACxB,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,IAAK,OACD,GAAG,UAAU,GAAG,OAChB,MAAM,kDACF,GAAG,iBAAiB,GAAG;AAE/B,IAAK,OACD,GAAG,SAAS,GAAG,MAAM,qCAAqC,GAAG;AAEjE,IAAK,OACD,GAAG,SAAS,GAAG,MAAM,qCAAqC,GAAG;AAEjE,UAAM,QAAQ,MAAM,GAAG;AACvB,UAAM,QAAQ,MAAM,GAAG;AACvB,UAAM,OAAO,IAAI,IAAI;AAErB,QAAI,aAAa;AACjB,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ;AAChC,UAAI,CAAC,KAAK,IAAI,MAAM;AAClB;;;AAIJ,UAAM,WAAS,IAAI,aAAa,CAAC,aAAa,GAAG;AACjD,UAAM,UAAU,IAAI,aAAa,CAAC,aAAa;AAC/C,aAAS,IAAI,GAAG,IAAI,GAAG,IAAI,MAAM,QAAQ;AACvC,UAAI,CAAC,KAAK,IAAI,MAAM;AAClB,iBAAO,OAAO,KAAK,MAAM;AACzB,gBAAQ,OAAO,KAAK;AACpB;;;AAGJ,WAAO,CAAC,SAAO,YAAY,QAAQ;;AAE9B,QAAM,iBAAiB;;;ACvF9B;;;;;;;;;;;;;;;;AAqCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAAqB,CAAC,GAAG;AAC/B,WAAO,OAAO,cACV,cAAW,SAAQ,KAAK,KAAK,QAC7B,MAAiB;;AAEhB,QAAM,OAAO,GAAG,CAAC;;;AC5CxB;;;;;;;;;;;;;;;;AAqCA,gBAAgC;AAC9B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAoB,CAAC,GAAG;AAE9B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,IAAI;AACxB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,MAAM,GAAG,CAAC;;;AChDvB;;;;;;;;;;;;;;;;AAqCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAAqB,CAAC,GAAG;AAE/B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,KAAK;AACzB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,OAAO,GAAG,CAAC;;;AC/CxB;;;;;;;;;;;;;;;;AA6BA,oBACI,GAAwB,OAAe;AACzC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACD,GAAG,SAAS,GACZ,MACI,mDAAmD,GAAG;AAC9D,WAAO,MAAM,IAAI,CAAC,QAAQ,CAAC;;AAEtB,QAAM,UAAU,GAAG,CAAC;;;ACtC3B;;;;;;;;;;;;;;;;AA6BA,oBACI,GAAwB,OACxB;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACD,GAAG,SAAS,GACZ,MACI,mDAAmD,GAAG;AAC9D,WAAO,MAAM,IAAI,OAAO;;AAEnB,QAAM,UAAU,GAAG,CAAC;;;ACvC3B;;;;;;;;;;;;;;;;AA6BA,oBACI,GAAwB,OACxB;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACD,GAAG,SAAS,GACZ,MACI,mDAAmD,GAAG;AAC9D,WAAO,MAAM,IAAI,OAAO;;AAEnB,QAAM,UAAU,GAAG,CAAC;;;ACvC3B;;;;;;;;;;;;;;;;AA6BA,oBACI,GAAwB,OACxB;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACD,GAAG,SAAS,GACZ,MACI,mDAAmD,GAAG;AAC9D,WAAO,MAAM,IAAI,OAAO;;AAEnB,QAAM,UAAU,GAAG,CAAC;;;ACvC3B;;;;;;;;;;;;;;;;AA+CA,oBAAoC,QAAsB,MAAM;AAC9D,UAAM,UAAU,gBAAgB,QAAQ,UAAU,WAAW;AAE7D,QAAI,QAAQ;AACV,YAAM,QAAQ,OAAO;;AAEvB,QAAI,QAAQ,QAAQ,OAAO;AACzB,YAAM,MACF,4EACmB,QAAQ,oBAAoB;;AAGrD,UAAM,SAAwB,CAAC,QAAQ;AACvC,UAAM,QAAsB,CAAC;AAE7B,WAAO,OAAO,cACV,CAAC,UAAS;AACR,YAAM,IAAI,SAAQ,QAAQ,SAAS;AACnC,WAAK,CAAC;AACN,aAAO;OAET,QAAgC,MAAiB,SACjD;;AAGC,QAAM,UAAU,GAAG,CAAC;;;ACxE3B;;;;;;;;;;;;;;;;AAqCA,iBAAiC;AAC/B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAqB,CAAC,GAAG;AAE/B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,KAAK;AACzB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,OAAO,GAAG,CAAC;;;AChDxB;;;;;;;;;;;;;;;;AAmDA,8BACI,GAAsB;AACxB,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,+BAA2B,GAAG,OAAO,GAAG;AAExC,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,kBAAkB,IAAI;AAC1C,WAAK,CAAC,IAAI;AACV,aAAO;;AAGT,UAAM,SAAkC,CAAC,GAAG,IAAI,GAAG;AACnD,UAAM,QAAQ;AAEd,WAAO,OAAO,cACH,SAAS,QAAqC,MAC9C,mBAAmB;;AAGzB,QAAM,oBAAoB,GAAG,CAAC;;;ACzErC;;;;;;;;;;;;;;;;AAuCA,oBAAoC,GAAsB;AACxD,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,WAAO,QAAQ,IAAI,aAAa,GAAG,OAAO,MAAM;;AAG3C,QAAM,UAAU,GAAG,CAAC;;;AC5C3B;;;;;;;;;;;;;;;;AAwCA,kBACI,SAA8B,OAAO;AACvC,UAAM,WAAW,qBAAqB,SAAS,WAAW;AAE1D,IAAK,OACD,SAAS,UAAU,GAAG,MAAM;AAEhC,QAAI,SAAS,WAAW;AACtB,aAAO,WAAW,SAAS,IAAI;;AAGjC,UAAM,OAAO,SAAS,GAAG;AACzB,UAAM,QAAQ,SAAS,GAAG;AAC1B,UAAM,QAAQ,SAAS,GAAG;AAE1B,IAAK,OAAO,QAAQ,MAAM,MAAM;AAEhC,aAAS,QAAQ;AACf,MAAK,kBACD,OAAO,EAAE,OACT;AACJ,MAAK,OACD,UAAU,EAAE,OACZ,MAAM;;AAGZ,UAAM,kBAAkB,SAAS,IAAI,OAAK,WAAW,GAAG;AAOxD,WAAO,OAAO,iBAAiB;;AAG1B,QAAM,QAAQ,GAAG,CAAC;;;AC5EzB;;;;;;;;;;;;;;;;AAuCA,iBAAiC,GAAiB,QAAQ;AACxD,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAqB,CAAC,GAAG;AAC/B,UAAM,QAAmB,CAAC;AAE1B,WAAO,OAAO,cACV,cAAW,SAAQ,KAAK,IAAI,QAAQ,QACpC,MAAiB,MAAM;;AAEtB,QAAM,OAAO,GAAG,CAAC;;;ACjDxB;;;;;;;;;;;;;;;;AA8DA,yBACI,GAAsB,OAAiB,KAAe,SACtD,YAAY,GAAG,UAAU,GAAG,eAAe,GAAG,cAAc,GAC5D,iBAAiB;AACnB,QAAI,WAAW;AACb,gBAAU,IAAI,MAAM,MAAM;;AAG5B,QAAI,KAAK,gBAAgB,GAAG,KAAK;AAEjC,UAAM,UAA+B,CAAC;AACpC,YAAM,eAAe,WAAW;AAChC,UAAI,aAAa,SAAS;AACxB,cAAM,IAAI,MAAM;;AAGlB,UAAI,iBAAiB,KAAK,gBAAgB;AACxC,cAAM,IAAI,MACN;;AAGN,UAAI,iBAAiB,KAAK,mBAAmB;AAC3C,cAAM,IAAI,MACN;;AAGN,YAAM,sBAAsB,GAAG,OAAO,MAAM;AAG5C,YAAM,aAAa,WAAW;AAC9B,YAAM,WAAW,GAAG,MAAM;AAC1B,iBAAW,QAAQ;AACjB,cAAM,QAAQ;AACd,YAAI,QAAQ;AACZ,iBAAS,OAAO,MAAM,GAAG;;AAE3B,WAAK,QAAQ,IAAI;AAGjB,UAAI,aAAa,UAAU,sBAAsB;AAC/C,cAAM,YAAY,aAAa;AAI/B,cAAM,gBAAgB,sBAAsB;AAC5C,gBAAQ,2BACJ,WAAW,WAAW,eAAe,OAAO,GAAG;AACnD,cAAM,0BACF,SAAS,WAAW,eAAe,KAAK,GAAG;AAC/C,kBACI,sBAAsB,SAAS,WAAW,eAAe,GAAG;;AAEhE,iBAAS,OAAO,GAAG,OAAO,GAAG,MAAM;AACjC,gBAAM,QAAQ,aACV,WAAW,OAAO,SAAS,GAAG,OAAO,MAAM;AAC/C,cAAI,QACA,YAAY,SAAS,KAAK,SAAS,GAAG,OAAO,MAAM;AACvD,kBAAQ,QAAQ,eAAe,SAAS,MAAM;;;AAIlD,YAAM,aAAa,WAAW;AAE9B,iBAAW,QAAQ;AACjB,YAAI,QAAQ,MAAM,QAAQ;AAC1B,gBAAQ,QAAQ;;AAIlB,YAAM,OAAO,iBAAgB,OAAO,KAAK;AAEzC,YAAM,WAAW,KAAK,OAAO,CAAC,GAAG,SAAS,WAAW,QAAQ,UAAU;AAEvE,YAAM,aAAa,QAAQ,MAAM,OAAK,MAAM;AAC5C,UAAI;AACF,eAAO,QAAQ,MAAM,IAAI,OAAO,OAAO;;AAGzC,YAAM,MAAM,SAAQ,aAAa,IAAI,OAAO,KAAK;AACjD,aAAO,QAAQ,KAAK;;AAGtB,UAAM,SAA6B,CAAC,GAAG;AACvC,UAAM,QAA2B;MAC/B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;AAGF,WAAO,OAAO,cACV,SAAS,QAAgC,MAAiB,cAC1D;;AAGC,QAAM,eAAe,GAAG,CAAC;;;ACjKhC;;;;;;;;;;;;;;;;AAqCA,gBAAgC;AAC9B,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,SAAoB,CAAC,GAAG;AAE9B,WAAO,OAAO,cAAc,CAAC,UAAS;AACpC,YAAM,MAAM,SAAQ,IAAI;AACxB,WAAK,CAAC;AACN,aAAO;OACN,QAAgC,MAAiB;;AAE/C,QAAM,MAAM,GAAG,CAAC;;;AChDvB;;;;;;;;;;;;;;;;AA8CM,oBACF,QAAsB,OACtB;AACF,kBAAc;AACd,QAAI,SAAS,QAAQ,MAAM,WAAW;AACpC,YAAM,IAAI,MAAM;;AAElB,UAAM,gBAAgB,WAAW,QAAQ;AACzC,QAAI,cAAc,WAAW,KAAK,cAAc,WAAW;AACzD,YAAM,IAAI,MACN;;AAEN,QAAI,cAAc,WAAW,KAAK,SAAS;AACzC,YAAM,IAAI,MACN;;AAGN,WAAO,WAAW,QAAQ,OAAO,eAAe;;;;AC/DlD;;;;;;;;;;;;;;;;AA8CM,oBACF,QAAsB,OACtB;AACF,kBAAc;AACd,QAAI,SAAS,QAAQ,MAAM,WAAW;AACpC,YAAM,IAAI,MAAM;;AAElB,UAAM,gBAAgB,WAAW,QAAQ;AACzC,QAAI,cAAc,WAAW,KAAK,cAAc,WAAW;AACzD,YAAM,IAAI,MACN;;AAEN,QAAI,cAAc,WAAW,KAAK,SAAS;AACzC,YAAM,IAAI,MACN;;AAGN,WAAO,WAAW,QAAQ,OAAO,eAAe;;;;AC/DlD;;;;;;;;;;;;;;;;AA8CM,oBACF,QAAsB,OACtB;AACF,kBAAc;AACd,QAAI,SAAS,QAAQ,MAAM,WAAW;AACpC,YAAM,IAAI,MAAM;;AAElB,UAAM,gBAAgB,WAAW,QAAQ;AACzC,QAAI,cAAc,WAAW,KAAK,cAAc,WAAW;AACzD,YAAM,IAAI,MACN;;AAEN,QAAI,cAAc,WAAW,KAAK,SAAS;AACzC,YAAM,IAAI,MACN;;AAGN,WAAO,WAAW,QAAQ,OAAO,eAAe;;;;AC/DlD;;;;;;;;;;;;;;;;AA8CM,oBACF,QAAsB,OACtB;AACF,kBAAc;AACd,QAAI,SAAS,QAAQ,MAAM,WAAW;AACpC,YAAM,IAAI,MAAM;;AAElB,UAAM,gBAAgB,WAAW,QAAQ;AACzC,QAAI,cAAc,WAAW,KAAK,cAAc,WAAW;AACzD,YAAM,IAAI,MACN;;AAGN,QAAI,cAAc,WAAW,KAAK,SAAS;AACzC,YAAM,IAAI,MACN;;AAGN,WAAO,WAAW,QAAQ,OAAO,eAAe;;;;AChElD;;;;;;;;;;;;;;;;AA8CM,oBACF,QACA,OACA;AACF,kBAAc;AACd,QAAI,SAAS,QAAQ,MAAM,WAAW;AACpC,YAAM,IAAI,MAAM;;AAElB,UAAM,gBAAgB,WAAW,QAAQ;AACzC,QAAI,cAAc,WAAW,KAAK,cAAc,WAAW;AACzD,YAAM,IAAI,MACN;;AAGN,QAAI,cAAc,WAAW,KAAK,SAAS;AACzC,YAAM,IAAI,MACN;;AAGN,YAAQ,SACJ;AACJ,WAAO,WAAW,QAAQ,OAAO,eAAe;;;;ACnElD;;;;;;;;;;;;;;;;AAkDA,iBACI,GAAiB,IAAI,GAAG,SAAS;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,QAAI,GAAG,SAAS;AACd,YAAM,IAAI,MAAM;;AAElB,UAAM,UAAU,GAAG,MAAM,GAAG,MAAM,SAAS;AAC3C,QAAI,IAAI;AACN,YAAM,IAAI,MACN,uDAAuD,oBAC5C;;AAGjB,UAAM,SAAqB,CAAC,GAAG;AAC/B,UAAM,QAAmB,CAAC,GAAG;AAE7B,UAAM,CAAC,QAAQ,WAAW,OAAO,cAC7B,OAAK,EAAE,KAAK,IAAqB,GAAG,SACpC,QAAgC,MAAiB,MACjD;AAEJ,WAAO,CAAC,QAAQ;;AAGX,QAAM,OAAO,GAAG,CAAC;;;AC1ExB;;;;;;;;;;;;;;;;AA2CA,4BACI,OAAoB,QAAO,GAAG,SAAS,GAAG,OAC1C;AACF,QAAI,SAAS,QAAS,UAAuB;AAC3C,YAAM,IAAI,MAAM;;AAElB,UAAM,YACF,IAAI,YAAY,OAAM,QAAQ,OAAO,MAAsB;AAC/D,UAAM,MAAM,OAAO,OAAO;AAC1B,aAAS,IAAI,GAAG,IAAI,IAAI,OAAO,QAAQ;AACrC,UAAI,OAAO,KAAK,UAAU;;AAE5B,WAAO,IAAI;;AAGN,QAAM,kBAAkB,GAAG,CAAC;;;AC1DnC;;;;;;;;;;;;;;;;AA6CA,+BACI,GAAiB,YAAiC;AACpD,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,cACF,gBAAgB,YAAY,cAAc,sBAAsB;AACpE,WAAO,MAAM,cAAc,MAAM;AAEjC,UAAM,SAAmC,CAAC,GAAG,IAAI,YAAY;AAC7D,UAAM,QAAiC,CAAC;AAExC,UAAM,UAA+B,CAAC,UAAS;AAC7C,YAAM,MAAM,SAAQ,mBAAmB,IAAI,aAAa;AACxD,WAAK,CAAC;AACN,aAAO;;AAGT,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC,oBAAoB;;AAG1B,QAAM,qBAAqB,GAAG,CAAC;;;AClEtC;;;;;;;;;;;;;;;;AA0CA,oBAAkB,GAAsB,OAAO;AAC7C,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,OACD,QAAQ,CAAC,GAAG,MAAM,UAAU,OAAO,GAAG,MAAM,QAC5C,MACI,UAAU,oBAAoB,GAAG,MAAM,WAAW,GAAG,MAAM;AACnE,QAAI,OAAO;AACT,cAAQ,GAAG,MAAM;;AAEnB,UAAM,SAAuB,CAAC,OAAO;AACrC,UAAM,QAAqB,CAAC;AAC5B,UAAM,UAAiC,CAAC,aACpC,SAAQ,QAAQ,IAAI;AACxB,WAAO,OAAO,cACV,SAAS,QAAgC,MAAiB,QAC1D;;AAGC,QAAM,UAAU,GAAG,CAAC;;;AC5D3B;;;;;;;;;;;;;;;;AAoCM,oBACF,cAAyB,YAAY,MAAM,MAC3C;AACF,WAAO,OAAO,aAAa,cAAc,WAAW,MAAM;;;;ACvC5D;;;;;;;;;;;;;;;;AAuBM,qBAAoB,WAAqB;AAC7C,UAAM,UAAU;AAChB,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ;AACnC,UAAI,SAAS;AACX,gBAAQ,KAAK;;;AAIjB,UAAM,WAAW,OAAO,WAAW;AAEnC,UAAM,MAAM,OAAO,CAAC,QAAQ,QAAQ,UAAU,SAAS;AACvD,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ;AAClC,YAAM,MAAM,SAAS,WAAW,QAAQ;AACxC,YAAM,SAAS,IAAI,UAAU;AAC7B,UAAI,OAAO,IAAI,KAAK;;AAEtB,WAAO,IAAI;;;;ACvCb;;;;;;;;;;;;;;;;AAwCA,6BAA2B;AACzB,UAAM,aACF,gBAAgB,WAAW,aAAa,cAAc;AAC1D,UAAM,OAAO,MAAM,WAAW;AAC9B,UAAM,MAAM,UAAU,WAAW,OAAO;AACxC,QAAI,cAAc;AAChB,iBAAW;;AAEb,WAAO;;AAGF,QAAM,aAAa;;;ACnD1B;;;;;;;;;;;;;;;;AA4CA,mCACI,UAA2B,MAC3B;AACF,UAAM,UAAU,gBAAgB,UAAQ,UAAU;AAClD,UAAM,QAAQ,gBAAgB,MAAM,QAAQ,YAAY;AAExD,UAAM,WAAW,QAAQ,OAAO,IAAI;AACpC,UAAM,UAAU,MAAM;AACtB,UAAM,cAAc,QAAQ;AAE5B,IAAK,OAAO,UAAU,GAAG,MAAM;AAC/B,IAAK,kBACD,YAAY,MAAM,UAAU,WAAW,UAAU,MAAM,OACvD;AAEJ,QAAI,cAAc;AAClB,aAAS,IAAI,UAAU,IAAI,WAAW,SAAS;AAC7C,qBAAe,YAAY;;AAE7B,UAAM,oBACF,YAAY,MAAM,GAAG,UAChB,OAAO,CAAC,cAAc,YAAY,MAAM,WAAW;AAC5D,UAAM,iBAAiB,QAAQ,SAAS;AACxC,UAAM,eAAe,QAAQ,OAAO,CAAC;AACrC,UAAM,oBAAoB,MAAM,WAAW;AAC3C,UAAM,UAAU,QAAQ,mBAAmB,CAAC;AAE5C,UAAM,MAAM,OAAO,gBAAgB,SAAS;AAG5C,QAAI,aAAW;AACb,cAAQ;;AAEV,QAAI,SAAS;AACX,YAAM;;AAER,YAAQ;AACR,mBAAe;AACf,iBAAa;AACb,sBAAkB;AAElB,WAAO;;AAGF,QAAM,mBAAmB;;;ACxFhC;;;;;;;;;;;;;;;;AAuCA,2BACI,GAAiB;AACnB,oBACI;AAEJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,sBAAkB,GAAG,OAAO,GAAG,OAAO;AACtC,WAAO,SAAS,IAAI;;AAYtB,uBAAuC,GAAiB;AACtD,oBACI;AAEJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,sBAAkB,GAAG,OAAO,GAAG,OAAO;AACtC,WAAO,KAAK,IAAI;;AAGlB,wBAAwC,GAAiB;AACvD,oBACI;AAEJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,sBAAkB,GAAG,OAAO,GAAG,OAAO;AACtC,WAAO,MAAM,IAAI;;AAGnB,4BACI,GAAiB;AACnB,oBACI;AAEJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,sBAAkB,GAAG,OAAO,GAAG,OAAO;AACtC,WAAO,UAAU,IAAI;;AAGvB,0BAA0C,GAAiB;AACzD,oBACI;AAEJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,sBAAkB,GAAG,OAAO,GAAG,OAAO;AACtC,WAAO,QAAQ,IAAI;;AAGrB,+BACI,GAAiB;AACnB,oBACI;AAEJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,sBAAkB,GAAG,OAAO,GAAG,OAAO;AACtC,WAAO,aAAa,IAAI;;AAGnB,QAAM,cAAc,GAAG,CAAC;AACxB,QAAM,qBAAqB,GAAG,CAAC;AAC/B,QAAM,gBAAgB,GAAG,CAAC;AAC1B,QAAM,kBAAkB,GAAG,CAAC;AAC5B,QAAM,aAAa,GAAG,CAAC;AACvB,QAAM,iBAAiB,GAAG,CAAC;;;ACpHlC;;;;;;;;;;;;;;;;AA2CA,sBAAsC,GAAiB;AACrD,oBACI;AAEJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,kBAAkB,GAAG,OAAO,GAAG,OAAO;AAC3C,WAAO,KAAI,IAAI;;AAajB,sBAAsC,GAAiB;AACrD,oBACI;AAGJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,kBAAkB,GAAG,OAAO,GAAG,OAAO;AAC3C,WAAO,IAAI,IAAI;;AAajB,sBAAsC,MAAS;AAC7C,oBACI;AAGJ,IAAK,kBAAkB,KAAK,OAAO,MAAI,OAAO;AAC9C,WAAO,IAAI,MAAM;;AAanB,sBAAsC,GAAiB;AACrD,oBACI;AAGJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,kBAAkB,GAAG,OAAO,GAAG,OAAO;AAC3C,WAAO,IAAI,IAAI;;AAWjB,sBAAsC,GAAiB;AACrD,oBACI;AAGJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,kBAAkB,GAAG,OAAO,GAAG,OAAO;AAC3C,WAAO,IAAI,IAAI;;AAWjB,sBAAsC,GAAiB;AACrD,oBACI;AAGJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,kBAAkB,GAAG,OAAO,GAAG,OAAO;AAC3C,WAAO,IAAI,IAAI;;AAWjB,0BAA0C,GAAiB;AACzD,oBACI;AAGJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,kBAAkB,GAAG,OAAO,GAAG,OAAO;AAC3C,WAAO,QAAQ,IAAI;;AAWrB,0BAA0C,GAAiB;AACzD,oBACI;AAGJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,kBAAkB,GAAG,OAAO,GAAG,OAAO;AAC3C,WAAO,QAAQ,IAAI;;AAarB,oCACI,GAAiB;AACnB,oBACI;AAEJ,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,IAAK,kBACD,GAAG,OAAO,GAAG,OAAO;AACxB,WAAO,kBAAkB,IAAI;;AAGxB,QAAM,YAAY,GAAG,CAAC;AACtB,QAAM,YAAY,GAAG,CAAC;AACtB,QAAM,gBAAgB,GAAG,CAAC;AAC1B,QAAM,gBAAgB,GAAG,CAAC;AAC1B,QAAM,YAAY,GAAG,CAAC;AACtB,QAAM,YAAY,GAAG,CAAC;AACtB,QAAM,YAAY,GAAG,CAAC;AACtB,QAAM,0BAA0B,GAAG,CAAC;AACpC,QAAM,YAAY,GAAG,CAAC;;;AC5N7B;;;;;;;;;;;;;;;;AAuEA,iBACI,GAAsB,MAAgC,aACtD,OAAwB,MAAM,WAAW;AAC3C,QAAI,gBAAgB,GAAG,KAAK;AAE5B,UAAM,QAAO,SAAS,GAAG,KAAK;AAC9B,QAAI,gBAAgB,MAAK;AACzB,QAAI;AACF,YAAM,OAAO,eAAe,MAAM,EAAE;AACpC,sBAAgB,AAAU,qBAAqB,MAAK,OAAO;;AAE7D,WAAO,QAAQ,OAAM;;AAGvB,oBACI,GAAW,GAAkB,OAAwB;AACvD,QAAI,EAAE,SAAS;AACb,aAAO,IAAI;;AAIb,QAAI,EAAE,SAAS,KAAK,SAAS;AAC3B,aAAO,SAAS,QAAQ,GAAG,CAAC,MAAM,GAAG;;AAIvC,QAAI,EAAE,SAAS,KAAK,OAAO,SAAS,YAChC,MAAM,QAAQ,SAAS,KAAK,WAAW;AACzC,UAAI,MAAM;AACR,eAAO,KAAI,IAAI,IAAI;;AAErB,UAAI,MAAM;AACR,eAAO,IAAI,IAAI,IAAI;;AAErB,UAAI,MAAM;AACR,eAAO,IAAI,IAAI,IAAI;;AAErB,UAAI,MAAM,eAAe,MAAM;AAE7B,eAAO,KAAK,KAAI,IAAI,IAAI,IAAI,OAAO,GAAG,WAAW;;AAGnD,YAAM,IAAI,MAAM,qCAAqC;;AAIvD,QAAI,MAAM,QAAQ,SAAS,KAAK,WAAW;AACzC,UAAI,MAAM;AACR,eAAO,IAAI,KAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK;;AAE7C,UAAI,MAAM;AACR,eAAO,IAAI,KAAI,IAAI,IAAI,KAAK,KAAK,KAAK;;AAExC,UAAI,MAAM;AACR,eAAO,IAAI,KAAI,IAAI,IAAI,KAAK,KAAK,KAAK;;AAExC,UAAI,MAAM,SAAS,MAAM;AAEvB,eAAO,KAAK,KAAI,OAAO,IAAI;;AAG7B,YAAM,IAAI,MAAM,qCAAqC;;AAGvD,UAAM,IAAI,MAAM,gCAAgC;;AAG3C,QAAM,OAAO,GAAG,CAAC;;;AC1IxB;;;;;;;;;;;;;;;;AA0DA,0BACI,GAAiB,GAAiB,OAClC,OAAsB,aAAa;AACrC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAE/C,qBAAiB,IAAI;AACrB,IAAK,OACD,AAAK,YAAY,GAAG,OAAO,GAAG,QAAQ,MAAM;AAEhD,UAAM,MAAM,OAAO;AACnB,UAAM,gBAAgB,IAAI,KAAK;AAE/B,QAAI,SAAS,IAAI,IAAI,IAAI,KAAK;AAC9B,QAAI;AACF,MAAK,OACD,SAAQ,MAAM,MAAM;AACxB,YAAM,QAAQ,gBAAgB,OAAM,QAAQ;AAC5C,eAAS,IAAI,QAAQ,IAAI,KAAK,IAAI,QAAQ;;AAE5C,WAAO,KAAI,IAAI;;AAGV,QAAM,gBAAgB,GAAG,CAAC;;;AChEjC;;;;;;AAQM,+BACF,OAAiB,SAAiB;AACpC,UAAM,WAAY,QAAQ,OAAO,IAAK,QAAQ,MAAM,QAAQ,OAAO,KAAK;AACxE,UAAM,WAAY,QAAQ,OAAO,IAAK,QAAQ,OAAO,IAAI;AAEzD,UAAM,aAAa,6FACyB,QAAQ,yBAC5B,QAAQ,iBAAiB,oBAC9B,2BAA2B;AAE9C,QAAI,QAAQ,OAAO;AACjB,YAAM,IAAI,MAAM,aAAa,kBAAkB;;AAEjD,QAAI,MAAM,SAAS,WAAY,SAAQ,OAAO;AAC5C,YAAM,IAAI,MACN,aACA,0BAA0B,WAAY,SAAQ,OAAO;;AAE3D,QAAI,QAAQ,SAAS,WAAW,MAAM,SAAS;AAC7C,YAAM,IAAI,MACN,aAAa,mBAAmB,WAAW,MAAM,SAAS;;AAEhE,aAAS,IAAI,GAAG,IAAI,UAAU,EAAE;AAC9B,UAAI,QAAQ,MAAM,OAAO,QAAQ,MAAM;AACrC,cAAM,IAAI,MACN,aACA,kBAAkB,OAAO,QAAQ,MAAM,wBAAwB,OAC3D,QAAQ,MAAM;;;AAG1B,aAAS,IAAI,GAAG,IAAI,QAAQ,OAAO,UAAU,EAAE;AAC7C,UAAI,QAAQ,MAAM,IAAI,cAAc,MAAM,IAAI;AAC5C,cAAM,IAAI,MACN,aACA,kBAAkB,IAAI,cAClB,QAAQ,MAAM,IAAI,uBAAuB,IAAI,cAC7C,MAAM,IAAI;;;;AAmBlB,yBACF,SAAiB,SAAiB;AACpC,QAAI,QAAQ,OAAO;AACjB,YAAM,IAAI,MACN,+EACqB,QAAQ;;AAEnC,QAAI,QAAQ,OAAO;AACjB,YAAM,IAAI,MACN,+EACqB,QAAQ;;AAEnC,QAAI,QAAQ,UAAU;AACpB,YAAM,IAAI,MAAM,0DACZ,QAAQ;;AAEd,QAAI,MAAM,SAAS;AACjB,YAAM,IAAI,MACN,6DAA6D;;AAGnE,QAAI,MAAM,WAAW;AACnB,UAAI,QAAQ,SAAS;AACnB,cAAM,IAAI,MAAM,sDACZ,QAAQ;;AAEd,UAAI,QAAQ,SAAS;AACnB,cAAM,IAAI,MAAM,sDACZ,QAAQ;;;AAIhB,wBAAoB,OAAO,SAAS;;AAYhC,2BACF,SAAqB,SACrB;AAEF,UAAM,cAAc,QAAQ,MAAM;AAClC,UAAM,YAAa,cAAc,IAAK,QAAQ,MAAM,cAAc,KAAK;AAKvE,UAAM,UAAU,MAAM;AAEtB,QAAI,YAAY;AAChB,aAAS,IAAI,WAAW,IAAI,SAAS,EAAE;AACrC,mBAAa,MAAM;;AAGrB,UAAM,eAAgB,YAAY,IAAK,IAAI;AAC3C,UAAM,aAAa,cAAc,QAAQ,SAAS;AAElD,UAAM,UAAU,CAAC,GAAG,eAAe,MAAM,MAAM,GAAG,aAAa;AAC/D,UAAM,aAAa,cAAc;AACjC,WAAO,CAAC,WAAW,YAAY,WAAW,SAAS;;;;ACnJrD;;;;;;;;;;;;;;;;AA8CA,sBACI,SAA4B,SAC5B;AACF,UAAM,WAAW,gBAAgB,SAAS,WAAW,aAAa;AAClE,UAAM,WAAW,gBAAgB,SAAS,WAAW;AACrD,IAAgB,cAAc,UAAU,UAAU;AAElD,UAAM,UAA+B,CAAC;AACpC,aAAO,SAAQ,UAAU,UAAU,UAAU;;AAG/C,UAAM,SAA0B,CAAC,SAAS,UAAU,SAAS;AAC7D,UAAM,QAAwB,CAAC;AAE/B,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC,WAAW;;AAGjB,QAAM,YAAY,GAAG,CAAC;;;AClCvB,0BACF,eAAuB,cAAsB,aAC7C;AACF,QAAI,cAAc,UAAU;AAC1B,YAAM,IAAI,MACN,8EACsB,cAAc;;AAE1C,QAAI,cAAc,OAAO;AACvB,YAAM,IAAI,MACN,sEACkB,cAAc;;AAGtC,UAAM,WAAW,cAAc,OAAO,IAAI,cAAc,MAAM,KAAK;AACnE,UAAM,UAAU,cAAc,OAAO,IAAI,cAAc,MAAM,KAAK;AAElE,QAAI,YAAY,WAAW;AACzB,YAAM,IAAI,MACN,kDACI,YAAY,sBAAsB;;AAG5C,UAAM,YAAY,aAAa;AAC/B,QAAI,CAAE,cAAa,SAAS,KACtB,aAAa,SAAS,KAAK,cAAc;AAC7C,YAAM,IAAI,MACN,oCACG,aAAa,2BAA2B;;AAGjD,QAAI,aAAa,UAAU,cAAc;AACvC,YAAM,IAAI,MAAM;;;;;AC/DpB;;;;;;;;;;;;;;;;AAiEA,0BACI,eAAkC,cAClC,aAA0B,eAAkC;AAC9D,UAAM,iBACF,gBAAgB,eAAe,iBAAiB,iBAAiB;AACrE,UAAM,gBACF,gBAAgB,cAAc,gBAAgB;AAClD,UAAM,gBAAgB,gBAClB,cAAc,gBAAgB,iBAAiB,cAAc;AAEjE,IAAgB,eACZ,gBAAgB,eAAe,aAAa;AAEhD,UAAM,SAA8B;MAClC,eAAe;MACf,cAAc;MACd,cAAc;;AAGhB,UAAM,QAA4B,CAAC;AAEnC,WAAO,OAAO,cACV,cAAW,SAAQ,cACf,gBAAgB,eAAe,aAAa,gBAChD,QAAgC,MAAiB,eACjD;;AAGC,QAAM,gBAAgB,GAAG,CAAC;;;AC7FjC;;;;;;;;;;;;;;;;AA6DA,qBAAmB,GAAsB;AACvC,UAAM,WAAW,gBAAgB,SAAS,WAAW,YAAY;AACjE,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,UAAM,UAA+B,CAAC;AACpC,aAAO,SAAQ,SAAS,IAAI;;AAG9B,UAAM,SAAyB,CAAC,QAAQ,IAAI,SAAS;AAErD,WAAO,OAAO,cACV,SAAS,QAAgC,MAAqB;;AAG7D,QAAM,WAAW,GAAG,CAAC;;;AC3E5B;;;;;;;;;;;;;;;;AA4BM,yBAAwB,GAAW;AACvC,QAAI,cAAc;AAChB,aAAO,EAAE,MAAM;;AAEjB,QAAI,AAAK,YAAY,EAAE,OAAO;AAC5B,aAAO;;AAET,QAAI,EAAE,MAAM,WAAW,WAAW;AAChC,YAAM,eAAyB;AAC/B,eAAS,IAAI,GAAG,IAAI,EAAE,MAAM,QAAQ;AAClC,YAAI,WAAW,MAAM,QAAQ,EAAE,MAAM,MAAM;AACzC,uBAAa,KAAK,EAAE,MAAM;;AAE1B,uBAAa,KAAK,WAAW;;;AAGjC,aAAO;;AAGT,WAAO;;;;AC/CT;;;;;;;;;;;;;;;;AAmDA,oBACI,GAAsB,MAAc,YACpC;AACF,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,IAAK,OACD,GAAG,UAAU,WACb,MAAM,gFACmB,GAAG;AAChC,IAAK,OACD,QAAQ,KAAK,OAAO,GACpB,MAAM,qDAAqD;AAE/D,QAAI,SAAS;AACX,aAAO,aAAa,SAAS,GAAG,UAAU;;AAG5C,UAAM,cAAc,cAAc,IAAI;AACtC,UAAM,WAAW,IAAI;AACrB,UAAM,aAAa,IACf,MAAM,KAAI,cAAc,aAAa,GAAG,GAAG,WAAW,OAAO,YAC7D;AAEJ,WAAO,IAAI,IAAI;;AAGV,QAAM,UAAU,GAAG,CAAC;;;AC7E3B;;;;;;;;;;;;;;;;AAoBM,+BAA8B;AAElC,WAAO,KAAK,MAAM,KAAK,IAAI,GAAG,KAAK,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI;;AAG/D,wBACF,cAAsB,GAAW;AACnC,UAAM,OAAO,IAAI,eAAe;AAChC,UAAM,YAAY,IAAI,aAAa;AACnC,aAAS,IAAI,GAAG,IAAI,cAAc,EAAE;AAClC,YAAM,SAAU,IAAM,KAAK,KAAK,IAAM,gBAAe,OAAO;AAC5D,gBAAU,KAAK,IAAI,IAAI,KAAK,IAAI;;AAElC,WAAO,SAAS,WAAW;;;;ACjC7B;;;;;;;;;;;;;;;;AAuCA,8BACI,aAA2B,SAAuB,IAAI;AACxD,UAAM,eAAe,gBAAgB,aAAa,eAAe;AACjE,UAAM,WAAW,gBAAgB,SAAS,WAAW;AAErD,WACI,aAAa,OAAO,GACpB,MAAM,uEACS,aAAa;AAChC,WACI,aAAa,OAAO,MAAM,SAAS,MACnC,MAAM,mFAEC,aAAa,yBAAyB,SAAS;AAC1D,sBACI,aAAa,MAAM,MAAM,GAAG,aAAa,MAAM,SAAS,IACxD,SAAS,OACT;AAEJ,UAAM,UAAU,aAAa,MAAM,aAAa,MAAM,SAAS;AAC/D,WACI,IAAI,KAAK,KAAK,SACd,MAAM,4EACY,qBAAqB;AAE3C,UAAM,kBAAkB,MAAM,aAAa;AAC3C,UAAM,cAAc,MAAM,SAAS;AAInC,UAAM,CAAC,OAAO,QAAQ,CAAC,gBAAgB,SAAS,SAAS;AACzD,UAAM,YAAY,uBAAuB,QAAQ;AAEjD,aAAS,IAAI,GAAG,IAAI,OAAO;AACzB,YAAM,SAAS,IAAI;AACnB,YAAM,OAAO,gBAAgB,SAAS,QAAQ,SAAS;AACvD,YAAM,YAAmD;AACzD,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ;AAC/B,kBAAU,KAAK,CAAC,OAAO,KAAK,IAAI,OAAO;;AAEzC,gBAAU,KAAK,CAAC,GAAG,OAAM,GAAE,QAAQ,EAAE;AAErC,gBAAU,KAAK;AACf,eAAS,IAAI,GAAG,IAAI,GAAG;AACrB,YAAI,UAAU,GAAG,UAAU,YAAY;AACrC,oBAAU,KAAK;AACf;;;;AAKN,QAAI,gBAAgB;AAClB,mBAAa;;AAEf,QAAI,YAAY;AACd,eAAS;;AAIX,WAAO,QAAO,WAAW,SAAS,OAAO;;AAGpC,QAAM,cAAc;;;ACrG3B;;;;;;;;;;;;;;;;AAiDA,iCACI,GAAM,IAAO,aACb,SACA,MACA,aAA4B,QAC5B;AACF,QAAI,MAAM;AACV,QAAI,EAAE,SAAS;AACb,YAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM;;AAEvD,QAAI,OAAO;AACX,QAAI,KAAK,SAAS;AAChB,aAAO,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAE5D,IAAK,OACD,IAAI,SAAS,GACb,MAAM,iEACC,IAAI;AACf,IAAK,OACD,KAAK,SAAS,GACd,MAAM,8DACC,KAAK;AAChB,IAAK,OACD,YAAY,WAAW,GACvB,MAAM,mEACC;AACX,UAAM,UAAU,eAAe,SAAS,IAAI,MAAM,KAAK,IAAI,MAAM;AACjE,UAAM,WAAW,eAAe,SAAS,KAAK,MAAM,KAAK,KAAK,MAAM;AACpE,IAAK,OACD,YAAY,YAAY,IACxB,MAAM,4CAA4C,8CACd,YAAY;AACpD,IAAK,OACD,aAAa,YAAY,IACzB,MAAM,0CAA0C,iDACV,YAAY;AACtD,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,gFACiB,+BAA+B;;AAG5D,UAAM,UAA+B;AACnC,YAAM,YAAY;AAClB,YAAM,cAAc,AAAU,wBAAwB;AACtD,YAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,aAAa,SAAS,WAAW,MAAK,iBAAiB,OAClE;AAEJ,aAAO,SAAQ,gBAAgB,KAAK,MAAM;;AAG5C,UAAM,SAAqC,CAAC,GAAG,KAAK,IAAI;AACxD,UAAM,QAC0B,CAAC,SAAS,WAAK,YAAY;AAE3D,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC,sBAAsB;;AAG5B,QAAM,uBAAuB,GAAG,CAAC;;;AC/GxC;;;;;;;;;;;;;;;;AA+BM,gCACF,IAAY,GAAW;AACzB,QAAI,cAAc,QAAQ,eAAe;AACvC,aAAO;;AAET,QAAI,eAAe;AACjB,aAAO,IAAI,IAAI,KAAK;;AAEtB,UAAM,IAAI,MACN,gDAAgD;;AAIhD,gCACF,MAAc;AAChB,QAAI,MAAM;AACV,UAAM,aACF,AAAe,iBAAiB,KAAK,OAAO,aAAa;AAC7D,QAAI,WAAW,SAAS;AACtB,YAAM,KAAI,KAAK;;AAEjB,WAAO,QAAQ,KAAK,KAAK;;AAGrB,2BACF,GAAW,YACX;AACF,QAAI,eAAe;AACjB,aAAO;eACE,eAAe;AACxB,aAAO,KAAK;eACH,eAAe;AACxB,aAAO,IAAI;eACF,eAAe;AACxB,aAAO,MAAM;eACJ,eAAe;AACxB,aAAO,MAAM,GAAG;;AAElB,UAAM,IAAI,MAAM,4BAA4B;;AAIvC,QAAM,aAAa,CAAC,eAAuB;AAChD,UAAM,eAAe,gBAAgB;AACrC,WAAO,CAAC,gBAAgB,eAAe;;;;AC3EzC;;;;;;;;;;;;;;;;AA+FA,wBAAmD,CACjD,GACA,QACA,SACA,WACA,aAAa,QACb,YAAY,CAAC,GAAG,IAChB,iBACA,MACA,aAAa,UACb;AAaA,iBAAa,cAAc;AAE3B,QAAI,WAAW,OAAO,MAAM,eAAe,gBAAgB;AACzD,UAAI,SAAS,OACT,GAAG,QAAQ,SAAS,MAAK,YAAY,WAAW;AACpD,UAAI,QAAQ;AACV,iBAAS,KAAI,QAAQ;;AAGvB,aAAO,gBAAgB,QAAQ,YAAY;;AAG7C,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,QAAI,MAAM;AACV,QAAI,eAAe;AAEnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAE3D,IAAK,OACD,IAAI,SAAS,GACb,MAAM,6DACC,IAAI;AACf,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,8DACC,QAAQ;AACnB,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,6EACiB,+BAA+B;;AAG5D,IAAK,OACD,IAAI,MAAM,OAAO,QAAQ,MAAM,IAC/B,MAAM,oCAAoC,IAAI,MAAM,yCACtB,QAAQ,MAAM;AAChD,IAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MAAM,uEACa,0BAA0B;AACjD,IAAK,OACD,eAAe,QACf,MAAM,sCACF;AAER,UAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,QAAQ,OAAO,SAAS,WAAW,MAAK;AAEvD,QAAI;AACJ,QAAI,QAAQ;AACV,cAAQ,gBAAgB,MAAM,QAAQ;AACtC,OAAC,SAAS,eAAe,OAAO;AAEhC,MAAe,2BAA2B,SAAS,UAAU,MAAM;;AAGrE,QAAI;AACJ,QAAI,0BAA0B;AAC5B,gCAA0B,gBACtB,wBAAwB,iBAAiB;;AAG/C,UAAM,QAAO,CAAC,IAAc;AAC1B,YAAM,CAAC,UAAS,MAAK,GAAG,UACpB;AAEJ,YAAM,eAAe,qBAAqB,IAAI,GAAG;AAEjD,MAAK,OACD,AAAU,kBAAkB,YAC5B,MAAM,uHAEoD;AAE9D,YAAM,OACF,oBAAoB,KAAI,OAAO,cAAc,UAAS,SAAS;AACnE,YAAM,YACF,qBAAqB,MAAK,cAAc,SAAQ,OAAO,SAAS;AACpE,YAAM,MAAgB,CAAC,MAAM;AAE7B,UAAI,UAAS;AACX,cAAM,UAAU,qBAAqB,QAAO;AAC5C,YAAI,KAAK;;AAEX,aAAO;;AAGT,UAAM,UAA+B,CAAC;AACpC,YAAM,MAAM,SAAQ,YAAY;QAC9B,OAAO;QACP,QAAQ;QACR;QACA,MAAM;QACN;QACA,wBAAwB;;AAE1B,aAAO;;AAGT,UAAM,SAA4B;MAChC,GAAG;MACH,QAAQ;MACR,MAAM;MACN,wBAAwB;;AAG1B,UAAM,QACF,CAAC,SAAS,WAAK,YAAY,WAAW,iBAAiB;AAI3D,QAAI,QAAQ;AACV,YAAM,WACF,WAAW,CAAC,MAAe,SAAkB;AAC3C,YAAI,MAAM,OAAO,cACb,SAAS,QAAgC,MACzC,aAAa;AAEjB,aAAK,CAAC,SAAQ,MAAK;AAEnB,YAAI;AACF,gBAAM,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAG5D,eAAO,CAAC,OAAO,KAAK,UAAU;;AAEpC,aAAO,SAAS,KAAK;;AAErB,YAAM,mBAAmB,WACrB,CAAC,MAAe,SAAkB,OAAc;AAC9C,YAAI,MAAM,OAAO,cACb,SAAS,QAAgC,MACzC,aAAa;AAEjB,aAAK,CAAC,SAAQ,MAAK,KAAK;AAExB,YAAI;AACF,gBAAM,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAG5D,eAAO,CAAC,OAAO,KAAK,UAAU;;AAGpC,aAAO,iBAAiB,KAAK,SAAS;;;AAGnC,QAAM,UAAS,GAAG,CAAC;;;AC7Q1B;;;;;;;;;;;;;;;;AAyBA,gDACI,GAAM,IAAO,aACb;AACF,QAAI,MAAM;AACV,QAAI,EAAE,SAAS;AACb,YAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM;;AAEvD,QAAI,OAAO;AACX,QAAI,KAAK,SAAS;AAChB,aAAO,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAG5D,UAAM,UAA+B,cACjC,SAAQ,yBAAyB,KAAK,MAAM;AAEhD,UAAM,SAAoD,CAAC,GAAG,KAAK,IAAI;AAEvE,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC;;AAGN,QAAM,sCACT,GAAG,CAAC;;;AChDR;;;;;;;;;;;;;;;;AAyBA,+CACI,QAAmE,IACnE,QAAkB;AACpB,QAAI,OAAO;AACX,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,aAAO,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAG5D,UAAM,UAA+B,cACjC,SAAQ,wBAAwB,MAAM,QAAQ;AAElD,UAAM,SAAmD,CAAC,IAAI;AAE9D,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MACzC;AAEJ,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAE7D,WAAO;;AAGF,QAAM,qCACT,GAAG,CAAC;;;ACnDR;;;;;;;;;;;;;;;;AAyFA,iCAA4D,CAC1D,GACA,QACA,SACA,WACA,aAAa,QACb,YAAY,CAAC,GAAG,IAChB,iBACA,MACA,aAAa,UACb;AAaA,QAAI,WAAW,OAAO,MAAM,eAAe,gBAAgB;AACzD,UAAI,SAAS,gBACT,GAAG,QAAQ,SAAS,MAAK,YAAY,WAAW;AACpD,UAAI,QAAQ;AACV,iBAAS,KAAI,QAAQ;;AAGvB,aAAO,gBAAgB,QAAQ,YAAY;;AAG7C,UAAM,KAAK,gBAAgB,GAAG,KAAK;AACnC,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,QAAI,MAAM;AACV,QAAI,eAAe;AACnB,QAAI,GAAG,SAAS;AACd,qBAAe;AACf,YAAM,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAE3D,IAAK,OACD,IAAI,SAAS,GACb,MAAM,sEACM,IAAI;AACpB,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,uEACc,QAAQ;AAChC,IAAK,OACD,IAAI,MAAM,OAAO,QAAQ,MAAM,IAC/B,MAAM,6DACE,IAAI,MAAM,qDACJ,QAAQ,MAAM;AAChC,QAAI,aAAa;AACf,kBAAY,CAAC,GAAG;;AAElB,IAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MACI,sFACqB,0BAA0B;AAEvD,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,qFACuB,+BAA+B;;AAGlE,UAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,QAAQ,OAAO,SAAS,WAAW,MAAK,iBACnD;AAEJ,QAAI;AACJ,QAAI,QAAQ;AACV,cAAQ,gBAAgB,MAAM,QAAQ;AACtC,OAAC,SAAS,eAAe,OAAO;AAEhC,MAAe,2BAA2B,SAAS,UAAU,MAAM;;AAGrE,QAAI;AACJ,QAAI,0BAA0B;AAC5B,gCAA0B,gBACtB,wBAAwB,iBAAiB;;AAG/C,UAAM,QAAO,CAAC,IAAc;AAC1B,MAAK,OACD,AAAU,kBAAkB,YAC5B,MAAM,mHAEE;AACZ,YAAM,CAAC,UAAS,MAAK,GAAG,SAAQ;AAEhC,YAAM,eAAe,qBAAqB,IAAI,GAAG;AAEjD,YAAM,OAAO,mCACR,KAAiB,OAAO,cAAc,UAAqB;AAChE,YAAM,YAAY,oCACd,MAAiB,cAAe,SAAqB,OAAO;AAEhE,UAAI,SAAQ;AACV,cAAM,UAAU,qBAAqB,OAAO;AAC5C,eAAO,CAAC,MAAM,WAAW;;AAE3B,aAAO,CAAC,MAAM;;AAGhB,UAAM,UAA+B,CAAC;AACpC,YAAM,MAAM,SAAQ,qBAAqB;QACvC,OAAO;QACP,QAAQ;QACR;QACA,MAAM;QACN;QACA,wBAAwB;;AAE1B,aAAO;;AAGT,UAAM,SAAqC;MACzC,GAAG;MACH,QAAQ;MACR,MAAM;MACN,wBAAwB;;AAE1B,UAAM,QACF,CAAC,SAAS,WAAK,YAAY,WAAW,iBAAiB;AAI3D,QAAI,QAAQ;AACV,YAAM,WACF,WAAW,CAAC,MAAe,SAAkB;AAC3C,YAAI,MAAM,OAAO,cACb,SAAS,QAAgC,MACzC,sBAAsB;AAE1B,aAAK,CAAC,SAAQ,MAAK;AAEnB,YAAI;AACF,gBAAM,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAG5D,eAAO,CAAC,OAAO,KAAK,UAAU;;AAEpC,aAAO,SAAS,KAAK;;AAErB,YAAM,mBAAmB,WACrB,CAAC,MAAe,SAAkB,OAAc;AAC9C,YAAI,MAAM,OAAO,cACb,SAAS,QAAgC,MACzC,sBAAsB;AAE1B,aAAK,CAAC,SAAQ,MAAK,KAAK;AAExB,YAAI;AACF,gBAAM,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAG5D,eAAO,CAAC,OAAO,KAAK,UAAU;;AAGpC,aAAO,iBAAiB,KAAK,SAAS;;;AAGnC,QAAM,mBAAkB,GAAG,CAAC;;;AClQnC;;;;;;;;;;;;;;;;AAwDA,wBAAwC,CACtC,GACA,GACA,aAAa,OACb,aAAa,OACb,MACA,aAAa,UACb;AAUA,QAAI,WAAW,OAAO,MAAM,eAAe,gBAAgB;AACzD,UAAI,SAAS,OAAc,GAAG,GAAG,YAAY;AAC7C,UAAI,QAAQ;AACV,iBAAS,KAAI,QAAQ;;AAGvB,aAAO,gBAAgB,QAAQ,YAAY;;AAG7C,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,QAAI,KAAK,gBAAgB,GAAG,KAAK;AACjC,KAAC,IAAI,MAAM,eAAe,IAAI;AAE9B,UAAM,cACF,aAAa,GAAG,MAAM,GAAG,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO;AAC5D,UAAM,cACF,aAAa,GAAG,MAAM,GAAG,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO;AAE5D,UAAM,cACF,aAAa,GAAG,MAAM,GAAG,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO;AAC5D,UAAM,cACF,aAAa,GAAG,MAAM,GAAG,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO;AAE5D,UAAM,aAAa,GAAG,MAAM,MAAM,GAAG;AACrC,UAAM,aAAa,GAAG,MAAM,MAAM,GAAG;AACrC,UAAM,YAAY,AAAK,cAAc;AACrC,UAAM,YAAY,AAAK,cAAc;AAErC,IAAK,OACD,GAAG,QAAQ,KAAK,GAAG,QAAQ,KAAK,GAAG,SAAS,GAAG,MAC/C,MACI,kFACgB,GAAG,YAAY,GAAG;AAE1C,IAAK,OACD,AAAK,YAAY,YAAY,aAC7B,MAAM,4CAA4C,oBAC3C,sCAAsC,GAAG,aACzC,GAAG;AAEd,IAAK,OACD,gBAAgB,aAChB,MAAM,wCAAwC,qBACvC,uCAAuC,GAAG,aAC1C,GAAG,wBAAwB,6BACX;AAE3B,UAAM,WAAW,GAAG,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa;AAE5D,UAAM,MAAgB,aAClB,QAAQ,IAAI,CAAC,WAAW,aAAa,gBACrC,QAAQ,IAAI,CAAC,WAAW,aAAa;AACzC,UAAM,MAAgB,aAClB,QAAQ,IAAI,CAAC,WAAW,aAAa,gBACrC,QAAQ,IAAI,CAAC,WAAW,aAAa;AAEzC,QAAI;AACJ,QAAI,QAAQ;AACV,cAAQ,gBAAgB,MAAM,QAAQ;AACtC,OAAC,SAAS,eAAe,OAAO;AAEhC,MAAe,2BAA2B,UAAU,MAAM;;AAG5D,QAAI;AACJ,QAAI,0BAA0B;AAC5B,gCAA0B,gBACtB,wBAAwB,iBAAiB;;AAG/C,UAAM,QAAO,CAAC,IAAc;AAC1B,YAAM,CAAC,MAAK,MAAK,GAAG,UAAS;AAI7B,YAAM,eACF,qBAAqB,QAAQ,IAAI,EAAE,QAAQ,GAAG;AAClD,UAAI;AACJ,UAAI;AAEJ,UAAI,CAAC,cAAc,CAAC;AAClB,eAAO,OAAc,cAAc,MAAK,OAAO;AAC/C,eAAO,OAAc,MAAK,cAAc,MAAM;iBACrC,CAAC,cAAc;AACxB,eAAO,OAAc,cAAc,MAAK,OAAO;AAC/C,eAAO,OAAc,cAAc,MAAK,MAAM;iBACrC,cAAc,CAAC;AACxB,eAAO,OAAc,MAAK,cAAc,OAAO;AAC/C,eAAO,OAAc,MAAK,cAAc,OAAO;;AAE/C,eAAO,OAAc,MAAK,cAAc,MAAM;AAC9C,eAAO,OAAc,cAAc,MAAK,MAAM;;AAGhD,UAAI,QAAQ;AACV,cAAM,UAAU,qBAAqB,QAAO;AAC5C,eAAO,CAAC,MAAM,MAAM;;AAEpB,eAAO,CAAC,MAAM;;;AAIlB,UAAM,UAA+B,CAAC;AACpC,YAAM,IAAI,SAAQ,iBAAiB;QACjC,GAAG;QACH,GAAG;QACH;QACA;QACA,MAAM;QACN;QACA,wBAAwB;;AAE1B,aAAO;;AAGT,UAAM,SAA6B;MACjC,GAAG;MACH,GAAG;MACH,MAAM;MACN,wBAAwB;;AAE1B,UAAM,QAA2B,CAAC,YAAY,YAAY;AAI1D,QAAI,QAAQ;AACV,YAAM,WACF,WAAW,CAAC,MAAe,MAAe;AACxC,cAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MACzC,cAAc;AAElB,aAAK,CAAC,MAAK,MAAK;AAEhB,eAAO,CAAC,OAAO,QAAQ,KAAK,WAAW,UAAU;;AAEvD,aAAO,SAAS,KAAK;;AAErB,YAAM,mBAAmB,WACrB,CAAC,MAAe,MAAe,QAAe;AAC5C,cAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MACzC,cAAc;AAElB,aAAK,CAAC,MAAK,MAAK,KAAK;AAErB,eAAO,CAAC,OAAO,QAAQ,KAAK,WAAW,UAAU;;AAGvD,aAAO,iBAAiB,KAAK,KAAK;;;AAI/B,QAAM,UAAS,GAAG,CAAC;;;AClO1B;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;AAkCA,0BAAwB;AACtB,WAAO,aAAa,cAAc,MAAM;;AAEnC,QAAM,gBAAgB,GAAG,CAAC;;;ACrCjC;;;;;;;;;;;;;;;;AAkCA,uBAAqB;AACnB,WAAO,aAAa,cAAc,KAAK;;AAGlC,QAAM,aAAa,GAAG,CAAC;;;ACtC9B;;;;;;;;;;;;;;;;AA2CA,kBACI,SAAkB,aAAqB,WAAmB,SAAS,OACnE,WAAW;AACb,QAAI,QAAQ;AACZ,UAAM,SAAmB;AACzB,WAAO,QAAQ,eAAe,QAAO;AACnC,aAAO,KAAK,MAAM,SAAQ,OAAO;AACjC,eAAS;;AAGX,QAAI;AACF,aAAO,QAAQ,QAAO;AACpB,cAAM,SAAU,QAAQ,cAAe,QAAO;AAC9C,cAAM,OAAM,OAAO;UACjB,MAAM,SAAQ,OAAO,cAAc;UAAS,KAAK,CAAC,SAAS;;AAE7D,eAAO,KAAK;AACZ,iBAAS;;;AAIb,QAAI,OAAO,WAAW;AACpB,aAAO,SAAS,IAAI,CAAC,GAAG;;AAG1B,WAAO,QAAQ,OAAO,SAAS,CAAC,OAAO,QAAQ;;AAE1C,QAAM,QAAQ,GAAG,CAAC;;;ACtEzB;;;;;;;;;;;;;;;;AA6CA,iBACI,SAAkB,aAAqB,WACvC,WACA,WAAyC;AAC3C,QAAI,aAAa;AACf,kBAAY,oBAAoB;;AAElC,UAAM,eAAe,MAAM,SAAQ,aAAa;AAChD,UAAM,iBAAiB,IAAI,cAAc,SAAS;AAClD,UAAM,SAAmB;AACzB,aAAS,IAAI,GAAG,IAAI,aAAa,MAAM,IAAI;AACzC,aAAO,KACH,KAAK,MAAM,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,eAAe;;AAE5D,WAAO,OAAO;;AAET,QAAM,OAAO,GAAG,CAAC;;;AC7DxB;;;;;;;;;;;;;;;;AAkDA,0BACI,QACA,OACA,QACA,UACA,QACA;AAEF,UAAM,SAAS,gBAAgB,QAAO,SAAS;AAC/C,UAAM,SAAS,gBAAgB,OAAO,SAAS,iBAAiB;AAChE,UAAM,UAAU,gBAAgB,QAAQ,UAAU,iBAAiB;AACnE,aAAS,UAAU;AACnB,yBAAqB,sBAAsB;AAE3C,UAAM,WAAW,OAAO,MAAM;AAE9B,IAAK,OACD,OAAO,SAAS,GAChB,MAAM,6DACc,OAAO;AAC/B,IAAK,OACD,OAAO,SAAS,KAAK,OAAO,MAAM,OAAO,GACzC,MAAM,oDAAoD,6BACrC,OAAO;AAChC,IAAK,OACD,QAAQ,SAAS,KAAK,QAAQ,MAAM,OAAO,UAC3C,MAAM,qDAAqD,2BACtC,OAAO;AAChC,IAAK,OACD,SAAS,WAAW,GACpB,MAAM,wEACQ,SAAS;AAC3B,IAAK,OACD,SAAS,MAAM,KAAK,SAAS,MAAM,GACnC,MAAM,2CAA2C;AACrD,IAAK,OACD,WAAW,cAAc,WAAW,WACpC,MAAM,+CAA+C;AAEzD,UAAM,UAAiC,CAAC,aAAY,SAAQ,cACxD,QAAQ,QAAQ,SAAS,UAAU,QAAQ;AAE/C,UAAM,SACoB,CAAC,OAAO,QAAQ,OAAO,QAAQ,QAAQ;AACjE,UAAM,QAA4B,CAAC,QAAQ,oBAAoB;AAC/D,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MAAiB,eAC1D;AACJ,WAAO;;AAGF,QAAM,gBAAgB,GAAG,CAAC;;;ACrGjC;;;;;;;;;;;;;;;;AAkCA,0BAAwB;AACtB,UAAM,SAAS,gBAAgB,QAAO,SAAS,iBAAiB;AAEhE,IAAK,OACD,OAAO,SAAS,GAChB,MAAM,6DACc,OAAO;AAE/B,UAAM,SAA8B,CAAC,OAAO;AAC5C,UAAM,MACF,OAAO,UAAU,eAAe,QAAgC;AACpE,WAAO;;AAGF,QAAM,gBAAgB,GAAG,CAAC;;;AChDjC;;;;;;;;;;;;;;;;AA2CA,6BACI,QAA4B,SAC5B,YAA6C,GAC7C,SAAkC;AACpC,UAAM,SAAS,gBAAgB,QAAO,SAAS,oBAAoB;AAEnE,IAAK,OACD,OAAO,SAAS,GAChB,MAAM,gEACc,OAAO;AAE/B,UAAM,SAAiC,CAAC,OAAO;AAC/C,UAAM,QAA+B,CAAC,SAAS,WAAW;AAC1D,UAAM,MAAM,OAAO,UACf,kBAAkB,QAClB;AACJ,WAAO;;AAGF,QAAM,mBAAmB,GAAG,CAAC;;;AC9DpC;;;;;;;;;;;;;;;;AAoBA,iCACI,OAAiB,QAAkB,eACnC,cAAsB,gBAAwB;AAMhD,QAAI,gBAAgB;AAClB,qBAAe;;AAEjB,QAAI,kBAAkB;AACpB,uBAAiB,OAAO;;AAE1B,QAAI,gBAAgB;AAClB,qBAAe;;AAGjB,UAAM,WAAW,MAAM,MAAM;AAC7B,oBAAgB,KAAK,IAAI,eAAe;AAExC,IAAK,OACD,KAAK,gBAAgB,gBAAgB,GACrC,MAAM,4CAA4C;AACtD,IAAK,OACD,MAAM,SAAS,GACf,MAAM,+CAA+C,MAAM;AAC/D,IAAK,OACD,MAAM,MAAM,OAAO,GACnB,MACI,oDAAoD,MAAM,MAAM;AACxE,IAAK,OAAO,OAAO,SAAS,GAAG,MAAM;AACrC,IAAK,OACD,OAAO,MAAM,OAAO,UACpB,MAAM,sDAAsD,qBAC7C,OAAO,MAAM;AAChC,IAAK,OACD,KAAK,gBAAgB,gBAAgB,GACrC,MAAM,4CAA4C;AACtD,WAAO,CAAC,eAAe,cAAc,gBAAgB;;;;AC3DvD;;;;;;;;;;;;;;;;AA0BA,8BACI,OAA4B,QAC5B,eAAuB,eAAe,KACtC,iBAAiB,OAAO;AAC1B,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAC/C,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,UAAM,SAAS,sBACX,QAAQ,SAAS,eAAe,cAAc;AAClD,oBAAgB,OAAO;AACvB,mBAAe,OAAO;AACtB,qBAAiB,OAAO;AAExB,UAAM,QAAQ,CAAC,eAAe,cAAc;AAC5C,WAAO,OAAO,cACV,OAAK,EAAE,kBACH,QAAQ,SAAS,eAAe,cAAc,iBAClD,CAAC,OAAO,QAAQ,QAAQ,UAAU,MAAiB,qBACnD;;AAGC,QAAM,oBAAoB,GAAG,CAAC;;;AC/CrC;;;;;;;;;;;;;;;;AA8BM,wBACF,KAAU,SAAY;AACxB,UAAM,QAAQ,aAAa,KAAK,SAAS;AACzC,UAAM,iBAAiB,QAAQ,IAAI,CAAE,SAAQ,KAAK;AAClD,QAAI,OAAO,gBAAgB,GAAG;;AAkB1B,wBACF,KAAU,QAAW;AACvB,WAAO,cAAc,KAAK,QAAQ,cAAc;;AAUlD,6BAA8B,GAAM;AAClC,WAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK;;AAGlC,yBACI,KAAU,QAAW;AACvB,QAAI,OAAO;AACX,QAAI,QAAQ,IAAI;AAChB,QAAI,SAAS;AACb,QAAI,QAAQ;AACZ,WAAO,OAAO;AACZ,eAAS,OAAS,SAAQ,SAAU;AACpC,YAAM,gBAAgB,WAAW,QAAQ,IAAI;AAC7C,UAAI,gBAAgB;AAClB,eAAO,SAAS;;AAEhB,gBAAQ;AAGR,gBAAQ,CAAC;;;AAIb,WAAO,QAAQ,OAAO,CAAC,OAAO;;;;ACvFhC;;;;;;;;;;;;;;;;AAmCM,mCACF,OAAmB,QAAoB,eACvC,cAAsB;AACxB,WAAO,uBACI,OAAO,QAAQ,eAAe,cAAc,gBAC5C,GACC;;AAGR,mCACF,OAAmB,QAAoB,eACvC,cAAsB,gBACtB;AACF,WAAO,uBACH,OAAO,QAAQ,eAAe,cAAc,gBAC5C,GAAsB,OACtB,oBAA6C;;AAI7C,mCACF,OAAmB,QAAoB,eACvC,cAAsB,gBACtB;AACF,WAAO,uBACH,OAAO,QAAQ,eAAe,cAAc,gBAAgB,cAC5D;;AAGN,kCACI,OAAmB,QAAoB,eACvC,cAAsB,gBAAwB,cAC9C,qBAAqB,OAAO,qBAAqB,OACjD,qBAAqB;AAGvB,UAAM,aAAa;AAEnB,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ;AACjC,UAAI,OAAO,KAAK;AACd,mBAAW,KAAK,CAAC,OAAO,OAAO,IAAI,UAAU,GAAG,oBAAoB;;;AAIxE,eAAW,KAAK;AAIhB,UAAM,SAAQ,eAAe,IAAK,OAAO,eAAgB;AAEzD,UAAM,kBAA4B;AAClC,UAAM,iBAA2B;AAEjC,WAAO,gBAAgB,SAAS,iBAAiB,WAAW,SAAS;AACnE,YAAM,YAAY,WAAW;AAC7B,YAAM,CAAC,OAAO,eAAe,UAAU,sBAAsB;AAE7D,UAAI,gBAAgB;AAClB;;AASF,UAAI,kBAAkB;AACtB,eAAS,IAAI,gBAAgB,SAAS,GAAG,KAAK,oBAAoB,EAAE;AAClE,cAAM,OAAM,sBAAsB,OAAO,UAAU,gBAAgB;AAEnE,YAAI,QAAO;AACT,4BAAkB;AAClB;;AAGF,kBAAU,QACN,UAAU,QAAQ,eAAe,cAAc,QAAO;AAE1D,YAAI,UAAU,SAAS;AACrB;;;AAWJ,gBAAU,qBAAqB,gBAAgB;AAE/C,UAAI,CAAC;AAGH,YAAI,UAAU,UAAU;AACtB,0BAAgB,KAAK;AACrB,yBAAe,KAAK,UAAU;mBACrB,UAAU,QAAQ;AAG3B,uBAAa,YAAY,WAAW;;;;AAM1C,UAAM,eAAe,gBAAgB;AACrC,UAAM,aAAa,gBAAgB;AAEnC,QAAI,sBAAsB,aAAa;AACrC,sBAAgB,KAAK,GAAG,IAAI,MAAM,YAAY,KAAK;AACnD,qBAAe,KAAK,GAAG,IAAI,MAAM,YAAY,KAAK;;AAGpD,UAAM,SACe,CAAC,iBAAiB,SAAS,iBAAiB;AAEjE,QAAI;AACF,aAAO,oBAAoB,SAAS,gBAAgB;;AAGtD,QAAI;AACF,aAAO,kBAAkB,OAAO,cAAc;;AAGhD,WAAO;;AAGT,iCAA+B,OAAmB,GAAW;AAC3D,UAAM,SAAS,MAAM,SAAS,IAAI,GAAG,IAAI,IAAI;AAC7C,UAAM,SAAS,MAAM,SAAS,IAAI,GAAG,IAAI,IAAI;AAC7C,UAAM,QAAQ,KAAK,IAAI,OAAO,IAAI,OAAO;AACzC,UAAM,QAAQ,KAAK,IAAI,OAAO,IAAI,OAAO;AACzC,UAAM,QAAQ,KAAK,IAAI,OAAO,IAAI,OAAO;AACzC,UAAM,QAAQ,KAAK,IAAI,OAAO,IAAI,OAAO;AACzC,UAAM,QAAQ,KAAK,IAAI,OAAO,IAAI,OAAO;AACzC,UAAM,QAAQ,KAAK,IAAI,OAAO,IAAI,OAAO;AACzC,UAAM,QAAQ,KAAK,IAAI,OAAO,IAAI,OAAO;AACzC,UAAM,QAAQ,KAAK,IAAI,OAAO,IAAI,OAAO;AACzC,UAAM,QAAS,SAAQ,SAAU,SAAQ;AACzC,UAAM,QAAS,SAAQ,SAAU,SAAQ;AACzC,QAAI,SAAS,KAAK,SAAS;AACzB,aAAO;;AAET,UAAM,mBAAmB,KAAK,IAAI,OAAO;AACzC,UAAM,mBAAmB,KAAK,IAAI,OAAO;AACzC,UAAM,mBAAmB,KAAK,IAAI,OAAO;AACzC,UAAM,mBAAmB,KAAK,IAAI,OAAO;AACzC,UAAM,mBAAmB,KAAK,IAAI,mBAAmB,kBAAkB,KACnE,KAAK,IAAI,mBAAmB,kBAAkB;AAClD,WAAO,mBAAoB,SAAQ,QAAQ;;AAO7C,0BAAwB,cAAsB,QAAe;AAC3D,UAAM,SAAS,KAAK,IAAI,SAAQ,OAAM;AACtC,WAAO,QAAO,eAAe,SAAS;;AAGxC,+BAA6B,IAAe;AAK1C,WAAQ,GAAG,QAAQ,GAAG,SAChB,GAAG,UAAU,GAAG,SAAW,GAAG,WAAW,GAAG;;;;AC7MpD;;;;;;;;;;;;;;;;AAyCA,yCACI,OAA4B,QAC5B,eAAuB,eAAe,KACtC,iBAAiB,OAAO;AAC1B,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAC/C,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,UAAM,SAAS,sBACX,QAAQ,SAAS,eAAe,cAAc;AAClD,oBAAgB,OAAO;AACvB,mBAAe,OAAO;AACtB,qBAAiB,OAAO;AAExB,UAAM,iBAAiB,MAAM,QAAQ,IAAI,CAAC,OAAO,QAAQ,QAAQ;AACjE,UAAM,YAAY,eAAe;AACjC,UAAM,aAAa,eAAe;AAKlC,UAAM,MAAM,wBACR,WAAW,YAAY,eAAe,cAAc;AACxD,QAAI,WAAW;AACb,aAAO;;AAET,QAAI,YAAY;AACd,cAAQ;;AAEV,WAAO;;AAGF,QAAM,yBAAyB;;;ACxEtC;;;;;;;;;;;;;;;;AAwDA,uCACI,OAA4B,QAC5B,eAAuB,eAAe,KACtC,iBAAiB,OAAO,mBACxB,eAAe;AACjB,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAC/C,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,UAAM,SAAS,sBACX,QAAQ,SAAS,eAAe,cAAc,gBAC9C;AACJ,oBAAgB,OAAO;AACvB,mBAAe,OAAO;AACtB,qBAAiB,OAAO;AACxB,mBAAe,OAAO;AAEtB,UAAM,SAAoC,CAAC,OAAO,QAAQ,QAAQ;AAClE,UAAM,QACF,CAAC,eAAe,cAAc,gBAAgB;AAElD,UAAM,SAAS,OAAO,UACH,qBAAqB,QACrB;AAEnB,WAAO,CAAC,iBAAiB,OAAO,IAAI,gBAAgB,OAAO;;AAGtD,QAAM,6BAA6B,GAAG,CAAC;;;ACnF9C;;;;;;;;;;;;;;;;AAmDA,kDACI,OAA4B,QAC5B,eAAuB,eAAe,KACtC,iBAAiB,OAAO,mBACxB,eAAe;AACjB,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAC/C,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,UAAM,SAAS,sBACX,QAAQ,SAAS,eAAe,cAAc,gBAC9C;AACJ,oBAAgB,OAAO;AACvB,mBAAe,OAAO;AACtB,qBAAiB,OAAO;AACxB,mBAAe,OAAO;AAEtB,UAAM,iBAAiB,MAAM,QAAQ,IAAI,CAAC,OAAO,QAAQ,QAAQ;AACjE,UAAM,YAAY,eAAe;AACjC,UAAM,aAAa,eAAe;AAKlC,UAAM,MAAM,wBACR,WAAW,YAAY,eAAe,cAAc,gBACpD;AAEJ,QAAI,WAAW;AACb,aAAO;;AAET,QAAI,YAAY;AACd,cAAQ;;AAEV,WAAO;;AAGF,QAAM,kCAAkC;;;ACvF/C;;;;;;;;;;;;;;;;AAkDA,oCACI,OAA4B,QAC5B,eAAuB,eAAe,KACtC,iBAAiB,OAAO,mBACxB,qBAAqB;AACvB,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAC/C,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,UAAM,SAAS,sBACX,QAAQ,SAAS,eAAe,cAAc,gBAC9C;AACJ,UAAM,iBAAiB,OAAO;AAC9B,UAAM,gBAAgB,OAAO;AAC7B,UAAM,kBAAkB,OAAO;AAE/B,UAAM,SAAoC,CAAC,OAAO,QAAQ,QAAQ;AAClE,UAAM,QAAkC;MACtC,eAAe;MACf,cAAc;MACd,gBAAgB;MAChB;;AAGF,UAAM,SAAS,OAAO,UACH,qBAAqB,QACrB;AAEnB,WAAO,CAAC,iBAAiB,OAAO,IAAI,cAAc,OAAO;;AAGpD,QAAM,0BAA0B,GAAG,CAAC;;;AChF3C;;;;;;;;;;;;;;;;AA6CA,+CACI,OAA4B,QAC5B,eAAuB,eAAe,KACtC,iBAAiB,OAAO,mBACxB,qBAAqB;AACvB,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAC/C,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,UAAM,SAAS,sBACX,QAAQ,SAAS,eAAe,cAAc,gBAC9C;AACJ,UAAM,iBAAiB,OAAO;AAC9B,UAAM,gBAAgB,OAAO;AAC7B,UAAM,kBAAkB,OAAO;AAE/B,UAAM,CAAC,WAAW,cACd,MAAM,QAAQ,IAAI,CAAC,OAAO,QAAQ,QAAQ;AAK9C,UAAM,MAAM,wBACR,WAAW,YAAY,gBAAgB,eAAe,iBACtD;AAEJ,QAAI,WAAW;AACb,aAAO;;AAET,QAAI,YAAY;AACd,cAAQ;;AAEV,WAAO;;AAGF,QAAM,+BAA+B;;;AC/E5C;;;;;;;;;;;;;;;;AA0CA,2BACI,QAAsB,MAAwB,eAAe;AAC/D,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,IAAK,OACD,QAAQ,SAAS,KAAK,QAAQ,SAAS,GACvC,MAAM,gEACM,QAAQ;AACxB,IAAK,OACD,KAAK,WAAW,GAChB,MAAM,6DACC;AAEX,QAAI,cAAc;AAClB,QAAI,eAAe;AACnB,QAAI,QAAQ,SAAS;AACnB,qBAAe;AACf,oBAAc,QACV,SAAS,CAAC,GAAG,QAAQ,MAAM,IAAI,QAAQ,MAAM,IAAI,QAAQ,MAAM;;AAGrE,UAAM,CAAC,WAAW,YAAY;AAC9B,UAAM,UAAiC,CAAC,UAAS;AAC/C,WAAK,CAAC;AACN,aAAO,SAAQ,eACX,aAAa,WAAW,UAAU;;AAGxC,UAAM,SAA+B,CAAC,QAAQ;AAC9C,UAAM,QAA6B,CAAC,cAAc;AAElD,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MACzC,gBAAgB;AAEpB,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAE7D,WAAO;;AAGF,QAAM,iBAAiB,GAAG,CAAC;;;ACnFlC;;;;;;;;;;;;;;;;AA0CA,kCACI,QAAsB,MAAwB,eAAe;AAC/D,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,IAAK,OACD,QAAQ,SAAS,KAAK,QAAQ,SAAS,GACvC,MAAM,uEACM,QAAQ;AACxB,IAAK,OACD,KAAK,WAAW,GAChB,MACI,oEACG;AACX,IAAK,OACD,QAAQ,UAAU,aAAa,QAAQ,UAAU,SACjD,MAAM;AAEV,QAAI,cAAc;AAClB,QAAI,eAAe;AACnB,QAAI,QAAQ,SAAS;AACnB,qBAAe;AACf,oBAAc,QACV,SAAS,CAAC,GAAG,QAAQ,MAAM,IAAI,QAAQ,MAAM,IAAI,QAAQ,MAAM;;AAErE,UAAM,CAAC,WAAW,YAAY;AAE9B,UAAM,SAAsC,CAAC,QAAQ;AACrD,UAAM,QAAoC,CAAC,cAAc;AAEzD,UAAM,UAAiC,CAAC,UAAS;AAC/C,WAAK,CAAC;AACN,aAAO,SAAQ,sBACX,aAAa,WAAW,UAAU;;AAGxC,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MACzC,uBAAuB;AAE3B,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAE7D,WAAO;;AAGF,QAAM,wBAAwB,GAAG,CAAC;;;ACvFzC;;;;;;;;;;;;;;;;AA0EA,qBACI,GAAiB,UAAkB;AACrC,WACI,WAAW,MAAM,GACjB,MAAM,gDAAgD;AAC1D,WACI,WAAW,MAAM,GACjB,MAAM,gDAAgD;AAE1D,UAAM,KAAK,gBAAgB,GAAG,KAAK;AAEnC,WACI,GAAG,QAAQ,GACX,MAAM,4CAA4C,GAAG;AAEzD,UAAM,QAAQ,GAAG;AACjB,UAAM,CAAC,GAAG,KAAK,GAAG,MAAM,MAAM;AAE9B,QAAI,CAAE,aAAY;AAChB,YAAM,IAAI,MACN,yBAAyB,0DACwB;;AAEvD,QAAI,CAAE,aAAY;AAChB,YAAM,IAAI,MACN,yBAAyB,6DAC2B;;AAG1D,QAAI,WAAW;AACb,iBAAW;;AAEb,QAAI,WAAW;AACb,iBAAW;;AAGb,UAAM,IAAI,QAAQ,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI;AAChD,UAAM,IAAI,MAAM,GAAG,GAAG,GAAG;AACzB,UAAM,KAAK,IAAI,GAAG;AAElB,UAAM,SAAS,WACX,UAAU,IAAI,OAAO,CAAC,UAAU,WAChC,aAAa,IAAI,OAAO,CAAC,UAAU;AAEvC,UAAM,OAAO,MAAM,CAAC,GAAG,IAAI,GAAG;AAE9B,WAAO,QACI,MAAM,QAAQ,QAAQ,IAAI,CAAC,IAAI,GAAG,KACvB,IAAI,SAAO,MAAM,QAAQ,KAAK,SACzC;;AAGN,QAAM,WAAW,GAAG,CAAC;;;AC9H5B;;;;;;;;;;;;;;;;AA4DA,wBAAsB;AACpB,QAAI;AACJ,QAAI,MAAM,QAAQ;AAChB,wBAAkB;AAClB,aACI,MAAM,QAAQ,GAAG,SAAS,GAC1B,MAAM;AAEV,YAAM,MAAM,GAAG,GAAG,MAAM;AACxB,eAAS,IAAI,GAAG,IAAI,GAAG,QAAQ,EAAE;AAC/B,eACI,GAAG,GAAG,MAAM,OAAO,KACnB,MACI,iEACK,GAAkB,GAAG,MAAM,UAAU;;;AAGpD,wBAAkB;AAClB,WAAK,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,IAAI,OAAK,QAAQ,GAAG,CAAC;;AAGtD,WACI,GAAG,UAAU,GAAG,GAAG,MAAM,IACzB,MAAM,oCACK,GAAkB,yCACC,GAAkB,GAAG,MAAM;AAE7D,UAAM,KAAiB;AACvB,UAAM,OAAO;AACb,aAAS,IAAI,GAAG,IAAI,GAAG,QAAQ,EAAE;AAC/B,SAAG,KAAK,OAAO,KAAK;AAClB,YAAI,IAAI,KAAK;AACb,YAAI,IAAI;AACN,mBAAS,IAAI,GAAG,IAAI,GAAG,EAAE;AACvB,kBAAM,OAAO,IAAI,KAAI,IAAI,GAAG,IAAI,KAAK,GAAG;AACxC,gBAAI,IAAI,GAAG;;;AAGf,eAAO,IAAI,GAAG,KAAK,GAAG;;;AAI1B,QAAI;AACF,aAAO,MAAM,IAAI;;AAEjB,aAAO;;;AAIJ,QAAM,cAAc,GAAG,CAAC;;;AC7G/B;;;;;;;;;;;;;;;;AAoFA,eAAa,GAAW,eAAe;AACrC,WACI,EAAE,QAAQ,GACV,MAAM,gEACF,EAAE;AAEV,QAAI,EAAE,SAAS;AACb,aAAO,KAAK,GAAe;;AAM3B,YAAM,gBAAgB,EAAE,MAAM,MAAM,GAAG,EAAE,MAAM,SAAS,GAC7B,OAAO,CAAC,OAAO,SAAS,QAAQ;AAC3D,YAAM,OAAO,QACT,QACI,GACA;QACE;QAAe,EAAE,MAAM,EAAE,MAAM,SAAS;QACxC,EAAE,MAAM,EAAE,MAAM,SAAS;UAE/B;AACJ,YAAM,OAAmB;AACzB,YAAM,OAAmB;AACzB,WAAK,QAAQ;AACX,cAAM,CAAC,KAAK,OAAO,KAAK,KAAiB;AACzC,aAAK,KAAK;AACV,aAAK,KAAK;;AAEZ,YAAM,IAAI,QAAQ,MAAM,MAAM,IAAI,EAAE;AACpC,YAAM,IAAI,QAAQ,MAAM,MAAM,IAAI,EAAE;AACpC,aAAO,CAAC,GAAG;;;AAIf,gBAAc,GAAa,eAAe;AACxC,WAAO,OAAO,KAAK;AACjB,aACI,EAAE,MAAM,WAAW,GACnB,MAAM,0CACF,EAAE,MAAM;AAEhB,YAAM,IAAI,EAAE,MAAM;AAClB,YAAM,IAAI,EAAE,MAAM;AAElB,UAAI,IAAI,IAAI;AACZ,UAAI,IAAI,MAAM;AAEd,YAAM,QAAQ,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG;AAClC,UAAI,IAAc,MAAM;AAExB,YAAM,QAAQ,KAAK,IAAI,IAAI;AAC3B,eAAS,IAAI,GAAG,IAAI,OAAO,EAAE;AAG3B,cAAM,QAAQ;AACd,cAAM,QAAQ;AACd,cAAM,QAAQ;AACd,SAAC,GAAG,GAAG,KAAK,OAAO,KAAK;AAEtB,gBAAM,SAAS,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG;AACxC,gBAAM,QAAQ,KAAK;AACnB,gBAAM,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG;AAGjC,gBAAM,IAAI,MAAM,QAAQ,KAAK,IAAI,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC;AAE9D,gBAAM,KAAK,IAAI,KAAK,IAAI,GAAG;AAC3B,gBAAM,OAAO,IAAI,QAAQ;AACzB,cAAI,KAAK,MAAM,OAAO;AACpB,gBAAI,MAAM;;AAEV,gBAAI,OACA;cACE;cACA,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,KAAK,GAAG,KAAK,MAAM;eAGrD;;AAEN,gBAAM,MAAM,IAAI,IAAI,OAAO,GAAG,KAAK;AAGnC,gBAAM,WAAW,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG;AAC1C,gBAAM,YAAsB,IAAI,KAAK;AACrC,gBAAM,KAAe,UAAU;AAC/B,cAAI,MAAM;AACR,gBAAI,IAAI,UAAU,OAAO,WAAW,OAAO,IAAI;;AAE/C,kBAAM,YACF,IAAI,UAAU,OAAO,WAAW,OAAO,IAAI;AAC/C,gBAAI,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,YAAY;;AAEpD,gBAAM,aAAuB,UAAU;AACvC,gBAAM,WAAW,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK;AACnD,cAAI,MAAM;AACR,gBAAI,IAAI,UAAU,OAAO,OAAO,UAAU,IAAI;;AAE9C,kBAAM,YACF,IAAI,UAAU,OAAO,OAAO,UAAU,IAAI;AAC9C,gBAAI,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,YAAY;;AAEpD,iBAAO,CAAC,GAAG,GAAG;;AAEhB,gBAAQ,CAAC,OAAO,OAAO;;AAGzB,UAAI,CAAC,gBAAgB,IAAI;AACvB,YAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG;AACzB,YAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG;;AAG3B,aAAO,CAAC,GAAG;;;AAIR,QAAM,KAAK,GAAG,CAAC;;;ACzMtB;;;;;;;;;;;;;;;;AAiBA,MAAY;AAAZ,EAAA,UAAY;AACV,eAAA,WAAA,UAAA,KAAA;AACA,eAAA,WAAA,UAAA,KAAA;AACA,eAAA,WAAA,SAAA,KAAA;AACA,eAAA,WAAA,4BAAA,KAAA;KAJU,aAAA,aAAS;;;ACwBrB,gCACI,SAAsB,SACtB,YAAY,UAAU;AACxB,UAAM,UAAU,gBAAgB,SAAQ,UAAU;AAClD,QAAI,WAAmB;AACvB,QAAI,WAAW;AACb,iBAAW,gBAAgB,SAAS,WAAW;;AAGjD,UAAM,eAAgB,YAAY,OAAQ,UAAU,IAAI,SAAS;AAEjE,QAAI,cAAc,UAAU;AAC1B,aAAO;;AAET,QAAI,cAAc,UAAU;AAC1B,aAAO,KAAI;;AAEb,QAAI,cAAc,UAAU;AAC1B,UAAI,YAAY;AACd,eAAO,KAAK;;AAEZ,cAAM,kBAAkB,QAAQ,OAAO,SAAS;AAChD,cAAM,SAAS,IAAI,KAAI,eAAe,KAAI;AAC1C,eAAO,kBAAkB,IAAI,IAAI,QAAQ,OAAO,oBACnB;;;AAGjC,QAAI,cAAc,UAAU;AAC1B,UAAI,YAAY;AACd,eAAO,IAAI,KAAI,eAAe,OAAO,QAAQ;;AAE7C,cAAM,qBAAqB,IAAI,UAAU,MAAK,QAAQ;AAEtD,cAAM,cACF,KAAK,KAAI,SAAS,oBAAoB,OAAO,MAAM;AACvD,eAAO,IAAI,KAAI,eAAe;;;AAIlC,UAAM,MAAM,sBAAsB;;AAE7B,QAAM,sBAAsB,GAAG,CAAC;;;AClFvC;;;;;;;;;;;;;;;;AA0CA,+BACI,QAAsB,aACtB,SACA,YAAY,UAAU;AACxB,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAClD,UAAM,eACF,gBAAgB,aAAa,eAAe;AAChD,QAAI,WAAmB;AACvB,QAAI,WAAW;AACb,iBAAW,gBAAgB,SAAS,WAAW;;AAEjD,sBACI,QAAQ,OAAO,aAAa,OAAO;AAEvC,UAAM,UAAS,IAAI,IAAI,SAAS;AAChC,WAAO,oBAAoB,SAAQ,UAAU;;AAGxC,QAAM,qBAAqB,GAAG,CAAC;;;AChBtC,2BACI,QAAsB,aAA2B,MACjD,SACA,YAAY,UAAU;AACxB,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAClD,UAAM,eACF,gBAAgB,aAAa,eAAe;AAChD,QAAI,WAAmB;AACvB,QAAI,WAAW;AACb,iBAAW,gBAAgB,SAAS,WAAW;;AAEjD,sBACI,QAAQ,OAAO,aAAa,OAAO;AAEvC,UAAM,MAAM,OAAO;AACnB,UAAM,UAAS,IAAI,KAAK,KAAI,IAAI,SAAS,eAAe,MAAM;AAC9D,WAAO,oBAAoB,SAAQ,UAAU;;AAExC,QAAM,iBAAiB,GAAG,CAAC;;;ACnBlC,sBACI,QAAsB,aACtB,SACA,YAAY,UAAU;AACxB,QAAI,UAAU,gBAAgB,QAAQ,UAAU;AAChD,UAAM,eAAe,gBAAgB,aAAa,eAAe;AACjE,QAAI,WAAmB;AACvB,QAAI,WAAW;AACb,iBAAW,gBAAgB,SAAS,WAAW;;AAEjD,sBAAkB,QAAQ,OAAO,aAAa,OAAO;AAErD,UAAM,MAAM,OAAO;AAEnB,cAAU,IAAI,IAAI,OAAO,IAAI,UAAU;AACvC,UAAM,UAAS,KAAK,IAAI,KAAK,IAAI,SAAS;AAC1C,WAAO,oBAAoB,SAAQ,UAAU;;AAExC,QAAM,YAAY,GAAG,CAAC;;;AC7D7B;;;;;;;;;;;;;;;;AAgDA,sBACI,QAAsB,aACtB,SAA6B,QAAQ,GACrC,YAAY,UAAU;AACxB,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAClD,UAAM,eAAe,gBAAgB,aAAa,eAAe;AACjE,QAAI,WAAmB;AACvB,QAAI,WAAW;AACb,iBAAW,gBAAgB,SAAS,WAAW;;AAEjD,sBAAkB,QAAQ,OAAO,aAAa,OAAO;AAErD,UAAM,cAAc,OAAO;AAC3B,UAAM,QAAQ,IAAI,IAAI,cAAc;AACpC,UAAM,YAAY,QAAQ,OAAO;AACjC,UAAM,SAAS,IAAI,OAAO;AAE1B,UAAM,UACF,KAAI,IAAI,OAAO,MAAM,OAAO,aAAa,IAAI,aAAa;AAC9D,WAAO,oBAAoB,SAAQ,UAAU;;AAExC,QAAM,YAAY,GAAG,CAAC;;;ACrE7B;;;;;;;;;;;;;;;;AA+CA,oBACI,QAAsB,aACtB,SAA6B,WAAU,MACvC,YAAY,UAAU;AACxB,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAClD,UAAM,eAAe,gBAAgB,aAAa,eAAe;AACjE,QAAI,WAAmB;AACvB,QAAI,WAAW;AACb,iBAAW,gBAAgB,SAAS,WAAW;;AAEjD,sBAAkB,QAAQ,OAAO,aAAa,OAAO;AAErD,UAAM,MAAM,OAAO;AACnB,UAAM,gBAAgB,OAAO;AAE7B,UAAM,KAAK,IAAI,IAAI,SAAS,IAAI,KAAI,cAAc;AAClD,UAAM,KACF,IAAI,IAAI,KAAK,UAAU,IAAI,KAAI,IAAI,KAAK,eAAe;AAC3D,UAAM,UAAS,IAAI,IAAI;AACvB,WAAO,oBAAoB,SAAQ,UAAU;;AAExC,QAAM,UAAU,GAAG,CAAC;;;ACpE3B;;;;;;;;;;;;;;;;AAuCA,6BACI,QAAsB,aACtB,SACA,YAAY,UAAU;AACxB,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAClD,UAAM,eACF,gBAAgB,aAAa,eAAe;AAChD,QAAI,WAAmB;AACvB,QAAI,WAAW;AACb,iBAAW,gBAAgB,SAAS,WAAW;;AAEjD,sBACI,QAAQ,OAAO,aAAa,OAAO;AAEvC,UAAM,UAAS,kBAAkB,SAAS;AAC1C,WAAO,oBAAoB,SAAQ,UAAU;;AAExC,QAAM,mBAAmB,GAAG,CAAC;;;ACxDpC;;;;;;;;;;;;;;;;AAmCA,0CACI,QAAsB;AACxB,UAAM,UACF,gBAAgB,QAAQ,UAAU;AACtC,UAAM,UACF,gBAAgB,QAAQ,UAAU;AACtC,sBACI,QAAQ,OAAO,QAAQ,OAAO;AAsBlC,UAAM,YAAY,KAAK;AACvB,UAAM,gBAAgB,IAAI,SAAS;AACnC,UAAM,gBAAgB,MAAM,IAAI,IAAI,IAAI;AAExC,WAAO,KAAI,IAAI,WAAW,gBAAgB;;AAuB5C,gCACI,kBAAgC,QAChC,SAA6B,iBAAiB,GAC9C,YAAY,UAAU;AACxB,QAAI,oBAAoB,gBACpB,kBAAkB,oBAAoB;AAC1C,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAClD,QAAI,WAAmB;AACvB,QAAI,WAAW;AACb,iBAAW,gBAAgB,SAAS,WAAW;;AAEjD,sBACI,kBAAkB,OAAO,QAAQ,OAAO;AAE5C,QAAI,iBAAiB;AACnB,YAAM,uBAAuB,OAAO;AACpC,YAAM,MAAM,OAAO;AACnB,YAAM,OAAO,OAAO;AAEpB,0BACI,KAAI,IAAI,mBAAmB,IAAI,KAAK,wBAChC,IAAI,MAAM;;AAEpB,UAAM,UAAS,+BAA+B,mBAAmB;AAEjE,WAAO,oBAAoB,SAAQ,UAAU;;AAGxC,QAAM,sBAAsB,GAAG,CAAC;;;ACvHvC;;;;;;;;;;;;;;;;AA+DA,0CACI,QAAW,QAAW,MAAM;AAC9B,QAAI,QAAQ;AACV,YAAM,OAAO,OAAO;;AAGtB,QAAI,QAAQ,OAAO,OAAO;AACxB,YAAM,MACF,mGACuC,OAAO,oBAC/B;;AAGrB,UAAM,WACF,WAAW,CAAC,SAAgB,SAAgB;AAI1C,YAAM,WAAW;AACjB,YAAM,MAAM,UAAU,SAAQ,CAAC,MAAM;AACrC,YAAM,YAAY,IAAI,KAAK,SAAQ,YAAY;AAC/C,WAAK,CAAC,SAAQ;AAEd,YAAM,aAAa,IAAI,IAAI,WAAW;AACtC,YAAM,QAAW,KAAI,YAAY,CAAC;AAElC,YAAM,WAAW,CAAC,IAAO;AACvB,cAAM,CAAC,SAAQ,cAAa;AAC5B,cAAM,UAAU,qBAAqB,GAAG,OAAO,CAAC;AAChD,eAAO;UACL,IAAI,QAAQ,IAAI,UACZ,IAAI,KAAK,SAAQ,YAAY,IAAI;UACrC,IAAI,QAAQ,IAAI,UACZ,IAAI,IAAI,aAAY,KAAK,SAAQ;;;AAGzC,aAAO,CAAC,OAAO;;AAGrB,WAAO,SAAS,QAAQ;;AAqB1B,gCACI,cAA4B,QAC5B,SAA6B,iBAAiB,GAC9C,YAAY,UAAU;AACxB,QAAI,gBACA,gBAAgB,cAAc,gBAAgB;AAClD,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAClD,QAAI,WAAmB;AAEvB,QAAI,WAAW;AACb,iBAAW,gBAAgB,SAAS,WAAW;;AAGjD,sBACI,cAAc,OAAO,QAAQ,OAAO;AAExC,QAAI,iBAAiB;AACnB,YAAM,uBAAuB,OAAO;AACpC,YAAM,MAAM,OAAO;AACnB,YAAM,aAAa,OAAO,cAAc,MAAM;AAE9C,sBACI,KAAI,IAAI,eAAe,IAAI,KAAK,wBAC5B,IAAI,sBAAsB;;AAGpC,UAAM,UAAS,+BAA+B,eAAe;AAE7D,WAAO,oBAAoB,SAAQ,UAAU;;AAGxC,QAAM,sBAAsB,GAAG,CAAC;;;AC1JvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsNA,QAAM,WAAW;IACf;IACA;IACA;IACA;;AASF,QAAM,SAAS;IACb;IACA;IACA;IACA;;AAeF,QAAM,QAAQ;IACZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;AAOF,QAAM,SAAS;IACb;IACA;IACA;;AAaF,QAAM,SAAS;IACb;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;;ACjSF;;;;;;;;;;;;;;;;AA+BA,eAAa;;;AC/Bb;;;;;;;;;;;;;;;;AAsBO,QAAM,uBAAkD;IAC7D,SAAW;IACX,SAAW;IACX,OAAS;IACT,QAAU;IACV,OAAS;IACT,MAAQ;IACR,WAAa;;;;AC7Bf;;;;;;;;;;;;;;;;AA2BA,QAAM,0BAA0B;AAmBhC,+BACI,SAAuC;AAGzC,UAAM,QAAgC;AACtC,UAAM,eAA2C;AAEjD,UAAM,QAAkB,MAAM,QAAQ,WAClC,QAAQ,IAAI,cAAU,SAAO,QAC7B,OAAO,KAAK;AAEhB,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE;AAClC,YAAM,OAAO,MAAM;AACnB,YAAM,IAAI,MAAM,QAAQ,WAAW,QAAQ,GAAG,SAAS,QAAQ;AAC/D,UAAI,EAAE,UAAU,aAAa,EAAE,UAAU,WAAW,EAAE,UAAU,UAC5D,EAAE,UAAU,YAAY,EAAE,UAAU;AACtC,cAAM,IAAI,MAAM,gCAAgC,UAAU,EAAE;;AAE9D,YAAM,OAA6B,CAAC,MAAM,OAAO,EAAE,OAAO,OAAO,EAAE;AACnE,UAAI,EAAE,UAAU;AACd,cAAM,YAAY,IAAI,QAAoB,OAAM;AAC9C,gBAAM,OAAO,MAAM,EAAE;AACrB,gBAAM,gBAAgB,KAAK,OAAO,CAAC,GAAG,MAAM,IAAI,EAAE,QAAQ,KACtD,0BAA0B,KAAK;AACnC,gBAAM,QAAQ,IAAI,WAAW;AAC7B,cAAI,SAAS;AACb,mBAAS,KAAI,GAAG,KAAI,KAAK,QAAQ;AAC/B,kBAAM,MAAM,KAAK;AACjB,kBAAM,gBACF,IAAI,WAAW,IAAI,YAAY,CAAC,IAAI,SAAS;AACjD,kBAAM,IAAI,eAAe;AACzB,sBAAU;AACV,kBAAM,IAAI,KAAK;AACf,sBAAU,IAAI;;AAEhB,kBAAQ;;AAEV,qBAAa,KAAK;;AAElB,qBAAa,KAAK,EAAE;;AAEtB,UAAI,SAAS;AACX,aAAK,QAAQ;;AAEf,YAAM,KAAK;;AAGb,UAAM,eAAe,MAAM,QAAQ,IAAI;AACvC,WAAO,CAAC,MAAM,uBAAuB,eAAe;;AAkBhD,yBACF,UAAqB;AAEvB,UAAM,MAAsB;AAC5B,QAAI;AACJ,QAAI,SAAS;AACb,eAAW,QAAQ;AACjB,YAAM,OAAO,KAAK;AAClB,YAAM,QAAQ,KAAK;AACnB,YAAM,QAAQ,KAAK;AACnB,YAAM,OAAO,cAAc;AAC3B,UAAI;AAEJ,UAAI,kBAAkB;AACpB,cAAM,eAAe,KAAK;AAC1B,YAAI,aAAa,UAAU,WAAW,aAAa,UAAU;AAC3D,cAAI,CAAE,UAAS,gBAAgB,WAAW;AACxC,kBAAM,IAAI,MACN,UAAU,KAAK,0BAA0B,aAAa;;mBAGnD,aAAa,UAAU;AAChC,cAAI,UAAU;AACZ,kBAAM,IAAI,MACN,UAAU,KAAK,0BAA0B,aAAa,yDACH;;;AAGzD,gBAAM,IAAI,MACN,UAAU,KAAK,uCACO,aAAa;;AAIzC,cAAM,yBAAyB,qBAAqB,aAAa;AACjE,cAAM,aACF,SAAO,MAAM,QAAQ,SAAS,OAAO;AACzC,cAAM,iBAAkB,aAAa,UAAU,UAC3C,IAAI,WAAW,cACf,IAAI,YAAY;AACpB,YAAI,UAAU;AACZ,cAAI,aAAa,UAAU,WAAW,aAAa,UAAU;AAC3D,qBAAS,IAAI,aAAa,eAAe;AACzC,qBAAS,IAAI,GAAG,IAAI,eAAe,QAAQ;AACzC,oBAAM,IAAI,eAAe;AACzB,qBAAO,KAAK,IAAI,aAAa,QAAQ,aAAa;;qBAE3C,aAAa,UAAU;AAChC,gBAAI,kBAAkB;AACpB,8BAAgB;;AAElB,qBAAS,cAAc;;AAEvB,kBAAM,IAAI,MACN,iCAAiC,aAAa;;mBAG3C,UAAU;AACnB,cAAI,aAAa,UAAU,WAAW,aAAa,UAAU;AAC3D,kBAAM,IAAI,MACN,iCAAiC,aAAa;;AAGpD,mBAAS,IAAI,WAAW,eAAe;AACvC,mBAAS,IAAI,GAAG,IAAI,eAAe,QAAQ;AACzC,kBAAM,IAAI,eAAe;AACzB,mBAAO,KAAK,KAAK,MAAM,IAAI,aAAa,QAAQ,aAAa;;;AAG/D,gBAAM,IAAI,MAAM,gCAAgC,UAAU;;AAE5D,kBAAU,OAAO;iBACR,UAAU;AACnB,cAAM,QAAO,cAAc,KAAK;AAChC,iBAAS;AACT,iBAAS,IAAI,GAAG,IAAI,OAAM;AACxB,gBAAM,aAAa,IAAI,YACnB,SAAO,MAAM,QAAQ,SAAS,0BAA0B;AAC5D,oBAAU;AACV,gBAAM,QAAQ,IAAI,WAAW,SAAO,MAAM,QAAQ,SAAS;AAC1D,iBAAwB,KAAK;AAC9B,oBAAU;;;AAGZ,cAAM,cAAc,qBAAqB;AACzC,cAAM,aAAa,SAAO,MAAM,QAAQ,SAAS,OAAO;AAExD,YAAI,UAAU;AACZ,mBAAS,IAAI,aAAa;mBACjB,UAAU;AACnB,mBAAS,IAAI,WAAW;mBACf,UAAU;AACnB,mBAAS,IAAI,WAAW;mBACf,UAAU;AACnB,mBAAS,IAAI,aAAa;AAC1B,gBAAM,QAAO,IAAI,aAAa,OAAO,SAAS;AAC9C,gBAAM,SAAQ,IAAI,aAAa,OAAO,SAAS;AAC/C,mBAAS,IAAI,GAAG,IAAI,MAAK,QAAQ;AAC/B,kBAAK,KAAK,OAAO,IAAI;AACrB,mBAAM,KAAK,OAAO,IAAI,IAAI;;AAE5B,gBAAM,aAAa,QAAO,OAAM,OAAO;AACvC,gBAAM,cAAc,QAAO,QAAO,OAAO;AACzC,cAAI,QAAQ,QAAQ,YAAY;;AAEhC,gBAAM,IAAI,MAAM,gCAAgC,UAAU;;AAE5D,kBAAU,OAAO;;AAEnB,UAAI,UAAU;AACZ,YAAI,QAAQ,QAAO,QAAQ,OAAO;;;AAGtC,WAAO;;AAMH,kCAAiC;AAErC,QAAI,OAAO;AACT,YAAM,IAAI,MAAM,wBAAwB,KAAK,UAAU;;AAGzD,QAAI,kBAAkB;AAStB,UAAM,eAA6B;AACnC,OAAG,QAAQ,CAAC;AACV,yBAAmB,EAAE;AAErB,mBAAa,KACT,EAAE,eAAe,EAAE,OAAO,aAAa,IACA,IAAK,EAAE,YAAoB;AACtE,UAAI,CAAE,cAAoB,gBAAgB,aAAoB,cACxD,aAAoB;AACxB,cAAM,IAAI,MAAM,mCAAmC,EAAE,YAAY;;;AAKrE,UAAM,IAAI,IAAI,WAAW;AACzB,QAAI,SAAS;AACb,iBAAa,QAAQ,CAAC;AACpB,QAAE,IAAI,IAAI,WAAW,EAAE,SAAS;AAChC,gBAAU,EAAE;;AAGd,WAAO,EAAE;;AAIX,QAAM,gBAAgB,OAAO,WAAW,eACnC,QAAO,SAAS,eAAe,OAAO,SAAS,eAC/C,OAAO,SAAS;AAWf,4BAA2B;AAC/B,QAAI;AACF,aAAO,OAAO,WAAW;;AAE3B,WAAO,IAAI,KAAK,CAAC,MAAM;;AA8CnB,mCAAkC;AACtC,QAAI,QAAQ,WAAW;AACrB,aAAO,QAAQ;;AAGjB,QAAI,kBAAkB;AACtB,YAAQ,QAAQ,CAAC;AACf,yBAAmB,SAAO;;AAG5B,UAAM,OAAO,IAAI,WAAW;AAC5B,QAAI,SAAS;AACb,YAAQ,QAAQ,CAAC;AACf,WAAK,IAAI,IAAI,WAAW,WAAS;AACjC,gBAAU,SAAO;;AAEnB,WAAO,KAAK;;AAUR,oBAAmB;AACvB,UAAM,YAAY;AAClB,WAAO,KAAK;AACZ,WAAO,KAAK,SAAS;AACnB,aAAO,KAAK,MAAM,GAAG,KAAK,SAAS;;AAErC,UAAM,QAAQ,KAAK,MAAM;AACzB,WAAO,MAAM,MAAM,SAAS;;AAQxB,wCAAuC;AAE3C,QAAI,eAAe,yBAAyB;AAC1C,YAAM,IAAI,MAAM;;AAGlB,WAAO;MACL,WAAW,IAAI;MACf,mBAAmB;MACnB,oBAAoB,eAAe,iBAAiB,OAChD,IACA,iBAAiB,KAAK,UAAU,eAAe;MACnD,kBAAkB,eAAe,eAAe,OAC5C,IACA,iBAAiB,KAAK,UAAU,eAAe;MACnD,iBAAiB,eAAe,cAAc,OAC1C,IACA,eAAe,WAAW;;;AAUlC;AACE,UAAM,kBAAkB,CAAC;AACvB,UAAI,IAAI,KAAK;AACb,UAAI,IAAI;AAER,aAAQ,KAAI,aAAgB;AAC1B,aAAK;AACL,cAAM;;AAER,WAAK,CAAC;AACN,WAAK;AAEL,aAAO,IAAI;;AAGb,UAAM,eAAe,IAAI,YAAY;AAErC,iBAAa,KAAK;AAClB,aAAS,IAAI,GAAG,IAAI,MAAM;AACxB,mBAAa,KAAK,gBAAgB;;AAEpC,aAAS,IAAI,MAAM,IAAI,MAAM;AAC3B,mBAAa,KAAK,YAAe,KAAI,QAAS;;AAGhD,WAAO;;AAST;AACE,UAAM,gBAAgB,IAAI,YAAY;AAEtC,kBAAc,KAAK;AACnB,kBAAc,MAAM;AACpB,kBAAc,MAAM;AACpB,kBAAc,MAAM;AACpB,aAAS,IAAI,GAAG,IAAI,IAAI;AACtB,oBAAc,KAAK,KAAK;;AAE1B,aAAS,IAAI,IAAI,IAAI,IAAI;AACvB,oBAAc,KAAK,aAAe,KAAI,MAAO;;AAG/C,WAAO;;AAST;AACE,UAAM,cAAc,IAAI,YAAY;AAEpC,aAAS,IAAI,GAAG,IAAI,IAAI;AACtB,kBAAY,KAAK;;AAEnB,gBAAY,KAAK,YAAY,MAAM;AAEnC,WAAO;;AAUH;AAKJ,UAAM,eAAe;AACrB,UAAM,gBAAgB;AACtB,UAAM,cAAc;AAEpB,WAAO,CAAC;AACN,YAAM,WAAS,IAAI,YAAY,IAAI,eAAe;AAClD,YAAM,mBAAmB,IAAI,YAAY;AACzC,eAAS,QAAQ,GAAG,QAAQ,eAAe,QAAQ;AACjD,cAAM,cAAc,eAAe;AACnC,cAAM,cACF,aAAa,YAAY,eAAe,MAAO,eAAc,SAC7D,cAAc,eAAe;AACjC,yBAAiB,SAAS;;AAE5B,aAAO,IAAI,aAAa;;;;;AChf5B;;;;;;;;;;;;;;;;;IA6BE;AACE,WAAK,cAAc;AACnB,WAAK,cAAc;;WAGN;AACb,UAAI,iBAAiB,YAAY;AAC/B,yBAAiB,WAAW,IAAI;;AAElC,aAAO,iBAAiB;;WASnB,mBAAmB;AACxB,uBAAiB,cAAc,YAAY,KAAK;;WAS3C,mBAAmB;AACxB,uBAAiB,cAAc,YAAY,KAAK;;WAW3C,gBAAgB;AACrB,aAAO,iBAAiB,YAAY,KAAK;;WAWpC,gBAAgB,KAAsB;AAE3C,aAAO,iBAAiB,YAAY,KAAK,QAAQ;;WAGpC,YACX,KAAsB,aACtB;AACF,YAAM,gBAA6B;AACnC,YAAM,UAAU,gBAAgB,SAC5B,iBAAiB,cAAc,cAC/B,iBAAiB,cAAc;AACnC,cAAQ,QAAQ;AACd,cAAM,UAAU,OAAO,KAAK;AAC5B,YAAI,YAAY;AACd,wBAAc,KAAK;;;AAGvB,aAAO;;;AAIJ,QAAM,qBAAqB,CAAC,eAC/B,iBAAiB,mBAAmB;AACjC,QAAM,qBAAqB,CAAC,eAC/B,iBAAiB,mBAAmB;AACjC,QAAM,kBAAkB,CAAC,QAC5B,iBAAiB,gBAAgB;AAC9B,QAAM,kBACT,CAAC,KAAsB,gBACnB,iBAAiB,gBAAgB,KAAK;;;AC/G9C;;;;;;;;;;;;;;;;AAiCA,QAAM,oBAAoB;AAjC1B;IAyCE;AACE,WAAK,WAAW;;WAGH;AACb,UAAI,0BAA0B,YAAY;AACxC,kCAA0B,WAAW,IAAI;;AAE3C,aAAO,0BAA0B;;WAS5B,gBAAgB,QAAgB;AACrC,aAAO,UAAU,MAAM,MAAM;AAC7B,UAAI,OAAO,SAAS;AAClB,iBAAS,OAAO,MAAM,GAAG,OAAO,QAAQ;;AAE1C,aAAO,OAAO,SAAS,GAAG,MAAM;AAChC,YAAM,WAAW,0BAA0B;AAC3C,aACI,SAAS,SAAS,WAAW,MAC7B,MAAM,2DACF;AACR,eAAS,SAAS,UAAU;;WAGvB,WAAW;AAChB,YAAM,UAAU,KAAK,cAAc,SAAS;AAC5C,UAAI,WAAW;AACb,cAAM,IAAI,MAAM,yCAAyC;;AAE3D,aAAO;;WAGF;AACL,aAAO,OAAO,KAAK,KAAK,cAAc;;;AAY1C,oBAAkB;AAChB,QAAI,IAAI,QAAQ,uBAAuB;AACrC,YAAM,IAAI,MACN,6EAEG,0BAA0B,aAAa,KAAK;;AAErD,WAAO;MACL,QAAQ,IAAI,MAAM,mBAAmB;MACrC,MAAM,IAAI,MAAM,mBAAmB;;;AAIvC,oCACI,WAAmB,SACnB,eAAe;AACjB,WACI,cAAc,SACd,MAAM,wCAAwC;AAElD,UAAM,eAAe,iBAAiB,gBAAgB;AACtD,WACI,aAAa,SAAS,GACtB,MAAM,kEACF;AACR,WACI,aAAa,SAAS,GACtB,MAAM,yCAAyC,aAAa,wCACxB;AACxC,UAAM,cAAc,aAAa;AAEjC,UAAM,eAAe,iBAAiB,gBAAgB;AACtD,WACI,aAAa,SAAS,GACtB,MAAM,uEACK;AACf,WACI,aAAa,SAAS,GACtB,MAAM,yCAAyC,aAAa,6CACnB;AAC7C,UAAM,cAAc,aAAa;AAEjC,UAAM,eAAe,SAAS,WAAW;AACzC,UAAM,aAAa,SAAS,WAAW;AACvC,UAAM,aAAa,iBAAiB,SAAS,WAAW;AAExD,UAAM,iBAAiB,MAAM,YAAY;AAKzC,QAAI,gBAAgB;AAClB,YAAM,0BAA0B,WAAW,cACtC,YAAY;;AAGnB,UAAM,aAAa,MAAM,YAAY,KAAK;AAK1C,QAAI,gBAAgB,CAAC;AACnB,YAAM,0BAA0B,WAAW,cACtC,YAAY;;AAGnB,WAAO,WAAW;;AAuCpB;AACE,UAAM,UAAU,0BAA0B;AAC1C,UAAM,MAA2C;AACjD,eAAW,UAAU;AACnB,YAAM,YACF,MAAM,0BAA0B,WAAW,QAAQ;AACvD,iBAAW,QAAQ;AACjB,cAAM,MAAM,SAAS,oBAAoB;AACzC,YAAI,OAAO,UAAU;;;AAGzB,WAAO;;AAqCT,6BAA2B;AACzB,UAAM,gBAAgB,SAAS;AAC/B,UAAM,UAAU,0BAA0B,WAAW,cAAc;AACnE,WAAO,QAAQ,YAAY,cAAc;;AAmD3C,2BACI,WAAmB;AACrB,UAAM,eAAe;AACrB,WAAO,mBAAmB,WAAW,SAAS;;AAkDhD,2BACI,WAAmB;AACrB,UAAM,eAAe;AACrB,WAAO,mBAAmB,WAAW,SAAS;;;;ACpWhD;;;;;;;;;;;;;;;;AA4BA,QAAM,2BAA2B;AACjC,QAAM,8BAA8B;AACpC,QAAM,qCAAqC;AAE3C,iBAAkB;AAChB,WAAO,IAAI,QAAQ,aAAW,WAAW,UAAU,KAAK;;AAjC1D;IA4CE,YAAY;AACV,UAAI,CAAC,MAAM,QAAQ;AAGjB,cAAM,IAAI,MACN;;AAIN,UAAI,eAAe,WAAW,iBAAiB;AAC7C,yBAAiB,eAAe,MAAM,iBAAiB,WAAW;;AAEpE,UAAI,kBAAkB,QAAQ,eAAe,WAAW;AACtD,yBAAiB;;AAGnB,WAAK,wBAAwB,iBAAiB;AAC9C,WAAK,qBACD,iBAAiB;;UAGjB,KAAK;AACT,UAAI,OAAQ,aAAc;AACxB,cAAM,IAAI,MACN;;AAGN,YAAM,aAAa,OAAO,IAAI,gBAAgB,IAAI,KAC9C,CAAC,eAAe,aAAa,CAAC,MAAM;AAExC,UAAI,eAAe,yBAAyB;AAC1C,cAAM,IAAI,MACN;;AAGJ,cAAM,kBAAyC,CAAC;UAC9C,OAAO,CAAC,OAAO,KAAK;UACpB,SAAS,eAAe;;AAE1B,cAAM,iCAA4C;UAChD,eAAe,eAAe;UAC9B,QAAQ,eAAe;UACvB,aAAa,eAAe;UAC5B,aAAa,eAAe;UAC5B;;AAEF,cAAM,oCACF,OAAO,IAAI,gBAAgB,IAAI,KAC3B,CAAC,KAAK,UAAU,kCAChB,CAAC,MAAM;AAIf,cAAM,aAAa,KAAK,cAAc,OAAO,SAAS,cAAc,OACvB,KAAK;AAClD,mBAAW,WAAW,KAAK;AAC3B,mBAAW,OAAO;AAIlB,cAAM,MAAM,MAAM,WAAW,cAAc,IAAI,WAAW;AAE1D,YAAI,eAAe,cAAc;AAC/B,gBAAM,mBAAmB,KAAK,oBAAoB,OAC9C,SAAS,cAAc,OACvB,KAAK;AACT,2BAAiB,WAAW,KAAK;AACjC,2BAAiB,OAAO;AACxB,gBAAM,MACF,MAAM,iBAAiB,cAAc,IAAI,WAAW;;AAG1D,eAAO,CAAC,oBAAoB,6BAA6B;;;;AA1E7C,mBAAA,aAAa;AA1C/B;IA4HE,YAAY;AACV,UAAI,SAAS,QAAQ,MAAM,SAAS;AAClC,cAAM,IAAI,MACN,wEACgB;;AAEtB,WAAK,QAAQ;;UAGT;AACJ,YAAM,WAAW,KAAK,MAAM;AAC5B,YAAM,cAAc,KAAK,MAAM,MAAM;AAErC,aAAO,IAAI,QAAwB,CAAC,SAAS;AAC3C,cAAM,aAAa,IAAI;AACvB,mBAAW,SAAS,CAAC;AAEnB,gBAAM,YAAY,KAAK,MAAO,MAAM,OAAe;AACnD,gBAAM,gBAAgB,UAAU;AAChC,cAAI,iBAAiB;AACnB,mBAAO,IAAI,MACP,4CAA4C,SAAS;AACzD;;AAGF,cAAI,YAAY,WAAW;AACzB,oBAAQ,CAAC;;AAGX,gBAAM,kBAAkB,UAAU;AAClC,cAAI,mBAAmB;AACrB,mBAAO,IAAI,MACP,6CAA6C,SAAS;AAC1D;;AAGF,cAAI;AACJ;AACE,yBACI,KAAK,4BAA4B,iBAAiB;mBAC/C;AACP,mBAAO;AACP;;AAGF,gBAAM,cAAsC;AAC5C,gBAAM,QAAkB;AACxB,gBAAM,iBAAgC;AACtC,0BAAgB,QAAQ;AACtB,yBAAa,MAAM,QAAQ;AACzB,oBAAM,KAAK;AACX,6BAAe,KAAK;;AAEtB,wBAAY,KAAK,GAAG,aAAa;;AAGnC,0BAAgB,QAAQ;AACtB,yBAAa,MAAM,QAAQ;AACzB,oBAAM,mBAAmB,IAAI;AAC7B,+BAAiB,SAAS,CAAC;AAEzB,sBAAM,aAAc,OAAM,OAAe;AACzC,sBAAM,QAAQ,MAAM,QAAQ;AAC5B,+BAAe,SAAS;AACxB,oBAAI,eAAe,QAAQ,UAAU;AACnC,0BAAQ;oBACN;oBACA;oBACA,YAAY,wBAAwB;oBACpC,QAAQ,UAAU;oBAClB,aAAa,UAAU;oBACvB,aAAa,UAAU;oBACvB,qBAAqB,UAAU;;;;AAIrC,+BAAiB,UAAU,WACvB,OAAO,6CAA6C;AACxD,+BAAiB,kBAAkB,WAAW;;;;AAIpD,mBAAW,UAAU,WAAS,OAC1B,sEACc,SAAS;AAE3B,mBAAW,WAAW;;;IAOlB,4BACJ,UAAiC;AACnC,YAAM,YAAsB;AAC5B,YAAM,YAAY,MAAM,IAAI,UAAQ,SAAS,KAAK;AAClD,YAAM,aAAqC;AAC3C,iBAAW,SAAS;AAClB,cAAM,MAAM,QAAQ;AAClB,gBAAM,eAAe,SAAS;AAC9B,cAAI,UAAU,QAAQ,kBAAkB;AACtC,kBAAM,IAAI,MACN,uDACI;;AAEV,oBAAU,KAAK;AACf,cAAI,UAAU,QAAQ,kBAAkB;AACtC,kBAAM,IAAI,MACN,8BAA8B;;AAElC,uBAAW,QAAQ,MAAM,UAAU,QAAQ;;;;AAKjD,UAAI,UAAU,WAAW,MAAM;AAC7B,cAAM,IAAI,MACN,wDACI,UAAU,oDACV,MAAM;;AAEhB,aAAO;;;AAIJ,QAAM,yBAAmC,CAAC;AAC/C,QAAI,CAAC,MAAM,QAAQ;AACjB,aAAO;;AAEP,UAAI,CAAC,MAAM,QAAQ,QAAQ,IAAI,WAAW,iBAAiB;AACzD,eAAO,iBAAiB,IAAI,MAAM,iBAAiB,WAAW;;AAE9D,eAAO;;;;AAIb,mBAAiB,mBAAmB;AA0C9B,4BAA2B,iBAAiB;AAChD,WAAO,IAAI,iBAAiB;;AA4CxB,wBAAuB;AAC3B,WAAO,IAAI,aAAa;;;;AC7V1B;;;;;;;;;;;;;;;;AA6BM,mCACF,UAAmC,YACnC,eAAwB;AAC1B,kBAAc;AACd,oBAAgB,iBAAiB,OAAO,IAAI;AAC5C,kBAAc,eAAe,OAAO,IAAI;AACxC,kBAAc,eAAe;AAC7B,QAAI,kBAAkB;AAEtB,UAAM,kBAAkB,CAAC;AACvB,cAAQ,KAAK;AACX,cAAM,WAAW,gBACb,EAAE,kBAAkB,SAAS,SAAU,eAAc;AAEzD,mBAAW;AACX,eAAO;;AAET,aAAO;;AAGT,2BAAuB;AACrB,aACI,aAAY,QAAQ,MAAM,QAAQ,cAAa,UAAS,SAAS,GACjE,MAAM;;AAGZ,2BAAuB,gBAAuB;AAC5C,aACI,kBAAiB,KAAK,kBAAiB,GACvC,MAAM,oEACmB;AAC7B,aACI,gBAAe,KAAK,gBAAe,GACnC,MAAM,kEACiB;AAC3B,aACI,gBAAe,gBACf,MAAM,yEACmB,kCAClB;;AAGb,WAAO,QAAQ,IAAI,SAAS,IAAI;;;;ACvElC;;;;;;;;;;;;;;;;AAoCA,0CACI,WAAqB;AACvB,QAAI,eAAe;AACjB,oBAAc;;AAGhB,UAAM,YAAY,YAAY,aAAa,OAAO,MAAM,SAAS,QACf,YAAY;AAG9D,UAAM,WAAW,UAAU,IACvB,cACI,UAAU,UAAU,YAAY,aAAa,CAAC,UAAU;AAEhE,UAAM,qBAAqB;AAC3B,UAAM,mBAAmB;AAEzB,UAAM,YAAY,YAAY,cAAc,OACxC,MAAM,QAAQ,IAAI,YAClB,MAAM,wBACF,UAAU,YAAY,YAAY,oBAClC;AAER,UAAM,iBAAiB,UAAU,IAAI,cAAY,SAAS;AAE1D,UAAM,sBAAsB;AAC5B,UAAM,oBAAoB;AAE1B,UAAM,UAAU,YAAY,cAAc,OACtC,MAAM,QAAQ,IAAI,kBAClB,MAAM,wBACF,gBAAgB,YAAY,YAAY,qBACxC;AACR,WAAO;;AAYT,6BACI,UAAiC,iBAAiB,IAClD,aACA;AAOF,UAAM,eAAe,CAAC,cAClB,yBAAyB,WAAW,CAAC;AACzC,UAAM,eAAc,qBAAqB;AAEzC,WAAO,aAAY,UAAU,gBAAgB;;AA2BzC,gCACF;AAGF,WAAO,OACI,UAAiC,iBAAiB,IAClD;AAGT,YAAM,yBAAyB,SAAS,IAAI,MAAM;AAClD,YAAM,sBAKF;AACJ,YAAM,eACF,eAAe,OAAO,YAAY,IAAI,MAAM,SAAS;AACzD,YAAM,yBAAmC;AACzC,eAAS,QAAQ,CAAC,qBAAqB;AACrC,YAAI,cAAc;AAClB,4BAAoB,QAAQ,QAAQ;AAClC,gBAAM,WAAY,kBAAkB,eAChC,aAAa,aAAa,QAC1B,aAAa;AAEjB,gBAAM,eAAe,qBAAqB,YACtC,AAAK,cAAc,aAAa;AAEpC,gBAAM,8BAA8B;AAClC,mCAAuB,cAAc;AACrC,gBAAI,oBAAoB,eAAe;AACrC,kCAAoB,cAAc;;AAGpC,gCAAoB,YAAY,KAAK;cACnC,eAAe;cACf;cACA,WAAW;;;AAIf,cAAI,eAAe;AACjB,wBAAY,QAAQ,CAAC,YAAY;AAC/B,kBAAI,eAAe,aAAa;AAC9B;AACA,6BAAa,eAAe;;;;AAIhC;;AAGF,iCAAuB,KAAK,aAAa;AACzC,yBAAe;;;AAInB,UAAI,CAAC,aAAa,MAAM,WAAS;AAC/B,cAAM,kBAAkB,YAAY,OAAO,CAAC,GAAG,MAAM,CAAC,aAAa;AACnE,cAAM,IAAI,MACN,kDACG,gBAAgB,KAAK;wCAErB,uBAAuB,KAAK;;AAKrC,YAAM,sBACF,uBAAuB,OAAO,CAAC,aAAa,aAAa;AACvD,YAAI;AACF,sBAAY,KAAK;;AAEnB,eAAO;SACN;AAEP,YAAM,YAAsB;AAC5B,0BAAoB,QAAQ;AAC1B,iBAAS,GAAG,MAAM,QAAQ;AACxB,gBAAM,WAAW,iBACZ,EAAC,eAAe,SAAS,OAAO,MAAM,MAAM;AACjD,oBAAU,KAAK;;;AAGnB,YAAM,UAAU,MAAM,qBAAqB;AAE3C,YAAM,mBAAmC;AACzC,UAAI,oBAAoB;AACxB,0BAAoB,QAAQ;AAC1B,cAAM,aAAa,SAAS,GAAG,MAAM;AAErC,YAAI,aAAa;AACjB,iBAAS,KAAI,GAAG,KAAI,YAAY;AAC9B,wBAAc,QAAQ,oBAAoB,IAAG;;AAI/C,cAAM,cAAc,IAAI,YAAY;AACpC,cAAM,kBAAkB,IAAI,WAAW;AACvC,YAAI,oBAAoB;AACxB,iBAAS,KAAI,GAAG,KAAI,YAAY;AAC9B,gBAAM,WAAS,IAAI,WAAW,QAAQ,oBAAoB;AAC1D,0BAAgB,IAAI,UAAQ;AAC5B,+BAAqB,SAAO;;AAG9B,cAAM,iBAAiB,oBAAoB;AAC3C,uBAAe,QAAQ;AACrB,gBAAM,aAAa,YAAY,MAC3B,aAAa,aACb,aAAa,cAAc,aAAa;AAC5C,gBAAM,kBACF,cAAc,YAAY,CAAC,aAAa;AAC5C,qBAAW,QAAQ;AACjB,6BAAiB,QAAQ,gBAAgB;;;AAI7C,6BAAqB;;AAGvB,aAAO;;;;;ACpPX;;;;;;;;;;;;;;;;AA+BA,QAAM,yBAAyB;AAC/B,QAAM,YAAY;AAhClB;IA8CE,YAAY,MAAc;AAPjB,WAAA,iBAAiB;AAQxB,UAAI,eAAe;AACjB,sBAAc;;AAEhB,WAAK,mBAAmB,YAAY;AACpC,WAAK,aAAa,YAAY;AAE9B,UAAI,YAAY,aAAa;AAC3B,eACI,OAAO,YAAY,cAAc,YACjC,MAAM;AAGV,aAAK,QAAQ,YAAY;;AAEzB,aAAK,QAAQ,MAAM,SAAS;;AAG9B,aACI,QAAQ,QAAQ,KAAK,SAAS,GAC9B,MAAM;AAGV,UAAI,MAAM,QAAQ;AAChB,eACI,KAAK,WAAW,GAChB,MAAM,iEACmB,KAAK;;AAEpC,WAAK,OAAO;AAEZ,UAAI,YAAY,eAAe,QAC3B,YAAY,YAAY,QAAQ;AAClC,cAAM,IAAI,MACN;;AAEN,WAAK,cAAc,YAAY,eAAe;;UAG1C,KAAK;AACT,UAAI,eAAe,yBAAyB;AAC1C,cAAM,IAAI,MACN;;AAIN,YAAM,OAAO,OAAO,OAAO,CAAC,QAAQ,KAAK,iBAAiB,KAAK;AAC/D,WAAK,OAAO,IAAI;AAEhB,YAAM,kBAAyC,CAAC;QAC9C,OAAO,CAAC;QACR,SAAS,eAAe;;AAE1B,YAAM,iCAA4C;QAChD,eAAe,eAAe;QAC9B,QAAQ,eAAe;QACvB,aAAa,eAAe;QAC5B,aAAa,eAAe;QAC5B,qBAAqB,eAAe;QACpC;;AAGF,WAAK,KAAK,OACN,cACA,IAAI,KACA,CAAC,KAAK,UAAU,kCAChB,CAAC,MAAM,aACX;AAEJ,UAAI,eAAe,cAAc;AAC/B,aAAK,KAAK,OACN,qBACA,IAAI,KAAK,CAAC,eAAe,aAAa,CAAC,MAAM,0BAC7C;;AAGN,YAAM,WAAW,MAAM,KAAK,MAAM,KAAK,MAAM;AAE7C,UAAI,SAAS;AACX,eAAO;UACL,oBAAoB,6BAA6B;UACjD,WAAW,CAAC;;;AAGd,cAAM,IAAI,MACN,gEACG,SAAS;;;UAYd;AACJ,YAAM,qBAAqB,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK;AAE5D,UAAI,CAAC,mBAAmB;AACtB,cAAM,IAAI,MACN,cAAc,KAAK,gCAChB,mBAAmB;;AAG5B,UAAI;AACJ;AACE,sBAAc,MAAM,mBAAmB;eAChC;AACP,YAAI,UAAU,+CAA+C,KAAK;AAGlE,YAAI,KAAK,KAAK,SAAS;AACrB,qBAAW;;AAOX,qBAAW;;AAGb,cAAM,IAAI,MAAM;;AAElB,YAAM,gBAAgB,YAAY;AAClC,YAAM,kBAAkB,YAAY;AACpC,YAAM,cAAc,YAAY;AAChC,YAAM,cAAc,YAAY;AAChC,YAAM,SAAS,YAAY;AAC3B,YAAM,sBAAsB,YAAY;AAGxC,UAAI,iBAAiB,QAAQ,mBAAmB;AAC9C,cAAM,IAAI,MACN,2BAA2B,KAAK;;AAItC,UAAI;AACJ,UAAI;AACJ,UAAI,mBAAmB;AACrB,cAAM,UAAU,MAAM,KAAK,YAAY;AACvC,SAAC,aAAa,cAAc;;AAG9B,aAAO;QACL;QACA;QACA;QACA;QACA;QACA;QACA;;;UAIU,YAAY;AAExB,YAAM,aAAa,MAAM,QAAQ,KAAK,QAAQ,KAAK,KAAK,KAAK,KAAK;AAClE,YAAM,CAAC,QAAQ,UAAU,SAAS;AAClC,YAAM,aAAa,KAAK,oBAAoB;AAE5C,YAAM,cAAc;AACpB,iBAAW,SAAS;AAClB,oBAAY,KAAK,GAAG,MAAM;;AAG5B,YAAM,YAAsB;AAC5B,sBAAgB,QAAQ;AACtB,qBAAa,MAAM,QAAQ;AACzB,oBAAU,KAAK,aAAa,OAAO;;;AAGvC,YAAM,UAAU,MAAM,yBAAyB,WAAW;QACxD,aAAa,KAAK;QAClB,WAAW,KAAK;QAChB,YAAY,KAAK;;AAEnB,aAAO,CAAC,aAAa,wBAAwB;;;AA1L/B,cAAA,mBAAmB;AAyM/B,oBAAmB;AACvB,UAAM,YAAY,IAAI,YAAY;AAClC,UAAM,kBAAkB,IAAI,YAAY;AACxC,UAAM,SAAS,IAAI,UAAU,GAAG;AAChC,UAAM,SACF,kBAAkB,YAAY,IAAI,UAAU,mBAAmB;AACnE,WAAO,CAAC,SAAS,KAAK;;AAGlB,wBAAuB;AAC3B,WAAO,IAAI,MAAM,YAAY,qBAAqB;;AAG7C,QAAM,aACT,CAAC,KAAa;AACZ,QAAI,OAAO,UAAU,eAChB,gBAAe,QAAQ,YAAY,aAAa;AAInD,aAAO;;AAEP,UAAI,SAAS;AACb,UAAI,MAAM,QAAQ;AAChB,iBAAS,IAAI,MAAM,aAAW,aAAa;;AAE3C,iBAAS,aAAa;;AAExB,UAAI;AACF,eAAO,KAAK,KAAK;;;AAGrB,WAAO;;AAEb,mBAAiB,mBAAmB;AACpC,mBAAiB,mBAAmB;AAyE9B,gBAAe,MAAc;AACjC,WAAO,IAAI,YAAY,MAAM;;AAQzB,8BACF,MAAc;AAChB,WAAO,KAAK,MAAM;;;;ACzWpB;;;;;;;;;;;;;;;;;IAwBE,YAA6B;AAAA,WAAA,iBAAA;;UAEvB;AACJ,aAAO,KAAK;;;AA3BhB;IAgCE,YACqB;AAAA,WAAA,cAAA;;UAGf,KAAK;AACT,aAAO,KAAK,YAAY;;;AAyBtB,sBACF,gBAAmC,aACnC,YAA0B;AAC5B,QAAI,UAAU,WAAW;AACvB,YAAM,mBACD,eAAkC,iBAAiB,QACnD,eAAkC,eAAe;AACtD,UAAI;AACF,eAAO,IAAI,kBAAkB;;AAI7B,gBAAQ,KACJ;AAIJ,eAAO,IAAI,kBAAkB,CAAC,eAAe;;;AAK/C,cAAQ,KACJ;AAIJ,aAAO,IAAI,kBAAkB;QAC3B,eAAe;QACf;QACA;QACA;;;;AAoBA,2BACF;AAEF,WAAO,IAAI,iBAAiB;;;;ACpH9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;AAwDM,4BACF,QAA6B,aAC7B;AACF,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAClD,UAAM,eACF,gBAAgB,aAAa,eAAe;AAEhD,IAAK,OACD,cAAc,QAAQ,aAAa,KAAK,OAAO,UAAU,aACzD,MAAM,+DACS;AACnB,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,gDAAgD,QAAQ;AAClE,IAAK,OACD,aAAa,SAAS,GACtB,MAAM,qDACS,aAAa;AAChC,IAAK,OACD,QAAQ,MAAM,OAAO,aAAa,MAAM,IACxC,MAAM,uCACC,QAAQ,MAAM,UAAU,aAAa,MAAM;AAEtD,IAAK,OACD,aAAa,KAAK,OAAO,UAAU,aACnC,MAAM,4DACC;AAIX,UAAM,eAAe,OAAO,KAAK,SAAS,UAAU;AACpD,UAAM,oBACF,OAAO,KAAK,cAAc,UAAU;AACxC,UAAM,gBAA0B,UAAU;AAC1C,WAAO,KAAK,OAAO,eAAe,oBAAoB;;AAGjD,QAAM,kBAAkB,GAAG,CAAC;;;AC7FnC;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAI;AAwBJ,uBACI,QAEA,cAAc;AAEhB,QAAI,cAAc;AAChB,YAAM,IAAI,MACN;;AAEN,QAAI,UAAU;AACZ,YAAM,IAAI,MAAM;;AAElB,QAAI,cAAc;AAClB,QAAI,cAAc;AAClB,QAAI,UAAU;AACd,QAAI,UAAU;AACd,QAAI,eAAe;AACnB,QAAK,OAAqB,gBAAgB;AACxC,oBAAc;eAEZ,OAAQ,cAAe,eAAe,kBAAkB;AAC1D,oBAAc;eAEZ,OAAQ,qBAAsB,eAC9B,kBAAkB;AACpB,gBAAU;eAER,OAAQ,qBAAsB,eAC9B,kBAAkB;AACpB,gBAAU;eAEA,OAAe,cAAc;AACvC,qBAAe;;AAEf,YAAM,IAAI,MACN,qPAIY,OAAc,YAAY;;AAE5C,QAAI;AACF,YAAM,gCAAgC;AACtC,UAAI,WACC,OAA4B,aACzB;AACN,cAAM,IAAI,MACN;;;AAMR,UAAM,SAAS,UAAU,YAAY,OAAO;AAC5C,QAAI,UAAU;AACZ,YAAM,SAA2B,CAAC;AAClC,YAAM,QAAyB,CAAC;AAChC,aAAO,OAAO,UACH,YAAY,QACZ;;AAGb,UAAM,CAAC,OAAO,UAAU,UACpB;MACG,OAA4B;MAC5B,OAA4B;QAE/B,CAAC,OAAO,OAAO,OAAO;AAC1B,QAAI;AAEJ,QAAI;AACF,aAEK,OAAe,WAAW,MAAM,aAAa,GAAG,GAAG,OAAO,QAAQ;eAC9D,eAAe;AACxB,aAAQ,OAAiC;eAChC,WAAW;AACpB,UAAI,uBAAuB;AACzB,8BAAsB,SAAS,cAAc,UAAU,WAAW;;AAEpE,0BAAoB,OAAO,QAAQ;AACnC,0BAAoB,OAAO,SAAS;AACpC,0BAAoB,UAChB,QAA4B,GAAG,GAAG,OAAO;AAC7C,aAAO,oBAAoB,aAAa,GAAG,GAAG,OAAO,QAAQ;;AAE/D,QAAI;AACJ,QAAI,gBAAgB;AAClB,eAAS,IAAI,WAAW;;AAExB,YAAM,YAAY,QAAQ;AAC1B,eAAS,IAAI,WAAW,YAAY;AACpC,eAAS,IAAI,GAAG,IAAI,WAAW;AAC7B,iBAAS,UAAU,GAAG,UAAU,aAAa,EAAE;AAC7C,iBAAO,IAAI,cAAc,WAAW,KAAK,IAAI,IAAI;;;;AAIvD,UAAM,WAAqC,CAAC,QAAQ,OAAO;AAC3D,WAAO,SAAS,QAAQ,UAAU;;AAqBpC,0BACI,KACA;AACF,QAAI,OAAO,gBAAgB,KAAK,OAAO;AACvC,QAAI,CAAE,gBAAe;AAEnB,YAAM,oBAAoB;AAC1B,aAAO,KAAK,mBAAmB;AAC/B,wBAAkB;;AAEpB,QAAI,KAAK,SAAS,KAAK,KAAK,SAAS;AACnC,YAAM,IAAI,MACN,wDAAwD,KAAK;;AAEnE,UAAM,CAAC,QAAQ,SAAS,KAAK,MAAM,MAAM,GAAG;AAC5C,UAAM,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM;AAE/C,QAAI,QAAQ,KAAK,UAAU;AACzB,YAAM,IAAI,MACN,0DACqB;;AAG3B,UAAM,OAAO,MAAM,KAAK;AACxB,UAAM,YAAY,IAAI;AACtB,UAAM,YAAY,IAAI;AACtB,UAAM,OAAO,MAAM,QAAQ,IAAI,CAAC,UAAU,QAAQ,UAAU;AAC5D,UAAM,UAAU,KAAK;AACrB,UAAM,UAAU,KAAK;AACrB,UAAM,SAAS,QAAQ;AACvB,UAAM,SAAS,QAAQ;AACvB,cAAU;AACV,cAAU;AACV,QAAI,KAAK,UAAU;AACjB,UAAI,SAAS,KAAK,SAAS;AACzB,cAAM,IAAI,MACN,kFACgC,YAAY;;eAEzC,KAAK,UAAU;AACxB,UAAI,SAAS,KAAK,SAAS;AACzB,cAAM,IAAI,MACN,kFACkC,YAAY;;;AAGpD,YAAM,IAAI,MACN,kCAAkC,KAAK;;AAG7C,UAAM,aAAa,KAAK,UAAU,YAAY,MAAM;AACpD,UAAM,QAAQ,IAAI,kBAAkB,QAAQ,SAAS;AAErD,aAAS,IAAI,GAAG,IAAI,SAAS,OAAO,EAAE;AACpC,UAAI,GAAG,GAAG,GAAG;AACb,UAAI,UAAU;AACZ,YAAI,KAAK,KAAK;AACd,YAAI,KAAK,KAAK;AACd,YAAI,KAAK,KAAK;AACd,YAAI;iBACK,UAAU;AACnB,YAAI,KAAK,IAAI,KAAK;AAClB,YAAI,KAAK,IAAI,IAAI,KAAK;AACtB,YAAI,KAAK,IAAI,IAAI,KAAK;AACtB,YAAI;iBACK,UAAU;AACnB,YAAI,KAAK,IAAI,KAAK;AAClB,YAAI,KAAK,IAAI,IAAI,KAAK;AACtB,YAAI,KAAK,IAAI,IAAI,KAAK;AACtB,YAAI,KAAK,IAAI,IAAI,KAAK;;AAGxB,YAAM,IAAI,IAAI;AACd,YAAM,IAAI,KAAK,KAAK,MAAM;AAC1B,YAAM,IAAI,KAAK,KAAK,MAAM;AAC1B,YAAM,IAAI,KAAK,KAAK,MAAM;AAC1B,YAAM,IAAI,KAAK,KAAK,MAAM;;AAG5B,QAAI,UAAU;AACZ,aAAO,QAAQ;AACf,aAAO,SAAS;AAChB,YAAM,MAAM,OAAO,WAAW;AAC9B,YAAM,YAAY,IAAI,UAAU,OAAO,OAAO;AAC9C,UAAI,aAAa,WAAW,GAAG;;AAEjC,QAAI,SAAS;AACX,WAAK;;AAEP,WAAO;;AAGF,QAAM,aAAa,GAAG,CAAC;;;AC1P9B;;;;AAUM,8BACF,UAAgB;AAClB,QAAI,SAAO,OAAO;AAChB,YAAM,IAAI,MACN,4EACqB,SAAO;;AAElC,QAAI,QAAQ,OAAO;AACjB,YAAM,IAAI,MACN,8EACqB,QAAQ;;AAEnC,QAAI,QAAQ,UAAU;AACpB,YAAM,IAAI,MACN,yEACsB,QAAQ;;AAEpC,QAAI,QAAQ,MAAM,QAAQ,OAAO,KAAK,SAAO;AAC3C,YAAM,IAAI,MACN,iEACG,QAAQ,MAAM,QAAQ,OAAO,UAAU,SAAO;;AAGvD,QAAI,SAAO,SAAS;AAClB,YAAM,IAAI,MACN,mEACiB,SAAO;;AAG9B,UAAM,eAAe,QAAQ;AAC7B,UAAM,YAAY,aAAa,aAAa,SAAS;AAIrD,QAAI,UAAU;AACd,aAAS,IAAI,GAAG,IAAI,aAAa,SAAS,GAAG,EAAE;AAC7C,iBAAW,aAAa;;AAG1B,UAAM,aAAa,SAAO;AAE1B,UAAM,cAAc,aAAa;AACjC,gBAAY;AAEZ,QAAI,YAAY;AAChB,aAAS,IAAI,WAAW,IAAI,SAAO,MAAM,EAAE;AACzC,mBAAa,WAAW;AACxB,kBAAY,KAAK,WAAW;;AAG9B,UAAM,UACF;MAAC,GAAG,eAAe,SAAO,OAAO,IAAI,YAAU,SAAS;MACvD;MAAG,MAAM,GAAG;AAEjB,WAAO,CAAC,aAAa,SAAS,WAAW;;;;ACjF3C;;;;;;;;;;;;;;;;;;;;;;;IA0EE;AACE,aAAQ,KAAK,YACR;;WAiBA,WACH,KAAiC;AACnC,aAAO,IAAI,IAAI;;;AA/FnB;IAiHE;AACE,WAAK,eAAe;;WAMf;AACL,UAAI,iBAAiB,YAAY;AAC/B,yBAAiB,WAAW,IAAI;;AAElC,aAAO,iBAAiB;;WAMnB,SAAiC;AACtC,uBAAiB,SAAS,aAAa,IAAI,aACvC,CAAC,KAAK,IAAI;;;AA2BZ,yBACF;AACF,WACI,IAAI,aAAa,MACjB,MAAM;AAEV,WACI,OAAO,IAAI,cAAc,UACzB,MAAM,wDACF,OAAO,IAAI;AACnB,WACI,IAAI,UAAU,SAAS,GACvB,MAAM;AAGV,qBAAiB,SAAS;;;;AC9K5B;AAGA,QAAM,UAAU;;;ACHhB;;;;;;;;;;;;;;;;0BAyCwC;IAgBtC,SAAS,GAAiB,aAAa,OAAO;AAE5C,YAAM,CAAC,OAAO,iBAAS,KAAK,iBAAiB,GAAG;AAEhD,UAAI,WAAW;AACb,cAAM,YACF,QAAQ,IAAI,OAAM,EAAC,MAAM,EAAE,MAAM,QAAQ,OAAM,EAAE;AACrD,aAAK,eAAe;;AAEpB,aAAK,eAAe;;AAItB,cAAQ;AAER,UAAI;AACF,eAAO;;AAEP,cAAM;AACN,eAAO;;;QAOP;AACF,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc;;AAErB,aAAO,KAAK;;IAGJ;AACR,WAAK,cAAc,KAAK,aAAa;;IAevC,iBAAiB,GAAiB;AAEhC,aAAO,cAAc,GAAG;;IAe1B;AACE,UAAI,KAAK,eAAe;AACtB,gBAAQ,KAAK;;;UAIX;AACJ,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc;;AAErB,aAAO;QACL,MAAM;QAEN,QAAQ,OAAO,KAAK,aAAa;;;UAI/B;AACJ,YAAM,IAAI,MAAM;;UAGZ,WAAW;AACf,YAAM,IAAI,MACN,4DACG,KAAK;;UAUE,kBAAkB;AAEhC,WAAK,cAAe,OAAM,aAAa,GAAG,OAAO,QAAQ;AACzD,aAAO,aAAa,MAAM;;;AAI9B,SAAO,eAAe,WAAW,OAAO,aAAa;IACnD,OAAO,CAAC;AACN,aAAO,SAAS,YAAY,QAAQ,SAAS,oBAAoB,QAC7D,SAAS,kBAAkB;;;;;ACvKnC;;;;;;;;;;;;;;;;kCA+BuC;IAMrC,YACc,cAAgC,KAChC,WAAkB;AAC9B;AAFY,WAAA,eAAA;AAAgC,WAAA,MAAA;AAChC,WAAA,UAAA;AALN,WAAA,mBAAwC;AACxC,WAAA,qBAA0C;AAOhD,UAAI,YAAW;AACb,aAAK,UAAU,OAAO,QAAQ;;;IAIlC,eAAe;AACb,YAAM,gBAAgB,MAAM,QAAQ,qBAChC,kBAAkB,IAAI,UAAQ,KAAK,QACnC,OAAO,KAAK;AAEhB,oBAAc,QAAQ,CAAC,MAAM;AAC3B,cAAM,QAAQ,OAAO,oBAAoB;AACzC,cAAM,YAAY;AAClB,YAAI,KAAK,iBAAiB,MAAM;AAC9B,eAAK,iBAAiB,KAAK;YACzB,cAAc,GAAG;YACjB,UAAU,KAAK,MAAM,UAAU,OAAO,SAAS;;;AAGnD,YAAI,KAAK,mBAAmB,MAAM;AAChC,eAAK,mBAAmB,KAAK;YAC3B,cAAc,GAAG;YACjB,UAAU,KAAK,MAAM,UAAU,OAAO,SAAS;;;AAInD,cAAM,WAAW,MAAM,QAAQ,qBAC3B,kBAAkB,GAAG,SACrB,kBAAkB;AACtB,YAAI,YAAY;AACd;;AAGF,cAAM,kBAAkB,KAAK,iBAAiB,GAAG;AACjD,cAAM,oBAAoB,KAAK,mBAAmB,GAAG;AAErD,aAAK;AACH,gBAAM,qBACF,KAAI,IAAI,iBAAiB,KAAK,MAC1B,IAAI,OAAO,WAAW,IAAI,KAAK;AAEvC,gBAAM,UACF,IAAI,IAAI,KAAK,KAAI,mBAAmB,KAAK,WACjC,KAAK,KAAI,iBAAiB,KAAK,YACnC;AAER,gBAAM,uBACF,KAAI,IAAI,mBAAmB,KAAK,MAC5B,IAAI,OAAO,UAAU,IAAI,KAAK;AAEtC,0BAAgB,OAAO;AACvB,4BAAkB,OAAO;AAEzB,gBAAM,WAAW,KAAI,IAAI,SAAS,CAAC,KAAK,eAAe;AACvD,gBAAM,OAAO;;;AAGjB,WAAK;;IAGP;AACE,UAAI,KAAK,sBAAsB;AAC7B,gBAAQ,KAAK,iBAAiB,IAAI,OAAK,EAAE;AACzC,gBAAQ,KAAK,mBAAmB,IAAI,OAAK,EAAE;;;UAIzC;AAEJ,YAAM,YACF,CAAC,GAAG,KAAK,kBAAkB,GAAG,KAAK;AACvC,aAAO,CAAC,MAAM,KAAK,kBAAkB,OACjC,UAAU,IAAI,OAAM,EAAC,MAAM,EAAE,cAAc,QAAQ,EAAE;;UAGrD,WAAW;AACf,qBAAe,MAAM,KAAK,kBAAkB;AAC5C,YAAM,gBAAgB,aAAa,SAAS;AAC5C,YAAM,YAAY;AAClB,WAAK,mBACD,aAAa,MAAM,GAAG,eAAe,IAAI,OAAM;QACJ,cAAc,EAAE;QAChB,UAAU,EAAE,OAAO,SACf;;AAEnD,WAAK,qBACD,aAAa,MAAM,eAAe,gBAAgB,GAC7C,IAAI,OAAM;QACJ,cAAc,EAAE;QAChB,UAAU,EAAE,OAAO,SAAS;;;IAI7C;AACE,aAAO;QACL,cAAgB,KAAK;QACrB,KAAO,KAAK;QACZ,SAAW,KAAK;;;WAKb,WACH,KAAiC;AACnC,aAAO,IAAI,IAAI,QAAO,iBAAiB,QAAO,QAAQ,QAAO;;;AAjHxD,oBAAA,YAAY;AAoHrB,gBAAc;;;ACrJd;;;;;;;;;;;;;;;;iCA+BsC;IAMpC,YACc,cAA8B,0BAA0B;AACpE;AADY,WAAA,eAAA;AAA8B,WAAA,0BAAA;AAHpC,WAAA,mBAAwC;;IAOhD,eAAe;AACb,YAAM,gBAAgB,MAAM,QAAQ,qBAChC,kBAAkB,IAAI,UAAQ,KAAK,QACnC,OAAO,KAAK;AAEhB,oBAAc,QAAQ,CAAC,MAAM;AAC3B,cAAM,QAAQ,OAAO,oBAAoB;AACzC,YAAI,KAAK,iBAAiB,MAAM;AAC9B,gBAAM,YAAY;AAClB,eAAK,iBAAiB,KAAK;YACzB,cAAc,GAAG;YACjB,UAAU,KACN,MAAM,KAAK,MAAM,OAAO,KAAK,yBAClB,SAAS;;;AAI5B,cAAM,WAAW,MAAM,QAAQ,qBAC3B,kBAAkB,GAAG,SACrB,kBAAkB;AACtB,YAAI,YAAY;AACd;;AAGF,cAAM,kBAAkB,KAAK,iBAAiB,GAAG;AAEjD,aAAK;AACH,gBAAM,qBAAqB,KAAI,iBAAiB,OAAO;AACvD,0BAAgB,OAAO;AAEvB,gBAAM,WAAW,KACb,IAAI,IAAI,UACA,KAAK,KAAI,oBAAoB,OAAO,QAAQ,cAChD,CAAC,KAAK,eACV;AACJ,gBAAM,OAAO;;;AAGjB,WAAK;;IAGP;AACE,UAAI,KAAK,oBAAoB;AAC3B,gBAAQ,KAAK,iBAAiB,IAAI,OAAK,EAAE;;;UAIvC;AAEJ,aAAO,CAAC,MAAM,KAAK,kBAAkB,OAAO,KAAK,iBAAiB,IAC9D,OAAM,EAAC,MAAM,EAAE,cAAc,QAAQ,EAAE;;UAGvC,WAAW;AACf,qBAAe,MAAM,KAAK,kBAAkB;AAC5C,YAAM,YAAY;AAClB,WAAK,mBAAmB,aAAa,IACjC,OAAM,EAAC,cAAc,EAAE,MAAM,UAAU,EAAE,OAAO,SAAS;;IAG/D;AACE,aAAO;QACL,cAAgB,KAAK;QACrB,yBAA2B,KAAK;;;WAK7B,WACH,KAAiC;AACnC,aAAO,IAAI,IAAI,QAAO,iBAAiB,QAAO;;;AA/EzC,mBAAA,YAAY;AAkFrB,gBAAc;;;ACnHd;;;;;;;;;;;;;;;;8BAkCmC;IASjC,YACc,cAAgC,OAChC,OAAyB,WAAkB;AACvD;AAFY,WAAA,eAAA;AAAgC,WAAA,QAAA;AAChC,WAAA,QAAA;AAAyB,WAAA,UAAA;AAL/B,WAAA,yBAA8C;AAC9C,WAAA,0BAA+C;AAMrD,WAAK;AAEH,aAAK,WAAW,OAAO,OAAO;AAC9B,aAAK,WAAW,OAAO,OAAO;;AAGhC,UAAI,YAAW;AACb,aAAK,UAAU,OAAO,QAAQ;;;IAIlC,eAAe;AACb,YAAM,WAAW,MAAM,QAAQ,qBAC3B,kBAAkB,IAAI,OAAK,EAAE,QAC7B,OAAO,KAAK;AAChB,WAAK;AACH,cAAM,mBAAmB,IAAI,GAAG,KAAK;AACrC,cAAM,mBAAmB,IAAI,GAAG,KAAK;AAErC,iBAAS,QAAQ,CAAC,MAAM;AACtB,gBAAM,QAAQ,OAAO,oBAAoB;AACzC,gBAAM,YAAY;AAClB,cAAI,KAAK,uBAAuB,MAAM;AACpC,iBAAK,uBAAuB,KAAK;cAC/B,cAAc,GAAG;cACjB,UAAU,KAAK,MAAM,UAAU,OAAO,SAAS;;;AAGnD,cAAI,KAAK,wBAAwB,MAAM;AACrC,iBAAK,wBAAwB,KAAK;cAChC,cAAc,GAAG;cACjB,UAAU,KAAK,MAAM,UAAU,OAAO,SAAS;;;AAInD,gBAAM,WAAW,MAAM,QAAQ,qBAC3B,kBAAkB,GAAG,SACrB,kBAAkB;AACtB,cAAI,YAAY;AACd;;AAGF,gBAAM,cAAc,KAAK,uBAAuB,GAAG;AACnD,gBAAM,eAAe,KAAK,wBAAwB,GAAG;AAErD,gBAAM,iBACF,KAAI,IAAI,aAAa,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK;AAC7D,gBAAM,kBACF,KAAI,IAAI,cAAc,KAAK,QACvB,IAAI,OAAO,WAAW,IAAI,KAAK;AAEvC,gBAAM,2BAA2B,IAAI,gBAAgB;AACrD,gBAAM,4BACF,IAAI,iBAAiB;AAEzB,sBAAY,OAAO;AACnB,uBAAa,OAAO;AAEpB,gBAAM,WACF,KAAI,IAAI,IAAI,0BACA,KAAI,KAAK,4BAA4B,KAAK,WAC9C,CAAC,KAAK,eACV;AACR,gBAAM,OAAO;;AAGf,aAAK,SAAS,OAAO,IAAI,KAAK,UAAU,KAAK;AAC7C,aAAK,SAAS,OAAO,IAAI,KAAK,UAAU,KAAK;;AAE/C,WAAK;;IAGP;AACE,WAAK,SAAS;AACd,WAAK,SAAS;AAEd,UAAI,KAAK,0BAA0B;AACjC,gBAAQ,KAAK,uBAAuB,IAAI,OAAK,EAAE;;AAEjD,UAAI,KAAK,2BAA2B;AAClC,gBAAQ,KAAK,wBAAwB,IAAI,OAAK,EAAE;;;UAI9C;AAEJ,YAAM,YACF,CAAC,GAAG,KAAK,wBAAwB,GAAG,KAAK;AAC7C,aAAO,CAAC,MAAM,KAAK,kBAAkB,OACjC,UAAU,IAAI,OAAM,EAAC,MAAM,EAAE,cAAc,QAAQ,EAAE;;UAGrD,WAAW;AACf,qBAAe,MAAM,KAAK,kBAAkB;AAC5C,WAAK;AACH,aAAK,SAAS,OAAO,IAAI,KAAK,OAAO,KAAK,cAAc;AACxD,aAAK,SAAS,OAAO,IAAI,KAAK,OAAO,KAAK,cAAc;;AAG1D,YAAM,gBAAgB,aAAa,SAAS;AAC5C,YAAM,YAAY;AAClB,WAAK,yBACD,aAAa,MAAM,GAAG,eAAe,IAAI,OAAM;QACJ,cAAc,EAAE;QAChB,UAAU,EAAE,OAAO,SACf;;AAEnD,WAAK,0BACD,aAAa,MAAM,eAAe,gBAAgB,GAC7C,IAAI,OAAM;QACJ,cAAc,EAAE;QAChB,UAAU,EAAE,OAAO,SAAS;;;IAI7C;AACE,aAAO;QACL,cAAgB,KAAK;QACrB,OAAS,KAAK;QACd,OAAS,KAAK;QACd,SAAW,KAAK;;;WAKb,WACH,KAAiC;AACnC,aAAO,IAAI,IACP,QAAO,iBAAiB,QAAO,UAAU,QAAO,UAChD,QAAO;;;AA5IN,gBAAA,YAAY;AA+IrB,gBAAc;;;ACnLd;;;;;;;;;;;;;;;;gCAiCqC;IASnC,YACc,cAAgC,OAChC,OAAyB,WAAkB,MAC3C,QAAQ;AACpB;AAHY,WAAA,eAAA;AAAgC,WAAA,QAAA;AAChC,WAAA,QAAA;AAAyB,WAAA,UAAA;AACzB,WAAA,QAAA;AANN,WAAA,yBAA8C;AAC9C,WAAA,6BAAkD;AAQxD,WAAK;AACH,aAAK,YAAY,OAAO,GAAG;AAC3B,aAAK,WAAW,OAAO,OAAO;;AAGhC,UAAI,YAAW;AACb,aAAK,UAAU,OAAO,QAAQ;;;IAIlC,eAAe;AACb,YAAM,gBAAgB,MAAM,QAAQ,qBAChC,kBAAkB,IAAI,UAAQ,KAAK,QACnC,OAAO,KAAK;AAEhB,WAAK;AACH,cAAM,mBAAmB,IAAI,GAAG,KAAK;AACrC,cAAM,KACF,IAAI,CAAC,KAAK,cAAc,KAAI,IAAI,KAAK,WAAW,KAAK,QAAQ;AAEjE,sBAAc,QAAQ,CAAC,MAAM;AAC3B,gBAAM,QAAQ,OAAO,oBAAoB;AACzC,gBAAM,YAAY;AAClB,cAAI,KAAK,uBAAuB,MAAM;AACpC,iBAAK,uBAAuB,KAAK;cAC/B,cAAc,GAAG;cACjB,UAAU,UAAU,OAAO,SAAS;;;AAGxC,cAAI,KAAK,2BAA2B,MAAM;AACxC,iBAAK,2BAA2B,KAAK;cACnC,cAAc,GAAG;cACjB,UAAU,UAAU,OAAO,SAAS;;;AAIxC,gBAAM,WAAW,MAAM,QAAQ,qBAC3B,kBAAkB,GAAG,SACrB,kBAAkB;AACtB,cAAI,YAAY;AACd;;AAGF,gBAAM,cAAc,KAAK,uBAAuB,GAAG;AACnD,gBAAM,kBAAkB,KAAK,2BAA2B,GAAG;AAE3D,gBAAM,iBACF,KAAI,IAAI,aAAa,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK;AAE7D,gBAAM,MAAM,IAAI,iBAAiB,KAAK;AACtC,gBAAM,MAAM,IAAI;AAEhB,gBAAM,qBAAqB,QAAQ,KAAK;AAExC,sBAAY,OAAO;AACnB,0BAAgB,OAAO;AAEvB,gBAAM,WACF,KAAI,IAAI,IAAI,IAAI,mBACR,IAAI,gBAAgB,KAAI,oBAAoB,KAAK,YACrD;AAER,gBAAM,OAAO;;AAGf,aAAK,UAAU,OAAO,KAAI,KAAK,WAAW;AAC1C,aAAK,SAAS,OAAO,IAAI,KAAK,UAAU,KAAK;;AAE/C,WAAK;;IAGP;AACE,WAAK,SAAS;AACd,WAAK,UAAU;AAEf,UAAI,KAAK,0BAA0B;AACjC,gBAAQ,KAAK,uBAAuB,IAAI,OAAK,EAAE;;AAEjD,UAAI,KAAK,8BAA8B;AACrC,gBAAQ,KAAK,2BAA2B,IAAI,OAAK,EAAE;;;UAIjD;AACJ,YAAM,IAAI,MAAM;;UAGZ,WAAW;AACf,YAAM,IAAI,MAAM;;IAGlB;AACE,aAAO;QACL,cAAgB,KAAK;QACrB,OAAS,KAAK;QACd,OAAS,KAAK;QACd,SAAW,KAAK;QAChB,OAAS,KAAK;;;WAKX,WACH,KAAiC;AACnC,aAAO,IAAI,IACP,QAAO,iBAAiB,QAAO,UAAU,QAAO,UAChD,QAAO,YAAY,QAAO;;;AAvHzB,kBAAA,YAAY;AA0HrB,gBAAc;;;AC7Jd;;;;;;;;;;;;;;;;6BA6BkC;IAKhC,YAAsB;AACpB;AADoB,WAAA,eAAA;AAEpB,WAAK,gBAAgB;;IAGvB,eAAe;AACb,YAAM,WAAW,MAAM,QAAQ,qBAC3B,kBAAkB,IAAI,OAAK,EAAE,QAC7B,OAAO,KAAK;AAChB,eAAS,QAAQ,CAAC,MAAM;AACtB,cAAM,WAAW,MAAM,QAAQ,qBAC3B,kBAAkB,GAAG,SACrB,kBAAkB;AACtB,YAAI,YAAY;AACd;;AAEF,cAAM,QAAQ,OAAO,oBAAoB;AACzC,aAAK;AACH,gBAAM,WAAW,KAAI,IAAI,KAAK,GAAG,WAAW;AAC5C,gBAAM,OAAO;;;AAGjB,WAAK;;IAMP,gBAAgB;AACd,WAAK,eAAe;AACpB,UAAI,KAAK,KAAK;AACZ,aAAK,EAAE;;AAET,WAAK,IAAI,KAAK,OAAO,CAAC;;IAGxB;AACE,WAAK,EAAE;;UAGH;AACJ,aAAO,CAAC,MAAM,KAAK;;UAGf,WAAW;AACf,qBAAe,MAAM,KAAK,kBAAkB;AAC5C,UAAI,aAAa,WAAW;AAC1B,cAAM,IAAI,MAAM;;;IAIpB;AACE,aAAO,CAAC,cAAgB,KAAK;;WAIxB,WACH,KAAiC;AACnC,aAAO,IAAI,IAAI,QAAO;;;AA7DjB,eAAA,YAAY;AAgErB,gBAAc;;;AC/Fd;;;;;;;;;;;;;;;;kCA+BuC;IAMrC,YACc,cAA8B,UAChC,cAAc;AACxB,YAAM;AAFM,WAAA,eAAA;AAA8B,WAAA,WAAA;AAChC,WAAA,cAAA;AAJJ,WAAA,gBAAqC;AAM3C,WAAK,IAAI,OAAO,KAAK;;IAGvB,eAAe;AACb,YAAM,gBAAgB,MAAM,QAAQ,qBAChC,kBAAkB,IAAI,UAAQ,KAAK,QACnC,OAAO,KAAK;AAEhB,oBAAc,QAAQ,CAAC,MAAM;AAC3B,cAAM,QAAQ,OAAO,oBAAoB;AACzC,YAAI,KAAK,cAAc,MAAM;AAC3B,gBAAM,YAAY;AAClB,eAAK,cAAc,KAAK;YACtB,cAAc,GAAG;YACjB,UAAU,KAAK,MAAM,UAAU,OAAO,SAAS;;;AAInD,cAAM,eAAe,KAAK,cAAc,GAAG;AAC3C,cAAM,WAAW,MAAM,QAAQ,qBAC3B,kBAAkB,GAAG,SACrB,kBAAkB;AACtB,YAAI,YAAY;AACd;;AAGF,aAAK;AACH,cAAI;AACJ,gBAAM,kBAAkB,KAAI,IAAI,KAAK,GAAG,eAAe;AACvD,cAAI,KAAK;AACP,uBAAW,KACP,IAAI,KAAK,GAAG,KAAI,UAAU,IAAI,iBAAiB,KAAK,MAAM;;AAE9D,uBAAW,KAAI,IAAI,KAAK,GAAG,kBAAkB;;AAE/C,uBAAa,OAAO;AACpB,gBAAM,OAAO;;;AAGjB,WAAK;;IAGP;AACE,WAAK,EAAE;AACP,UAAI,KAAK,iBAAiB;AACxB,gBAAQ,KAAK,cAAc,IAAI,OAAK,EAAE;;;IAS1C,YAAY;AACV,WAAK,WAAW;;UAGZ;AAEJ,aAAO,CAAC,MAAM,KAAK,kBAAkB,OAAO,KAAK,cAAc,IAC3D,OAAM,EAAC,MAAM,EAAE,cAAc,QAAQ,EAAE;;UAGvC,WAAW;AACf,qBAAe,MAAM,KAAK,kBAAkB;AAC5C,YAAM,YAAY;AAClB,WAAK,gBAAgB,aAAa,IAC9B,OAAM,EAAC,cAAc,EAAE,MAAM,UAAU,EAAE,OAAO,SAAS;;IAG/D;AACE,aAAO;QACL,cAAgB,KAAK;QACrB,UAAY,KAAK;QACjB,aAAe,KAAK;;;WAKjB,WACH,KAAiC;AACnC,aAAO,IAAI,IACP,QAAO,iBAAiB,QAAO,aAAa,QAAO;;;AA3FlD,oBAAA,YAAY;AA8FrB,gBAAc;;;AC/Hd;;;;;;;;;;;;;;;;iCAgCsC;IASpC,YACc,cAAgC,QAAQ,KACxC,WAAW,GAAe,WAAkB,MACtD,WAAW;AACb;AAHY,WAAA,eAAA;AAAgC,WAAA,QAAA;AAChC,WAAA,WAAA;AAA0B,WAAA,UAAA;AANhC,WAAA,yBAA8C;AAC9C,WAAA,qBAA0C;AAC1C,WAAA,uBAA4C;AAQlD,WAAK,WAAW;AAEhB,UAAI,YAAW;AACb,aAAK,UAAU,OAAO,QAAQ;;AAEhC,UAAI,gBAAgB;AAClB,cAAM,IAAI,MAAM;;;IAIpB,eAAe;AACb,YAAM,gBAAgB,MAAM,QAAQ,qBAChC,kBAAkB,IAAI,UAAQ,KAAK,QACnC,OAAO,KAAK;AAEhB,oBAAc,QAAQ,CAAC,MAAM;AAC3B,cAAM,QAAQ,OAAO,oBAAoB;AACzC,cAAM,YAAY;AAClB,YAAI,KAAK,uBAAuB,MAAM;AACpC,eAAK,uBAAuB,KAAK;YAC/B,cAAc,GAAG;YACjB,UAAU,KAAK,MAAM,UAAU,OAAO,SAAS;;;AAGnD,YAAI,KAAK,mBAAmB,MAAM;AAChC,eAAK,mBAAmB,KAAK;YAC3B,cAAc,GAAG;YACjB,UAAU,KAAK,MAAM,UAAU,OAAO,SAAS;;;AAGnD,YAAI,KAAK,qBAAqB,MAAM,QAAQ,KAAK;AAC/C,eAAK,qBAAqB,KAAK;YAC7B,cAAc,GAAG;YACjB,UAAU,KAAK,MAAM,UAAU,OAAO,SAAS;;;AAInD,cAAM,WAAW,MAAM,QAAQ,qBAC3B,kBAAkB,GAAG,SACrB,kBAAkB;AACtB,YAAI,YAAY;AACd;;AAGF,cAAM,wBAAwB,KAAK,uBAAuB,GAAG;AAC7D,cAAM,qBAAqB,KAAK,mBAAmB,GAAG;AACtD,aAAK;AACH,gBAAM,2BACF,KAAI,IAAI,uBAAuB,KAAK,QAChC,IAAI,OAAO,WAAW,IAAI,KAAK;AAEvC,cAAI,KAAK;AACP,kBAAM,sBAAsB,KAAK,qBAAqB,GAAG;AAEzD,kBAAM,yBACF,KAAI,IAAI,qBAAqB,KAAK,QAC9B,IAAI,UAAU,IAAI,KAAK;AAE/B,kBAAM,mBACF,IAAI,IAAI,UAAU,KAAK,eACnB,KACI,IAAI,0BACA,KAAI,OAAO,yBAAyB,KAAK;AACzD,kBAAM,wBACF,KAAI,IAAI,oBAAoB,KAAK,WAAW;AAEhD,kCAAsB,OAAO;AAC7B,gCAAoB,OAAO;AAC3B,+BAAmB,OAAO;AAE1B,kBAAM,WAAW,IAAI,OAAO;AAC5B,kBAAM,OAAO;;AAGb,kBAAM,4BACF,KAAI,IAAI,uBAAuB,KAAK,QAChC,IAAI,OAAO,WAAW,IAAI,KAAK;AAEvC,kBAAM,wBACF,KAAI,IAAI,oBAAoB,KAAK,WAC7B,IAAI,IAAI,UAAU,KAAK,eACnB,KAAK,KAAI,2BAA0B,KAAK;AAEpD,kCAAsB,OAAO;AAC7B,+BAAmB,OAAO;AAE1B,kBAAM,WAAW,IAAI,OAAO;AAC5B,kBAAM,OAAO;;;;AAInB,WAAK;;IAGP;AACE,UAAI,KAAK,0BAA0B;AACjC,gBAAQ,KAAK,uBAAuB,IAAI,OAAK,EAAE;;AAEjD,UAAI,KAAK,wBAAwB,QAAQ,KAAK;AAC5C,gBAAQ,KAAK,qBAAqB,IAAI,OAAK,EAAE;;AAE/C,UAAI,KAAK,sBAAsB;AAC7B,gBAAQ,KAAK,mBAAmB,IAAI,OAAK,EAAE;;;UAIzC;AAEJ,YAAM,YACF,CAAC,GAAG,KAAK,wBAAwB,GAAG,KAAK;AAC7C,UAAI,KAAK;AACP,kBAAU,KAAK,GAAG,KAAK;;AAEzB,aAAO,CAAC,MAAM,KAAK,kBAAkB,OACjC,UAAU,IAAI,OAAM,EAAC,MAAM,EAAE,cAAc,QAAQ,EAAE;;UAGrD,WAAW;AACf,qBAAe,MAAM,KAAK,kBAAkB;AAC5C,YAAM,gBACF,KAAK,WAAW,aAAa,SAAS,IAAI,aAAa,SAAS;AACpE,YAAM,YAAY;AAClB,WAAK,yBACD,aAAa,MAAM,GAAG,eAAe,IAAI,OAAM;QACJ,cAAc,EAAE;QAChB,UAAU,EAAE,OAAO,SACf;;AAEnD,WAAK,qBACD,aAAa,MAAM,eAAe,gBAAgB,GAC7C,IAAI,OAAM;QACJ,cAAc,EAAE;QAChB,UAAU,EAAE,OAAO,SAAS;;AAE3C,UAAI,KAAK;AACP,aAAK,uBACD,aAAa,MAAM,gBAAgB,GAAG,gBAAgB,GACjD,IAAI,OAAM;UACJ,cAAc,EAAE;UAChB,UAAU,EAAE,OAAO,SAAS;;;;IAK/C;AACE,aAAO;QACL,cAAgB,KAAK;QACrB,OAAS,KAAK;QACd,UAAY,KAAK;QACjB,SAAW,KAAK;QAChB,UAAY,KAAK;;;WAKd,WACH,KAAiC;AACnC,aAAO,IAAI,IACP,QAAO,iBAAiB,QAAO,UAAU,QAAO,aAChD,QAAO,YAAY,QAAO;;;AA5KzB,mBAAA,YAAY;AA+KrB,gBAAc;;;ACjNd;;;;;;;;;;;;;;;;;WAgES,IAAI;AACT,aAAO,IAAI,aAAa;;WAmBnB,SAAS,cAAsB,UAAkB,cAAc;AAEpE,aAAO,IAAI,kBAAkB,cAAc,UAAU;;WAwBhD,QACH,cAAsB,QAAQ,KAAI,WAAW,GAAK,WAAkB,MACpE,WAAW;AACb,aAAO,IAAI,iBACP,cAAc,OAAO,UAAU,UAAS;;WAgBvC,KACH,eAAe,MAAO,QAAQ,KAAK,QAAQ,OAC3C,WAAkB;AACpB,aAAO,IAAI,cAAc,cAAc,OAAO,OAAO;;WAgBhD,SAAS,eAAe,MAAM,MAAM,MAAK,WAAkB;AAEhE,aAAO,IAAI,kBAAkB,cAAc,KAAK;;WAiB3C,OACH,eAAe,MAAO,QAAQ,KAAK,QAAQ,OAAO,WAAkB,MACpE,QAAQ;AACV,aAAO,IAAI,gBAAgB,cAAc,OAAO,OAAO,UAAS;;WAoB3D,QAAQ,cAAsB,0BAA0B;AAE7D,aAAO,IAAI,iBAAiB,cAAc;;;;;ACjM9C;;;;;;;;;;;;;;;;AA4BA;IAAC;IAAmB;IAAc;IAAmB;IACpD;IAAkB;IAAiB;;AAE7B,QAAM,QAAQ;IACnB,KAAK,sBAAsB;IAC3B,UAAU,sBAAsB;IAChC,UAAU,sBAAsB;IAChC,SAAS,sBAAsB;IAC/B,SAAS,sBAAsB;IAC/B,QAAQ,sBAAsB;IAC9B,MAAM,sBAAsB;;;;ACtC9B;;;;;;;;;;;;;;;;AAiBA,QAAM,gBAA2B;AAC/B,QAAI,OAAO,0BAA0B;AACnC,aAAO;eACE,OAAO,iBAAiB;AACjC,aAAO;;AAET,WAAO,CAAC,MAAgB;;AAY1B;AACE,WAAO,IAAI,QAAc,aAAW,cAAc,MAAM;;;;ACpC1D;;;;;;;;;;;;;;;;AAkBM,0BACF,QAAiC,aACjC;AACF,UAAM,UACF,aAAc,QAAO,WAAW,WAAW,SAAS,OAAO;AAC/D,UAAM,UACF,cAAe,QAAO,WAAW,WAAW,SAAS,OAAO;AAChE,WAAO,CAAC,SAAS;;;;ACzBnB;;;;;;;;;;;;;;;;AAyBM,uBACF,YAAsB,YAAsB,OAC5C,eAAe;AACjB,QAAI,WAAqB;AACzB,QAAI;AACF,iBAAW,SAAS,OAAO,WAAW,MAAM;AAC5C,eAAS,KAAK,WAAW,KAAK;AAC9B,iBAAW,SAAS,OAAO,WAAW,MAAM;;AAE5C,iBAAW,SAAS,OAAO,WAAW;AACtC,YAAM,gBAAgB,WAAW;AACjC,eAAS,IAAI,GAAG,IAAI,eAAe,EAAE;AACnC,mBACI,SAAS,OAAO,CAAC,WAAW,IAAI,KAAK,WAAW,IAAI,WAAW;;AAErE,iBAAW,SAAS,OAAO,WAAW,MAAM,gBAAgB;;AAE9D,WAAO;;AAYH,uBACF,cAAsB,gBACtB,eAAe;AACjB,UAAM,WAAW;AACjB,QAAI;AACF,eAAS,KAAK;AACd,eAAS,IAAI,iBAAiB,GAAG,IAAI,cAAc,EAAE;AACnD,YAAI,KAAK,IAAI;AACX,mBAAS,KAAK;AACd,mBAAS,KAAK,IAAK,kBAAiB;;AAEpC,mBAAS,KAAK;;;;AAIlB,YAAM,sBAAsB;AAC5B,YAAM,qBAAqB;AAC3B,eAAS,IAAI,GAAG,IAAI,cAAc,EAAE;AAClC,YAAI,KAAK,iBAAiB,IAAI,KAAK,IAAI,MAAM;AAC3C,6BAAmB,KAAK;;AAExB,8BAAoB,KAAK;;;AAG7B,eAAS,KAAK,GAAG;AACjB,eAAS,KAAK;AACd,eAAS,KAAK,GAAG;;AAEnB,WAAO;;AAYH,+BACF,YAAsB,YAAsB,OAC5C,eAAe;AACjB,UAAM,mBAAmB;AAEzB,QAAI;AACF,uBAAiB,KAAK,WAAW,KAAK;;AAEtC,uBAAiB,KAAK,WAAW,KAAK;;AAGxC,aAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,EAAE;AACvC,UAAI,KAAK,WAAW;AAClB,YAAI;AACF,2BAAiB,KAAK,WAAW,IAAI,KAAK,WAAW;;AAErD,2BAAiB,KAAK,WAAW,KAAK,WAAW,IAAI;;;AAGvD,yBAAiB,KAAK,WAAW;;;AAIrC,WAAO;;AAOH,+BACF,OAAmB;AACrB,UAAM,mBAAmB,CAAC;AAC1B,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE;AAChC,uBAAiB,KAAK,MAAM,GAAG;;AAEjC,WAAO;;AAcH,wBACF,gBAA0B,OAAmB;AAC/C,UAAM,YAAY,eAAe,MAAM,GAAG;AAC1C,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE;AAChC,gBAAU,KAAK,eAAe,IAAI,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG;;AAGhE,WAAO;;;;ACvJT;;;;;;;;;;;;;;;;AAiBO,QAAM,kBAAkB;AACxB,QAAM,aAAa;;;AClB1B;;;;;;;;;;;;;;;;AAiBO,QAAM,QAAQ;AACd,QAAM,SAAS;AACf,QAAM,SAAS;AACf,QAAM,SAAS;AACf,QAAM,SAAS;AACf,QAAM,SAAS;;;ACtBtB;;;;;;;;;;;;;;;;AAmBM,mBAAkB;AACtB,QAAI,CAAC,MAAM,QAAQ;AACjB,cAAQ,KAAK,GAAG;;;AAId,mBAAiB;AACrB,QAAI,CAAC,MAAM,QAAQ;AACjB,cAAQ,IAAI,GAAG;;;;;AC3BnB;;;;;;;;;;;;;;;;AAgCM,kCACF,OAAoB;AACtB,QAAI,MAAK,WAAW,MAAK;AACvB,YAAM,IAAI,MACN,gEACG,MAAK,iBAAiB,MAAK;;AAEpC,UAAM,SAAS,IAAI,aAAa,MAAK,SAAS;AAC9C,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,aAAO,KAAK,MAAK,IAAI;AACrB,aAAO,IAAI,KAAK,MAAK,IAAI;;AAE3B,WAAO;;AAiBH,kCAAiC;AAErC,UAAM,QAAO,IAAI,aAAa,SAAQ,SAAS;AAC/C,UAAM,QAAO,IAAI,aAAa,SAAQ,SAAS;AAC/C,aAAS,IAAI,GAAG,IAAI,SAAQ,QAAQ,KAAK;AACvC,YAAK,IAAI,KAAK,SAAQ;AACtB,YAAK,IAAI,KAAK,SAAQ,IAAI;;AAE5B,WAAO,CAAC,aAAM;;AAOV,gCAA+B;AAEnC,UAAM,MAAM,KAAK,KAAK,SAAQ,SAAS;AACvC,UAAM,QAAO,IAAI,aAAa;AAC9B,UAAM,QAAO,IAAI,aAAa;AAC9B,aAAS,IAAI,GAAG,IAAI,SAAQ,QAAQ,KAAK;AACvC,YAAK,KAAK,MAAM,IAAI,MAAM,SAAQ;AAClC,YAAK,KAAK,MAAM,IAAI,MAAM,SAAQ,IAAI;;AAExC,WAAO,CAAC,aAAM;;AAOV,+BAA8B;AAElC,UAAM,MAAM,KAAK,MAAM,SAAQ,SAAS;AACxC,UAAM,QAAO,IAAI,aAAa;AAC9B,UAAM,QAAO,IAAI,aAAa;AAC9B,aAAS,IAAI,GAAG,IAAI,SAAQ,QAAQ,KAAK;AACvC,YAAK,KAAK,MAAM,IAAI,MAAM,SAAQ;AAClC,YAAK,KAAK,MAAM,IAAI,MAAM,SAAQ,IAAI;;AAExC,WAAO,CAAC,aAAM;;AAQV,+BACF,UAAuB;AACzB,UAAM,QAAO,SAAQ,QAAQ;AAC7B,UAAM,QAAO,SAAQ,QAAQ,IAAI;AACjC,WAAO,CAAC,aAAM;;AASV,8BACF,MAAkB,OAAc,OAAc;AAChD,SAAK,QAAQ,KAAK;AAClB,SAAK,QAAQ,IAAI,KAAK;;AAMlB,qBACF,GAAW;AACb,UAAM,QAAO,IAAI,aAAa,IAAI;AAClC,UAAM,QAAO,IAAI,aAAa,IAAI;AAClC,aAAS,IAAI,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI;AACpC,YAAM,IAAK,WAAU,IAAI,MAAM,KAAK,KAAM,KAAI;AAC9C,YAAK,KAAK,KAAK,IAAI;AACnB,YAAK,KAAK,KAAK,IAAI;;AAErB,WAAO,CAAC,aAAM;;AAMV,oBACF,GAAW,GAAW;AACxB,UAAM,IAAK,WAAU,IAAI,MAAM,KAAK,KAAM,KAAI;AAC9C,UAAM,QAAO,KAAK,IAAI;AACtB,UAAM,QAAO,KAAK,IAAI;AACtB,WAAO,CAAC,aAAM;;;;ACvJhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDM,sBACF,GAAM,OAAiB;AACzB,QAAI,UAAU;AACZ,UAAI,EAAE,UAAU;AACd,eAAO,EAAE;;AAEX,YAAM,cAAc,MAAM,EAAE;AAC5B,YAAM,SAAS,KAAK,GAAG;AACvB,YAAM,SAAS,SAAQ,QAAQ,QAAQ;AACvC,kBAAY;AACZ,aAAO;AACP,aAAO;;AAGT,QAAI,CAAC,gBAAgB,EAAE,OAAO;AAG5B,aAAO,OAAO,qBAAqB,EAAE,QAAQ,EAAE,OAAO;;AAExD,QAAI,EAAE,UAAU;AACd,YAAM,QAAO,SAAQ,KAAK;AAC1B,YAAM,SAAS,KAAK,OAAM;AAC1B,YAAK;AACL,aAAO;;AAET,QAAI,UAAU;AACZ,aAAO,SAAQ,IAAI;eACV,UAAU;AACnB,YAAM,OAAO,OAAO,GAAG,EAAE;AACzB,YAAM,SAAS,SAAQ,SAAS,GAAG;AACnC,WAAK;AACL,aAAO;;AAEP,YAAM,IAAI,MAAM,iCAAiC,EAAE,YAAY;;;AAI7D,yBACF,GAAM;AACR,WAAO,OAAO,qBAAqB,EAAE,QAAQ,OAAO,EAAE;;AAGlD,wBAAuB,OAAe,MAAc;AACxD,UAAM,QAAQ,QAAO,SAAU,OAAM;AAErC,UAAM,SAAS,oBAAoB,KAAK;AACxC,WAAO,KAAK;AACZ,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ;AACjC,aAAO,KAAK,OAAO,IAAI,KAAK;;AAG9B,WAAO,SAAS,QAAQ;;;;ACzG1B;;;;;;;;;;;;;;;;AAwBM,kBACF,GAAM,YAAsB;AAC9B,UAAM,QAAQ,IAAI,MAAM,EAAE,MAAM,KAAK;AACrC,UAAM,OAAO,EAAE,MAAM;AACrB,WAAO,WAAW,IAAI;AACpB,YAAM,YAAY,CAAC,GAAG;AACtB,gBAAU,QAAQ;AAClB,YAAM,SAAS,MAAM,GAAG,OAAO;AAC/B,YAAM,SAAS;AACf,aAAO;;;;;ACjCX;;;;;;;;;;;;;;;;AA0BM,iBACF,MAAiC;AACnC,UAAM,WAAqB,IAAI,MAAM,KAAK;AAC1C,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ;AACnC,eAAS,KAAK,KAAK,MAAM,KAAK,KAAK;;AAErC,UAAM,SAAS,OAAO,UAAU,KAAK;AACrC,aAAS,IAAI,GAAG,IAAI,OAAO,OAAO,QAAQ,EAAE;AAC1C,YAAM,SAAS,OAAO,WAAW;AAEjC,YAAM,cAAwB,IAAI,MAAM,KAAK;AAC7C,eAAS,IAAI,GAAG,IAAI,YAAY,QAAQ;AACtC,oBAAY,KAAK,OAAO,KAAK,KAAK,MAAM;;AAG1C,YAAM,gBAAgB,KAAK,WAAW;AAEtC,aAAO,OAAO,KAAK,KAAK,OAAO;;AAEjC,WAAO,OAAO;;;;AC7ChB;;;;;;;;;;;;;;;;AAwBM,oBACF,GAAe,QAAkB,QAAyB,GAC1D;AAEF,UAAM,UAAU,OAAO,OAAO,SAAS;AACvC,UAAM,CAAC,OAAO,QAAQ,CAAC,EAAE,SAAS,SAAS;AAC3C,UAAM,cAAc,uBAAuB,QAAQ,QAAQ;AAC3D,UAAM,iBAAiB,uBAAuB,SAAS,QAAQ;AAE/D,aAAS,IAAI,GAAG,IAAI,OAAO;AACzB,YAAM,SAAS,IAAI;AACnB,YAAM,OAAO,EAAE,SAAS,QAAQ,SAAS;AACzC,YAAM,YAAmD;AACzD,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ;AAC/B,kBAAU,KAAK,CAAC,OAAO,KAAK,IAAI,OAAO;;AAEzC,gBAAU,KAAK,CAAC,GAAG,OAAM,GAAE,QAAQ,EAAE;AAErC,YAAM,YAAY,IAAI;AACtB,YAAM,WAAW,YAAY,SAAS,WAAW,YAAY;AAC7D,YAAM,cAAc,eAAe,SAAS,WAAW,YAAY;AACnE,eAAS,IAAI,GAAG,IAAI,GAAG;AACrB,iBAAS,KAAK,UAAU,GAAG;AAC3B,oBAAY,KAAK,UAAU,GAAG;;;AAKlC,UAAM,cAAc,OAAO;AAC3B,gBAAY,YAAY,SAAS,KAAK;AACtC,WAAO;MACL,QAAO,aAAa,aAAa;MACjC,QAAO,gBAAgB,aAAa;;;;;ACxDxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;AAsBO,QAAM,kBAAkB;AACxB,QAAM,kBAAkB;AAvB/B;IAiDE,YAAoB,UAAgC;AAAhC,WAAA,UAAA;AAAgC,WAAA,YAAA;AAH5C,WAAA,OAAO,IAAI;AACX,WAAA,eAAe;;IAIvB,IAAI;AACF,UAAI,CAAC,KAAK,KAAK,IAAI;AACjB,aAAK,UAAU,SAAS,KAAK,SAAS;;AAExC,aAAO,KAAK,KAAK,IAAI;;IAGvB,IAAI,QAAgB;AAClB,WAAK;AACL,WAAK,KAAK,IAAI,QAAQ;;IAGxB,IAAI;AACF,aAAO,KAAK,KAAK,IAAI;;IAGvB,OAAO;AACL,WAAK;AACL,aAAO,KAAK,KAAK,OAAO;;IAG1B;AACE,aAAO,KAAK;;;AAzEhB;IAiGE,KAAK;AACH,aAAO,kBAAkB;;IAE3B,KAAK;AACH,aAAO,kBAAkB;;IAE3B,SAAS;AACP,aAAO,kBAAkB;;IAE3B;AACE,aAAO,kBAAkB;;IAE3B,YAAY;AACV,aAAO,kBAAkB;;IAE3B,MAAM,QAAuB,OAAiB;AAC5C,aAAO,kBAAkB;;IAE3B,KAAK,QAAgB,QAAuB,OAAiB;AAE3D,aAAO,kBAAkB;;IAE3B;AACE,aAAO,kBAAkB;;IAG3B;AACE,aAAO,kBAAkB;;IAG3B;AACE,aAAO,KAAK,qBAAqB,KAAK,kBAAkB;;IAG1D,YACI,GAAa,GAAa,YAC1B;AACF,aAAO,kBAAkB;;IAG3B,iBACI,CAAC,GAAG,GAAG,YAAY,YAAY,MAAM,YAAY;AAEnD,aAAO,kBAAkB;;IAG3B,MAAwB,GAAM,OAAiB;AAC7C,aAAO,kBAAkB;;IAE3B,aACI,GAAM,OAAiB,KAAe;AACxC,aAAO,kBAAkB;;IAE3B,QAAQ,GAAW;AACjB,aAAO,kBAAkB;;IAE3B,QAA0B,GAAM;AAC9B,aAAO,kBAAkB;;IAG3B,OAAO,SAAmB;AACxB,aAAO,kBAAkB;;IAG3B,IAAsB;AACpB,aAAO,kBAAkB;;IAG3B,IAAI,GAAW;AACb,aAAO,kBAAkB;;IAE3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,SAAS,GAAW;AAClB,aAAO,kBAAkB;;IAE3B,SAAS,GAAW;AAClB,aAAO,kBAAkB;;IAE3B,WAAW,GAAW;AACpB,aAAO,kBAAkB;;IAE3B,SAAS,GAAW;AAClB,aAAO,kBAAkB;;IAG3B,IAAI,GAAW;AACb,aAAO,kBAAkB;;IAE3B,KAAK,GAAW;AACd,aAAO,kBAAkB;;IAG3B,mBACI,GAAM,YAAsB;AAC9B,aAAO,kBAAkB;;IAG3B,OAAO,GAAW;AAChB,aAAO,kBAAkB;;IAE3B,OAAO,GAAW;AAChB,aAAO,kBAAkB;;IAG3B,MAAM,GAAW;AACf,aAAO,kBAAkB;;IAE3B,SAAS,GAAW;AAClB,aAAO,kBAAkB;;IAG3B,KAAK,GAAW;AACd,aAAO,kBAAkB;;IAE3B,UAAU,GAAW;AACnB,aAAO,kBAAkB;;IAG3B,QAAQ,GAAW;AACjB,aAAO,kBAAkB;;IAE3B,aAAa,GAAW;AACtB,aAAO,kBAAkB;;IAG3B,WAA6B;AAC3B,aAAO,kBAAkB;;IAE3B,WAAW,GAAW;AACpB,aAAO,kBAAkB;;IAE3B,UAAU,GAAW;AACnB,aAAO,kBAAkB;;IAG3B,MAAM;AACJ,aAAO,kBAAkB;;IAE3B,OAAO,WAAmB,GAAW;AACnC,aAAO,kBAAkB;;IAG3B,KAAuB,GAAM,GAAW;AACtC,aAAO,kBAAkB;;IAG3B,IAAI,GAAW;AACb,aAAO,kBAAkB;;IAE3B,QAAQ,GAAW;AACjB,aAAO,kBAAkB;;IAG3B,IAAI,GAAW;AACb,aAAO,kBAAkB;;IAG3B,IAAI,GAAW;AACb,aAAO,kBAAkB;;IAE3B,QAAQ,GAAW;AACjB,aAAO,kBAAkB;;IAG3B,IAAI,GAAW;AACb,aAAO,kBAAkB;;IAE3B,IAAI,GAAW;AACb,aAAO,kBAAkB;;IAG3B,kBAAkB,GAAW;AAC3B,aAAO,kBAAkB;;IAG3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,MAAwB;AACtB,aAAO,kBAAkB;;IAE3B,MAAwB;AACtB,aAAO,kBAAkB;;IAG3B,KAAuB;AACrB,aAAO,kBAAkB;;IAG3B,MAAwB;AACtB,aAAO,kBAAkB;;IAE3B,MAAwB;AACtB,aAAO,kBAAkB;;IAE3B,SAA2B;AACzB,aAAO,kBAAkB;;IAG3B,IAAsB,GAAM;AAC1B,aAAO,kBAAkB;;IAE3B,IAAsB;AACpB,aAAO,kBAAkB;;IAE3B,MAAwB;AACtB,aAAO,kBAAkB;;IAE3B,QAA0B,GAAM;AAC9B,aAAO,kBAAkB;;IAE3B,IAAsB;AACpB,aAAO,kBAAkB;;IAE3B,MAAwB;AACtB,aAAO,kBAAkB;;IAE3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,MAAwB;AACtB,aAAO,kBAAkB;;IAE3B,OAAyB;AACvB,aAAO,kBAAkB;;IAE3B,WAA6B;AAC3B,aAAO,kBAAkB;;IAE3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,MAAwB;AACtB,aAAO,kBAAkB;;IAE3B,MAAwB,GAAM;AAC5B,aAAO,kBAAkB;;IAE3B,IAAsB;AACpB,aAAO,kBAAkB;;IAE3B,OAAyB,IAAO;AAC9B,aAAO,kBAAkB;;IAE3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,IAAsB;AACpB,aAAO,kBAAkB;;IAG3B,KAAuB,GAAM,MAAa;AACxC,aAAO,kBAAkB;;IAG3B,IAAsB;AACpB,aAAO,kBAAkB;;IAE3B,WAA6B;AAC3B,aAAO,kBAAkB;;IAG3B,QAA0B;AACxB,aAAO,kBAAkB;;IAG3B,SAA2B;AACzB,aAAO,kBAAkB;;IAG3B,IAAsB;AACpB,aAAO,kBAAkB;;IAE3B,IAAsB;AACpB,aAAO,kBAAkB;;IAE3B,IAAsB;AACpB,aAAO,kBAAkB;;IAG3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,MAAwB,GAAM;AAC5B,aAAO,kBAAkB;;IAG3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,KAAuB;AACrB,aAAO,kBAAkB;;IAG3B,MAAwB;AACtB,aAAO,kBAAkB;;IAE3B,MAAwB;AACtB,aAAO,kBAAkB;;IAE3B,MAAwB;AACtB,aAAO,kBAAkB;;IAG3B,IAAsB;AACpB,aAAO,kBAAkB;;IAG3B,KAAuB,GAAM;AAC3B,aAAO,kBAAkB;;IAG3B,YACI,CAAC,OAAO,QAAQ,UAAU,MAAM,YAAY;AAE9C,aAAO,kBAAkB;;IAG3B,OAAO,GAAa,QAAkB;AACpC,aAAO,kBAAkB;;IAE3B,eAAe,IAAc,QAAkB;AAE7C,aAAO,kBAAkB;;IAE3B,gBAAgB,GAAa,IAAc;AACzC,aAAO,kBAAkB;;IAG3B,qBACI,CAAC,OAAO,QAAQ,UAAU,MAAM,YAAY;AAE9C,aAAO,kBAAkB;;IAG3B,gBAAgB,OAAiB,QAAkB;AAEjD,aAAO,kBAAkB;;IAE3B,wBAAwB,IAAc,QAAkB;AAEtD,aAAO,kBAAkB;;IAE3B,yBAAyB,GAAa,IAAc;AAElD,aAAO,kBAAkB;;IAE3B,OAAO,GAAa,QAAkB;AACpC,aAAO,kBAAkB;;IAE3B,eAAe,IAAc,QAAkB;AAE7C,aAAO,kBAAkB;;IAE3B,gBAAgB,GAAa,IAAc;AACzC,aAAO,kBAAkB;;IAE3B,QAAQ,GAAa;AACnB,aAAO,kBAAkB;;IAE3B,gBAAgB,IAAc,GAAa,GAAa;AAEtD,aAAO,kBAAkB;;IAE3B,QAAQ,GAAa;AACnB,aAAO,kBAAkB;;IAE3B,gBAAgB,IAAc,GAAa;AACzC,aAAO,kBAAkB;;IAE3B,UAAU,GAAa;AACrB,aAAO,kBAAkB;;IAE3B,kBAAkB,IAAc,GAAa;AAC3C,aAAO,kBAAkB;;IAE3B,UAAU,GAAa;AACrB,aAAO,kBAAkB;;IAE3B,kBACI,IAAc,GAAa,GAAa;AAC1C,aAAO,kBAAkB;;IAG3B,QAA0C,GAAM;AAE9C,aAAO,kBAAkB;;IAE3B,KAAuB,GAAM;AAC3B,aAAO,kBAAkB;;IAG3B,KAAuB,GAAM;AAC3B,aAAO,kBAAkB;;IAG3B,IACI,GAAM,UAAmC;AAC3C,aAAO,kBAAkB;;IAG3B,UAA4B,GAAM;AAChC,aAAO,kBAAkB;;IAG3B,OAAyB,GAAM,SAAmB;AAChD,aAAO,kBAAkB;;IAG3B,SAAS,GAAW;AAClB,aAAO,kBAAkB;;IAG3B,UACI,SAAiB,SAAiB;AACpC,aAAO,kBAAkB;;IAG3B,eACI,GAAM,YAAsB;AAC9B,aAAO,kBAAkB;;IAG3B,eACI,GAAM,YAAsB;AAC9B,aAAO,kBAAkB;;IAG3B,eACI,GAAa,WAAmB,UAChC;AACF,aAAO,kBAAkB;;IAG3B,uBAAuB,IAAc,GAAa;AAEhD,aAAO,kBAAkB;;IAG3B,sBACI,GAAa,WAAmB,UAChC;AACF,aAAO,kBAAkB;;IAG3B,8BACI,IAAc,GAAa;AAC7B,aAAO,kBAAkB;;IAG3B,UACI,GAAa,OAAyB,UACtC,QAA4B,QAC5B;AACF,aAAO,kBAAkB;;IAG3B,6BACI,GAAa,QAAgB,MAAc,OAC3C;AACF,aAAO,kBAAkB;;IAG3B,QACI,IAAc,YAAsB,aAAuB,QAC3D,MAAc,OAAe;AAC/B,aAAO,kBAAkB;;IAG3B,YACI,QAAkB,YAAqB,YACvC;AACF,aAAO,kBAAkB;;IAG3B,OAAO,SAAmB,OAAe,SAAiB;AAExD,aAAO,kBAAkB;;IAG3B,OAAO,GAAW,MAAc,WAAoB;AAElD,aAAO,kBAAkB;;IAG3B,kBACI,OAAiB,QAAkB,eACnC,cAAsB;AACxB,aAAO,kBAAkB;;IAG3B,IAAI;AACF,aAAO,kBAAkB;;IAE3B,KAAK;AACH,aAAO,kBAAkB;;IAE3B,QAA0B,OAAS;AACjC,aAAO,kBAAkB;;IAE3B,KAAuB;AACrB,aAAO,kBAAkB;;IAE3B,KAAuB;AACrB,aAAO,kBAAkB;;IAG3B,cACI,QAAiB,OAAiB,UAClC,UAA4B,QAC5B;AACF,aAAO,kBAAkB;;IAG3B,aAAa,GAAa,WAAmB;AAC3C,aAAO,kBAAkB;;IAI3B,MAAwB,OAAU,YAAsB;AACtD,aAAO,kBAAkB;;IAG3B,cACI,eAAuB,cAAsB,aAC7C;AACF,aAAO,kBAAkB;;IAG3B,KAAK;AACH,aAAO,kBAAkB;;IAG3B,KACI,OAAoB,OAAsB;AAC5C,aAAO,kBAAkB;;IAG3B,SAAyB;AACvB,aAAO,kBAAkB;;IAG3B,UAA0B;AACxB,aAAO,kBAAkB;;IAG3B,SAAS,OAAe,MAAc;AACpC,aAAO,kBAAkB;;IAG3B;AACE,aAAO,kBAAkB;;;AAI7B,6BAA2B;AACzB,UAAM,IAAI,MACN,IAAI;;;;ACzpBV;;;;;;;;;;;;;;;;AAwBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,KAAK,KAAK,GAAG,YAAY;;;;;AC7BtD;;;;;;;;;;;;;;;;AA4BO,QAAM,iBAA6B;IACxC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO;QACL,GAAG;AACD,gBAAM,IAAI,OAAO,KAAK,GAAG;AACzB,gBAAM,IAAI,KAAK,IAAI,OAAO,IAAI;AAC9B,iBAAO,IAAI,IAAI,IAAI;;;;;;;ACtC3B;;;;;;;;;;;;;;;;AA0BO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO;QACL,GAAG;AACD,gBAAM,IAAI,KAAK,IAAI,OAAO,KAAK,GAAG,aAAa;AAC/C,iBAAO,IAAI,IAAI;;;;;;;ACnCvB;;;;;;;;;;;;;;;;AAuBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,WACF,AAAe,2BAA2B,EAAE,OAAO,EAAE;AAEzD,YAAM,OAAO;AACX,YAAI,MAAM;AACV,cAAM,aAAa,AAAe,iBAAiB,EAAE,OAAO;AAC5D,YAAI,WAAW,SAAS;AACtB,gBAAM,KAAI,KAAK;;AAEjB,eAAO,QAAQ,KAAK,EAAE;;AAExB,YAAM,OAAO;AACX,YAAI,MAAM;AACV,cAAM,aAAa,AAAe,iBAAiB,EAAE,OAAO;AAC5D,YAAI,WAAW,SAAS;AACtB,gBAAM,KAAI,KAAK;;AAEjB,eAAO,QAAQ,KAAK,EAAE;;AAGxB,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;AChDxB;;;;;;;;;;;;;;;;AAqBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,eAAe;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,OAAsC;AAC5C,YAAM,QAAQ,CAAC,GAAG;AAChB,aAAK,KAAK,MAAM,GAAG;;AAErB,aAAO;;;;;AC7BX;;;;;;;;;;;;;;;;AAsBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;AC3B/B;;;;;;;;;;;;;;;;AAsBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;AC3B/B;;;;;;;;;;;;;;;;AA2BO,QAAM,iBAA6B;IACxC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,KAAK,GAAG;;;;;AChChE;;;;;;;;;;;;;;;;AA2BO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO;QACL,GAAG;AACD,gBAAM,IAAI,KAAK,KAAI,OAAO,IAAI,OAAO,KAAK,GAAG;AAC7C,iBAAO,IAAI,IAAI;;;;;;;ACpCvB;;;;;;;;;;;;;;;;AA6BO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,WAAW,2BAA2B,EAAE,OAAO,EAAE;AAEvD,YAAM,OAAO;AACX,cAAM,IAAI,KAAI,OAAO,IAAI,OAAO;AAChC,YAAI,MAAM,IAAI,IAAI,IAAI,GAAG;AACzB,cAAM,aAAa,iBAAiB,EAAE,OAAO;AAC7C,YAAI,WAAW,SAAS;AACtB,gBAAM,KAAI,KAAK;;AAEjB,eAAO,QAAQ,KAAK,EAAE;;AAExB,YAAM,OAAO;AACX,cAAM,IAAI,KAAI,OAAO,IAAI,OAAO;AAChC,YAAI,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG;AAC7B,cAAM,aAAa,iBAAiB,EAAE,OAAO;AAC7C,YAAI,WAAW,SAAS;AACtB,gBAAM,KAAI,KAAK;;AAEjB,eAAO,QAAQ,KAAK,EAAE;;AAExB,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;ACtDxB;;;;;;;;;;;;;;;;AAyBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,KAAI,OAAO,KAAK,GAAG,aAAa;;;;;AC/B7D;;;;;;;;;;;;;;;;AA0BO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,OAAO,KAAK,GAAG;;;;;AC/B3D;;;;;;;;;;;;;;;;AA2DA,8BACI,IAAkB,OAClB,YACA,SACA,YAA6C,CAAC,GAAG,GAAG,IACpD,MAA4B;AAC9B,UAAM,MAAM,gBAAgB,IAAI,MAAM;AACtC,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAE/C,QAAI,OAAO;AACX,QAAI,UAAU;AACd,QAAI,eAAe;AAEnB,QAAI,OAAO,SAAS;AAClB,qBAAe;AACf,aAAO,QACH,KAAK,CAAC,GAAG,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;AACjE,gBAAU,QAAQ,QAAQ;QACxB;QAAG,OAAO,MAAM;QAAI,OAAO,MAAM;QAAI,OAAO,MAAM;QAAI,OAAO,MAAM;;;AAIvE,IAAK,OACD,KAAK,SAAS,GACd,MAAM,8DACC,KAAK;AAChB,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,iEACC,QAAQ;AAEnB,IAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MAAM,kFACwB,0BAA0B;AAE5D,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,kFACwB,+BAA+B;;AAGnE,UAAM,UAA+B;AACnC,YAAM,WAAW,AAAU,kBACvB,QAAQ,OAAO,YAAY,SAAS,WAAW,MAAK;AAExD,aAAO,SAAQ,kBAAkB,MAAM,SAAS;;AAGlD,UAAM,SAAkC,CAAC,IAAI,MAAM,OAAO;AAE1D,UAAM,QACF,CAAC,YAAY,SAAS,WAAW,WAAK;AAE1C,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MACzC,mBAAmB;AAEvB,QAAI;AACF,aAAO,QACI,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAIvE,WAAO;;AAGF,QAAM,oBAAoB,GAAG,CAAC;;;AChIrC;;;;;;;;;;;;;;;;AAsBO,QAAM,sBAAkC;IAC7C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,KAAK;AACZ,YAAM,CAAC,YAAY,SAAS,WAAW,WAAK,mBACxC;AAEJ,YAAM,aACF,aAAa,OAAO,CAAC,GAAG,GAAG,KAAiC;AAEhE,aAAO;QACL,GAAG,MAAM,kBACL,IAAgB,GAAG,YAAY,SAAS,YAAY,MACpD;;;;;;ACpCV;;;;;;;;;;;;;;;;AA8CA,4BACI,IAAkB,OAAqB,YACvC,SAAkC;AACpC,UAAM,MAAM,gBAAgB,IAAI,MAAM;AACtC,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAE/C,IAAK,OACD,OAAO,SAAS,IAAI,MACpB,MAAM,kBAAkB,OAAO,oCAC3B,IAAI;AAEZ,QAAI,UAAU;AACd,QAAI,OAAO;AACX,QAAI,eAAe;AAEnB,QAAI,OAAO,SAAS;AAClB,qBAAe;AACf,gBACI,QAAQ,QAAQ,CAAC,GAAG,OAAO,MAAM,IAAI,OAAO,MAAM,IAAI,OAAO,MAAM;AACvE,aAAO,QAAQ,KAAK,CAAC,GAAG,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAGhE,IAAK,OACD,KAAK,SAAS,GACd,MAAM,4DACC,KAAK;AAChB,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,+DACC,QAAQ;AAEnB,UAAM,UAA+B;AACnC,YAAM,WAAW,AAAU,kBACvB,QAAQ,OAAO,YAAY,SAAS,GAAmB;AAE3D,aAAO,SAAQ,gBAAgB,MAAM,SAAS;;AAGhD,UAAM,SAAgC,CAAC,IAAI,MAAM,OAAO;AAExD,UAAM,QAA8B,CAAC,YAAY,SAAS;AAE1D,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MAAM,iBAC/C;AAEJ,QAAI;AACF,aAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAE7D,WAAO;;AAGF,QAAM,kBAAkB,GAAG,CAAC;;;AClGnC;;;;;;;;;;;;;;;;AAsBO,QAAM,oBAAgC;IAC3C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,KAAK;AACZ,YAAM,CAAC,YAAY,SAAS,aAAO;AACnC,aAAO;QACL,GAAG,MAAM,gBAAgB,IAAgB,GAAG,YAAY,SAAS;;;;;;AC7BvE;;;;;;;;;;;;;;;;AAsBO,QAAM,wBAAoC;IAC/C,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAc,OAAiB;AACxC,YAAM,CAAC,GAAG,KAAK;AAEf,YAAM,CAAC,YAAY,cAAc;AAEjC,UAAI,CAAC,cAAc,CAAC;AAClB,eAAO;UACL,GAAG,MAAM,OAAO,IAAI,GAAG,OAAO;UAC9B,GAAG,MAAM,OAAO,GAAG,IAAI,MAAM;;iBAEtB,CAAC,cAAc;AACxB,eAAO;UACL,GAAG,MAAM,OAAO,IAAI,GAAG,OAAO;UAC9B,GAAG,MAAM,OAAO,IAAI,GAAG,MAAM;;iBAEtB,cAAc,CAAC;AACxB,eAAO;UACL,GAAG,MAAM,OAAO,GAAG,IAAI,OAAO;UAC9B,GAAG,MAAM,OAAO,GAAG,IAAI,OAAO;;;AAGhC,eAAO;UACL,GAAG,MAAM,OAAO,GAAG,IAAI,MAAM;UAC7B,GAAG,MAAM,OAAO,IAAI,GAAG,MAAM;;;;;;;AChDrC;;;;;;;;;;;;;;;;AAsBO,QAAM,2BAAuC;IAClD,YAAY;IACZ,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,YAAY,SAAS;AAC5B,aAAO,CAAC,GAAG,MAAM,eAAe,IAAI,YAAY;;;;;AC1BpD;;;;;;;;;;;;;;;;AAsBO,QAAM,wBAAoC;IAC/C,YAAY;IACZ,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,mBACF;AAEJ,YAAM,aAAa,iBAAiB;AACpC,YAAM,cAAc,iBAAiB;AAErC,YAAM,OAAiB,MAAM,KAAK;AAClC,eAAS,IAAI,WAAW,SAAS,GAAG,KAAK,GAAG;AAC1C,YAAI,WAAW,OAAO,YAAY;AAChC,eAAK,KAAK;mBACD,WAAW,OAAO;AAC3B,gBAAM,IAAI,MAAM,mBACZ,uCAAuC;;;AAG/C,YAAM,OAAiB;AACvB,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ;AAC/B,YAAI,KAAK,KAAK;AACZ,eAAK,KAAK;;;AAId,aAAO,CAAC,GAAG,MAAM,KAAI,IAAI,MAAM;;;;;AC/CnC;;;;;;;;;;;;;;;;AAqBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,UAAU,CAAC;AACT,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;ACxBxB;;;;;;;;;;;;;;;;AAsBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,UAAU,CAAC;AAET,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;AC1B/B;;;;;;;;;;;;;;;;AA0BO,QAAM,wBAAoC;IAC/C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,KAAK;AACZ,YAAM,CAAC,cAAc,gBAAgB;AACrC,aAAO;QACL,GAAG,MAAM,MACL,WAAW,aAAa,GAAG,eAAe,UAAU,GAAG,gBACvD,IAAI,UAAU;;;;;;ACnCxB;;;;;;;;;;;;;;;;AAsBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,eAAe;IACf,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,SAAS,MAAM,IAAI,OAAK,EAAE;AAChC,YAAM,CAAC,QAAQ;AACf,YAAM,QAAQ,eAAe,MAAM,MAAM,GAAG,OAAO;AACnD,YAAM,aAAa,OAAO,IAAI,OAAK,EAAE;AACrC,YAAM,aAAa,MAAM,IAAI,YAAY;AACzC,aAAO,WAAW,IAAI,OAAK,MAAM;;;;;AC/BrC;;;;;;;;;;;;;;;;AAwBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAc,OAAiB;AACxC,YAAM,CAAC,KAAK,WAAW;AACvB,YAAM,CAAC,WAAW,SAAS,WAAK,cAAc;AAE9C,MAAK,OACD,AAAU,kBAAkB,YAC5B,MAAM,iHACoD;AAE9D,aAAO;QACL,GAAG,MACC,oBAAoB,IAAI,OAAO,IAAI,SAAS,SAAS,MAAK;QAC9D,QAAQ,MACJ,qBAAqB,KAAK,IAAI,QAAQ,OAAO,SAAS,MAAK;;;;;;ACxCrE;;;;;;;;;;;;;;;;AAsBO,QAAM,gCAA4C;IACvD,YAAY;IACZ,cAAc,CAAC,MAAM;IACrB,UAAU,CAAC,KAAe,OAAiB;AACzC,YAAM,CAAC,IAAI,UAAU;AAErB,YAAM,CAAC,SAAS,WAAK,YAAY,mBAC7B;AAEJ,aAAO;QACL,IAAI,MAAM,OACN,KAAK,QAAQ,SAAS,MAAK,YAAY,GACvC;QACJ,QAAQ,MAAM,qBACV,KAAK,IAAI,OAAO,OAAO,SAAS,MAAK,YAAY;;;;;;ACpC3D;;;;;;;;;;;;;;;;AA2CA,iCACI,GAAM,IAAO,aACb,SAA0C;AAC5C,QAAI,MAAM;AACV,QAAI,EAAE,SAAS;AACb,YAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM;;AAEnE,QAAI,OAAO;AACX,QAAI,KAAK,SAAS;AAChB,aAAO,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM;;AAEzE,IAAK,OACD,IAAI,SAAS,GACb,MAAM,iEACC,IAAI;AACf,IAAK,OACD,KAAK,SAAS,GACd,MAAM,8DACC,KAAK;AAChB,IAAK,OACD,YAAY,WAAW,GACvB,MAAM,mEACC;AACX,IAAK,OACD,IAAI,MAAM,OAAO,YAAY,IAC7B,MAAM,4CAA4C,IAAI,MAAM,yCACxB,YAAY;AACpD,IAAK,OACD,KAAK,MAAM,OAAO,YAAY,IAC9B,MAAM,0CAA0C,KAAK,MAAM,2CACrB,YAAY;AAEtD,UAAM,UAA+B;AACnC,YAAM,YAAY;AAElB,YAAM,WAAW,AAAU,kBACvB,IAAI,OAAO,aAAa,SAAS,WAAW;AAEhD,aAAO,SAAQ,gBAAgB,KAAK,MAAM;;AAG5C,UAAM,SAAqC,CAAC,GAAG,KAAK,GAAG;AAEvD,UAAM,QAAmC,CAAC,SAAS;AAEnD,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC,wBAAwB;;AAG9B,QAAM,uBAAuB,GAAG,CAAC;;;AC7FxC;;;;;;;;;;;;;;;;AAwBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAc,OAAiB;AACxC,YAAM,CAAC,WAAW,SAAS,aAAO;AAClC,MAAK,OACD,kBAAkB,YAClB,MACI,iHACkD;AAE1D,YAAM,CAAC,KAAK,WAAW;AAEvB,aAAO;QACL,GAAG,MAAM,oBACJ,IAAiB,OAAO,IAAI,SAAqB,SAAS;QAC/D,QAAQ,MAAM,qBACV,KAAiB,IAAK,QAAqB,OAAO,SAAS;;;;;;ACzCrE;;;;;;;;;;;;;;;;AAyBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,KAAK,GAAG,cAAc;;;;;AC/BvD;;;;;;;;;;;;;;;;AAwBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO,CAAC,GAAG,MAAM,IAAI,KAAK,KAAK,GAAG,aAAa;;;;;AC9BnD;;;;;;;;;;;;;;;;AAwBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,KAAK;AACZ,YAAM,CAAC,MAAM,WAAW,qBAAwB;AAEhD,aAAO;QACL,GAAG;AACD,gBAAM,cAAc,mBAAmB,CAAC,OAAO,EAAE;AAEjD,cAAI,MAAM,OAAO,IAAI,MAAM,WAAW,CAAC;AAEvC,cAAI,eAAe;AACjB,kBAAM,UAAU,KAAK;;AAGvB,iBAAO;;;;;;;ACzCf;;;;;;;;;;;;;;;;AAwBO,QAAM,kCAA8C;IACzD,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAc,OAAiB;AACxC,YAAM,CAAC,WAAW,SAAS,WAAK,mBAC5B;AAEJ,YAAM,aAAa,aAAa,OAAO,CAAC,GAAG,KAAK;AAEhD,MAAK,OACD,AAAU,kBAAkB,aAC5B,MAAM,mHAEE;AAEZ,YAAM,CAAC,GAAG,UAAU;AAEpB,MAAK,OACD,EAAE,SAAS,GACX,MAAM,kFACsB,EAAE;AAClC,MAAK,OACD,OAAO,SAAS,GAChB,MAAM,mFACsB,OAAO;AACvC,MAAK,OACD,EAAE,MAAM,OAAO,OAAO,MAAM,IAC5B,MAAM,mEACW,EAAE,MAAM,qDACR,OAAO,MAAM;AAElC,MAAK,OACD,AAAU,+BAA+B,SAAS,aAClD,MAAM,6FACmC,0BACjC;AAEZ,UAAI,mBAAmB;AACrB,QAAK,OACD,AAAK,MAAM,OACX,MACI,gFACmB,+BAA+B;;AAG5D,YAAM,WAAW,AAAU,kBACvB,EAAE,OAAO,OAAO,OAAO,SAAS,YAChC,MAAK,iBAAiB;AAE1B,aAAO;QACL,GAAG,MACC,mCAAmC,EAAE,OAAO,IAAI,QAAQ;QAC5D,QAAQ,MACJ,oCAAoC,GAAG,IAAI,OAAO,OAAO;;;;;;AC7EnE;;;;;;;;;;;;;;;;AAuBO,QAAM,uBAAmC;IAC9C,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAc,OAAiB;AACxC,YAAM,CAAC,GAAG,UAAU;AAEpB,YAAM,cAA6C,CAAC,GAAG,QAAQ;AAC/D,YAAM,eAA+C,CAAC,GAAG,QAAQ;AAEjE,aAAO;QACL,GAAG,MAAM,OAAO,UACH,yBAAyB,aACzB;QACb,QAAQ,MAAM,OAAO,UACH,0BACA,cAAsC;;;;;;ACtC9D;;;;;;;;;;;;;;;;AA6BO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,WACF,AAAe,2BAA2B,EAAE,OAAO,EAAE;AACzD,YAAM,OAAO;AACX,cAAM,MAAM,IAAI,IAAI,KAAK,GAAG;AAC5B,cAAM,aAAa,AAAe,iBAAiB,EAAE,OAAO;AAC5D,YAAI,WAAW,SAAS;AACtB,iBAAO,QAAQ,KAAI,KAAK,aAAa,EAAE;;AAEzC,eAAO;;AAET,YAAM,OAAO;AACX,YAAI,MAAM,IAAI,IAAI,KAAK,GAAG;AAC1B,cAAM,aAAa,AAAe,iBAAiB,EAAE,OAAO;AAC5D,YAAI,WAAW,SAAS;AACtB,gBAAM,QAAQ,KAAI,KAAK,aAAa,EAAE;;AAExC,cAAM,MAAM,OAAO;AACnB,eAAO,IAAI,IAAI,KAAK,KAAK,KAAK;;AAEhC,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;ACrDxB;;;;;;;;;;;;;;;;AAsBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,YAAM,qBAA0C,CAAC;AAC/C,eAAO,SAAQ,OAAO,IAAI;;AAG5B,YAAM,SAAwB,CAAC,IAAI;AAEnC,aAAO;QACL,GAAG,MAAM,OAAO,cACZ,oBAAoB,QAAgC,MACpD;;;;;;ACrCV;;;;;;;;;;;;;;;;AAyBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,YAAM,IAAI,IAAI,IAAI,IAAI,OAAO,MAAM,IAAI,KAAK,KAAK,KAAK;AACtD,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI;;;;;AC/B7B;;;;;;;;;;;;;;;;AAsBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI;;;;;AC3B7B;;;;;;;;;;;;;;;;AAuBO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI;;;;;AC5BjC;;;;;;;;;;;;;;;;AAsBO,QAAM,kBAA8B;IACzC,YAAY;IACZ,UAAU,CAAC;AACT,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;ACzB/B;;;;;;;;;;;;;;;;AA6BO,QAAM,qBAAiC;IAC5C,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,WAAW,2BAA2B,EAAE,OAAO,EAAE;AAEvD,YAAM,OAAO;AACX,cAAM,MAAM,IAAI,IAAI,KAAK,GAAG;AAC5B,cAAM,aAAa,iBAAiB,EAAE,OAAO;AAC7C,YAAI,WAAW,SAAS;AACtB,iBAAO,QAAQ,KAAI,KAAK,aAAa,EAAE;;AAEzC,eAAO;;AAET,YAAM,OAAO;AACX,YAAI,MAAM,IAAI,IAAI,KAAK,GAAG;AAC1B,cAAM,aAAa,iBAAiB,EAAE,OAAO;AAC7C,YAAI,WAAW,SAAS;AACtB,gBAAM,QAAQ,KAAI,KAAK,aAAa,EAAE;;AAExC,cAAM,MAAM,OAAO;AACnB,eAAO,IAAI,IAAI,KAAK,KAAK,KAAK;;AAEhC,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;ACrDxB;;;;;;;;;;;;;;;;AA8BO,QAAM,2BAAuC;IAClD,YAAY;IACZ,cAAc,CAAC,KAAK,QAAQ,YAAY;IACxC,UAAU,CACN,IAAY,OAAiB;AAC/B,YAAM,CAAC,mBAAmB;AAC1B,YAAM,CAAC,GAAG,OAAM,UAAU,UAAS;AAEnC,YAAM,aAAa,UAAS,OAAO,OAAO,KAAK;AAC/C,YAAM,gBAAgB,iBAAiB,MAAK,OAAO,EAAE;AACrD,YAAM,YAAsB;AAC5B,UAAI,MAAK,SAAS;AAChB,iBAAS,IAAI,GAAG,IAAI,EAAE,MAAM,SAAS,GAAG,EAAE;AACxC,oBAAU,KAAK,EAAE,MAAM;;AAEzB,kBAAU,KAAK;;AAGjB,YAAM,aAAa,IAAI,GAAG;AAC1B,YAAM,oBAAoB,IAAI,IAAI;AAClC,YAAM,sBAAsB,MAAM,KAAI,UAAU,OAAO;AACvD,YAAM,iBAAiB,IACnB,IAAI,IAAI,qBAAqB,sBAAsB,sBACnD,OAAO;AAEX,YAAM,OAAO;AACX,YAAI,MAAK,SAAS;AAChB,iBAAO,QACH,IAAI,IAAI,IACA,KACI,QAAQ,qBAAqB,CAAC,GAAG,GAAG,GAAG,MAAK,MAAM,MAClD,aACR,aACJ,EAAE;;AAEN,iBAAO,QAAQ,IAAI,IAAI,IAAI,sBAAsB,aAAa,EAAE;;;AAGpE,YAAM,UAAU;AACd,YAAI,UACA,IAAI,IAAI,qBAAqB,OAAO,MAAM;AAC9C,YAAI,MAAK,SAAS;AAChB,oBAAU,KAAI,SAAS;;AAEzB,eAAO,QAAQ,SAAS,MAAK;;AAE/B,YAAM,cAAc;AAClB,YAAI,cAAc,IAAI,IAAI,gBAAgB,aAAa;AAEvD,YAAI,MAAK,SAAS;AAChB,wBAAc,KAAI,aAAa;;AAEjC,eAAO,QAAQ,aAAa,MAAK;;AAEnC,YAAM,WAAW;AACf,cAAM,wBAAwB,IAAI,YAAY;AAE9C,YAAI,WAAW,IAAI,IAAI;AACvB,YAAI,MAAK,SAAS;AAChB,qBAAW,KAAI,UAAU;;AAE3B,eAAO,QAAQ,UAAU,MAAK;;AAEhC,YAAM,YAAY;AAChB,YAAI,YAAY;AAChB,YAAI,MAAK,SAAS;AAChB,sBAAY,KAAI,WAAW;;AAE7B,eAAO,QAAQ,WAAW,MAAK;;AAGjC,aAAO;QACL,GAAG;QACH,MAAM;QACN,UAAU;QACV,OAAO;QACP,QAAQ;;;;;;AC1Gd;;;;;;;;;;;;;;;;AA0BO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,GAAG,WAAW;AACrB,YAAM,CAAC,QAAQ;AAEf,YAAM,aAAa,eAAe,MAAM,EAAE,OAAO;AAEjD,YAAM,OAAO;AACX,cAAM,cAAc,EAAE;AACtB,cAAM,cAAc,QAAQ;AAE5B,cAAM,aAAa,YAAY,MAAM,GAAG;AACxC,cAAM,YAAY,WAAW;AAC7B,cAAM,aAAa,YAAY,MAAM,MAAM,YAAY,QAAQ,MAAM;AACrE,cAAM,YAAY,WAAW;AAE7B,cAAM,mBAAmB,WAAW,GAAG;AACvC,cAAM,mBACF,WAAW,YAAY,GAAG,YAAY,IAAI;AAE9C,cAAM,cAAc,YAAY,CAAC,YAAY,CAAC,cAAc;AAE5D,cAAM,SAAS,QAAQ,IAAI;AAC3B,cAAM,kBAAkB,QAAQ,SAAS,CAAC;AAE1C,cAAM,gBACF,YAAY,CAAC,CAAC,YAAY,kBAAkB;AAChD,cAAM,kBAAkB,UAAU,QAAQ;AAC1C,YAAI,aAAa,mBACb,iBAAiB,iBAA6B,EAAE,MAAM;AAE1D,cAAM,sBAAsB,uBAAuB;AACnD,qBAAa,UAAU,YAAY;AAEnC,eAAO;;AAET,aAAO,CAAC,GAAG,MAAM,SAAS,MAAM;;;AAIpC,sBAAoB,OAAe;AACjC,UAAM,SAAS;AACf,aAAS,IAAI,OAAO,IAAI,MAAM,EAAE;AAC9B,aAAO,KAAK;;AAEd,WAAO;;AAGT,uBAAqB;AACnB,UAAM,SAAS;AACf,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE;AACnC,eAAS,IAAI,GAAG,IAAI,OAAO,GAAG,QAAQ,EAAE;AACtC,eAAO,KAAK,OAAO,GAAG;;;AAG1B,WAAO;;;;ACnFT;;;;;;;;;;;;;;;;AAqBO,QAAM,yBAAqC;IAChD,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,aAAO,CAAC,GAAG,MAAM,UAAU,IAAI,GAAG,MAAM,UAAU;;;;;AC1BtD;;;;;;;;;;;;;;;;AAsBO,QAAM,qBAAiC;IAC5C,YAAY;IACZ,UAAU,CAAC;AACT,aAAO,CAAC,GAAG,MAAM,KAAK,IAAI;;;;;ACzB9B;;;;;;;;;;;;;;;;AAsBO,QAAM,qBAAiC;IAC5C,YAAY;IACZ,UAAU,CAAC;AAGT,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;AC1B/B;;;;;;;;;;;;;;;;AAsBO,QAAM,kBAA8B;IACzC,YAAY;IACZ,UAAU,CAAC;AAGT,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;AC5B/B;;;;;;;;;;;;;;;;AAsBO,QAAM,kBAA8B;IACzC,YAAY;IACZ,UAAU,CAAC;AAGT,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;AC3B/B;;;;;;;;;;;;;;;;AAuBO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,KAAI,GAAG;;;;;AC5BpC;;;;;;;;;;;;;;;;AAuBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,KAAK,GAAG;;;;;AC5BrC;;;;;;;;;;;;;;;;AAyBO,QAAM,uBAAmC;IAC9C,YAAY;IACZ,cAAc;IACd,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,SAAS;AAChB,YAAM,CAAC,QAAQ;AACf,aAAO;QACL,QAAQ;AACN,gBAAM,WAAW;AACjB,gBAAM,WAAU,IAAI;AACpB,iBAAO,IAAI,IAAI,IAAI,KAAI,IAAI,MAAM,WAAW;;;;;;;ACpCpD;;;;;;;;;;;;;;;;AAyBA,+CACI,GAAM,GAAM,IAAO,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO;AAClE,UAAM,UAA+B,cACjC,SAAQ,QAAQ,IAAI,GAAG,GAAG,aAAa,MAAM,OAAO;AAExD,UAAM,SAA4B,CAAC,GAAG,GAAG;AAEzC,UAAM,QAA0B,CAAC,aAAa,MAAM,OAAO;AAE3D,WAAO,OAAO,cACH,SAAS,QAAgC,MACzC,aAAa;;AAGnB,QAAM,qCACT,GAAG,CAAC;;;ACxCR;;;;;;;;;;;;;;;;AAqBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC;IACf,eAAe,CAAC;IAChB,UAAU,CAAC,IAAc,OAAiB;AACxC,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,CAAC,aAAa,MAAM,OAAO,QAAQ;AAEzC,aAAO;QACL,GAAG,MAAM,mCACL,GAAG,GAAG,IAAI,aAAa,MAAM,OAAO;;;;;;AC/B9C;;;;;;;;;;;;;;;;AA4BM,4BACF,IAAO,GAAM,OAAe,UAAoB;AAClD,QAAI,EAAE,OAAO,MAAM;AACjB,UAAI,QAAQ,GAAG,AAAU,qBAAqB,EAAE,OAAO;;AAEzD,QAAI,GAAG,OAAO,MAAM;AAClB,WAAK,QAAQ,IAAI,AAAU,qBAAqB,GAAG,OAAO;;AAE5D,WAAO;MACL,GAAG;AACD,cAAM,KAAK,IAAI,IAAI,KAAK,MAAM,OAAO,IAAI,GAAG;AAC5C,eAAO,gBAAgB,OAAO,KAAK,UAAU,IAAI;;;;;;ACvCvD;;;;;;;;;;;;;;;;AA0BO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC;IACf,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,WAAqB;AAC3B,YAAM,CAAC,oBAAoB;AAC3B,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,WAAW,AAAK,eAAe,kBAAkB,EAAE;AACzD,YAAM,eAAe,AAAU,mBAAmB,UAAU,EAAE;AAC9D,YAAM,UAAU,iBAAiB,IAAI,GAAG,GAAG,UAAU;AACrD,aAAO;QACL,GAAG;AACD,cAAI,MAAM,QAAQ;AAClB,cAAI,gBAAgB;AAClB,kBAAM,UAAU;;AAElB,iBAAO;;;;;;;AC3Cf;;;;;;;;;;;;;;;;AAyBO,QAAM,oBAAgC;IAC3C,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,OAAO,MAAM,IAAI,IAAI,KAAK,aAAa,GAAG,IAAI;AACpD,YAAM,OAAO,MAAM,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI;AAC5C,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;AChCxB;;;;;;;;;;;;;;;;AA6DA,8BACI,IAAkB,OAAqB,QACvC,YACA,SACA,YAA6C,CAAC,GAAG,GAAG,IACpD,MAA4B;AAC9B,UAAM,MAAM,gBAAgB,IAAI,MAAM;AACtC,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAC/C,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,QAAI,OAAO;AACX,QAAI,UAAU;AACd,QAAI,WAAW;AACf,QAAI,eAAe;AAEnB,QAAI,OAAO,SAAS;AAClB,qBAAe;AACf,aAAO,QACH,KAAK,CAAC,GAAG,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;AACjE,gBAAU,QAAQ,QAAQ;QACxB;QAAG,OAAO,MAAM;QAAI,OAAO,MAAM;QAAI,OAAO,MAAM;QAAI,OAAO,MAAM;;AAErE,iBAAW,QAAQ,SAAS;QAC1B;QAAG,QAAQ,MAAM;QAAI,QAAQ,MAAM;QAAI,QAAQ,MAAM;QAAI,QAAQ,MAAM;;;AAI3E,IAAK,OACD,KAAK,SAAS,GACd,MAAM,8DACC,KAAK;AAChB,IAAK,OACD,QAAQ,SAAS,GACjB,MAAM,iEACC,QAAQ;AACnB,IAAK,OACD,SAAS,SAAS,GAClB,MAAM,kEACC,SAAS;AAEpB,IAAK,OACD,AAAU,+BAA+B,SAAS,YAClD,MAAM,kFACwB,0BAA0B;AAC5D,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,kFACwB,+BAA+B;;AAGnE,UAAM,UAA+B;AACnC,YAAM,WAAW,AAAU,kBACvB,QAAQ,OAAO,YAAY,SAAS,WAAW,MAAK;AAExD,aAAO,SAAQ,kBAAkB,MAAM,SAAS,UAAU;;AAG5D,UAAM,SACwB,CAAC,IAAI,MAAM,OAAO,SAAS,QAAQ;AAEjE,UAAM,QACF,CAAC,YAAY,SAAS,WAAW,WAAK;AAE1C,UAAM,MAAM,OAAO,cACf,SAAS,QAAgC,MACzC,mBAAmB;AAEvB,QAAI;AACF,aAAO,QACI,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM;;AAIvE,WAAO;;AAGF,QAAM,oBAAoB,GAAG,CAAC;;;AC1IrC;;;;;;;;;;;;;;;;AAsBO,QAAM,sBAAkC;IAC7C,YAAY;IACZ,cAAc,CAAC;IACf,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,CAAC,YAAY,SAAS,WAAW,WAAK,mBACxC;AAEJ,YAAM,aACF,aAAa,OAAO,CAAC,GAAG,GAAG,KAAiC;AAEhE,aAAO;QACL,GAAG,MAAM,kBACL,IAAgB,GAAG,GAAG,YAAY,SAAS,YAAY,MACvD;;;;;;ACrCV;;;;;;;;;;;;;;;;AAkDA,4BACI,IAAyB,OACzB,QAA6B,YAC7B,SAAkC,MAClC;AACF,UAAM,MAAM,gBAAgB,IAAI,MAAM;AACtC,UAAM,SAAS,gBAAgB,OAAO,SAAS;AAC/C,UAAM,UAAU,gBAAgB,QAAQ,UAAU;AAElD,IAAK,OACD,OAAO,SAAS,IAAI,MACpB,MAAM,kBAAkB,OAAO,oCACvB,IAAI;AAEhB,IAAK,OACD,IAAI,SAAS,GACb,MAAM,4DACC,IAAI;AACf,IAAK,OACD,OAAO,SAAS,GAChB,MAAM,+DACC,OAAO;AAClB,QAAI,mBAAmB;AACrB,MAAK,OACD,AAAK,MAAM,OACX,MAAM,gFACiB,+BAA+B;;AAG5D,UAAM,UAA+B;AACnC,YAAM,WAAW,AAAU,kBACvB,OAAO,OAAO,YAAY,SAAS,GAAmB,MACtD;AAEJ,aAAO,SAAQ,gBAAgB,KAAK,QAAQ,SAAS;;AAGvD,UAAM,SACsB,CAAC,IAAI,KAAK,OAAO,QAAQ,QAAQ;AAE7D,UAAM,QACqB,CAAC,YAAY,SAAS,WAAK;AAEtD,WAAO,OAAO,cACH,SAAS,QAAgC,MAAM,iBAC/C;;AAGN,QAAM,kBAAkB,GAAG,CAAC;;;AClGnC;;;;;;;;;;;;;;;;AAsBO,QAAM,oBAAgC;IAC3C,YAAY;IACZ,cAAc,CAAC;IACf,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,CAAC,YAAY,SAAS,aAAO;AAEnC,aAAO;QACL,GAAG,MAAM,gBAAgB,IAAgB,GAAG,GAAG,YAAY,SAAS;;;;;;AC/B1E;;;;;;;;;;;;;;;;AA0BO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC;IACf,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,WAAqB;AAC3B,YAAM,CAAC,QAAQ;AACf,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,WAAW,AAAK,eAAe,MAAM,EAAE;AAC7C,YAAM,eAAe,AAAU,mBAAmB,UAAU,EAAE;AAC9D,YAAM,UAAU,iBAAiB,IAAI,GAAG,GAAG,UAAU;AACrD,aAAO;QACL,GAAG;AACD,cAAI,MAAM,QAAQ;AAClB,cAAI,gBAAgB;AAClB,kBAAM,UAAU;;AAElB,iBAAO;;;;;;;AC3Cf;;;;;;;;;;;;;;;;AAyBO,QAAM,oBAAgC;IAC3C,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,OAAO,MAAM,IAAI,IAAI,KAAK,UAAU,GAAG,IAAI;AACjD,YAAM,OAAO,MAAM,IAAI,IAAI,KAAK,QAAQ,GAAG,IAAI;AAC/C,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;AChCxB;;;;;;;;;;;;;;;;AA4BO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,WAAW,2BAA2B,EAAE,OAAO,EAAE;AAEvD,YAAM,OAAO;AACX,cAAM,aAAa,iBAAiB,EAAE,OAAO;AAC7C,YAAI,WAAW,SAAS;AACtB,iBAAO,QAAQ,KAAI,IAAI,aAAa,EAAE;;AAExC,eAAO;;AAET,YAAM,OAAO;AACX,cAAM,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,GAAG;AACrC,cAAM,aAAa,iBAAiB,EAAE,OAAO;AAC7C,YAAI,WAAW,SAAS;AACtB,iBAAO,QAAQ,KAAI,KAAK,aAAa,EAAE;;AAEzC,eAAO;;AAET,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;AClDxB;;;;;;;;;;;;;;;;AA0BO,QAAM,qBAAiC;IAC5C,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,WAAW,2BAA2B,EAAE,OAAO,EAAE;AAEvD,YAAM,OAAO;AACX,cAAM,MAAM,IAAI,IAAI,KAAK,GAAG;AAC5B,cAAM,aAAa,iBAAiB,EAAE,OAAO;AAC7C,YAAI,WAAW,SAAS;AACtB,iBAAO,QAAQ,KAAI,KAAK,aAAa,EAAE;;AAEzC,eAAO;;AAET,YAAM,OAAO;AACX,cAAM,MAAM,IAAI,IAAI,KAAK,GAAG;AAC5B,cAAM,aAAa,iBAAiB,EAAE,OAAO;AAC7C,YAAI,WAAW,SAAS;AACtB,iBAAO,QAAQ,KAAI,KAAK,aAAa,EAAE;;AAEzC,eAAO;;AAET,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;ACjDxB;;;;;;;;;;;;;;;;AAsBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,UAAU,CAAC;AACT,aAAO,CAAC,GAAG,MAAM,IAAI;;;;;ACzBzB;;;;;;;;;;;;;;;;AAsBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,UAAU,MAAM;AACtB,aAAO,CAAC,SAAS,MAAM,MAAM,QAAQ,OAAO;;;;;AC3BhD;;;;;;;;;;;;;;;;AAsBO,QAAM,qBAAiC;IAC5C,YAAY;IACZ,UAAU,CAAC;AACT,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;ACzB/B;;;;;;;;;;;;;;;;AAsBO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY,OAAiB;AAGtC,YAAM,IAAI,MAAM;AAChB,YAAM,CAAC,YAAY;AACnB,YAAM,QAAQ,SAAS,IAAI,OAAK,EAAE;AAClC,aAAO,CAAC,GAAG,MAAM,MAAM,IAAI,OAAO,EAAE;;;;;AC/BxC;;;;;;;;;;;;;;;;AAgCO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,GAAG,KAAK;AAClB,YAAM,OAAO;AACb,YAAM,QAAM;AACZ,YAAM,WACF,AAAe,2BAA2B,KAAK,OAAO,MAAI;AAE9D,YAAM,UAAU;AACd,cAAM,WAAW,KAAK,OAAK;AAC3B,YAAI,MAAM,IAAI,IAAI,IAAI,UAAU,IAAI,MAAM,IAAI,UAAU,OAAO;AAC/D,cAAM,aAAa,AAAe,iBAAiB,KAAK,OAAO;AAC/D,YAAI,WAAW,SAAS;AACtB,gBAAM,KAAI,KAAK;;AAEjB,eAAO,QAAQ,KAAK,KAAK;;AAE3B,YAAM,SAAS;AACb,cAAM,YAAY,QAAQ,MAAM;AAChC,cAAM,UAAU,MAAM,WAAW,IAAI,OAAO,UAAU;AACtD,YAAI,MAAM,IAAI,IAAI,IAAI,GAAG;AACzB,cAAM,aAAa,AAAe,iBAAiB,MAAI,OAAO;AAC9D,YAAI,WAAW,SAAS;AACtB,gBAAM,KAAI,KAAK;;AAEjB,eAAO,QAAQ,KAAK,MAAI;;AAE1B,aAAO,CAAC,GAAG,SAAS,GAAG;;;;;AC9D3B;;;;;;;;;;;;;;;;AA2BO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,SAAS;AACnB,YAAM,OAAO,QAAQ,GAAG;AAExB,aAAO;QACL,GAAG,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI;QACjC,OAAO;AACL,cAAI,MAAM,MAAM,MAAM,UAAU,KAAK,IAAI,IAAI;AAC7C,gBAAM,aAAa,iBAAiB,MAAM,OAAO,GAAG;AACpD,cAAI,WAAW,SAAS;AACtB,kBAAM,KAAI,KAAK;;AAEjB,iBAAO,QAAQ,KAAK,MAAM;;;;;;;AC1ClC;;;;;;;;;;;;;;;;AAwBO,QAAM,uBAAmC;IAC9C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,OAAO;;;;;AC7BxC;;;;;;;;;;;;;;;;AAwBO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,YAAM,OAAO,IAAI,UAAU,GAAG,IAAI,KAAK;AAEvC,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,KAAK,MAAM;;;;;AC/BxC;;;;;;;;;;;;;;;;AAuBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,KAAK,KAAK,IAAI;;;;;AC5B3C;;;;;;;;;;;;;;;;AAqBO,QAAM,oBAAgC;IAC3C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,QAAQ,IAAI,EAAE;;;;;AC1BnC;;;;;;;;;;;;;;;;AAuBO,QAAM,2BAAuC;IAClD,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAc,OAAiB;AACxC,YAAM,CAAC,UAAU;AAEjB,YAAM,qBAA0C,CAAC;AAC/C,cAAM,CAAC,gBAAgB;AACvB,eAAO,SAAQ,uBACX,IAAI,QAAoB;;AAG9B,YAAM,SAAmC,CAAC;AAC1C,YAAM,YAAY,MAAM,OAAO,cAC3B,oBAAoB,QAAgC,MACpD,oBAAoB;AAExB,aAAO,CAAC,QAAQ;;;;;ACxCpB;;;;;;;;;;;;;;;;AAuBO,QAAM,kCAA8C;IACzD,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAc,OAAiB;AACxC,YAAM,CAAC,UAAU;AAEjB,YAAM,qBAA0C,CAAC;AAC/C,cAAM,CAAC,gBAAgB;AACvB,eAAO,SAAQ,8BACX,IAAI,QAAoB;;AAG9B,YAAM,SAA0C,CAAC;AACjD,YAAM,YAAY,MAAM,OAAO,cAC3B,oBAAoB,QAAgC,MACpD,2BAA2B;AAE/B,aAAO,CAAC,QAAQ;;;;;ACxCpB;;;;;;;;;;;;;;;;AAsBO,QAAM,oBAAgC;IAC3C,YAAY;IACZ,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,QAAQ;AACf,YAAM,OAAO,eAAe,MAAM,GAAG;AACrC,aAAO,CAAC,GAAG,MAAM,QAAQ,IAAI;;;;;AC3BjC;;;;;;;;;;;;;;;;AAsBO,QAAM,kBAA8B;IACzC,YAAY;IACZ,UAAU,CAAC;AAGT,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;AC3B/B;;;;;;;;;;;;;;;;AAyBO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,MAAM;;;;;AC9BlD;;;;;;;;;;;;;;;;AAyBO,QAAM,yBAAqC;IAChD,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,aAAa;AACpB,aAAO;QAGL,WAAW,MAAM,KAAK,UAAU,YAAY;QAC5C,GAAG,MAAM,IAAI,IAAI,KAAK,WAAW,GAAG;QACpC,GAAG,MAAM,IAAI,IAAI,KAAK,WAAW,YAAY,GAAG;;;;;;ACnCtD;;;;;;;;;;;;;;;;AA2BO,QAAM,iBAA6B;IACxC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO;QACL,GAAG;AACD,gBAAM,OAAO,QAAQ,GAAG,OAAO;AAE/B,gBAAM,aAAa,OAAO;AAC1B,gBAAM,SAAQ,OAAO;AAErB,gBAAM,qBAAqB,IAAI,IAAI;AACnC,gBAAM,mBACF,IAAI,IAAI,IAAI,aAAa,IAAI,KAAK,GAAG;AAEzC,iBAAO,MAAM,MAAM,oBAAoB;;;;;;;AC3C/C;;;;;;;;;;;;;;;;AAwBO,QAAM,oBAAgC;IAC3C,YAAY;IACZ,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,OAAO,IAAI;;;;;AC9BnD;;;;;;;;;;;;;;;;AAsBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,UAAU,CAAC;AACT,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;ACzB/B;;;;;;;;;;;;;;;;AAwBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,KAAK,GAAG,aAAa;;;;;AC7BlD;;;;;;;;;;;;;;;;AAwBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO,CAAC,GAAG,MAAM,IAAI,KAAK,KAAK,GAAG,aAAa;;;;;AC9BnD;;;;;;;;;;;;;;;;AAuBO,QAAM,kBAA8B;IACzC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,KAAK;AACZ,YAAM,CAAC,OAAO,QAAQ;AAEtB,YAAM,aAAa,EAAE;AACrB,YAAM,CAAC,QAAQ,SAAS,iBAAiB,GAAG,OAAO;AAQnD,YAAM,WAAoC;AAC1C,eAAS,IAAI,GAAG,IAAI,GAAG,MAAM;AAC3B,iBAAS,KAAK,CAAC,OAAO,IAAI,WAAW,KAAK,OAAO,KAAK,MAAM;;AAE9D,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI;;;;;AC3C7B;;;;;;;;;;;;;;;;AAwBO,QAAM,oBAAgC;IAC3C,YAAY;IACZ,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,KAAK;AACZ,YAAM,CAAC,OAAO;AACd,YAAM,WAAW;AAEjB,YAAM,WAAW,IAAI,IAAI;AACzB,aAAO;QACL,QAAQ,MAAM,IAAI,UAAU,IAAI,KAAI,UAAU,CAAC,MAAM,WAAW;;;;;;AClCtE;;;;;;;;;;;;;;;;AAuBO,QAAM,qBAAiC;IAC5C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,QAAQ;;;;;AC7BrC;;;;;;;;;;;;;;;;AAsBO,QAAM,2BAAuC;IAClD,YAAY;IACZ,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,YAAY,YAAY;AAC/B,aAAO,CAAC,GAAG,MAAM,eAAe,IAAI,YAAY;;;;;AC1BpD;;;;;;;;;;;;;;;;AAqBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,UAAU,CAAC,IAAc,OAAiB;AACxC,YAAM,CAAC,QAAQ;AAEf,aAAO,CAAC,GAAG,MAAM,OAAO,IAAI;;;;;AC1BhC;;;;;;;;;;;;;;;;AAyBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,KAAK,KAAK,GAAG,aAAa;;;;;AC/B3D;;;;;;;;;;;;;;;;AAuBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AACZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,KAAK,GAAG,YAAY;;;;;AC5BrD;;;;;;;;;;;;;;;;AAwBO,QAAM,8BAA0C;IACrD,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,MAAM,OAAO;AACnB,YAAM,OAAO,MAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG;AAC3C,YAAM,OAAO,MAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG;AAC3C,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;AChCxB;;;;;;;;;;;;;;;;AAsBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,UAAU,CAAC;AAGT,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;AC3B/B;;;;;;;;;;;;;;;;AAwBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC,KAAK;IACpB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,GAAG,KAAK;AACf,YAAM,WACF,AAAe,2BAA2B,EAAE,OAAO,EAAE;AAEzD,YAAM,OAAO;AACX,YAAI,MAAM;AACV,cAAM,aAAa,AAAe,iBAAiB,EAAE,OAAO;AAC5D,YAAI,WAAW,SAAS;AACtB,gBAAM,KAAI,KAAK;;AAEjB,eAAO,QAAQ,KAAK,EAAE;;AAExB,YAAM,OAAO;AACX,YAAI,MAAM;AACV,cAAM,aAAa,AAAe,iBAAiB,EAAE,OAAO;AAC5D,YAAI,WAAW,SAAS;AACtB,gBAAM,KAAI,KAAK;;AAEjB,eAAO,QAAQ,IAAI,MAAM,EAAE;;AAG7B,aAAO,CAAC,GAAG,MAAM,GAAG;;;;;ACjDxB;;;;;;;;;;;;;;;;AAyBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,KAAK;AACZ,YAAM,kBAAkB,EAAE,MAAM;AAChC,YAAM,CAAC,QAAQ;AAEf,YAAM,OAAO,eAAe,MAAM,EAAE;AACpC,WAAK,QAAQ;AACX,wBAAgB,SAAQ;;AAE1B,YAAM,aAAa,QAAQ,IAAI;AAC/B,YAAM,OAAO,IAAI,YAAY,MAAK,EAAE,OAAO;AAE3C,aAAO,CAAC,GAAG,MAAM;;;;;ACxCrB;;;;;;;;;;;;;;;;AAwBO,QAAM,gBAA4B;IACvC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,OAAO,IAAI;;;;;AC9BxC;;;;;;;;;;;;;;;;AAyBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,eAAe,CAAC;IAChB,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,KAAK;AAEZ,aAAO,CAAC,GAAG,MAAM,IAAI,IAAI,OAAO,IAAI,OAAO,KAAK;;;;;AC/BpD;;;;;;;;;;;;;;;;AAwBO,QAAM,iBAA6B;IACxC,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,CAAC,KAAK;AACZ,YAAM,CAAC,QAAQ;AAEf,YAAM,OAAO;AACX,YAAI,QAAQ,UAAU;AAGtB,YAAI,EAAE,SAAS;AACb,mBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAC7B,oBAAQ,KAAI,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,EAAE,MAAM;;mBAEjD,EAAE,SAAS;AACpB,mBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAC7B,qBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAC7B,sBAAQ,KAAI,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,KAAK;gBACjD,EAAE,MAAM;gBAAI,EAAE,MAAM;;;;mBAI7B,EAAE,SAAS;AACpB,mBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAC7B,qBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAC7B,uBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAC7B,wBACI,KAAI,OACA,MACI,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,KACjD,CAAC,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM;;;;mBAI1C,EAAE,SAAS;AACpB,mBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAC7B,qBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAC7B,uBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAC7B,yBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE;AAC7B,0BACI,KAAI,OACA,MACI,IACA;oBACE,IAAI,EAAE,MAAM;oBAAI,IAAI,EAAE,MAAM;oBAAI,IAAI,EAAE,MAAM;oBAC5C,IAAI,EAAE,MAAM;qBAEd,CAAC,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM;;;;;;AAMjE,gBAAM,IAAI,MACN,2DACG,EAAE;;AAEX,eAAO;;AAET,aAAO,CAAC,GAAG;;;;;ACpFf;;;;;;;;;;;;;;;;AAuBO,QAAM,sBAAkC;IAC7C,YAAY;IACZ,UAAU,CAAC,IAAY,OAAiB;AACtC,YAAM,iBAAiC;AACvC,YAAM,CAAC,QAAQ;AACf,YAAM,WAAW,AAAU,uBAAuB;AAClD,aAAO,CAAC,GAAG,MAAM,UAAU,IAAI;;;;;AC7BnC;;;;;;;;;;;;;;;;AAqBO,QAAM,mBAA+B;IAC1C,YAAY;IACZ,UAAU,CAAC,IAAc,OAAiB;AACxC,YAAM,cAA2B;AACjC,YAAM,CAAC,QAAQ;AACf,aAAO,CAAC,OAAO,MAAM,MAAM,IAAI;;;;;AC1BnC;;;;;;;;;;;;;;;;AA8BO,QAAM,+BAA2C;IACtD,YAAY;IACZ,cAAc,CAAC;IACf,UAAU,CAAC,IAAY;AACrB,YAAM,CAAC,cAAc;AAErB,YAAM,OAAO;AACX,eAAO,oBAAoB,IAAI;;AAEjC,aAAO,CAAC,GAAG;;;AAIf,+BAA+C,GAAM;AAInD,UAAM,qBAAqB,QAAQ,SAAS,UAAU;AACtD,UAAM,WAAW,OAAO,GAAG;AAC3B,QAAI,aAAa,aAAa,SAAS,OAAO,GAAG;AACjD,UAAM,WAAW,SAAS,OAAO,WAAW;AAC5C,aAAS,IAAI,GAAG,IAAI,UAAU,EAAE;AAC9B,mBAAa,WAAW,YAAY,IAAI;;AAE1C,iBAAa,WAAW,YAAY,MAAK,SAAS,OAAO;AACzD,UAAM,YAAY,UAAU;AAC5B,WAAO,MAAM,YAAY,UAAU;;;;ACxDrC;;;;;;;;;;;;;;;;AAsBO,QAAM,sBAAkC;IAC7C,YAAY;IACZ,UAAU,CAAC;AACT,aAAO,CAAC,GAAG,MAAM,UAAU;;;;;ACzB/B;;;;;;;;;;;;;;;;AAkHA,QAAM,cAA4B;IAChC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;AAGF,aAAW,kBAAkB;AAC3B,qBAAiB;;;;ACxNnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEM,uBACJ,KACA,QACA,WAAoB;AAEpB,QAAI;AAEJ,WAAO,MAAM,GAAG,QAAQ,CAAC,CAAE,GAAG,IAAK;AACjC,YAAM,OAAO,OAAO;AACpB,UAAI,OAAO,KAAK,GAAG,KAAK;AACxB,UAAI,OAAO,GAAG;;AAGhB,QAAI;AACF,YAAM,OAAO,OAAO,OAAO,SAAS;AACpC,YAAM,KAAK,OAAO;AAClB,UAAI,CAAC,QAAQ,CAAC;AACZ;;AAGF,UAAI,OAAO,KAAK,GAAG,KAAK;AACxB,UAAI,OAAO,GAAG,GAAG,GAAG;;AAGtB,QAAI;;;;AC1BN;IAYE,YAAY,OAAe;AACzB,UAAI,CAAC,cAAc,UAAU,CAAC,cAAc;AAC1C,cAAM,IAAI,MAAM,wFAAwF,KAAK,UAAU,CAAE,OAAO;;AAGlI,WAAK,SAAS;AACd,WAAK,UAAU;;QAGN;AAAkB,aAAO,KAAK;;QAC9B;AAAmB,aAAO,KAAK;;IAEnC;AACL,aAAO,IAAI,WAAW,IAAI,KAAK,OAAO,IAAI,KAAK;;;;;ACzBnD;;;;;;;;;;;;;;;;;AAKM,oBAAmB,UAAa;AACpC,WAAO,oBAAqB,UAAU,SAAO,MAAM,WAAW;;AAG1D,sBAAqB;AACzB,WAAO,SAAS,UAAQ;;AAGpB,sBAAqB;AACzB,WAAO,SAAS,UAAQ;;AAGpB,sBAAqB;AACzB,WAAO,SAAS,UAAQ;;AAGpB,sBAAqB;AACzB,WAAO,SAAS,UAAQ;;AAGpB,mBAAkB;AACtB,WAAO,MAAM,MAAM;;AAGf,kBAAiB;AACrB,WAAO,MAAM,MAAM;;AAGf,kBAAgB,KAAa,OAAe;AAChD,UAAM,IAAI,KAAK,IAAI,IAAI;AACvB,WAAO,KAAK,MAAM,MAAM,KAAK;;AAGzB,wBAAuB;AAC3B,WAAO,OAAO,IAAI,SAAS,IAAI;;AAG3B,qCAAoC,CAAE,OAAO,SAAuB;AACxE,UAAM,SAAQ,YAAY,KAAK,IAAI,QAAQ;AAC3C,WAAO,IAAI,WAAW,KAAK,MAAM,QAAQ,SAAQ,KAAK,MAAM,SAAS;;AAGjE,0BAAyB;AAC7B,WAAO,IAAI,OAAO,CAAC,OAAK,OAAO,MAAI,IAAI,KAAK,IAAI,MAAM,GAAG,IACtD,IAAI,IAAI,MAAM,IAAI,QAAQ,IAAI;;AAG7B,kBAAgB,KAAa,OAAe;AAChD,WAAO,MAAM,KAAK,KAAK,GAAG,IAAI,CAAC,GAAG,MAAM,QAAS,IAAI;;AAGjD,yBAAwB;AAC5B,WAAO,CAAC,CAAC,OAAO,QAAQ,YAAY,QAAQ,aAAa,CAAC,MAAM,QAAQ,QAAQ;;AAG5E,8BAA6B;AACjC,WAAO,cAAc,QAAQ,KAAK,OAAO,OAAO;;;;ACxDlD;IAIE,YAAY,GAAW;AACrB,WAAK,KAAK;AACV,WAAK,KAAK;;QAGR;AAAc,aAAO,KAAK;;QAC1B;AAAc,aAAO,KAAK;;IAEvB,IAAI;AACT,aAAO,IAAI,MAAM,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG;;IAGvC,IAAI;AACT,aAAO,IAAI,MAAM,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG;;IAGvC,IAAI;AACT,aAAO,IAAI,MAAM,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG;;IAGvC,IAAI;AACT,aAAO,IAAI,MAAM,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG;;IAGvC;AACL,aAAO,IAAI,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK;;IAG5C;AACL,aAAO,KAAK,KAAK,KAAK,IAAI,KAAK,GAAG,KAAK,KAAK,IAAI,KAAK,GAAG;;IAGnD;AACL,aAAO,IAAI,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,KAAK;;;;;AC1CzD;IA2BE,YAAY,MAA4B,0BAAmC;AACzE,YAAM,MAAO,QAAQ;AAErB,YAAM,SAAS,CAAC,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,IAAI,QAAQ,MAAM;AAChE,YAAM,SAAS,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,IAAI,QAAQ,MAAM;AAE3D,UAAI,CAAC,UAAU,CAAC;AACd,cAAM,IAAI,MAAM,2EAA2E,KAAK,UAAU;;AAG5G,YAAM,CAAC,GAAG,GAAG,OAAO,UAAU,SAC1B,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,IAAI,UAC9B,CAAC,IAAI,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,MAAM,IAAI,SAAS,IAAI;AAE/D,UAAI,iBAAiB,CAAE,GAAG,GAAG,OAAO,SAAU,mBAAmB;AAEjE,WAAK,KAAK;AACV,WAAK,KAAK;AACV,WAAK,SAAS;AACd,WAAK,UAAU;;WAtCH,OAAO;AACnB,aAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAAQ,MAAM;;WAGrD,iBAAiB,KAAU,QAAgB,0BAAmC;AAC1F,UAAI,CAAC,IAAI,OAAO;AACd,cAAM,IAAI,MAAM,GAAG,yBAAyB,KAAK,UAAU;;AAG7D,UAAI,CAAC,2BAA4B,KAAI,QAAQ,KAAK,IAAI,SAAS;AAC7D,cAAM,IAAI,MAAM,GAAG,mBAAmB,IAAI,sBAAsB,IAAI;;;QA+B7D;AAAc,aAAO,KAAK;;QAC1B;AAAc,aAAO,KAAK;;QAC1B;AAAkB,aAAO,KAAK;;QAC9B;AAAmB,aAAO,KAAK;;QAC/B;AAAiB,aAAO,KAAK;;QAC7B;AAAgB,aAAO,KAAK;;QAC5B;AAAkB,aAAO,KAAK,IAAI,KAAK;;QACvC;AAAmB,aAAO,KAAK,IAAI,KAAK;;QACxC;AAAiB,aAAO,KAAK,QAAQ,KAAK;;QAC1C;AAAmB,aAAO,IAAI,MAAM,KAAK,MAAM,KAAK;;QACpD;AAAoB,aAAO,IAAI,MAAM,KAAK,OAAO,KAAK;;QACtD;AAAsB,aAAO,IAAI,MAAM,KAAK,MAAM,KAAK;;QACvD;AAAuB,aAAO,IAAI,MAAM,KAAK,OAAO,KAAK;;IAE7D;AACL,YAAM,CAAC,GAAG,GAAG,OAAO,UAAU,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAC7D,IAAI,SAAO,KAAK,MAAM;AACzB,aAAO,IAAI,IAAI,CAAE,GAAG,GAAG,OAAO;;IAGzB;AACL,YAAM,CAAC,GAAG,GAAG,OAAO,UAAU,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,OAAO,KAAK,QAC7D,IAAI,SAAO,KAAK,MAAM;AACzB,aAAO,IAAI,IAAI,CAAE,GAAG,GAAG,OAAO;;IAGzB;AACL,UAAI,CAAE,GAAG,GAAG,OAAO,UAAW;AAC9B,YAAM,OAAO,KAAK,IAAI,QAAQ;AAC9B,UAAI,QAAQ;AACV,aAAM,OAAO;AACb,iBAAS;;AAEX,UAAI,SAAS;AACX,aAAM,OAAO;AACb,kBAAU;;AAGZ,aAAO,IAAI,IAAI,CAAE,GAAG,GAAG,OAAO;;IAGzB,QAAQ;AACb,YAAM,SAAS,aAAa,KAAM,EAAkB,QAAQ;AAC5D,YAAM,SAAS,aAAa,KAAM,EAAkB,SAAS;AAC7D,aAAO,IAAI,IAAI;QACb,GAAG,KAAK,IAAI;QACZ,GAAG,KAAK,IAAI;QACZ,OAAO,KAAK,QAAQ;QACpB,QAAQ,KAAK,SAAS;;;IAInB,IAAI,MAAc;AACvB,UAAI,CAAC,GAAG,GAAG,OAAO,UAAU;QAC1B,KAAK,IAAK,OAAO;QACjB,KAAK,IAAK,OAAO;QACjB,KAAK,QAAQ;QACb,KAAK,SAAS;;AAEhB,aAAO,IAAI,IAAI,CAAE,GAAG,GAAG,OAAO;;IAGzB,mBAAmB,UAAkB;AAC1C,YAAM,CAAE,GAAG,GAAG,OAAO,UAAW;AAChC,YAAM,WAAW,KAAK,IAAI,GAAG;AAC7B,YAAM,WAAW,KAAK,IAAI,GAAG;AAE7B,YAAM,WAAW,QAAQ;AACzB,YAAM,YAAY,SAAS;AAC3B,YAAM,eAAe,KAAK,IAAI,UAAU,WAAW;AACnD,YAAM,gBAAgB,KAAK,IAAI,WAAW,YAAY;AAEtD,aAAQ,IAAI,IAAI,CAAE,GAAG,UAAU,GAAG,UAAU,OAAO,cAAc,QAAQ,gBAAiB;;IAGrF,MAAM,IAAY;AACvB,YAAM,CAAE,OAAO,UAAW;AAC1B,YAAM,IAAI,KAAK,IAAI;AACnB,YAAM,IAAI,KAAK,IAAI;AAEnB,aAAO,IAAI,IAAI,CAAE,GAAG,GAAG,OAAO;;IAGzB,aAAa,aAAqB;AACvC,YAAM,IAAI,KAAK,QAAQ;AACvB,YAAM,IAAI,KAAK,SAAS;AAExB,UAAI,KAAK;AACT,UAAI,KAAK;AACT,UAAI,MAAM;AACV,UAAI,MAAM;AAEV,UAAI,IAAI,KAAK;AACb,UAAI,IAAI,KAAK;AACb,UAAI,KAAK,KAAK;AACd,UAAI,KAAK,KAAK;AAEd,UAAI,KAAK;AACP,cAAM,CAAC,KAAK,aAAa;AACzB,aAAK;;AAEP,UAAI,KAAK;AACP,cAAM,CAAC,KAAK,cAAc;AAC1B,aAAK;;AAEP,UAAI,IAAI;AACN,cAAM,IAAI;AACV,YAAI;;AAEN,UAAI,IAAI;AACN,cAAM,IAAI;AACV,YAAI;;AAGN,aAAO,CAAE,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG;;IAGvC,UAAU;AACf,aAAO,IAAI,IAAI;QACb,MAAM,KAAK,OAAQ,OAAO,OAAO,KAAK;QACtC,KAAK,KAAK,MAAO,OAAO,MAAM,KAAK;QACnC,OAAO,KAAK,QAAS,OAAO,QAAQ,KAAK;QACzC,QAAQ,KAAK,SAAU,OAAO,SAAS,KAAK;SAC3C,WAAW;;;;;AC5KlB,4BASiC;IAC/B,YAAY,MAAc,KAAa,OAAe,QAAgB,0BAAmC;AACvG,YAAM,CAAE,MAAM,KAAK,OAAO,SAAU;;;;;ACXxC;IAWE,YACE,OACA,YACA,WACA,aACA;AAEA,WAAK,aAAa,IAAI,WAAW,UAAU,OAAO,UAAU;AAC5D,WAAK,SAAS;AACd,WAAK,cAAc;AACnB,WAAK,aAAa;AAClB,WAAK,OAAO,IAAI,IAAI,aAAa,QAAQ,KAAK;;QAGrC;AAAkB,aAAO,KAAK;;QAC9B;AAAuB,aAAO,KAAK;;QACnC;AAAsB,aAAO,KAAK;;QAClC;AAAa,aAAO,KAAK;;QACzB;AAA0B,aAAO,KAAK;;QACtC;AAAuB,aAAO,KAAK,UAAU;;QAC7C;AAAwB,aAAO,KAAK,UAAU;;QAC9C;AAAqB,aAAO,IAAI,IAAI,KAAK,MAAM,QAAQ,KAAK,UAAU;;IAE1E,QAAQ,OAAe;AAC5B,aAAO,IAAI,gBACT,KAAK,OACL,KAAK,YACL,KAAK,WACL,KAAK,aACL,CAAE,OAAO;;;;;ACtCf,8BAQmC;IACjC,YACE,OACA,aACA;AAEA,YAAM,OAAO,OAAO,IAAI,aAAa;;IAGhC,QAAQ,OAAe;AAC5B,YAAM,CAAE,OAAO,aAAa,aAAc,MAAM,QAAQ,OAAO;AAC/D,aAAO,IAAI,cAAc,OAAO,aAAa;;;;;ACnB3C,eAAc,MAAW,MAAW,QAAiB;AACzD,UAAM,QAAQ,KAAK,IAAI,GAAK,KAAK,IAAI,KAAK,OAAO,KAAK,SAAS,KAAK,IAAI,KAAK,MAAM,KAAK;AACxF,UAAM,SAAS,KAAK,IAAI,GAAK,KAAK,IAAI,KAAK,QAAQ,KAAK,UAAU,KAAK,IAAI,KAAK,KAAK,KAAK;AAC1F,UAAM,eAAe,QAAQ;AAE7B,WAAO,QACH,eAAgB,MAAK,OAAO,KAAK,OAAO,gBACxC,eAAe,KAAK,IAAI,KAAK,MAAM,KAAK;;;;ACPxC,mBAAkB;AACtB,UAAM,KAAK,IAAI,IAAI,QAAM,GAAG;AAC5B,UAAM,KAAK,IAAI,IAAI,QAAM,GAAG;AAC5B,UAAM,OAAO,GAAG,OAAO,CAAC,MAAK,MAAM,IAAI,OAAM,IAAI,MAAK;AACtD,UAAM,OAAO,GAAG,OAAO,CAAC,MAAK,MAAM,IAAI,OAAM,IAAI,MAAK;AACtD,UAAM,OAAO,GAAG,OAAO,CAAC,MAAK,MAAM,OAAM,IAAI,IAAI,MAAK;AACtD,UAAM,OAAO,GAAG,OAAO,CAAC,MAAK,MAAM,OAAM,IAAI,IAAI,MAAK;AAEtD,WAAO,IAAI,YAAY,MAAM,MAAM,MAAM;;;;ACPrC,8BACJ,OACA,QACA,cACA,QAAiB;AAGjB,QAAI,uBAAuB,OACxB,IAAI,CAAC,OAAO,aAAc,EAAE,OAAO,YACnC,KAAK,CAAC,IAAI,OAAO,GAAG,QAAQ,GAAG,OAC/B,IAAI,OAAK,EAAE;AAEd,UAAM,OAAiB;AAEvB,WAAM,qBAAqB,SAAS;AAClC,YAAM,OAAO,qBAAqB;AAClC,WAAK,KAAK;AAEV,YAAM,UAAU;AAEhB,YAAM,UAAoB;AAC1B,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ;AAClC,cAAM,MAAM,QAAQ;AAEpB,cAAM,UAAU,MAAM;AACtB,cAAM,SAAS,MAAM;AAErB,gBAAQ,KAAK,IAAI,SAAS,QAAQ;;AAGpC,6BAAuB,qBAAqB,OAC1C,CAAC,GAAG,MAAM,QAAQ,MAAM;;AAI5B,WAAO;;;;ACpCH,qBAAoB,GAAgB;AACxC,WAAO,AAAG,KAAK;AACb,YAAM,CAAC,GAAG,GAAG,KAAK;AAClB,YAAM,QAAQ,AAAG,KAAK,CAAC,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI;AACnD,YAAM,QAAQ,AAAG,KAAK,CAAC,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI;AACnD,YAAM,QAAQ,AAAG,KAAK,CAAC,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI;AACnD,YAAM,UAAU,AAAG,OAAO,CAAC,OAAO,OAAO,QAAQ;AAEjD,aAAO,AAAG,IAAI,GAAG;;;;;ACAf,uBACJ,WACA,gBAAyB;AAEzB,WAAO,AAAG,KAAK;AAEb,YAAM,CAAC,QAAQ,SAAS,UAAU,MAAM,MAAM;AAC9C,UAAI,WAAW;AACb,eAAO;;AAGT,YAAM,UAAU,KAAK,IAAI,SAAS;AAClC,YAAM,gBAAgB,KAAK,MAAM,UAAW,iBAAgB,MAAM;AAClE,YAAM,cAAc,SAAS,QAAQ,IAAI;AAEzC,YAAM,sBAAsB,CAAC;AAC3B,cAAM,qBAAqB,UAAU,MAAM;AAC3C,2BAAmB,eAAe;AAClC,eAAO,AAAG,KAAK,oBAAoB;;AAGrC,YAAM,sBAAsB,oBAAoB;AAChD,YAAM,yBAAyB,UAAW,oBAAoB,MAAM;AAEpE,YAAM,uBAAuB,iBAAiB,yBAC1C,oBAAoB,0BACpB;AAEJ,YAAM,iBAAiB;QACrB;QACA;QACA;QAEC,OAAO,OAAK,CAAC,CAAC,GACd,IAAI,CAAC,MAAiB,EAAE;AAC3B,aAAO,AAAG,OAAO,gBAAgB;;;;;AC7C/B,wBAAuB;AAC3B,UAAM,QAAQ,WAAW;AACzB,aAAS,IAAI,MAAM,SAAS,GAAG,IAAI,GAAG;AAClC,YAAM,IAAI,KAAK,MAAM,KAAK,WAAY,KAAI;AAC1C,YAAM,IAAI,MAAM;AAChB,YAAM,KAAK,MAAM;AACjB,YAAM,KAAK;;AAEf,WAAO;;;;ACDH,oBAAkB;AACtB,WAAO,IAAK,KAAI,KAAK,IAAI,CAAC;;AAGtB,0BAAyB;AAC7B,WAAO,KAAK,IAAI,IAAK,KAAI;;;;ACZ3B,qBAS0B;IACxB,YAAY,GAAW,GAAW,OAAe,QAAgB,0BAAmC;AAClG,YAAM,CAAE,GAAG,GAAG,OAAO,SAAU;;;;;ACDnC,QAAM,OAAO;AACb,QAAM,OAAO;AACb,QAAM,WAAW;AAZjB;IAwBE,YACE,+BACA,SACA,QAAe,IAAI,MAAM,GAAG;AAE5B,YAAM,CAAE,OAAO,UAAW;AAC1B,WAAK,WAAW,IAAI,WAAW,OAAO;AACtC,WAAK,SAAS;AACd,WAAK,aAAa,8BAA8B,IAC9C,QAAM,GAAG,IAAI,IAAI,MAAM,OAAO,SAAS,IAAI;;QAIpC;AAAiB,aAAO,IAAI,MAAM,KAAK,OAAO,GAAG,KAAK,OAAO;;QAC7D;AAAuB,aAAO,KAAK,SAAS;;QAC5C;AAAwB,aAAO,KAAK,SAAS;;QAC7C;AAAuB,aAAO,KAAK;;QACnC;AACT,aAAO,KAAK,WAAW,IACrB,QAAM,GAAG,IAAI,KAAK,QAAQ,IAAI,IAAI,MAAM,KAAK,YAAY,KAAK;;IAI3D,QAAiC,OAAe;AACrD,aAAO,IAAK,KAAK,YACf,KAAK,mBACL,CAAE,OAAO;;IAIN,QAAiC,GAAW;AACjD,aAAO,IAAK,KAAK,YACf,KAAK,mBACL,KAAK,UACL,IAAI,MAAM,GAAG;;IAIV,aAAsC;AAC3C,aAAO,KAAK,QAAQ,GAAG,GAAG,GAAG;;IAcxB,MACL,WACA,UAAkE;AAElE,UAAI;AACF,cAAM,MAAM,qBAAqB,gBAC7B,UAAU,IAAI,UACd,IAAI,IAAI;AAEZ,eAAO,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG,MAAM,MAAM;;AAGhD,YAAM,CAAE,kBAAkB,iBAAkB,OAAO,OAAO,IAAI,CAAE,kBAAkB,OAAO,eAAe,MAAO;AAE/G,UAAI;AACF,eAAO,KAAK;;AAGd,aAAO,KAAK,aAAa;;IAGnB;AAEN,YAAM,UAAU,KAAK;AAErB,YAAM,CAAC,eAAe,gBAAgB,eAAe;AACrD,YAAM,cAAc,CAAC,OAAc,YAAY,IAAI,IAAI;AACvD,YAAM,iBAAkB,aAAY,iBAAiB,YAAY,mBAAmB;AAEpF,YAAM,OAAO,KAAK,MAAM,iBAAiB;AAEzC,YAAM,WAAW,eAAe;AAEhC,YAAM,IAAI,KAAK,MAAM,KAAK,IAAI,GAAG,SAAS,IAAK,OAAO;AACtD,YAAM,IAAI,KAAK,MAAM,KAAK,IAAI,GAAG,SAAS,IAAK,OAAO;AAEtD,aAAO,IAAI,KAAK,GAAG,GAAG,KAAK,IAAI,MAAM,KAAK,aAAa,IAAI,KAAK,IAAI,MAAM,KAAK,cAAc;;IAGvF,aAAa;AACnB,YAAM,MAAM,QAAQ,KAAK;AACzB,aAAO,IAAI,IAAI,IAAI,QAAQ,SAAS,IAAI,SAAS;;IAGzC;AACR,YAAM,IAAI,MAAM;;;;;AC1HpB,+BAKoC;IAExB;AACR,YAAM,MAAM,KAAK;AACjB,aAAO;QACL,IAAI;QACJ,IAAI;QACJ,eAAe,CAAC,IAAI,IAAI,IAAI;;;;;;ACZlC,gCAIqC;IAC5B;AACL,aAAO,KAAK,UAAU,MAAM,GAAG;;IAG1B;AACL,aAAO,KAAK,UAAU,MAAM,IAAI;;IAG3B;AACL,aAAO,KAAK,UAAU,MAAM,IAAI;;IAG3B;AACL,aAAO,KAAK,UAAU,MAAM,IAAI;;IAG3B;AACL,aAAO,KAAK,UAAU,MAAM,IAAI;;IAG3B;AACL,aAAO,KAAK,UAAU,MAAM,IAAI;;IAG3B;AACL,aAAO,KAAK,UAAU,MAAM,IAAI;;IAGxB;AACR,aAAO;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;;;;;ACtCV;IAWE,YAAY,OAAe;AACzB,WAAK,SAAS;AACd,WAAK,YAAY;;QAGR;AAAkB,aAAO,KAAK;;QAC9B;AAAqB,aAAO,KAAK;;IAErC,SAAS,eAAwB;AACtC,aAAO,GAAG,KAAK,QAAQ,eAAe,KAAK,OAAM,KAAK,eAAe;;;;;ACpBzE,2BAKgC;IAY9B,YAAY,KAAiC;AAC3C,YAAM;AACN,WAAK,SAAS;;WAZF,wBAAwB,KAAU;AAC9C,UAAI,iBAAiB,KAAK;AAE1B,UAAI,CAAC,cAAc,IAAI;AACrB,cAAM,IAAI,MAAM,GAAG,qCAAqC,IAAI;;;QAWrD;AAAkB,aAAO,KAAK;;;;;ACtB3C;IAIE,YAAY,OAAe;AACzB,UAAI,CAAE,QAAO,UAAU;AACrB,cAAM,IAAI,MAAM;;AAGlB,UAAI,CAAC,MAAM,QAAQ,gBAAgB,YAAY,KAAK,UAAQ,CAAE,iBAAgB;AAC5E,cAAM,IAAI,MAAM;;AAGlB,WAAK,SAAS;AACd,WAAK,eAAe;;QAGX;AAAkB,aAAO,KAAK;;QAC9B;AAAgC,aAAO,KAAK;;IAEhD;AACL,aAAO;QACL,OAAO,KAAK;QACZ,aAAa,KAAK,YAAY,IAAI,CAAC,MAAM,MAAM,KAAK;;;WAI1C,SAAS;AACrB,YAAM,cAAc,KAAK,YAAY,IAAI,CAAC;AACxC,eAAO,IAAI,aAAa;;AAE1B,aAAO,IAAI,uBAAuB,KAAK,OAAO;;;;;AC/BlD,6BAKkC;IAgBhC,YAAY,KAAiC,OAAe,OAAe;AACzE,YAAM,KAAK;AACX,WAAK,SAAS;AACd,WAAK,cAAc;;WAjBP,0BAA0B,KAAU;AAChD,iBAAW,wBAAwB,KAAK;AAExC,UACE,CAAC,mBAAmB,IAAI,UACrB,CAAC,mBAAmB,IAAI;AAE3B,cAAM,IAAI,MAAM,GAAG,uCAAuC,IAAI,eAAe,IAAI;;;QAa1E;AAAkB,aAAO,KAAK;;QAC9B;AAAuB,aAAO,KAAK;;;;;;;ACtB1C,+BAA8B;AAClC,WAAO,IAAI,wBAAwB;;AAG/B,mCAGJ,WACA;AAGA,UAAM,YAAY,CAAE;AACpB,WAAO,OAAO,OAAO,IAAI,WAAW;;;;AChBhC;AAEJ,UAAM,SAAQ,OAAO,YAAY;AAC/B,YAAM,IAAI,MAAM;;AAGlB,UAAM,WAAW;AACf,YAAM,IAAI,MAAM;;AAGlB,WAAO;MACL,QAAQ;MACR;MACA,OAAO;MACP;MACA,OAAO;MACP,qBAAqB,MAAM,SAAS,cAAc;MAClD,oBAAoB,MAAM,SAAS,cAAc;MACjD;MACA;;;;;ACnBE,4BAA2B;AAE/B,QAAI,iBAAiB;AAErB,QAAI,CAAC;AACH;AACE,aAAK;eACE;AACP,yBAAiB,IAAI;;;AAIzB,UAAM,WAAW,KACb,SAAS;AACT,aAAO,IAAI,QAAgB,CAAC,KAAK;AAC/B,WAAG,SAAS,UAAU,SAAS,KAAU;AACvC,iBAAO,MAAM,IAAI,OAAO,IAAI;;;QAIhC;AACA,YAAM,IAAI,MAAM,qEAAqE;;AAGzF,WAAO;MACL;;;;;ACxBE;AAEJ,UAAM,SAAS,OAAO,aAAa,OAAO;AAC1C,UAAM,QAAQ,OAAO,YAAY,OAAO;AAExC,UAAM,sBAAsB;AAC1B,UAAI;AACF,eAAO,IAAI;;AAEb,YAAM,IAAI,MAAM;;AAGlB,UAAM,qBAAqB;AACzB,UAAI;AACF,eAAO,IAAI;;AAEb,YAAM,IAAI,MAAM;;AAGlB,UAAM,SAAQ,OAAO,YAAY;AAC/B,YAAM,IAAI,MAAM;;AAGlB,UAAM,aAAa;AAEnB,WAAO;MACL,QAAQ,UAAU;;MAClB,0BAA0B,OAAO,+BAA+B;;MAChE,OAAO,SAAS;;MAChB,WAAW,OAAO,gBAAgB;;MAClC,OAAO,OAAO,uBAAuB;;MACrC;MACA;MACA;SACG;;;;;ACrCD;AACJ,WAAO,OAAO,WAAW,YACpB,OAAO,aAAa,eACpB,OAAO,qBAAqB,eAC5B,OAAO,sBAAsB,eAC7B,OAAO,qBAAqB,eAC5B,OAAO,cAAc,eACrB,OAAO,6BAA6B;;;;;;ACH3C,mBAAyB;AAGzB,MAAI;AAEJ;AACE,QAAI,CAAC;AACH,YAAM,IAAI,MAAM;;AAElB,WAAO;;AAGT,kBAAgB;AACd,oBAAc;;AAGhB;AAGE,QAAI;AACF,aAAO,OAAO;;AAEhB,QAAI;AACF,aAAO,OAAO;;;AAIlB,uBAAqB;AACnB,QAAI,CAAC;AACH;;AAGF,QAAI,CAAC;AACH,YAAM,IAAI,MAAM;;AAGlB,UAAM,CAAE,SAAS,cAAY,QAAQ,QAAQ,cAAY,SAAU;AACnE,kBAAY,SAAS;AACrB,kBAAY,QAAQ;AACpB,kBAAY,sBAAsB,MAAI,uBAAwB,OAAM,IAAI;AACxE,kBAAY,qBAAqB,MAAI,sBAAuB,OAAM,IAAI;AAEtE,kBAAY,YAAY,MAAI,aAAa,cAAY;AACrD,kBAAY,QAAQ,MAAI,SAAS,cAAY;AAC7C,kBAAY,QAAQ,MAAI,SAAS,cAAY;AAC7C,kBAAY,WAAW,MAAI,YAAY,cAAY;;AAG9C,QAAM,OAAM;IACjB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;AAGF;;;AC9DM,wBAAuB;AAC3B,QAAI,CAAC,KAAI,cAAc,OAAO,QAAQ;AACpC,aAAO,SAAS,eAAe;;AAEjC,WAAO;;;;ACHH,+BAA8B;AAElC,UAAM,CAAE,QAAQ,uDAA6B,KAAI;AAEjD,QAAI,qBAAqB;AACvB,aAAO;;AAGT,UAAM,SAAS,aAAa;AAE5B,QAAI,CAAE,mBAAkB;AACtB,YAAM,IAAI,MAAM;;AAGlB,UAAM,MAAM,OAAO,WAAW;AAC9B,QAAI,CAAC;AACH,YAAM,IAAI,MAAM;;AAGlB,WAAO;;;;AClBT,MAAY;AAAZ,EAAA,UAAY;AACV,oBAAA,cAAA;AACA,oBAAA,eAAA;AACA,oBAAA,iBAAA;AACA,oBAAA,kBAAA;KAJU,kBAAA,kBAAc;AAH1B;IA2BE,YAAY,UAAiC;AAC3C,YAAM,CAAE,gBAAgB,iBAAiB,WAAW,UAAU,WAAW,WAAY;AACrF,WAAK,iBAAiB,kBAAkB,eAAe;AACvD,WAAK,kBAAkB,mBAAmB;AAC1C,WAAK,YAAY,aAAa;AAC9B,WAAK,WAAW,YAAY;AAC5B,WAAK,YAAY,aAAa;AAC9B,WAAK,UAAU,WAAW;;;AAlC9B;IA2CE,YACE,MACA,QACA,UAAiC;AAEjC,WAAK,OAAO,OAAO,SAAS,WACxB,CAAC,QACA,gBAAgB,gBAAgB,KAAK,OAAO;AACjD,WAAK,SAAS;AACd,WAAK,UAAU,IAAI,qBAAqB;;IAG1C,aAAa;AACX,YAAM,CAAE,WAAY,KAAK;AACzB,aAAO,KAAK,KAAK,IAAI,OAAK,IAAI,YAAY,GAAG,OAAO,OAAO,CAAC,IAAI,OAAO,KAAK,KAAK,KAAK,IAAI,KAAM,IAAI;;IAGtG;AACE,YAAM,CAAE,UAAU,WAAY,KAAK;AACnC,aAAO,KAAK,KAAK,SAAS,WAAY,IAAI;;IAG5C,aAAa,KAA+B;AAC1C,YAAM,CAAE,kBAAmB,KAAK;AAChC,YAAM,cAAc,mBAAmB,eAAe,gBAAgB,mBAAmB,eAAe;AACxG,YAAM,aAAa,mBAAmB,eAAe,eAAe,mBAAmB,eAAe;AAEtG,YAAM,iBAAiB,KAAK,aAAa;AACzC,YAAM,kBAAkB,KAAK;AAC7B,YAAM,IAAK,cAAc,KAAK,OAAO,IAAI,iBAAiB,KAAK,OAAO;AACtE,YAAM,IAAI,aAAa,KAAK,OAAO,IAAI,kBAAkB,KAAK,OAAO;AAGrE,UAAI;AACF,cAAM,CAAE,OAAO,UAAW;AAC1B,cAAM,OAAO,KAAK,IAAI,KAAK,IAAI,GAAG,QAAQ,iBAAiB;AAC3D,cAAM,OAAO,KAAK,IAAI,KAAK,IAAI,GAAG,SAAS,kBAAkB;AAC7D,eAAO,CAAE,GAAG,MAAM,GAAG;;AAEvB,aAAO,CAAE,GAAG;;IAGd,KAAK;AACH,YAAM,SAAS,aAAa;AAC5B,YAAM,MAAM,oBAAoB;AAEhC,YAAM,CAAE,iBAAiB,WAAW,UAAU,WAAW,WAAY,KAAK;AAE1E,UAAI,OAAO,GAAG,cAAc;AAC5B,YAAM,eAAe,KAAK,aAAa;AACvC,YAAM,aAAa,KAAK;AAExB,UAAI,YAAY;AAChB,YAAM,YAAY,KAAK,aAAa,KAAK;AACzC,UAAI,SAAS,UAAU,GAAG,UAAU,GAAG,cAAc;AAErD,UAAI,YAAY;AAChB,WAAK,KAAK,QAAQ,CAAC,UAAU;AAC3B,cAAM,IAAI,UAAU,UAAU;AAC9B,cAAM,IAAI,UAAU,UAAU,IAAM,KAAI,KAAK;AAC7C,YAAI,SAAS,UAAU,GAAG;;;;;;ACxGhC;IAiBE,YAAY,UAA2B;AACrC,YAAM,CAAE,UAAU,WAAW,OAAO,oBAAqB;AACzD,WAAK,WAAW,YAAY;AAC5B,WAAK,YAAY,aAAa;AAC9B,WAAK,QAAQ;AAEb,YAAM,0BAA0B;QAC9B,gBAAgB,eAAe;QAC/B,iBAAiB,KAAK;;AAExB,WAAK,mBAAmB,IAAI,qBAAqB,OAAO,OAAO,IAAI,yBAAyB;;;AA3BhG;IAmCE,YACE,KACA,UAA2B;AAE3B,WAAK,MAAM,IAAI,IAAI;AACnB,WAAK,UAAU,IAAI,eAAe;;IAGpC,KAAK;AACH,YAAM,MAAM,oBAAoB;AAEhC,YAAM,CAAE,UAAU,aAAc,KAAK;AAErC,YAAM,CAAE,GAAG,GAAG,OAAO,UAAW,KAAK;AACrC,UAAI,cAAc;AAClB,UAAI,YAAY;AAChB,UAAI,WAAW,GAAG,GAAG,OAAO;AAE5B,YAAM,CAAE,SAAU,KAAK;AACvB,UAAI;AACF,YAAI,cAAc,CAAC,QAAQ,CAAE,GAAG,IAAK,YAAY,GAAI,IAAK,KAAK,QAAQ,kBAAkB,KAAK;;;;;;AC/C9F,0BACJ,WACA;AAEA,UAAM,kBAAkB,MAAM,QAAQ,cAAc,aAAa,CAAC;AAElE,oBAAgB,QAAQ;AACtB,YAAM,QAAQ,eAAe,gBACzB,IAAI,QACH,oBAAoB,OAAO,IAAI,UAAU,QAAQ;AAEtD,YAAM,MAAM,eAAe,gBACvB,IAAI,MACH,oBAAoB,OAAO,IAAI,UAAU,MAAM,IAAI,IAAI;AAE5D,YAAM,QAAQ,QAAQ,GAAG,OAAM,WAAW;AAC1C,UAAI,QAAQ,KAAK,CAAE,QAAS,KAAK;;;;;ACtB/B,yBAAwB;AAE5B,UAAM,CAAE,OAAO,SAAU,KAAI;AAE7B,WAAQ,iBAAiB,SAAS,MAAM,YAClC,iBAAiB,SAAS,MAAM,cAAc;;;;ACJhD,4BAA2B;AAE/B,WAAO,IAAI,QAAQ,CAAC,SAAS;AAC3B,UAAI,iBAAiB,KAAI,SAAS,UAAU,cAAc;AACxD,eAAO;;AAGT,sBAAgB;AACd,YAAI,CAAC,EAAE;AAAe;AACtB,UAAE,cAAc,oBAAoB,QAAQ;AAC5C,UAAE,cAAc,oBAAoB,SAAS;AAC7C,gBAAQ;;AAGV,uBAAiB;AACf,YAAI,CAAC,EAAE;AAAe;AACtB,UAAE,cAAc,oBAAoB,QAAQ;AAC5C,UAAE,cAAc,oBAAoB,SAAS;AAC7C,eAAO;;AAGT,YAAM,iBAAiB,QAAQ;AAC/B,YAAM,iBAAiB,SAAS;;;;;ACvB9B,yBAAwB;AAC5B,WAAO,IAAI,QAAQ,CAAC,SAAS;AAC3B,UAAI,CAAE,gBAAe;AACnB,eAAO,OAAO;;AAGhB,YAAM,SAAS,IAAI;AACnB,aAAO,SAAS;AACd,YAAI,OAAO,OAAO,WAAW;AAC3B,iBAAO,OAAO;;AAGhB,cAAM,MAAM,KAAI,SAAS;AACzB,YAAI,SAAS,MAAM,QAAQ;AAC3B,YAAI,UAAU;AACd,YAAI,MAAM,OAAO;;AAEnB,aAAO,UAAU;AACjB,aAAO,cAAc;;;;;ACjBnB,8BAA6B;AAEjC,UAAM,CAAE,OAAO,SAAU,KAAI;AAE7B,QAAI,iBAAiB;AACnB,aAAO,IAAI,WAAW,MAAM,cAAc,MAAM;;AAElD,QAAI,iBAAiB;AACnB,aAAO,IAAI,WAAW,MAAM,YAAY,MAAM;;AAEhD,WAAO,IAAI,WAAW,MAAM,OAAO,MAAM;;;;ACPrC,wBAAuB,CAAE,OAAO;AAEpC,UAAM,CAAE,uBAAwB,KAAI;AACpC,UAAM,SAAS;AACf,WAAO,QAAQ;AACf,WAAO,SAAS;AAChB,WAAO;;AAGH,iCAAgC,OAAwD;AAE5F,UAAM,CAAE,yBAAc,KAAI;AAE1B,QAAI,CAAE,kBAAiB,eAAc,CAAC,cAAc;AAClD,YAAM,IAAI,MAAM;;AAGlB,UAAM,CAAE,OAAO,UAAW,QAAQ,mBAAmB;AACrD,UAAM,SAAS,aAAa,CAAE,OAAO;AAErC,QAAI,iBAAiB;AACnB,0BAAoB,QAAQ,aAAa,OAAO,GAAG;;AAEnD,0BAAoB,QAAQ,UAAU,OAAO,GAAG,GAAG,OAAO;;AAE5D,WAAO;;;;AC1BT,qCACE,WACA;AAGA,UAAM,eAAe,UAAU,KAAI,SAAS;AAE5C,UAAM,CAAC,QAAQ,OAAO,eAAe,UAAU,MAAM,MAAM,WAAW,aAAa,IAAI;AACvF,UAAM,cAAc,AAAG,KAAK,MAAM,UAAU,KAAK,QAAQ,OAAO,aAAa;AAC7E,UAAM,AAAG,gBAAQ,SAAS,aAAa;AAEvC,gBAAY;AAEZ,WAAO;;;;AChBH,0BAAyB;AAE7B,UAAM,CAAE,OAAO,QAAQ,SAAU,KAAI;AAErC,WAAO,iBAAiB,SACnB,iBAAiB,UACjB,iBAAiB;;;;ACHlB,yBAAwB,OAA6C,WAAmB,cAAuB;AAEnH,UAAM,CAAE,OAAO,UAAW,KAAI;AAE9B,QAAI,CAAE,kBAAiB,SAAS,iBAAiB;AAC/C,YAAM,IAAI,MAAM;;AAGlB,UAAM,OAAO,mBAAmB;AAChC,UAAM,SAAQ,YAAY,KAAK,IAAI,KAAK,QAAQ,KAAK;AACrD,UAAM,QAAQ,SAAQ,KAAK;AAC3B,UAAM,SAAS,SAAQ,KAAK;AAE5B,UAAM,eAAe,aAAa,CAAE,OAAO,WAAW,QAAQ;AAC9D,UAAM,cAAc,iBAAiB,SAAS,QAAQ,sBAAsB;AAE5E,UAAM,SAAS,KAAK,IAAI,QAAQ,UAAU;AAC1C,UAAM,KAAK,eAAe,QAAQ,SAAS,SAAS;AACpD,UAAM,KAAK,eAAe,SAAS,QAAQ,SAAS;AACpD,wBAAoB,cAAc,UAAU,aAAa,IAAI,IAAI,OAAO;AAExE,WAAO;;;;AC1BT;IAmBE,YACE,QACA,oBAA6B;AAVvB,WAAA,gBAAkD;AAClD,WAAA,YAAiC;AAEjC,WAAA,qBAA8B;AAE9B,WAAA,mBAA+B;AAOrC,UAAI,CAAC,MAAM,QAAQ;AACjB,cAAM,IAAI,MAAM,4HAA4H;;AAG9I,WAAK,qBAAqB;AAC1B,WAAK,aAAa,OAAO;AAEzB,aAAO,QAAQ,CAAC,OAAO;AAErB,YAAI,WAAW;AACb,eAAK,cAAc,OAAO;AAC1B,eAAK,iBAAiB,OAAO,MAAM;AACnC;;AAGF,YAAI,WAAW;AACb,gBAAM,YAAY,MAAM,MAAM;AAC9B,cAAI,cAAc;AAChB,kBAAM,IAAI,MAAM,yCAAyC;;AAG3D,eAAK,cAAc,OAAO;AAC1B,eAAK,iBAAiB,OAAO,MAAM,MAAM,MAAM;AAC/C;;AAGF,cAAM,SAAS,iBAAiB,KAAI,SAAS,SAAS,QAAQ,sBAAsB;AACpF,aAAK,UAAU,OAAO;AACtB,aAAK,iBAAiB,OAAO,CAAC,OAAO,QAAQ,OAAO,OAAO;;;QAIpD;AACT,aAAO,KAAK;;QAGH;AACT,aAAO,KAAK;;QAGH;AACT,aAAO,KAAK,YAAY,KAAK,KAAK;;QAGzB;AACT,aAAO,KAAK;;QAGH;AACT,aAAO,KAAK;;QAGH;AACT,aAAO,KAAK;;QAGH;AACT,aAAO,OAAM,KAAK,WAAW,GAAG,GAAG,IACjC,CAAC,GAAG,aAAa,KAAK,2BAA2B;;IAI9C,SAAS;AACd,aAAO,KAAK,SAAS,aAAa,KAAK,aAAa;;IAG/C,mBAAmB;AACxB,aAAO,KAAK,iBAAiB;;IAGxB,eAAe;AACpB,aAAO,KAAK,iBAAiB,UAAU;;IAGlC,cAAc;AACnB,aAAO,KAAK,iBAAiB,UAAU;;IAGlC,2BAA2B;AAChC,UAAI,OAAO,KAAK,cAAc;AAC5B,cAAM,IAAI,MAAM;;AAGlB,YAAM,QAAQ,KAAK,cAAc;AACjC,YAAM,SAAS,KAAK,eAAe;AACnC,aAAO,0BAA0B,CAAE,OAAO,SAAU,KAAK;;IAYpD,cAAc,WAAmB,iBAA0B;AAEhE,WAAK,aAAa;AAElB,aAAO,AAAG,KAAK;AAEb,cAAM,eAAe,OAAM,KAAK,WAAW,GAAG,GAAG,IAAI;AACnD,gBAAM,QAAQ,KAAK,SAAS;AAE5B,cAAI,iBAAoB;AAEtB,gBAAI,YAAY,WAAW,SAAS,QAAQ,MAAM;AAElD,wBAAY,YAAY,WAAW;AAEnC,gBAAI,UAAU,MAAM,OAAO,aAAa,UAAU,MAAM,OAAO;AAC7D,0BAAY,AAAG,MAAM,eAAe,WAAW,CAAC,WAAW;;AAG7D,mBAAO,UAAU,KAAK,WAAW,WAAW;;AAG9C,cAAI,iBAAiB,KAAI,SAAS;AAChC,mBAAO,AAAG,gBAAQ,WAAW,cAAc,OAAO,WAAW;;AAG/D,gBAAM,IAAI,MAAM,+BAA+B,qGAAqG;;AAGtJ,cAAM,cAAc,AAAG,MAAM,aAAa,IAAI,OAAK,EAAE,YAAY,KAAK,KAAK,WAAW,WAAW,WAAW;AAE5G,eAAO;;;;;;ACzIb,4BAAiC;AAC/B,QAAI,kBAAkB;AACpB,aAAO;;AAGT,QAAI,gBAAgB,MAAM,QAAQ,UAC5B,SACA,CAAC;AAEP,QAAI,CAAC,cAAc;AACjB,YAAM,IAAI,MAAM;;AAGlB,UAAM,aAAa,CAAC,QAAgB,MAAM,QAAQ,UAAU,mBAAmB,SAAS;AAExF,UAAM,aAAa,cAAc,IAAI;AAErC,eAAW,QAAQ,CAAC,OAAO;AACzB,UAAI,CAAC,eAAe,UAAU,CAAC,WAAW,UAAU,CAAC,WAAW;AAE9D,YAAI,OAAO,cAAc,OAAO;AAC9B,gBAAM,IAAI,MAAM,eAAe,WAAW,sEAAsE,cAAc;;AAGhI,cAAM,IAAI,MAAM,eAAe,WAAW;;AAG5C,UAAI,WAAW;AAEb,cAAM,YAAY,MAAM,MAAM;AAC9B,YAAI,cAAc;AAChB,gBAAM,IAAI,MAAM,eAAe,WAAW,iCAAiC;;;;AAMjF,UAAM,QAAQ,IACZ,WAAW,IAAI,WAAS,eAAe,UAAU,iBAAiB;AAGpE,WAAO,IAAI,SAAS,YAAY,MAAM,QAAQ;;;;ACvChD,8BACE,OACA;AAGA,UAAM,CAAE,UAAW,KAAI;AAEvB,QAAI,SAAS;AAEb,QAAI,CAAE,kBAAiB;AACrB,YAAM,WAAW,MAAM,WAAW;AAElC,UAAI,SAAS,YAAY;AACvB,cAAM,IAAI,MAAM;;AAGlB,YAAM,iBAAiB,SAAS,SAAS;AACzC,eAAS,0BAA0B,SAC/B,iBACA,MAAM,oBAAoB;;AAGhC,UAAM,MAAM,oBAAoB;AAChC,UAAM,QAAQ,WAAW,IACvB,SAAO,eAAe,gBAClB,IAAI,QAAQ,OAAO,OAAO,OAAO,QAAQ,IAAI,UAC7C,KAEH,IAAI,SAAO,IAAI,mBAAmB,OAAO,OAAO,OAAO;AAE1D,WAAO,MAAM,IAAI,CAAC,CAAE,GAAG,GAAG,OAAO;AAC/B,YAAM,UAAU,aAAa,CAAE,OAAO;AACtC,0BAAoB,SACjB,aAAa,IAAI,aAAa,GAAG,GAAG,OAAO,SAAS,GAAG;AAC1D,aAAO;;;;;AClCX,oCACE,aACA;AAGA,QAAI,CAAC,WAAW,gBAAgB,CAAC,WAAW;AAC1C,YAAM,IAAI,MAAM;;AAGlB,QAAI,WAAW,gBAAgB,YAAY,MAAM,KAAK;AACpD,YAAM,IAAI,MAAM;;AAGlB,WAAO,AAAG,KAAK;AACb,YAAM,CAAC,WAAW,UAAU,eAAe,YAAY,MAAM,MAAM,WAAW,eAAe,IAAI;AAEjG,YAAM,QAAQ,WAAW,IACvB,SAAO,eAAe,gBAClB,IAAI,QAAQ,UAAU,WAAW,MACjC,KAEH,IAAI,SAAO,IAAI,mBAAmB,UAAU;AAE/C,YAAM,cAAc,MAAM,IAAI,CAAC,CAAE,GAAG,GAAG,OAAO,YAC5C,AAAG,QAAQ,YAAY,KAAK,WAAW,UAAU,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,OAAO;AAG5F,aAAO;;;;;ACzCX,8BACE,KACA;AAGA,UAAM,SAAQ,KAAI,SAAS;AAC3B,UAAM,MAAM,MAAM,OAAM,KAAK;AAC7B,QAAI,CAAE,KAAI,SAAS;AACjB,YAAM,IAAI,MAAM,qBAAqB,IAAI,WAAW,IAAI,yBAAyB,IAAI;;AAEvF,WAAO;;;;ACTT,4BAAiC;AAC/B,UAAM,MAAM,MAAM,aAAa;AAC/B,UAAM,OAAO,MAAO,IAAK;AAEzB,QAAI,CAAC,KAAK,KAAK,WAAW;AACxB,YAAM,IAAI,MAAM,wEAAwE,KAAK,kBAAkB,IAAI;;AAErH,WAAO,cAAc;;;;ACRvB,2BAAmC;AACjC,WAAQ,OAAM,aAAa,MAAM;;;;ACDnC,iCAAsC;AACpC,WAAO,IAAI,aAAa,MAAO,OAAM,aAAa,MAAM;;;;ACHpD,wBAAuB,KAAyB;AACpD,UAAM,0BAA0B,GAAG;AAEnC,QAAI,CAAC;AACH,aAAO;QACL,cAAc;QACd,aAAa;;;AAIjB,QAAI,QAAQ;AACV,aAAO;QACL,cAAc;QACd,aAAa,IAAI;;;AAGrB,UAAM,WAAW,IAAI,WAAW,aAAa,YAAY,IAAI,WAAW,cAAc,aAAa;AACnG,UAAM,IAAI,QAAQ,UAAU;AAE5B,UAAM,QAAQ,IAAI,MAAM,KAAK,OAAO,OAAK;AAEzC,UAAM,eAAe,IAAI,SAAS,WAC9B,MAAM,MAAM,SAAS,KACrB;AAEJ,QAAI,eAAe,WAAY,KAAI,SAAS,WAAW,MAAM,MAAM,GAAG,MAAM,SAAS,KAAK,OAAO,KAAK;AACtG,mBAAe,IAAI,WAAW,OAAO,IAAI,iBAAiB;AAE1D,WAAO;MACL;MACA,aAAa,iBAAiB,MAAM,IAAI,iBAAiB,GAAG,gBAAgB;;;;;ACzBhF,+BACE,KACA;AAEA,UAAM,CAAE,aAAa,gBAAiB,aAAa,KAAK;AACxD,UAAM,WAAW,MAAM,UAAuC;AAC9D,YAAQ,IAAI,OAAO,UAAU;AAC7B,WAAO,AAAG,WAAG,YAAY,UAAU;;;;ACT/B,2BAA0B,OAAoB,WAAwB,qBAA8B;AACxG,UAAM,CAAE,OAAO,UAAW,qBACtB,mBAAmB,aACnB;AACJ,UAAM,QAAQ;AACd,UAAM,SAAS;AACf,WAAO,CAAE,OAAO;;;;;;;;ACTlB;IAYE,YAAsB;AAAA,WAAA,QAAA;AAHZ,WAAA,UAAkC;AAClC,WAAA,iBAAiC;;QAIhC;AAAmC,aAAO,KAAK;;QAC/C;AAAkC,aAAO,KAAK;;QAC9C;AAAsB,aAAO,CAAC,CAAC,KAAK;;IAExC,iBAAiB;AACtB,YAAM,CAAE,KAAK,WAAY,KAAK,qBAAqB;AACnD,aAAO,IAAI;;IAGN,sBAAsB,WAAmB;AAC9C,YAAM,CAAE,KAAK,WAAY,KAAK,qBAAqB;AACnD,UAAI,SAAS;AACb,UAAI,WAAW;;IAGV;AACL,aAAO,KAAK,eAAe,IAAI,CAAC,CAAE,eAAiB;QACjD,MAAM;QACN,QAAQ,KAAK,iBAAiB;;;IAI3B;AACL,aAAO,KAAK,eAAe,OAAO,WAAS,MAAM,kBAAqB;;IAGjE;AACL,aAAO,KAAK,eAAe,OAAO,WAAS,CAAE,OAAM,kBAAqB;;IAGnE;AACL,WAAK,kBAAkB,QAAQ,CAAC,CAAE,MAAM;AACtC,aAAK,sBAAsB,MAAM,SAAO;;;IAIrC;AACL,WAAK,qBAAqB,QAAQ,CAAC,CAAE,MAAM,QAAQ;AACjD,cAAM,WAAS,AAAG,QAAO,UAAS;AAClC,kBAAS;AACT,aAAK,sBAAsB,MAAM;;;IAI9B,QAAQ,mBAA4B;AACzC,WAAK,eAAe,QAAQ;AAC1B,YAAI,oBAAoB,MAAM,OAAO;AACnC,gBAAM,IAAI,MAAM,mDAAmD,MAAM;;AAE3E,cAAM,OAAO;;AAEf,WAAK,UAAU;;IAGV;AACL,aAAO,IAAI,aACT,KAAK,eACF,IAAI,CAAC,CAAE,sBAAa,MAAM,KAAK,SAAO,aACtC,OAAO,CAAC,MAAM,QAAQ,KAAK,OAAO;;UAI5B,KAAK;AAChB,UAAI,wBAAwB;AAC1B,aAAK,eAAe;AACpB;;AAGF,YAAM,KAAK,YAAY;;UAGZ,YAAY;AACvB,UAAI,OAAO,OAAO,QAAQ;AACxB,cAAM,IAAI,MAAM,GAAG,KAAK;;AAG1B,YAAM,YAAY,MAAM,cAAc,KAAK,KAAK;AAChD,WAAK,kBAAkB;;UAGZ,aAAa;AACxB,UAAI,YAAY,OAAO,aAAa;AAClC,cAAM,IAAI,MAAM,GAAG,KAAK;;AAG1B,YAAM,CAAE,YAAa,KAAI;AAEzB,YAAM,CAAE,aAAa,gBAAiB,aAAa,UAAU,KAAK;AAElE,YAAM,uBAAuB,CAAC,cAAwB,QAAQ,IAC5D,UAAU,IAAI,eAAY,SAAS,WAAU,KAAK,SAAO,IAAI;AAE/D,YAAM,eAAc,AAAG,WAAG,qBAAqB;AAE/C,YAAM,WAAW,KAAK,MAAO,OAAM,SAAS,cAAc;AAC1D,YAAM,YAAY,MAAM,aAAY,UAAU;AAE9C,WAAK,kBAAkB;;IAGlB,kBAAkB;AACvB,YAAM,CACJ,eACA,UACE,KAAK,2BAA2B;AAEpC,WAAK,iBAAiB;AACtB,WAAK,UAAU;;IAGV,eAAe;AACpB,YAAM,CACJ,eACA,UACE,KAAK,cAAc;AAEvB,WAAK,iBAAiB;AACtB,WAAK,UAAU;;IAGT,qBAAqB;AAC3B,UAAI,CAAC,KAAK;AACR,cAAM,IAAI,MAAM;;AAGlB,YAAM,SAAS,UAAU,MAAM,KAAK,OAAO,CAAC,KAAoD;AAC9F,YAAI,CAAC,IAAI,QAAQ,eAAe;AAC9B,gBAAM,IAAI,MAAM,wDAAwD,sBAAqB;;AAG/F,eAAO,CAAE,KAAK,IAAI,SAAS,mBAAS,SAAS,IAAI,QAAQ;SACxD,CAAE,SAAS,KAAK;AAEnB,YAAM,CAAE,KAAK,WAAY;AACzB,UAAI,CAAC,OAAO,CAAC,WAAW,CAAE,KAAI,oBAAuB;AACnD,cAAM,IAAI,MAAM,8DAA8D;;AAGhF,aAAO,CAAE,KAAK;;;;;ACpJZ,kCACJ,GACA,QACA;AAEA,WAAO,AAAG,KAAK;AACb,UAAI,MAAM,AAAG,gBAAgB,GAAG,OAAO,kBAAkB,OAAO,kBAAkB,QAAQ;AAC1F,YAAM,AAAG,KAAI,KAAK,OAAO;AACzB,aAAO;;;;;ACNL,uBACJ,GACA,kBACA,eAAwB;AAExB,WAAO,AAAG,KAAK;AACb,YAAM,OAAO,AAAG,KACd,eACI,AAAG,KACH,AAAG,OAAO,GAAI,iBAAiB,MAAqB,SAAS,CAAC,GAAG,IAAI,SACrE,iBAAiB,MAAM,QAEvB,uBAAuB,GAAG,iBAAiB,OAA8B,CAAC,GAAG;AAEnF,YAAM,OAAO,uBAAuB,MAAM,iBAAiB,OAAO,CAAC,GAAG;AAEtE,YAAM,MAAM,AAAG,KAAK,AAAG,KAAI,MAAM;AACjC,YAAM,OAAO,uBAAuB,KAAK,iBAAiB,OAAO,CAAC,GAAG;AAErE,aAAO,AAAG,KAAK,AAAG,KAAI,MAAM,AAAG,KAAI,MAAM;;;AAIvC,uBACJ,GACA,kBACA,eAAwB,OACxB,cAAuB;AAEvB,WAAO,AAAG,KAAK;AACb,YAAM,OAAO,AAAG,KACd,eACI,AAAG,KACH,AAAG,OAAO,GAAI,iBAAiB,MAAqB,SAAS,cAAc,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,SAC5F,iBAAiB,MAAM,QAEvB,uBAAuB,GAAG,iBAAiB,OAA8B,cAAc,CAAC,GAAG,KAAK,CAAC,GAAG;AAE1G,YAAM,OAAO,uBAAuB,MAAM,iBAAiB,OAAO,CAAC,GAAG;AAEtE,YAAM,MAAM,AAAG,KAAK,AAAG,KAAI,MAAM;AACjC,YAAM,OAAO,uBAAuB,KAAK,iBAAiB,OAAO,CAAC,GAAG;AAErE,YAAM,MAAM,AAAG,KAAK,AAAG,KAAI,MAAM,AAAG,KAAI,MAAM;AAC9C,YAAM,OAAO,uBAAuB,KAAK,iBAAiB,OAAO,CAAC,GAAG;AAErE,aAAO,AAAG,KAAK,AAAG,KAAI,MAAM,AAAG,KAAI,MAAM,AAAG,KAAI,MAAM;;;;;AChDpD,qBACJ,GACA,QACA,UAA4B,QAC5B,WAAoB;AAEpB,WAAO,AAAG,KAAK;AACb,YAAM,MAAM,AAAG,KACb,AAAG,OAAO,GAAG,OAAO,SAAS,CAAC,GAAG,IAAI,UACrC,OAAO;AAGT,aAAO,WAAW,AAAG,KAAK,OAAO;;;;;ACd/B,sCAAqC,WAAgB;AACzD,WAAO,KAAK,WAAW,QAAQ;AAC7B,UAAI,CAAC,cAAc,KAAK,QAAM,GAAG,iBAAiB;AAChD,kBAAU,MAAM;;;;;;ACDhB,oCACJ,gBACA;AAGA,WAAO,SACL,YACA,aACA,YACA;AAGA,YAAM,UAAU,AAAG,SACjB,eAAe,aAAa,cAAc,aAAa,aACvD,CAAC,YAAY,YAAY,YAAY;AAEvC,YAAM,OAAO,AAAG,SAAS,eAAe;AAExC,oBAAc,KACZ,CAAE,WAAW,GAAG,yBAChB,CAAE,WAAW,GAAG;AAGlB,aAAO,CAAE,SAAS;;;;;ACtBhB,kCACJ,gBACA;AAGA,WAAO,SACL,YACA,aACA;AAGA,YAAM,aAAa,AAAG,SAAS,eAAe,aAAa,cAAc,CAAC,YAAY;AACtF,YAAM,UAAU,AAAG,SAAS,eAAe;AAE3C,oBAAc,KACZ,CAAE,WAAW,GAAG,yBAChB,CAAE,WAAW,GAAG;AAGlB,aAAO;QACL,SAAS;QACT,MAAM;;;;;;ACPZ;IACE,YACS,kBACA,kBACA;AAFA,WAAA,mBAAA;AACA,WAAA,mBAAA;AACA,WAAA,OAAA;;;;;ACnBL,6CACJ,gBACA;AAGA,WAAO,SAAS,YAAoB,aAAqB;AACvD,YAAM,mBAAmB,AAAG,SAAS,eAAe,IAAI,IAAI,aAAa,CAAC,GAAG,GAAG,YAAY;AAC5F,YAAM,mBAAmB,AAAG,SAAS,eAAe,aAAa,cAAc,CAAC,GAAG,GAAG,YAAY;AAClG,YAAM,OAAO,AAAG,SAAS,eAAe;AAExC,oBAAc,KACZ,CAAE,WAAW,GAAG,kCAChB,CAAE,WAAW,GAAG,kCAChB,CAAE,WAAW,GAAG;AAGlB,aAAO,IAAI,oBACT,kBACA,kBACA;;;AAMA,0CACJ;AAGA,WAAO,SAAU;AACf,YAAM,mBAAmB,mBAAgC,GAAG,2BAA2B;AACvF,YAAM,mBAAmB,mBAAgC,GAAG,2BAA2B;AACvF,YAAM,OAAO,mBAAgC,GAAG,eAAe;AAE/D,aAAO,IAAI,oBACT,kBACA,kBACA;;;;;ACtCA,qCAAoC,WAAgB;AAExD,WAAO,SAAa,cAAsB,WAAmB;AAC3D,YAAM,WAAS,UAAU;AAEzB,UAAI,CAAC,SAAS,UAAQ;AACpB,cAAM,IAAI,MAAM,sBAAsB,+BAA+B,4BAA4B;;AAGnG,oBAAc,KACZ,CAAE,cAAc,WAAW,cAAc;AAG3C,aAAO;;;;;AChBL,iCAAgC;AACpC,QAAI,mBAAmB;AAEvB,4BAAwB;AACtB,YAAM,MAAM,iBAAiB,MAAM,GAAG;AACtC,yBAAmB,iBAAiB,MAAM;AAC1C,aAAO;;AAGT;AACE,aAAO;;AAGT,WAAO;MACL;MACA;;;;;;;ACPE,6BAA4B,gBAAwC;AAExE,UAAM,oBAAoB,yBAAyB,gBAAgB;AACnE,UAAM,6BAA6B,kCAAkC,gBAAgB;AAErF,sCAAkC,YAAoB,aAAqB,cAAsB,eAAwB;AAEvH,YAAM,QAAQ,eACV,kBAAkB,YAAY,aAAa,GAAG,GAAG,wBACjD,2BAA2B,YAAY,aAAa,GAAG;AAC3D,YAAM,QAAQ,2BAA2B,aAAa,aAAa,GAAG;AACtE,YAAM,SAAQ,2BAA2B,aAAa,aAAa,GAAG;AAEtE,aAAO,CAAE,OAAO,OAAO;;AAGzB,sCAAkC,YAAoB,aAAqB,cAAsB,eAAwB;AAEvH,YAAM,CAAE,OAAO,OAAO,iBAAU,yBAAyB,YAAY,aAAa,cAAc;AAChG,YAAM,QAAQ,2BAA2B,aAAa,aAAa,GAAG;AAEtE,aAAO,CAAE,OAAO,OAAO,eAAO;;AAGhC,WAAO;MACL;MACA;;;;;AC7BE,yBAAwB;AAE5B,UAAM,gBAAgC;AAEtC,UAAM,CACJ,gBACA,uBACE,sBAAsB;AAE1B,UAAM,CACJ,4BACE,kBAAkB,gBAAgB;AAEtC,UAAM,SAAS,yBAAyB,GAAG,IAAI,UAAU;AACzD,UAAM,SAAS,yBAAyB,IAAI,IAAI;AAChD,UAAM,SAAS,yBAAyB,IAAI,KAAK;AACjD,UAAM,SAAS,yBAAyB,KAAK,KAAK;AAElD,QAAI,sBAAsB,WAAW;AACnC,YAAM,IAAI,MAAM,kCAAkC,sBAAsB;;AAG1E,WAAO;MACL;MACA,QAAQ,CAAE,QAAQ,QAAQ,QAAQ;;;;;ACzBhC,iCAAgC;AACpC,WAAO,SAAS;AACd,YAAM,UAAU,mBAAgC,GAAG,kBAAkB;AACrE,YAAM,OAAO,mBAAgC,GAAG,eAAe;AAE/D,aAAO,CAAE,SAAS;;;;;ACLhB,6BAA4B,WAAgB;AAEhD,UAAM,qBAAqB,0BAA0B,WAAW;AAEhE,UAAM,oBAAoB,sBAAsB;AAChD,UAAM,6BAA6B,+BAA+B;AAElE,sCAAkC,QAAgB,eAAwB;AACxE,YAAM,QAAQ,eACV,kBAAkB,GAAG,kBACrB,2BAA2B,GAAG;AAClC,YAAM,QAAQ,2BAA2B,GAAG;AAC5C,YAAM,SAAQ,2BAA2B,GAAG;AAE5C,aAAO,CAAE,OAAO,OAAO;;AAGzB,sCAAkC,QAAgB,eAAwB;AACxE,YAAM,QAAQ,eACV,kBAAkB,GAAG,kBACrB,2BAA2B,GAAG;AAClC,YAAM,QAAQ,2BAA2B,GAAG;AAC5C,YAAM,SAAQ,2BAA2B,GAAG;AAC5C,YAAM,QAAQ,2BAA2B,GAAG;AAE5C,aAAO,CAAE,OAAO,OAAO,eAAO;;AAGhC,WAAO;MACL;MACA;;;;;AC5BE,sCACJ;AAGA,UAAM,gBAAgC;AAEtC,UAAM,CACJ,4BACE,kBAAkB,WAAW;AAEjC,UAAM,SAAS;MACb,QAAQ,yBAAyB,UAAU;MAC3C,QAAQ,yBAAyB;MACjC,QAAQ,yBAAyB;MACjC,QAAQ,yBAAyB;;AAGnC,+BAA2B,WAAW;AAEtC,WAAO,CAAE,QAAQ;;;;ACzBnB,qCAU0C;IAExC;AACE,YAAM;;IAGD,aAAa;AAElB,YAAM,CAAE,UAAW;AAEnB,UAAI,CAAC;AACH,cAAM,IAAI,MAAM;;AAGlB,aAAO,AAAG,KAAK;AACb,cAAM,cAAc,MAAM,cAAc,KAAK;AAC7C,cAAM,UAAU,CAAC,SAAS,SAAS;AACnC,cAAM,aAAa,UAAU,aAAa,SAAS,IAAI,AAAG,OAAO;AAEjE,YAAI,MAAM,YAAY,YAAY,OAAO,QAAQ;AACjD,cAAM,YAAY,KAAK,OAAO;AAC9B,cAAM,YAAY,KAAK,OAAO;AAC9B,cAAM,YAAY,KAAK,OAAO;AAC9B,cAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AAEtC,eAAO;;;UAIE,QAAQ;AACnB,aAAO,KAAK,aAAa,MAAM,WAAW;;IAGlC;AACR,aAAO;;IAGC,2BAA2B;AACnC,aAAO,2BAA2B;;IAG1B,cAAc;AACtB,aAAO,cAAc;;;;;AChDnB,+BACJ,GACA;AAEA,WAAO,AAAG,KAAK,MACb,AAAG,KACD,AAAG,OAAO,GAAG,OAAO,UACpB,OAAO;;;;ACRP,0BAAwB,SAAuB,YAAoB;AAEvE,UAAM,gBAAgC;AAEtC,UAAM,CACJ,gBACA,uBACE,sBAAsB;AAE1B,UAAM,kBAAkB,uBAAuB,gBAAgB;AAE/D,UAAM,KAAK,gBAAgB,YAAY,aAAa;AAEpD,QAAI,sBAAsB,WAAW;AACnC,YAAM,IAAI,MAAM,kCAAkC,sBAAsB;;AAG1E,WAAO;MACL;MACA,QAAQ,CAAE;;;;;ACjBR,uCACJ;AAGA,UAAM,gBAAgC;AAEtC,UAAM,qBAAqB,0BAA0B,WAAW;AAEhE,6BAAyB;AACvB,YAAM,UAAU,mBAAgC,GAAG,kBAAkB;AACrE,YAAM,OAAO,mBAAgC,GAAG,eAAe;AAC/D,aAAO,CAAE,SAAS;;AAGpB,UAAM,SAAS;MACb,IAAI,gBAAgB;;AAGtB,+BAA2B,WAAW;AAEtC,WAAO,CAAE,QAAQ;;;;ACvBb,8BAA6B;AAEjC,UAAM,sBAAyC;AAC/C,UAAM,gBAAmC;AAEzC,WAAO,KAAK,WAAW,QAAQ;AAC7B,YAAM,MAAM,IAAI,WAAW,QAAQ,gBAAgB;AACnD,UAAI,OAAO,UAAU;;AAGvB,WAAO,CAAE,qBAAqB;;;;ACZhC,8BAkBU;IAIR,YAAY,OAAe;AACzB,YAAM;AACN,WAAK,wBAAwB;;QAGpB;AACT,aAAO,KAAK;;IAOP,OAAO;AAEZ,YAAM,CAAE,UAAW;AAEnB,UAAI,CAAC;AACH,cAAM,IAAI,MAAM,GAAG,KAAK;;AAG1B,aAAO,AAAG,KAAK;AACb,cAAM,qBAAqB,iBAAiB,WACxC,KAAK,qBAAqB,aAAa,SACvC;AACJ,eAAO,oBAAoB,mBAAmB,KAAK,mBAAmB,MAAM,IAAI,KAAK,OAAO;;;IAIzF,QAAQ,mBAA4B;AACzC,WAAK,qBAAqB,QAAQ;AAClC,YAAM,QAAQ;;IAGT,qBAAqB;AAC1B,YAAM,CAAE,QAAQ,iBAAkB,KAAK,wBAAwB;AAC/D,WAAK,UAAU;AACf,WAAK,iBAAiB;;IAGjB,wBAAwB;AAC7B,aAAO,eAAc,SAAS,KAAK,2BAA2B,KAAK;;IAG3D,2BAA2B;AAEnC,YAAM,CAAE,qBAAqB,iBAAkB,mBAAmB;AAElE,WAAK,qBAAqB,kBAAkB;AAE5C,aAAO,4BAA2B;;IAG1B,cAAc;AAEtB,YAAM,MAAM,KAAK;AACjB,YAAM,OAAO,KAAK;AAClB,YAAM,uBAAwB,OAAO,MAAQ;AAE7C,YAAM,0BAA0B,QAAQ,MAAM,GAAG,QAAQ,SAAS;AAClE,YAAM,oBAAoB,QAAQ,MAAM,QAAQ,SAAS;AAEzD,WAAK,qBAAqB,eAAe;AACzC,aAAO,KAAK,wBAAwB;;;;;ACrFjC,QAAM,yBAAyB,CAAC,WAAW,SAAS,OAAO,SAAS,WAAW,aAAa;AAAnG;IAWE,YAAY;AACV,UAAI,cAAc,WAAW;AAC3B,cAAM,IAAI,MAAM,8EAA8E,cAAc;;AAG9G,6BAAuB,QAAQ,CAAC,YAAY;AAC1C,aAAK,cAAc,cAAc;;;IAIrC;AACE,aAAO,uBACJ,IAAI,gBAAe,EAAE,YAAY,aAAa,KAAK,eACnD,KAAK,CAAC,IAAI,OAAO,GAAG,cAAc,GAAG;;;;;ACxB5C,kCAQuC;IAErC,YAAY,uBAA6C,IAAI;AAC3D,YAAM,qBAAqB;;IAGtB,aAAa;AAClB,aAAO,AAAG,KAAK,MAAM,AAAG,QAAQ,KAAK,OAAO;;UAGjC,QAAQ;AACnB,aAAO,KAAK,aAAa,MAAM,WAAW;;UAG/B,mBAAmB;AAC9B,YAAM,WAAW,MAAM,WAAW;AAClC,YAAM,MAAM,MAAM,KAAK,aAAa;AACpC,YAAM,sBAAsB,MAAM,QAAQ,IAAI,AAAG,QAAQ,KAAK,IAAI,OAAM;AACtE,cAAM,OAAO,MAAM,EAAE;AACrB,UAAE;AACF,eAAO;;AAET,UAAI;AAEJ,YAAM,qBAAqB,oBACxB,IAAI,kBAAgB,IAAI,gBAAgB;AAE3C,aAAO,SAAS,eACZ,qBACA,mBAAmB;;IAGf;AACR,aAAO;;IAGC;AACR,aAAO;;IAGC;AACR,aAAO;;;;;;;AC3CL,iCAAgC;AACpC,WAAO,IAAI,0BAA0B;;AAGjC,qCAGJ,WACA;AAGA,UAAM,YAAY,CAAE;AACpB,WAAO,OAAO,OAAO,IAAI,WAAW;;;;ACThC,+BACJ,WACA,iBACA,gBAAgB,KAChB;AAEA,UAAM,uBAAuB,MAAM,QAAQ,mBAAmB,kBAAkB,CAAC;AAEjF,yBAAqB,QAAQ;AAC3B,YAAM,OAAO,aAAa,kBACtB,IACC,sBAAsB,KAAK,EAAE,cAAc;AAChD,UAAI,CAAC;AACH,cAAM,IAAI,MAAM;;AAGlB,YAAM,SAAS,KAAK;AACpB,YAAM,mBAAmB,OAAO,OAAO,WAAQ,MAAK,cAAc;AAElE,YAAM,SAAS,oBAAoB,KAC/B,EAAE,UAAU,IAAI,aACf,mBAAmB,IAAI,MAAM,GAAG;AAErC,YAAM,gBAAgB,IAAI,cACxB,iBAAiB,IAAI,WAAQ,GAAG,MAAK,eAAe,OAAM,MAAK,kBAC/D;AAEF,oBAAc,KAAK;;;;;ACtBjB,+BAA8B;AAClC,WAAO,oBAAoB,QACtB,IAAI,wBAAwB,iBAC5B,IAAI,iCAAiC,iBACrC,IAAI,0BAA0B;;AAG/B,mCAIJ,WACA;AAGA,UAAM,CAAE,KAAK,SAAU,UAAU;AACjC,UAAM,YAAY,mBAAmB,QAAwB,MAAM,GAAG,MAAM;AAE5E,UAAM,OAAO,UAAU;AACvB,UAAM,CAAE,aAAc,UAAU;AAChC,UAAM,cAAc,IAAI,cAAc,UAAU,UAAU,OAAO,KAAK,QAAQ,UAAU,YAAY;AAEpG,UAAM,YAAY;MAChB;MACA;MACA;;AAGF,WAAO,OAAO,OAAO,IAAI,WAAW;;;;ACzCtC;IAwBE,YAAY,UAAqC;AAC/C,YAAM,CAAE,YAAY,MAAM,aAAa,MAAM,WAAW,WAAW,WAAW,cAAe;AAC7F,WAAK,YAAY;AACjB,WAAK,aAAa;AAClB,WAAK,YAAY,aAAa;AAC9B,WAAK,YAAY,aAAa;AAC9B,WAAK,YAAY,aAAa;AAC9B,WAAK,aAAa,cAAc;;;AA/BpC;IAuCE,YACE,eACA,UAAqC;AAErC,WAAK,gBAAgB;AACrB,WAAK,UAAU,IAAI,yBAAyB;;IAG9C,KAAK;AACH,YAAM,MAAM,oBAAoB;AAEhC,YAAM,CAAE,WAAW,YAAY,WAAW,WAAW,WAAW,cAAe,KAAK;AAEpF,UAAI,aAAa,KAAK,yBAAyB;AAC7C,YAAI,cAAc;AAClB,YAAI,YAAY;AAChB,oBAAY,KAAK,KAAK,cAAc;AACpC,oBAAY,KAAK,KAAK,cAAc;AACpC,oBAAY,KAAK,KAAK,cAAc;AACpC,oBAAY,KAAK,KAAK,cAAc;AACpC,oBAAY,KAAK,KAAK,cAAc,cAAc;AAClD,oBAAY,KAAK,KAAK,cAAc,eAAe;AACnD,oBAAY,KAAK,KAAK,cAAc,YAAY;;AAGlD,UAAI;AACF,YAAI,cAAc;AAClB,YAAI,YAAY;AAEhB,cAAM,YAAY,CAAC;AACjB,cAAI;AACJ,cAAI,IAAI,GAAG,GAAG,GAAG,GAAG,WAAW,GAAG,IAAI,KAAK;AAC3C,cAAI;;AAEN,aAAK,cAAc,UAAU,QAAQ;;;;AAOrC,6BACJ,WACA;AAEA,UAAM,qBAAqB,MAAM,QAAQ,iBAAiB,gBAAgB,CAAC;AAC3E,uBAAmB,QAAQ;AACzB,YAAM,YAAY,aAAa,gBAC3B,IACC,oBAAoB,KAAK,EAAE,YAAY;AAC5C,UAAI,CAAC;AACH,cAAM,IAAI,MAAM;;AAGlB,UAAI,kBAAkB,WAAW,KAAK;;;;;AC9F1C;;;;;;;;;;;;;;;;ACKA,8BAA2B,gBAAwC;AAEjE,UAAM,oBAAoB,yBAAyB,gBAAgB;AACnE,UAAM,6BAA6B,kCAAkC,gBAAgB;AAErF,yCAAqC,YAAoB,aAAqB;AAE5E,YAAM,kBAAkB,2BAA2B,YAAY,aAAa,GAAG;AAC/E,YAAM,kBAAkB,2BAA2B,aAAa,aAAa,GAAG;AAChF,YAAM,iBAAiB,kBAAkB,YAAY,aAAa,GAAG,GAAG;AAExE,aAAO,CAAE,iBAAiB,iBAAiB;;AAG7C,oCAAgC,UAAkB;AAEhD,YAAM,kBAAkB,2BAA2B,UAAU,UAAU,GAAG;AAC1E,YAAM,kBAAkB,2BAA2B,UAAU,UAAU,GAAG;AAC1E,YAAM,kBAAkB,2BAA2B,UAAU,UAAU,GAAG;AAE1E,aAAO,CAAE,iBAAiB,iBAAiB;;AAG7C,WAAO;MACL;MACA;MACA;MACA;;;AAKE,0BAAwB,SAAuB;AAEnD,UAAM,gBAAgC;AAEtC,UAAM,CACJ,gBACA,uBACE,sBAAsB;AAE1B,UAAM,CACJ,mBACA,4BACA,6BACA,0BACE,mBAAkB,gBAAgB;AAEtC,UAAM,qBAAqB,kBAAkB,GAAG,IAAI,GAAG;AACvD,UAAM,+BAA+B,4BAA4B,IAAI,IAAI;AACzE,UAAM,+BAA+B,4BAA4B,IAAI,KAAK;AAE1E,UAAM,aAAa;MACjB,SAAS;MACT,mBAAmB;MACnB,mBAAmB;;AAGrB,UAAM,cAAc;AACpB,WAAM,eAAe,GAAG,GAAG,QAAQ,CAAC;AAClC,kBAAY,cAAc,SAAS,uBAAuB,KAAK,0BAA0B;;AAG3F,UAAM,4BAA4B,4BAA4B,KAAK,KAAK;AACxE,UAAM,2BAA2B,2BAA2B,KAAK,KAAK;AAEtE,UAAM,YAAY;MAChB,iBAAiB;MACjB,gBAAgB;;AAGlB,QAAI,sBAAsB,WAAW;AACnC,YAAM,IAAI,MAAM,kCAAkC,sBAAsB;;AAG1E,WAAO;MACL;MACA,QAAQ,CAAE,YAAY,aAAa;;;;;ACtEvC,8BAA2B,WAAgB;AAEzC,UAAM,qBAAqB,0BAA0B,WAAW;AAEhE,UAAM,oBAAoB,sBAAsB;AAChD,UAAM,6BAA6B,+BAA+B;AAElE,yCAAqC;AAEnC,YAAM,kBAAkB,2BAA2B,GAAG;AACtD,YAAM,kBAAkB,2BAA2B,GAAG;AACtD,YAAM,iBAAiB,kBAAkB,GAAG;AAE5C,aAAO,CAAE,iBAAiB,iBAAiB;;AAG7C,oCAAgC;AAE9B,YAAM,kBAAkB,2BAA2B,GAAG;AACtD,YAAM,kBAAkB,2BAA2B,GAAG;AACtD,YAAM,kBAAkB,2BAA2B,GAAG;AAEtD,aAAO,CAAE,iBAAiB,iBAAiB;;AAG7C,WAAO;MACL;MACA;MACA;MACA;;;AAIE,uCACJ,WACA;AAGA,UAAM,gBAAgC;AAEtC,UAAM,CACJ,mBACA,4BACA,6BACA,0BACE,mBAAkB,WAAW;AAEjC,UAAM,qBAAqB,kBAAkB;AAC7C,UAAM,+BAA+B,4BAA4B;AACjE,UAAM,+BAA+B,4BAA4B;AAEjE,UAAM,aAAa;MACjB,SAAS;MACT,mBAAmB;MACnB,mBAAmB;;AAGrB,UAAM,cAAc;AACpB,WAAM,eAAe,GAAG,GAAG,QAAQ,CAAC;AAClC,kBAAY,cAAc,SAAS,uBAAuB,0BAA0B;;AAGtF,UAAM,4BAA4B,4BAA4B;AAC9D,UAAM,2BAA2B,2BAA2B;AAE5D,UAAM,YAAY;MAChB,iBAAiB;MACjB,gBAAgB;;AAGlB,+BAA2B,WAAW;AAEtC,WAAO,CAAE,QAAQ,CAAE,YAAY,aAAa,YAAa;;;;ACzE3D,gBAAc,GAAgB,QAAoB;AAChD,WAAO,AAAG,KAAI,AAAG,OAAO,GAAG,OAAO,SAAS,QAAQ,SAAS,OAAO;;AAGrE,0BAAwB,GAAgB,QAA8B,kBAA2B;AAC/F,QAAI,MAAM,kBAAkB,AAAG,KAAK,KAAK;AACzC,UAAM,uBAAuB,KAAK,OAAO,iBAAiB,CAAC,GAAG;AAC9D,UAAM,uBAAuB,AAAG,KAAK,MAAO,OAAO,iBAAiB,CAAC,GAAG;AACxE,UAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,UAAM,AAAG,KAAI,KAAK,KAAK,GAAI,OAAO,gBAAgB,CAAC,GAAG;AACtD,WAAO;;AAGT,qBAAmB,GAAgB;AACjC,QAAI,MAAM,uBAAuB,AAAG,KAAK,IAAI,OAAO,iBAAiB,CAAC,GAAG;AACzE,UAAM,uBAAuB,AAAG,KAAK,MAAM,OAAO,iBAAiB,CAAC,GAAG;AACvE,UAAM,uBAAuB,AAAG,KAAK,MAAM,OAAO,iBAAiB,CAAC,GAAG;AACvE,UAAM,AAAG,KAAI,KAAK;AAClB,WAAO;;AA7BT,6BAgCkC;IAIhC,YAAY;AACV,YAAM;AACN,WAAK,iBAAiB;;IAGjB,aAAa;AAElB,YAAM,CAAE,UAAW;AAEnB,UAAI,CAAC;AACH,cAAM,IAAI,MAAM;;AAGlB,aAAO,AAAG,KAAK;AACb,cAAM,cAAc,MAAM,cAAc,KAAK;AAC7C,cAAM,UAAU,CAAC,SAAS,SAAS;AACnC,cAAM,aAAa,UAAU,aAAa,SAAS,IAAI,AAAG,OAAO;AAEjE,YAAI,MAAM,AAAG,KAAK,KAAK,YAAY,OAAO,WAAW,SAAS,CAAC,GAAG;AAClE,cAAM,eAAe,KAAK,OAAO,WAAW,mBAAmB;AAC/D,cAAM,eAAe,KAAK,OAAO,WAAW;AAE5C,eAAM,KAAK,gBAAgB,GAAG,GAAG,QAAQ,CAAC;AACxC,gBAAM,UAAU,KAAK,OAAO,YAAY,cAAc;;AAGxD,cAAM,eAAe,KAAK,OAAO,UAAU;AAC3C,cAAM,AAAG,KAAK,uBAAuB,KAAK,OAAO,UAAU,gBAAgB,CAAC,GAAG;AAC/E,eAAO;;;UAIE,QAAQ;AACnB,aAAO,KAAK,aAAa,MAAM,WAAW;;IAGlC;AACR,aAAO;;IAGC,2BAA2B;AACnC,aAAO,4BAA2B,WAAW,KAAK;;IAG1C,cAAc;AACtB,aAAO,eAAc,SAAS,KAAK;;;;;AC9EjC,0BAAwB;AAE5B,UAAM,gBAAgC;AAEtC,UAAM,CACJ,gBACA,uBACE,sBAAsB;AAE1B,UAAM,kBAAkB,uBAAuB,gBAAgB;AAE/D,UAAM,MAAM,gBAAgB,KAAK,GAAG;AACpC,UAAM,SAAS,gBAAgB,KAAK,GAAG;AAEvC,QAAI,sBAAsB,WAAW;AACnC,YAAM,IAAI,MAAM,kCAAkC,sBAAsB;;AAG1E,WAAO;MACL;MACA,QAAQ,CAAE,IAAI,CAAE,KAAK;;;;;AClBnB,uCACJ;AAGA,UAAM,gBAAgC;AAEtC,UAAM,qBAAqB,0BAA0B,WAAW;AAEhE,6BAAyB;AACvB,YAAM,UAAU,mBAAgC,GAAG,kBAAkB;AACrE,YAAM,OAAO,mBAAgC,GAAG,eAAe;AAC/D,aAAO,CAAE,SAAS;;AAGpB,UAAM,SAAS;MACb,IAAI;QACF,KAAK,gBAAgB;QACrB,QAAQ,gBAAgB;;;AAI5B,+BAA2B,WAAW;AAEtC,WAAO,CAAE,QAAQ;;;;AClBnB,MAAY;AAAZ,EAAA,UAAY;AACV,YAAA,YAAA;AACA,YAAA,UAAA;KAFU,UAAA,UAAM;;;ACVlB,6BAWkC;IAIhC,YAAY,uBAAqC,IAAI,aAAa;AAChE,YAAM;AACN,WAAK,wBAAwB;;QAGpB;AACT,aAAO,KAAK;;IAGP,OAAO;AAEZ,YAAM,CAAE,UAAW;AAEnB,UAAI,CAAC;AACH,cAAM,IAAI,MAAM,GAAG,KAAK;;AAG1B,aAAO,AAAG,KAAK;AACb,cAAM,qBAAqB,iBAAiB,WACxC,KAAK,qBAAqB,aAAa,SACvC;AAEJ,cAAM,SAAS,AAAG,QAAQ,oBAAoB,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,KAAK,mBAAmB,MAAM,IAAI;AACzG,cAAM,MAAM,oBAAoB,QAAQ,OAAO,GAAG,KAAK;AACvD,cAAM,SAAS,oBAAoB,QAAQ,OAAO,GAAG;AACrD,eAAO,CAAE,KAAK;;;IAIX,aAAa;AAClB,aAAO,AAAG,KAAK;AACb,cAAM,CAAE,KAAK,UAAW,KAAK,OAAO;AACpC,eAAO,CAAE,KAAK,QAAQ,AAAG,QAAQ;;;UAIxB,QAAQ;AACnB,aAAO,KAAK,aAAa,MAAM,WAAW;;UAG/B,oBAAoB;AAC/B,YAAM,WAAW,MAAM,WAAW;AAClC,YAAM,MAAM,MAAM,KAAK,aAAa;AAEpC,YAAM,OAAO,AAAG,QAAQ,IAAI;AAC5B,YAAM,UAAU,AAAG,QAAQ,IAAI;AAC/B,YAAM,sBAAsB,KAAK,IAAI,CAAC,WAAW,MAAO;QACtD;QACA,cAAc,QAAQ;;AAGxB,YAAM,qBAAqB,MAAM,QAAQ,IACvC,oBAAoB,IAAI,OAAO,CAAE,WAAW;AAC1C,cAAM,MAAO,OAAM,UAAU,QAAQ;AACrC,cAAM,WAAY,OAAM,aAAa,QAAQ;AAC7C,cAAM,SAAS,WAAW;AAC1B,cAAM,SAAS,SAAS,OAAO,OAAO,OAAO;AAC7C,cAAM,oBAAoB,SAAS,WAAY,IAAI;AAEnD,kBAAU;AACV,qBAAa;AACb,eAAO,CAAE,KAAK,QAAQ;;AAG1B,UAAI,IAAI;AACR,UAAI,OAAO;AAEX,aAAO,SAAS,eACZ,qBACA,mBAAmB;;IAGf;AACR,aAAO;;IAGF,QAAQ,mBAA4B;AACzC,WAAK,qBAAqB,QAAQ;AAClC,YAAM,QAAQ;;IAGT,qBAAqB;AAC1B,YAAM,CAAE,QAAQ,iBAAkB,KAAK,wBAAwB;AAC/D,WAAK,UAAU;AACf,WAAK,iBAAiB;;IAGjB,wBAAwB;AAC7B,aAAO,eAAc;;IAGb,2BAA2B;AAEnC,YAAM,CAAE,qBAAqB,iBAAkB,mBAAmB;AAElE,WAAK,qBAAqB,kBAAkB;AAE5C,aAAO,4BAA2B;;IAG1B,cAAc;AAEtB,YAAM,uBAAwB,MAAM,IAAI,IAAM,OAAM,IAAI;AAExD,YAAM,0BAA0B,QAAQ,MAAM,GAAG,QAAQ,SAAS;AAClE,YAAM,oBAAoB,QAAQ,MAAM,QAAQ,SAAS;AAEzD,WAAK,qBAAqB,eAAe;AACzC,aAAO,KAAK,wBAAwB;;;;;;;AC3HxC,sCAYU;IAED,YAAY,QAAqB,WAAmB;AAEzD,YAAM,kBAAkB,mBAAmB,IAAI,CAAC,CAAE,OAAO;AACvD,cAAM,SAAQ,YAAY,KAAK,IAAI,QAAQ;AAC3C,eAAO;UACL,OAAO,QAAQ;UACf,QAAQ,SAAS;;;AAIrB,YAAM,YAAY,gBAAgB;AAElC,aAAO,AAAG,KAAK;AACb,cAAM,0BAA0B,CAAC,OAAe,UAC9C,AAAG,MAAM;UACP,AAAG,KAAK,CAAC,KAAK;UACd,AAAG,KAAK,CAAC,KAAK;WACb,GAAG,KAAK,GAAG,KAAK;AAErB,cAAM,aAAa,CAAC,UAAkB;AACpC,gBAAM,CAAE,OAAO,UAAW,gBAAgB;AAC1C,iBAAO,KAAK,OAAO,UAAU,KAAK,IAAI,QAAQ,UAAU,IAAI;;AAE9D,cAAM,cAAc,CAAC,aAAqB,WAAW,UAAU,CAAC,GAAG,MAAM,IAAI;AAC7E,cAAM,cAAc,CAAC,aAAqB,WAAW,UAAU,CAAC,GAAG,MAAM,IAAI;AAE7E,cAAM,kBAAkB,OACrB,IAAI,AAAG,KAAK,CAAC,WAAW,MAAM,YAC9B,IAAI,AAAG,MAAM,MAAM,KAAK,MAAM,YAAY,CAAC,GAAG,aAC7C,wBACE,YAAY,WACZ,YAAY,cAGf,IAAI,AAAG,MAAM,MAAM,KAAK,MAAM,YAAY,CAAC,GAAG,aAC7C,wBACE,gBAAgB,UAAU,OAC1B,gBAAgB,UAAU;AAIhC,eAAO;;;IAIJ,aAAa;AAClB,aAAO,AAAG,KAAK;AACb,cAAM,MAAM,KAAK,OAAO;AACxB,eAAO,KAAK,YACV,KACA,MAAM,WACN,MAAM,gBAAgB,IAAI,CAAC,CAAC,QAAQ,WAAY,EAAE,QAAQ;;;UAKnD,QAAQ;AACnB,aAAO,KAAK,aAAa,MAAM,WAAW;;UAG/B,gBAAgB;AAC3B,YAAM,WAAW,MAAM,WAAW;AAClC,YAAM,kBAAkB,AAAG,KACzB,MAAM,AAAG,QAAQ,KAAK,aAAa;AAGrC,YAAM,oBAAoB,MAAM,QAAQ,IAAI,gBAAgB,IAC1D,OAAO,gBAAgB;AACrB,cAAM,iBAAiB,MAAM,KAAK,MAAM,eAAe;AACvD,cAAM,UAAU,eAAe,OAAO,CAAC,GAAG,MAAM,OAAO;AACvD,cAAM,UAAU,eAAe,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO;AAExD,eAAO,IAAI,gBACT,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,MAAM,IAAI,MAAM,QAAQ,IAAI,QAAQ,MAC9D;UACE,QAAQ,SAAS,eAAe;UAChC,OAAQ,SAAS,cAAc;;;AAMvC,sBAAgB,QAAQ,OAAK,EAAE;AAE/B,aAAO,SAAS,eACZ,oBACA,kBAAkB;;IAGd;AACR,aAAO;;;;;ACxGX,kCAIuC;IAErC,YAAY,uBAA6C,IAAI;AAC3D,YAAM,qBAAqB;;IAGnB;AACR,aAAO;;IAGC;AACR,aAAO;;;;;ACTL,0CACJ;AAGA,UAAM,gBAAgC;AAEtC,UAAM,CACJ,4BACE,kBAAkB,WAAW;AAEjC,UAAM,SAAS;MACb,QAAQ,yBAAyB,UAAU;MAC3C,QAAQ,yBAAyB;MACjC,QAAQ,yBAAyB;;AAGnC,+BAA2B,WAAW;AAEtC,WAAO,CAAE,QAAQ;;;;AClBb,6BAA4B;AAEhC,UAAM,gBAAgC;AAEtC,UAAM,CACJ,gBACA,uBACE,sBAAsB;AAE1B,UAAM,CACJ,4BACE,kBAAkB,gBAAgB;AAEtC,UAAM,SAAS,yBAAyB,GAAG,IAAI,UAAU;AACzD,UAAM,SAAS,yBAAyB,IAAI,IAAI;AAChD,UAAM,SAAS,yBAAyB,IAAI,KAAK;AAEjD,QAAI,sBAAsB,WAAW;AACnC,YAAM,IAAI,MAAM,kCAAkC,sBAAsB;;AAG1E,WAAO;MACL;MACA,QAAQ,CAAE,QAAQ,QAAQ;;;;;AC7B9B,yCAU8C;IAE5C;AACE,YAAM;;IAGD,aAAa;AAElB,YAAM,CAAE,UAAW;AAEnB,UAAI,CAAC;AACH,cAAM,IAAI,MAAM;;AAGlB,aAAO,AAAG,KAAK;AACb,cAAM,cAAc,MAAM,cAAc,KAAK;AAC7C,cAAM,UAAU,CAAC,SAAS,SAAS;AACnC,cAAM,aAAa,UAAU,aAAa,SAAS,IAAI,AAAG,OAAO;AAEjE,YAAI,MAAM,YAAY,YAAY,OAAO,QAAQ;AACjD,cAAM,YAAY,KAAK,OAAO;AAC9B,cAAM,YAAY,KAAK,OAAO;AAC9B,cAAM,AAAG,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI;AAExC,eAAO;;;UAIE,QAAQ;AACnB,aAAO,KAAK,aAAa,MAAM,WAAW;;IAGlC;AACR,aAAO;;IAGC,2BAA2B;AACnC,aAAO,+BAA+B;;IAG9B,cAAc;AACtB,aAAO,kBAAkB;;;;;ACnD7B,sCAI2C;IAEzC,YAAY,uBAAiD,IAAI;AAC/D,YAAM,yBAAyB;;IAGvB;AACR,aAAO;;IAGC;AACR,aAAO;;;;;ACfX,gCAKqC;;;;ACD/B,iBAAgB,GAAgB;AACpC,WAAO,AAAG,KAAI,AAAG,IAAI,GAAG,OAAO,UAAU,OAAO;;;;ACClD,sBACE,GACA,QACA,SACA,UACA,UAA4B;AAE5B,UAAM,CAAE,SAAS,QAAS,OAAO;AAEjC,QAAI,MAAM,AAAG,OAAO,GAAG,SAAS,SAAS;AACzC,UAAM,AAAG,KAAI,KAAK;AAClB,UAAM,MAAM,KAAK,OAAO;AACxB,WAAO,WAAW,AAAG,KAAK,OAAO;;AAG7B,iBAAe,GAAgB;AACnC,WAAO,WAAU,GAAG,QAAQ,CAAC,GAAG,IAAI;;AAGhC,sBAAqB,GAAgB;AACzC,WAAO,WAAU,GAAG,QAAQ,CAAC,GAAG,IAAI;;AAGhC,oBAAmB,GAAgB;AACvC,WAAO,WAAU,GAAG,QAAQ,CAAC,GAAG,IAAI,MAAM;;;;ACxB5C,8BAA2B,gBAAwC;AAEjE,iCAA6B,iBAAyB,YAAoB;AACxE,YAAM,UAAU,eAAe;AAC/B,YAAM,QAAQ,QAAQ,SAAU,cAAa,aAAa;AAE1D,UAAI,QAAQ;AACV,cAAM,IAAI,MAAM,+BAA+B,0BAA0B,QAAQ,uBAAuB,2BAA2B;;AAGrI,aAAO,AAAG,KACR,MAAM,AAAG,UACP,AAAG,SAAS,SAAS,CAAC,YAAY,OAAO,YAAY,cACrD,CAAC,GAAG,GAAG,GAAG;;AAKhB,+BACE,iBACA,YACA,YACA;AAGA,YAAM,UAAU,oBAAoB,iBAAiB,YAAY;AACjE,YAAM,OAAO,AAAG,SAAS,eAAe;AAExC,oBAAc,KACZ,CAAE,WAAW,GAAG,yBAChB,CAAE,WAAW,GAAG;AAGlB,aAAO,CAAE,SAAS;;AAGpB,qCAAiC,YAAoB;AAEnD,YAAM,UAAU,AAAG,SAAS,eAAe;AAC3C,YAAM,SAAS,AAAG,SAAS,eAAe;AAE1C,oBAAc,KACZ,CAAE,WAAW,GAAG,yBAChB,CAAE,WAAW,GAAG;AAGlB,aAAO;QACL;QACA;;;AAIJ,oCACE,iBACA,YACA,YACA;AAGA,YAAM,QAAO,kBAAkB,iBAAiB,YAAY,YAAY,GAAG;AAC3E,YAAM,SAAQ,wBAAwB,YAAY,GAAG;AAErD,aAAO,CAAE,aAAM;;AAGjB,wCACE,iBACA,YACA,YACA,cACA,SAAkB;AAGlB,YAAM,QAAQ,uBAAwB,UAAS,MAAM,KAAK,iBAAiB,YAAY,YAAY,GAAG;AACtG,YAAM,SAAQ,uBAAuB,iBAAiB,YAAY,YAAY,GAAG;AAEjF,aAAO,CAAE,OAAO;;AAGlB,WAAO;MACL;MACA;;;AAKE,0BAAwB;AAE5B,UAAM,CACJ,gBACA,uBACE,sBAAsB;AAE1B,UAAM,gBAAgC;AAEtC,UAAM,CACJ,wBACA,8BACE,mBAAkB,gBAAgB;AAEtC,UAAM,cAAc,uBAAuB,MAAM,IAAI,GAAG;AACxD,UAAM,WAAW,2BAA2B,MAAM,IAAI,GAAG;AACzD,UAAM,WAAW,2BAA2B,MAAM,IAAI,GAAG;AACzD,UAAM,WAAW,2BAA2B,MAAM,IAAI,GAAG;AAEzD,UAAM,cAAc,2BAA2B,OAAO,IAAI,GAAG,eAAe;AAC5E,UAAM,WAAW,2BAA2B,OAAO,IAAI,GAAG;AAC1D,UAAM,WAAW,2BAA2B,OAAO,IAAI,GAAG;AAC1D,UAAM,WAAW,2BAA2B,OAAO,IAAI,GAAG;AAE1D,UAAM,eAAe,2BAA2B,QAAQ,KAAK,GAAG,gBAAgB;AAChF,UAAM,YAAY,2BAA2B,QAAQ,KAAK,GAAG;AAC7D,UAAM,YAAY,2BAA2B,QAAQ,KAAK,GAAG;AAE7D,UAAM,eAAe,2BAA2B,QAAQ,KAAK,GAAG,gBAAgB;AAChF,UAAM,YAAY,2BAA2B,QAAQ,KAAK,GAAG;AAC7D,UAAM,YAAY,2BAA2B,QAAQ,KAAK,GAAG;AAC7D,UAAM,mBAAmB,2BAA2B,QAAQ,KAAK,GAAG;AAEpE,UAAM,KAAK,AAAG,KACZ,MAAM,AAAG,UAAU,AAAG,SAAS,eAAe,MAAM,MAAM,CAAC,KAAK,OAAO,CAAC,GAAG;AAE7E,kBAAc,KAAK,CAAE,WAAW;AAEhC,QAAI,sBAAsB,WAAW;AACnC,YAAM,IAAI,MAAM,kCAAkC,sBAAsB;;AAG1E,UAAM,SAAS;MACb;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;AAGF,WAAO,CAAE,QAAQ;;;;ACnJnB,8BAA2B,WAAgB;AAEzC,UAAM,qBAAqB,0BAA0B,WAAW;AAEhE,qCAAiC;AAE/B,YAAM,UAAU,mBAAgC,GAAG,wBAAwB;AAC3E,YAAM,SAAS,mBAAgC,GAAG,uBAAuB;AAEzE,aAAO,CAAE,SAAS;;AAGpB,oCAAgC;AAE9B,YAAM,UAAU,mBAAgC,GAAG,uBAAuB;AAC1E,YAAM,OAAO,mBAAgC,GAAG,oBAAoB;AACpE,YAAM,SAAQ,wBAAwB;AAEtC,aAAO,CAAE,MAAM,CAAE,SAAS,OAAQ;;AAGpC,wCAAoC;AAClC,aAAO;QACL,OAAO,uBAAuB,GAAG;QACjC,OAAO,uBAAuB,GAAG;;;AAIrC,WAAO;MACL;MACA;;;AAKE,uCACJ;AAGA,UAAM,gBAAgC;AAEtC,UAAM,CACJ,wBACA,8BACE,mBAAkB,WAAW;AAEjC,UAAM,cAAc,uBAAuB;AAC3C,UAAM,WAAW,2BAA2B;AAC5C,UAAM,WAAW,2BAA2B;AAC5C,UAAM,WAAW,2BAA2B;AAE5C,UAAM,cAAc,2BAA2B;AAC/C,UAAM,WAAW,2BAA2B;AAC5C,UAAM,WAAW,2BAA2B;AAC5C,UAAM,WAAW,2BAA2B;AAE5C,UAAM,eAAe,2BAA2B;AAChD,UAAM,YAAY,2BAA2B;AAC7C,UAAM,YAAY,2BAA2B;AAE7C,UAAM,eAAe,2BAA2B;AAChD,UAAM,YAAY,2BAA2B;AAC7C,UAAM,YAAY,2BAA2B;AAC7C,UAAM,mBAAmB,2BAA2B;AAEpD,UAAM,KAAK,UAAU;AACrB,kBAAc,KAAK,CAAE,cAAc,MAAM,WAAW;AAEpD,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,yDAAyD;;AAG3E,UAAM,SAAS;MACb;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;AAGF,+BAA2B,WAAW;AAEtC,WAAO,CAAE,QAAQ;;;;AC9Fb,oBAAmB,GAAgB;AACvC,QAAI,MAAM,MAAK,GAAG,OAAO;AACzB,UAAM,WAAW,KAAK,OAAO;AAC7B,UAAM,AAAG,KAAI,KAAK;AAClB,UAAM,AAAG,KAAK;AACd,WAAO;;AAGH,wBAAuB,GAAgB;AAC3C,QAAI,MAAM,SAAS,GAAG,OAAO;AAC7B,UAAM,WAAW,KAAK,OAAO;AAE7B,QAAI,SAAS,AAAG,QAAQ,GAAG,GAAG,GAAG;AACjC,UAAM,SAAQ,AAAG,MAAkB,OAAO;AAC1C,UAAM,QAAQ,OAAO,MAAM,OAAO,IAAI,MAAM;AAC5C,UAAM,gBAAgB,OAAO,MAAM,OAAO,IAAI,MAAM,MAAM,OAAO,MAAM,OAAO,IAAI,MAAM;AAExF,QAAI;AACF,YAAM,YAAY,CAAC,GAAG,IAAI;AAC1B,gBAAU,KAAK;AACf,YAAM,SAAS,AAAG,MAAkB;AACpC,YAAM,AAAG,OAAO,CAAC,KAAK,SAAS;AAE/B,YAAM,YAAY,CAAC,GAAG,IAAI;AAC1B,gBAAU,KAAK;AACf,YAAM,SAAS,AAAG,MAAkB;AACpC,YAAM,AAAG,OAAO,CAAC,KAAK,SAAS;;AAGjC,aAAS,QAAQ,AAAG,OAAO,CAAC,QAAQ,SAAQ,KAAK;AACjD,UAAM,AAAG,KAAI,QAAQ;AAErB,UAAM,AAAG,KAAK;AACd,WAAO;;;;ACtCT,mCAYwC;IAEtC;AACE,YAAM;;IAGD,aAAa;AAElB,YAAM,CAAE,UAAW;AAEnB,UAAI,CAAC;AACH,cAAM,IAAI,MAAM;;AAGlB,aAAO,AAAG,KAAK;AACb,cAAM,cAAc,MAAM,cAAc,KAAK,MAAM;AAEnD,cAAM,UAAU,CAAC,SAAS,SAAS;AACnC,cAAM,aAAa,UAAU,aAAa,SAAS,IAAI,AAAG,OAAO;AAEjE,YAAI,MAAM,SAAS,YAAY,OAAO;AACtC,cAAM,AAAG,QAAQ,KAAK,GAAG,GAAG;AAE5B,cAAM,SAAS,KAAK,OAAO;AAC3B,cAAM,SAAS,KAAK,OAAO;AAC3B,cAAM,SAAS,KAAK,OAAO;AAE3B,cAAM,aAAa,KAAK,OAAO;AAC/B,cAAM,SAAS,KAAK,OAAO;AAC3B,cAAM,SAAS,KAAK,OAAO;AAC3B,cAAM,SAAS,KAAK,OAAO;AAE3B,cAAM,aAAa,KAAK,OAAO;AAC/B,cAAM,SAAS,KAAK,OAAO;AAC3B,cAAM,SAAS,KAAK,OAAO;AAE3B,cAAM,aAAa,KAAK,OAAO;AAC/B,cAAM,SAAS,KAAK,OAAO;AAC3B,cAAM,SAAS,KAAK,OAAO;AAC3B,cAAM,aAAa,KAAK,OAAO;AAE/B,cAAM,YAAY,IAAI,KAAK,CAAC,GAAG;AAC/B,cAAM,iBAAiB,AAAG,OAAO,WAAW,OAAO;AAEnD,eAAO;;;UAIE,QAAQ;AACnB,aAAO,KAAK,aAAa,MAAM,WAAW;;UAG/B,sBAAsB;AACjC,YAAM,WAAW,MAAM,WAAW;AAElC,YAAM,wBAAwB,AAAG,KAC/B,MAAM,AAAG,QAAQ,KAAK,aAAa;AAGrC,YAAM,0BAA0B,MAAM,QAAQ,IAAI,sBAAsB,IACtE,OAAK,EAAE;AAGT,4BAAsB,QAAQ,OAAK,EAAE;AAErC,aAAO,SAAS,eACZ,0BACA,wBAAwB;;IAGpB;AACR,aAAO;;IAGC,2BAA2B;AACnC,aAAO,4BAA2B;;IAG1B,cAAc;AACtB,aAAO,eAAc;;;;;ACvFnB,oCAAmC;AACvC,UAAM,MAAM,IAAI;AAChB,QAAI,eAAe;AACnB,WAAO;;;;ACHH,oCAGJ,WACA;AAGA,UAAM,YAAY,CAAE;AACpB,WAAO,OAAO,OAAO,IAAI,WAAW;;;;ACRhC,qBAAoB;AACxB,WAAO,OAAO,IAAI,WAAW;;AAGzB,yBAGJ,WACA;AAGA,UAAM,YAAY,CAAE;AACpB,WAAO,OAAO,OAAO,IAAI,WAAW;;;;ACRhC,wBAAuB;AAC3B,WAAQ,KAAI,cAAc,OAAO,QAAQ,IAAI,cAAc,OAAO,WAC7D,mBAAmB,IAAI;;AAGxB,4BAGJ,WACA,QACA;AAGA,UAAM,YAAY,CAAE,QAAQ;AAC5B,WAAO,OAAO,OAAO,IAAI,WAAW;;;;;;ACjBtC,8BAA2B,gBAAwC;AAEjE,wCAAoC,aAAqB;AAEvD,YAAM,UAAU,AAAG,SAAS,eAAe,IAAI,IAAI,cAAc,CAAC,GAAG,GAAG,aAAa;AACrF,YAAM,mBAAmB,AAAG,SAAS,eAAe;AACpD,YAAM,oBAAoB,AAAG,SAAS,eAAe;AACrD,YAAM,kBAAkB,AAAG,SAAS,eAAe;AACnD,YAAM,sBAAsB,AAAG,SAAS,eAAe;AAEvD,oBAAc,KACZ,CAAE,WAAW,GAAG,yBAChB,CAAE,WAAW,GAAG,kCAChB,CAAE,WAAW,GAAG,mCAChB,CAAE,WAAW,GAAG,iCAChB,CAAE,WAAW,GAAG;AAGlB,aAAO;QACL;QACA;QACA;QACA;QACA;;;AAIJ,+BACE,YACA,aACA,YACA,cACA;AAGA,YAAM,UAAU,AAAG,SACjB,eAAe,aAAa,cAAc,aAAa,aACvD,CAAC,YAAY,YAAY,YAAY;AAEvC,YAAM,OAAO,AAAG,SAAS,eAAe;AAExC,oBAAc,KACZ,CAAE,WAAW,GAAG,yBAChB,CAAE,WAAW,GAAG,gBAAgB,kBAAkB,sBAAsB;AAG1E,aAAO,CAAE,SAAS;;AAGpB,wCACE,YACA,aACA,YACA;AAGA,YAAM,CACJ,SACA,QACE,kBAAkB,YAAY,aAAa,YAAY,cAAc;AAEzE,aAAO;QACL;QACA,mBAAmB;;;AAIvB,mCACE,YACA,aACA;AAGA,YAAM,iBAAiB,2BAA2B,YAAY,GAAG;AACjE,YAAM,iBAAiB,2BAA2B,YAAY,aAAa,GAAG,GAAG;AAEjF,aAAO,CAAE,gBAAgB;;AAG3B;AAEE,YAAM,SAAS,2BAA2B,GAAG,IAAI,GAAG;AAEpD,YAAM,SAAS,sBAAsB,IAAI,IAAI;AAC7C,YAAM,SAAS,sBAAsB,IAAI,KAAK;AAC9C,YAAM,SAAS,sBAAsB,KAAK,KAAK;AAC/C,YAAM,SAAS,sBAAsB,KAAK,KAAK;AAC/C,YAAM,SAAS,sBAAsB,KAAK,KAAK;AAC/C,YAAM,SAAS,sBAAsB,KAAK,KAAK;AAC/C,YAAM,SAAS,sBAAsB,KAAK,KAAK;AAC/C,YAAM,SAAS,sBAAsB,KAAK,KAAK;AAC/C,YAAM,SAAS,sBAAsB,KAAK,KAAK;AAC/C,YAAM,UAAU,sBAAsB,KAAK,KAAK;AAChD,YAAM,UAAU,sBAAsB,KAAK,KAAK;AAChD,YAAM,UAAU,sBAAsB,KAAK,MAAM;AACjD,YAAM,UAAU,sBAAsB,MAAM,MAAM;AAElD,aAAO;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;;AAIJ;AACE,YAAM,SAAS,2BAA2B,MAAM,KAAK,GAAG;AACxD,YAAM,SAAS,2BAA2B,KAAK,KAAK,GAAG;AACvD,YAAM,SAAS,2BAA2B,KAAK,KAAK,GAAG;AACvD,YAAM,SAAS,2BAA2B,KAAK,KAAK,GAAG;AACvD,YAAM,SAAS,2BAA2B,KAAK,KAAK,GAAG;AACvD,YAAM,SAAS,2BAA2B,KAAK,KAAK,GAAG;AACvD,YAAM,SAAS,2BAA2B,KAAK,IAAI,GAAG;AACtD,YAAM,SAAS,2BAA2B,IAAI,KAAK,GAAG;AAEtD,YAAM,2BAA2B,kBAAkB,KAAK,IAAI,GAAG;AAC/D,YAAM,oBAAoB,kBAAkB,KAAK,GAAG,GAAG;AACvD,YAAM,2BAA2B,kBAAkB,MAAM,IAAI,GAAG;AAChE,YAAM,oBAAoB,kBAAkB,MAAM,IAAI,GAAG;AACzD,YAAM,2BAA2B,kBAAkB,KAAK,IAAI,GAAG;AAC/D,YAAM,oBAAoB,kBAAkB,KAAK,IAAI,GAAG;AACxD,YAAM,2BAA2B,kBAAkB,KAAK,IAAI,GAAG;AAC/D,YAAM,oBAAoB,kBAAkB,KAAK,IAAI,GAAG;AACxD,YAAM,2BAA2B,kBAAkB,KAAK,IAAI,GAAG;AAC/D,YAAM,oBAAoB,kBAAkB,KAAK,IAAI,GAAG;AACxD,YAAM,2BAA2B,kBAAkB,KAAK,IAAI,GAAG;AAC/D,YAAM,oBAAoB,kBAAkB,KAAK,IAAI,GAAG;AAExD,YAAM,kBAAkB;QACtB,wBAAwB;QACxB,iBAAiB;;AAEnB,YAAM,kBAAkB;QACtB,wBAAwB;QACxB,iBAAiB;;AAEnB,YAAM,kBAAkB;QACtB,wBAAwB;QACxB,iBAAiB;;AAEnB,YAAM,kBAAkB;QACtB,wBAAwB;QACxB,iBAAiB;;AAEnB,YAAM,kBAAkB;QACtB,wBAAwB;QACxB,iBAAiB;;AAEnB,YAAM,kBAAkB;QACtB,wBAAwB;QACxB,iBAAiB;;AAGnB,aAAO;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;;AAIJ,WAAO;MACL;MACA;;;AAKE,2BAAwB;AAE5B,UAAM,gBAAgC;AAEtC,UAAM,CACJ,gBACA,uBACE,sBAAsB;AAE1B,UAAM,CACJ,0BACA,gCACE,mBAAkB,gBAAgB;AAEtC,UAAM,cAAc;AACpB,UAAM,mBAAmB;AACzB,UAAM,YAAY,AAAG,SACnB,eAAe,OAAO,IACtB,CAAC,GAAG,MAAM;AAEZ,UAAM,eAAe;MACnB;;AAGF,kBAAc,KAAK,CAAE,WAAW;AAEhC,QAAI,sBAAsB,WAAW;AACnC,YAAM,IAAI,MAAM,kCAAkC,sBAAsB;;AAG1E,WAAO;MACL,QAAQ;QACN;QACA;QACA;;MAEF;;;;;AC/NJ,8BAA2B,WAAgB;AAEzC,UAAM,qBAAqB,0BAA0B,WAAW;AAEhE,wCAAoC,QAAgB,KAAa;AAE/D,YAAM,UAAU,mBAAgC,GAAG,iBAAiB,yBAAyB,GAAG,GAAG;AACnG,YAAM,oBAAoB,mBAAgC,GAAG,iBAAiB,uCAAuC,GAAG,GAAG;AAE3H,aAAO,CAAE,SAAS;;AAGpB,mCAA+B;AAE7B,YAAM,eAAe,oBAAoB;AACzC,YAAM,sBAAsB,sBAAsB;AAClD,YAAM,4BAA4B,GAAG;AACrC,YAAM,4BAA4B,GAAG;AAErC,YAAM,UAAU,mBAAgC,GAAG,yCAAyC,GAAG,GAAG;AAClG,YAAM,mBAAmB,mBAAgC,GAAG,uCAAuC,GAAG,GAAG;AACzG,YAAM,oBAAoB,mBAAgC,GAAG,sCAAsC,GAAG,GAAG;AACzG,YAAM,kBAAkB,mBAAgC,GAAG,6CAA6C,GAAG,GAAG;AAC9G,YAAM,sBAAsB,mBAAgC,GAAG,iDAAiD,GAAG,GAAG;AAEtH,aAAO;QACL,gBAAgB;UACd;UACA;UACA;UACA;UACA;;QAEF,gBAAgB,2BAA2B,eAAe,KAAK;;;AAInE;AACE,aAAO;QACL,QAAQ,2BAA2B,eAAe,GAAG;QACrD,QAAQ,sBAAsB;QAC9B,QAAQ,sBAAsB;QAC9B,QAAQ,sBAAsB;QAC9B,QAAQ,sBAAsB;QAC9B,QAAQ,sBAAsB;QAC9B,QAAQ,sBAAsB;QAC9B,QAAQ,sBAAsB;QAC9B,QAAQ,sBAAsB;QAC9B,QAAQ,sBAAsB;QAC9B,SAAS,sBAAsB;QAC/B,SAAS,sBAAsB;QAC/B,SAAS,sBAAsB;QAC/B,SAAS,sBAAsB;;;AAInC,+BAA2B,QAAgB;AACzC,YAAM,UAAU,mBAAgC,GAAG,kBAAkB,GAAG,GAAG;AAC3E,YAAM,OAAO,mBAAgC,GAAG,iBAAiB,GAAG,GAAG;AAEvE,aAAO,CAAE,SAAS;;AAGpB,uCAAmC;AAEjC,YAAM,yBAAyB,kBAC7B,2BAA2B,4BAC3B,kCAAkC;AAEpC,YAAM,kBAAkB,kBACtB,2BAA2B,sBAC3B,kCAAkC;AAGpC,aAAO,CAAE,wBAAwB;;AAGnC;AACE,aAAO;QACL,QAAQ,2BAA2B,cAAc,GAAG;QACpD,QAAQ,2BAA2B,cAAc,GAAG;QACpD,QAAQ,2BAA2B,cAAc,GAAG;QACpD,QAAQ,2BAA2B,cAAc,GAAG;QACpD,QAAQ,2BAA2B,cAAc,GAAG;QACpD,QAAQ,2BAA2B,cAAc,GAAG;QACpD,QAAQ,2BAA2B,cAAc,GAAG;QACpD,QAAQ,2BAA2B,cAAc,GAAG;QACpD,iBAAiB,0BAA0B;QAC3C,iBAAiB,0BAA0B;QAC3C,iBAAiB,0BAA0B;QAC3C,iBAAiB,0BAA0B;QAC3C,iBAAiB,0BAA0B;QAC3C,iBAAiB,0BAA0B;;;AAI/C,WAAO;MACL;MACA;;;AAIE,wCACJ;AAGA,UAAM,gBAAgC;AAEtC,UAAM,CACJ,0BACA,gCACE,mBAAkB,WAAW;AAEjC,UAAM,YAAY,UAAU;AAC5B,kBAAc,KAAK,CAAE,cAAc,oBAAoB,WAAW;AAElE,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,yEAAyE;;AAG3F,UAAM,SAAS;MACb,aAAa;MACb,kBAAkB;MAClB,cAAc;QACZ;;;AAIJ,+BAA2B,WAAW;AAEtC,WAAO,CAAE,QAAQ;;;;ACpIb,8BACJ,GACA,QACA;AAEA,WAAO,AAAG,KAAK;AAEb,UAAI,MAAM,AAAG,OAAO,GAAG,OAAO,SAAS,SAAS;AAChD,YAAM,AAAG,KAAI,KAAK,OAAO;AACzB,aAAO,AAAG,YAAY,KAAK,GAAG;;;;;ACRlC,QAAM,UAAU;AAEhB,8BACE,GACA,QACA;AAEA,WAAO,AAAG,KAAK;AAEb,UAAI,MAAM,AAAG,gBAAgB,GAAG,OAAO,SAAS,SAAS;AACzD,YAAM,AAAG,UACP,KACA,OAAO,iBACP,OAAO,qBACP,OAAO,mBACP,OAAO,kBACP;AAEF,aAAO,AAAG,YAAY,KAAK,GAAG;;;AAKlC,iCAA+B;AAC7B,WAAO,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,SAAO,QAAQ,YAAY,CAAC,GAAG,KAAK,CAAC,GAAG;;AAG9D,uBAAsB,GAAgB;AAC1C,WAAO,AAAG,KAAK;AAEb,UAAI,SAAS;AACb,UAAI,MAAM,mBAAmB,GAAG,OAAO,QAAQ,CAAC,GAAG;AAEnD,YAAM,iBAAiB;QACrB,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;;AAGT,qBAAe,QAAQ,CAAC,OAAO;AAC7B,cAAM,WAAW,IAAI;AACrB,cAAM,uBAAuB,sBAAsB;AACnD,cAAM,mBAAmB,KAAK,MAAM,gBAAgB;AACpD,cAAM,mBAAmB,KAAK,MAAM,gBAAgB,CAAC,GAAG;AACxD,YAAI,aAAa;AACf,mBAAS;;;AAIb,UAAI,WAAW;AACb,cAAM,IAAI,MAAM;;AAGlB,aAAO;QACL;QACA;;;;;;ACpEA,8BACJ,OACA,QACA,eACA,cACA;AAGA,UAAM,WAAW,MAAM,MAAM;AAC7B,UAAM,aAAa,KAAK,IACtB,eACA;AAGF,UAAM,aAAa,OAChB,IAAI,CAAC,OAAO,aAAc,EAAE,OAAO,YACnC,OAAO,OAAK,EAAE,QAAQ,gBACtB,KAAK,CAAC,IAAI,OAAO,GAAG,QAAQ,GAAG;AAElC,UAAM,eAAe,CAAC,MAAc,KAAK,eAAe,IAAI;AAE5D,UAAM,WAAqB;AAE3B,eAAW,QAAQ;AACjB,UAAI,SAAS,UAAU;AACrB;;AAEF,YAAM,gBAAgB,EAAE;AAExB,eAAS,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,EAAE;AAC1C,cAAM,OAAM,IAAI,OAAO,EAAE,UAAU,SAAS;AAC5C,YAAI,SAAQ;AACV;;AAEF,UAAE,SAAS,aAAa;AACxB,YAAI,EAAE,SAAS;AACb;;;AAIJ,UAAI,kBAAkB,EAAE;AACtB,iBAAS,KAAK,EAAE;;;AAIpB,WAAO;;AAGT,eAAa,OAAoB,GAAW;AAC1C,UAAM,YAAY,MAAM;AACxB,UAAM,QAAQ,KAAK,IAAI,UAAU,GAAG,IAAI,UAAU,GAAG;AACrD,UAAM,QAAQ,KAAK,IAAI,UAAU,GAAG,IAAI,UAAU,GAAG;AACrD,UAAM,QAAQ,KAAK,IAAI,UAAU,GAAG,IAAI,UAAU,GAAG;AACrD,UAAM,QAAQ,KAAK,IAAI,UAAU,GAAG,IAAI,UAAU,GAAG;AACrD,UAAM,QAAQ,KAAK,IAAI,UAAU,GAAG,IAAI,UAAU,GAAG;AACrD,UAAM,QAAQ,KAAK,IAAI,UAAU,GAAG,IAAI,UAAU,GAAG;AACrD,UAAM,QAAQ,KAAK,IAAI,UAAU,GAAG,IAAI,UAAU,GAAG;AACrD,UAAM,QAAQ,KAAK,IAAI,UAAU,GAAG,IAAI,UAAU,GAAG;AACrD,UAAM,QAAS,SAAQ,SAAU,SAAQ;AACzC,UAAM,QAAS,SAAQ,SAAU,SAAQ;AACzC,QAAI,SAAS,KAAK,SAAS;AACzB,aAAO;;AAET,UAAM,mBAAmB,KAAK,IAAI,OAAO;AACzC,UAAM,mBAAmB,KAAK,IAAI,OAAO;AACzC,UAAM,mBAAmB,KAAK,IAAI,OAAO;AACzC,UAAM,mBAAmB,KAAK,IAAI,OAAO;AACzC,UAAM,mBACF,KAAK,IAAI,mBAAmB,kBAAkB,KAC9C,KAAK,IAAI,mBAAmB,kBAAkB;AAClD,WAAO,mBAAoB,SAAQ,QAAQ;;;;ACnE7C,6CAA2C;AACzC,UAAM,MAAM,AAAG,QAAQ,AAAG,UAAU,GAAG,CAAC,GAAG;AAE3C,UAAM,QAAQ;MACZ,AAAG,IAAI,IAAI,IAAI,IAAI;MACnB,AAAG,IAAI,IAAI,IAAI,IAAI;;AAGrB,UAAM,UAAU;MACd,AAAG,KAAI,IAAI,IAAI,AAAG,IAAI,MAAM,IAAI,AAAG,OAAO;MAC1C,AAAG,KAAI,IAAI,IAAI,AAAG,IAAI,MAAM,IAAI,AAAG,OAAO;;AAG5C,WAAO;MACL;MACA;;;AAIJ,4BAA0B,IAAiB;AACzC,UAAM,CACJ,OACA,WACE,kCAAkC;AAEtC,UAAM,MAAM,AAAG,QAAQ,AAAG,UAAU,IAAI,CAAC,GAAG;AAE5C,UAAM,WAAW,AAAG,IAAI,AAAG,IAAI,AAAG,IAAI,AAAG,IAAI,IAAI,IAAI,AAAG,OAAO,MAAM,MAAM,KAAK,AAAG,OAAO;AAC1F,UAAM,WAAW,AAAG,KAAI,AAAG,IAAI,AAAG,IAAI,IAAI,IAAI,AAAG,OAAO,MAAM,MAAM,KAAK,QAAQ;AAEjF,UAAM,WAAW,AAAG,IAAI,AAAG,IAAI,AAAG,IAAI,AAAG,IAAI,IAAI,IAAI,AAAG,OAAO,MAAM,MAAM,KAAK,AAAG,OAAO;AAC1F,UAAM,WAAW,AAAG,KAAI,AAAG,IAAI,AAAG,IAAI,IAAI,IAAI,AAAG,OAAO,MAAM,MAAM,KAAK,QAAQ;AAEjF,WAAO,AAAG,UACR,AAAG,MAAM;MACP,AAAG,IAAI,UAAU;MACjB,AAAG,IAAI,UAAU;MACjB,AAAG,KAAI,UAAU;MACjB,AAAG,KAAI,UAAU;QAEnB,CAAC,GAAG;;AAIF,uBACJ,gBACA,kBACA;AAEA,WAAO,AAAG,KAAK;AAEb,YAAM,YAAY,eAAe,MAAM;AAEvC,UAAI,QAAQ,iBACV,AAAG,QAAQ,AAAG,KAAK,OAAO,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,KAC9D,AAAG,QAAQ,gBAAgB,CAAC,IAAI;AAElC,cAAQ,AAAG,QACT,OACA,CAAC,WAAY,MAAM,MAAM,KAAK,WAAY;AAG5C,YAAM,mBAAmB,AAAG,QAAQ,AAAG,MAAM,kBAAkB,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI;AACnF,UAAI,SAAS,AAAG,MAAM,kBAAkB,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI;AAE5D,eAAS,AAAG,QACV,QACA,CAAC,WAAW,OAAO,MAAM;AAG3B,YAAM,eAAe,AAAG,QAAQ;AAChC,YAAM,gBAAgB,AAAG,QAAQ;AAEjC,aAAO;QACL,OAAO;QACP,QAAQ;;;;;;AC1ER,8BACJ,GACA;AAEA,WAAO,AAAG,KAAK;AAEb,YAAM,YAAY,EAAE,MAAM;AAE1B,YAAM,wBAAwB,AAAG,QAC/B,UAAU,GAAG,OAAO,yBACpB,CAAC,WAAW,IAAI,GAAG;AAErB,YAAM,kBAAkB,AAAG,QACzB,UAAU,GAAG,OAAO,kBACpB,CAAC,WAAW,IAAI;AAGlB,aAAO;QACL;QACA;;;;;;ACnBA,2BACJ,GACA,QACA;AAEA,WAAO,AAAG,KAAK;AAEb,YAAM,QAAQ,mBAAmB,GAAG,OAAO,QAAQ,CAAC,GAAG;AACvD,YAAM,QAAQ,mBAAmB,OAAO,OAAO,QAAQ,CAAC,GAAG;AAC3D,YAAM,SAAQ,mBAAmB,OAAO,OAAO,QAAQ,CAAC,GAAG;AAC3D,YAAM,QAAQ,mBAAmB,QAAO,OAAO,QAAQ,CAAC,GAAG;AAC3D,YAAM,QAAQ,mBAAmB,OAAO,OAAO,QAAQ,CAAC,GAAG;AAC3D,YAAM,QAAQ,mBAAmB,OAAO,OAAO,QAAQ,CAAC,GAAG;AAC3D,YAAM,QAAQ,mBAAmB,OAAO,OAAO,QAAQ,CAAC,GAAG;AAC3D,YAAM,QAAQ,mBAAmB,OAAO,OAAO,QAAQ,CAAC,GAAG;AAE3D,YAAM,iBAAiB,mBAAmB,QAAQ,OAAO;AACzD,YAAM,iBAAiB,mBAAmB,GAAG,OAAO;AACpD,YAAM,iBAAiB,mBAAmB,OAAO,OAAO;AACxD,YAAM,iBAAiB,mBAAmB,OAAO,OAAO;AACxD,YAAM,iBAAiB,mBAAmB,OAAO,OAAO;AACxD,YAAM,iBAAiB,mBAAmB,OAAO,OAAO;AAExD,YAAM,iBAAiB,AAAG,OAAO;QAC/B,eAAe;QACf,eAAe;QACf,eAAe;QACf,eAAe;QACf,eAAe;QACf,eAAe;SACd;AAEH,YAAM,mBAAmB,AAAG,OAAO;QACjC,eAAe;QACf,eAAe;QACf,eAAe;QACf,eAAe;QACf,eAAe;QACf,eAAe;SACd;AAEH,aAAO;QACL;QACA;;;;;;AC5CN;IAME,YAAY,CAAE,eAAe,cAAuC;AAL1D,WAAA,QAAgB;AAMxB,WAAK,iBAAiB,iBAAiB;AACvC,WAAK,cAAc,cAAc;AAEjC,UAAI,OAAO,KAAK,mBAAmB,YAAY,KAAK,kBAAkB,KAAK,KAAK,kBAAkB;AAChG,cAAM,IAAI,MAAM,GAAG,KAAK;;AAG1B,UAAI,OAAO,KAAK,gBAAgB;AAC9B,cAAM,IAAI,MAAM,GAAG,KAAK;;;QAIxB;AAA0B,aAAO,KAAK;;QACtC;AAAuB,aAAO,KAAK;;;;;ACzBzC,+BAgBoC;IAElC;AACE,YAAM;;IAGD,aAAa;AAElB,YAAM,CAAE,UAAW;AAEnB,UAAI,CAAC;AACH,cAAM,IAAI,MAAM;;AAGlB,aAAO,AAAG,KAAK;AACb,cAAM,cAAc,MAAM,cAAc,KAAK,OAAO;AAEpD,cAAM,IAAI,AAAG,IAAI,AAAG,IAAI,aAAa,AAAG,OAAO,wBAAwB,AAAG,OAAO;AACjF,cAAM,WAAW,YAAY,GAAG,OAAO;AAEvC,cAAM,CACJ,gBACA,oBACE,gBAAgB,SAAS,KAAK,SAAS,QAAQ,OAAO;AAE1D,eAAO,YAAY,gBAAgB,kBAAkB,OAAO;;;UAInD,QAAQ;AACnB,aAAO,KAAK,aAAa,MAAM,WAAW;;UAG/B,YACX,OACA,UAAkC;AAGlC,YAAM,CAAE,YAAY,iBAAkB,IAAI,sBAAsB;AAEhE,YAAM,WAAW,MAAM,WAAW;AAElC,YAAM,CACJ,OAAO,QACP,QAAQ,WACN,KAAK,aAAa;AAItB,YAAM,QAAQ,OAAO;AACrB,YAAM,SAAS,QAAQ;AACvB,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ;AACjC,eAAO,GAAG;AACV,gBAAQ,GAAG;;AAIb,YAAM,aAAa,MAAM,KAAK,MAAM,OAAO;AAE3C,YAAM,eAAe;AACrB,YAAM,UAAU,mBACd,OACA,YACA,YACA,cACA;AAGF,YAAM,eAAe,SAAS,2BAA2B;AACzD,YAAM,YAAY,SAAS;AAC3B,YAAM,OAAO,YAAY,aAAa;AACtC,YAAM,OAAO,YAAY,aAAa;AAEtC,YAAM,YAAY,MAAM;AACxB,YAAM,UAAU,QACb,IAAI;AACH,cAAM,CAAC,KAAK,UAAU;UACpB,KAAK,IAAI,GAAG,UAAU,KAAK;UAC3B,KAAK,IAAI,GAAK,UAAU,KAAK;UAC7B,IAAI,SAAO,MAAM;AACnB,cAAM,CAAC,MAAM,SAAS;UACpB,KAAK,IAAI,GAAG,UAAU,KAAK;UAC3B,KAAK,IAAI,GAAK,UAAU,KAAK;UAC7B,IAAI,SAAO,MAAM;AACnB,eAAO,IAAI,cACT,WAAW,MACX,IAAI,KACF,MACA,KACA,QAAQ,MACR,SAAS,MAEX;UACE,QAAQ,SAAS,eAAe;UAChC,OAAO,SAAS,cAAc;;;AAKtC,YAAM;AACN,aAAO;AAEP,aAAO;;IAGC;AACR,aAAO;;IAGC,2BAA2B;AACnC,aAAO,6BAA2B;;IAG1B,cAAc;AACtB,aAAO,gBAAc;;;;;AC7HnB,gCAA+B;AACnC,UAAM,MAAM,IAAI;AAChB,QAAI,eAAe;AACnB,WAAO;;AAGH,kCAAiC;AACrC,WAAO,qBAAqB;;AAZ9B,iCAgBsC;;;;ACd/B,QAAM,gBAAgB;AAEtB,QAAM,cAAc;IACzB,IAAI,MAAM,UAAU;IACpB,IAAI,MAAM,SAAS;IACnB,IAAI,MAAM,SAAS;IACnB,IAAI,MAAM,QAAQ;IAClB,IAAI,MAAM,SAAS;;AAGd,QAAM,wBAAwB;IACnC,IAAI,MAAM,UAAU;IACpB,IAAI,MAAM,UAAU;IACpB,IAAI,MAAM,UAAU;IACpB,IAAI,MAAM,UAAU;IACpB,IAAI,MAAM,UAAU;;AAGf,QAAM,qBAA+C,CAAC,SAAS,SAAS;AAExE,QAAM,qBAAqB;AAC3B,QAAM,oCAAoC;;;ACVjD,QAAM,YAAW,CAAC,QAAa,OAAO,QAAQ;AAExC,0BAAyB;AAC7B,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,mBAAmB;;AAGrC,QAAI,OAAO,QAAO,uBAAuB;AACvC,YAAM,IAAI,MAAM,wDAAwD,QAAO;;AAGjF,QAAI,CAAC,UAAS,QAAO,iBAAiB,QAAO,eAAe,KAAK,QAAO,eAAe;AACrF,YAAM,IAAI,MAAM,gEAAgE,QAAO;;AAGzF,QACE,CAAC,MAAM,QAAQ,QAAO,YACnB,CAAC,QAAO,QAAQ,UAChB,CAAC,QAAO,QAAQ,MAAM,CAAC,MAAW,OAAO,MAAM;AAGlD,YAAM,IAAI,MAAM,kEAAkE,KAAK,UAAU,QAAO;;AAG1G,QACE,CAAC,MAAM,QAAQ,QAAO,YACnB,CAAC,QAAO,QAAQ,UAChB,CAAC,QAAO,QAAQ,IAAI,CAAC,MAAW,KAAK,IAAI,MAAM,CAAC,MAAW,UAAS,EAAE,MAAM,UAAS,EAAE;AAG1F,YAAM,IAAI,MAAM,wEAAwE,KAAK,UAAU,QAAO;;AAGhH,QAAI,QAAO,WACT,EAAC,MAAM,QAAQ,QAAO,YACnB,QAAO,QAAQ,WAAW,KAC1B,CAAC,QAAO,QAAQ,MAAM;AAGzB,YAAM,IAAI,MAAM,8EAA8E,KAAK,UAAU,QAAO;;;;;AClDlH,iBAAgB;AACpB,WAAO,AAAG,KAAK;AACb,YAAM,OAAM,AAAG,IAAI,GAAG,AAAG,OAAO;AAChC,aAAO,AAAG,KAAI,AAAG,KAAK,AAAG,IAAI,GAAG,QAAO;;;;;ACArC,6BAA4B,GAAgB;AAChD,WAAO,AAAG,KAAK;AACb,UAAI,MAAM,AAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;AAEjD,YAAM,AAAG,OAAO,KAAK,OAAO,KAAK,SAAS,CAAC,GAAG,IAAI;AAClD,YAAM,AAAG,IAAI,KAAK,OAAO,GAAG;AAC5B,YAAM,AAAG,IAAI,KAAK,OAAO,GAAG;AAC5B,YAAM,AAAG,KAAI,KAAK,OAAO,KAAK;AAE9B,aAAO,MAAM;;;;;ACTX,mCAAiC,GAAgB;AACrD,WAAO,AAAG,KAAK;AACb,UAAI,MAAM,AAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;AAEjD,YAAM,AAAG,gBAAgB,KAAK,OAAO,kBAAkB,OAAO,kBAAkB,CAAC,GAAG,IAAI;AACxF,YAAM,AAAG,KAAI,KAAK,OAAO;AAEzB,aAAO,MAAM;;;;;ACHjB,8BAA2B,gBAAwC;AAEjE,UAAM,oBAAoB,yBAAyB,gBAAgB;AAEnE,oCAAgC,MAAc;AAE5C,YAAM,QAAM,AAAG,SAAS,eAAe;AACvC,YAAM,UAAU,AAAG,SAAS,eAAe;AAE3C,oBAAc,KACZ,CAAE,WAAW,GAAG,qBAChB,CAAE,WAAW,GAAG;AAGlB,aAAO,CAAE,YAAK;;AAGhB,4CAAwC,YAAoB,aAAqB;AAE/E,YAAM,QAAO,kBAAkB,YAAY,aAAa,GAAG,GAAG;AAC9D,YAAM,KAAK,uBAAuB,aAAa,GAAG;AAElD,aAAO,CAAE,aAAM;;AAEjB,UAAM,6BAA6B,kCAAkC,gBAAgB;AAErF,WAAO;MACL;MACA;MACA;;;AAKE,2BACJ,SACA,SACA,iBACA;AAGA,UAAM,CACJ,gBACA,uBACE,sBAAsB;AAE1B,UAAM,gBAAgC;AAEtC,UAAM,CACJ,mBACA,gCACA,8BACE,mBAAkB,gBAAgB;AAEtC,QAAI;AAEJ,QAAI,QAAO;AACT,YAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM;AAE7C,YAAM,QAAQ,QAAO,qBACjB,kBAAkB,IAAI,IAAI,GAAG,WAC7B,2BAA2B,IAAI,IAAI;AACvC,YAAM,QAAQ,2BAA2B,IAAI,IAAI;AACjD,YAAM,SAAQ,2BAA2B,IAAI,IAAI;AACjD,YAAM,QAAQ,2BAA2B,IAAI,IAAI;AACjD,YAAM,QAAQ,2BAA2B,IAAI,IAAI;AACjD,YAAM,QAAQ,2BAA2B,IAAI,IAAI;AACjD,YAAM,QAAQ,KAAK,2BAA2B,IAAI,IAAI,WAAW;AACjE,YAAM,QAAQ,KAAK,2BAA2B,IAAI,IAAI,WAAW;AACjE,YAAM,QAAQ,kBAAkB,MAAM,MAAM,IAAI,IAAI,iBAAiB,GAAG;AACxE,eAAS,CAAE,OAAO,OAAO,eAAO,OAAO,OAAO,OAAO,OAAO,OAAO;;AAEnE,YAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM;AAC7C,YAAM,QAAQ,+BAA+B,IAAI,IAAI;AACrD,YAAM,QAAQ,+BAA+B,IAAI,IAAI;AACrD,YAAM,SAAQ,+BAA+B,IAAI,IAAI;AACrD,YAAM,QAAQ,+BAA+B,IAAI,IAAI;AACrD,YAAM,QAAQ,+BAA+B,IAAI,IAAI;AACrD,YAAM,QAAQ,+BAA+B,IAAI,IAAI;AACrD,YAAM,QAAQ,+BAA+B,IAAI,IAAI;AACrD,YAAM,QAAQ,+BAA+B,IAAI,IAAI;AACrD,YAAM,QAAQ,kBAAkB,IAAI,IAAI,iBAAiB,GAAG;AAC5D,eAAS,CAAE,OAAO,OAAO,eAAO,OAAO,OAAO,OAAO,OAAO,OAAO;;AAGrE,QAAI,sBAAsB,WAAW;AACnC,YAAM,IAAI,MAAM,kCAAkC,sBAAsB;;AAI1E,WAAO,CAAE,QAAQ;;;;ACzFnB,+BAA2B,WAAgB;AAEzC,UAAM,qBAAqB,0BAA0B,WAAW;AAEhE,oCAAgC;AAC9B,YAAM,QAAM,mBAAgC,GAAG,cAAc;AAC7D,YAAM,UAAU,mBAAgC,GAAG,kBAAkB;AACrE,aAAO,CAAE,YAAK;;AAGhB,+BAA2B;AACzB,YAAM,UAAU,mBAAgC,GAAG,kBAAkB;AACrE,YAAM,OAAO,mBAAgC,GAAG,eAAe;AAC/D,aAAO,CAAE,SAAS;;AAGpB,4CAAwC;AACtC,YAAM,QAAO,kBAAkB,GAAG;AAClC,YAAM,KAAK,uBAAuB,GAAG;AACrC,aAAO,CAAE,aAAM;;AAGjB,UAAM,6BAA6B,+BAA+B;AAElE,WAAO;MACL;MACA;MACA;;;AAKE,wCACJ,WACA;AAGA,UAAM,gBAAgC;AAEtC,UAAM,CACJ,mBACA,gCACA,8BACE,oBAAkB,WAAW;AAEjC,QAAI;AAEJ,QAAI,QAAO;AACT,YAAM,aAAc,QAAO,eAAe,QAAO,YAAY,UAAU;AACvE,eAAS;QACP,OAAO,QAAO,qBAAqB,kBAAkB,WAAW,2BAA2B;QAC3F,OAAO,2BAA2B;QAClC,OAAO,2BAA2B;QAClC,OAAO,2BAA2B;QAClC,OAAO,2BAA2B;QAClC,OAAO,2BAA2B;QAClC,OAAO,aAAa,IAAI,2BAA2B,WAAW;QAC9D,OAAO,aAAa,IAAI,2BAA2B,WAAW;QAC9D,OAAO,kBAAkB;;;AAG3B,eAAS;QACP,OAAO,+BAA+B;QACtC,OAAO,+BAA+B;QACtC,OAAO,+BAA+B;QACtC,OAAO,+BAA+B;QACtC,OAAO,+BAA+B;QACtC,OAAO,+BAA+B;QACtC,OAAO,+BAA+B;QACtC,OAAO,+BAA+B;QACtC,OAAO,kBAAkB;;;AAI7B,+BAA2B,WAAW;AAEtC,WAAO,CAAE,QAAQ;;;;ACtFnB,MAAY;AAAZ,EAAA,UAAY;AACV,wBAAA,oBAAA,QAAA,OAAA;AACA,wBAAA,oBAAA,QAAA,OAAA;AACA,wBAAA,oBAAA,QAAA,OAAA;AACA,wBAAA,oBAAA,QAAA,OAAA;KAJU,sBAAA,sBAAkB;AAA9B;IAkBE,YAAY,CAAE,WAAW,kBAAuC;AALtD,WAAA,QAAgB;AAMxB,WAAK,aAAa,aAAa;AAC/B,WAAK,kBAAkB,kBAAkB;AAEzC,UAAI,OAAO,KAAK,eAAe,YAAY,KAAK,aAAa,OAAO;AAClE,cAAM,IAAI,MAAM,GAAG,KAAK;;AAG1B,UAAI,OAAO,KAAK,oBAAoB,YAAY,KAAK,mBAAmB,KAAK,KAAK,mBAAmB;AACnG,cAAM,IAAI,MAAM,GAAG,KAAK;;;QAIxB;AAAsB,aAAO,KAAK;;QAClC;AAA2B,aAAO,KAAK;;;;;AChC7C,+BAuBoC;IAQlC,YAAY;AACV,YAAM;AACN,qBAAe;AACf,WAAK,UAAU;;QAGN;AACT,aAAO,KAAK;;QAGH;AACT,aAAO,KAAK,OAAO,mBAAmB,KAAK,OAAO,QAAQ,SAAS;;QAG1D;AACT,aAAO,IAAK,MAAK,kBAAkB,KAAK,OAAO,QAAQ,SAAS;;IAG3D,cAAc,GAAgB;AAEnC,UAAI,MAAM,kBAAkB,GAAG,OAAO;AACtC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,kBAAkB,KAAK,OAAO;AACpC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,kBAAkB,KAAK,OAAO;AACpC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,kBAAkB,KAAK,OAAO;AACpC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,kBAAkB,KAAK,OAAO;AACpC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,kBAAkB,KAAK,OAAO;AACpC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,kBAAkB,KAAK,OAAO;AACpC,YAAM,kBAAkB,KAAK,OAAO;AAEpC,aAAO,UAAU,KAAK,OAAO,OAAO,SAAS;;IAGxC,aAAa,GAAgB;AAElC,UAAI,MAAM,KAAK,OAAO,qBAClB,MAAM,UAAU,GAAG,OAAO,OAAqB,SAAS,UACxD,wBAAuB,GAAG,OAAO;AACrC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,wBAAuB,KAAK,OAAO;AACzC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,wBAAuB,KAAK,OAAO;AACzC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,wBAAuB,KAAK,OAAO;AACzC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,wBAAuB,KAAK,OAAO;AACzC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,wBAAuB,KAAK,OAAO;AACzC,YAAM,AAAG,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;AACtC,YAAM,OAAO,QAAQ,wBAAuB,KAAK,OAAO,SAAS;AACjE,YAAM,OAAO,QAAQ,wBAAuB,KAAK,OAAO,SAAS;AAEjE,aAAO,UAAU,KAAK,OAAO,OAAO,SAAS;;IAGxC,aAAa,OAAiB;AAEnC,YAAM,CAAE,UAAW;AAEnB,UAAI,CAAC;AACH,cAAM,IAAI,MAAM;;AAGlB,aAAO,AAAG,KAAK;AAEb,YAAI,cAAc,MAAM,cAAc,WAAW,OAAO;AACxD,sBAAc,KAAK,OAAO,UACtB,UAAU,aAAa,KAAK,OAAO,WACnC;AACJ,sBAAc,YAAY,IAAI,AAAG,OAAO;AAExC,eAAO,KAAK,OAAO,qBACf,KAAK,aAAa,aAAa,UAC/B,KAAK,cAAc,aAAa;;;UAI3B,QAAQ,OAAkB;AACrC,aAAO,MAAM,KAAK,aAAa,MAAM,WAAW,QAAQ;;UAG7C,OAAO,OAAkB,gBAAoC;AAExE,YAAM,CAAE,WAAW,kBAAmB,IAAI,kBAAkB;AAE5D,YAAM,WAAW,MAAM,WAAW;AAClC,YAAM,MAAM,MAAM,KAAK,aAAa,UAAU;AAC9C,YAAM,OAAO,AAAG,KAAK,MAAM,AAAG,QAAQ,KAAK,GAAG;AAE9C,YAAM,kBAAkB;QACtB,OAAO,SAAS,cAAc;QAC9B,QAAQ,SAAS,eAAe;;AAGlC,YAAM,UAAU,MAAM,KAAK,aAAa,MAAM,SAAS,2BAA2B,IAAI;AACtF,UAAI;AACJ,WAAK;AAEL,YAAM,QAAQ,QAAQ,IAAI,SAAO,IAAI;AACrC,YAAM,SAAS,QAAQ,IAAI,SAAO,IAAI;AACtC,YAAM,cAAc,QAAQ,IAAI,SAAO,IAAI;AAC3C,YAAM,aAAa,QAAQ,IAAI,SAAO,KAAK,OAAO,QAAQ,IAAI;AAE9D,YAAM,UAAU,mBACd,MAAM,IAAI,SAAO,IAAI,QAAQ,aAC7B,QACA,KAAK,OAAO,cACZ;AAGF,YAAM,aAAa,QAAQ,IAAI,SAC7B,IAAI,gBACF,OAAO,MACP,YAAY,MACZ,WAAW,MACX,MAAM,MACN;AAIJ,aAAO;;IAGC;AACR,aAAO;;IAGC,2BAA2B;AACnC,aAAO,6BAA2B,WAAW,KAAK;;IAG1C,cAAc;AACtB,YAAM,cAAc,KAAK,OAAO,eAAe,eAAe;AAE9D,YAAM,aAAa,cAAc,YAAY,SAAS;AACtD,UAAI,eAAe,KAAK,eAAe,KAAK,eAAe;AACzD,cAAM,IAAI,MAAM,oEAAoE;;AAEtF,aAAO,gBAAc,SAAS,KAAK,QAAQ,KAAK,iBAAiB;;UAGnD,aACd,cACA,qBACA;AAGA,YAAM,CAAE,OAAO,UAAW;AAC1B,YAAM,YAAY,KAAK,IAAI,OAAO;AAClC,YAAM,oBAAoB,YAAY;AACtC,YAAM,oBAAoB,YAAY;AAEtC,YAAM,WAAW,aAAa,MAAM;AACpC,YAAM,WAAW,KAAK,OAAO,QAAQ;AAErC,YAAM,CAAC,aAAa,cAAc,qBAAqB,AAAG,KAAK;AAC7D,cAAM,WAAW,aAAa,QAAQ,CAAC,UAAU,UAAU,UAAU,KAAK;AAE1E,cAAM,QAAQ,SAAS,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,UAAU,UAAU;AAC1E,cAAM,SAAS,SAAS,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,UAAU,UAAU;AAC3E,cAAM,cAAc,KAAK,kBACrB,AAAG,QAAQ,SAAS,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,UAAU,UAAU,KAAK,OAAO,QAAQ,UAAU,KACrG,AAAG,OAAO;AACd,eAAO,CAAC,OAAO,QAAQ;;AAGzB,YAAM,UAAU;AAEhB,YAAM,aAAa,MAAM,aAAa;AACtC,YAAM,YAAY,MAAM,YAAY;AACpC,eAAS,MAAM,GAAG,MAAM,UAAU;AAChC,iBAAS,MAAM,GAAG,MAAM,UAAU;AAChC,mBAAS,SAAS,GAAG,SAAS,UAAU;AAEtC,kBAAM,QAAQ,SAAQ,WAAW,KAAK,KAAK,QAAQ;AACnD,gBAAI,CAAC,kBAAkB,QAAQ;AAC7B,oBAAM,MAAQ,OAAM,SAAQ,UAAU,KAAK,KAAK,QAAQ,OAAO,WAAY;AAC3E,oBAAM,MAAQ,OAAM,SAAQ,UAAU,KAAK,KAAK,QAAQ,OAAO,WAAY;AAC3E,oBAAM,SAAU,KAAK,IAAI,UAAU,KAAK,KAAK,QAAQ,MAAM,KAAK,OAAO,QAAQ,QAAQ,IAAK,WAAY;AACxG,oBAAM,UAAW,KAAK,IAAI,UAAU,KAAK,KAAK,QAAQ,MAAM,KAAK,OAAO,QAAQ,QAAQ,IAAK,WAAY;AAEzG,oBAAM,IAAK,MAAO,SAAQ;AAC1B,oBAAM,IAAK,MAAO,UAAS;AAE3B,oBAAM,MAAM,CAAE,KAAK,KAAK;AACxB,oBAAM,CAAE,YAAY,SAAU,KAAK,kBAC/B,MAAM,KAAK,sBAAsB,mBAAkC,OACnE,CAAE,YAAY,GAAG,OAAO;AAE5B,sBAAQ,KAAK;gBACX,KAAK,IAAI,YAAY,GAAG,GAAG,IAAI,QAAO,IAAI;gBAC1C;gBACA,YAAY,QAAQ;gBACpB;mBACG;;;;;;AAOb,kBAAY;AACZ,mBAAa;AACb,wBAAkB;AAElB,aAAO;;UAGK,sBAAsB,eAA4B;AAC9D,YAAM,CAAE,KAAK,KAAK,UAAW;AAC7B,YAAM,cAAc,MAAM,cAAc;AACxC,aAAO,MAAM,KAAK,OAAO,QAAQ,QAAQ,KAAK,GAC3C,IAAI,CAAC,GAAG,MAAM,YAAY,KAAK,KAAK,QAAQ,IAC5C,IAAI,CAAC,YAAY,UAAW;QAC3B;QACA;UAED,OAAO,CAAC,MAAK,SAAS,KAAI,aAAa,KAAK,aAAa,OAAM;;;AApOtD,iBAAA,uBAAuB;IACnC;IAAG;IAAI;IAAI;IAAI;IAAK;IAAK;IAAK;IAAM;;;;ACxBxC,2BAegC;IAE9B,YAAY,qBAA8B;AACxC,YAAM,UAAS,OAAO,OAAO,IAAI;QAC/B;QACA,cAAc;QACd,SAAS,CAAC;SAEZ,qBACI;QACA,SAAS;QACT,SAAS;UAET;QACA,SAAS;QACT,iBAAiB;;AAIrB,YAAM;;QAGG;AACT,aAAO,KAAK,OAAO;;QAGV;AACT,aAAO,KAAK,OAAO;;UAGR,YAAY,OAAkB;AACzC,YAAM,mBAAmB,MAAM,KAAK,OAAO,OAAO;AAClD,aAAO,iBAAiB,IAAI,SAAO,IAAI,cAAc,IAAI,OAAO,IAAI,aAAa,CAAE,OAAO,IAAI,YAAY,QAAQ,IAAI;;IAG9G;AACR,aAAO,KAAK,qBAAqB,oCAAoC;;IAG7D,2BAA2B;AACnC,aAAO,MAAM,2BAA2B;;;;;;;AChDtC,4BAA2B,SAAuB,qBAA8B;AACpF,UAAM,MAAM,IAAI,WAAW;AAC3B,QAAI,eAAe;AACnB,WAAO;;;;ACZT,wCAI6C;IAA7C;;AACY,WAAA,QAAgB;;;;;ACL5B;UAEe,KACX;AAEA,aAAO,YAAY,MAAM,KAAK;;UAGnB;AACX,YAAM,IAAI,MAAM;;;;;ACFpB,kDACE,eACA,OACA,gBACA,gBACA,sBAAwF,CAAC,CAAE,iBAAkB;AAE7G,UAAM,YAAY,cAAc,IAAI,kBAClC,oBAAoB,gBAChB,oBAAoB,gBACpB,aAAa;AAEnB,UAAM,QAAgD,kBACpD,kBAAoB,SAChB,MAAM,mBAAmB,OAAO,aAChC,MAAM,aAAa,OAAO;AAGhC,UAAM,UAAU,MAAM,eAAe;AAErC,UAAM,QAAQ,OAAK,aAAgB,UAAU,EAAE;AAE/C,WAAO;;AAGT,mDACE,cACA,OACA,eACA,gBACA;AAEA,WAAO,iCACL,CAAC,eACD,OACA,OAAM,UAAS,cAAc,MAAM,KACnC,gBACA;;;;AC1CG,QAAM,iBAAgB;AAEtB,QAAM,eAAc;IACzB,IAAI,MAAM,UAAU;IACpB,IAAI,MAAM,UAAU;IACpB,IAAI,MAAM,UAAU;IACpB,IAAI,MAAM,UAAU;IACpB,IAAI,MAAM,UAAU;;AAGf,QAAM,WAAqC,CAAC,SAAS,SAAS;;;ACVrE,iCAQsC;IAEpC;AACE,YAAM,UAAS;QACb,oBAAoB;QACpB,cAAc;QACd,SAAS,CAAC;QACV,SAAS;QACT,SAAS;QACT,oBAAoB;QACpB,aAAa,CAAC,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK;;AAGzC,YAAM;;QAGG;AACT,aAAO,KAAK,OAAO;;UAGR,YAAY,OAAkB;AACzC,YAAM,mBAAmB,MAAM,KAAK,OAAO,OAAO;AAClD,aAAO,iBAAiB,IAAI,SAAO,IAAI,cAAc,IAAI,OAAO,IAAI,aAAa,CAAE,OAAO,IAAI,YAAY,QAAQ,IAAI;;IAG9G;AACR,aAAO;;IAGC,2BAA2B;AACnC,aAAO,MAAM,2BAA2B;;;;;ACrBrC,QAAM,OAAO;IAClB,gBAAgB,IAAI;IACpB,kBAAkB,IAAI;IACtB,YAAY,IAAI;IAChB,mBAAmB,IAAI;IACvB,uBAAuB,IAAI;IAC3B,oBAAoB,IAAI;IACxB,mBAAmB,IAAI;IACvB,cAAc,IAAI;;AAUb,QAAM,iBAAiB,CAAC,OAAkB,YAC/C,KAAK,eAAe,YAAY,OAAO;AASlC,QAAM,mBAAmB,CAAC,OAAkB,YACjD,KAAK,iBAAiB,YAAY,OAAO;AASpC,QAAM,cAAa,CAAC,OAAkB,YAC3C,KAAK,WAAW,YAAY,OAAO;AAS9B,QAAM,sBAAsB,CAAC,UAClC,KAAK,kBAAkB,gBAAgB;AAWlC,QAAM,0BAA0B,CAAC,UACtC,KAAK,sBAAsB,gBAAgB;AAYtC,QAAM,wBAAwB,CAAC,UACpC,KAAK,mBAAmB,sBAAsB;AAUzC,QAAM,2BAA2B,CAAC,UACvC,KAAK,kBAAkB,mBAAmB;AASrC,QAAM,sBAAsB,CAAC,UAClC,KAAK,aAAa,oBAAoB;AAEjC,QAAM,0BAA0B,CAAC,QAAgB,KAAK,eAAe,KAAK;AAC1E,QAAM,4BAA4B,CAAC,QAAgB,KAAK,iBAAiB,KAAK;AAC9E,QAAM,sBAAsB,CAAC,QAAgB,KAAK,WAAW,KAAK;AAClE,QAAM,wBAAwB,CAAC,QAAgB,KAAK,kBAAkB,KAAK;AAC3E,QAAM,4BAA4B,CAAC,QAAgB,KAAK,sBAAsB,KAAK;AACnF,QAAM,2BAA2B,CAAC,QAAgB,KAAK,mBAAmB,KAAK;AAC/E,QAAM,0BAA0B,CAAC,QAAgB,KAAK,kBAAkB,KAAK;AAC7E,QAAM,qBAAqB,CAAC,QAAgB,KAAK,aAAa,KAAK;AAGnE,QAAM,yBAAyB;AAC/B,QAAM,cAAc;AACpB,QAAM,kBAAkB;;;AC3H/B,+CAa4E;IAC1E,YACY,YACA,OACA;AAEV;AAJU,WAAA,aAAA;AACA,WAAA,QAAA;AACA,WAAA,iBAAA;;;AAjBd,8CAyBU;UAEK;AAEX,YAAM,gBAAgB,MAAM,KAAK;AAEjC,YAAM,wBAAwB,MAAM,iCAClC,eACA,KAAK,OACL,OAAM,UAAS,MAAM,QAAQ,IAAI,MAAM,IACrC,UAAQ,KAAK,kBAAkB,mBAAmB,SAEpD,KAAK;AAGP,aAAO,cAAc,IACnB,CAAC,cAAc,MAAM,0BAAmC,cAAc,sBAAsB;;IAIhG;AACE,aAAO,IAAI,2BAA2B,MAAM,KAAK;;;AA9CrD,iDAoDW;UAEI;AAEX,YAAM,eAAe,MAAM,KAAK;AAChC,UAAI,CAAC;AACH;;AAGF,YAAM,kBAAkB,MAAM,kCAC5B,cACA,KAAK,OACL,UAAQ,KAAK,kBAAkB,mBAAmB,OAClD,KAAK;AAGP,aAAO,0BAA0B,cAAc;;IAGjD;AACE,aAAO,IAAI,8BAA8B,MAAM,KAAK;;;AAxExD,+DA8EU;IAER;AACE,aAAO,IAAI,4CAA4C,MAAM,KAAK;;IAGpE;AACE,aAAO,IAAI,8BAA8B,MAAM,KAAK;;;AArFxD,kEA2FU;IAER;AACE,aAAO,IAAI,+CAA+C,MAAM,KAAK;;IAGvE;AACE,aAAO,IAAI,gCAAgC,MAAM,KAAK;;;;;ACnG1D,4CAeyE;IACvE,YACY,YACA,OACA;AAEV;AAJU,WAAA,aAAA;AACA,WAAA,QAAA;AACA,WAAA,iBAAA;;;AAnBd,2CA2BU;UAEK;AAEX,YAAM,gBAAgB,MAAM,KAAK;AAEjC,YAAM,qBAAqB,MAAM,iCAC/B,eACA,KAAK,OACL,OAAM,UAAS,MAAM,QAAQ,IAAI,MAAM,IACrC,UAAQ,KAAK,aAAa,oBAAoB,SAEhD,KAAK;AAGP,aAAO,cAAc,IAAI,CAAC,cAAc;AACtC,cAAM,CAAE,KAAK,QAAQ,qBAAsB,mBAAmB;AAC9D,eAAO,cAAc,iBAAiB,cAAc,QAAQ,oBAAoB;;;IAIpF;AACE,aAAO,IAAI,8BAA8B,MAAM,KAAK;;;AAjDxD,8CAuDW;UAEI;AAEX,YAAM,eAAe,MAAM,KAAK;AAChC,UAAI,CAAC;AACH;;AAGF,YAAM,CAAE,KAAK,QAAQ,qBAAsB,MAAM,kCAC/C,cACA,KAAK,OACL,UAAQ,KAAK,aAAa,oBAAoB,OAC9C,KAAK;AAGP,aAAO,cAAc,iBAAiB,cAAc,QAAQ,oBAAoB;;IAGlF;AACE,aAAO,IAAI,iCAAiC,MAAM,KAAK;;;AA3E3D,4DAiFU;IAER;AACE,aAAO,IAAI,+CAA+C,MAAM,KAAK;;IAGvE;AACE,aAAO,IAAI,8BAA8B,MAAM,KAAK;;;AAxFxD,+DA8FU;IAER;AACE,aAAO,IAAI,kDAAkD,MAAM,KAAK;;IAG1E;AACE,aAAO,IAAI,gCAAgC,MAAM,KAAK;;;;;ACxG1D,+CAe4E;IAC1E,YACY,YACA;AAEV;AAHU,WAAA,aAAA;AACA,WAAA,QAAA;;;AAlBd,8CA0BU;UAEK;AAEX,YAAM,gBAAgB,MAAM,KAAK;AAEjC,YAAM,cAAc,MAAM,iCACxB,eACA,KAAK,OACL,WAAS,QAAQ,IAAI,MAAM,IAAI,UAC7B,KAAK,mBAAmB,sBAAsB,SAEhD,MACA,kBAAgB,aAAa,UAAU,MAAM,MAAM,CAAE,kBAAkB;AAGzE,aAAO,YAAY,IAAI,CAAC,YAAY,MAAM,yBAAkC,cAAc,IAAI;;IAGhG;AACE,aAAO,IAAI,+CAA+C,MAAM,KAAK;;IAGvE;AACE,aAAO,IAAI,4CAA4C,MAAM,KAAK;;;AAlDtE,gDAwDU;UAEK;AAEX,YAAM,eAAe,MAAM,KAAK;AAChC,UAAI,CAAC;AACH;;AAEF,YAAM,aAAa,MAAM,kCACvB,cACA,KAAK,OACL,UAAQ,KAAK,mBAAmB,sBAAsB,OACtD,MACA,mBAAgB,cAAa,UAAU,MAAM,MAAM,CAAE,kBAAkB;AAGzE,aAAO,yBAAyB,cAAc;;IAGhD;AACE,aAAO,IAAI,kDAAkD,MAAM,KAAK;;IAG1E;AACE,aAAO,IAAI,+CAA+C,MAAM,KAAK;;;;;ACjFzE,4CAoByE;IACvE,YACY,YACA,OACA;AAEV;AAJU,WAAA,aAAA;AACA,WAAA,QAAA;AACA,WAAA,qBAAA;;QAKE;AACZ,aAAO,KAAK,qBACR,KAAK,wBACL,KAAK;;;AAhCb,2CAsCU;UAEK;AAEX,YAAM,gBAAgB,MAAM,KAAK;AACjC,YAAM,aAAa,cAAc,IAAI,SAAO,IAAI;AAEhD,YAAM,QAAgD,KAAK,iBAAoB,SAC3E,MAAM,mBAAmB,KAAK,OAAO,cACrC,MAAM,aAAa,KAAK,OAAO;AAEnC,YAAM,sBAAsB,MAAM,QAAQ,IAAI,MAAM,IAClD,UAAQ,KAAK,YAAY,gBAAgB;AAG3C,YAAM,QAAQ,OAAK,aAAgB,UAAU,EAAE;AAE/C,aAAO,cAAc,IAAI,CAAC,cAAc,MACtC,wBAAiC,cAAc,oBAAoB;;IAIvE;AACE,aAAO,IAAI,+CAA+C,MAAM,KAAK;;IAGvE;AACE,aAAO,IAAI,4CAA4C,MAAM,KAAK;;IAGpE;AACE,aAAO,IAAI,8BAA8B,MAAM,KAAK;;;AArExD,8CA2EW;UAEI;AAEX,YAAM,eAAe,MAAM,KAAK;AAChC,UAAI,CAAC;AACH;;AAGF,YAAM,CAAE,aAAc;AACtB,YAAM,QAAgD,KAAK,iBAAoB,SAC3E,MAAM,mBAAmB,KAAK,OAAO,CAAC,cACtC,MAAM,aAAa,KAAK,OAAO,CAAC;AAEpC,YAAM,YAAY,MAAM,KAAK,YAAY,gBAAgB,MAAM;AAE/D,YAAM,QAAQ,OAAK,aAAgB,UAAU,EAAE;AAE/C,aAAO,wBAAiC,cAAc;;IAGxD;AACE,aAAO,IAAI,kDAAkD,MAAM,KAAK;;IAG1E;AACE,aAAO,IAAI,+CAA+C,MAAM,KAAK;;IAGvE;AACE,aAAO,IAAI,gCAAgC,MAAM,KAAK;;;;;ACvG1D,oCAWkD;IAChD,YACY,OACA,UAAgC,IAAI;AAE9C;AAHU,WAAA,QAAA;AACA,WAAA,UAAA;;;AAdd,mCAoBwC;UAEzB;AAEX,YAAM,CAAE,OAAO,WAAY;AAE3B,YAAM,wBAAwB,mBAAmB,0BAC7C,CAAC,WAAqB,KAAK,iBAAiB,YAAY,QAAO,WAE/D,mBAAmB,wBACf,CAAC,WAAqB,KAAK,eAAe,YAAY,QAAO,WAE7D,mBAAmB,oBACf,CAAC,WAAqB,KAAK,WAAW,YAAY,QAAO,WACzD;AAIZ,UAAI,CAAC;AACH,cAAM,IAAI,MAAM;;AAGlB,aAAO,sBAAsB;;IAGvB;AACN,aAAO,IAAI,QAAiC,OAAM;AAChD,cAAM,aAAa,MAAM,KAAK;AAC9B,eAAO,IAAI,WAAW,IAAI,eAAa,wBAAwB,IAAI;;;IAIvE,kBAAkB,qBAA8B;AAC9C,aAAO,IAAI,2BACT,KAAK,kCACL,KAAK,OACL;;IAIJ;AACE,aAAO,IAAI,8BACT,KAAK,kCACL,KAAK;;IAIT;AACE,aAAO,IAAI,2BACT,KAAK,kCACL,KAAK;;;AAtEX,qCA2E0C;UAE3B;AACX,YAAM,iBAAiB,MAAM,IAAI,mBAAmB,KAAK,OAAO,KAAK;AACrE,UAAI,gCAAgC,eAAe;AACnD,qBAAe,QAAQ;AACrB,YAAI,cAAc,QAAQ,8BAA8B;AACtD,0CAAgC;;;AAGpC,aAAO;;IAGD;AACN,aAAO,IAAI,QAA+B,OAAM;AAC9C,cAAM,YAAY,MAAM,KAAK;AAC7B,eAAO,IAAI,YAAY,wBAA4B,IAAI,aAAa;;;IAIxE,kBAAkB,qBAA8B;AAC9C,aAAO,IAAI,8BACT,KAAK,iCACL,KAAK,OACL;;IAIJ;AACE,aAAO,IAAI,iCACT,KAAK,iCACL,KAAK;;IAIT;AACE,aAAO,IAAI,8BACT,KAAK,iCACL,KAAK;;;;;AC9GL,4BACJ,OACA,UAAgC,IAAI;AAEpC,WAAO,IAAI,qBAAqB,OAAO;;AAGnC,0BACJ,OACA,UAAgC,IAAI;AAEpC,WAAO,IAAI,mBAAmB,OAAO;;;;ACRvC,wCACE,OACA;AAEA,YAAQ,KAAK;AACb,WAAO,MAAM,eAAe,OAAO,IAAI,sBAAsB,gBAAgB,CAAE,iBAAkB,KAC9F,oBACA;;AAGL,oCACE,OACA,gBAAoC;AAEpC,YAAQ,KAAK;AACb,WAAO,MAAM,eAAe,OAAO,IAAI,kBAAkB,gBACtD,oBACA;;AAGE,QAAM,WAAW;;;AC5BlB,6BAA4B,MAA+B;AAC/D,QAAI,KAAK,WAAW,KAAK;AACvB,YAAM,IAAI,MAAM;AAElB,UAAM,QAAQ,MAAM,KAAK;AACzB,UAAM,QAAQ,MAAM,KAAK;AAEzB,WAAO,KAAK,KACV,MACG,IAAI,CAAC,KAAK,MAAM,MAAM,MAAM,IAC5B,OAAO,CAAC,KAAK,SAAS,MAAM,KAAK,IAAI,MAAM,IAAI;;;;ACVtD;IAUE,YACE,QACA,oBAA4B;AAG5B,WAAK,qBAAqB;AAE1B,YAAM,aAAa,MAAM,QAAQ,UAAU,SAAS,CAAC;AAErD,UAAI,CAAC,WAAW;AACd,cAAM,IAAI,MAAM;;AAGlB,UAAI,QAAQ;AACZ,YAAM,oBAAoB,MAAM,UAAU;AAE1C,WAAK,sBAAsB,WAAW,IAAI,CAAC;AACzC,YAAI,gBAAgB;AAClB,iBAAO;;AAGT,YAAI,gBAAgB;AAClB,iBAAO,IAAI,uBAAuB,qBAAqB,CAAC;;AAG1D,YAAI,KAAK,cAAc,KAAK,sBAAsB;AAChD,iBAAO,IAAI,uBAAuB,qBAAqB,CAAC,KAAK;;AAG/D,cAAM,IAAI,MAAM;;;QAIT;AAAiD,aAAO,KAAK;;QAC7D;AAA8B,aAAO,KAAK;;IAE9C,oBAAoB,iBAA+B;AACxD,aAAO,YACJ,IAAI,OAAK,kBAAkB,GAAG,kBAC9B,OAAO,CAAC,IAAI,OAAO,KAAK,IAAI,KACxB,aAAY,UAAU;;IAGxB,gBAAgB;AACrB,aAAO,KAAK,mBACT,IAAI,CAAC,CAAE,aAAa,WAAY,IAAI,UACjC,OACA,KAAK,oBAAoB,iBAAiB,eAE7C,OAAO,CAAC,MAAM,SAAS,KAAK,WAAW,KAAK,WAAW,OAAO;;IAG5D,cAAc;AACnB,YAAM,YAAY,KAAK,gBAAgB;AACvC,aAAO,UAAU,WAAW,KAAK,oBAC7B,YACA,IAAI,UAAU,WAAW,UAAU;;IAGlC;AACL,aAAO;QACL,mBAAmB,KAAK;QACxB,oBAAoB,KAAK,mBAAmB,IAAI,CAAC,OAAO,GAAG;;;WAIjD,SAAS;AACrB,YAAM,qBAAqB,KAAK,mBAC7B,IAAI,CAAC,OAAY,uBAAuB,SAAS;AACpD,aAAO,IAAI,YAAY,oBAAoB,KAAK;;;;;;;;;AC1E9C,kCAAiC;AACrC,UAAM,MAAM,IAAI;AAChB,QAAI,eAAe;AACnB,WAAO;;;;ACFH,yBAA2B,SAAY;AAE3C,UAAM,CAAE,OAAO,UAAW,IAAI,WAAW,WAAW,OAAO,WAAW;AAEtE,QAAI,SAAS,KAAK,UAAU;AAC1B,YAAM,IAAI,MAAM,uCAAuC,KAAK,UAAU,CAAE,OAAO;;AAGjF,QAAI,MAAM,QAAQ;AAChB,aAAO,QAAQ,IAAI,SAAO,cAAc,KAAK,CAAE,OAAO;;AAGxD,QAAI,oBAAoB;AACtB,YAAM,mBAAmB,QAAQ,UAAU,QAAQ,OAAO;AAC1D,YAAM,mBAAmB,QAAQ,mBAAmB,QAAQ,iBAAiB,IAAI,OAAO,iBAAiB,IAAI;AAE7G,aAAO,wBAAwB,wBAAwB,SAAS,mBAAmB;;AAGrF,QAAI,oBAAoB;AACtB,aAAO,wBAAwB,SAAS,QAAQ,UAAU,QAAQ,OAAO;;AAG3E,QAAI,mBAAmB,iBAAiB,mBAAmB;AACzD,aAAQ,QAAgB,QAAQ,OAAO;;AAGzC,WAAO;;", "names": [] } diff --git a/dist/face-api.min.js b/dist/face-api.min.js index fa0d5e7..3fd67fc 100644 --- a/dist/face-api.min.js +++ b/dist/face-api.min.js @@ -1,3812 +1,20 @@ -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();})(); +var faceapi=(()=>{var Hs=Object.defineProperty,zb=Object.prototype.hasOwnProperty,At=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),du=e=>Hs(e,"__esModule",{value:!0}),Re=(e,t)=>{du(e);for(var n in t)Hs(e,n,{get:t[n],enumerable:!0})},Yb=(e,t)=>{if(du(e),typeof t=="object"||typeof t=="function")for(let n in t)!zb.call(e,n)&&n!=="default"&&Hs(e,n,{get:()=>t[n],enumerable:!0});return e},mu=e=>e&&e.__esModule?e:Yb(Hs({},"default",{value:e,enumerable:!0}),e);var gu=At((fu,dc)=>{(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})(fu,typeof dc=="object"&&dc,typeof define=="function"&&define)});var wu=At((bu,mc)=>{(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,d=(c.next()>>>0)/4294967296,b=(h+d)/(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})(bu,typeof mc=="object"&&mc,typeof define=="function"&&define)});var yu=At((xu,fc)=>{(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,d=(c.next()>>>0)/4294967296,b=(h+d)/(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})(xu,typeof fc=="object"&&fc,typeof define=="function"&&define)});var vu=At((Lu,gc)=>{(function(e,t,n){function r(a){var s=this;s.next=function(){var p=s.x,l=s.i,h,d,b;return h=p[l],h^=h>>>7,d=h^h<<24,h=p[l+1&7],d^=h^h>>>10,h=p[l+3&7],d^=h^h>>>3,h=p[l+4&7],d^=h^h<<7,h=p[l+7&7],h=h^h<<13,d^=h^h<<9,p[l]=d,s.i=l+1&7,d};function c(p,l){var h,d,b=[];if(l===(l|0))d=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,d=(c.next()>>>0)/4294967296,b=(h+d)/(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})(Lu,typeof gc=="object"&&gc,typeof define=="function"&&define)});var Iu=At((Su,bc)=>{(function(e,t,n){function r(a){var s=this;s.next=function(){var p=s.w,l=s.X,h=s.i,d,b;return s.w=p=p+1640531527|0,b=l[h+34&127],d=l[h=h+1&127],b^=b<<13,d^=d<<17,b^=b>>>15,d^=d>>>12,b=l[h]=b^d,s.i=h,b+(p^p>>>16)|0};function c(p,l){var h,d,b,x,w,L=[],S=128;for(l===(l|0)?(d=l,l=null):(l=l+"\0",d=0,S=Math.max(S,l.length)),b=0,x=-32;x>>15,d^=d<<4,d^=d>>>13,x>=0&&(w=w+1640531527|0,h=L[x&127]^=d+w,b=h==0?b+1:0);for(b>=128&&(L[(l&&l.length||0)&127]=-1),b=127,x=4*128;x>0;--x)d=L[b+34&127],h=L[b=b+1&127],d^=d<<13,h^=h<<17,d^=d>>>15,h^=h>>>12,L[b]=d^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,d=(c.next()>>>0)/4294967296,b=(h+d)/(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})(Su,typeof bc=="object"&&bc,typeof define=="function"&&define)});var Au=At((Tu,wc)=>{(function(e,t,n){function r(a){var s=this,c="";s.next=function(){var l=s.b,h=s.c,d=s.d,b=s.a;return l=l<<25^l>>>7^h,h=h-d|0,d=d<<24^d>>>8^b,b=b-l|0,s.b=l=l<<20^l>>>12^h,s.c=h=h-d|0,s.d=d<<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,d=(c.next()>>>0)/4294967296,b=(h+d)/(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})(Tu,typeof wc=="object"&&wc,typeof define=="function"&&define)});var Nu=At(()=>{});var Ru=At((ET,zs)=>{(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 d(N,A,E){var M=[];A=A==!0?{entropy:!0}:A||{};var D=L(w(A.entropy?[N,I(e)]:N==null?S():N,3),M),$=new b(M),B=function(){for(var j=$.g(o),te=s,re=0;j=p;)j/=2,te/=2,re>>>=1;return(j+re)/te};return B.int32=function(){return $.g(4)|0},B.quick=function(){return $.g(4)/4294967296},B.double=B,L(I($.S),e),(A.pass||E||function(j,te,re,he){return he&&(he.S&&x(he,$),j.state=function(){return x($,{})}),re?(t[a]=j,te):j})(B,D,"global"in A?A.global:this==t,A.state)}t["seed"+a]=d;function b(N){var A,E=N.length,M=this,D=0,$=M.i=M.j=0,B=M.S=[];for(E||(N=[E++]);D{var Vb=gu(),Kb=wu(),Jb=yu(),Xb=vu(),Zb=Iu(),Qb=Au(),An=Ru();An.alea=Vb;An.xor128=Kb;An.xorwow=Jb;An.xorshift7=Xb;An.xor4096=Zb;An.tychei=Qb;_u.exports=An});var Ou=At((ew,Eu)=>{Re(ew,{isNodejs:()=>tw});function tw(){return typeof global=="object"&&!0&&typeof Eu!="undefined"&&typeof process!="undefined"&&!!process.version}});var dd=At(nw=>{Re(nw,{AgeGenderNet:()=>ya,BoundingBox:()=>Rr,Box:()=>de,ComposableTask:()=>xt,ComputeAllFaceDescriptorsTask:()=>hn,ComputeFaceDescriptorsTaskBase:()=>ca,ComputeSingleFaceDescriptorTask:()=>un,DetectAllFaceLandmarksTask:()=>sa,DetectAllFacesTask:()=>lo,DetectFaceLandmarksTaskBase:()=>ia,DetectFacesTaskBase:()=>ra,DetectSingleFaceLandmarksTask:()=>aa,DetectSingleFaceTask:()=>oa,Dimensions:()=>Qe,FACE_EXPRESSION_LABELS:()=>ha,FaceDetection:()=>fe,FaceDetectionNet:()=>Mu,FaceExpressionNet:()=>ua,FaceExpressions:()=>fn,FaceLandmark68Net:()=>Sr,FaceLandmark68TinyNet:()=>la,FaceLandmarkNet:()=>ad,FaceLandmarks:()=>st,FaceLandmarks5:()=>ud,FaceLandmarks68:()=>Nr,FaceMatch:()=>wo,FaceMatcher:()=>Tc,FaceRecognitionNet:()=>vr,Gender:()=>Bt,LabeledBox:()=>bo,LabeledFaceDescriptors:()=>xn,NetInput:()=>Jt,NeuralNetwork:()=>Ue,ObjectDetection:()=>On,Point:()=>J,PredictedBox:()=>hd,Rect:()=>Ar,SsdMobilenetv1:()=>Nn,SsdMobilenetv1Options:()=>bt,TinyFaceDetector:()=>yr,TinyFaceDetectorOptions:()=>Zs,TinyYolov2:()=>xr,TinyYolov2Options:()=>Wt,TinyYolov2SizeType:()=>Xs,allFaces:()=>rd,allFacesSsdMobilenetv1:()=>Ic,allFacesTinyYolov2:()=>nd,awaitMediaLoaded:()=>xa,bufferToImage:()=>wa,computeFaceDescriptor:()=>Gu,createCanvas:()=>En,createCanvasFromMedia:()=>Tr,createFaceDetectionNet:()=>Fu,createFaceRecognitionNet:()=>sd,createSsdMobilenetv1:()=>xc,createTinyFaceDetector:()=>Du,createTinyYolov2:()=>ku,detectAllFaces:()=>po,detectFaceLandmarks:()=>vc,detectFaceLandmarksTiny:()=>ju,detectLandmarks:()=>ed,detectSingleFace:()=>td,draw:()=>Vs,env:()=>se,euclideanDistance:()=>da,extendWithAge:()=>fo,extendWithFaceDescriptor:()=>mo,extendWithFaceDetection:()=>mn,extendWithFaceExpressions:()=>uo,extendWithFaceLandmarks:()=>Rn,extendWithGender:()=>ho,extractFaceTensors:()=>Cn,extractFaces:()=>_n,fetchImage:()=>ld,fetchJson:()=>ba,fetchNetWeights:()=>pd,fetchOrThrow:()=>wn,getContext2dOrThrow:()=>qe,getMediaDimensions:()=>bn,imageTensorToCanvas:()=>ga,imageToSquare:()=>fa,inverseSigmoid:()=>Wu,iou:()=>na,isMediaElement:()=>go,isMediaLoaded:()=>Ir,isWithAge:()=>id,isWithFaceDetection:()=>Nt,isWithFaceExpressions:()=>pa,isWithFaceLandmarks:()=>dn,isWithGender:()=>od,loadAgeGenderModel:()=>Xu,loadFaceDetectionModel:()=>Zu,loadFaceExpressionModel:()=>Ju,loadFaceLandmarkModel:()=>Yu,loadFaceLandmarkTinyModel:()=>Vu,loadFaceRecognitionModel:()=>Ku,loadSsdMobilenetv1Model:()=>Sc,loadTinyFaceDetectorModel:()=>Hu,loadTinyYolov2Model:()=>zu,loadWeightMap:()=>ma,locateFaces:()=>Qu,matchDimensions:()=>cd,minBbox:()=>ta,nets:()=>oe,nonMaxSuppression:()=>ea,normalize:()=>wt,padToSquare:()=>Qs,predictAgeAndGender:()=>qu,recognizeFaceExpressions:()=>Pu,resizeResults:()=>yc,resolveInput:()=>gn,shuffleArray:()=>Uu,sigmoid:()=>Lr,ssdMobilenetv1:()=>Lc,tf:()=>Ys,tinyFaceDetector:()=>Bu,tinyYolov2:()=>$u,toNetInput:()=>ue,utils:()=>Ks,validateConfig:()=>Js})});const md="tfjsflags";class Ac{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=rw(this.global.location.search);if(md in e){const t=e[md].split(",");t.forEach(n=>{const[r,o]=n.split(":");this.urlFlags[r]=ow(r,o)})}}}function rw(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...r)=>(iw(t,r[0],r[1]),r.join("="))),t}function iw(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function ow(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 pe(){return Nc}let Nc=null;function fd(e){Nc=e}let Rc;function _c(){if(Rc==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");Rc=e}return Rc}function sw(){const e=_c();return e._tfGlobals==null&&(e._tfGlobals=new Map()),e._tfGlobals}function Cc(e,t){const n=sw();if(n.has(e))return n.get(e);{const r=t();return n.set(e,r),n.get(e)}}const xo="Abs",yo="Acos",Lo="Acosh",kn="Add",vo="AddN",Ec="All",Oc="Any",So="ArgMax",Io="ArgMin",To="Asin",Ao="Asinh",No="Atan",Ro="Atanh",_o="Atan2",Co="AvgPool",kc="AvgPoolBackprop",Eo="AvgPool3D",Dc="AvgPool3DBackprop",Oo="BatchMatMul",ko="BatchToSpaceND",Do="BroadcastTo",Dn="Cast",Fo="Ceil",Mo="ClipByValue",Fc="Complex",Uo="Concat",Wo="Conv2D",Mc="Conv2DBackpropFilter",Bo="Conv2DBackpropInput",$o="Conv3D",Uc="Conv3DBackpropFilterV2",Wc="Conv3DBackpropInputV2",jo="Cos",Go="Cosh",Po="Cumsum",Bc="CropAndResize",$c="DepthToSpace",qo="DepthwiseConv2dNative",jc="DepthwiseConv2dNativeBackpropFilter",Gc="DepthwiseConv2dNativeBackpropInput",Pc="Diag",Ho="Dilation2D",qc="Dilation2DBackpropInput",Hc="Dilation2DBackpropFilter",zo="Div",Yo="Elu",zc="EluGrad",Vo="Erf",Yc="Equal",Ko="Exp",Jo="Expm1",Vc="FFT",Kc="Fill",Jc="FlipLeftRight",Xo="Floor",Zo="FloorDiv",Qo="FusedBatchNorm",ei="GatherV2",Xc="GatherNd",Zc="Greater",ti="GreaterEqual",ni="Identity",Qc="IFFT",ep="Imag",ri="IsFinite",oi="IsInf",ii="IsNan",tp="Less",np="LessEqual",rp="LinSpace",si="Log",ai="Log1p",op="LogicalAnd",ip="LogicalNot",sp="LogicalOr",ci="LogSoftmax",pi="LRN",ap="LRNBackprop",li="Max",hi="Maximum",ui="MaxPool",cp="MaxPoolBackprop",di="MaxPool3D",pp="MaxPool3DBackprop",lp="MaxPoolWithArgmax",aw="Mean",mi="Min",fi="Minimum",gi="Mod",bi="Multiply",wi="Negate",hp="NotEqual",up="NonMaxSuppressionV3",dp="NonMaxSuppressionV4",mp="NonMaxSuppressionV5",xi="OnesLike",yi="OneHot",Li="PadV2",cw="Pool",vi="Pow",Si="Prelu",fp="Prod",gp="Range",bp="Real",Ii="Reciprocal",Ti="Relu",Ai="Reshape",Ni="ResizeNearestNeighbor",wp="ResizeNearestNeighborGrad",Ri="ResizeBilinear",xp="ResizeBilinearGrad",_i="Relu6",Ci="Reverse",Ei="Round",Oi="Rsqrt",yp="ScatterNd",ki="SelectV2",Di="Selu",Fi="Slice",Mi="Sin",Ui="Sinh",Wi="Sign",Bi="Sigmoid",$i="Softplus",ji="Sqrt",Gi="Sum",Pi="SpaceToBatchND",qi="SplitV",Hi="Softmax",zi="SquaredDifference",Lp="Square",Yi="Sub",vp="SparseToDense",Sp="StridedSlice",Vi="Tan",Ki="Tanh",Ji="Tile",Ip="TopK",Xi="Transpose",Zi="Unpack",Qi="UnsortedSegmentSum",es="ZerosLike",ts="Step",La="FromPixels",Tp="RotateWithOffset",va="_FusedMatMul",Sa="FusedConv2D",Ia="FusedDepthwiseConv2D";const _r=Cc("kernelRegistry",()=>new Map()),ns=Cc("gradRegistry",()=>new Map());function rs(e,t){const n=Ap(e,t);return _r.get(n)}function Ta(e){return ns.get(e)}function Aa(e){const t=_r.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 pw(e){const{kernelName:t,backendName:n}=e,r=Ap(t,n);_r.has(r)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),_r.set(r,e)}function Np(e){const{kernelName:t}=e;ns.has(t)&&(pe().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`)),ns.set(t,e)}function lw(e,t){const n=Ap(e,t);if(!_r.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);_r.delete(n)}function hw(e){if(!ns.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);ns.delete(e)}function Ap(e,t){return`${t}_${e}`}const gd={};Re(gd,{arraysEqual:()=>Te,assert:()=>f,assertNonNegativeIntegerDimensions:()=>ss,assertNonNull:()=>at,assertShapesMatch:()=>P,bytesFromStringArray:()=>Dp,bytesPerElement:()=>kp,checkConversionForErrors:()=>wd,clamp:()=>Cr,computeStrides:()=>Gt,createShuffledIndices:()=>xw,decodeString:()=>Ra,distSquared:()=>fw,encodeString:()=>Fp,fetch:()=>Sw,flatten:()=>$t,getArrayFromDType:()=>Cp,getTypedArrayFromDType:()=>Er,hasEncodingLoss:()=>Op,indexToLoc:()=>Tw,inferDtype:()=>Or,inferFromImplicitShape:()=>Rp,isBoolean:()=>xd,isFunction:()=>jt,isInt:()=>X,isNumber:()=>yd,isScalarShape:()=>gw,isString:()=>Rt,isTypedArray:()=>_e,isValidDtype:()=>Ep,locToIndex:()=>Iw,makeOnesTypedArray:()=>is,makeZerosNestedTypedArray:()=>vw,makeZerosTypedArray:()=>Pt,nearestDivisor:()=>kr,nearestLargerEven:()=>uw,now:()=>Na,parseAxisParam:()=>z,randUniform:()=>mw,repeatedTry:()=>yw,rightPad:()=>Fn,shuffle:()=>bd,sizeFromShape:()=>Q,sizeToSquarishShape:()=>ww,squeezeShape:()=>_p,sum:()=>dw,tanh:()=>bw,toNestedArray:()=>Mn,toTypedArray:()=>os});function bd(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 Cr(e,t,n){return Math.max(e,Math.min(t,n))}function uw(e){return e%2===0?e:e+1}function dw(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function at(e){f(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function $t(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||_e(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 Rp(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 _p(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 Er(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 Cp(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 wd(e,t){for(let n=0;nt+=n.length),t}function Rt(e){return typeof e=="string"||e instanceof String}function xd(e){return typeof e=="boolean"}function yd(e){return typeof e=="number"}function Or(e){return Array.isArray(e)?Or(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":yd(e)?"float32":Rt(e)?"string":xd(e)?"bool":"float32"}function jt(e){return!!(e&&e.constructor&&e.call&&e.apply)}function kr(e,t){for(let n=t;n=0;--r)n[r]=n[r+1]*e[r+1];return n}function os(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=$t(e)),pe().getBool("DEBUG")&&wd(e,t),Lw(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 Ld(0,e,t)}function Lw(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function is(e,t){const n=Pt(e,t);for(let r=0;rr*o,1);if(t==null||t==="float32")return Mn(e,new Float32Array(n));if(t==="int32")return Mn(e,new Int32Array(n));if(t==="bool")return Mn(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Na(){return pe().platform.now()}function ss(e){e.forEach(t=>{f(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function Sw(e,t){return pe().platform.fetch(e,t)}function Fp(e,t="utf-8"){return t=t||"utf-8",pe().platform.encode(e,t)}function Ra(e,t="utf-8"){return t=t||"utf-8",pe().platform.decode(e,t)}function Iw(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=>{Aw(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 Aw(e,t,n){if(t!=="float32")return!1;for(let r=0;r0?x:""} `}}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 Sd(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(!Te(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 Td=20,as=3,Mp=7;function Ad(e,t,n,r){const o=Gt(t),i=Rw(e,t,n,o),a=t.length,s=_a(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 Rw(e,t,n,r){const o=Q(t),i=r[r.length-1],a=new Array(i).fill(0),s=t.length,c=n==="complex64"?ps(e):e;if(s>1)for(let p=0;pTd){const L=as*a;let S=Array.from(e.slice(0,L)),I=Array.from(e.slice((s-as)*a,s*a));return n==="complex64"&&(S=ps(S),I=ps(I)),["["+S.map((N,A)=>cs(N,o[A],n)).join(", ")+", ..., "+I.map((N,A)=>cs(N,o[s-as+A],n)).join(", ")+"]"]}const w=n==="complex64"?ps(e):Array.from(e);return["["+w.map((L,S)=>cs(L,o[S],n)).join(", ")+"]"]}const p=t.slice(1),l=r.slice(1),h=r[0]*a,d=[];if(s>Td){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||Cp(t,this.size),this.strides=Gt(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;rRa(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=qt().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Ra(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 qt().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){if(this.isDisposed)return;qt().disposeTensor(this),this.isDisposedInternal=!0}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Fr.print(this,e)}clone(){return this.throwIfDisposed(),Fr.clone(this)}toString(e=!1){const t=this.dataSync();return Ad(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Fr.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),qt().makeVariable(this,e,t,n)}}Object.defineProperty(ee,Symbol.hasInstance,{value:e=>!!e&&e.dataId!=null&&e.shape!=null&&e.dtype!=null});class Ht extends ee{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(!Te(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);qt().disposeTensor(this),this.dataId=e.dataId,qt().incRef(this,null)}dispose(){qt().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(Ht,Symbol.hasInstance,{value:e=>e instanceof ee&&e.assign!=null&&e.assign instanceof Function});var Up;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Up||(Up={}));var Wp;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Wp||(Wp={}));var Bp;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Bp||(Bp={}));var $p;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})($p||($p={}));var jp;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(jp||(jp={}));const Cw={float32:$p,int32:Wp,bool:Bp,complex64:jp};function Mr(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return Cw[e][t]}function Ew(e){return Mr(e,"int32")}const Ed={};Re(Ed,{assertTypesMatch:()=>Gp,getTensorsInContainer:()=>ls,isTensorInList:()=>Ow,makeTypesMatch:()=>V});function V(e,t){if(e.dtype===t.dtype)return[e,t];const n=Mr(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function Gp(e,t){f(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function Ow(e,t){return t.some(n=>n.id===e.id)}function ls(e){const t=[],n=new Set();return Od(e,t,n),t}function Od(e,t,n){if(e==null)return;if(e instanceof ee){t.push(e);return}if(!kw(e))return;const r=e;for(const o in r){const i=r[o];n.has(i)||(n.add(i),Od(i,t,n))}}function kw(e){return Array.isArray(e)||typeof e=="object"}class kd{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 hs{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new kd()}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 hs.nextTensorId++}nextVariableId(){return hs.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,Dn,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 d;const b=rs(r,this.backendName);let x;if(b!=null)d=()=>{const L=this.backend.numDataIds();x=b.kernelFunc({inputs:t,attrs:o,backend:this.backend});const S=Array.isArray(x)?x:[x];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(r,L,S);const I=S.map(({dataId:N,shape:A,dtype:E})=>this.makeTensorFromDataId(N,A,E));if(p){let N=this.getTensorsForGradient(r,t,I);if(N==null){a==null&&(a=[]);const A=I.filter((E,M)=>a[M]);N=(i||[]).slice().concat(A)}c=this.saveTensorsForBackwardMode(N)}return I};else{const L=S=>{if(!p)return;c=S.map(I=>this.keep(this.clone(I)))};d=()=>{const S=this.backend.numDataIds();x=this.tidy(()=>e(this.backend,L));const I=Array.isArray(x)?x:[x];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(r,S,I),I}}let w;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?s=d():(w=this.profiler.profileKernel(r,t,()=>d()),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(x)?s:s[0]}saveTensorsForBackwardMode(e){const t=e.map(n=>this.keep(this.clone(n)));return t}getTensorsForGradient(e,t,n){const r=Ta(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"&&Rt(e[0])&&(o=e.map(s=>Fp(s)));const i=r.write(o,t,n),a=new ee(t,n,i,this.nextTensorId());if(this.incRef(a,r),n==="string"){const s=this.state.tensorInfo.get(i),c=Dp(o);this.state.numBytes+=c-s.bytes,s.bytes=c}return a}makeTensorFromDataId(e,t,n,r){n=n||"float32";const o=new ee(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 Ht(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*kp(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 Ht||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=Ta(e);s!=null&&(r=s.gradFunc),r!=null&&(a.gradient=c=>(c=c.map((p,l)=>{if(p==null){const h=n[l],d=Pt(h.size,h.dtype);return this.makeTensor(d,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=ls(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 ee,()=>"The result y returned by f() must be a tensor.");const i=Sd(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?Dw(o.shape):n,Id(a,i,c=>this.tidy(c),Fw);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(jt(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{f(t.every(o=>o instanceof ee),()=>"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 ee,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),f(jt(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 ee),()=>"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=Na(),n=await this.backend.time(e);return n.wallMs=Na()-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 kd();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}}hs.nextTensorId=0;hs.nextVariableId=0;function Dw(e){const t=is(Q(e),"float32");return g.makeTensor(t,e,"float32")}function Mw(){const e=_c();if(e._tfengine==null){const t=new Ac(e);e._tfengine=new hs(t)}return fd(e._tfengine.ENV),Rd(()=>e._tfengine),e._tfengine}const g=Mw();function Fw(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,kn)}const Dd={};Re(Dd,{isBrowser:()=>Pp,isMobile:()=>Ww});function Uw(){return typeof navigator!="undefined"&&navigator!=null}function Ww(){if(Uw()){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 Pp(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}const Xt=pe();Xt.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.")});Xt.registerFlag("IS_BROWSER",()=>Pp());Xt.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Xt.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Xt.registerFlag("PROD",()=>!1);Xt.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Xt.getBool("DEBUG"));Xt.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Xt.registerFlag("IS_TEST",()=>!1);function We(e,t){let n=e;if(_e(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];const r=[];for(;Array.isArray(n)||_e(n)&&t!=="string";)r.push(n.length),n=n[0];return Array.isArray(e)&&pe().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&Fd(e,r,[]),r}function Fd(e,t,n){if(n=n||[],!Array.isArray(e)&&!_e(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),Md(r,o,t,n),e==null||!_e(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=We(e,o);!_e(e)&&!Array.isArray(e)&&(e=[e]);const a=!0,s=o!=="string"?os(e,o):$t(e,[],a);return g.makeTensor(s,i,o)}function Zt(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 m(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 Bw(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,xo)}const Ee=m({abs_:Bw});function $w(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,yo)}const qp=m({acos_:$w});function jw(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,Lo)}const Hp=m({acosh_:jw});function Gw(e,t){let n=u(e,"a","add"),r=u(t,"b","add");[n,r]=V(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,kn)}const R=m({add_:Gw});function Pw(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(!Te(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,vo)}const zp=m({addN_:Pw});function Yp(e,t){for(let n=0;ne[i]);return[n,o]}function we(e,t){const n=t.map(r=>1);return Ud(e,n,t)}function qw(e,t,n){f(Yp(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function ge(e,t){if(Yp(e,t))return null;const n=[];for(let r=0;rn.push(r)),n}function Un(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,Ai,o)}const y=m({reshape_:Hw});function zw(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,Xi,o)}const K=m({transpose_:zw});function Yw(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=ge(p,r.rank);l!=null&&(r=K(r,l),p=De(p.length,r.rank));const h=s.all(r,p);if(n){const d=we(h.shape,c);return y(h,d)}return h},i={x:r},a={axis:t,keepDims:n};return g.runKernelFunc(o,i,null,Ec,a)}const Kp=m({all_:Yw});function Vw(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=ge(p,r.rank);l!=null&&(r=K(r,l),p=De(p.length,r.rank));const h=s.any(r,p);if(n){const d=we(h.shape,c);return y(h,d)}return h},i={x:r},a={axis:t,keepDims:n};return g.runKernelFunc(o,i,null,Oc,a)}const Jp=m({any_:Vw});function Kw(e,t=0){let n=u(e,"x","argMax");const r=(a,s)=>{s([n]);let c=z(t,n.shape);const p=ge(c,n.rank);return p!=null&&(n=K(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,So,i)}const Xp=m({argMax_:Kw});function Jw(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=ge(c,n.rank);return p!=null&&(n=K(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,Io,i)}const Zp=m({argMin_:Jw});function Xw(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,To)}const Qp=m({asin_:Xw});function Zw(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,Ao)}const el=m({asinh_:Zw});function Qw(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,No)}const tl=m({atan_:Qw});function ex(e,t){let n=u(e,"a","atan2"),r=u(t,"b","atan2");[n,r]=V(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,_o)}const nl=m({atan2_:ex});function tx(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,Ro)}const rl=m({atanh_:tx});function nx(e,t){const n=u(e,"x","cast");if(!Ep(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,Dn,o)}const C=m({cast_:nx});function rx(e,t,n,r,o="NHWC",i){const a=e[3],s=[...t,a],c=yn(o);return je(e,s,n,i,r,null,null,c)}function _t(e,t,n,r,o,i,a="channelsLast"){const[s,c]=Ca(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 je(e,p,n,r,o,i,!1,a)}function Qt(e,t,n,r,o,i,a="NDHWC"){const[s,c,p]=ol(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 Ln(e,l,n,r,o,!1,h,i)}function je(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[d,b,,x]=t,[w,L]=Ca(n),[S,I]=Ca(r),N=Ur(d,S),A=Ur(b,I),{padInfo:E,outHeight:M,outWidth:D}=ox(o,p,l,w,L,N,A,i,s),$=a?x*h:x;let B;return s==="channelsFirst"?B=[c,$,M,D]:s==="channelsLast"&&(B=[c,M,D,$]),{batchSize:c,dataFormat:s,inHeight:p,inWidth:l,inChannels:h,outHeight:M,outWidth:D,outChannels:$,padInfo:E,strideHeight:w,strideWidth:L,filterHeight:d,filterWidth:b,effectiveFilterHeight:N,effectiveFilterWidth:A,dilationHeight:S,dilationWidth:I,inShape:e,outShape:B,filterShape:t}}function Ln(e,t,n,r,o,i=!1,a="channelsLast",s){let[c,p,l,h,d]=[-1,-1,-1,-1,-1];if(a==="channelsLast")[c,p,l,h,d]=e;else if(a==="channelsFirst")[c,d,p,l,h]=e;else throw new Error(`Unknown dataFormat ${a}`);const[b,x,w,,L]=t,[S,I,N]=ol(n),[A,E,M]=ol(r),D=Ur(b,A),$=Ur(x,E),B=Ur(w,M),{padInfo:j,outDepth:te,outHeight:re,outWidth:he}=ix(o,p,l,h,S,I,N,D,$,B,s),ye=i?L*d:L;let Me;return a==="channelsFirst"?Me=[c,ye,te,re,he]:a==="channelsLast"&&(Me=[c,te,re,he,ye]),{batchSize:c,dataFormat:a,inDepth:p,inHeight:l,inWidth:h,inChannels:d,outDepth:te,outHeight:re,outWidth:he,outChannels:ye,padInfo:j,strideDepth:S,strideHeight:I,strideWidth:N,filterDepth:b,filterHeight:x,filterWidth:w,effectiveFilterDepth:D,effectiveFilterHeight:$,effectiveFilterWidth:B,dilationDepth:A,dilationHeight:E,dilationWidth:M,inShape:e,outShape:Me,filterShape:t}}function sx(e,t,n,r,o){r==null&&(r=il(e,t,n));const i=e[0],a=e[1],s=Wn((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=Wn((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 ax(e,t,n,r,o,i){o==null&&(o=il(e,t,r));const a=e[0],s=e[1],c=e[2],p=Wn((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=Wn((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=Wn((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 il(e,t,n,r=1){const o=Ur(t,r);return Math.floor((e[0]*(n-1)-n+o)/2)}function Ca(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function ol(e){return typeof e=="number"?[e,e,e]:e}function Ur(e,t){return t<=1?e:e+(e-1)*(t-1)}function ox(e,t,n,r,o,i,a,s,c){let p,l,h;if(typeof e=="number"){const d=e===0?"VALID":"NUMBER";p={top:e,bottom:e,left:e,right:e,type:d};const b=sx([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 d=Math.max(0,(l-1)*r+i-t),b=Math.max(0,(h-1)*o+a-n),x=Math.floor(d/2),w=d-x,L=Math.floor(b/2),S=b-L;p={top:x,bottom:w,left:L,right:S,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 d=c==="channelsLast"?e[1][0]:e[2][0],b=c==="channelsLast"?e[1][1]:e[2][1],x=c==="channelsLast"?e[2][0]:e[3][0],w=c==="channelsLast"?e[2][1]:e[3][1],L=d===0&&b===0&&x===0&&w===0?"VALID":"EXPLICIT";p={top:d,bottom:b,left:x,right:w,type:L},l=Wn((t-i+d+b)/r+1,s),h=Wn((n-a+x+w)/o+1,s)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outHeight:l,outWidth:h}}function ix(e,t,n,r,o,i,a,s,c,p,l){let h,d,b,x;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=ax([t,n,r,1],s,1,o,e,l);d=L[0],b=L[1],x=L[2]}else if(e==="same"){d=Math.ceil(t/o),b=Math.ceil(n/i),x=Math.ceil(r/a);const w=(d-1)*o+s-t,L=(b-1)*i+c-n,S=(x-1)*a+p-r,I=Math.floor(w/2),N=w-I,A=Math.floor(L/2),E=L-A,M=Math.floor(S/2),D=S-M;h={top:A,bottom:E,left:M,right:D,front:I,back:N,type:"SAME"}}else if(e==="valid")h={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},d=Math.ceil((t-s+1)/o),b=Math.ceil((n-c+1)/i),x=Math.ceil((r-p+1)/a);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:h,outDepth:d,outHeight:b,outWidth:x}}function Wn(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 ct(e){const[t,n,r]=Ca(e);return t===1&&n===1&&r===1}function le(e,t){return ct(e)||ct(t)}function yn(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function cx(e,t,n,r,o){const i=u(e,"x","avgPool","float32"),a=1;f(le(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=y(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,x)=>{const w=_t(s.shape,t,n,1,r,o);return x([s]),w.filterWidth===1&&w.filterHeight===1&&Te(w.inShape,w.outShape)?s.clone():b.avgPool(s,w)},l={x:s},h={filterSize:t,strides:n,pad:r,dimRoundingMode:o};let d=g.runKernelFunc(p,l,null,Co,h);return d=C(d,i.dtype),c?y(d,[d.shape[1],d.shape[2],d.shape[3]]):d}const pt=m({avgPool_:cx});function px(){pe().set("PROD",!0)}function lx(){pe().set("DEBUG",!0)}function hx(){pe().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Le(e){pe().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}Cd(Le);function ux(){g.disposeVariables()}function dx(){return g}function mx(){return g.memory()}function fx(e){return g.profile(e)}function k(e,t){return g.tidy(e,t)}function ve(e){const t=ls(e);t.forEach(n=>n.dispose())}function sl(e){return g.keep(e)}function gx(e){return g.time(e)}function bx(e){return g.setBackend(e)}function wx(){return g.ready()}function xx(){return g.backendName}function yx(e){g.removeBackend(e)}function Lx(e){return g.findBackend(e)}function vx(e){return g.findBackendFactory(e)}function Sx(e,t,n=1){return g.registerBackend(e,t,n)}function Ix(){return g.backend}function Tx(e,t){pe().setPlatform(e,t)}function Ax(e,t,n,r,o,i="NDHWC",a){a==null?a=[1,1,1]:Le("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=y(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(le(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=(x,w)=>{a==null&&(a=[1,1,1]);const L=Qt(c.shape,t,n,a,r,o,i);return w([c]),x.avgPool3d(c,L)},h={x:c},d={filterSize:t,strides:n,pad:r,dimRoundingMode:o,dataFormat:i,dilations:a};let b=g.runKernelFunc(l,h,null,Eo,d);return b=C(b,c.dtype),p?y(b,[b.shape[1],b.shape[2],b.shape[3],b.shape[4]]):b}const al=m({avgPool3d_:Ax});function cl(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 pl(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!_e(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=r!=="string"?os(e,r):$t(e,[],!0),g.makeTensor(e,t,r)}function ze(e,t,n){const r=We(e,n);return He(e,t,r,n)}function Nx(e,t=0){f(e.length>=1,()=>"Pass at least one tensor to concat");let n=Zt(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=pl(n.map(p=>p.shape),r);if(Q(o)===0)return ze([],o);if(n=n.filter(p=>p.size>0),n.length===1)return n[0];const i=n.map(p=>p.shape);cl(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,Uo,c)}const Z=m({concat_:Nx});function Rx(e,t,n=!1,r=!1){let o=u(e,"a","matMul"),i=u(t,"b","matMul");[o,i]=V(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),d=Q(l),b=Q(h);f(Te(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 x=o.shape.slice(0,-2).concat([c,p]),w=n?y(o,[d,a,c]):y(o,[d,c,a]),L=r?y(i,[b,p,s]):y(i,[b,s,p]),S=(E,M)=>(M([w,L]),E.batchMatMul(w,L,n,r)),I={a:w,b:L},N={transposeA:n,transposeB:r},A=g.runKernelFunc(S,I,null,Oo,N);return y(A,x)}const Y=m({matMul_:Rx});function _x(e,t){let n=u(e,"a","mul"),r=u(t,"b","mul");[n,r]=V(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,bi)}const v=m({mul_:_x});function Cx(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,Bi)}const lt=m({sigmoid_:Cx});const Wd={};Re(Wd,{assertParamsValid:()=>ll,computeFlatOffset:()=>Ox,computeOutShape:()=>hl,isSliceContinous:()=>Ex,maskToAxes:()=>us,parseSliceParams:()=>ds,startForAxis:()=>gl,startIndicesWithElidedDims:()=>dl,stopForAxis:()=>bl,stopIndicesWithElidedDims:()=>ml,stridesForAxis:()=>fl,stridesWithElidedDims:()=>ul});function ll(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 us(e){const t=[];let n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function hl(e,t,n){const r=[];for(let o=0;o-1)i[s]=0;else{const c=Bd(t,n,s);let p=r[c];e&1<-1)i[s]=Number.MAX_SAFE_INTEGER;else{const c=Bd(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=Cr(0,a,c-1),a}function bl(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=Cr(0,a,c):a=Cr(-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 Ox(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 kx(e,t,n){const r=u(e,"x","slice");if(r.rank===0)throw new Error("Slicing scalar is not possible");const[o,i]=ds(r,t,n);ll(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,Fi,c)}const G=m({slice_:kx});function Dx(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,Ki)}const Wr=m({tanh_:Dx});function Fx(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"),d=Z([p,h],1),b=Y(d,s),x=R(b,c),w=x.shape[0],L=x.shape[1]/4,S=[w,L],I=G(x,[0,0],S),N=G(x,[0,L],S),A=G(x,[0,L*2],S),E=G(x,[0,L*3],S),M=R(v(lt(I),Wr(N)),v(l,lt(R(a,A)))),D=v(Wr(M),lt(E));return[M,D]}const wl=m({basicLSTMCell_:Fx});function Mx(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,ko,s)}const Bn=m({batchToSpaceND_:Mx});function jd(e){let t;return e.rank===0||e.rank===1?t=y(e,[1,1,1,e.size]):e.rank===2?t=y(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=y(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function Ux(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=jd(a),d=(L,S)=>(S([h,s,c,p]),L.batchNorm(h,Ea(s),Ea(c),Ea(l),Ea(p),i)),b={x:h,scale:p,offset:l,mean:s,variance:c},x={varianceEpsilon:i},w=g.runKernelFunc(d,b,null,Qo,x);return y(w,a.shape)}function Ea(e){return e==null?null:e.rank===0?y(e,[e.size]):e.rank===1?e:e.rank===2?y(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?y(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}const Ct=m({batchNorm_:Ux});function Wx(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}.`),Ct(a,s,c,l,p,i)}const xl=m({batchNorm2d_:Wx});function Bx(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}.`),Ct(a,s,c,l,p,i)}const yl=m({batchNorm3d_:Bx});function $x(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}.`),Ct(a,s,c,l,p,i)}const Ll=m({batchNorm4d_:$x});function jx(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,ni)}const Et=m({clone_:jx});function Gx(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 Et(n);const s=l=>l.tile(n,i),c={x:n},p={shape:t,inputShape:o};return g.runKernelFunc(s,c,null,Do,p)}const Br=m({broadcastTo_:Gx});function Be(e,t="float32",n){return t=t||"float32",ss(e),new Dr(e,t,n)}function Px(e){const t=u(e,"x","ceil"),n={x:t};return g.runKernelFunc(r=>r.ceil(t),n,null,Fo)}const vl=m({ceil_:Px});function qx(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,Mo,i)}const $n=m({clipByValue_:qx});function Hx(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,Fc)}const Ye=m({complex_:Hx});function zx(e){return Z(e,0)}const Sl=m({concat1d_:zx});function Yx(e,t){return Z(e,t)}const Il=m({concat2d_:Yx});function Vx(e,t){return Z(e,t)}const Tl=m({concat3d_:Vx});function Kx(e,t){return Z(e,t)}const Al=m({concat4d_:Kx});function Jx(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=y(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(le(n,i),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);const d=(L,S)=>{const I=yn(o),N=je(p.shape,c.shape,n,i,r,a,!1,I),A=L.conv2d(p,c,N);return S([p,c]),A},b={x:p,filter:c},x={strides:n,pad:r,dataFormat:o,dilations:i,dimRoundingMode:a},w=g.runKernelFunc(d,b,null,Wo,x);return l?y(w,[w.shape[1],w.shape[2],w.shape[3]]):w}const xe=m({conv2d_:Jx});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=y(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(le(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=y(c,[1,c.shape[0],c.shape[1],c.shape[2]]),d=y(p,[p.shape[0],1,p.shape[1],p.shape[2]]),b=[1,n],x=[1,i],w="NHWC",L=xe(d,h,b,r,w,x,a);return l?y(L,[L.shape[2],L.shape[3]]):y(L,[L.shape[0],L.shape[2],L.shape[3]])}const Nl=m({conv1d_:Xx});function Zx(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=y(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 d=(L,S)=>{const I=1,N=yn(i),A=je(s,n.shape,r,I,o,a,!1,N),E=L.conv2dDerInput(c,n,A);return S([c,n]),E},b={dy:c,filter:n},x={strides:r,pad:o,dataFormat:i,dimRoundingMode:a,inputShape:s},w=g.runKernelFunc(d,b,null,Bo,x);return p?y(w,[w.shape[1],w.shape[2],w.shape[3]]):w}const $r=m({conv2DBackpropInput_:Zx});function Qx(e,t,n,r,o,i){const a=u(e,"x","conv2dTranspose"),s=u(t,"filter","conv2dTranspose");return $r(n,a,s,r,o,"NHWC",i)}const Rl=m({conv2dTranspose_:Qx});function ey(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=y(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(le(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=(x,w)=>{const L=Ln(c.shape,s.shape,n,i,r),S=x.conv3d(c,s,L);return w([c,s]),S},h={x:c,filter:s},d={strides:n,pad:r,dataFormat:o,dilations:i},b=g.runKernelFunc(l,h,null,$o,d);return p?y(b,[b.shape[1],b.shape[2],b.shape[3],b.shape[4]]):b}const _l=m({conv3d_:ey});function ty(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=y(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=x=>{const w=1,L=Ln(i,n.shape,r,w,o);return x.conv3dDerInput(a,n,L)},h={dy:a},d={pad:o},b=g.runKernelFunc(l,h,null,Wc,d);return s?y(b,[b.shape[1],b.shape[2],b.shape[3],b.shape[4]]):b}const Oa=m({conv3DBackpropInput_:ty});function ny(e,t,n,r,o){const i=u(e,"x","conv3dTranspose"),a=u(t,"filter","conv3dTranspose");return Oa(n,i,a,r,o)}const Cl=m({conv3dTranspose_:ny});function ry(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,jo)}const jn=m({cos_:ry});function oy(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,Go)}const ms=m({cosh_:oy});function iy(e,t=0,n=!1,r=!1){const o=u(e,"x","cumsum"),i=(c,p)=>{const l=ge([t],o.rank);let h=o;l!=null&&(h=K(o,l));const d=De(1,o.rank)[0];let b=c.cumsum(h,d,n,r);if(p([o]),l!=null){const x=Un(l);b=K(b,x)}return b},a={x:o},s={axis:t,exclusive:n,reverse:r};return g.runKernelFunc(i,a,null,Po,s)}const fs=m({cumsum_:iy});function sy(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,$c,p)}const El=m({depthToSpace_:sy});function ay(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=y(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(le(n,i),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);const S=je(p.shape,c.shape,n,i,r,a,!0),I=w.depthwiseConv2D(p,c,S);return L([p,c]),I},d={x:p,filter:c},b={strides:n,pad:r,dataFormat:o,dilations:i,dimRoundingMode:a},x=g.runKernelFunc(h,d,null,qo,b);return l?y(x,[x.shape[1],x.shape[2],x.shape[3]]):x}const en=m({depthwiseConv2d_:ay});function cy(e){const t=u(e,"x","diag"),n=o=>{const i=y(t,[t.size]),a=o.diag(i),s=[...e.shape,...e.shape];return y(a,s)},r={x:t};return g.runKernelFunc(n,r,null,Pc)}const Ol=m({diag_:cy});function py(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=y(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},d=g.runKernel(Ho,l,h);return p?y(d,[d.shape[1],d.shape[2],d.shape[3]]):d}const kl=m({dilation2d_:py});function ly(e,t){let n=u(e,"a","floorDiv"),r=u(t,"b","floorDiv");[n,r]=V(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,Zo)}const gs=m({floorDiv_:ly});function hy(e,t){let n=u(e,"a","div"),r=u(t,"b","div");if([n,r]=V(n,r),n.dtype==="int32"&&r.dtype==="int32")return gs(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,zo,a)}const F=m({div_:hy});function uy(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,Yc)}const tn=m({equal_:dy});function my(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=Br(r,a),c=Br(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,d)=>{const b=h.select(i,s,c);return d([i]),b},l={condition:i,t:s,e:c};return g.runKernelFunc(p,l,null,ki)}const Oe=m({where_:my});function fy(e){const t=u(e,"x","zerosLike"),n={x:t};return g.runKernelFunc(r=>r.zerosLike(t),n,null,es)}const W=m({zerosLike_:fy});function gy(e,t){let n=u(e,"a","div"),r=u(t,"b","div");[n,r]=V(n,r);const o=F(n,r),i=W(o),a=tn(r,i);return Oe(a,i,o)}const Dl=m({divNoNan_:gy});function by(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=y(n,[1,-1]),s=y(r,[-1,1]),c=Y(a,s);return y(c,[])}else if(n.rank===1&&r.rank===2){const a=y(n,[1,-1]),s=y(r,[r.shape[0],r.shape[1]]),c=Y(a,s);return y(c,[c.size])}else if(n.rank===2&&r.rank===1){const a=y(r,[-1,1]),s=Y(n,a);return y(s,[s.size])}else{const a=y(r,[r.shape[0],r.shape[1]]),s=Y(n,a);return s}}const Fl=m({dot_:by});function wy(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,Yo)}const bs=m({elu_:wy});function xy(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=C(t,"float32"));const n={x:t};return g.runKernelFunc((r,o)=>{const i=r.erf(t);return o([t]),i},n,null,Vo)}const Ml=m({erf_:xy});function yy(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,Ko)}const Se=m({exp_:yy});function Ly(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),y(r,o)}const et=m({expandDims_:Ly});function vy(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,Jo)}const Ul=m({expm1_:vy});function Sy(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,Ji,s,i)}const Ot=m({tile_:Sy});function Iy(e,t,n,r="float32"){t==null&&(t=e);const o=Be([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,Vc)}const Gn=m({fft_:Ty});function Ge(e,t,n){const r={shape:e,value:t,dtype:n};return g.runKernelFunc(o=>o.fill(e,t,n),{},null,Kc,r)}function Ay(e){const t=u(e,"x","floor"),n={x:t};return g.runKernelFunc(r=>r.floor(t),n,null,Xo)}const Pn=m({floor_:Ay});const ka=30;function Ny(e){return e<=ka?e:kr(e,Math.floor(Math.sqrt(e)))}const Gd={};Re(Gd,{collectGatherOpShapeInfo:()=>Wl,computeOutShape:()=>_y,segOpComputeOptimalWindowSize:()=>Ry});function Ry(e,t){let n=!1,r;for(e<=ka?(r=e,n=!0):r=kr(e,Math.floor(Math.sqrt(e)));!n;)r>t||r===e?n=!0:r=kr(e,r+1);return r}function _y(e,t,n){const r=[],o=e.length;for(let i=0;i{const l=z(n,r.shape)[0],h=Wl(r,o,l),d=c.gather(r,y(o,[o.size]),l);return p([r,o]),y(d,h.outputShape)};return g.runKernelFunc(s,i,null,ei,a)}const qn=m({gather_:Cy});function Ey(e,t){let n=u(e,"a","greater"),r=u(t,"b","greater");[n,r]=V(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,Zc)}const tt=m({greater_:Ey});function Oy(e,t){let n=u(e,"a","greaterEqual"),r=u(t,"b","greaterEqual");[n,r]=V(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,ti)}const ht=m({greaterEqual_:Oy});function ky(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=y(e,[o,r]),a=n.ifft(i);return y(a,e.shape)},t,null,Qc)}const vn=m({ifft_:ky});function Dy(e){const t=u(e,"input","imag"),n=o=>o.imag(t),r={input:t};return g.runKernelFunc(n,r,null,ep)}const nn=m({imag_:Dy});function Fy(e){const t=u(e,"input","real"),n=o=>o.real(t),r={input:t};return g.runKernelFunc(n,r,null,bp)}const zt=m({real_:Fy});function My(e,t){const n=u(e,"x","reverse"),r=a=>{const s=z(t,n.shape);if(n.rank===0)return Et(n);const c=a.reverse(n,s);return y(c,n.shape)},o={x:n},i={dims:t};return g.runKernelFunc(r,o,null,Ci,i)}const Ve=m({reverse_:My});function _(e,t){if((_e(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"&&_e(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");const n=[],r=[];return He(e,n,r,t)}function Uy(e){const t=e.shape[e.shape.length-1],n=e.size/t;let r;if(t<=2){const o=y(e,[n,t]);r=vn(o)}else{const o=[n,2*(t-1)],i=y(zt(e),[n,t]),a=y(nn(e),[n,t]),s=Ve(G(i,[0,1],[n,t-2]),1),c=v(Ve(G(a,[0,1],[n,t-2]),1),_(-1)),p=Z([i,s],1),l=Z([a,c],1),h=y(Ye(p,l),[o[0],o[1]]);r=vn(h)}if(r=zt(r),e.rank===3&&e.shape[0]!==0){const o=r,i=e.shape[0];r=y(r,[i,r.shape[0]/i,r.shape[1]]),o.dispose()}return r}const xs=m({irfft_:Uy});function Wy(e){const t=u(e,"x","isFinite"),n={x:t};return g.runKernelFunc(r=>r.isFinite(t),n,null,ri)}const Bl=m({isFinite_:Wy});function By(e){const t=u(e,"x","isInf"),n={x:t};return g.runKernelFunc(r=>r.isInf(t),n,null,oi)}const $l=m({isInf_:By});function $y(e){const t=u(e,"x","isNaN"),n={x:t};return g.runKernelFunc(r=>r.isNaN(t),n,null,ii)}const jl=m({isNaN_:$y});function jy(e,t){let n=u(e,"a","maximum"),r=u(t,"b","maximum");[n,r]=V(n,r),n.dtype==="bool"&&(n=C(n,"int32"),r=C(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,hi)}const kt=m({maximum_:jy});function Gy(e,t=.2){const n=u(e,"x","leakyRelu");return kt(v(_(t),n),n)}const Gl=m({leakyRelu_:Gy});function Py(e,t){let n=u(e,"a","less"),r=u(t,"b","less");[n,r]=V(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,tp)}const Hn=m({less_:Py});function qy(e,t){let n=u(e,"a","lessEqual"),r=u(t,"b","lessEqual");[n,r]=V(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,np)}const ut=m({lessEqual_:qy});function Pl(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,rp,r)}function Hy(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=y(i,[1,i.shape[0],i.shape[1],i.shape[2]]));const c=(d,b)=>{const x=d.localResponseNormalization4D(a,t,n,r,o);return b([a,x]),x},p={x:a},l={depthRadius:t,bias:n,alpha:r,beta:o},h=g.runKernelFunc(c,p,null,pi,l);return s?y(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const ql=m({localResponseNormalization_:Hy});function zy(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,si)}const yt=m({log_:zy});function Yy(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,ai)}const ys=m({log1p_:Yy});function Vy(e){return f(jt(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)"),Da(a),a[0]})}}function Ky(e){return f(jt(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=Zt(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,...])"),Da(a),a})}}function Jy(e){return f(jt(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{f(t instanceof ee,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),f(n==null||n instanceof ee,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");const{grads:r,value:o}=g.gradients(()=>e(t),[t],n);return Da(r),{grad:r[0],value:o}}}function Xy(e){return f(jt(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{f(Array.isArray(t)&&t.every(o=>o instanceof ee),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),f(n==null||n instanceof ee,()=>"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,...])"),Da(r.grads),r}}function Hl(e,t){f(jt(e),()=>"The f passed in variableGrads(f) must be a function"),f(t==null||Array.isArray(t)&&t.every(p=>p instanceof Ht),()=>"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 Ke(e){return g.customGrad(e)}function Da(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 Zy(e){const t=u(e,"x","neg"),n={x:t};return g.runKernelFunc(r=>r.neg(t),n,null,wi)}const ne=m({neg_:Zy});function Qy(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,$i)}const Ls=m({softplus_:Qy});function eL(e){const t=u(e,"x","logSigmoid"),n=Ke(r=>{const o=ne(Ls(ne(r))),i=a=>{const s=v(a,lt(ne(r)));return s};return{value:o,gradFunc:i}});return n(t)}const zl=m({logSigmoid_:eL});function tL(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=ge(l,r.rank);let d=r;h!=null&&(d=K(r,h),l=De(l.length,d.rank));const b=s.max(d,l);h!=null&&d.dispose();let x=b;if(n){const w=we(x.shape,z(t,r.shape));x=y(x,w),b.dispose()}return c([r,x]),x},i={x:r},a={reductionIndices:t,keepDims:n};return g.runKernelFunc(o,i,null,li,a)}const dt=m({max_:tL});function nL(e,t){let n=u(e,"a","sub"),r=u(t,"b","sub");[n,r]=V(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,Yi)}const O=m({sub_:nL});function rL(e,t=null,n=!1){let r=u(e,"x","sum");r.dtype==="bool"&&(r=C(r,"int32"));const o=(s,c)=>{c([r]);const p=z(t,r.shape),l=ge(p,r.rank);let h=p,d=r;l!=null&&(d=K(r,l),h=De(h.length,r.rank));let b=s.sum(d,h);if(n){const x=we(b.shape,p);b=y(b,x)}return b},i={x:r},a={axis:t,keepDims:n};return g.runKernelFunc(o,i,null,Gi,a)}const U=m({sum_:rL});function oL(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=dt(e,t,!0),l=O(e,p),h=O(C(l,"float32"),yt(U(Se(l),t,c)));return s([h]),h},o={logits:n},i={axis:t};return g.runKernelFunc(r,o,null,ci,i)}const Yl=m({logSoftmax_:oL});function iL(e,t=null,n=!1){const r=u(e,"x","logSumExp"),o=z(t,r.shape),i=dt(r,o,!0),a=O(r,i),s=Se(a),c=U(s,o),p=yt(c),l=R(y(i,p.shape),p);if(n){const h=we(l.shape,o);return y(l,h)}return l}const vs=m({logSumExp_:iL});function sL(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,op)}const Lt=m({logicalAnd_:sL});function aL(e){const t=u(e,"x","logicalNot","bool"),n={x:t};return g.runKernelFunc(r=>r.logicalNot(t),n,null,ip)}const zn=m({logicalNot_:aL});function cL(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,sp)}const Ss=m({logicalOr_:cL});function pL(e,t){const n=u(e,"a","logicalXor","bool"),r=u(t,"b","logicalXor","bool");return q(n.shape,r.shape),Lt(Ss(e,t),zn(Lt(e,t)))}const Vl=m({logicalXor_:pL});function lL(e,t,n,r,o){const i=u(e,"x","maxPool"),a=1;let s=i,c=!1;i.rank===3&&(c=!0,s=y(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(le(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,x)=>{const w=_t(s.shape,t,n,1,r,o);let L;return w.filterWidth===1&&w.filterHeight===1&&Te(w.inShape,w.outShape)?L=s.clone():L=b.maxPool(s,w),x([s,L]),L},l={x:s},h={filterSize:t,strides:n,pad:r,dimRoundingMode:o},d=g.runKernelFunc(p,l,null,ui,h);return c?y(d,[d.shape[1],d.shape[2],d.shape[3]]):d}const Ae=m({maxPool_:lL});function hL(e,t=[1,1,1],n,r,o,i="NDHWC",a){a==null?a=[1,1,1]:Le("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=y(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(le(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=(x,w)=>{a==null&&(a=[1,1,1]);const L=Qt(c.shape,t,n,a,r,o,i),S=x.maxPool3d(c,L);return w([c,S]),S},h={x:c},d={filterSize:t,strides:n,pad:r,dimRoundingMode:o,dataFormat:i,dilations:a},b=g.runKernelFunc(l,h,null,di,d);return p?y(b,[b.shape[1],b.shape[2],b.shape[3],b.shape[4]]):b}const Kl=m({maxPool3d_:hL});function uL(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(lp,a,s);return{result:c[0],indexes:c[1]}}const Jl=m({maxPoolWithArgmax_:uL});function Ce(e,t="float32"){if(t==="complex64"){const r=Ce(e,"float32"),o=Ce(e,"float32");return Ye(r,o)}const n=Pt(Q(e),t);return g.makeTensor(n,e,t)}function vt(e,t="float32"){if(t==="complex64"){const r=vt(e,"float32"),o=Ce(e,"float32");return Ye(r,o)}const n=is(Q(e),t);return g.makeTensor(n,e,t)}function dL(e,t=null,n=!1){const r=u(e,"x","mean"),o=z(t,r.shape),i=Vp(r.shape,o),a=i[1],s=Q(a),c=Ke(p=>{const l=_(s),h=l.dtype===p.dtype?p:C(p,l.dtype),d=F(h,l),b=U(d,t,n),x=w=>{const L=p.shape.slice();o.forEach(N=>{L[N]=1});const S=y(w,L),I=F(v(S,vt(p.shape,"float32")),s);return I};return{value:b,gradFunc:x}});return c(r)}const Sn=m({mean_:dL});function mL(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=ge(l,r.rank);let d=r;h!=null&&(d=K(r,h),l=De(l.length,r.rank));const b=s.min(d,l);h!=null&&d.dispose();let x=b;if(n){const w=we(x.shape,p);x=y(b,w),b.dispose()}return c([r,x]),x},i={x:r},a={axis:t,keepDims:n};return g.runKernelFunc(o,i,null,mi,a)}const In=m({min_:mL});function fL(e,t){let n=u(e,"a","minimum"),r=u(t,"b","minimum");[n,r]=V(n,r),n.dtype==="bool"&&(n=C(n,"int32"),r=C(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,fi)}const Yn=m({minimum_:fL});function gL(e,t){let n=u(e,"a","mod"),r=u(t,"b","mod");[n,r]=V(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,gi)}const Is=m({mod_:gL});function bL(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=m({square_:bL});function wL(e,t=null,n=!1){e=u(e,"x","moments");const r=z(t,e.shape),o=Sn(e,r,n);let i=o.shape;n||(i=we(o.shape,r));const a=H(O(C(e,"float32"),y(o,i))),s=Sn(a,r,n);return{mean:o,variance:s}}const Xl=m({moments_:wL});function xL(e,t,n,r){const o=u(t,"data","multiRNNCell"),i=Zt(n,"c","multiRNNCell"),a=Zt(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?y(o,[1,-1]):o,c=g.runKernelFunc(p=>p.multinomial(s,r,t,n),{logits2D:s});return a===1?y(c,[c.size]):c}const Ql=m({multinomial_:yL});function LL(e,t){let n=u(e,"a","notEqual"),r=u(t,"b","notEqual");[n,r]=V(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,hp)}const Vn=m({notEqual_:LL});function vL(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]),y(p.oneHot(y(o,[o.size]),t,n,r),i)),s={indices:o},c={depth:t,onValue:n,offValue:r};return g.runKernelFunc(a,s,null,yi,c)}const jr=m({oneHot_:vL});function SL(e){const t=u(e,"x","onesLike"),n=(o,i)=>{if(t.dtype==="complex64"){const a=Fa(zt(t)),s=W(nn(t));return Ye(a,s)}return o.onesLike(t)},r={x:t};return g.runKernelFunc(n,r,null,xi)}const Fa=m({onesLike_:SL});function IL(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=y(n,[-1,1]),i=y(r,[1,-1]);return Y(o,i)}const eh=m({outerProduct_:IL});function TL(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,Li,i)}const Pe=m({pad_:TL});function AL(e,t,n=0){return f(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),Pe(e,[t],n)}const th=m({pad1d_:AL});function NL(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."),Pe(e,t,n)}const nh=m({pad2d_:NL});function RL(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."),Pe(e,t,n)}const rh=m({pad3d_:RL});function _L(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."),Pe(e,t,n)}const oh=m({pad4d_:_L});function CL(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,Pi,a)}const Kn=m({spaceToBatchND_:CL});function kL(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=y(a,[1,a.shape[0],a.shape[1],a.shape[2]])),f(le(i,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${i} and dilations '${o}'`);const p=_t(s.shape,t,i,o,r),l=[p.dilationHeight,p.dilationWidth];let h;r==="same"?h=OL([p.filterHeight,p.filterWidth],l):h=[[0,0],[0,0]];const d=l[0]===1&&l[1]===1,[b,x]=EL([p.inHeight,p.inWidth],l,h),w=d?r:"valid",L=d?s:Kn(s,l,b),S=n==="avg"?()=>pt(L,t,i,w):()=>Ae(L,t,i,w),I=S(),N=d?I:Bn(I,l,x);return c?y(N,[N.shape[1],N.shape[2],N.shape[3]]):N}function EL(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 OL(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 ih=m({pool_:kL});function DL(e,t){let n=u(e,"base","pow"),r=u(t,"exp","pow");[n,r]=V(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,vi)}const Je=m({pow_:DL});function FL(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,Si)}const Ts=m({prelu_:FL});function sh(e,t=!1){console.log(e.toString(t))}function ML(e,t=null,n=!1){let r=u(e,"x","prod");const o=s=>{r.dtype==="bool"&&(r=C(r,"int32"));const c=z(t,r.shape),p=ge(c,r.rank);let l=c,h=r;p!=null&&(h=K(r,p),l=De(l.length,r.rank));let d=s.prod(h,l);if(n){const b=we(d.shape,c);d=y(d,b)}return d},i={x:r},a={axis:t,keepDims:n};return g.runKernelFunc(o,i,null,fp,a)}const ah=m({prod_:ML});function UL(e,t,n){const r=Q(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;iqd,expectArrayBuffersEqual:()=>qL,expectArraysClose:()=>BL,expectArraysEqual:()=>jL,expectNumbersClose:()=>GL,expectPromiseToFail:()=>$L,expectValuesInRange:()=>PL,testEpsilon:()=>ph});const WL=.001,qd=.1;function BL(e,t,n){return n==null&&(n=ph()),lh(e,t,(r,o)=>hh(r,o,n))}function ph(){return g.backend.floatPrecision()===32?WL:qd}function lh(e,t,n){let r=!0;if((_e(e)||_e(t))&&(r=!1),_e(e)&&_e(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=We(e),s=We(t);if(!Te(a,s))throw new Error(`Arrays have different shapes. Actual: [${a}]. Expected: [${s}]`)}const o=_e(e)?e:$t(e),i=_e(t)?t:$t(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 jL(e,t){const n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Rt(e)||Rt(e[0])||Rt(t)||Rt(t[0])?lh(e,n,(r,o)=>r==o):lh(e,t,(r,o)=>hh(r,o,0))}function GL(e,t,n){if(n==null&&(n=ph()),!hh(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function hh(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function PL(e,t,n){for(let r=0;rn)throw new Error(`Value out of range:${e[r]} low: ${t}, high: ${n}`)}function qL(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}const Ma=mu(Cu());class As{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=Ma.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 Hd{constructor(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;const o=r||Math.random();this.randu=Ma.alea(o.toString()),this.randn=new As(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=Ma.alea(r)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function HL(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 Hd(t,n,r,o),a=Be(e,r);for(let s=0;s{const a=e===t,s=e1;if(a||s||c)return Ce([0],r);const p=Math.abs(Math.ceil((t-e)/n)),l=Pt(p,r);t{const i=r.reciprocal(t);return o([t]),i},n,null,Ii)}const mh=m({reciprocal_:VL});function KL(e){const t=u(e,"x","relu"),n=(o,i)=>(i([t]),t.dtype==="bool"?C(t,"int32"):o.relu(t)),r={x:t};return g.runKernelFunc(n,r,null,Ti)}const ie=m({relu_:KL});function JL(e){const t=u(e,"x","relu6"),n=(o,i)=>(i([t]),t.dtype==="bool"?C(t,"int32"):o.relu6(t)),r={x:t};return g.runKernelFunc(n,r,null,_i)}const Rs=m({relu6_:JL});function XL(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}.`),Ve(t,0)}const fh=m({reverse1d_:XL});function ZL(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}.`),Ve(n,t)}const gh=m({reverse2d_:ZL});function QL(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}.`),Ve(n,t)}const bh=m({reverse3d_:QL});function ev(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}.`),Ve(n,t)}const wh=m({reverse4d_:ev});function xh(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 tv(e,t,n=0){const r=u(e,"x","split"),o=(s,c)=>{const p=z(n,r.shape)[0],l=xh(r,t,p);return s.split(r,l,p)},i={x:r},a={numOrSizeSplits:t,axis:n};return g.runKernelFunc(o,i,null,qi,a)}const Yt=m({split_:tv});function nv(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=G(e,x,w),n=t}else if(t!=null&&t>n){const x=e.shape.map(w=>w);x[e.shape.length-1]=t-n,o=Z([e,Ce(x)],e.shape.length-1),n=t}else o=e;const i=W(o),a=y(Ye(o,i),[r,n]),s=Gn(a),c=Math.floor(n/2)+1,p=zt(s),l=nn(s),h=Yt(p,[c,n-c],p.shape.length-1),d=Yt(l,[c,n-c],l.shape.length-1),b=o.shape.slice();return b[o.shape.length-1]=c,y(Ye(h[0],d[0]),b)}const Jn=m({rfft_:nv});function rv(e){const t=u(e,"x","round"),n={x:t};return g.runKernelFunc(r=>r.round(t),n,null,Ei)}const yh=m({round_:rv});function ov(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,Oi)}const _s=m({rsqrt_:ov});function iv(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,Di)}const Lh=m({selu_:iv});function sv(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=y(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 d=c.shape[2],b=c.shape[3];f(p.shape[2]===d*b,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*b}, but got ${p.shape[2]}.`);const x=en(l,c,r,o,a,i),w=1,L=xe(x,p,w,"valid",a);return h?y(L,[L.shape[1],L.shape[2],L.shape[3]]):L}const Xn=m({separableConv2d_:sv});async function av(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,Wi)}const Sh=m({sign_:cv});function pv(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,Mi)}const Cs=m({sin_:pv});function lv(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,Ui)}const Es=m({sinh_:lv});function hv(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`),G(r,[t],[n])}const Ih=m({slice1d_:hv});function uv(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`),G(r,t,n)}const Th=m({slice2d_:uv});function dv(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`),G(r,t,n)}const Os=m({slice3d_:dv});function mv(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`),G(r,t,n)}const Ah=m({slice4d_:mv});function fv(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,Hi,o)}const rn=m({softmax_:fv});function gv(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,ji)}const me=m({sqrt_:gv});function bv(e,t){let n=u(e,"a","squaredDifference"),r=u(t,"b","squaredDifference");[n,r]=V(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,zi,a)}const Zn=m({squaredDifference_:bv});function wv(e,t){const n=u(e,"x","squeeze");return y(n,_p(n.shape,t).newShape)}const Qn=m({squeeze_:wv});function xv(e,t=0){const n=Zt(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 Z(a,t)}const ke=m({stack_:xv});function yv(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,ts,o)}const Dt=m({step_:yv});function Lv(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 x=us(a);if(x.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=us(s),S=p.shape.slice();if(L.forEach(D=>{t[D]=0,n[D]=1,S.splice(D,0,1)}),p=y(p,S),x.length&&w>0){const D=x[0],$=w+1;t=dl(o,D,$,t,p.shape),n=ml(i,D,$,n,p.shape),r=ul(r,D,$,p.shape)}else for(let D=0;D{n[D]=t[D]+1,r[D]=1});const N=hl(t,n,r),A=N.filter((D,$)=>I.indexOf($)===-1),E=r.every(D=>D===1);if(E)return y(G(p,t,N),A);const M=b.stridedSlice(p,t,n,r);return y(M,A)},h={x:p},d={begin:t,end:n,strides:r,beginMask:o,endMask:i,ellipsisMask:a,newAxisMask:s,shrinkAxisMask:c};return g.runKernelFunc(l,h,null,Sp,d)}const Nh=m({stridedSlice_:Lv});function vv(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,Vi)}const Rh=m({tan_:vv});function mt(e,t,n){if(at(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");const r=We(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 He(e,t,r,n)}function er(e,t,n){if(at(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");const r=We(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 He(e,t,r,n)}function ft(e,t,n){if(at(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");const r=We(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 He(e,t,r,n)}function _h(e,t,n){if(at(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");const r=We(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 He(e,t,r,n)}function Ch(e,t,n){if(at(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");const r=We(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,He(e,t,r,n)}function Sv(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,Ip,a);return{values:s,indices:c}}const Eh=m({topk_:Sv});function Iv(e,t=0,n=1,r,o){if(r!=null&&r==="bool")throw new Error("Unsupported data type $ { dtype }");const i=new As(t,n,r,!0,o),a=Be(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,Qi,a)}const ks=m({unsortedSegmentSum_:Tv});function Av(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,Zi,o)}const Ie=m({unstack_:Av});function kh(e,t=!0,n,r){return g.makeVariable(e,t,n,r)}function Ua(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=_(1),p=O(c,s);let l=v(O(a,i),p);if(o){f(r!=null,()=>"When using zeroDebias: true, step is required.");const h=u(r,"step","movingAverage");l=F(l,O(c,Je(s,h)))}return R(i,l)}const lm=m({movingAverage_:Hv});const hm={};Re(hm,{calculateShapes:()=>um,validateInput:()=>Wa,validateUpdateShape:()=>Dh});function Dh(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,yp,s)}const dm=m({scatterND_:zv});function mm(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 Yv(e,t,n,r=0){const o=u(e,"sparseIndices","sparseToDense","int32"),i=u(t,"sparseValues","sparseToDense"),a=u(r,"defaultValue","sparseToDense",i.dtype);mm(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,vp,c)}const fm=m({sparseToDense_:Yv});function Vv(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,Xc)}const gm=m({gatherND_:Vv});function bm(e,t){if(t==null)return e.shape.slice();if(Te(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 ee?o.clone():o;const i=bm(o,n),a=1-t,s=F(Pn(R(Ns(i,0,1,"float32",r),a)),a);return v(o,s)}const wm=m({dropout_:Kv});function Ba(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function qr(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=Er("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=x=>{const w=1,L=yn(i),S=je(s.shape,n,r,w,o,a,!1,L);return x.conv2dDerFilter(s,c,S)},d={x:s,dy:c},b={strides:r,pad:o,dataFormat:i,dimRoundingMode:a};return g.runKernelFunc(h,d,null,Mc,b)}const Hr=m({conv2DBackpropFilter_:Xv});function tr(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return v(e,Dt(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function nr(e,t){let n=t;const r=ae(e.shape,t.shape);return r.length>0&&(n=U(n,r)),y(n,e.shape)}function rr(e,t,n){if(t==="linear")return e;if(t==="relu")return ie(e);if(t==="elu")return bs(e);if(t==="relu6")return Rs(e);if(t==="prelu")return Ts(e,n);throw new Error(`Unknown fused activation ${t}.`)}const or=(e,t)=>{const n=e>0;return!n||t==="linear"};function Zv({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",or(g.state.gradientDepth,c)===!1){let E=xe(e,t,n,r,o,i,a);return s!=null&&(E=R(E,s)),rr(E,c,p)}const l=u(e,"x","conv2d"),h=u(t,"filter","conv2d");let d=l,b=!1;l.rank===3&&(b=!0,d=y(l,[1,l.shape[0],l.shape[1],l.shape[2]])),f(d.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${d.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(d.shape[3]===h.shape[2],()=>`Error in conv2d: depth of input (${d.shape[3]}) must match input depth for filter ${h.shape[2]}.`),f(le(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 x=je(d.shape,h.shape,n,i,r,a);let w;s!=null&&(w=u(s,"bias","fused conv2d"),[w]=V(w,l),q(x.outShape,w.shape));let L;p!=null&&(L=u(p,"prelu weights","fused conv2d"));const S=(E,M)=>{const[D,$,B,j]=M,te=tr(E,B,c);f(ct(i),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${i}'`);const re=$r($.shape,te,D,n,r),he=Hr($,te,D.shape,n,r),ye=[re,he];if(j!=null){const Me=nr(j,te);ye.push(Me)}return ye},I=E=>{const M=E.fusedConv2d({input:d,filter:h,convInfo:x,bias:w,activation:c,preluActivationWeights:L});return M},N={x:d,filter:h,bias:w,preluActivationWeights:L},A={strides:n,pad:r,dataFormat:o,dilations:i,dimRoundingMode:a,activation:c};if(s==null){const E=Ke((M,D,$)=>{let B=g.runKernelFunc(I,N,null,Sa,A);return $([D,M,B]),b&&(B=y(B,[B.shape[1],B.shape[2],B.shape[3]])),{value:B,gradFunc:S}});return E(d,h)}else{const E=Ke((M,D,$,B)=>{let j=g.runKernelFunc(I,N,null,Sa,A);return B([D,M,j,$]),b&&(j=y(j,[j.shape[1],j.shape[2],j.shape[3]])),{value:j,gradFunc:S}});return E(d,h,w)}}const Qv=m({fusedConv2d_:Zv});function eS(e,t,n,r){let o=e;e.rank===3&&(o=y(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let i=t;i.rank===3&&(i=y(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,jc)}const $a=m({depthwiseConv2dNativeBackpropFilter_:eS});function tS(e,t,n,r){let o=t,i=!1;t.rank===3&&(i=!0,o=y(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,Gc);return i?y(c,[c.shape[1],c.shape[2],c.shape[3]]):c}const ja=m({depthwiseConv2dNativeBackpropInput_:tS});function nS({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(or(g.state.gradientDepth,c)===!1){let E=en(e,t,n,r,o,i,a);return s!=null&&(E=R(E,s)),rr(E,c,p)}const l=u(e,"x","depthwiseConv2d"),h=u(t,"filter","depthwiseConv2d");let d=l,b=!1;l.rank===3&&(b=!0,d=y(l,[1,l.shape[0],l.shape[1],l.shape[2]])),f(d.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${d.rank}.`),f(h.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${h.rank}.`),f(d.shape[3]===h.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${d.shape[3]}) must match the inChannels dimension in filter ${h.shape[2]}.`),i==null&&(i=[1,1]),f(le(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 x=je(d.shape,h.shape,n,i,r,a,!0);let w;s!=null&&(w=u(s,"bias","fused conv2d"),[w]=V(w,l),q(x.outShape,w.shape));let L;p!=null&&(L=u(p,"prelu weights","fused depthwiseConv2d"));const S=(E,M)=>{f(ct(i),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${i}'`);const[D,$,B,j]=M,te=tr(E,B,c),re=ja($.shape,te,D,x),he=$a($,te,D.shape,x);if(j!=null){const ye=nr(w,te);return[re,he,ye]}return[re,he]},I=E=>{const M=E.fusedDepthwiseConv2D({input:d,filter:h,convInfo:x,bias:w,activation:c,preluActivationWeights:L});return M},N={x:d,filter:h,bias:w,preluActivationWeights:L},A={strides:n,pad:r,dataFormat:o,dilations:i,dimRoundingMode:a,activation:c};if(s==null){const E=Ke((M,D,$)=>{let B=g.runKernelFunc(I,N,null,Ia,A);return $([D,M,B]),b&&(B=y(B,[B.shape[1],B.shape[2],B.shape[3]])),{value:B,gradFunc:S}});return E(d,h)}else{const E=Ke((M,D,$,B)=>{let j=g.runKernelFunc(I,N,null,Ia,A);return B([D,M,j,$]),b&&(j=y(j,[j.shape[1],j.shape[2],j.shape[3]])),{value:j,gradFunc:S}});return E(d,h,w)}}const rS=m({fusedDepthwiseConv2d_:nS});function oS({a:e,b:t,transposeA:n=!1,transposeB:r=!1,bias:o,activation:i="linear",preluActivationWeights:a}){if(or(g.state.gradientDepth,i)===!1){let j=Y(e,t,n,r);return o!=null&&(j=R(j,o)),rr(j,i,a)}let s=u(e,"a","fused matMul"),c=u(t,"b","fused matMul");[s,c]=V(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],d=r?c.shape[c.rank-2]:c.shape[c.rank-1],b=s.shape.slice(0,-2),x=c.shape.slice(0,-2),w=Q(b),L=Q(x);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(Te(b,x),()=>`Error in fused matMul: outer dimensions (${b}) and (${x}) 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 S=s.shape.slice(0,-2).concat([h,d]),I=n?y(s,[w,p,h]):y(s,[w,h,p]),N=r?y(c,[L,d,l]):y(c,[L,l,d]);let A;o!=null&&(A=u(o,"bias","fused matMul"),[A]=V(A,s),q(S,A.shape));let E;a!=null&&(E=u(a,"prelu weights","fused matMul"));const M=(j,te)=>{const[re,he,ye,Me]=te,Tt=tr(y(j,ye.shape),ye,i);let ln,wr;if(!n&&!r?(ln=Y(Tt,he,!1,!0),wr=Y(re,Tt,!0,!1)):!n&&r?(ln=Y(Tt,he,!1,!1),wr=Y(Tt,re,!0,!1)):n&&!r?(ln=Y(he,Tt,!1,!0),wr=Y(re,Tt,!1,!1)):(ln=Y(he,Tt,!0,!0),wr=Y(Tt,re,!0,!0)),o!=null){const Hb=nr(Me,Tt);return[ln,wr,Hb]}else return[ln,wr]},D=j=>{const te=j.fusedBatchMatMul({a:I,b:N,transposeA:n,transposeB:r,bias:A,activation:i,preluActivationWeights:E});return te},$={a:I,b:N,bias:A,preluActivationWeights:E},B={transposeA:n,transposeB:r,activation:i};if(o==null){const j=Ke((te,re,he)=>{const ye=g.runKernelFunc(D,$,null,va,B);return he([te,re,ye]),{value:y(ye,S),gradFunc:M}});return j(I,N)}else{const j=Ke((te,re,he,ye)=>{const Me=g.runKernelFunc(D,$,null,va,B);return ye([te,re,Me,he]),{value:y(Me,S),gradFunc:M}});return j(I,N,A)}}const iS=m({fusedMatMul_:oS});const Fh={};Re(Fh,{conv2d:()=>Qv,depthwiseConv2d:()=>rS,matMul:()=>iS});function sS(e){return qr(e,.54,.46)}const ym=m({hammingWindow_:sS});function aS(e){return qr(e,.5,.5)}const Ga=m({hannWindow_:aS});function cS(e,t,n,r=!1,o=0){let i=0;const a=[];for(;i+t<=e.size;)a.push(G(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=x=>x.cropAndResize(a,s,c,r,o,i),h={image:a,boxes:s,boxInd:c},d={method:o,extrapolationValue:i,cropSize:r},b=g.runKernelFunc(l,h,null,Bc,d);return b}const vm=m({cropAndResize_:lS});function hS(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(Jc,n,{});return r}const Sm=m({flipLeftRight_:hS});function uS(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(Tp,i,a);return s}const Im=m({rotateWithOffset_:uS});function St(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 dS(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY){const i=u(e,"boxes","nonMaxSuppression"),a=u(t,"scores","nonMaxSuppression"),s=St(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,up,c)}const Tm=m({nonMaxSuppression_:dS});function Am(e,t,n){const r=mS(e,t,n),o=r<0?-(r+1):r;e.splice(o,0,t)}function mS(e,t,n){return gS(e,t,n||fS)}function fS(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 qa(e,t,n,r,o){return Mh(e,t,n,r,o,0).selectedIndices}function Ha(e,t,n,r,o,i){return Mh(e,t,n,r,o,0,!1,i,!0)}function za(e,t,n,r,o,i){return Mh(e,t,n,r,o,i,!0)}function Mh(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(Nm);const l=i>0?-.5/i:0,h=[],d=[];for(;h.length0;){const L=p.pop(),{score:S,boxIndex:I,suppressBeginIndex:N}=L;if(S=N;--E){const M=bS(e,I,h[E]);if(M>=r){A=!0;break}if(L.score=L.score*wS(r,l,M),L.score<=o)break}L.suppressBeginIndex=h.length,A||(L.score===S?(h.push(I),d.push(L.score)):L.score>o&&Am(p,L,Nm))}const b=h.length,x=n-b;s&&x>0&&(h.push(...new Array(x).fill(0)),d.push(...new Array(x).fill(0)));const w={selectedIndices:ce(h,"int32")};return a&&(w.selectedScores=ce(d,"float32")),c&&(w.validOutputs=_(b,"int32")),w}function bS(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]),d=Math.max(o[1],o[3]),b=(s-i)*(c-a),x=(h-p)*(d-l);if(b<=0||x<=0)return 0;const w=Math.max(i,p),L=Math.max(a,l),S=Math.min(s,h),I=Math.min(c,d),N=Math.max(S-w,0)*Math.max(I-L,0);return N/(b+x-N)}function wS(e,t,n){const r=Math.exp(t*n*n);return n<=e?r:0}function Nm(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function xS(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY){const i=u(e,"boxes","nonMaxSuppressionAsync"),a=u(t,"scores","nonMaxSuppressionAsync"),s=St(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=qa(p,l,n,r,o);return i!==e&&i.dispose(),a!==t&&a.dispose(),h}const Rm=xS;function yS(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY,i=0){const a=u(e,"boxes","nonMaxSuppression"),s=u(t,"scores","nonMaxSuppression"),c=St(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(mp,p,l);return{selectedIndices:h[0],selectedScores:h[1]}}const _m=m({nonMaxSuppressionWithScore_:yS});async function LS(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY,i=0){const a=u(e,"boxes","nonMaxSuppressionAsync"),s=u(t,"scores","nonMaxSuppressionAsync"),c=St(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],d=za(l,h,n,r,o,i);return a!==e&&a.dispose(),s!==t&&s.dispose(),d}const Cm=LS;function vS(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY,i=!1){const a=u(e,"boxes","nonMaxSuppression"),s=u(t,"scores","nonMaxSuppression"),c=St(a,s,n,r,o,null),p=c.maxOutputSize,l=c.iouThreshold,h=c.scoreThreshold,d={boxes:a,scores:s},b={maxOutputSize:p,iouThreshold:l,scoreThreshold:h,padToMaxOutputSize:i},x=g.runKernel(dp,d,b);return{selectedIndices:x[0],validOutputs:x[1]}}const Em=m({nonMaxSuppressionPadded_:vS});async function SS(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY,i=!1){const a=u(e,"boxes","nonMaxSuppressionAsync"),s=u(t,"scores","nonMaxSuppressionAsync"),c=St(a,s,n,r,o,null),p=c.maxOutputSize,l=c.iouThreshold,h=c.scoreThreshold,[d,b]=await Promise.all([a.data(),s.data()]),x=Ha(d,b,p,l,h,i);return a!==e&&a.dispose(),s!==t&&s.dispose(),x}const Om=SS;function IS(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=y(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[a,s]=t,c=(d,b)=>(b([o]),d.resizeBilinear(o,a,s,n)),p={images:o},l={alignCorners:n,size:t},h=g.runKernelFunc(c,p,null,Ri,l);return i?y(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const km=m({resizeBilinear_:IS});function TS(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=y(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[a,s]=t,c={images:o},p={alignCorners:n,size:t},l=(d,b)=>(b([o]),d.resizeNearestNeighbor(o,a,s,n)),h=g.runKernelFunc(l,c,null,Ni,p);return i?y(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const Dm=m({resizeNearestNeighbor_:TS});function AS(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=y(Gr(0,i,1,"int32"),[-1,1]),c=Gr(0,a,1,"int32"),p=O(s,c),l=Lt(ut(p,_(+t,"int32")),ht(p,_(-n,"int32"))),h=Ce([i,a],r.dtype);return y(ke(Ie(y(r,[-1,i,a])).map(d=>Oe(l,d,h))),o)}const Fm=m({bandPart_:AS});function NS(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=Yt(e,e.shape[0],0).map(o=>Qn(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 Um(e,t);{const n=e.shape.slice(0,e.shape.length-2).reduce((c,p)=>c*p),r=Ie(y(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),o=[],i=[];r.forEach(c=>{const[p,l]=Um(c,t);o.push(p),i.push(l)});const a=y(ke(o,0),e.shape),s=y(ke(i,0),e.shape);return[a,s]}}function Um(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=ws(n),i=Et(e);const a=mt([[1]],[1,1]);let s=Et(a);const c=n>=r?r:n;for(let p=0;p{const b=G(i,[p,p],[n-p,1]),x=Pr(b),w=G(i,[p,p],[1,1]),L=Oe(tt(w,0),mt([[-1]]),mt([[1]])),S=O(w,v(L,x)),I=F(b,S);I.shape[0]===1?s=Et(a):s=Z([a,G(I,[1,0],[I.shape[0]-1,I.shape[1]])],0);const N=ne(F(Y(L,S),x)),A=G(i,[p,0],[n-p,r]),E=v(N,s),M=K(s);if(p===0)i=O(A,Y(E,Y(M,A)));else{const B=O(A,Y(E,Y(M,A)));i=Z([G(i,[0,0],[p,r]),B],0)}const D=K(E),$=G(o,[0,p],[n,o.shape[1]-p]);if(p===0)o=O($,Y(Y($,s),D));else{const B=O($,Y(Y($,s),D));o=Z([G(o,[0,0],[n,p]),B],1)}return[s,i,o]}),ve([l,h,d])}return!t&&n>r&&(o=G(o,[0,0],[n,r]),i=G(i,[0,0],[r,r])),[o,i]})}const Wm=m({qr_:RS});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 _S(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:v(r,o);if(n===be.NONE)return i;if(n===be.SUM)return U(i);if(n===be.MEAN){if(o==null)return Sn(i);{const a=r.size/o.size,s=F(U(i),U(o));return a>1?F(s,_(a)):s}}if(n===be.SUM_BY_NONZERO_WEIGHTS){if(o==null)return F(U(i),_(r.size));{const a=v(o,vt(r.shape)),s=C(U(Vn(a,_(0))),"float32");return F(U(i),s)}}throw Error(`Unknown reduction: ${n}`)}const $e=m({computeWeightedLoss_:_S});function CS(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=Ee(O(o,i));return $e(s,a,r)}const Bm=m({absoluteDifference_:CS});function ES(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=_(1),p=O(c,U(v(i,a),n,!0));return $e(p,s,o)}const $m=m({cosineDistance_:ES});function OS(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=_(1);o=O(v(_(2),o),s);const c=ie(O(s,v(o,i)));return $e(c,a,r)}const jm=m({hingeLoss_:OS});function kS(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=_(r),p=Ee(O(a,i)),l=Yn(p,c),h=O(p,l),d=R(v(_(.5),H(l)),v(c,h));return $e(d,s,o)}const Gm=m({huberLoss_:kS});function DS(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=_(1),p=_(r),l=ne(v(i,yt(R(a,p)))),h=v(O(c,i),yt(R(O(c,a),p))),d=O(l,h);return $e(d,s,o)}const Pm=m({logLoss_:DS});function FS(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=Zn(o,i);return $e(s,a,r)}const qm=m({meanSquaredError_:FS});function MS(e,t){const n=u(e,"labels","sigmoidCrossEntropyWithLogits"),r=u(t,"logits","sigmoidCrossEntropyWithLogits");P(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");const o=ie(r),i=v(r,n),a=ys(Se(ne(Ee(r))));return R(O(o,i),a)}function US(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=_(r),l=_(1),h=_(.5);i=R(v(i,O(l,p)),v(h,p))}const c=MS(i,a);return $e(c,s,o)}const Hm=m({sigmoidCrossEntropy_:US});function WS(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=Ke((o,i,a)=>{const s=!0,c=vs(i,[n],s),p=O(C(i,"float32"),c);a([o,p]);const l=ne(v(p,o)),h=U(l,[n]),d=(b,x)=>{const[w,L]=x,S=we(b.shape,[n]);return[v(y(b,S),O(C(w,"float32"),Se(L))),v(y(b,S),O(Se(L),C(w,"float32")))]};return{value:h,gradFunc:d}});return r(e,t)}function BS(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=_(r),l=_(1),h=_(i.shape[1]);i=R(v(i,O(l,p)),F(p,h))}const c=WS(i,a);return $e(c,s,o)}const zm=m({softmaxCrossEntropy_:BS});const Uh={};Re(Uh,{abs:()=>Ee,acos:()=>qp,acosh:()=>Hp,add:()=>R,addN:()=>zp,addStrict:()=>em,all:()=>Kp,any:()=>Jp,argMax:()=>Xp,argMin:()=>Zp,asin:()=>Qp,asinh:()=>el,atan:()=>tl,atan2:()=>nl,atanh:()=>rl,avgPool:()=>pt,avgPool3d:()=>al,basicLSTMCell:()=>wl,batchNorm:()=>Ct,batchNorm2d:()=>xl,batchNorm3d:()=>yl,batchNorm4d:()=>Ll,batchToSpaceND:()=>Bn,booleanMaskAsync:()=>Yd,broadcastTo:()=>Br,buffer:()=>Be,cast:()=>C,ceil:()=>vl,clipByValue:()=>$n,clone:()=>Et,complex:()=>Ye,concat:()=>Z,concat1d:()=>Sl,concat2d:()=>Il,concat3d:()=>Tl,concat4d:()=>Al,conv1d:()=>Nl,conv2d:()=>xe,conv2dTranspose:()=>Rl,conv3d:()=>_l,conv3dTranspose:()=>Cl,cos:()=>jn,cosh:()=>ms,cosineWindow:()=>qr,cumsum:()=>fs,depthToSpace:()=>El,depthwiseConv2d:()=>en,diag:()=>Ol,dilation2d:()=>kl,div:()=>F,divNoNan:()=>Dl,divStrict:()=>tm,dot:()=>Fl,dropout:()=>wm,elu:()=>bs,enclosingPowerOfTwo:()=>Ba,equal:()=>tn,equalStrict:()=>Vd,erf:()=>Ml,exp:()=>Se,expandDims:()=>et,expm1:()=>Ul,eye:()=>ws,fft:()=>Gn,fill:()=>Ge,floor:()=>Pn,floorDiv:()=>gs,fused:()=>Fh,gather:()=>qn,gatherND:()=>gm,greater:()=>tt,greaterEqual:()=>ht,greaterEqualStrict:()=>Kd,greaterStrict:()=>Jd,ifft:()=>vn,imag:()=>nn,image:()=>Ya,inTopKAsync:()=>xm,irfft:()=>xs,isFinite:()=>Bl,isInf:()=>$l,isNaN:()=>jl,leakyRelu:()=>Gl,less:()=>Hn,lessEqual:()=>ut,lessEqualStrict:()=>Xd,lessStrict:()=>Zd,linalg:()=>Km,linspace:()=>Pl,localResponseNormalization:()=>ql,log:()=>yt,log1p:()=>ys,logSigmoid:()=>zl,logSoftmax:()=>Yl,logSumExp:()=>vs,logicalAnd:()=>Lt,logicalNot:()=>zn,logicalOr:()=>Ss,logicalXor:()=>Vl,losses:()=>Jm,matMul:()=>Y,max:()=>dt,maxPool:()=>Ae,maxPool3d:()=>Kl,maxPoolWithArgmax:()=>Jl,maximum:()=>kt,maximumStrict:()=>nm,mean:()=>Sn,min:()=>In,minimum:()=>Yn,minimumStrict:()=>rm,mod:()=>Is,modStrict:()=>om,moments:()=>Xl,movingAverage:()=>lm,mul:()=>v,mulStrict:()=>im,multiRNNCell:()=>Zl,multinomial:()=>Ql,neg:()=>ne,norm:()=>Pr,notEqual:()=>Vn,notEqualStrict:()=>Qd,oneHot:()=>jr,ones:()=>vt,onesLike:()=>Fa,op:()=>m,outerProduct:()=>eh,pad:()=>Pe,pad1d:()=>th,pad2d:()=>nh,pad3d:()=>rh,pad4d:()=>oh,pool:()=>ih,pow:()=>Je,powStrict:()=>sm,prelu:()=>Ts,print:()=>sh,prod:()=>ah,rand:()=>ch,randomGamma:()=>uh,randomNormal:()=>dh,randomUniform:()=>Ns,range:()=>Gr,real:()=>zt,reciprocal:()=>mh,relu:()=>ie,relu6:()=>Rs,reshape:()=>y,reverse:()=>Ve,reverse1d:()=>fh,reverse2d:()=>gh,reverse3d:()=>bh,reverse4d:()=>wh,rfft:()=>Jn,round:()=>yh,rsqrt:()=>_s,scalar:()=>_,scatterND:()=>dm,selu:()=>Lh,separableConv2d:()=>Xn,setdiff1dAsync:()=>vh,sigmoid:()=>lt,sign:()=>Sh,signal:()=>Vm,sin:()=>Cs,sinh:()=>Es,slice:()=>G,slice1d:()=>Ih,slice2d:()=>Th,slice3d:()=>Os,slice4d:()=>Ah,softmax:()=>rn,softplus:()=>Ls,spaceToBatchND:()=>Kn,sparseToDense:()=>fm,spectral:()=>Ym,split:()=>Yt,sqrt:()=>me,square:()=>H,squaredDifference:()=>Zn,squaredDifferenceStrict:()=>am,squeeze:()=>Qn,stack:()=>ke,step:()=>Dt,stridedSlice:()=>Nh,sub:()=>O,subStrict:()=>cm,sum:()=>U,tan:()=>Rh,tanh:()=>Wr,tensor:()=>ze,tensor1d:()=>ce,tensor2d:()=>mt,tensor3d:()=>er,tensor4d:()=>ft,tensor5d:()=>_h,tensor6d:()=>Ch,tile:()=>Ot,topk:()=>Eh,transpose:()=>K,truncatedNormal:()=>Oh,unsortedSegmentSum:()=>ks,unstack:()=>Ie,variable:()=>kh,where:()=>Oe,whereAsync:()=>Ds,zeros:()=>Ce,zerosLike:()=>W});const Ym={fft:Gn,ifft:vn,rfft:Jn,irfft:xs},Vm={hammingWindow:ym,hannWindow:Ga,frame:Pa,stft:Lm},Ya={flipLeftRight:Sm,resizeNearestNeighbor:Dm,resizeBilinear:km,rotateWithOffset:Im,cropAndResize:vm,nonMaxSuppression:Tm,nonMaxSuppressionAsync:Rm,nonMaxSuppressionWithScore:_m,nonMaxSuppressionWithScoreAsync:Cm,nonMaxSuppressionPadded:Em,nonMaxSuppressionPaddedAsync:Om},Km={bandPart:Fm,gramSchmidt:Mm,qr:Wm},Jm={absoluteDifference:Bm,computeWeightedLoss:$e,cosineDistance:$m,hingeLoss:jm,huberLoss:Gm,logLoss:Pm,meanSquaredError:qm,sigmoidCrossEntropy:Hm,softmaxCrossEntropy:zm};_d(Uh);const Fs={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};const Va=4;async function jS(e,t){const n=[],r=[],o=Array.isArray(e)?e.map(a=>a.name):Object.keys(e);for(let a=0;a{const d=await c.bytes(),b=d.reduce((L,S)=>L+S.length,0)+Va*d.length,x=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 PS=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function Xm(e){return PS?Buffer.byteLength(e):new Blob([e]).size}function Ms(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 Bh(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 Us(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:Xm(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:Xm(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function qS(){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 HS(){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 zS(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function GS(){const e=qS(),t=HS(),n=zS();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 Ne{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ne.instance==null&&(Ne.instance=new Ne()),Ne.instance}static registerSaveRouter(e){Ne.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Ne.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Ne.getHandlers(e,"save")}static getLoadHandlers(e,t){return Ne.getHandlers(e,"load",t)}static getHandlers(e,t,n){const r=[],o=t==="load"?Ne.getInstance().loadRouters:Ne.getInstance().saveRouters;return o.forEach(i=>{const a=i(e,n);a!==null&&r.push(a)}),r}}const YS=e=>Ne.registerSaveRouter(e),VS=e=>Ne.registerLoadRouter(e),KS=e=>Ne.getSaveHandlers(e),JS=(e,t)=>Ne.getLoadHandlers(e,t);const zr="://";class Ft{constructor(){this.managers={}}static getInstance(){return Ft.instance==null&&(Ft.instance=new Ft()),Ft.instance}static registerManager(e,t){f(e!=null,()=>"scheme must not be undefined or null."),e.endsWith(zr)&&(e=e.slice(0,e.indexOf(zr))),f(e.length>0,()=>"scheme must not be an empty string.");const n=Ft.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 Ka(e){if(e.indexOf(zr)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Ft.getSchemes().join(",")}`);return{scheme:e.split(zr)[0],path:e.split(zr)[1]}}async function Zm(e,t,n=!1){f(e!==t,()=>`Old path and new path are the same: '${e}'`);const r=Ne.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=Ne.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=Ka(e).scheme,c=Ka(e).path,p=s===Ka(e).scheme,l=await o.load();n&&p&&await Ft.getManager(s).removeModel(c);const h=await a.save(l);return n&&!p&&await Ft.getManager(s).removeModel(c),h.modelArtifactsInfo}async function Qm(){const e=Ft.getSchemes(),t={};for(const n of e){const r=await Ft.getManager(n).listModels();for(const o in r){const i=n+zr+o;t[i]=r[o]}}return t}async function ef(e){const t=Ka(e),n=Ft.getManager(t.scheme);return n.removeModel(t.path)}async function tf(e,t){const n=!1;return Zm(e,t,n)}async function nf(e,t){const n=!0;return Zm(e,t,n)}const XS="model",ZS=".json",QS=".weights.bin";function rf(e){return new Promise(t=>setTimeout(t)).then(e)}class Yr{constructor(e){if(!pe().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Yr.URL_SCHEME)&&(e=e.slice(Yr.URL_SCHEME.length)),(e==null||e.length===0)&&(e=XS),this.modelTopologyFileName=e+ZS,this.weightDataFileName=e+QS}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 rf(()=>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 rf(()=>a.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Us(e)}}}}Yr.URL_SCHEME="downloads://";class eI{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=[],d=[];c.forEach(b=>{b.paths.forEach(x=>{h.push(x),d.push(null)}),l.push(...b.weights)}),c.forEach(b=>{b.paths.forEach(x=>{const w=new FileReader();w.onload=L=>{const S=L.target.result,I=h.indexOf(x);d[I]=S,d.indexOf(null)===-1&&n({modelTopology:s,weightSpecs:l,weightData:Ms(d),format:a.format,generatedBy:a.generatedBy,convertedBy:a.convertedBy,userDefinedMetadata:a.userDefinedMetadata})},w.onerror=L=>r(`Failed to weights data from file of path '${x}'.`),w.readAsArrayBuffer(p[x])})})},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=>Bh(i.name)),o={};for(const i of e)i.paths.forEach(a=>{const s=Bh(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 nI=e=>pe().getBool("IS_BROWSER")&&(!Array.isArray(e)&&e.startsWith(Yr.URL_SCHEME))?tI(e.slice(Yr.URL_SCHEME.length)):null;Ne.registerSaveRouter(nI);function tI(e="model"){return new Yr(e)}function rI(e){return new eI(e)}function $h(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 jh(e,t){t==null&&(t={});const n=t.fetchFunc==null?pe().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 $h(r,t.onProgress,o,i),s=a.map(h=>h.arrayBuffer()),c=.5,p=1,l=t.onProgress==null?await Promise.all(s):await $h(s,t.onProgress,c,p);return l}async function oI(e,t="",n,r){const o=a=>jh(a,{requestInit:r}),i=of(o);return i(e,t,n)}function of(e){return async(t,n="",r)=>{const o=t.map(()=>!1),i={},a=r!=null?r.map(()=>!1):[],s=[];if(t.forEach((b,x)=>{let w=0;b.weights.forEach(L=>{const S="quantization"in L?L.quantization.dtype:L.dtype,I=Fs[S]*Q(L.shape),N=()=>{o[x]=!0,i[x]==null&&(i[x]=[]),i[x].push({manifestEntry:L,groupOffset:w,sizeBytes:I})};r!=null?r.forEach((A,E)=>{A===L.name&&(N(),a[E]=!0)}):N(),s.push(L.name),w+=I})}),!a.every(b=>b)){const b=r.filter((x,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,x,w)=>(x&&b.push(w),b),[]),p=[];c.forEach(b=>{t[b].paths.forEach(x=>{const w=n+(n.endsWith("/")?"":"/")+x;p.push(w)})});const l=await e(p),h={};let d=0;return c.forEach(b=>{const x=t[b].paths.length;let w=0;for(let A=0;A{const E=L.slice(A.groupOffset,A.groupOffset+A.sizeBytes),M=Wh(E,[A.manifestEntry]);for(const D in M)h[D]=M[D]}),d+=x}),h}}const iI="application/octet-stream",sI="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=pe().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:sI}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:iI}),"model.weights.bin");const o=await this.fetch(this.path,t);if(o.ok)return{modelArtifactsInfo:Us(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]=aI(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 jh(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,Ms(s)]}}Gh.URL_SCHEME_REGEX=/^https?:\/\//;function aI(e){const t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),r=e.substring(0,t),o=n>t?e.substring(n):"";return[r+"/",o]}function Ph(e){return e.match(Gh.URL_SCHEME_REGEX)!=null}const sf=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(r=>Ph(r)):n=Ph(e),n)return qh(e,t)}return null};Ne.registerSaveRouter(sf);Ne.registerLoadRouter(sf);function qh(e,t){return new Gh(e,t)}function cI(e,t){return qh(e,t)}class Hh{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class pI{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function lI(e,t,n,r){if(arguments.length===1){const o=e.modelTopology!=null||e.weightSpecs!=null;return o?new Hh(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 Hh({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 Hh({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r})}function hI(e){return new pI(e)}const Vr={};Re(Vr,{browserFiles:()=>rI,browserHTTPRequest:()=>cI,concatenateArrayBuffers:()=>Ms,copyModel:()=>tf,decodeWeights:()=>Wh,encodeWeights:()=>jS,fromMemory:()=>lI,getLoadHandlers:()=>JS,getModelArtifactsInfoForJSON:()=>Us,getSaveHandlers:()=>KS,http:()=>qh,isHTTPScheme:()=>Ph,listModels:()=>Qm,loadWeights:()=>oI,moveModel:()=>nf,registerLoadRouter:()=>VS,registerSaveRouter:()=>YS,removeModel:()=>ef,weightsLoaderFactory:()=>of,withSaveHandler:()=>hI});function uI(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=jr(C(r,"int32"),n),a=jr(C(o,"int32"),n),s=K(i);return C(Y(s,a),"int32")}const dI=m({confusionMatrix_:uI});const af={};Re(af,{confusionMatrix:()=>dI});const Kr={};Re(Kr,{fromPixels:()=>gI,toPixels:()=>fI});let Jr;function mI(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=rs(La,g.backendName);if(s!=null){const b={pixels:e},x={numChannels:t};return g.runKernel(La,b,x)}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)&&(Jr==null&&(Jr=document.createElement("canvas").getContext("2d")),Jr.canvas.width=c,Jr.canvas.height=p,Jr.drawImage(e,0,0,c,p),l=Jr.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 x=0;x4||i===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${i}`);const a=await n.data(),s=In(n),c=dt(n),p=await Promise.all([s.data(),c.data()]),l=p[0],h=p[1],d=l[0],b=h[0];if(s.dispose(),c.dispose(),n.dtype==="float32"){if(d<0||b>1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but got range [${d} - ${b}].`)}else if(n.dtype==="int32"){if(d<0||b>255)throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but got range [${d} - ${b}].`)}else throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);const x=n.dtype==="float32"?255:1,w=new Uint8ClampedArray(o*r*4);for(let L=0;Lpf});function pf(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 lf={};Re(lf,{Serializable:()=>zh,SerializationMap:()=>ir,registerClass:()=>nt});class zh{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class ir{constructor(){this.classNameMap={}}static getMap(){return ir.instance==null&&(ir.instance=new ir()),ir.instance}static register(e){ir.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."),ir.register(e)}const bI="2.3.0";class ot extends zh{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 ve(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 Hl(e,t)}dispose(){this.iterations_!=null&&ve(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:_(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(ot,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});class sr extends ot{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:k(()=>W(o).variable(i))}),this.accumulatedUpdates[r]==null&&(this.accumulatedUpdates[r]={originalName:`${n}/accum_var`,variable:k(()=>W(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;k(()=>{const p=R(v(s,this.rho),v(H(a),1-this.rho)),l=v(F(me(R(c,this.epsilon)),me(R(s,this.epsilon))),a),h=R(v(c,this.rho),v(H(l),1-this.rho));s.assign(p),c.assign(h);const d=R(v(l,-this.learningRate),o);o.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(ve(this.accumulatedGrads.map(e=>e.variable)),ve(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)}}sr.className="Adadelta";nt(sr);class ar extends ot{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:k(()=>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;k(()=>{const s=R(a,H(i));a.assign(s);const c=R(v(F(i,me(R(s,g.backend.epsilon()))),-this.learningRate),o);o.assign(c)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&ve(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)}}ar.className="Adagrad";nt(ar);class cr extends ot{constructor(e,t,n,r=null){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=r,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],k(()=>{this.accBeta1=_(t).variable(),this.accBeta2=_(n).variable()}),r==null&&(this.epsilon=g.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);k(()=>{const n=O(1,this.accBeta1),r=O(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:k(()=>W(a).variable(s))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${o}/v`,variable:k(()=>W(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=R(v(p,this.beta1),v(c,1-this.beta1)),d=R(v(l,this.beta2),v(H(c),1-this.beta2)),b=F(h,n),x=F(d,r);p.assign(h),l.assign(d);const w=R(v(F(b,R(me(x),this.epsilon)),-this.learningRate),a);a.assign(w)}),this.accBeta1.assign(v(this.accBeta1,this.beta1)),this.accBeta2.assign(v(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&ve(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&ve(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),k(()=>{this.accBeta1.assign(Je(this.beta1,this.iterations_+1)),this.accBeta2.assign(Je(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)}}cr.className="Adam";nt(cr);class pr extends ot{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=[],k(()=>{this.iteration=_(0).variable(),this.accBeta1=_(t).variable()}),r==null&&(this.epsilon=g.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);k(()=>{const n=O(1,this.accBeta1),r=F(-this.learningRate,R(v(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:W(a).variable(s)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${o}/v`,variable:W(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=R(v(p,this.beta1),v(c,1-this.beta1)),d=v(l,this.beta2),b=Ee(c),x=kt(d,b);p.assign(h),l.assign(x);const w=R(v(F(r,n),F(h,R(x,this.epsilon))),a);a.assign(w)}),this.iteration.assign(R(this.iteration,1)),this.accBeta1.assign(v(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&ve(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&ve(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)}}pr.className="Adamax";nt(pr);class on extends ot{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];k(()=>{const a=R(v(this.c,o),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=sl(_(-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)}}on.className="SGD";nt(on);class lr extends on{constructor(e,t,n=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=_(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:k(()=>W(o).variable(s))}}const i=this.accumulations[r].variable,a=Array.isArray(e)?e[r].tensor:e[n];if(a==null)return;k(()=>{let s;const c=R(v(this.m,i),a);this.useNesterov?s=R(v(this.c,R(a,v(c,this.m))),o):s=R(v(this.c,c),o),i.assign(c),o.assign(s)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&ve(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)}}lr.className="Momentum";nt(lr);class hr extends ot{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:k(()=>W(o).variable(i))}),this.accumulatedMoments[r]==null&&(this.accumulatedMoments[r]={originalName:`${n}/momentum`,variable:k(()=>W(o).variable(i))}),this.accumulatedMeanGrads[r]==null&&this.centered&&(this.accumulatedMeanGrads[r]={originalName:`${n}/mg`,variable:k(()=>W(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;k(()=>{const p=R(v(s,this.decay),v(H(a),1-this.decay));if(this.centered){const l=this.accumulatedMeanGrads[r].variable,h=R(v(l,this.decay),v(a,1-this.decay)),d=F(v(a,this.learningRate),me(O(p,R(H(h),this.epsilon)))),b=R(v(c,this.momentum),d);s.assign(p),l.assign(h),c.assign(b);const x=O(o,b);o.assign(x)}else{const l=R(v(s,this.decay),v(H(a),1-this.decay)),h=R(v(c,this.momentum),F(v(a,this.learningRate),me(R(l,this.epsilon))));s.assign(l),c.assign(h);const d=O(o,h);o.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&ve(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&ve(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&ve(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)}}hr.className="RMSProp";nt(hr);class Tn{static sgd(e){return new on(e)}static momentum(e,t,n=!1){return new lr(e,t,n)}static rmsprop(e,t=.9,n=0,r=null,o=!1){return new hr(e,t,n,r,o)}static adam(e=.001,t=.9,n=.999,r=null){return new cr(e,t,n,r)}static adadelta(e=.001,t=.95,n=null){return new sr(e,t,n)}static adamax(e=.002,t=.9,n=.999,r=null,o=0){return new pr(e,t,n,r,o)}static adagrad(e,t=.1){return new ar(e,t)}}lr,on,sr,ar,hr,pr,cr;const wI={sgd:Tn.sgd,momentum:Tn.momentum,adadelta:Tn.adadelta,adagrad:Tn.adagrad,rmsprop:Tn.rmsprop,adamax:Tn.adamax,adam:Tn.adam};const xI=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function yI(){return new Promise(e=>xI(()=>e()))}function LI(e,t,n){const r=n*(typeof e=="number"?e:e[0]),o=t*(typeof e=="number"?e:e[1]);return[r,o]}function vI(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 II(e,t,n,r=!0){const o=[];r?o.push(e[0]/n):o.push(e[0]*n);for(let i=1;iRI,ERF_A2:()=>_I,ERF_A3:()=>CI,ERF_A4:()=>EI,ERF_A5:()=>OI,ERF_P:()=>NI,PARALLELIZE_THRESHOLD:()=>ka,SELU_SCALE:()=>Vh,SELU_SCALEALPHA:()=>Yh,applyActivation:()=>rr,assertAndGetBroadcastShape:()=>q,assertAxesAreInnerMostDims:()=>qw,assertParamsConsistent:()=>cl,assignToTypedArray:()=>$I,axesAreInnerMostDims:()=>Yp,calculateShapes:()=>um,castTensor:()=>PI,combineLocations:()=>Ud,complexWithEvenIndex:()=>UI,complexWithOddIndex:()=>WI,computeConv2DInfo:()=>je,computeConv3DInfo:()=>Ln,computeDefaultPad:()=>il,computeDilation2DInfo:()=>rx,computeOptimalWindowSize:()=>Ny,computeOutAndReduceShapes:()=>Vp,computeOutShape:()=>pl,computePool2DInfo:()=>_t,computePool3DInfo:()=>Qt,convertConv2DDataFormat:()=>yn,eitherStridesOrDilationsAreOne:()=>le,expandShapeToKeepDim:()=>we,exponent:()=>GI,exponents:()=>jI,getAxesPermutation:()=>ge,getBroadcastDims:()=>uy,getComplexWithIndex:()=>BI,getFusedBiasGradient:()=>nr,getFusedDyActivation:()=>tr,getImageCenter:()=>LI,getInnerMostAxes:()=>De,getPermuted:()=>SI,getReductionAxes:()=>ae,getReshaped:()=>vI,getReshapedPermuted:()=>II,getSliceBeginCoords:()=>TI,getSliceSize:()=>AI,getUndoAxesPermutation:()=>Un,linspaceImpl:()=>HI,log:()=>DI,mergeRealAndImagArrays:()=>FI,prepareAndValidate:()=>pf,prepareSplitSize:()=>xh,reshapeTensor:()=>qI,segment_util:()=>Gd,shouldFuse:()=>or,splitRealAndImagArrays:()=>MI,tupleValuesAreOne:()=>ct,upcastType:()=>Mr,validateInput:()=>Wa,validateUpdateShape:()=>Dh,warn:()=>kI});function PI(e,t,n){if(t==="complex64"){if(e.dtype==="complex64")return e.clone();const r=Ce(e.shape),o=C(e,"float32"),i=n.complex(o,r);return r.dispose(),o.dispose(),i}if(!Op(e.dtype,t))return g.makeTensorFromDataId(e.dataId,e.shape,t);if(e.dtype==="complex64"){const r=n.real(e),o=C(r,t);return r.dispose(),o}if(t==="int32")return n.int(e);if(t==="bool"){const r=_(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 qI(e,t){return g.makeTensorFromDataId(e.dataId,t,e.dtype)}function HI(e,t,n){const r=(t-e)/(n-1),o=Pt(n,"float32");o[0]=e;for(let i=1;i{const a=[...o];a[n]=i;const s=G(e,r,a);return r[n]+=i,s})}function df(e,t){const n=new Array(e.rank);for(let o=0;oN.value-I.value);const w=h*r,L=c.subarray(w,w+r),S=p.subarray(w,w+r);for(let I=0;Iqa,nonMaxSuppressionV4Impl:()=>Ha,nonMaxSuppressionV5Impl:()=>za,split:()=>uf,tile:()=>df,topkImpl:()=>mf,whereImpl:()=>Ua});const zI=1e-7,YI=1e-4;class VI{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 KI{time(e){return T("time")}read(e){return T("read")}readSync(e){return T("readSync")}numDataIds(){return T("numDataIds")}disposeData(e){return T("disposeData")}write(e,t,n){return T("write")}move(e,t,n,r){return T("move")}memory(){return T("memory")}floatPrecision(){return T("floatPrecision")}epsilon(){return this.floatPrecision()===32?zI:YI}batchMatMul(e,t,n,r){return T("batchMatMul")}fusedBatchMatMul({a:e,b:t,transposeA:n,transposeB:r,bias:o,activation:i,preluActivationWeights:a}){return T("fusedBatchMatMul")}slice(e,t,n){return T("slice")}stridedSlice(e,t,n,r){return T("stridedSlice")}unstack(e,t){return T("unstack")}reverse(e,t){return T("reverse")}concat(e,t){return T("concat")}neg(e){return T("neg")}add(e,t){return T("add")}addN(e){return T("addN")}subtract(e,t){return T("subtract")}multiply(e,t){return T("multiply")}realDivide(e,t){return T("realDivide")}floorDiv(e,t){return T("floorDiv")}sum(e,t){return T("sum")}prod(e,t){return T("prod")}unsortedSegmentSum(e,t,n){return T("unsortedSegmentSum")}argMin(e,t){return T("argMin")}argMax(e,t){return T("argMax")}equal(e,t){return T("equal")}notEqual(e,t){return T("notEqual")}less(e,t){return T("less")}lessEqual(e,t){return T("lessEqual")}greater(e,t){return T("greater")}greaterEqual(e,t){return T("greaterEqual")}logicalNot(e){return T("logicalNot")}logicalAnd(e,t){return T("logicalAnd")}logicalOr(e,t){return T("logicalOr")}where(e){return T("where")}select(e,t,n){return T("select")}topk(e,t,n){return T("topk")}min(e,t){return T("min")}minimum(e,t){return T("minimum")}mod(e,t){return T("mod")}max(e,t){return T("max")}maximum(e,t){return T("maximum")}all(e,t){return T("all")}any(e,t){return T("any")}squaredDifference(e,t){return T("squaredDifference")}ceil(e){return T("ceil")}floor(e){return T("floor")}round(e){return T("round")}sign(e){return T("sign")}isNaN(e){return T("isNaN")}isInf(e){return T("isInf")}isFinite(e){return T("isFinite")}pow(e,t){return T("pow")}exp(e){return T("exp")}expm1(e){return T("expm1")}softmax(e,t){return T("softmax")}log(e){return T("log")}log1p(e){return T("log1p")}sqrt(e){return T("sqrt")}rsqrt(e){return T("rsqrt")}square(e){return T("square")}reciprocal(e){return T("reciprocal")}relu(e){return T("relu")}relu6(e){return T("relu6")}prelu(e,t){return T("prelu")}elu(e){return T("elu")}eluDer(e,t){return T("eluDer")}selu(e){return T("selu")}int(e){return T("int")}clip(e,t,n){return T("clip")}abs(e){return T("abs")}complexAbs(e){return T("complexAbs")}sigmoid(e){return T("sigmoid")}softplus(e){return T("softplus")}sin(e){return T("sin")}cos(e){return T("cos")}tan(e){return T("tan")}asin(e){return T("asin")}acos(e){return T("acos")}atan(e){return T("atan")}atan2(e,t){return T("atan2")}sinh(e){return T("sinh")}cosh(e){return T("cosh")}tanh(e){return T("tanh")}asinh(e){return T("asinh")}acosh(e){return T("acosh")}atanh(e){return T("atanh")}erf(e){return T("erf")}step(e,t){return T("step")}fusedConv2d({input:e,filter:t,convInfo:n,bias:r,activation:o,preluActivationWeights:i}){return T("fusedConv2d")}conv2d(e,t,n){return T("conv2d")}conv2dDerInput(e,t,n){return T("conv2dDerInput")}conv2dDerFilter(e,t,n){return T("conv2dDerFilter")}fusedDepthwiseConv2D({input:e,filter:t,convInfo:n,bias:r,activation:o,preluActivationWeights:i}){return T("fusedDepthwiseConv2D")}depthwiseConv2D(e,t,n){return T("depthwiseConv2D")}depthwiseConv2DDerInput(e,t,n){return T("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(e,t,n){return T("depthwiseConv2DDerFilter")}conv3d(e,t,n){return T("conv3d")}conv3dDerInput(e,t,n){return T("conv3dDerInput")}conv3dDerFilter(e,t,n){return T("conv3dDerFilter")}maxPool(e,t){return T("maxPool")}maxPoolBackprop(e,t,n,r){return T("maxPoolBackprop")}avgPool(e,t){return T("avgPool")}avgPoolBackprop(e,t,n){return T("avgPoolBackprop")}avgPool3d(e,t){return T("avgPool3d")}avgPool3dBackprop(e,t,n){return T("avgPool3dBackprop")}maxPool3d(e,t){return T("maxPool3d")}maxPool3dBackprop(e,t,n,r){return T("maxPool3dBackprop")}reshape(e,t){return T("reshape")}cast(e,t){return T("cast")}tile(e,t){return T("tile")}pad(e,t,n){return T("pad")}transpose(e,t){return T("transpose")}gather(e,t,n){return T("gather")}gatherND(e,t){return T("gatherND")}scatterND(e,t,n){return T("scatterND")}batchToSpaceND(e,t,n){return T("batchToSpaceND")}spaceToBatchND(e,t,n){return T("spaceToBatchND")}resizeBilinear(e,t,n,r){return T("resizeBilinear")}resizeBilinearBackprop(e,t,n){return T("resizeBilinearBackprop")}resizeNearestNeighbor(e,t,n,r){return T("resizeNearestNeighbor")}resizeNearestNeighborBackprop(e,t,n){return T("resizeNearestNeighborBackprop")}batchNorm(e,t,n,r,o,i){return T("batchNorm")}localResponseNormalization4D(e,t,n,r,o){return T("localResponseNormalization4D")}LRNGrad(e,t,n,r,o,i,a){return T("LRNGrad")}multinomial(e,t,n,r){return T("multinomial")}oneHot(e,t,n,r){return T("oneHot")}cumsum(e,t,n,r){return T("cumsum")}nonMaxSuppression(e,t,n,r,o){return T("nonMaxSuppression")}fft(e){return T("fft")}ifft(e){return T("ifft")}complex(e,t){return T("complex")}real(e){return T("real")}imag(e){return T("imag")}cropAndResize(e,t,n,r,o,i){return T("cropAndResize")}depthToSpace(e,t,n){return T("depthToSpace")}split(e,t,n){return T("split")}sparseToDense(e,t,n,r){return T("sparseToDense")}diag(e){return T("diag")}fill(e,t,n){return T("fill")}onesLike(e){return T("onesLike")}zerosLike(e){return T("zerosLike")}linspace(e,t,n){return T("linspace")}dispose(){return T("dispose")}}function T(e){throw new Error(`'${e}' not yet implemented or not found in the registry. Did you forget to import the kernel?`)}const gf={kernelName:xo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(e,Dt(C(n,"float32"),-1))}}};const bf={kernelName:yo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const r=H(C(n,"float32")),o=me(O(_(1),r));return ne(F(e,o))}}}};const wf={kernelName:Lo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const r=me(O(H(C(n,"float32")),1));return F(e,r)}}}};const xf={kernelName:kn,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=U(s,c)),y(s,n.shape)},a=()=>{let s=e;const c=ae(r.shape,o);return c.length>0&&(s=U(s,c)),y(s,r.shape)};return{a:i,b:a}}};const yf={kernelName:vo,saveAllInputs:!0,gradFunc:(e,t)=>{const n={};return t.forEach((r,o)=>{n[o]=()=>e.clone()}),n}};const Lf={kernelName:So,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>W(n)}}};const vf={kernelName:Io,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>W(n)}}};const Sf={kernelName:To,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>F(e,me(O(_(1),H(C(n,"float32")))))}}};const If={kernelName:Ao,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const r=me(R(_(1),H(C(n,"float32"))));return F(e,r)}}}};const Tf={kernelName:_o,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{const s=R(H(n),H(r));let c=v(e,F(r,s));const p=ae(n.shape,o);return p.length>0&&(c=U(c,p)),y(c,n.shape)},a=()=>{const s=R(H(n),H(r));let c=ne(v(e,F(n,s)));const p=ae(r.shape,o);return p.length>0&&(c=U(c,p)),y(c,r.shape)};return{a:i,b:a}}};const Af={kernelName:No,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>F(e,R(H(C(n,"float32")),1))}}};const Nf={kernelName:Ro,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>F(e,O(_(1),H(C(n,"float32"))))}}};function JI(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=y(s,[1,s.shape[0],s.shape[1],s.shape[2],s.shape[3]]),l=y(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(le(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 d=L=>{const S=Qt(l.shape,n,r,o,i,a);return L.avgPool3dBackprop(p,l,S)},b={dy:p,input:l},x={filterSize:n,strides:r,dilations:o,pad:i,dimRoundingMode:a},w=g.runKernelFunc(d,b,null,Dc,x);return h?y(w,[w.shape[1],w.shape[2],w.shape[3],w.shape[4]]):w}const Rf=m({avgPool3dBackprop_:JI});const _f={kernelName:Eo,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:()=>Rf(e,r,o,i,p,s,c)}}};function XI(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=y(a,[1,a.shape[0],a.shape[1],a.shape[2]]),c=y(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=x=>{const w=_t(s.shape,n,r,1,o);return x.avgPoolBackprop(c,s,w)},h={dy:c,input:s},d={filterSize:n,strides:r,pad:o},b=g.runKernelFunc(l,h,null,kc,d);return p?y(b,[b.shape[1],b.shape[2],b.shape[3]]):b}const Cf=m({avgPoolBackprop_:XI});const Ef={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:o,strides:i,pad:a}=n;return{x:()=>Cf(e,r,o,i,a)}}};const Of={kernelName:Oo,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 kf={kernelName:ko,gradFunc:(e,t,n)=>{const{blockShape:r,crops:o}=n;return{x:()=>Kn(e,r,o)}}};const Df={kernelName:Do,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:()=>U(e,s,!0)}}};const Ff={kernelName:Dn,gradFunc:e=>({x:()=>e.clone()})};const Mf={kernelName:Fo,gradFunc:e=>({x:()=>W(e)})};const Uf={kernelName:Mo,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{clipValueMin:o,clipValueMax:i}=n;return{x:()=>Oe(Lt(ht(r,o),ut(r,i)),e,W(e))}}};const Wf={kernelName:Uo,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=Yt(e,a,i);return s.map(c=>()=>c)}};const Bf={kernelName:Wo,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,o]=t,{dilations:i,strides:a,pad:s,dataFormat:c}=n;return f(ct(i),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${i}'`),{x:()=>$r(r.shape,e,o,a,s,c),filter:()=>Hr(r,e,o.shape,a,s,c)}}};const $f={kernelName:Bo,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{const[r,o]=t,{strides:i,pad:a,dataFormat:s,dimRoundingMode:c}=n;return{dy:()=>xe(e,o,i,a,s,1,c),filter:()=>Hr(e,r,o.shape,i,a,s,c)}}};function ZI(e,t,n,r,o){let i=e;e.rank===4&&(i=y(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let a=t;a.rank===4&&(a=y(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,d=Ln(i.shape,n,r,h,o);return l.conv3dDerFilter(i,a,d)},c={x:i,y:a},p={strides:r,pad:o};return g.runKernelFunc(s,c,null,Uc,p)}const jf=m({conv3DBackpropFilter_:ZI});const Gf={kernelName:$o,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:o,pad:i}=n;f(ct(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:()=>Oa(a.shape,e,s,o,i),filter:()=>jf(a,e,s.shape,o,i)}}};const Pf={kernelName:jo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(ne(Cs(C(n,"float32"))),e)}}};const qf={kernelName:Go,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(Es(C(n,"float32")),e)}}};const Hf={kernelName:Po,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:o,exclusive:i,reverse:a}=n;return{x:()=>{const s=ge([o],r.rank);let c=fs(e,o,i,!a);return s!=null&&(c=K(c,s)),c}}}};const zf={kernelName:qo,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:o,pad:i,dimRoundingMode:a}=n,s=r==null?[1,1]:r;f(ct(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(le(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=je(c.shape,p.shape,o,s,i,a,!0);return{x:()=>ja(c.shape,e,p,l),filter:()=>$a(c,e,p.shape,l)}}};const Yf={kernelName:Ho,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(qc,i,n),filter:()=>g.runKernel(Hc,a,n)}}};const Vf={kernelName:zo,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{const s=F(e,C(r,"float32")),c=ae(n.shape,o);return c.length>0?y(U(s,c),n.shape):s},a=()=>{let s=v(e,C(n,"float32"));const c=ae(r.shape,o);c.length>0&&(s=y(U(s,c),r.shape));const p=H(r);return ne(F(s,C(p,"float32")))};return{a:i,b:a}}};const Kf={kernelName:Yo,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,zc)}}};const Jf={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=v(Se(ne(H(n))),2/Math.sqrt(Math.PI));return{x:()=>v(e,r)}}};const Xf={kernelName:Ko,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(e,n)}}};const Zf={kernelName:Jo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(e,Se(n))}}};const Qf={kernelName:Xo,gradFunc:e=>({x:()=>W(e)})};const eg={kernelName:Zo,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{const s=F(e,C(r,"float32")),c=ae(n.shape,o);return c.length>0?y(U(s,c),n.shape):s},a=()=>{let s=v(e,C(n,"float32"));const c=ae(r.shape,o);c.length>0&&(s=y(U(s,c),r.shape));const p=H(r);return ne(F(s,C(p,"float32")))};return{a:i,b:a}}};const tg={kernelName:Qo,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{const{varianceEpsilon:r}=n,[o,i,a,s]=t,c=s==null?_(1):s,p=ae(i.shape,o.shape),l=[];if(i.rank===1){for(let A=0;Ai.rank===1?y(v(v(e,Ot(y(b,[1,1,1,i.shape[0]]),l)),c),o.shape):y(v(v(e,b),c),o.shape),L=()=>{let A=v(v(b,_(-1)),d);return i.rank===1&&(A=U(A,p)),y(A,i.shape)},S=()=>{let A=v(v(x,h),d);return i.rank===1&&(A=U(A,p)),y(A,i.shape)},I=()=>{const A=v(h,b);let E=v(e,A);return i.rank===1&&(E=U(E,p)),y(E,i.shape)},N=()=>{let A=e;return i.rank===1&&(A=U(A,p)),y(A,i.shape)};return{x:w,mean:L,variance:S,scale:I,offset:N}}};const og={kernelName:ei,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,d=c.slice(i,c.length).slice(1),b=d.length,x=ng(0,h),w=ng(h+1,h+1+b),L=rg([l,[p],d]),S=y(e,L),I=y(o,[p]),N=rg([[h],x,w]),A=K(S,N);let E=ks(A,I,r.shape[a]);const M=Un(N);return E=K(E,M),E};return{x:s,indices:()=>o}}};function ng(e,t){const n=[];for(let r=e;r{const[n,r]=t;return{a:()=>W(n),b:()=>W(r)}}};const sg={kernelName:ni,gradFunc:e=>({x:()=>C(e,"float32")})};const ag={kernelName:ri,gradFunc:e=>({x:()=>W(e)})};const cg={kernelName:oi,gradFunc:e=>({x:()=>W(e)})};const pg={kernelName:ii,gradFunc:e=>({x:()=>W(e)})};const lg={kernelName:ai,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>F(e,R(n,1))}}};const hg={kernelName:si,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>F(e,C(n,"float32"))}}};const ug={kernelName:ci,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{axis:o}=n;return{logits:()=>{const i=!0,a=Se(r);return O(e,v(U(e,o,i),a))}}}};function QI(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,ap,p)}const dg=m({localResponseNormalizationBackprop_:QI});const mg={kernelName:pi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,o]=t,{depthRadius:i,bias:a,alpha:s,beta:c}=n;return{x:()=>dg(r,o,e,i,a,s,c)}}};function Ja(e,t,n,r,o){return t.rank{const i=v(e,C(tn(n,t),e.dtype));return o==null?i:K(i,o)}}}const Kh={kernelName:li,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{reductionIndices:o}=r,[i,a]=t,s=z(o,i.shape),c=ge(s,i.rank),p=Ja(e,a,i,s,c);return{x:()=>{let l=p.x();return c!=null&&(l=K(l)),l}}}};const fg={kernelName:hi,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=()=>v(e,C(ht(n,r),"float32")),i=()=>v(e,C(Hn(n,r),"float32"));return{a:o,b:i}}};function eT(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,d=p,b=l,x=!1;p.rank===4&&(x=!0,h=y(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]]),d=y(p,[1,p.shape[0],p.shape[1],p.shape[2],p.shape[3]]),b=y(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(d.rank===5,()=>`Error in maxPool3dBackprop: input must be rank 5 but got rank ${d.rank}.`),f(b.rank===5,()=>`Error in maxPool3dBackprop: output must be rank 5 but got rank ${b.rank}.`),f(le(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=N=>{const A=Qt(d.shape,r,o,i,a,s);return N.maxPool3dBackprop(h,d,b,A)},L={dy:h,input:d,output:b},S={filterSize:r,strides:o,dilations:i,pad:a,dimRoundingMode:s},I=g.runKernelFunc(w,L,null,pp,S);return x?y(I,[I.shape[1],I.shape[2],I.shape[3],I.shape[4]]):I}const gg=m({maxPool3dBackprop_:eT});const bg={kernelName:di,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:()=>gg(e,r,o,i,a,l,c,p)}}};function tT(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 x=_t(c.shape,r,o,1,i,a);return b.maxPoolBackprop(s,c,p,x)},h={dy:s,input:c,output:p},d={filterSize:r,strides:o,pad:i,dimRoundingMode:a};return g.runKernelFunc(l,h,null,cp,d)}const wg=m({maxPoolBackprop_:tT});const xg={kernelName:ui,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,o]=t,{filterSize:i,strides:a,pad:s}=n;return{x:()=>wg(e,r,o,i,a,s)}}};const yg={kernelName:mi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{axis:o}=r,[i,a]=t,s=z(o,i.shape),c=ge(s,i.rank),p=Ja(e,a,i,s,c);return{x:()=>{let l=p.x();return c!=null&&(l=K(l)),l}}}};const Lg={kernelName:fi,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=()=>v(e,C(ut(n,r),"float32")),i=()=>v(e,C(tt(n,r),"float32"));return{a:o,b:i}}};const vg={kernelName:gi,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?y(U(e,s),n.shape):e},a=()=>{const s=v(e,ne(Pn(F(n,r)))),c=ae(r.shape,o);return c.length>0?y(U(s,c),r.shape):s};return{a:i,b:a}}};const Sg={kernelName:bi,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{const s=v(e,C(r,"float32")),c=ae(n.shape,o);return c.length>0?y(U(s,c),n.shape):s},a=()=>{const s=v(e,C(n,"float32")),c=ae(r.shape,o);return c.length>0?y(U(s,c),r.shape):s};return{a:i,b:a}}};const Ig={kernelName:wi,gradFunc:e=>({x:()=>ne(e)})};const Tg={kernelName:yi,inputsToSave:["indices"],gradFunc:(e,t)=>{const n=t[0];return{indices:()=>Ce(n.shape,"float32")}}};const Ag={kernelName:xi,gradFunc:e=>({x:()=>W(e)})};const Jh={kernelName:Li,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:o}=n,i=o.map(a=>a[0]);return{x:()=>G(e,i,r.shape)}}};const Ng={kernelName:vi,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=C(a,"float32");let h=v(e,v(l,Je(i,O(l,_(1)))));const d=ae(i.shape,s);return d.length>0&&(h=U(h,d)),y(h,i.shape)},p=()=>{const l=tt(i,0),h=Oe(l,yt(i),W(i));let d=v(e,v(o,h));const b=ae(a.shape,s);return b.length>0&&(d=U(d,b)),y(d,a.shape)};return{a:c,b:p}}};const Rg={kernelName:Si,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[n,r]=t,o=tt(n,0);return{x:()=>Oe(o,e,v(e,r)),alpha:()=>{let i=Oe(o,W(e),v(e,n));const a=ae(r.shape,e.shape);return a.length>0&&(i=U(i,a)),y(i,r.shape)}}}};const _g={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>F(e,ne(H(n)))}}};const Cg={kernelName:_i,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=v(ut(n,6),Dt(n));return{x:()=>v(e,C(r,"float32"))}}};const Eg={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(e,C(Dt(n),"float32"))}}};const Og={kernelName:Ai,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>y(e,n.shape)}}};const kg={kernelName:Ri,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,xp,n);return{images:a}}};const Dg={kernelName:Ni,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,wp,n);return{images:a}}};const Fg={kernelName:Ci,gradFunc:(e,t,n)=>{const{dims:r}=n,o=z(r,e.shape);return{x:()=>Ve(e,o)}}};const Mg={kernelName:Ei,gradFunc:e=>({x:()=>W(e)})};const Ug={kernelName:Oi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ne(F(e,v(Je(n,1.5),2)))}}};const Wg={kernelName:ki,inputsToSave:["condition"],gradFunc:(e,t)=>{const[n]=t;return{condition:()=>C(W(n),"float32"),t:()=>v(e,C(n,e.dtype)),e:()=>v(e,C(zn(n),e.dtype))}}};const Bg={kernelName:Di,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const r=tt(n,_(0)),o=_(Yh),i=_(Vh),a=v(e,i),s=v(v(e,o),Se(C(n,"float32")));return Oe(r,a,s)}}}};const $g={kernelName:Bi,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(e,v(n,O(_(1),n)))}}};const jg={kernelName:Wi,gradFunc:e=>({x:()=>W(e)})};const Gg={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(jn(C(n,"float32")),e)}}};const Pg={kernelName:Ui,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(ms(C(n,"float32")),e)}}};const qg={kernelName:Fi,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{begin:o,size:i}=n,a=r.shape,[s,c]=ds(r,o,i),p=[];for(let l=0;lPe(e,p)}}};const Hg={kernelName:Hi,outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{dim:o}=n,i=!0,a=v(e,r);return{logits:()=>O(a,v(U(a,[o],i),r))}}};const zg={kernelName:$i,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(e,lt(n))}}};const Xh={kernelName:Pi,gradFunc:(e,t,n)=>{const{blockShape:r,paddings:o}=n;return{x:()=>Bn(e,r,o)}}};const Zh={kernelName:qi,gradFunc:(e,t,n)=>{const{axis:r}=n;return{x:()=>Z(e,r)}}};const Yg={kernelName:ji,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>F(e,v(me(C(n,"float32")),2))}}};const Vg={kernelName:Lp,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(e,v(C(n,"float32"),2))}}};const Kg={kernelName:zi,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=_(2),i=()=>v(e,v(o,O(n,r))),a=()=>v(e,v(o,O(r,n)));return{a:i,b:a}}};const Jg={kernelName:ts,gradFunc:e=>({x:()=>W(e)})};const Xg={kernelName:Yi,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=U(s,c)),y(s,n.shape)},a=()=>{let s=e;const c=ae(r.shape,o);return c.length>0&&(s=U(s,c)),y(ne(s),r.shape)};return{a:i,b:a}}};const Zg={kernelName:Gi,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=y(e,o),c=v(s,vt(r.shape,"float32"));return{x:()=>c}}};const Qg={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>F(e,H(jn(n)))}}};const eb={kernelName:Ki,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>v(O(_(1),H(n)),e)}}};const tb={kernelName:Ji,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{reps:o}=n,i=()=>{let a=W(r);if(r.rank===1)for(let s=0;s{const r=n,{perm:o}=r,i=Un(o);return{x:()=>K(e,i)}}};const rb={kernelName:Zi,gradFunc:(e,t,n)=>{const r=n,{axis:o}=r;return{value:()=>ke(e,o)}}};const ob={kernelName:Qi,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[n]=t,r=()=>nT(e,n);return{x:r}}};function nT(e,t){const n=kt(t,W(t)),r=qn(e,n);let o=ht(t,_(0,"int32"));const i=r.rank-o.rank;for(let s=0;s({x:()=>W(e)})};const rT=[gf,bf,wf,xf,yf,Lf,vf,Sf,If,Tf,Af,Nf,_f,Ef,Of,kf,Df,Ff,Mf,Uf,Wf,$f,Bf,Gf,Pf,qf,Hf,zf,Yf,Vf,Kf,Jf,Xf,Zf,eg,Qf,tg,og,ig,sg,ag,cg,pg,lg,hg,ug,mg,Kh,Kh,fg,bg,xg,yg,Lg,vg,Sg,Ig,Tg,Ag,Jh,Jh,Ng,Rg,_g,Cg,Eg,Og,kg,Dg,Fg,Mg,Ug,Wg,Bg,$g,jg,Gg,Pg,qg,Hg,zg,Xh,Xh,Zh,Zh,Yg,Kg,Vg,Jg,Xg,Zg,Qg,eb,tb,nb,rb,ob,ib];for(const e of rT)Np(e);const Ys={};Re(Ys,{Abs:()=>xo,Acos:()=>yo,Acosh:()=>Lo,AdadeltaOptimizer:()=>sr,AdagradOptimizer:()=>ar,AdamOptimizer:()=>cr,AdamaxOptimizer:()=>pr,Add:()=>kn,AddN:()=>vo,All:()=>Ec,Any:()=>Oc,ArgMax:()=>So,ArgMin:()=>Io,Asin:()=>To,Asinh:()=>Ao,Atan:()=>No,Atan2:()=>_o,Atanh:()=>Ro,AvgPool:()=>Co,AvgPool3D:()=>Eo,AvgPool3DBackprop:()=>Dc,AvgPoolBackprop:()=>kc,BatchMatMul:()=>Oo,BatchToSpaceND:()=>ko,BroadcastTo:()=>Do,Cast:()=>Dn,Ceil:()=>Fo,ClipByValue:()=>Mo,Complex:()=>Fc,Concat:()=>Uo,Conv2D:()=>Wo,Conv2DBackpropFilter:()=>Mc,Conv2DBackpropInput:()=>Bo,Conv3D:()=>$o,Conv3DBackpropFilterV2:()=>Uc,Conv3DBackpropInputV2:()=>Wc,Cos:()=>jo,Cosh:()=>Go,CropAndResize:()=>Bc,Cumsum:()=>Po,DataStorage:()=>VI,DepthToSpace:()=>$c,DepthwiseConv2dNative:()=>qo,DepthwiseConv2dNativeBackpropFilter:()=>jc,DepthwiseConv2dNativeBackpropInput:()=>Gc,Diag:()=>Pc,Dilation2D:()=>Ho,Dilation2DBackpropFilter:()=>Hc,Dilation2DBackpropInput:()=>qc,Div:()=>zo,ENV:()=>Nc,Elu:()=>Yo,EluGrad:()=>zc,Environment:()=>Ac,Equal:()=>Yc,Erf:()=>Vo,Exp:()=>Ko,Expm1:()=>Jo,FFT:()=>Vc,Fill:()=>Kc,FlipLeftRight:()=>Jc,Floor:()=>Xo,FloorDiv:()=>Zo,FromPixels:()=>La,FusedBatchNorm:()=>Qo,FusedConv2D:()=>Sa,FusedDepthwiseConv2D:()=>Ia,GatherNd:()=>Xc,GatherV2:()=>ei,Greater:()=>Zc,GreaterEqual:()=>ti,IFFT:()=>Qc,Identity:()=>ni,Imag:()=>ep,IsFinite:()=>ri,IsInf:()=>oi,IsNan:()=>ii,KernelBackend:()=>KI,LRN:()=>pi,LRNBackprop:()=>ap,Less:()=>tp,LessEqual:()=>np,LinSpace:()=>rp,Log:()=>si,Log1p:()=>ai,LogSoftmax:()=>ci,LogicalAnd:()=>op,LogicalNot:()=>ip,LogicalOr:()=>sp,Max:()=>li,MaxPool:()=>ui,MaxPool3D:()=>di,MaxPool3DBackprop:()=>pp,MaxPoolBackprop:()=>cp,MaxPoolWithArgmax:()=>lp,Maximum:()=>hi,Mean:()=>aw,Min:()=>mi,Minimum:()=>fi,Mod:()=>gi,MomentumOptimizer:()=>lr,Multiply:()=>bi,Negate:()=>wi,NonMaxSuppressionV3:()=>up,NonMaxSuppressionV4:()=>dp,NonMaxSuppressionV5:()=>mp,NotEqual:()=>hp,OneHot:()=>yi,OnesLike:()=>xi,Optimizer:()=>ot,PadV2:()=>Li,Pool:()=>cw,Pow:()=>vi,Prelu:()=>Si,Prod:()=>fp,RMSPropOptimizer:()=>hr,Range:()=>gp,Rank:()=>Up,Real:()=>bp,Reciprocal:()=>Ii,Reduction:()=>be,Relu:()=>Ti,Relu6:()=>_i,Reshape:()=>Ai,ResizeBilinear:()=>Ri,ResizeBilinearGrad:()=>xp,ResizeNearestNeighbor:()=>Ni,ResizeNearestNeighborGrad:()=>wp,Reverse:()=>Ci,RotateWithOffset:()=>Tp,Round:()=>Ei,Rsqrt:()=>Oi,SGDOptimizer:()=>on,ScatterNd:()=>yp,SelectV2:()=>ki,Selu:()=>Di,Sigmoid:()=>Bi,Sign:()=>Wi,Sin:()=>Mi,Sinh:()=>Ui,Slice:()=>Fi,Softmax:()=>Hi,Softplus:()=>$i,SpaceToBatchND:()=>Pi,SparseToDense:()=>vp,SplitV:()=>qi,Sqrt:()=>ji,Square:()=>Lp,SquaredDifference:()=>zi,Step:()=>ts,StridedSlice:()=>Sp,Sub:()=>Yi,Sum:()=>Gi,Tan:()=>Vi,Tanh:()=>Ki,Tensor:()=>ee,TensorBuffer:()=>Dr,Tile:()=>Ji,TopK:()=>Ip,Transpose:()=>Xi,Unpack:()=>Zi,UnsortedSegmentSum:()=>Qi,Variable:()=>Ht,ZerosLike:()=>es,_FusedMatMul:()=>va,abs:()=>Ee,acos:()=>qp,acosh:()=>Hp,add:()=>R,addN:()=>zp,addStrict:()=>em,all:()=>Kp,any:()=>Jp,argMax:()=>Xp,argMin:()=>Zp,asin:()=>Qp,asinh:()=>el,atan:()=>tl,atan2:()=>nl,atanh:()=>rl,avgPool:()=>pt,avgPool3d:()=>al,backend:()=>Ix,backend_util:()=>hf,basicLSTMCell:()=>wl,batchNorm:()=>Ct,batchNorm2d:()=>xl,batchNorm3d:()=>yl,batchNorm4d:()=>Ll,batchToSpaceND:()=>Bn,booleanMaskAsync:()=>Yd,broadcastTo:()=>Br,browser:()=>Kr,buffer:()=>Be,cast:()=>C,ceil:()=>vl,clipByValue:()=>$n,clone:()=>Et,complex:()=>Ye,concat:()=>Z,concat1d:()=>Sl,concat2d:()=>Il,concat3d:()=>Tl,concat4d:()=>Al,conv1d:()=>Nl,conv2d:()=>xe,conv2dTranspose:()=>Rl,conv3d:()=>_l,conv3dTranspose:()=>Cl,cos:()=>jn,cosh:()=>ms,cosineWindow:()=>qr,cumsum:()=>fs,customGrad:()=>Ke,deprecationWarn:()=>Le,depthToSpace:()=>El,depthwiseConv2d:()=>en,device_util:()=>Dd,diag:()=>Ol,dilation2d:()=>kl,disableDeprecationWarnings:()=>hx,dispose:()=>ve,disposeVariables:()=>ux,div:()=>F,divNoNan:()=>Dl,divStrict:()=>tm,dot:()=>Fl,dropout:()=>wm,elu:()=>bs,enableDebugMode:()=>lx,enableProdMode:()=>px,enclosingPowerOfTwo:()=>Ba,engine:()=>dx,env:()=>pe,equal:()=>tn,equalStrict:()=>Vd,erf:()=>Ml,exp:()=>Se,expandDims:()=>et,expm1:()=>Ul,eye:()=>ws,fft:()=>Gn,fill:()=>Ge,findBackend:()=>Lx,findBackendFactory:()=>vx,floor:()=>Pn,floorDiv:()=>gs,fused:()=>Fh,gather:()=>qn,gatherND:()=>gm,gather_util:()=>cf,getBackend:()=>xx,getGradient:()=>Ta,getKernel:()=>rs,getKernelsForBackend:()=>Aa,grad:()=>Vy,grads:()=>Ky,greater:()=>tt,greaterEqual:()=>ht,greaterEqualStrict:()=>Kd,greaterStrict:()=>Jd,ifft:()=>vn,imag:()=>nn,image:()=>Ya,inTopKAsync:()=>xm,io:()=>Vr,irfft:()=>xs,isFinite:()=>Bl,isInf:()=>$l,isNaN:()=>jl,keep:()=>sl,kernel_impls:()=>ff,leakyRelu:()=>Gl,less:()=>Hn,lessEqual:()=>ut,lessEqualStrict:()=>Xd,lessStrict:()=>Zd,linalg:()=>Km,linspace:()=>Pl,localResponseNormalization:()=>ql,log:()=>yt,log1p:()=>ys,logSigmoid:()=>zl,logSoftmax:()=>Yl,logSumExp:()=>vs,logicalAnd:()=>Lt,logicalNot:()=>zn,logicalOr:()=>Ss,logicalXor:()=>Vl,losses:()=>Jm,matMul:()=>Y,math:()=>af,max:()=>dt,maxPool:()=>Ae,maxPool3d:()=>Kl,maxPoolWithArgmax:()=>Jl,maximum:()=>kt,maximumStrict:()=>nm,mean:()=>Sn,memory:()=>mx,min:()=>In,minimum:()=>Yn,minimumStrict:()=>rm,mod:()=>Is,modStrict:()=>om,moments:()=>Xl,movingAverage:()=>lm,mul:()=>v,mulStrict:()=>im,multiRNNCell:()=>Zl,multinomial:()=>Ql,neg:()=>ne,nextFrame:()=>yI,norm:()=>Pr,notEqual:()=>Vn,notEqualStrict:()=>Qd,oneHot:()=>jr,ones:()=>vt,onesLike:()=>Fa,op:()=>m,outerProduct:()=>eh,pad:()=>Pe,pad1d:()=>th,pad2d:()=>nh,pad3d:()=>rh,pad4d:()=>oh,pool:()=>ih,pow:()=>Je,powStrict:()=>sm,prelu:()=>Ts,print:()=>sh,prod:()=>ah,profile:()=>fx,rand:()=>ch,randomGamma:()=>uh,randomNormal:()=>dh,randomUniform:()=>Ns,range:()=>Gr,ready:()=>wx,real:()=>zt,reciprocal:()=>mh,registerBackend:()=>Sx,registerGradient:()=>Np,registerKernel:()=>pw,relu:()=>ie,relu6:()=>Rs,removeBackend:()=>yx,reshape:()=>y,reverse:()=>Ve,reverse1d:()=>fh,reverse2d:()=>gh,reverse3d:()=>bh,reverse4d:()=>wh,rfft:()=>Jn,round:()=>yh,rsqrt:()=>_s,scalar:()=>_,scatterND:()=>dm,scatter_util:()=>hm,selu:()=>Lh,separableConv2d:()=>Xn,serialization:()=>lf,setBackend:()=>bx,setPlatform:()=>Tx,setdiff1dAsync:()=>vh,sigmoid:()=>lt,sign:()=>Sh,signal:()=>Vm,sin:()=>Cs,sinh:()=>Es,slice:()=>G,slice1d:()=>Ih,slice2d:()=>Th,slice3d:()=>Os,slice4d:()=>Ah,slice_util:()=>Wd,softmax:()=>rn,softplus:()=>Ls,spaceToBatchND:()=>Kn,sparseToDense:()=>fm,spectral:()=>Ym,split:()=>Yt,sqrt:()=>me,square:()=>H,squaredDifference:()=>Zn,squaredDifferenceStrict:()=>am,squeeze:()=>Qn,stack:()=>ke,step:()=>Dt,stridedSlice:()=>Nh,sub:()=>O,subStrict:()=>cm,sum:()=>U,sumOutType:()=>Ew,tan:()=>Rh,tanh:()=>Wr,tensor:()=>ze,tensor1d:()=>ce,tensor2d:()=>mt,tensor3d:()=>er,tensor4d:()=>ft,tensor5d:()=>_h,tensor6d:()=>Ch,tensor_util:()=>Ed,test_util:()=>Pd,tidy:()=>k,tile:()=>Ot,time:()=>gx,topk:()=>Eh,train:()=>wI,transpose:()=>K,truncatedNormal:()=>Oh,unregisterGradient:()=>hw,unregisterKernel:()=>lw,unsortedSegmentSum:()=>ks,unstack:()=>Ie,upcastType:()=>Mr,util:()=>gd,valueAndGrad:()=>Jy,valueAndGrads:()=>Xy,variable:()=>kh,variableGrads:()=>Hl,version_core:()=>bI,where:()=>Oe,whereAsync:()=>Ds,zeros:()=>Ce,zerosLike:()=>W});function sn(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(!Mt(e)||!Mt(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 Ks={};Re(Ks,{computeReshapedDimensions:()=>tu,getCenterPoint:()=>mr,isDimensions:()=>Za,isEven:()=>Xa,isFloat:()=>eu,isTensor:()=>ur,isTensor1D:()=>oT,isTensor2D:()=>Qh,isTensor3D:()=>an,isTensor4D:()=>gt,isValidNumber:()=>Mt,isValidProbablitiy:()=>Xr,range:()=>Vt,round:()=>dr});function ur(e,t){return e instanceof ee&&e.shape.length===t}function oT(e){return ur(e,1)}function Qh(e){return ur(e,2)}function an(e){return ur(e,3)}function gt(e){return ur(e,4)}function eu(e){return e%1!==0}function Xa(e){return e%2===0}function dr(e,t=2){const n=Math.pow(10,t);return Math.floor(e*n)/n}function Za(e){return e&&e.width&&e.height}function tu({width:e,height:t},n){const r=n/Math.max(t,e);return new Qe(Math.round(e*r),Math.round(t*r))}function mr(e){return e.reduce((t,n)=>t.add(n),new J(0,0)).div(new J(e.length,e.length))}function Vt(e,t,n){return Array(e).fill(0).map((r,o)=>t+o*n)}function Mt(e){return!!e&&e!==Infinity&&e!==-Infinity&&!isNaN(e)||e===0}function Xr(e){return Mt(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 de{constructor(e,t=!0){const n=e||{},r=[n.left,n.top,n.right,n.bottom].every(Mt),o=[n.x,n.y,n.width,n.height].every(Mt);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];de.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(Mt)}static assertIsValidBox(e,t,n=!1){if(!de.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 de({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 de({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 de({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 Rr extends de{constructor(e,t,n,r,o=!1){super({left:e,top:t,right:n,bottom:r},o)}}class On{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 de(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 de(this._box).rescale(this.imageDims.reverse())}forSize(e,t){return new On(this.score,this.classScore,this.className,this.relativeBox,{width:e,height:t})}}class fe extends On{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 fe(n,r,o)}}function na(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 ta(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 wt(e,t){return k(()=>{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=Z([i,a,s],3);return O(e,c)})}function Qs(e,t=!1){return k(()=>{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=d=>{const b=e.shape.slice();return b[a]=d,Ge(b,0)},c=s(i),p=o-c.shape[a],l=t&&p?s(p):null,h=[l,e,c].filter(d=>!!d).map(d=>d.toFloat());return Z(h,a)})}function Uu(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 Lr(e){return 1/(1+Math.exp(-e))}function Wu(e){return Math.log(e/(1-e))}class Ar extends de{constructor(e,t,n,r,o=!1){super({x:e,y:t,width:n,height:r},o)}}const iT=.5,sT=.43,aT=.45;class st{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 fe?e.box.floor():new de(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/aT),s=mr(e),c=Math.floor(Math.max(0,s.x-iT*a)),p=Math.floor(Math.max(0,s.y-sT*a));return new Ar(c,p,Math.min(a,this.imageWidth+c),Math.min(a,this.imageHeight+p))}alignMinBbox(e){const t=ta(this.positions);return t.pad(t.width*e,t.height*e)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}}class ud extends st{getRefPointsForAlignment(){const e=this.positions;return[e[0],e[1],mr([e[3],e[4]])]}}class Nr extends st{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(mr)}}class wo{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?` (${dr(this.distance)})`:""}`}}class bo extends de{constructor(e,t){super(e);this._label=t}static assertIsValidLabeledBox(e,t){if(de.assertIsValidBox(e,t),!Mt(e.label))throw new Error(`${t} - expected property label (${e.label}) to be a number`)}get label(){return this._label}}class xn{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 xn(e.label,t)}}class hd extends bo{constructor(e,t,n,r){super(e,t);this._score=n,this._classScore=r}static assertIsValidPredictedBox(e,t){if(bo.assertIsValidLabeledBox(e,t),!Xr(e.score)||!Xr(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 Nt(e){return e.detection instanceof fe}function mn(e,t){const n={detection:t};return Object.assign({},e,n)}function nu(){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 Qa(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 ru(){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=Qa();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 ou(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}const iu=mu(Ou());let Fe;function cT(){if(!Fe)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Fe}function su(e){Fe=e}function au(){if(ou())return su(nu());if(iu.isNodejs())return su(ru())}function pT(e){if(Fe||au(),!Fe)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");const{Canvas:t=Fe.Canvas,Image:n=Fe.Image}=e;Fe.Canvas=t,Fe.Image=n,Fe.createCanvasElement=e.createCanvasElement||(()=>new t()),Fe.createImageElement=e.createImageElement||(()=>new n()),Fe.ImageData=e.ImageData||Fe.ImageData,Fe.Video=e.Video||Fe.Video,Fe.fetch=e.fetch||Fe.fetch,Fe.readFile=e.readFile||Fe.readFile}const se={getEnv:cT,setEnv:su,initialize:au,createBrowserEnv:nu,createFileSystem:Qa,createNodejsEnv:ru,monkeyPatch:pT,isBrowser:ou,isNodejs:iu.isNodejs};au();function gn(e){return!se.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function qe(e){const{Canvas:t,CanvasRenderingContext2D:n}=se.getEnv();if(e instanceof n)return e;const r=gn(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 Kt;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(Kt||(Kt={}));class ec{constructor(e={}){const{anchorPosition:t,backgroundColor:n,fontColor:r,fontSize:o,fontStyle:i,padding:a}=e;this.anchorPosition=t||Kt.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 Zr{constructor(e,t,n={}){this.text=typeof e=="string"?[e]:e instanceof Zr?e.text:e,this.anchor=t,this.options=new ec(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,x=s+l.y+(d+1)*i;n.fillText(h,b,x)})}}class sb{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:Kt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new ec(Object.assign({},i,o))}}class cu{constructor(e,t={}){this.box=new de(e),this.options=new sb(t)}draw(e){const t=qe(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 Zr([c],{x:o-r/2,y:i},this.options.drawLabelOptions).draw(e)}}function lT(e,t){const n=Array.isArray(t)?t:[t];n.forEach(r=>{const o=r instanceof fe?r.score:Nt(r)?r.detection.score:void 0,i=r instanceof fe?r.box:Nt(r)?r.detection.box:new de(r),a=o?`${dr(o)}`:void 0;new cu(i,{label:a}).draw(e)})}function Ir(e){const{Image:t,Video:n}=se.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function xa(e){return new Promise((t,n)=>{if(e instanceof se.getEnv().Canvas||Ir(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)})}function wa(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=se.getEnv().createImageElement();o.onload=()=>t(o),o.onerror=n,o.src=r.result},r.onerror=n,r.readAsDataURL(e)})}function bn(e){const{Image:t,Video:n}=se.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)}function En({width:e,height:t}){const{createCanvasElement:n}=se.getEnv(),r=n();return r.width=e,r.height=t,r}function Tr(e,t){const{ImageData:n}=se.getEnv();if(!(e instanceof n)&&!Ir(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");const{width:r,height:o}=t||bn(e),i=En({width:r,height:o});return e instanceof n?qe(i).putImageData(e,0,0):qe(i).drawImage(e,0,0,r,o),i}async function ga(e,t){const n=t||se.getEnv().createCanvasElement(),[r,o,i]=e.shape.slice(gt(e)?1:0),a=k(()=>e.as3D(r,o,i).toInt());return await Kr.toPixels(a,n),a.dispose(),n}function go(e){const{Image:t,Canvas:n,Video:r}=se.getEnv();return e instanceof t||e instanceof n||e instanceof r}function fa(e,t,n=!1){const{Image:r,Canvas:o}=se.getEnv();if(!(e instanceof r||e instanceof o))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");const i=bn(e),a=t/Math.max(i.height,i.width),s=a*i.width,c=a*i.height,p=En({width:t,height:t}),l=e instanceof o?e:Tr(e),h=Math.abs(s-c)/2,d=n&&s{if(an(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 se.getEnv().Canvas?n:Tr(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 Vt(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 tu({width:t,height:n},this.inputSize)}toBatchTensor(e,t=!0){return this._inputSize=e,k(()=>{const n=Vt(this.batchSize,0,1).map(o=>{const i=this.getInput(o);if(i instanceof ee){let a=gt(i)?i:i.expandDims();return a=Qs(a,t),(a.shape[1]!==e||a.shape[2]!==e)&&(a=Ya.resizeBilinear(a,[e,e])),a.as3D(e,e,3)}if(i instanceof se.getEnv().Canvas)return Kr.fromPixels(fa(i,e,t));throw new Error(`toBatchTensor - at batchIdx ${o}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)}),r=ke(n.map(o=>o.toFloat())).as4D(this.batchSize,e,e,3);return r})}}async function ue(e){if(e instanceof Jt)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(gn);return r.forEach((o,i)=>{if(!go(o)&&!an(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=>go(o)&&xa(o))),new Jt(r,Array.isArray(e))}async function _n(e,t){const{Canvas:n}=se.getEnv();let r=e;if(!(e instanceof n)){const a=await ue(e);if(a.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");const s=a.getInput(0);r=s instanceof n?s:await ga(s)}const o=qe(r),i=t.map(a=>a instanceof fe?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=En({width:c,height:p});return qe(l).putImageData(o.getImageData(a,s,c,p),0,0),l})}async function Cn(e,t){if(!an(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 k(()=>{const[n,r,o]=e.shape.slice(gt(e)?1:0),i=t.map(s=>s instanceof fe?s.forSize(r,n).box:s).map(s=>s.clipAtImageBorders(r,n)),a=i.map(({x:s,y:c,width:p,height:l})=>Os(e.as3D(n,r,o),[c,s,0],[l,p,o]));return a})}async function wn(e,t){const n=se.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 ld(e){const t=await wn(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 wa(n)}async function ba(e){return(await wn(e)).json()}async function pd(e){return new Float32Array(await(await wn(e)).arrayBuffer())}function tc(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 ma(e,t){const{manifestUri:n,modelBaseUri:r}=tc(e,t),o=await ba(n);return console.log(typeof o,o),Vr.loadWeights(o,r)}function cd(e,t,n=!1){const{width:r,height:o}=n?bn(t):t;return e.width=r,e.height=o,{width:r,height:o}}class Ue{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 Ht)}getFrozenParams(){return this.getParamList().filter(e=>!(e.tensor instanceof Ht))}variable(){this.getFrozenParams().forEach(({path:e,tensor:t})=>{this.reassignParamFromPath(e,t.variable())})}freeze(){this.getTrainableParams().forEach(({path:e,tensor:t})=>{const n=ze(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 ma(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}=se.getEnv(),{manifestUri:n,modelBaseUri:r}=tc(e,this.getDefaultModelName()),o=c=>Promise.all(c.map(p=>t(p).then(l=>l.buffer))),i=Vr.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 ee))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${e}`);return{obj:n,objProp:r}}}function rt(e,t,n){return k(()=>{let r=Xn(e,t.depthwise_filter,t.pointwise_filter,n,"same");return r=R(r,t.bias),r})}function nc(e,t,n=!1){return k(()=>{const r=ie(n?R(xe(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):rt(e,t.conv0,[2,2])),o=rt(r,t.conv1,[1,1]),i=ie(R(r,o)),a=rt(i,t.conv2,[1,1]);return ie(R(r,R(o,a)))})}function Ws(e,t,n=!1,r=!0){return k(()=>{const o=ie(n?R(xe(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=ie(R(o,i)),s=rt(a,t.conv2,[1,1]),c=ie(R(o,R(i,s))),p=rt(c,t.conv3,[1,1]);return ie(R(o,R(i,R(s,p))))})}function fr(e,t,n="same",r=!1){return k(()=>{const o=R(xe(e,t.filters,[1,1],n),t.bias);return r?ie(o):o})}function Xe(e,t){Object.keys(e).forEach(n=>{t.some(r=>r.originalPath===n)||e[n].dispose()})}function Qr(e,t){return function(n,r,o,i){const a=ft(e(n*r*o*o),[o,o,n,r]),s=ce(e(r));return t.push({paramPath:`${i}/filters`},{paramPath:`${i}/bias`}),{filters:a,bias:s}}}function rc(e,t){return function(n,r,o){const i=mt(e(n*r),[n,r]),a=ce(e(r));return t.push({paramPath:`${o}/weights`},{paramPath:`${o}/bias`}),{weights:i,bias:a}}}class pu{constructor(e,t,n){this.depthwise_filter=e,this.pointwise_filter=t,this.bias=n}}function eo(e,t){return function(n,r,o){const i=ft(e(3*3*n),[3,3,n,1]),a=ft(e(n*r),[1,1,n,r]),s=ce(e(r));return t.push({paramPath:`${o}/depthwise_filter`},{paramPath:`${o}/pointwise_filter`},{paramPath:`${o}/bias`}),new pu(i,a,s)}}function to(e){return function(t){const n=e(`${t}/depthwise_filter`,4),r=e(`${t}/pointwise_filter`,4),o=e(`${t}/bias`,1);return new pu(n,r,o)}}function it(e,t){return function(n,r,o){const i=e[n];if(!ur(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 Ze(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 oc(e,t){const n=Qr(e,t),r=eo(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`),d=r(s,s,`${c}/conv2`);return{conv0:l,conv1:h,conv2:d}}function i(a,s,c,p=!1){const{conv0:l,conv1:h,conv2:d}=o(a,s,c,p),b=r(s,s,`${c}/conv3`);return{conv0:l,conv1:h,conv2:d,conv3:b}}return{extractDenseBlock3Params:o,extractDenseBlock4Params:i}}function ab(e){const t=[],{extractWeights:n,getRemainingWeights:r}=Ze(e),{extractDenseBlock4Params:o}=oc(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 ic(e){return function(t){const n=e(`${t}/filters`,4),r=e(`${t}/bias`,1);return{filters:n,bias:r}}}function sc(e,t){const n=it(e,t),r=ic(n),o=to(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`),d=o(`${s}/conv3`);return{conv0:p,conv1:l,conv2:h,conv3:d}}return{extractDenseBlock3Params:i,extractDenseBlock4Params:a}}function cb(e){const t=[],{extractDenseBlock4Params:n}=sc(e,t),r={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return Xe(e,t),{params:r,paramMappings:t}}class ac extends Ue{constructor(){super("FaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceFeatureExtractor - load model before inference");return k(()=>{const n=e.toBatchTensor(112,!0),r=[122.782,117.001,104.298],o=wt(n,r).div(_(255));let i=Ws(o,t.dense0,!0);return i=Ws(i,t.dense1),i=Ws(i,t.dense2),i=Ws(i,t.dense3),i=pt(i,[7,7],[2,2],"valid"),i})}async forward(e){return this.forwardInput(await ue(e))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeigthMap(e){return cb(e)}extractParams(e){return ab(e)}}function Bs(e,t){return k(()=>R(Y(e,t.weights),t.bias))}function pb(e,t,n){const r=[],{extractWeights:o,getRemainingWeights:i}=Ze(e),a=rc(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 lb(e){const t=[],n=it(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 Xe(e,t),{params:o,paramMappings:t}}function cc(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}}class pc extends Ue{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 k(()=>{const n=e instanceof Jt?this.faceFeatureExtractor.forwardInput(e):e;return Bs(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 pb(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:n}=cc(e);return this.faceFeatureExtractor.loadFromWeightMap(t),lb(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 ha=["neutral","happy","sad","angry","fearful","disgusted","surprised"];class fn{constructor(e){if(e.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${e.length}`);ha.forEach((t,n)=>{this[t]=e[n]})}asSortedArray(){return ha.map(e=>({expression:e,probability:this[e]})).sort((e,t)=>t.probability-e.probability)}}class ua extends pc{constructor(e=new ac()){super("FaceExpressionNet",e)}forwardInput(e){return k(()=>rn(this.runNet(e)))}async forward(e){return this.forwardInput(await ue(e))}async predictExpressions(e){const t=await ue(e),n=await this.forwardInput(t),r=await Promise.all(Ie(n).map(async i=>{const a=await i.data();return i.dispose(),a}));n.dispose();const o=r.map(i=>new fn(i));return t.isBatchInput?o:o[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}}function pa(e){return e.expressions instanceof fn}function uo(e,t){const n={expressions:t};return Object.assign({},e,n)}function hT(e,t,n=.1,r){const o=Array.isArray(t)?t:[t];o.forEach(i=>{const a=i instanceof fn?i:pa(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=Nt(i)?i.detection.box.bottomLeft:r||new J(0,0),l=new Zr(c.map(h=>`${h.expression} (${dr(h.probability)})`),p);l.draw(e)})}function dn(e){return Nt(e)&&e.landmarks instanceof st&&e.unshiftedLandmarks instanceof st&&e.alignedRect instanceof fe}function Rn(e,t){const{box:n}=e.detection,r=t.shiftBy(n.x,n.y),o=r.align(),{imageDims:i}=e.detection,a=new fe(e.detection.score,o.rescale(i.reverse()),i),s={landmarks:r,unshiftedLandmarks:t,alignedRect:a};return Object.assign({},e,s)}class hb{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 ub{constructor(e,t={}){this.faceLandmarks=e,this.options=new hb(t)}draw(e){const t=qe(e),{drawLines:n,drawPoints:r,lineWidth:o,lineColor:i,pointSize:a,pointColor:s}=this.options;if(n&&this.faceLandmarks instanceof Nr&&(t.strokeStyle=i,t.lineWidth=o,sn(t,this.faceLandmarks.getJawOutline()),sn(t,this.faceLandmarks.getLeftEyeBrow()),sn(t,this.faceLandmarks.getRightEyeBrow()),sn(t,this.faceLandmarks.getNose()),sn(t,this.faceLandmarks.getLeftEye(),!0),sn(t,this.faceLandmarks.getRightEye(),!0),sn(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 uT(e,t){const n=Array.isArray(t)?t:[t];n.forEach(r=>{const o=r instanceof st?r:dn(r)?r.landmarks:void 0;if(!o)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new ub(o).draw(e)})}const Vs={};Re(Vs,{AnchorPosition:()=>Kt,DrawBox:()=>cu,DrawBoxOptions:()=>sb,DrawFaceLandmarks:()=>ub,DrawFaceLandmarksOptions:()=>hb,DrawTextField:()=>Zr,DrawTextFieldOptions:()=>ec,drawContour:()=>sn,drawDetections:()=>lT,drawFaceExpressions:()=>hT,drawFaceLandmarks:()=>uT});function dT(e,t){const n=Qr(e,t),r=eo(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 db(e,t){const n=[],{extractWeights:r,getRemainingWeights:o}=Ze(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"),d={conv_in:p,reduction_block_0:l,reduction_block_1:h},b={};Vt(t,0,1).forEach(S=>{b[`main_block_${S}`]=c(128,`middle_flow/main_block_${S}`)});const x=s(128,256,"exit_flow/reduction_block"),w=a(256,512,"exit_flow/separable_conv"),L={reduction_block:x,separable_conv:w};if(o().length!==0)throw new Error(`weights remaing after extract: ${o().length}`);return{paramMappings:n,params:{entry_flow:d,middle_flow:b,exit_flow:L}}}function mT(e,t){const n=it(e,t),r=ic(n),o=to(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 mb(e,t){const n=[],{extractConvParams:r,extractSeparableConvParams:o,extractReductionBlockParams:i,extractMainBlockParams:a}=mT(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={};Vt(t,0,1).forEach(w=>{h[`main_block_${w}`]=a(`middle_flow/main_block_${w}`)});const d=i("exit_flow/reduction_block"),b=o("exit_flow/separable_conv"),x={reduction_block:d,separable_conv:b};return Xe(e,n),{params:{entry_flow:l,middle_flow:h,exit_flow:x},paramMappings:n}}function fb(e,t,n){return R(xe(e,t.filters,n,"same"),t.bias)}function lu(e,t,n=!0){let r=n?ie(e):e;return r=rt(r,t.separable_conv0,[1,1]),r=rt(ie(r),t.separable_conv1,[1,1]),r=Ae(r,[3,3],[2,2],"same"),r=R(r,fb(e,t.expansion_conv,[2,2])),r}function fT(e,t){let n=rt(ie(e),t.separable_conv0,[1,1]);return n=rt(ie(n),t.separable_conv1,[1,1]),n=rt(ie(n),t.separable_conv2,[1,1]),n=R(n,e),n}class gb extends Ue{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyXception - load model before inference");return k(()=>{const n=e.toBatchTensor(112,!0),r=[122.782,117.001,104.298],o=wt(n,r).div(_(256));let i=ie(fb(o,t.entry_flow.conv_in,[2,2]));return i=lu(i,t.entry_flow.reduction_block_0,!1),i=lu(i,t.entry_flow.reduction_block_1),Vt(this._numMainBlocks,0,1).forEach(a=>{i=fT(i,t.middle_flow[`main_block_${a}`])}),i=lu(i,t.exit_flow.reduction_block),i=ie(rt(i,t.exit_flow.separable_conv,[1,1])),i})}async forward(e){return this.forwardInput(await ue(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeigthMap(e){return mb(e,this._numMainBlocks)}extractParams(e){return db(e,this._numMainBlocks)}}function bb(e){const t=[],{extractWeights:n,getRemainingWeights:r}=Ze(e),o=rc(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 wb(e){const t=[],n=it(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 Xe(e,t),{params:o,paramMappings:t}}var Bt;(function(e){e.FEMALE="female",e.MALE="male"})(Bt||(Bt={}));class ya extends Ue{constructor(e=new gb(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 k(()=>{const n=e instanceof Jt?this.faceFeatureExtractor.forwardInput(e):e,r=pt(n,[7,7],[2,2],"valid").as2D(n.shape[0],-1),o=Bs(r,t.fc.age).as1D(),i=Bs(r,t.fc.gender);return{age:o,gender:i}})}forwardInput(e){return k(()=>{const{age:t,gender:n}=this.runNet(e);return{age:t,gender:rn(n)}})}async forward(e){return this.forwardInput(await ue(e))}async predictAgeAndGender(e){const t=await ue(e),n=await this.forwardInput(t),r=Ie(n.age),o=Ie(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,d=h?Bt.MALE:Bt.FEMALE,b=h?l:1-l;return s.dispose(),c.dispose(),{age:p,gender:d,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 bb(e)}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:n}=cc(e);return this.faceFeatureExtractor.loadFromWeightMap(t),wb(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)}}class lc extends pc{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 k(()=>{const i=(l,h)=>ke([Ge([68],l),Ge([68],h)],1).as2D(1,136).as1D(),a=(l,h)=>{const{width:d,height:b}=r[l];return h(d,b)?Math.abs(d-b)/2:0},s=l=>a(l,(h,d)=>ha(l,(h,d)=>di(s(h),c(h))))).div(ke(Array.from(Array(o),(l,h)=>i(r[h].width,r[h].height))));return p})}forwardInput(e){return k(()=>{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 ue(e))}async detectLandmarks(e){const t=await ue(e),n=k(()=>Ie(this.forwardInput(t))),r=await Promise.all(n.map(async(o,i)=>{const a=Array.from(await o.data()),s=a.filter((p,l)=>Xa(l)),c=a.filter((p,l)=>!Xa(l));return new Nr(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 Sr extends lc{constructor(e=new ac()){super("FaceLandmark68Net",e)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}}function xb(e){const t=[],{extractDenseBlock3Params:n}=sc(e,t),r={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return Xe(e,t),{params:r,paramMappings:t}}function yb(e){const t=[],{extractWeights:n,getRemainingWeights:r}=Ze(e),{extractDenseBlock3Params:o}=oc(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}}}class Lb extends Ue{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyFaceFeatureExtractor - load model before inference");return k(()=>{const n=e.toBatchTensor(112,!0),r=[122.782,117.001,104.298],o=wt(n,r).div(_(255));let i=nc(o,t.dense0,!0);return i=nc(i,t.dense1),i=nc(i,t.dense2),i=pt(i,[14,14],[2,2],"valid"),i})}async forward(e){return this.forwardInput(await ue(e))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeigthMap(e){return xb(e)}extractParams(e){return yb(e)}}class la extends lc{constructor(e=new Lb()){super("FaceLandmark68TinyNet",e)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}}class ad extends Sr{}function vb(e,t){return R(v(e,t.weights),t.biases)}function hu(e,t,n,r,o="same"){const{filters:i,bias:a}=t.conv;let s=xe(e,i,n,o);return s=R(s,a),s=vb(s,t.scale),r?ie(s):s}function Sb(e,t){return hu(e,t,[1,1],!0)}function uu(e,t){return hu(e,t,[1,1],!1)}function hc(e,t){return hu(e,t,[2,2],!0,"valid")}function gT(e,t){function n(s,c,p){const l=e(s),h=l.length/(c*p*p);if(eu(h))throw new Error(`depth has to be an integer: ${h}, weights.length: ${l.length}, numFilters: ${c}, filterSize: ${p}`);return k(()=>K(ft(l,[c,h,p,p]),[2,3,1,0]))}function r(s,c,p,l){const h=n(s,c,p),d=ce(e(c));return t.push({paramPath:`${l}/filters`},{paramPath:`${l}/bias`}),{filters:h,bias:d}}function o(s,c){const p=ce(e(s)),l=ce(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`),d=o(c,`${l}/scale`);return{conv:h,scale:d}}function a(s,c,p,l,h=!1){const d=i((h?.5:1)*s,c,p,`${l}/conv1`),b=i(s,c,p,`${l}/conv2`);return{conv1:d,conv2:b}}return{extractConvLayerParams:i,extractResidualLayerParams:a}}function Ib(e){const{extractWeights:t,getRemainingWeights:n}=Ze(e),r=[],{extractConvLayerParams:o,extractResidualLayerParams:i}=gT(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"),d=i(36864,64,3,"conv64_2"),b=i(36864,64,3,"conv64_3"),x=i(147456,128,3,"conv128_down",!0),w=i(147456,128,3,"conv128_1"),L=i(147456,128,3,"conv128_2"),S=i(589824,256,3,"conv256_down",!0),I=i(589824,256,3,"conv256_1"),N=i(589824,256,3,"conv256_2"),A=i(589824,256,3,"conv256_down_out"),E=k(()=>K(mt(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:d,conv64_3:b,conv128_down:x,conv128_1:w,conv128_2:L,conv256_down:S,conv256_1:I,conv256_2:N,conv256_down_out:A,fc:E};return{params:M,paramMappings:r}}function bT(e,t){const n=it(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 Tb(e){const t=[],{extractConvLayerParams:n,extractResidualLayerParams:r}=bT(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"),d=r("conv128_down"),b=r("conv128_1"),x=r("conv128_2"),w=r("conv256_down"),L=r("conv256_1"),S=r("conv256_2"),I=r("conv256_down_out"),N=e.fc;if(t.push({originalPath:"fc",paramPath:"fc"}),!Qh(N))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${N}`);const A={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:d,conv128_1:b,conv128_2:x,conv256_down:w,conv256_1:L,conv256_2:S,conv256_down_out:I,fc:N};return Xe(e,t),{params:A,paramMappings:t}}function Ut(e,t){let n=Sb(e,t.conv1);return n=uu(n,t.conv2),n=R(n,e),n=ie(n),n}function $s(e,t){let n=hc(e,t.conv1);n=uu(n,t.conv2);let r=pt(e,2,2,"valid");const o=Ce(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=Ce(s);n=Z([n,c],1);const p=[...n.shape];p[2]=1;const l=Ce(p);n=Z([n,l],2)}return r=i?Z([r,o],3):r,n=R(r,n),n=ie(n),n}class vr extends Ue{constructor(){super("FaceRecognitionNet")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceRecognitionNet - load model before inference");return k(()=>{const n=e.toBatchTensor(150,!0).toFloat(),r=[122.782,117.001,104.298],o=wt(n,r).div(_(256));let i=hc(o,t.conv32_down);i=Ae(i,3,2,"valid"),i=Ut(i,t.conv32_1),i=Ut(i,t.conv32_2),i=Ut(i,t.conv32_3),i=$s(i,t.conv64_down),i=Ut(i,t.conv64_1),i=Ut(i,t.conv64_2),i=Ut(i,t.conv64_3),i=$s(i,t.conv128_down),i=Ut(i,t.conv128_1),i=Ut(i,t.conv128_2),i=$s(i,t.conv256_down),i=Ut(i,t.conv256_1),i=Ut(i,t.conv256_2),i=$s(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 ue(e))}async computeFaceDescriptor(e){const t=await ue(e),n=k(()=>Ie(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 Tb(e)}extractParams(e){return Ib(e)}}function sd(e){const t=new vr();return t.extractWeights(e),t}function mo(e,t){const n={descriptor:t};return Object.assign({},e,n)}function id(e){return typeof e.age=="number"}function fo(e,t){const n={age:t};return Object.assign({},e,n)}function od(e){return(e.gender===Bt.MALE||e.gender===Bt.FEMALE)&&Xr(e.genderProbability)}function ho(e,t,n){const r={gender:t,genderProbability:n};return Object.assign({},e,r)}function wT(e,t){function n(c,p){const l=ft(e(3*3*c),[3,3,c,1]),h=ce(e(c)),d=ce(e(c)),b=ce(e(c)),x=ce(e(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/batch_norm_scale`},{paramPath:`${p}/batch_norm_offset`},{paramPath:`${p}/batch_norm_mean`},{paramPath:`${p}/batch_norm_variance`}),{filters:l,batch_norm_scale:h,batch_norm_offset:d,batch_norm_mean:b,batch_norm_variance:x}}function r(c,p,l,h,d){const b=ft(e(c*p*l*l),[l,l,c,p]),x=ce(e(p));return t.push({paramPath:`${h}/filters`},{paramPath:`${h}/${d?"batch_norm_offset":"bias"}`}),{filters:b,bias:x}}function o(c,p,l,h){const{filters:d,bias:b}=r(c,p,l,h,!0);return{filters:d,batch_norm_offset:b}}function i(c,p,l){const h=n(c,`${l}/depthwise_conv`),d=o(c,p,1,`${l}/pointwise_conv`);return{depthwise_conv:h,pointwise_conv:d}}function a(){const c=o(3,32,3,"mobilenetv1/conv_0"),p=i(32,64,"mobilenetv1/conv_1"),l=i(64,128,"mobilenetv1/conv_2"),h=i(128,128,"mobilenetv1/conv_3"),d=i(128,256,"mobilenetv1/conv_4"),b=i(256,256,"mobilenetv1/conv_5"),x=i(256,512,"mobilenetv1/conv_6"),w=i(512,512,"mobilenetv1/conv_7"),L=i(512,512,"mobilenetv1/conv_8"),S=i(512,512,"mobilenetv1/conv_9"),I=i(512,512,"mobilenetv1/conv_10"),N=i(512,512,"mobilenetv1/conv_11"),A=i(512,1024,"mobilenetv1/conv_12"),E=i(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:p,conv_2:l,conv_3:h,conv_4:d,conv_5:b,conv_6:x,conv_7:w,conv_8:L,conv_9:S,conv_10:I,conv_11:N,conv_12:A,conv_13:E}}function s(){const c=o(1024,256,1,"prediction_layer/conv_0"),p=o(256,512,3,"prediction_layer/conv_1"),l=o(512,128,1,"prediction_layer/conv_2"),h=o(128,256,3,"prediction_layer/conv_3"),d=o(256,128,1,"prediction_layer/conv_4"),b=o(128,256,3,"prediction_layer/conv_5"),x=o(256,64,1,"prediction_layer/conv_6"),w=o(64,128,3,"prediction_layer/conv_7"),L=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),S=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),I=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),N=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),A=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),E=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),M=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),D=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),$=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),B=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),j=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),te=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor"),re={box_encoding_predictor:L,class_predictor:S},he={box_encoding_predictor:I,class_predictor:N},ye={box_encoding_predictor:A,class_predictor:E},Me={box_encoding_predictor:M,class_predictor:D},Tt={box_encoding_predictor:$,class_predictor:B},ln={box_encoding_predictor:j,class_predictor:te};return{conv_0:c,conv_1:p,conv_2:l,conv_3:h,conv_4:d,conv_5:b,conv_6:x,conv_7:w,box_predictor_0:re,box_predictor_1:he,box_predictor_2:ye,box_predictor_3:Me,box_predictor_4:Tt,box_predictor_5:ln}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:s}}function Ab(e){const t=[],{extractWeights:n,getRemainingWeights:r}=Ze(e),{extractMobilenetV1Params:o,extractPredictionLayerParams:i}=wT(n,t),a=o(),s=i(),c=er(n(5118*4),[1,5118,4]),p={extra_dim:c};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:a,prediction_layer:s,output_layer:p},paramMappings:t}}function xT(e,t){const n=it(e,t);function r(p,l,h){const d=n(`${p}/Conv2d_${l}_pointwise/weights`,4,`${h}/filters`),b=n(`${p}/Conv2d_${l}_pointwise/convolution_bn_offset`,1,`${h}/batch_norm_offset`);return{filters:d,batch_norm_offset:b}}function o(p){const l=`mobilenetv1/conv_${p}`,h=`MobilenetV1/Conv2d_${p}_depthwise`,d=`${l}/depthwise_conv`,b=`${l}/pointwise_conv`,x=n(`${h}/depthwise_weights`,4,`${d}/filters`),w=n(`${h}/BatchNorm/gamma`,1,`${d}/batch_norm_scale`),L=n(`${h}/BatchNorm/beta`,1,`${d}/batch_norm_offset`),S=n(`${h}/BatchNorm/moving_mean`,1,`${d}/batch_norm_mean`),I=n(`${h}/BatchNorm/moving_variance`,1,`${d}/batch_norm_variance`);return{depthwise_conv:{filters:x,batch_norm_scale:w,batch_norm_offset:L,batch_norm_mean:S,batch_norm_variance:I},pointwise_conv:r("MobilenetV1",p,b)}}function i(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:o(1),conv_2:o(2),conv_3:o(3),conv_4:o(4),conv_5:o(5),conv_6:o(6),conv_7:o(7),conv_8:o(8),conv_9:o(9),conv_10:o(10),conv_11:o(11),conv_12:o(12),conv_13:o(13)}}function a(p,l){const h=n(`${p}/weights`,4,`${l}/filters`),d=n(`${p}/biases`,1,`${l}/bias`);return{filters:h,bias:d}}function s(p){const l=a(`Prediction/BoxPredictor_${p}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${p}/box_encoding_predictor`),h=a(`Prediction/BoxPredictor_${p}/ClassPredictor`,`prediction_layer/box_predictor_${p}/class_predictor`);return{box_encoding_predictor:l,class_predictor:h}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:s(0),box_predictor_1:s(1),box_predictor_2:s(2),box_predictor_3:s(3),box_predictor_4:s(4),box_predictor_5:s(5)}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:c}}function Nb(e){const t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:r}=xT(e,t),o=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!an(o))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${o}`);const i={mobilenetv1:n(),prediction_layer:r(),output_layer:{extra_dim:o}};return Xe(e,t),{params:i,paramMappings:t}}function It(e,t,n){return k(()=>{let r=xe(e,t.filters,n,"same");return r=R(r,t.batch_norm_offset),$n(r,0,6)})}const yT=.0010000000474974513;function LT(e,t,n){return k(()=>{let r=en(e,t.filters,n,"same");return r=Ct(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,yT),$n(r,0,6)})}function vT(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function Rb(e,t){return k(()=>{let n=null,r=It(e,t.conv_0,[2,2]);const o=[t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13];if(o.forEach((i,a)=>{const s=a+1,c=vT(s);r=LT(r,i.depthwise_conv,c),r=It(r,i.pointwise_conv,[1,1]),s===11&&(n=r)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:n}})}function _b(e,t,n,r,o){const i=e.shape[0],a=Math.min(n,i),s=t.map((l,h)=>({score:l,boxIndex:h})).filter(l=>l.score>o).sort((l,h)=>h.score-l.score),c=l=>l<=r?1:0,p=[];return s.forEach(l=>{if(p.length>=a)return;const h=l.score;for(let d=p.length-1;d>=0;--d){const b=ST(e,l.boxIndex,p[d]);if(b===0)continue;if(l.score*=c(b),l.score<=o)break}h===l.score&&p.push(l.boxIndex)}),p}function ST(e,t,n){const r=e.arraySync(),o=Math.min(r[t][0],r[t][2]),i=Math.min(r[t][1],r[t][3]),a=Math.max(r[t][0],r[t][2]),s=Math.max(r[t][1],r[t][3]),c=Math.min(r[n][0],r[n][2]),p=Math.min(r[n][1],r[n][3]),l=Math.max(r[n][0],r[n][2]),h=Math.max(r[n][1],r[n][3]),d=(a-o)*(s-i),b=(l-c)*(h-p);if(d<=0||b<=0)return 0;const x=Math.max(o,c),w=Math.max(i,p),L=Math.min(a,l),S=Math.min(s,h),I=Math.max(L-x,0)*Math.max(S-w,0);return I/(d+b-I)}function IT(e){const t=Ie(K(e,[1,0])),n=[O(t[2],t[0]),O(t[3],t[1])],r=[R(t[0],F(n[0],_(2))),R(t[1],F(n[1],_(2)))];return{sizes:n,centers:r}}function TT(e,t){const{sizes:n,centers:r}=IT(e),o=Ie(K(t,[1,0])),i=F(v(Se(F(o[2],_(5))),n[0]),_(2)),a=R(v(F(o[0],_(10)),n[0]),r[0]),s=F(v(Se(F(o[3],_(5))),n[1]),_(2)),c=R(v(F(o[1],_(10)),n[1]),r[1]);return K(ke([O(a,i),O(c,s),R(a,i),R(c,s)]),[1,0])}function Cb(e,t,n){return k(()=>{const r=e.shape[0];let o=TT(y(Ot(n.extra_dim,[r,1,1]),[-1,4]),y(e,[-1,4]));o=y(o,[r,o.shape[0]/r,4]);const i=lt(G(t,[0,0,1],[-1,-1,-1]));let a=G(i,[0,0,0],[-1,-1,1]);a=y(a,[r,a.shape[1]]);const s=Ie(o),c=Ie(a);return{boxes:s,scores:c}})}function gr(e,t){return k(()=>{const n=e.shape[0],r=y(fr(e,t.box_encoding_predictor),[n,-1,1,4]),o=y(fr(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:r,classPrediction:o}})}function Eb(e,t,n){return k(()=>{const r=It(e,n.conv_0,[1,1]),o=It(r,n.conv_1,[2,2]),i=It(o,n.conv_2,[1,1]),a=It(i,n.conv_3,[2,2]),s=It(a,n.conv_4,[1,1]),c=It(s,n.conv_5,[2,2]),p=It(c,n.conv_6,[1,1]),l=It(p,n.conv_7,[2,2]),h=gr(t,n.box_predictor_0),d=gr(e,n.box_predictor_1),b=gr(o,n.box_predictor_2),x=gr(a,n.box_predictor_3),w=gr(c,n.box_predictor_4),L=gr(l,n.box_predictor_5),S=Z([h.boxPredictionEncoding,d.boxPredictionEncoding,b.boxPredictionEncoding,x.boxPredictionEncoding,w.boxPredictionEncoding,L.boxPredictionEncoding],1),I=Z([h.classPrediction,d.classPrediction,b.classPrediction,x.classPrediction,w.classPrediction,L.classPrediction],1);return{boxPredictions:S,classPredictions:I}})}class bt{constructor({minConfidence:e,maxResults:t}={}){if(this._name="SsdMobilenetv1Options",this._minConfidence=e||.5,this._maxResults=t||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}}class Nn extends Ue{constructor(){super("SsdMobilenetv1")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("SsdMobilenetv1 - load model before inference");return k(()=>{const n=e.toBatchTensor(512,!1).toFloat(),r=O(v(n,_(.007843137718737125)),_(1)),o=Rb(r,t.mobilenetv1),{boxPredictions:i,classPredictions:a}=Eb(o.out,o.conv11,t.prediction_layer);return Cb(i,a,t.output_layer)})}async forward(e){return this.forwardInput(await ue(e))}async locateFaces(e,t={}){const{maxResults:n,minConfidence:r}=new bt(t),o=await ue(e),{boxes:i,scores:a}=this.forwardInput(o),s=i[0],c=a[0];for(let I=1;I{const[N,A]=[Math.max(0,L[I][0]),Math.min(1,L[I][2])].map(D=>D*w),[E,M]=[Math.max(0,L[I][1]),Math.min(1,L[I][3])].map(D=>D*x);return new fe(p[I],new Ar(E,N,M-E,A-N),{height:o.getInputHeight(0),width:o.getInputWidth(0)})});return s.dispose(),c.dispose(),S}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeigthMap(e){return Nb(e)}extractParams(e){return Ab(e)}}function xc(e){const t=new Nn();return t.extractWeights(e),t}function Fu(e){return xc(e)}class Mu extends Nn{}const Ob=.4,kb=[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)],Db=[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)],Fb=[117.001,114.697,97.404],Mb="tiny_yolov2_model",Ub="tiny_yolov2_separable_conv_model";const uc=e=>typeof e=="number";function Js(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(!uc(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=>uc(t.x)&&uc(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(uc)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function no(e){return k(()=>{const t=v(e,_(.10000000149011612));return R(ie(O(e,t)),t)})}function cn(e,t){return k(()=>{let n=Pe(e,[[0,0],[1,1],[1,1],[0,0]]);return n=xe(n,t.conv.filters,[1,1],"valid"),n=O(n,t.bn.sub),n=v(n,t.bn.truediv),n=R(n,t.conv.bias),no(n)})}function pn(e,t){return k(()=>{let n=Pe(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Xn(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=R(n,t.bias),no(n)})}function AT(e,t){const n=Qr(e,t);function r(a,s){const c=ce(e(a)),p=ce(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=eo(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:o,extractSeparableConvParams:i}}function Wb(e,t,n,r){const{extractWeights:o,getRemainingWeights:i}=Ze(e),a=[],{extractConvParams:s,extractConvWithBatchNormParams:c,extractSeparableConvParams:p}=AT(o,a);let l;if(t.withSeparableConvs){const[h,d,b,x,w,L,S,I,N]=r,A=t.isFirstLayerConv2d?s(h,d,3,"conv0"):p(h,d,"conv0"),E=p(d,b,"conv1"),M=p(b,x,"conv2"),D=p(x,w,"conv3"),$=p(w,L,"conv4"),B=p(L,S,"conv5"),j=I?p(S,I,"conv6"):void 0,te=N?p(I,N,"conv7"):void 0,re=s(N||I||S,5*n,1,"conv8");l={conv0:A,conv1:E,conv2:M,conv3:D,conv4:$,conv5:B,conv6:j,conv7:te,conv8:re}}else{const[h,d,b,x,w,L,S,I,N]=r,A=c(h,d,"conv0"),E=c(d,b,"conv1"),M=c(b,x,"conv2"),D=c(x,w,"conv3"),$=c(w,L,"conv4"),B=c(L,S,"conv5"),j=c(S,I,"conv6"),te=c(I,N,"conv7"),re=s(N,5*n,1,"conv8");l={conv0:A,conv1:E,conv2:M,conv3:D,conv4:$,conv5:B,conv6:j,conv7:te,conv8:re}}if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{params:l,paramMappings:a}}function NT(e,t){const n=it(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=to(n);return{extractConvParams:o,extractConvWithBatchNormParams:i,extractSeparableConvParams:a}}function Bb(e,t){const n=[],{extractConvParams:r,extractConvWithBatchNormParams:o,extractSeparableConvParams:i}=NT(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 Xe(e,n),{params:a,paramMappings:n}}var Xs;(function(e){e[e.XS=224]="XS",e[e.SM=320]="SM",e[e.MD=416]="MD",e[e.LG=608]="LG"})(Xs||(Xs={}));class Wt{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 ro extends Ue{constructor(e){super("TinyYolov2");Js(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=cn(e,t.conv0);return n=Ae(n,[2,2],[2,2],"same"),n=cn(n,t.conv1),n=Ae(n,[2,2],[2,2],"same"),n=cn(n,t.conv2),n=Ae(n,[2,2],[2,2],"same"),n=cn(n,t.conv3),n=Ae(n,[2,2],[2,2],"same"),n=cn(n,t.conv4),n=Ae(n,[2,2],[2,2],"same"),n=cn(n,t.conv5),n=Ae(n,[2,2],[1,1],"same"),n=cn(n,t.conv6),n=cn(n,t.conv7),fr(n,t.conv8,"valid",!1)}runMobilenet(e,t){let n=this.config.isFirstLayerConv2d?no(fr(e,t.conv0,"valid",!1)):pn(e,t.conv0);return n=Ae(n,[2,2],[2,2],"same"),n=pn(n,t.conv1),n=Ae(n,[2,2],[2,2],"same"),n=pn(n,t.conv2),n=Ae(n,[2,2],[2,2],"same"),n=pn(n,t.conv3),n=Ae(n,[2,2],[2,2],"same"),n=pn(n,t.conv4),n=Ae(n,[2,2],[2,2],"same"),n=pn(n,t.conv5),n=Ae(n,[2,2],[1,1],"same"),n=t.conv6?pn(n,t.conv6):n,n=t.conv7?pn(n,t.conv7):n,fr(n,t.conv8,"valid",!1)}forwardInput(e,t){const{params:n}=this;if(!n)throw new Error("TinyYolov2 - load model before inference");return k(()=>{let r=e.toBatchTensor(t,!1).toFloat();return r=this.config.meanRgb?wt(r,this.config.meanRgb):r,r=r.div(_(256)),this.config.withSeparableConvs?this.runMobilenet(r,n):this.runTinyYolov2(r,n)})}async forward(e,t){return await this.forwardInput(await ue(e),t)}async detect(e,t={}){const{inputSize:n,scoreThreshold:r}=new Wt(t),o=await ue(e),i=await this.forwardInput(o,n),a=k(()=>Ie(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),d=c.map(w=>this.config.classes[w.label]),b=ea(p.map(w=>w.rescale(n)),l,this.config.iouThreshold,!0),x=b.map(w=>new On(l[w],h[w],d[w],p[w],s));return x}getDefaultModelName(){return""}extractParamsFromWeigthMap(e){return Bb(e,this.config)}extractParams(e){const t=this.config.filterSizes||ro.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 Wb(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,d]=k(()=>{const L=e.reshape([c,c,p,this.boxEncodingSize]),S=L.slice([0,0,0,0],[c,c,p,4]),I=L.slice([0,0,0,4],[c,c,p,1]),N=this.withClassScores?rn(L.slice([0,0,0,5],[c,c,p,this.config.classes.length]),3):_(0);return[S,I,N]}),b=[],x=await h.array(),w=await l.array();for(let L=0;Ln){const A=(S+Lr(w[L][S][I][0]))/c*a,E=(L+Lr(w[L][S][I][1]))/c*s,M=Math.exp(w[L][S][I][2])*this.config.anchors[I].x/c*a,D=Math.exp(w[L][S][I][3])*this.config.anchors[I].y/c*s,$=A-M/2,B=E-D/2,j={row:L,col:S,anchor:I},{classScore:te,label:re}=this.withClassScores?await this.extractPredictedClass(d,j):{classScore:1,label:0};b.push({box:new Rr($,B,$+M,B+D),score:N,classScore:N*te,label:re,...j})}}return l.dispose(),h.dispose(),d.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)}}ro.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];class xr extends ro{constructor(e=!0){const t=Object.assign({},{withSeparableConvs:e,iouThreshold:Ob,classes:["face"]},e?{anchors:Db,meanRgb:Fb}:{anchors:kb,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 fe(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?Ub:Mb}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}function ku(e,t=!0){const n=new xr(t);return n.extractWeights(e),n}class Zs extends Wt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}}class xt{async then(e){return e(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}}async function br(e,t,n,r,o=({alignedRect:i})=>i){const i=e.map(c=>dn(c)?o(c):c.detection),a=r||(t instanceof ee?await Cn(t,i):await _n(t,i)),s=await n(a);return a.forEach(c=>c instanceof ee&&c.dispose()),s}async function oo(e,t,n,r,o){return br([e],t,async i=>n(i[0]),r,o)}const $b=.4,jb=[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)],Gb=[117.001,114.697,97.404];class yr extends ro{constructor(){const e={withSeparableConvs:!0,iouThreshold:$b,classes:["face"],anchors:jb,meanRgb:Gb,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 fe(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}const oe={ssdMobilenetv1:new Nn(),tinyFaceDetector:new yr(),tinyYolov2:new xr(),faceLandmark68Net:new Sr(),faceLandmark68TinyNet:new la(),faceRecognitionNet:new vr(),faceExpressionNet:new ua(),ageGenderNet:new ya()},Lc=(e,t)=>oe.ssdMobilenetv1.locateFaces(e,t),Bu=(e,t)=>oe.tinyFaceDetector.locateFaces(e,t),$u=(e,t)=>oe.tinyYolov2.locateFaces(e,t),vc=e=>oe.faceLandmark68Net.detectLandmarks(e),ju=e=>oe.faceLandmark68TinyNet.detectLandmarks(e),Gu=e=>oe.faceRecognitionNet.computeFaceDescriptor(e),Pu=e=>oe.faceExpressionNet.predictExpressions(e),qu=e=>oe.ageGenderNet.predictAgeAndGender(e),Sc=e=>oe.ssdMobilenetv1.load(e),Hu=e=>oe.tinyFaceDetector.load(e),zu=e=>oe.tinyYolov2.load(e),Yu=e=>oe.faceLandmark68Net.load(e),Vu=e=>oe.faceLandmark68TinyNet.load(e),Ku=e=>oe.faceRecognitionNet.load(e),Ju=e=>oe.faceExpressionNet.load(e),Xu=e=>oe.ageGenderNet.load(e),Zu=Sc,Qu=Lc,ed=vc;class Pb extends xt{constructor(e,t,n){super();this.parentTask=e,this.input=t,this.extractedFaces=n}}class Ps extends Pb{async run(){const e=await this.parentTask,t=await br(e,this.input,async n=>await Promise.all(n.map(r=>oe.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return e.map((n,r)=>uo(n,t[r]))}withAgeAndGender(){return new js(this,this.input)}}class qs extends Pb{async run(){const e=await this.parentTask;if(!e)return;const t=await oo(e,this.input,n=>oe.faceExpressionNet.predictExpressions(n),this.extractedFaces);return uo(e,t)}withAgeAndGender(){return new Gs(this,this.input)}}class ao extends Ps{withAgeAndGender(){return new io(this,this.input)}withFaceDescriptors(){return new hn(this,this.input)}}class co extends qs{withAgeAndGender(){return new so(this,this.input)}withFaceDescriptor(){return new un(this,this.input)}}class qb extends xt{constructor(e,t,n){super();this.parentTask=e,this.input=t,this.extractedFaces=n}}class js extends qb{async run(){const e=await this.parentTask,t=await br(e,this.input,async n=>await Promise.all(n.map(r=>oe.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return e.map((n,r)=>{const{age:o,gender:i,genderProbability:a}=t[r];return fo(ho(n,i,a),o)})}withFaceExpressions(){return new Ps(this,this.input)}}class Gs extends qb{async run(){const e=await this.parentTask;if(!e)return;const{age:t,gender:n,genderProbability:r}=await oo(e,this.input,o=>oe.ageGenderNet.predictAgeAndGender(o),this.extractedFaces);return fo(ho(e,n,r),t)}withFaceExpressions(){return new qs(this,this.input)}}class io extends js{withFaceExpressions(){return new ao(this,this.input)}withFaceDescriptors(){return new hn(this,this.input)}}class so extends Gs{withFaceExpressions(){return new co(this,this.input)}withFaceDescriptor(){return new un(this,this.input)}}class ca extends xt{constructor(e,t){super();this.parentTask=e,this.input=t}}class hn extends ca{async run(){const e=await this.parentTask,t=await br(e,this.input,n=>Promise.all(n.map(r=>oe.faceRecognitionNet.computeFaceDescriptor(r))),null,n=>n.landmarks.align(null,{useDlibAlignment:!0}));return t.map((n,r)=>mo(e[r],n))}withFaceExpressions(){return new ao(this,this.input)}withAgeAndGender(){return new io(this,this.input)}}class un extends ca{async run(){const e=await this.parentTask;if(!e)return;const t=await oo(e,this.input,n=>oe.faceRecognitionNet.computeFaceDescriptor(n),null,n=>n.landmarks.align(null,{useDlibAlignment:!0}));return mo(e,t)}withFaceExpressions(){return new co(this,this.input)}withAgeAndGender(){return new so(this,this.input)}}class ia extends xt{constructor(e,t,n){super();this.parentTask=e,this.input=t,this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?oe.faceLandmark68TinyNet:oe.faceLandmark68Net}}class sa extends ia{async run(){const e=await this.parentTask,t=e.map(o=>o.detection),n=this.input instanceof ee?await Cn(this.input,t):await _n(this.input,t),r=await Promise.all(n.map(o=>this.landmarkNet.detectLandmarks(o)));return n.forEach(o=>o instanceof ee&&o.dispose()),e.map((o,i)=>Rn(o,r[i]))}withFaceExpressions(){return new ao(this,this.input)}withAgeAndGender(){return new io(this,this.input)}withFaceDescriptors(){return new hn(this,this.input)}}class aa extends ia{async run(){const e=await this.parentTask;if(!e)return;const{detection:t}=e,n=this.input instanceof ee?await Cn(this.input,[t]):await _n(this.input,[t]),r=await this.landmarkNet.detectLandmarks(n[0]);return n.forEach(o=>o instanceof ee&&o.dispose()),Rn(e,r)}withFaceExpressions(){return new co(this,this.input)}withAgeAndGender(){return new so(this,this.input)}withFaceDescriptor(){return new un(this,this.input)}}class ra extends xt{constructor(e,t=new bt()){super();this.input=e,this.options=t}}class lo extends ra{async run(){const{input:e,options:t}=this,n=t instanceof Zs?r=>oe.tinyFaceDetector.locateFaces(r,t):t instanceof bt?r=>oe.ssdMobilenetv1.locateFaces(r,t):t instanceof Wt?r=>oe.tinyYolov2.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=>mn({},n)))})}withFaceLandmarks(e=!1){return new sa(this.runAndExtendWithFaceDetections(),this.input,e)}withFaceExpressions(){return new Ps(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new js(this.runAndExtendWithFaceDetections(),this.input)}}class oa extends ra{async run(){const e=await new lo(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?mn({},t):void 0)})}withFaceLandmarks(e=!1){return new aa(this.runAndExtendWithFaceDetection(),this.input,e)}withFaceExpressions(){return new qs(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Gs(this.runAndExtendWithFaceDetection(),this.input)}}function td(e,t=new bt()){return new oa(e,t)}function po(e,t=new bt()){return new lo(e,t)}async function Ic(e,t){return console.warn("allFacesSsdMobilenetv1 is deprecated and will be removed soon, use the high level api instead"),await po(e,new bt(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function nd(e,t={}){return console.warn("allFacesTinyYolov2 is deprecated and will be removed soon, use the high level api instead"),await po(e,new Wt(t)).withFaceLandmarks().withFaceDescriptors()}const rd=Ic;function da(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 Tc{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 xn)return i;if(i instanceof Float32Array)return new xn(o(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new xn(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=>da(n,e)).reduce((n,r)=>n+r,0)/(t.length||1)}matchDescriptor(e){return this.labeledDescriptors.map(({descriptors:t,label:n})=>new wo(n,this.computeMeanDistance(e,t))).reduce((t,n)=>t.distancee.toJSON())}}static fromJSON(e){const t=e.labeledDescriptors.map(n=>xn.fromJSON(n));return new Tc(t,e.distanceThreshold)}}function Du(e){const t=new yr();return t.extractWeights(e),t}function yc(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=>yc(o,{width:n,height:r}));if(dn(e)){const o=e.detection.forSize(n,r),i=e.unshiftedLandmarks.forSize(o.box.width,o.box.height);return Rn(mn(e,o),i)}return Nt(e)?mn(e,e.detection.forSize(n,r)):e instanceof st||e instanceof fe?e.forSize(n,r):e}return dd();})(); /** * @license * Copyright 2017 Google LLC. All Rights Reserved. @@ -3823,15 +31,6 @@ return (round(mod(b, 2.0)) != 1) ? * 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. @@ -3846,49 +45,6 @@ return (round(mod(b, 2.0)) != 1) ? * 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 9cbb9a1..74aa799 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", "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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", + "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/../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/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/ssdMobilenetv1/../../src/ssdMobilenetv1/extractParams.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/extractParamsFromWeigthMap.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/pointwiseConvLayer.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/mobileNetV1.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/nonMaxSuppression.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/outputLayer.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/boxPredictionLayer.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/predictionLayer.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/SsdMobilenetv1.ts", "build/ssdMobilenetv1/../../src/ssdMobilenetv1/index.ts", "build/tinyYolov2/../../src/tinyYolov2/const.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/tinyYolov2/../../src/tinyYolov2/TinyYolov2.ts", "build/tinyYolov2/../../src/tinyYolov2/index.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "build/globalApi/../../src/globalApi/ComposableTask.ts", "build/globalApi/../../src/globalApi/extractFacesAndComputeResults.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/const.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetector.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/globalApi/../../src/globalApi/DetectFaceLandmarksTasks.ts", "build/globalApi/../../src/globalApi/DetectFacesTasks.ts", "build/globalApi/../../src/globalApi/detectFaces.ts", "build/globalApi/../../src/globalApi/allFaces.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], + "mappings": "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", "names": [] } diff --git a/src/NeuralNetwork.ts b/src/NeuralNetwork.ts index 37a503b..571e175 100644 --- a/src/NeuralNetwork.ts +++ b/src/NeuralNetwork.ts @@ -6,38 +6,48 @@ 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()) @@ -45,6 +55,7 @@ export abstract class NeuralNetwork { this.reassignParamFromPath(path, tensor) }) } + public dispose(throwOnRedispose: boolean = true) { this.getParamList().forEach(param => { if (throwOnRedispose && param.tensor.isDisposed) { @@ -54,6 +65,7 @@ export abstract class NeuralNetwork { }) this._params = undefined } + public serializeParams(): Float32Array { return new Float32Array( this.getParamList() @@ -61,64 +73,83 @@ 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/dom/loadWeightMap.ts b/src/dom/loadWeightMap.ts index c590244..e89c1e5 100644 --- a/src/dom/loadWeightMap.ts +++ b/src/dom/loadWeightMap.ts @@ -8,8 +8,6 @@ export async function loadWeightMap( defaultModelName: string, ): Promise { const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName) - const manifest = await fetchJson(manifestUri) - return tf.io.loadWeights(manifest, modelBaseUri) } \ No newline at end of file diff --git a/src/euclideanDistance.ts b/src/euclideanDistance.ts index 8e5eb65..89a7041 100644 --- a/src/euclideanDistance.ts +++ b/src/euclideanDistance.ts @@ -1,12 +1,13 @@ 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/globalApi/DetectFacesTasks.ts b/src/globalApi/DetectFacesTasks.ts index 6253e61..37eb3f1 100644 --- a/src/globalApi/DetectFacesTasks.ts +++ b/src/globalApi/DetectFacesTasks.ts @@ -1,7 +1,9 @@ import { FaceDetection } from '../classes/FaceDetection'; import { TNetInput } from '../dom'; import { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection'; +import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options'; import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions'; +import { TinyYolov2Options } from '../tinyYolov2'; import { ComposableTask } from './ComposableTask'; import { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks'; import { nets } from './nets'; @@ -12,7 +14,7 @@ import { FaceDetectionOptions } from './types'; export class DetectFacesTaskBase extends ComposableTask { constructor( protected input: TNetInput, - protected options: FaceDetectionOptions = new TinyFaceDetectorOptions() + protected options: FaceDetectionOptions = new SsdMobilenetv1Options() ) { super() } @@ -24,10 +26,17 @@ export class DetectAllFacesTask extends DetectFacesTaskBase { const { input, options } = this - const faceDetectionFunction = options instanceof TinyFaceDetectorOptions ? (input: TNetInput) => nets.tinyFaceDetector.locateFaces(input, options) - : null + : ( + options instanceof SsdMobilenetv1Options + ? (input: TNetInput) => nets.ssdMobilenetv1.locateFaces(input, options) + : ( + options instanceof TinyYolov2Options + ? (input: TNetInput) => nets.tinyYolov2.locateFaces(input, options) + : null + ) + ) if (!faceDetectionFunction) { throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options') diff --git a/src/globalApi/allFaces.ts b/src/globalApi/allFaces.ts new file mode 100644 index 0000000..cc14e10 --- /dev/null +++ b/src/globalApi/allFaces.ts @@ -0,0 +1,29 @@ +import { TNetInput } from '../dom'; +import { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories'; +import { SsdMobilenetv1Options } from '../ssdMobilenetv1'; +import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2'; +import { detectAllFaces } from './detectFaces'; + +// export allFaces API for backward compatibility + +export async function allFacesSsdMobilenetv1( + input: TNetInput, + minConfidence?: number +): Promise>>[]> { + console.warn('allFacesSsdMobilenetv1 is deprecated and will be removed soon, use the high level api instead') + return await detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {})) + .withFaceLandmarks() + .withFaceDescriptors() +} + +export async function allFacesTinyYolov2( + input: TNetInput, + forwardParams: ITinyYolov2Options = {} +): Promise>>[]> { + console.warn('allFacesTinyYolov2 is deprecated and will be removed soon, use the high level api instead') + return await detectAllFaces(input, new TinyYolov2Options(forwardParams)) + .withFaceLandmarks() + .withFaceDescriptors() +} + +export const allFaces = allFacesSsdMobilenetv1 diff --git a/src/globalApi/detectFaces.ts b/src/globalApi/detectFaces.ts index b9ac6a2..c5641dc 100644 --- a/src/globalApi/detectFaces.ts +++ b/src/globalApi/detectFaces.ts @@ -1,19 +1,18 @@ import { TNetInput } from '../dom'; +import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options'; import { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks'; import { FaceDetectionOptions } from './types'; -import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions'; - export function detectSingleFace( input: TNetInput, - options: FaceDetectionOptions = new TinyFaceDetectorOptions() + options: FaceDetectionOptions = new SsdMobilenetv1Options() ): DetectSingleFaceTask { return new DetectSingleFaceTask(input, options) } export function detectAllFaces( input: TNetInput, - options: FaceDetectionOptions = new TinyFaceDetectorOptions() + options: FaceDetectionOptions = new SsdMobilenetv1Options() ): DetectAllFacesTask { return new DetectAllFacesTask(input, options) } \ No newline at end of file diff --git a/src/globalApi/index.ts b/src/globalApi/index.ts index e2b4203..77cfc13 100644 --- a/src/globalApi/index.ts +++ b/src/globalApi/index.ts @@ -1,3 +1,4 @@ +export * from './allFaces' export * from './ComposableTask' export * from './ComputeFaceDescriptorsTasks' export * from './detectFaces' diff --git a/src/globalApi/nets.ts b/src/globalApi/nets.ts index fab2b1e..412b8c9 100644 --- a/src/globalApi/nets.ts +++ b/src/globalApi/nets.ts @@ -11,11 +11,14 @@ import { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet' import { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet'; import { WithFaceDetection } from '../factories/WithFaceDetection'; import { WithFaceLandmarks } from '../factories/WithFaceLandmarks'; +import { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1'; +import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options'; import { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector'; import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions'; import { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2'; export const nets = { + ssdMobilenetv1: new SsdMobilenetv1(), tinyFaceDetector: new TinyFaceDetector(), tinyYolov2: new TinyYolov2(), faceLandmark68Net: new FaceLandmark68Net(), @@ -25,6 +28,16 @@ export const nets = { ageGenderNet: new AgeGenderNet() } +/** + * Attempts to detect all faces in an image using SSD Mobilenetv1 Network. + * + * @param input The input image. + * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters). + * @returns Bounding box of each face with score. + */ +export const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => + nets.ssdMobilenetv1.locateFaces(input, options) + /** * Attempts to detect all faces in an image using the Tiny Face Detector. * @@ -35,6 +48,16 @@ export const nets = { export const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options) +/** + * Attempts to detect all faces in an image using the Tiny Yolov2 Network. + * + * @param input The input image. + * @param options (optional, default: see TinyYolov2Options constructor for default parameters). + * @returns Bounding box of each face with score. + */ +export const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => + nets.tinyYolov2.locateFaces(input, options) + /** * Detects the 68 point face landmark positions of the face shown in an image. * @@ -91,6 +114,7 @@ export const recognizeFaceExpressions = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input) +export const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url) export const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url) export const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url) export const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url) @@ -100,6 +124,6 @@ export const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.l export const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url) // backward compatibility -export const loadFaceDetectionModel = loadTinyFaceDetectorModel -export const locateFaces = TinyFaceDetector +export const loadFaceDetectionModel = loadSsdMobilenetv1Model +export const locateFaces = ssdMobilenetv1 export const detectLandmarks = detectFaceLandmarks \ No newline at end of file diff --git a/src/globalApi/types.ts b/src/globalApi/types.ts index 2c8eacc..ea2526d 100644 --- a/src/globalApi/types.ts +++ b/src/globalApi/types.ts @@ -1,7 +1,9 @@ import { FaceDetection } from '../classes/FaceDetection'; import { TNetInput } from '../dom'; +import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options'; import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions'; +import { TinyYolov2Options } from '../tinyYolov2'; -export type FaceDetectionOptions = TinyFaceDetectorOptions +export type FaceDetectionOptions = TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options export type FaceDetectionFunction = (input: TNetInput) => Promise \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 6585e8c..8ac6ac7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,13 @@ -import * as tf from '@tensorflow/tfjs'; +import * as tf from '@tensorflow/tfjs-core'; + 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'; @@ -14,8 +19,10 @@ export * from './faceRecognitionNet/index'; export * from './factories/index'; export * from './globalApi/index'; export * from './ops/index'; +export * from './ssdMobilenetv1/index'; export * from './tinyFaceDetector/index'; export * from './tinyYolov2/index'; + export * from './euclideanDistance'; export * from './NeuralNetwork'; -export * from './resizeResults'; +export * from './resizeResults'; \ No newline at end of file diff --git a/src/resizeResults.ts b/src/resizeResults.ts index 623e334..4a79b31 100644 --- a/src/resizeResults.ts +++ b/src/resizeResults.ts @@ -5,23 +5,31 @@ 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/src/ssdMobilenetv1/SsdMobilenetv1.ts b/src/ssdMobilenetv1/SsdMobilenetv1.ts new file mode 100644 index 0000000..64e7f56 --- /dev/null +++ b/src/ssdMobilenetv1/SsdMobilenetv1.ts @@ -0,0 +1,133 @@ +import * as tf from '@tensorflow/tfjs-core'; + +import { Rect } from '../classes'; +import { FaceDetection } from '../classes/FaceDetection'; +import { NetInput, TNetInput, toNetInput } from '../dom'; +import { NeuralNetwork } from '../NeuralNetwork'; +import { extractParams } from './extractParams'; +import { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap'; +import { mobileNetV1 } from './mobileNetV1'; +import { nonMaxSuppression } from './nonMaxSuppression'; +import { outputLayer } from './outputLayer'; +import { predictionLayer } from './predictionLayer'; +import { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options'; +import { NetParams } from './types'; + + +export class SsdMobilenetv1 extends NeuralNetwork { + + constructor() { + super('SsdMobilenetv1') + } + + public forwardInput(input: NetInput) { + + const { params } = this + + if (!params) { + throw new Error('SsdMobilenetv1 - load model before inference') + } + + return tf.tidy(() => { + const batchTensor = input.toBatchTensor(512, false).toFloat() + + const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D + const features = mobileNetV1(x, params.mobilenetv1) + + const { + boxPredictions, + classPredictions + } = predictionLayer(features.out, features.conv11, params.prediction_layer) + + return outputLayer(boxPredictions, classPredictions, params.output_layer) + }) + } + + public async forward(input: TNetInput) { + return this.forwardInput(await toNetInput(input)) + } + + public async locateFaces( + input: TNetInput, + options: ISsdMobilenetv1Options = {} + ): Promise { + + const { maxResults, minConfidence } = new SsdMobilenetv1Options(options) + + const netInput = await toNetInput(input) + + const { + boxes: _boxes, + scores: _scores + } = this.forwardInput(netInput) + + + // TODO batches + const boxes = _boxes[0] + const scores = _scores[0] + for (let i = 1; i < _boxes.length; i++) { + _boxes[i].dispose() + _scores[i].dispose() + } + + // TODO find a better way to filter by minConfidence + const scoresData = Array.from(await scores.data()) + + const iouThreshold = 0.5 + const indices = nonMaxSuppression( + boxes, + scoresData, + maxResults, + iouThreshold, + minConfidence + ) + + const reshapedDims = netInput.getReshapedInputDimensions(0) + const inputSize = netInput.inputSize as number + const padX = inputSize / reshapedDims.width + const padY = inputSize / reshapedDims.height + + const boxesData = boxes.arraySync() + const results = indices + .map(idx => { + const [top, bottom] = [ + Math.max(0, boxesData[idx][0]), + Math.min(1.0, boxesData[idx][2]) + ].map(val => val * padY) + const [left, right] = [ + Math.max(0, boxesData[idx][1]), + Math.min(1.0, boxesData[idx][3]) + ].map(val => val * padX) + return new FaceDetection( + scoresData[idx], + new Rect( + left, + top, + right - left, + bottom - top + ), + { + height: netInput.getInputHeight(0), + width: netInput.getInputWidth(0) + } + ) + }) + + boxes.dispose() + scores.dispose() + + return results + } + + protected getDefaultModelName(): string { + return 'ssd_mobilenetv1_model' + } + + protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) { + return extractParamsFromWeigthMap(weightMap) + } + + protected extractParams(weights: Float32Array) { + return extractParams(weights) + } +} \ No newline at end of file diff --git a/src/ssdMobilenetv1/SsdMobilenetv1Options.ts b/src/ssdMobilenetv1/SsdMobilenetv1Options.ts new file mode 100644 index 0000000..99ae93c --- /dev/null +++ b/src/ssdMobilenetv1/SsdMobilenetv1Options.ts @@ -0,0 +1,27 @@ +export interface ISsdMobilenetv1Options { + minConfidence?: number + maxResults?: number +} + +export class SsdMobilenetv1Options { + protected _name: string = 'SsdMobilenetv1Options' + + private _minConfidence: number + private _maxResults: number + + constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) { + this._minConfidence = minConfidence || 0.5 + this._maxResults = maxResults || 100 + + if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) { + throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`) + } + + if (typeof this._maxResults !== 'number') { + throw new Error(`${this._name} - expected maxResults to be a number`) + } + } + + get minConfidence(): number { return this._minConfidence } + get maxResults(): number { return this._maxResults } +} \ No newline at end of file diff --git a/src/ssdMobilenetv1/boxPredictionLayer.ts b/src/ssdMobilenetv1/boxPredictionLayer.ts new file mode 100644 index 0000000..ff30649 --- /dev/null +++ b/src/ssdMobilenetv1/boxPredictionLayer.ts @@ -0,0 +1,29 @@ +import * as tf from '@tensorflow/tfjs-core'; + +import { convLayer } from '../common'; +import { BoxPredictionParams } from './types'; + + +export function boxPredictionLayer( + x: tf.Tensor4D, + params: BoxPredictionParams +) { + return tf.tidy(() => { + + const batchSize = x.shape[0] + + const boxPredictionEncoding = tf.reshape( + convLayer(x, params.box_encoding_predictor), + [batchSize, -1, 1, 4] + ) + const classPrediction = tf.reshape( + convLayer(x, params.class_predictor), + [batchSize, -1, 3] + ) + + return { + boxPredictionEncoding, + classPrediction + } + }) +} \ No newline at end of file diff --git a/src/ssdMobilenetv1/extractParams.ts b/src/ssdMobilenetv1/extractParams.ts new file mode 100644 index 0000000..d30c731 --- /dev/null +++ b/src/ssdMobilenetv1/extractParams.ts @@ -0,0 +1,232 @@ +import * as tf from '@tensorflow/tfjs-core'; + +import { ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory } from '../common'; +import { MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types'; + +function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) { + + function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams { + + const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]) + const batch_norm_scale = tf.tensor1d(extractWeights(numChannels)) + const batch_norm_offset = tf.tensor1d(extractWeights(numChannels)) + const batch_norm_mean = tf.tensor1d(extractWeights(numChannels)) + const batch_norm_variance = tf.tensor1d(extractWeights(numChannels)) + + paramMappings.push( + { paramPath: `${mappedPrefix}/filters` }, + { paramPath: `${mappedPrefix}/batch_norm_scale` }, + { paramPath: `${mappedPrefix}/batch_norm_offset` }, + { paramPath: `${mappedPrefix}/batch_norm_mean` }, + { paramPath: `${mappedPrefix}/batch_norm_variance` } + ) + + return { + filters, + batch_norm_scale, + batch_norm_offset, + batch_norm_mean, + batch_norm_variance + } + } + + function extractConvParams( + channelsIn: number, + channelsOut: number, + filterSize: number, + mappedPrefix: string, + isPointwiseConv?: boolean + ): ConvParams { + + const filters = tf.tensor4d( + extractWeights(channelsIn * channelsOut * filterSize * filterSize), + [filterSize, filterSize, channelsIn, channelsOut] + ) + const bias = tf.tensor1d(extractWeights(channelsOut)) + + paramMappings.push( + { paramPath: `${mappedPrefix}/filters` }, + { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` } + ) + + return { filters, bias } + } + + function extractPointwiseConvParams( + channelsIn: number, + channelsOut: number, + filterSize: number, + mappedPrefix: string + ): PointwiseConvParams { + + const { + filters, + bias + } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true) + + return { + filters, + batch_norm_offset: bias + } + } + + function extractConvPairParams( + channelsIn: number, + channelsOut: number, + mappedPrefix: string + ): MobileNetV1.ConvPairParams { + + const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`) + const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`) + + return { depthwise_conv, pointwise_conv } + } + + function extractMobilenetV1Params(): MobileNetV1.Params { + + const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0') + + const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1') + const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2') + const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3') + const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4') + const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5') + const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6') + const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7') + const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8') + const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9') + const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10') + const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11') + const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12') + const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13') + + return { + conv_0, + conv_1, + conv_2, + conv_3, + conv_4, + conv_5, + conv_6, + conv_7, + conv_8, + conv_9, + conv_10, + conv_11, + conv_12, + conv_13 + } + } + + function extractPredictionLayerParams(): PredictionLayerParams { + const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0') + const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1') + const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2') + const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3') + const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4') + const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5') + const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6') + const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7') + + const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor') + const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor') + const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor') + const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor') + const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor') + const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor') + const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor') + const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor') + const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor') + const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor') + const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor') + const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor') + + const box_predictor_0 = { + box_encoding_predictor: box_encoding_0_predictor, + class_predictor: class_predictor_0 + } + const box_predictor_1 = { + box_encoding_predictor: box_encoding_1_predictor, + class_predictor: class_predictor_1 + } + const box_predictor_2 = { + box_encoding_predictor: box_encoding_2_predictor, + class_predictor: class_predictor_2 + } + const box_predictor_3 = { + box_encoding_predictor: box_encoding_3_predictor, + class_predictor: class_predictor_3 + } + const box_predictor_4 = { + box_encoding_predictor: box_encoding_4_predictor, + class_predictor: class_predictor_4 + } + const box_predictor_5 = { + box_encoding_predictor: box_encoding_5_predictor, + class_predictor: class_predictor_5 + } + + return { + conv_0, + conv_1, + conv_2, + conv_3, + conv_4, + conv_5, + conv_6, + conv_7, + box_predictor_0, + box_predictor_1, + box_predictor_2, + box_predictor_3, + box_predictor_4, + box_predictor_5 + } + } + + return { + extractMobilenetV1Params, + extractPredictionLayerParams + } + +} + +export function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } { + + const paramMappings: ParamMapping[] = [] + + const { + extractWeights, + getRemainingWeights + } = extractWeightsFactory(weights) + + const { + extractMobilenetV1Params, + extractPredictionLayerParams + } = extractorsFactory(extractWeights, paramMappings) + + const mobilenetv1 = extractMobilenetV1Params() + const prediction_layer = extractPredictionLayerParams() + const extra_dim = tf.tensor3d( + extractWeights(5118 * 4), + [1, 5118, 4] + ) + const output_layer = { + extra_dim + } + + paramMappings.push({ paramPath: 'output_layer/extra_dim' }) + + if (getRemainingWeights().length !== 0) { + throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`) + } + + return { + params: { + mobilenetv1, + prediction_layer, + output_layer + }, + paramMappings + } +} \ No newline at end of file diff --git a/src/ssdMobilenetv1/extractParamsFromWeigthMap.ts b/src/ssdMobilenetv1/extractParamsFromWeigthMap.ts new file mode 100644 index 0000000..daa3f4b --- /dev/null +++ b/src/ssdMobilenetv1/extractParamsFromWeigthMap.ts @@ -0,0 +1,138 @@ +import * as tf from '@tensorflow/tfjs-core'; + +import { ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common'; +import { isTensor3D } from '../utils'; +import { BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types'; + +function extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) { + + const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings) + + function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams { + + const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`) + const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`) + + return { filters, batch_norm_offset } + } + + function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams { + + const mappedPrefix = `mobilenetv1/conv_${idx}` + const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise` + const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv` + const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv` + + const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`) + const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`) + const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`) + const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`) + const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`) + + return { + depthwise_conv: { + filters, + batch_norm_scale, + batch_norm_offset, + batch_norm_mean, + batch_norm_variance + }, + pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv) + } + } + + function extractMobilenetV1Params(): MobileNetV1.Params { + return { + conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'), + conv_1: extractConvPairParams(1), + conv_2: extractConvPairParams(2), + conv_3: extractConvPairParams(3), + conv_4: extractConvPairParams(4), + conv_5: extractConvPairParams(5), + conv_6: extractConvPairParams(6), + conv_7: extractConvPairParams(7), + conv_8: extractConvPairParams(8), + conv_9: extractConvPairParams(9), + conv_10: extractConvPairParams(10), + conv_11: extractConvPairParams(11), + conv_12: extractConvPairParams(12), + conv_13: extractConvPairParams(13) + } + } + + function extractConvParams(prefix: string, mappedPrefix: string): ConvParams { + const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`) + const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`) + + return { filters, bias } + } + + function extractBoxPredictorParams(idx: number): BoxPredictionParams { + + const box_encoding_predictor = extractConvParams( + `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`, + `prediction_layer/box_predictor_${idx}/box_encoding_predictor` + ) + const class_predictor = extractConvParams( + `Prediction/BoxPredictor_${idx}/ClassPredictor`, + `prediction_layer/box_predictor_${idx}/class_predictor` + ) + + return { box_encoding_predictor, class_predictor } + } + + function extractPredictionLayerParams(): PredictionLayerParams { + return { + conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'), + conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'), + conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'), + conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'), + conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'), + conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'), + conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'), + conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'), + box_predictor_0: extractBoxPredictorParams(0), + box_predictor_1: extractBoxPredictorParams(1), + box_predictor_2: extractBoxPredictorParams(2), + box_predictor_3: extractBoxPredictorParams(3), + box_predictor_4: extractBoxPredictorParams(4), + box_predictor_5: extractBoxPredictorParams(5) + } + } + + return { + extractMobilenetV1Params, + extractPredictionLayerParams + } +} + +export function extractParamsFromWeigthMap( + weightMap: tf.NamedTensorMap +): { params: NetParams, paramMappings: ParamMapping[] } { + + const paramMappings: ParamMapping[] = [] + + const { + extractMobilenetV1Params, + extractPredictionLayerParams + } = extractorsFactory(weightMap, paramMappings) + + const extra_dim = weightMap['Output/extra_dim'] + paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' }) + + if (!isTensor3D(extra_dim)) { + throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`) + } + + const params = { + mobilenetv1: extractMobilenetV1Params(), + prediction_layer: extractPredictionLayerParams(), + output_layer: { + extra_dim + } + } + + disposeUnusedWeightTensors(weightMap, paramMappings) + + return { params, paramMappings } +} \ No newline at end of file diff --git a/src/ssdMobilenetv1/index.ts b/src/ssdMobilenetv1/index.ts new file mode 100644 index 0000000..5edf58d --- /dev/null +++ b/src/ssdMobilenetv1/index.ts @@ -0,0 +1,17 @@ +import { SsdMobilenetv1 } from './SsdMobilenetv1'; + +export * from './SsdMobilenetv1'; +export * from './SsdMobilenetv1Options'; + +export function createSsdMobilenetv1(weights: Float32Array) { + const net = new SsdMobilenetv1() + net.extractWeights(weights) + return net +} + +export function createFaceDetectionNet(weights: Float32Array) { + return createSsdMobilenetv1(weights) +} + +// alias for backward compatibily +export class FaceDetectionNet extends SsdMobilenetv1 {} \ No newline at end of file diff --git a/src/ssdMobilenetv1/mobileNetV1.ts b/src/ssdMobilenetv1/mobileNetV1.ts new file mode 100644 index 0000000..99811e1 --- /dev/null +++ b/src/ssdMobilenetv1/mobileNetV1.ts @@ -0,0 +1,75 @@ +import * as tf from '@tensorflow/tfjs-core'; + +import { pointwiseConvLayer } from './pointwiseConvLayer'; +import { MobileNetV1 } from './types'; + +const epsilon = 0.0010000000474974513 + +function depthwiseConvLayer( + x: tf.Tensor4D, + params: MobileNetV1.DepthwiseConvParams, + strides: [number, number] +) { + return tf.tidy(() => { + + let out = tf.depthwiseConv2d(x, params.filters, strides, 'same') + out = tf.batchNorm( + out, + params.batch_norm_mean, + params.batch_norm_variance, + params.batch_norm_offset, + params.batch_norm_scale, + epsilon + ) + return tf.clipByValue(out, 0, 6) + + }) +} + +function getStridesForLayerIdx(layerIdx: number): [number, number] { + return [2, 4, 6, 12].some(idx => idx === layerIdx) ? [2, 2] : [1, 1] +} + +export function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) { + return tf.tidy(() => { + + let conv11 = null + let out = pointwiseConvLayer(x, params.conv_0, [2, 2]) + + const convPairParams = [ + params.conv_1, + params.conv_2, + params.conv_3, + params.conv_4, + params.conv_5, + params.conv_6, + params.conv_7, + params.conv_8, + params.conv_9, + params.conv_10, + params.conv_11, + params.conv_12, + params.conv_13 + ] + + convPairParams.forEach((param, i) => { + const layerIdx = i + 1 + const depthwiseConvStrides = getStridesForLayerIdx(layerIdx) + out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides) + out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]) + if (layerIdx === 11) { + conv11 = out + } + }) + + if (conv11 === null) { + throw new Error('mobileNetV1 - output of conv layer 11 is null') + } + + return { + out, + conv11: conv11 as any + } + + }) +} \ No newline at end of file diff --git a/src/ssdMobilenetv1/nonMaxSuppression.ts b/src/ssdMobilenetv1/nonMaxSuppression.ts new file mode 100644 index 0000000..379ca42 --- /dev/null +++ b/src/ssdMobilenetv1/nonMaxSuppression.ts @@ -0,0 +1,74 @@ +import * as tf from '@tensorflow/tfjs-core' + +export function nonMaxSuppression( + boxes: tf.Tensor2D, + scores: number[], + maxOutputSize: number, + iouThreshold: number, + scoreThreshold: number +): number[] { + + const numBoxes = boxes.shape[0] + const outputSize = Math.min( + maxOutputSize, + numBoxes + ) + + const candidates = scores + .map((score, boxIndex) => ({ score, boxIndex })) + .filter(c => c.score > scoreThreshold) + .sort((c1, c2) => c2.score - c1.score) + + const suppressFunc = (x: number) => x <= iouThreshold ? 1 : 0 + + const selected: number[] = [] + + candidates.forEach(c => { + if (selected.length >= outputSize) { + return + } + const originalScore = c.score + + for (let j = selected.length - 1; j >= 0; --j) { + const iou = IOU(boxes, c.boxIndex, selected[j]) + if (iou === 0.0) { + continue + } + c.score *= suppressFunc(iou) + if (c.score <= scoreThreshold) { + break + } + } + + if (originalScore === c.score) { + selected.push(c.boxIndex) + } + }) + + return selected +} + +function IOU(boxes: tf.Tensor2D, i: number, j: number) { + const boxesData = boxes.arraySync() + const yminI = Math.min(boxesData[i][0], boxesData[i][2]) + const xminI = Math.min(boxesData[i][1], boxesData[i][3]) + const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]) + const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]) + const yminJ = Math.min(boxesData[j][0], boxesData[j][2]) + const xminJ = Math.min(boxesData[j][1], boxesData[j][3]) + const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]) + const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]) + const areaI = (ymaxI - yminI) * (xmaxI - xminI) + const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ) + if (areaI <= 0 || areaJ <= 0) { + return 0.0 + } + const intersectionYmin = Math.max(yminI, yminJ) + const intersectionXmin = Math.max(xminI, xminJ) + const intersectionYmax = Math.min(ymaxI, ymaxJ) + const intersectionXmax = Math.min(xmaxI, xmaxJ) + const intersectionArea = + Math.max(intersectionYmax - intersectionYmin, 0.0) * + Math.max(intersectionXmax - intersectionXmin, 0.0) + return intersectionArea / (areaI + areaJ - intersectionArea) +} \ No newline at end of file diff --git a/src/ssdMobilenetv1/outputLayer.ts b/src/ssdMobilenetv1/outputLayer.ts new file mode 100644 index 0000000..80863f6 --- /dev/null +++ b/src/ssdMobilenetv1/outputLayer.ts @@ -0,0 +1,85 @@ +import * as tf from '@tensorflow/tfjs-core'; + +import { OutputLayerParams } from './types'; + + +function getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) { + const vec = tf.unstack(tf.transpose(x, [1, 0])) + + const sizes = [ + tf.sub(vec[2], vec[0]), + tf.sub(vec[3], vec[1]) + ] + + const centers = [ + tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))), + tf.add(vec[1], tf.div(sizes[1], tf.scalar(2))) + ] + + return { + sizes, + centers + } +} + +function decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) { + const { + sizes, + centers + } = getCenterCoordinatesAndSizesLayer(x0) + + const vec = tf.unstack(tf.transpose(x1, [1, 0])) + + const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2)) + const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]) + + const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2)) + const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]) + + return tf.transpose( + tf.stack([ + tf.sub(add0_out, div0_out), + tf.sub(add1_out, div1_out), + tf.add(add0_out, div0_out), + tf.add(add1_out, div1_out) + ]), + [1, 0] + ) +} + +export function outputLayer( + boxPredictions: tf.Tensor4D, + classPredictions: tf.Tensor4D, + params: OutputLayerParams +) { + return tf.tidy(() => { + + const batchSize = boxPredictions.shape[0] + + let boxes = decodeBoxesLayer( + tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D, + tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D + ) + boxes = tf.reshape( + boxes, + [batchSize, (boxes.shape[0] / batchSize), 4] + ) + + const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1])) + let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor + + scores = tf.reshape( + scores, + [batchSize, scores.shape[1] as number] + ) + + const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[] + const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[] + + return { + boxes: boxesByBatch, + scores: scoresByBatch + } + + }) +} \ No newline at end of file diff --git a/src/ssdMobilenetv1/pointwiseConvLayer.ts b/src/ssdMobilenetv1/pointwiseConvLayer.ts new file mode 100644 index 0000000..f193136 --- /dev/null +++ b/src/ssdMobilenetv1/pointwiseConvLayer.ts @@ -0,0 +1,17 @@ +import * as tf from '@tensorflow/tfjs-core'; + +import { PointwiseConvParams } from './types'; + +export function pointwiseConvLayer( + x: tf.Tensor4D, + params: PointwiseConvParams, + strides: [number, number] +) { + return tf.tidy(() => { + + let out = tf.conv2d(x, params.filters, strides, 'same') + out = tf.add(out, params.batch_norm_offset) + return tf.clipByValue(out, 0, 6) + + }) +} \ No newline at end of file diff --git a/src/ssdMobilenetv1/predictionLayer.ts b/src/ssdMobilenetv1/predictionLayer.ts new file mode 100644 index 0000000..43aafac --- /dev/null +++ b/src/ssdMobilenetv1/predictionLayer.ts @@ -0,0 +1,53 @@ +import * as tf from '@tensorflow/tfjs-core'; + +import { boxPredictionLayer } from './boxPredictionLayer'; +import { pointwiseConvLayer } from './pointwiseConvLayer'; +import { PredictionLayerParams } from './types'; + +export function predictionLayer( + x: tf.Tensor4D, + conv11: tf.Tensor4D, + params: PredictionLayerParams +) { + return tf.tidy(() => { + + const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]) + const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]) + const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]) + const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]) + const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]) + const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]) + const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]) + const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]) + + const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0) + const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1) + const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2) + const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3) + const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4) + const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5) + + const boxPredictions = tf.concat([ + boxPrediction0.boxPredictionEncoding, + boxPrediction1.boxPredictionEncoding, + boxPrediction2.boxPredictionEncoding, + boxPrediction3.boxPredictionEncoding, + boxPrediction4.boxPredictionEncoding, + boxPrediction5.boxPredictionEncoding + ], 1) as tf.Tensor4D + + const classPredictions = tf.concat([ + boxPrediction0.classPrediction, + boxPrediction1.classPrediction, + boxPrediction2.classPrediction, + boxPrediction3.classPrediction, + boxPrediction4.classPrediction, + boxPrediction5.classPrediction + ], 1) as tf.Tensor4D + + return { + boxPredictions, + classPredictions + } + }) +} \ No newline at end of file diff --git a/src/ssdMobilenetv1/types.ts b/src/ssdMobilenetv1/types.ts new file mode 100644 index 0000000..c5c0afe --- /dev/null +++ b/src/ssdMobilenetv1/types.ts @@ -0,0 +1,74 @@ +import * as tf from '@tensorflow/tfjs-core'; + +import { ConvParams } from '../common'; + +export type PointwiseConvParams = { + filters: tf.Tensor4D + batch_norm_offset: tf.Tensor1D +} + +export namespace MobileNetV1 { + + export type DepthwiseConvParams = { + filters: tf.Tensor4D + batch_norm_scale: tf.Tensor1D + batch_norm_offset: tf.Tensor1D + batch_norm_mean: tf.Tensor1D + batch_norm_variance: tf.Tensor1D + } + + export type ConvPairParams = { + depthwise_conv: DepthwiseConvParams + pointwise_conv: PointwiseConvParams + } + + export type Params = { + conv_0: PointwiseConvParams + conv_1: ConvPairParams + conv_2: ConvPairParams + conv_3: ConvPairParams + conv_4: ConvPairParams + conv_5: ConvPairParams + conv_6: ConvPairParams + conv_7: ConvPairParams + conv_8: ConvPairParams + conv_9: ConvPairParams + conv_10: ConvPairParams + conv_11: ConvPairParams + conv_12: ConvPairParams + conv_13: ConvPairParams + } + +} + +export type BoxPredictionParams = { + box_encoding_predictor: ConvParams + class_predictor: ConvParams +} + +export type PredictionLayerParams = { + conv_0: PointwiseConvParams + conv_1: PointwiseConvParams + conv_2: PointwiseConvParams + conv_3: PointwiseConvParams + conv_4: PointwiseConvParams + conv_5: PointwiseConvParams + conv_6: PointwiseConvParams + conv_7: PointwiseConvParams + box_predictor_0: BoxPredictionParams + box_predictor_1: BoxPredictionParams + box_predictor_2: BoxPredictionParams + box_predictor_3: BoxPredictionParams + box_predictor_4: BoxPredictionParams + box_predictor_5: BoxPredictionParams +} + +export type OutputLayerParams = { + extra_dim: tf.Tensor3D +} + +export type NetParams = { + mobilenetv1: MobileNetV1.Params, + prediction_layer: PredictionLayerParams, + output_layer: OutputLayerParams +} \ No newline at end of file diff --git a/weights/age_gender_model-shard1 b/weights/age_gender_model-shard1 index d942d6a..8370580 100644 Binary files a/weights/age_gender_model-shard1 and b/weights/age_gender_model-shard1 differ diff --git a/weights/age_gender_model-weights_manifest.json b/weights/age_gender_model-weights_manifest.json index ebc009a..7897983 100644 --- a/weights/age_gender_model-weights_manifest.json +++ b/weights/age_gender_model-weights_manifest.json @@ -1 +1,3 @@ -[{"weights":[{"name":"entry_flow/conv_in/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005431825039433498,"min":-0.7441600304023892}},{"name":"entry_flow/conv_in/bias","shape":[32],"dtype":"float32"},{"name":"entry_flow/reduction_block_0/separable_conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005691980614381678,"min":-0.6090419257388395}},{"name":"entry_flow/reduction_block_0/separable_conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009089225881239947,"min":-1.1179747833925135}},{"name":"entry_flow/reduction_block_0/separable_conv0/bias","shape":[64],"dtype":"float32"},{"name":"entry_flow/reduction_block_0/separable_conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00683894624897078,"min":-0.8138346036275228}},{"name":"entry_flow/reduction_block_0/separable_conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011632566358528886,"min":-1.3028474321552352}},{"name":"entry_flow/reduction_block_0/separable_conv1/bias","shape":[64],"dtype":"float32"},{"name":"entry_flow/reduction_block_0/expansion_conv/filters","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010254812240600587,"min":-0.9229331016540528}},{"name":"entry_flow/reduction_block_0/expansion_conv/bias","shape":[64],"dtype":"float32"},{"name":"entry_flow/reduction_block_1/separable_conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0052509616403018725,"min":-0.6406173201168285}},{"name":"entry_flow/reduction_block_1/separable_conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010788509424994973,"min":-1.4564487723743214}},{"name":"entry_flow/reduction_block_1/separable_conv0/bias","shape":[128],"dtype":"float32"},{"name":"entry_flow/reduction_block_1/separable_conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00553213918910307,"min":-0.7025816770160899}},{"name":"entry_flow/reduction_block_1/separable_conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.013602388606351965,"min":-1.6186842441558837}},{"name":"entry_flow/reduction_block_1/separable_conv1/bias","shape":[128],"dtype":"float32"},{"name":"entry_flow/reduction_block_1/expansion_conv/filters","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.007571851038465313,"min":-1.158493208885193}},{"name":"entry_flow/reduction_block_1/expansion_conv/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_0/separable_conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005766328409606335,"min":-0.6688940955143349}},{"name":"middle_flow/main_block_0/separable_conv0/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.012136116214826995,"min":-1.5776951079275094}},{"name":"middle_flow/main_block_0/separable_conv0/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_0/separable_conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004314773222979377,"min":-0.5652352922102984}},{"name":"middle_flow/main_block_0/separable_conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01107162026798024,"min":-1.2400214700137868}},{"name":"middle_flow/main_block_0/separable_conv1/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_0/separable_conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0036451735917259667,"min":-0.4848080876995536}},{"name":"middle_flow/main_block_0/separable_conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008791744942758598,"min":-1.134135097615859}},{"name":"middle_flow/main_block_0/separable_conv2/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_1/separable_conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004915751896652521,"min":-0.6095532351849126}},{"name":"middle_flow/main_block_1/separable_conv0/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010868691463096469,"min":-1.3368490499608656}},{"name":"middle_flow/main_block_1/separable_conv0/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_1/separable_conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005010117269029804,"min":-0.6012140722835765}},{"name":"middle_flow/main_block_1/separable_conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010311148213405235,"min":-1.3816938605963016}},{"name":"middle_flow/main_block_1/separable_conv1/bias","shape":[128],"dtype":"float32"},{"name":"middle_flow/main_block_1/separable_conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004911523706772748,"min":-0.7367285560159123}},{"name":"middle_flow/main_block_1/separable_conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008976466047997568,"min":-1.2207993825276693}},{"name":"middle_flow/main_block_1/separable_conv2/bias","shape":[128],"dtype":"float32"},{"name":"exit_flow/reduction_block/separable_conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005074804436926748,"min":-0.7104726211697447}},{"name":"exit_flow/reduction_block/separable_conv0/pointwise_filter","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011453078307357489,"min":-1.4545409450344011}},{"name":"exit_flow/reduction_block/separable_conv0/bias","shape":[256],"dtype":"float32"},{"name":"exit_flow/reduction_block/separable_conv1/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.007741751390344957,"min":-1.1380374543807086}},{"name":"exit_flow/reduction_block/separable_conv1/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011347713189966538,"min":-1.497898141075583}},{"name":"exit_flow/reduction_block/separable_conv1/bias","shape":[256],"dtype":"float32"},{"name":"exit_flow/reduction_block/expansion_conv/filters","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006717281014311547,"min":-0.8329428457746318}},{"name":"exit_flow/reduction_block/expansion_conv/bias","shape":[256],"dtype":"float32"},{"name":"exit_flow/separable_conv/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0027201742518181892,"min":-0.3237007359663645}},{"name":"exit_flow/separable_conv/pointwise_filter","shape":[1,1,256,512],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010076364348916447,"min":-1.330080094056971}},{"name":"exit_flow/separable_conv/bias","shape":[512],"dtype":"float32"},{"name":"fc/age/weights","shape":[512,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008674054987290326,"min":-1.2664120281443876}},{"name":"fc/age/bias","shape":[1],"dtype":"float32"},{"name":"fc/gender/weights","shape":[512,2],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0029948226377075793,"min":-0.34140978069866407}},{"name":"fc/gender/bias","shape":[2],"dtype":"float32"}],"paths":["age_gender_model-shard1"]}] \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:780ca481c12f6501c63e3551caa4df9bc4a05ffc5357060079b75badfd350d86 +size 7774 diff --git a/weights/face_expression_model-shard1 b/weights/face_expression_model-shard1 index 619cdf6..77f0172 100644 Binary files a/weights/face_expression_model-shard1 and b/weights/face_expression_model-shard1 differ diff --git a/weights/face_expression_model-weights_manifest.json b/weights/face_expression_model-weights_manifest.json index 7b74b5a..0e63d6b 100644 --- a/weights/face_expression_model-weights_manifest.json +++ b/weights/face_expression_model-weights_manifest.json @@ -1 +1,3 @@ -[{"weights":[{"name":"dense0/conv0/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0057930146946626555,"min":-0.7125408074435067}},{"name":"dense0/conv0/bias","shape":[32],"dtype":"float32"},{"name":"dense0/conv1/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006473719839956246,"min":-0.6408982641556684}},{"name":"dense0/conv1/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010509579321917366,"min":-1.408283629136927}},{"name":"dense0/conv1/bias","shape":[32],"dtype":"float32"},{"name":"dense0/conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005666389652326995,"min":-0.7252978754978554}},{"name":"dense0/conv2/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010316079270605948,"min":-1.1760330368490781}},{"name":"dense0/conv2/bias","shape":[32],"dtype":"float32"},{"name":"dense0/conv3/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0063220320963392074,"min":-0.853474333005793}},{"name":"dense0/conv3/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010322785377502442,"min":-1.4658355236053466}},{"name":"dense0/conv3/bias","shape":[32],"dtype":"float32"},{"name":"dense1/conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0042531527724920535,"min":-0.5741756242864272}},{"name":"dense1/conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010653339647779278,"min":-1.1825207009035}},{"name":"dense1/conv0/bias","shape":[64],"dtype":"float32"},{"name":"dense1/conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005166931012097527,"min":-0.6355325144879957}},{"name":"dense1/conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011478300188101974,"min":-1.3888743227603388}},{"name":"dense1/conv1/bias","shape":[64],"dtype":"float32"},{"name":"dense1/conv2/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006144821410085641,"min":-0.8479853545918185}},{"name":"dense1/conv2/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010541967317169788,"min":-1.3809977185492421}},{"name":"dense1/conv2/bias","shape":[64],"dtype":"float32"},{"name":"dense1/conv3/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005769844849904378,"min":-0.686611537138621}},{"name":"dense1/conv3/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010939095534530341,"min":-1.2689350820055196}},{"name":"dense1/conv3/bias","shape":[64],"dtype":"float32"},{"name":"dense2/conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0037769308277204924,"min":-0.40790852939381317}},{"name":"dense2/conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01188667194516051,"min":-1.4382873053644218}},{"name":"dense2/conv0/bias","shape":[128],"dtype":"float32"},{"name":"dense2/conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006497045825509464,"min":-0.8381189114907208}},{"name":"dense2/conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011632198913424622,"min":-1.3377028750438316}},{"name":"dense2/conv1/bias","shape":[128],"dtype":"float32"},{"name":"dense2/conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005947182225246056,"min":-0.7969224181829715}},{"name":"dense2/conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011436844339557722,"min":-1.4524792311238306}},{"name":"dense2/conv2/bias","shape":[128],"dtype":"float32"},{"name":"dense2/conv3/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006665432686899222,"min":-0.8998334127313949}},{"name":"dense2/conv3/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01283421422920975,"min":-1.642779421338848}},{"name":"dense2/conv3/bias","shape":[128],"dtype":"float32"},{"name":"dense3/conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004711699953266218,"min":-0.6737730933170692}},{"name":"dense3/conv0/pointwise_filter","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010955964817720302,"min":-1.3914075318504784}},{"name":"dense3/conv0/bias","shape":[256],"dtype":"float32"},{"name":"dense3/conv1/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00554193468654857,"min":-0.7149095745647656}},{"name":"dense3/conv1/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.016790372250126858,"min":-2.484975093018775}},{"name":"dense3/conv1/bias","shape":[256],"dtype":"float32"},{"name":"dense3/conv2/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006361540626077091,"min":-0.8142772001378676}},{"name":"dense3/conv2/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01777329678628959,"min":-1.7062364914838006}},{"name":"dense3/conv2/bias","shape":[256],"dtype":"float32"},{"name":"dense3/conv3/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006900275922289082,"min":-0.8625344902861353}},{"name":"dense3/conv3/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015449936717164282,"min":-1.9003422162112067}},{"name":"dense3/conv3/bias","shape":[256],"dtype":"float32"},{"name":"fc/weights","shape":[256,7],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004834276554631252,"min":-0.7203072066400565}},{"name":"fc/bias","shape":[7],"dtype":"float32"}],"paths":["face_expression_model-shard1"]}] \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:960cbe959fe0328965dd18662d839f197df6e27607da4f726cd0c826e47fc936 +size 6384 diff --git a/weights/face_landmark_68_model-shard1 b/weights/face_landmark_68_model-shard1 index fcaca47..4d86f31 100644 Binary files a/weights/face_landmark_68_model-shard1 and b/weights/face_landmark_68_model-shard1 differ diff --git a/weights/face_landmark_68_model-weights_manifest.json b/weights/face_landmark_68_model-weights_manifest.json index 0fe2707..47b9c94 100644 --- a/weights/face_landmark_68_model-weights_manifest.json +++ b/weights/face_landmark_68_model-weights_manifest.json @@ -1 +1,3 @@ -[{"weights":[{"name":"dense0/conv0/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004853619781194949,"min":-0.5872879935245888}},{"name":"dense0/conv0/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004396426443960153,"min":-0.7298067896973853}},{"name":"dense0/conv1/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00635151559231328,"min":-0.5589333721235686}},{"name":"dense0/conv1/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009354315552057004,"min":-1.2628325995276957}},{"name":"dense0/conv1/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0029380727048013726,"min":-0.5846764682554731}},{"name":"dense0/conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0049374802439820535,"min":-0.6171850304977566}},{"name":"dense0/conv2/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009941946758943446,"min":-1.3421628124573652}},{"name":"dense0/conv2/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0030300481062309416,"min":-0.5272283704841838}},{"name":"dense0/conv3/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005672684837790097,"min":-0.7431217137505026}},{"name":"dense0/conv3/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010712201455060173,"min":-1.5639814124387852}},{"name":"dense0/conv3/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0030966934035806097,"min":-0.3839899820439956}},{"name":"dense1/conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0039155554537679636,"min":-0.48161332081345953}},{"name":"dense1/conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01023082966898002,"min":-1.094698774580862}},{"name":"dense1/conv0/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0027264176630506327,"min":-0.3871513081531898}},{"name":"dense1/conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004583378632863362,"min":-0.5454220573107401}},{"name":"dense1/conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00915846403907327,"min":-1.117332612766939}},{"name":"dense1/conv1/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003091680419211294,"min":-0.5966943209077797}},{"name":"dense1/conv2/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005407439727409214,"min":-0.708374604290607}},{"name":"dense1/conv2/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00946493943532308,"min":-1.2399070660273235}},{"name":"dense1/conv2/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004409168514550901,"min":-0.9788354102303}},{"name":"dense1/conv3/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004478132958505668,"min":-0.6493292789833219}},{"name":"dense1/conv3/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011063695888893277,"min":-1.2501976354449402}},{"name":"dense1/conv3/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003909627596537272,"min":-0.6646366914113363}},{"name":"dense2/conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003213915404151468,"min":-0.3374611174359041}},{"name":"dense2/conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010917326048308728,"min":-1.4520043644250609}},{"name":"dense2/conv0/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002800439152063108,"min":-0.38085972468058266}},{"name":"dense2/conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0050568851770139206,"min":-0.6927932692509071}},{"name":"dense2/conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01074961213504567,"min":-1.3222022926106174}},{"name":"dense2/conv1/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0030654204242369708,"min":-0.5487102559384177}},{"name":"dense2/conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00591809165244009,"min":-0.917304206128214}},{"name":"dense2/conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.01092823346455892,"min":-1.366029183069865}},{"name":"dense2/conv2/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002681120470458386,"min":-0.36463238398234055}},{"name":"dense2/conv3/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0048311497650894465,"min":-0.5797379718107336}},{"name":"dense2/conv3/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.011227761062921263,"min":-1.4483811771168429}},{"name":"dense2/conv3/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0034643323982463162,"min":-0.3360402426298927}},{"name":"dense3/conv0/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003394978887894574,"min":-0.49227193874471326}},{"name":"dense3/conv0/pointwise_filter","shape":[1,1,128,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010051267287310432,"min":-1.2765109454884247}},{"name":"dense3/conv0/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003142924752889895,"min":-0.4588670139219247}},{"name":"dense3/conv1/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00448304671867221,"min":-0.5872791201460595}},{"name":"dense3/conv1/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.016063522357566685,"min":-2.3613377865623026}},{"name":"dense3/conv1/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00287135781026354,"min":-0.47664539650374765}},{"name":"dense3/conv2/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006002906724518421,"min":-0.7923836876364315}},{"name":"dense3/conv2/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.017087187019048954,"min":-1.6061955797906016}},{"name":"dense3/conv2/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.003124481205846749,"min":-0.46242321846531886}},{"name":"dense3/conv3/depthwise_filter","shape":[3,3,256,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006576311588287353,"min":-1.0193282961845398}},{"name":"dense3/conv3/pointwise_filter","shape":[1,1,256,256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015590153955945782,"min":-1.99553970636106}},{"name":"dense3/conv3/bias","shape":[256],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.004453541601405424,"min":-0.6546706154065973}},{"name":"fc/weights","shape":[256,136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.010417488509533453,"min":-1.500118345372817}},{"name":"fc/bias","shape":[136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0025084222648658005,"min":0.07683877646923065}}],"paths":["face_landmark_68_model-shard1"]}] \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:d30f6cc341009ea4f8223876959289b96576fc54a2615f92da9741ab9c5f0bbc +size 7889 diff --git a/weights/face_landmark_68_tiny_model-shard1 b/weights/face_landmark_68_tiny_model-shard1 index f04a9d5..c30c824 100644 Binary files a/weights/face_landmark_68_tiny_model-shard1 and b/weights/face_landmark_68_tiny_model-shard1 differ diff --git a/weights/face_landmark_68_tiny_model-weights_manifest.json b/weights/face_landmark_68_tiny_model-weights_manifest.json index 5dc790e..70cbf64 100644 --- a/weights/face_landmark_68_tiny_model-weights_manifest.json +++ b/weights/face_landmark_68_tiny_model-weights_manifest.json @@ -1 +1,3 @@ -[{"weights":[{"name":"dense0/conv0/filters","shape":[3,3,3,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008194216092427571,"min":-0.9423348506291708}},{"name":"dense0/conv0/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006839508168837603,"min":-0.8412595047670252}},{"name":"dense0/conv1/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.009194007106855804,"min":-1.2779669878529567}},{"name":"dense0/conv1/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0036026100317637128,"min":-0.3170296827952067}},{"name":"dense0/conv1/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.000740380117706224,"min":-0.06367269012273527}},{"name":"dense0/conv2/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":1,"min":0}},{"name":"dense0/conv2/pointwise_filter","shape":[1,1,32,32],"dtype":"float32","quantization":{"dtype":"uint8","scale":1,"min":0}},{"name":"dense0/conv2/bias","shape":[32],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0037702228508743585,"min":-0.6220867703942692}},{"name":"dense1/conv0/depthwise_filter","shape":[3,3,32,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0033707996209462483,"min":-0.421349952618281}},{"name":"dense1/conv0/pointwise_filter","shape":[1,1,32,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.014611541991140328,"min":-1.8556658328748217}},{"name":"dense1/conv0/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002832523046755323,"min":-0.30307996600281956}},{"name":"dense1/conv1/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.006593170586754294,"min":-0.6329443763284123}},{"name":"dense1/conv1/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.012215249211180444,"min":-1.6001976466646382}},{"name":"dense1/conv1/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002384825547536214,"min":-0.3028728445370992}},{"name":"dense1/conv2/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005859645441466687,"min":-0.7617539073906693}},{"name":"dense1/conv2/pointwise_filter","shape":[1,1,64,64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.013121426806730382,"min":-1.7845140457153321}},{"name":"dense1/conv2/bias","shape":[64],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0032247188044529336,"min":-0.46435950784122243}},{"name":"dense2/conv0/depthwise_filter","shape":[3,3,64,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.002659512618008782,"min":-0.32977956463308894}},{"name":"dense2/conv0/pointwise_filter","shape":[1,1,64,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.015499923743453681,"min":-1.9839902391620712}},{"name":"dense2/conv0/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0032450980999890497,"min":-0.522460794098237}},{"name":"dense2/conv1/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.005911862382701799,"min":-0.792189559282041}},{"name":"dense2/conv1/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.021025861478319356,"min":-2.2077154552235325}},{"name":"dense2/conv1/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.00349616945958605,"min":-0.46149436866535865}},{"name":"dense2/conv2/depthwise_filter","shape":[3,3,128,1],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.008104994250278847,"min":-1.013124281284856}},{"name":"dense2/conv2/pointwise_filter","shape":[1,1,128,128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.029337059282789044,"min":-3.5791212325002633}},{"name":"dense2/conv2/bias","shape":[128],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0038808938334969913,"min":-0.4230174278511721}},{"name":"fc/weights","shape":[128,136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.014016061670639936,"min":-1.8921683255363912}},{"name":"fc/bias","shape":[136],"dtype":"float32","quantization":{"dtype":"uint8","scale":0.0029505149698724935,"min":0.088760145008564}}],"paths":["face_landmark_68_tiny_model-shard1"]}] \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:3c63b8984302c187b218d9ef5aa149ed8c2c7fa3fe54db078614692bc48d153c +size 4441 diff --git a/weights/face_recognition_model-shard1 b/weights/face_recognition_model-shard1 index 3d4b301..506ab81 100644 Binary files a/weights/face_recognition_model-shard1 and b/weights/face_recognition_model-shard1 differ diff --git a/weights/face_recognition_model-shard2 b/weights/face_recognition_model-shard2 index 8a4b5fb..cee94b7 100644 --- a/weights/face_recognition_model-shard2 +++ b/weights/face_recognition_model-shard2 @@ -1,6 +1,3 @@ -’ˆ›Ž ™”“•›Ž—›œ—’–“›“˜Ÿ’ž“•”Œ••’•–—‘‘“˜”““˜—˜”›œ›“˜—š““–“—ŸŽ“”””ž“”Ž””“””“™–“•—”£‘”ˆ•–•—’™”‘˜›–—›‹ž› ”›œ•Ž”›“”š“˜—‹”‡‰ ™“˜‰³”•“›Š‘›”˜“›–•›š¦“–›”šŽ–•˜’“›Ž““’™”“˜“™“”’”šž¡’ “““–“™•›œ‘—–•Š”ž”••—Œ”’Ž“›š‚””‘›•›Œ˜Ÿ—Ÿ“š“”‹–™Ž…£”“–“•Žœ““•”–Ÿ‘•™•“”•‰ž–—’•‘“™—•š“˜˜‘•›•’••’–—’••“˜˜•”œ’˜‰–—’”“’—’“——•”—š“”“£“””””“™”••’”‘–¡–¦•­•¡Ÿš””’•™•–•šš‘•›•“™•’”—‘¡•›—“”‘“’˜’‘˜“’‘”“—”Ž”•›”˜—‘’˜“œ‘œ•™“““•™’š“•“Ž•š—š•ž‘–˜’“”’’Žœ“’“’“•‘•§”’™›“•Ž”—˜••‘”“™””–“šœ›š“š’’”•’– ”•®˜”“–™š†”“”“——‹“–Ž’““’“ޕޗ ™–•“–šž‹’Ž”ˆ‘”˜š••——”š•—”•“’—‘™š“˜œ˜”’‘•˜˜‘“™••’™““•™““—“—˜’“–™—— –‘–Œ’—“”“••“¯——”•™’•”‘’“š˜‰‘“’—•˜˜””˜’“””“™“—”š–“Œ“‘’•˜•”––’–—’Ÿ “•““œ•“™““••Ÿ’–””–””œ““ŸŒ˜‹’Ž——“—™’Ž˜‘˜“’“‘“—’’–’ “™’•–””—š™“˜“”™›ž“›”›‘““‘’Ž—“““œ””—–“ˆ˜•’“•š¦ƒœ’“’Š–Š“ž˜–Ÿšƒ‹–”™•”——”ˆ’š©”’˜˜ •›“™œ’“”“†—’Ÿ’š‘””›””’“Œ“’¢“•–‘˜‹™„šrŒ–›•‘’“Œ””›•‡‘™›˜—’“—Š…›’“‘‹ˆ’™–“—“–›˜œ^Œ•“ƒ“’”“‡”„‚““–—𓙇ˆ—‹“‘’•šš“’“›”Œ„†‰„‘““’”›”~•¤‰˜’Ž“”˜€‰˜““Œˆ™–©•—Ф”’†‰ƒ˜‘†’‹‘’’”—›”„•œ™Œ‘˜ˆ˜¡žŽ“’”›–”˜Ÿ¡™—““›œ•”Ž•“•›š˜‘—Ÿ“’›››”Ÿ™›–›Ÿ ™šŸ™““““‘’””›˜“‹’š“ œ˜“”™”—•†•˜ž’š’““Š™”“–“——™””›••˜™‘•œ™‹ž˜–”“˜—––š–Ž™ž–™•””—˜“““˜ ™—”ž¡ ”œœ…°—•’š¡¢’““–˜¤–œ•š¢™˜•ž•’˜•£¡›ž”žœ¡™’˜“•›”—›œœš˜š–™’’“™¡˜›—ž” š’žŸ—”ž›› ™“ –—¢”—“¥—”š—–ƒ•“™”“—›‘™œ—œ¦›˜–““™–““–˜•–’‘™¥—“’Ž•Ÿ™”‘Ÿ –™‘ž”›‰š˜•œžšœ¡•“—›•—“ œ•“£˜œ”’¡—‘“žŸž““—‘™œ•¡œ›’’““›‘”’š“˜›£•‘š¥˜••–‘œ–¤š““šš›—••‘”™œ•Œ–•Ž“’•ޙ𔔖—››–Ÿ›™“›”“—“—œ›š–˜š”Œ”šŽ˜”“›™“žž•¡“•“’›“ŸŸ¢›£ž”“““š™•œœ“–’”š•¡““šž–“šœˆ‘ŸŸ‡’–“–›¢œ˜›ŸšŸ‘–’•ž›’š™›’’”‘–˜›  ““““™’•œš”˜”“˜•—˜–Ž˜—§——“–‘˜—‘œ“’‘˜’™›˜š•˜˜””™”–”•‘“—•”˜•“’”—“”—””––‘’™“—Ž“”™›”“”””–•—”“––•—’•™™––”–‘™—˜ž ˜›““––”“•’“”‹–š™™”“”™™—“•Ž‘””“˜¤›•”š“–”””‘˜”™”Ž•›œ”Ÿ”›Ž›—™“”™›”—“š’”›•”–˜”—–’“–›˜›—”›•–˜”•‘œ“–š“£™’•Ÿ”–”˜”–’’”š•”™“•••”’š—œ‘Ž˜š—•–—–””“›š‰~£˜‡““”•§†”¢™“š™Ÿ™Ÿ™‘œ›‡›˜ŽŒ•”œ•š–––’’’’– “™“”•–’”™Ÿ’Ž“™—™”˜†’š–’“¡•“’™“Œ –›’—š—Ž—Š™˜€¢¡˜”š’›™––‘Ž»‘‘š”•’ŽŽ‹Ÿ’š“’³‘œ“¢¤”–•›¬‘•’žš‘“Œ“‘š––™ªž”–”›”Ÿ–•™œœ“Œ¥”ž—““’’“”Ÿ ‘ž˜Ž’“’š—„–›˜š™‘™’Ÿ•¡}”˜Ÿ•šœ“—–•“””šŒ–—“™¡”‘““““›Žš“†‘›™—Ÿž˜š¢Ÿ““™’•’•Ž’œ“““‘¡šž“—‰˜‘–˜Ÿš–œœ ––—›ŒŒ —‘’—”’š¡‹Œ›—’“‡’’˜˜’‘Žšœ“›•“›˜–’’Ž”“’ž“œ’’••–š–™˜–ž‘”•“•“•—œ•”‘ž‡Ž—‘™Ž”’˜˜’”•“”Ÿš”•’—Œ™™šŠ™“’–š—’œ’˜’¡Žœ‹Ž”–”š–“œ™”–›“˜‹–Œ–’š’—“˜•’’›•šš’”—œš •””™””ˆ““‹”š–—’”ž—“—“‘˜–”šŸ”™•’˜’”——”“™““˜‹”•––š—–“’––•“–’™””““—¤‘”‘—•”¤œ’˜’›”’˜–š–—˜–”ž“”“’’”–‘” —““™™™•œ–’”•““”™“‘“›˜‘””•——““•‘”“˜“™œ˜š—Š—˜•˜—˜‰––‘””““–Ÿž“”’ŽŒ’ž’“”ž’š—““˜”‘——”’““””“ž—ƒ–—“›‘”“”’“™’‡–‚™•’’“Ž–™“’‘•™—“˜“”‘–“”“•”•”˜•œ—š‘—’““’¡Šœ–š‰“”‘””šœž“’•’’†”›•œ““‘—•—–•“’’’”’’”œ— –‘–‰Ÿš’—žŽ˜““”–•‰”Žœ™“’”œ–™™™”‘™”•“‘–›—’›•’•œ—““—šž˜’•—–“™Ÿ‹—“’Ÿ–’“•“‘š—š—šš“–•–““–”“’”“˜——ž‘˜ž‘‰—¥•—•’—“©“’™Ÿš•›™˜™””‘”œ’›–™› Ž””™“ˆ“™–•“’š”•š“™“‹•œ™—‘•”“’šž“›˜™œ’“š—˜•“œ“›˜‘šš—œ——•”’’• —šœš—•”™”–“›™‹“œŸ‘“›š™”™–“•“˜–‘’›˜¢¡˜”’’™™›œ•˜•šš–˜—›“žŽ™““–”›™–”™””““ ”“•˜˜˜™œ”™”›“˜›“™š™”“œ›””””“˜—”–—““ ™–“š–“Ž•““˜š“””•”™””—™“•Ž“”‘”•“’”—𔢓—“›”–š”›”˜”—””œ”•šŸ“—”¢””—“œ•ž–•Ž“”—•—š–””””•“”‘…””“ž•”“”””œ“—•šŸ”›š’™›““”””–›“Ÿ“”Š•“•“—““–™™¢–˜•‘—“”›¥–•›•”“”•“”šŽ”“•“•“–“šœ‘“””™•˜™”’Ž””“““–—’“šŽ”•¨’”Ÿšœš”—“”’—‘š”–˜’””˜’•–’“š˜—“š•–—š’™˜”“‹˜ž—˜—˜—“›—“›—“”—’˜—˜’”“•—”•‘˜•–—˜‘’™•“””””“š”–˜–š—˜“‘“‰™”–˜œ”‚•–—–•”–’œ”–—•Š”ž”š•–š•‹™””•’›’”›”“Ÿ’”˜˜˜—“•”–•—™“–“”–“„•—”›™”›—”˜—”’‘”””˜‘“””––—››š–““œ˜˜”•–“’”–“•”—‹”‘“””˜–”œšŽ””““——š™›—Ÿ›š“•“”–““”–•–˜—“š™”““—–”Ž””’”“Ž–“—š—“”“’™”—’›””œ˜“š“•“’š”“˜ž’“™–•””‘Ž•“—”–’š“––œ‹•–•““¤“”“š”Ž””“—œ™—Œ”¢—•—¡˜”œž•“•—”—•”™•©•‘‹“—Œ–”œ›—”””–”•›”““•”•““•“”’‰–ˆ› ’•••‘ž›’•”‘”ޔޓ’‹š““•‘“–›™››–˜‘–“”•™˜šš‘‘’“•›š“”–—•Ž“‹’ˆ’‘“š”’•™š•“Ž””“Ž““˜™•–Œ•ž›‘Œ““““š”•Ÿ–’’”š˜™—–›”™–•’“—œ‘’™•š–œ–ž‘Œ“‘””‘•›‘‘œ™™˜ •š•›’’›¡’•˜Ÿ•–•—’œ“–™’’‚’“’˜’™˜–›’™˜–˜•—‘—“‘”’“’š•œ–œ••–‘œ•–Žž ’–—˜™–—˜•”ŽŽš™‘˜Š•˜’¡‰”’š’’•–—™—’‘“‹”Ž’Ž“ˆ•¡’¦’Ž™’‘’””’™¡›—šš›‘’“›œ’—˜šœ‹’’š–“œ““˜’‘•›Ÿ‘‘œ•“‹”ššŸž•˜”’›‘“ Ÿš š›—ˆ”¡œ›—‘’’•š›‰ŽŸ”““•–”“”™•˜’š’—””—‹—™œŽŒ™’“•‘”’–’™•‘“›œ¡“¬›“šŒ“—”š”•˜‘˜ž˜ž”–‰’““‰’““–““”•“™‘‘‘™p‘›‘’™Š¤œ“°“—–Ž“——£”Žœ••˜–Œ”’˜Ž‘‹—”ŽŽ¡”Ÿ–•““‹‘›“˜“‘‘ž–Ž—˜“¬ž’š“‹—¥“ž‘•›ž“•“Ÿ‘”“–—›˜—”’“ž™“‰–™”—–œŽ–™“““˜–”Ž‘Ÿœ¡”˜“¡™“šŽ˜ž’’‘˜—–“‘¢’ޕ𛒔“““–•‘„—š”’’’—˜˜š‘•“”‹—–’’•”š—”•••˜˜——Ÿ˜•—“Ž•”“š˜––™šžŽ“•‘™“™“›—‹•™—“‘‘’“““’”’”“’”•’“’–”’†—†“œ”˜™”’˜•œ‹ŒŒ—Š’Œ•™Œ”•“•›™“¥™’”˜›—˜•˜ ‘’•“˜–”™“Ž”–›–Ž’”š•”’–“–“”•—ˆ”“Ÿ–—–“““””‹’—”˜˜•˜‘“““’‰——œ–“‘™’–”–•”œ—˜””•™“˜›–“””•‘™“’•‘–™’Ž˜’œ”˜–‘——”¡““–™•––˜“ž“““’ŸŸ–•¤˜•–š“•š›—•–—Žš—”–™”•“˜¢”“œž“”™š”–“››–”’”˜ ›“œ“—••–““—””“œ“ž˜‘•“Ÿ›‘•”ºœ‘š—”Ÿ”–›—’˜‘—”“•—Ÿ”˜Œ¡“›˜’’Ž‘”’™˜“žŒz‘“’˜˜š“–”‘œ•–““•‘“‘¤“”–‘““—›“–™“™“’’•™›˜”œš’“”““‘’ž¤£˜œ–”˜˜‘‘™›“šŸ˜“—““™š¨“”“Ž•ž”ž•š˜– ’˜’”ž–„žœ‹–š”’— ›““Ž“—œ˜™œ‘”“’£“˜•’‘¡™–‹œ•™•–™—•š‘—‘›”‘”’Ž’˜•”™“–“Ÿš—•˜ˆŽŽ”˜”˜œ‘•”‰“š—”””𔕓›”¡—”Ÿ–‘šž“˜“—’“š”Œ”¤–šœ•——‘‹•’‹‹’•“”’Œ”–”‘š–Ž–”™˜—“–™ ‘“™™•‹”“”—˜—•¡”’’œ›’”“¢ž”œ‘–”“Ž“••”œš” £™’•””¡•‘’“œ’‘“‘——–ž–”•“›ˆ”“¢˜”•”¡››¦œ’Ž˜ˆ”’“”˜–•š˜ŽŽš–‘šž˜›•”””š•—˜––“””•—–œ‘”Š­’•ˆ˜—’œŸ¢–•šŠ••‘—””’Ž˜”ˆ”“”™‹——”“‘Œ“’”–”™‹‹•‘˜›“”­˜”“”•Œ”œ›”–ž›š“£“©ŸŒ—•†“‘¢•›­”˜†‡“¾‰““”œŸŽ˜‹”“žŽ‘™™®•”“Ÿ—’”™“‡‘‘”ˆ”—“«•|—”˜˜–Ž”¡’˜‰”Ž”•š“‹“œŽ~š™”““š›”‘“•™”„—ž£©•”ˆž”•v—’Œ«”“–š‡˜’†Œ”’”“Ÿœžž•ˆ”š•—š””¤•ŽŽ•œš“”“—–˜ž”™“—–™”–‘˜›˜”Ž—”Ÿ–•˜“•”›“—™“’–•𔑓—”““—˜”™’žš•Ž‘–•””““›•”““‘——’‘˜š“ˆ—›•–š™™”” ”•”Ÿ–‹™—ƒ”‹” Ž’•“’š•––—‘”•—œ’–›—†œ’“™š“““’””‘˜‰’š˜“’”œš–•—–—Ž”•”˜–”–“–—’’Ž˜¢–—’“””‰—’–œ˜™“›‘•Œ” ””•”‘””™”š””˜”„››—™˜“‚Ÿ”’˜“”‘˜Œ–Ž•‘’Š•“Ž•””—›““š•”š†”›˜’““’“Ÿœ–˜œ”•—™”œ–žŸ’›™”—”˜™“–‘™—•™““œ›š’‘𔑓““œ–”˜“œ—“••™‹”ž“”Ÿ“““™“••”œ—š˜—”™—–’”š””›”–˜›œ˜•–›¥˜¡•“––”“ š“š¢š–”‘’˜”—˜œ‘•“˜’”˜”𔕔••—™—’”—••š“”’“‘œ“•“•𔕔ž•—™—š›™˜‘›”““š”œ–˜‘•–“’“”˜”’’–—‘š›”˜˜Ž•”“”œ•–›•–‹“”—”“–’”’’• —••˜š™žš”” •–¡·—š—•““”ž’”¢œ•œ•š””‘Ÿ•––‘”—‘š™’•—–›”˜’“““ž•—•›“›–“‘—–“œ—™žŸ˜“’š––““ž•”“š“œ™˜““¤”–žžŸ•”—™•”®’•‘“¡™“}™‡œ‘œ•’©–ž“’›ž›Ÿ™”—”—šœ–“›—ž˜’“”’“”’“Ÿ–šœ¦–‰—›–”—’•““‘”˜’“‘˜”•˜“¥“™–•””š›Ÿ•””“••›ž–ž’•”‘œ“˜›˜”“•šš•™Ÿ˜’žŸŠ“–”¡“Ÿœœ–•‘’“¦’“———–œ—”™—–”••˜›“““›–—y›™“’’—˜˜Ž›–—–”š“œ™™–‘—–œ”š›š–›‘“š’–¡”’›˜™™ž™”™œ’™•—““—šš™’Ž¡–›‘’’¥Ÿ’‘š’“”—™š›˜ž“ƒ™™›Ÿ—˜“”š˜›’š“˜ ‘–•—•‡œ——’—”›œ‹’•š¡–™›¡Š–“’˜’••’¡“™•–˜”–•”›™’‘’‘’ˆ—™’˜›Ž“‹’š’–”‘•–”˜Ÿš•—’“˜™š†’–’‘““˜‘‘˜šy“”Œ•ž ‘“Ÿ£“˜“”˜Ÿ™”™›š‘‘’Ž˜˜’——•¥—˜–›š™ž–’’“”–’ž•žŠ˜’“ޱ‘™—’”—•‘˜ž˜˜‘Ž‘“’•‡“™š›•”•œ““–“‰¦”™——™˜“™—¥”Ž—›¨œ›ž’Ž”’•““ž˜”’““”–—šœ—š‡’—€—™”£›”¢–™™Œ˜–œ““•› “”ƒ¢–““ ™’œ–š’”–œš—˜•’“¢–šŸ“›“š–™’–“•™“‰Ž¢¡Ÿ•™˜”•–›–““œ“›”’œ‡œ™˜”’““š—””‹§””™ž–˜™‹”–‹“™”“”…”š“˜›“•™—š‹ ¥’œ“”œŽ–™˜¥‹—”šŸ—¤•®““˜“’—ž‘‘”“““””“’…‘™–™”‘““”’—•ˆ™•’’‘›¢“’”“•—Œ•—’’Ž˜“”˜””“•Ÿ—“•“”’–”–š–’““‘““’•“”—“™’‘”˜ŽŽ•›“’‘“”˜””’𙕇“ˆ’••”‘“–”“–”š”š”’’–—””ƒ›™““˜””—“•’—•—š”—“•–“–•‹’—“•œ–““”’Ž’’“š““”˜ŒŽ““˜“”“™• ’”‘””•š’‘•’Ž“””™Œ“’œ…••’”–˜—˜–‘™–“”““™’œ’‡””–’•˜““•š–•Ž™˜•˜”““––“›‘–—’–•’™œ“™™™Ÿš–“”’‘–••“•“•Ž“””—˜ž›•‘‘“—”˜“—”“—••š›”’”•—“””©•””‘””’””˜‘›Ž“Ž’•™•™•˜•–’”“˜™¤”‘ ’““‘ž’’””‘”•𦖔œš—••”¥••””ššš‘”””˜•”–’™•˜–™•—–‘•’“–’š”›š–••”™”˜’•‘™‘™™˜œ“””™™“›•ž’”›‘’—›“•”˜”“š™Ž‘“›•‘““””œŽ•˜•™“ “” “•Ž“˜–••žŽ“™•••–œ’””‘–”—–‘”““’‘•Œ“•””Šš“Ž”–‘–•Ž”••ž—•–“••›š“š˜“’•›–•”“‘–““—”’•Ž™••–’Œ–•˜““œ””’ž“—•š”˜œ”•šŸ’•‹˜”–”Ž‘•ž™ˆ™”‡–œ™”˜•—™—‘“–‹Ž“›–“•“–—”””›Œ’“’”••“”“•™˜”˜˜–”““œ“–•”š““”–•›“”“–•’–›Ž’Ž––‘˜“”••¨˜Œ˜•“”™’”¦‘®“–”‘••’“•˜“””‘‘Š––—ž˜•“•““ ‡•””‰˜•””›œ“‰““•”“’““’‘‹•”‰”“Ž™‹“‘›—‘‰š“•¢˜‘œ—’“”Œ–“’”‡|””’–“•ГЕ‡Œ›‘™™‘Ž“’“˜Ž“’‡“‘ŽŠ”’—’š–œ‘Ž˜”ž””‘—Žœ¢”…˜’‘ŠŽ“¢‡‘¡“’“•–“’›œ”‘“˜—‘““–˜š–œ˜˜˜›“ —‚’™£ –‹“–™›”‹’–“’‘’”–‹•˜’”•—’‹“œ›˜Š•˜‰’“”™‘“—š˜™’“”“”•”—Š–›–’“’Š—“—••›’Œ”Ž–‘““•™™—˜›““”“𛕋¢‘›š™“Œ“™’›’—––™“˜•”“Ÿ˜”™ˆ’’Œœ‘•‹Ž’•“•›•“˜•šŒ™œ–Žš›““¢–““œ““œ”–š—•—›˜“••ž˜”¤–“–“™–”|“š ”––™›Ž““—ŽŽ–”–”˜’–•£›‘““™–”“•“—š›™›—™“•¥–Ÿ”’–•¢›””–—“š“›“–’›š–˜˜˜–œ–“”“”’–’š‹––’£–›“’•“” ™˜”–ƒ”–•Š•™“œž–˜•˜–”’““ž“”›™™—–—™š˜•š“““”œ“””Ž”–†•š’’”–š‘Ž•—Ž–“–’”œ‘•ˆ›–š“•‘†™‘”“’˜•’“–Ÿš“˜“™‘’Š™™’‘˜—˜“–’“›“¥’“‘““’—“™‘™’œ“š”›Œ•Šš™›–“¬Œ›–““—Žš–—Ž™“Ÿ“–’’œ‡œ—–Œ—“’”“—ƒ¦—Ÿ’™‹Œ’“–‘””˜™‘˜˜“¼’•“ŠŒ—”“•—Ž›–“•“’•“—“—ž™‘˜’’š•’”’‰•™’• “’”‘—‘“•Ž“‹”’’–›—•—””‡”‘‘“““Ž–˜Š›–›š–‹”–––‘—““Ž’“ž·—¢ —““”–Ÿ¬œ”œŽ‘Ÿ™•¢˜¢““›£œ–™œ“–ž•’Ž—•’š˜‹•”“Š““˜œ™”¥–£’•™™•—””£—”“›”›š˜–’  ’{”’ž˜—— •”Ÿ”‰–“«œ—r“™ˆšŸ•‚ž™•“”¡¡™¡”Œ›• –š—˜›£˜–’šž˜—“’”›™“”™••Œ”_£š–››–‡”Ž–™“¡“•“–’“£Ÿ—œ©›Œ“”•›˜¤•¦œšš˜š—™ ›•”š¨œš™—Œ”žœ”š’˜ž¤Ÿ•š“›’”¥”“‘Ž‚–ˆ‘˜” ›Ÿ’”¥““Žš”›•’““–—”˜œŽ“”›’›’™’–™•™‡•–•žŒ–•”›–‘“•“’—•“’–“Š–’–‘’““Šš“ž––˜š•’›Ÿ“““š““–“˜—š–™–™—˜™›š˜Ÿ—™”˜“™›Ÿ˜‘™“””¨›Œ›“Œ–𢆛“—™˜• •œ––•“–¡“•“š“–—œ™–”•›˜—”Š”—“’šž’‘“•‘šŒ›“š““—’‘“““›“™““’’”š‘Žš••™œ‘˜¡™–“”’™–œ–˜ž‘˜•Œ“›”—‘ž—•“™•“š“’Ž’‘–›“¥“Ž•Ÿ’–•–Œœ“”–‘•‘••–““˜˜›—˜˜–š™”››“—“˜˜–™—˜ ŽŸš”‰“‘“—š”“Ÿ•––’‘–““—”–•™—“’“—”•–“““–“““š“˜”—”“š™—‘‘¡•˜›”™““’‘–œœ•—šœ••—–”›’Œ™“’”–”–•’–““‘“›‘––“˜“‘“““’š•—Ž‘“”…‘–‘“‘‘™œ“˜Œ”™’’”Ž”˜š™œ™–“‘“•™—“Œ˜™”‹™”š—”›š“’˜˜–” œ—““––—™“™—››““¡’–›”“”‘œŸ‰“”™–›˜““‘–™Œ™“•––””• ™˜š“›’˜”ž–”˜šž–”–”™–—”––—“•‘“˜˜š’˜’‘˜”“”“—”””•›Ž’”›š•™Š“”‘•”“•”•••™–š”—Žž•–––ž””’“–›œ–”—ŠŽ›“‡•š“—“’’•’˜“”˜”˜––’–Ÿ‘‘”•“¡›˜’“–”•’œ–”•™”’˜”–›–•—˜˜•—”Ÿ’–—š“”““–’–œ™ šŽ™‘“”›—›ž–”“—’•—•šŸ””˜˜›‘•”•’–“˜˜’—Œœ–’”˜””™›’––‡•–š˜˜•“”“‡’”’˜“‹‘“”“—•’•–Ž—œ–˜”‘•—‘Œ’“’“››•”–”•““—’”“’ž˜“”’—““”—•“•‘’””•–“’•““”‘’”“™”˜•—˜ž’‘“–—ž™•’’––”’—•”“—“•†”ˆ›”™”““”š“˜“”›”ž”’”“‘‘‘“’ž›•“‘“•”””“˜’––˜‘•™”“˜”—•‘Ÿ“•’’•“—”œ“˜”‘•›–“““•‘—‰––””•’ž’ˆ••”‘–’–‘𛔙𕓔”“’˜——˜”“–””˜”•𔕑ޓ‘•–‘’—•“•’™“”—–‘‹™•œ““ž‘œ›š’ ——ŽŒ”•Ž–˜•‘‡¯¡’ ‘†•’“ž““¤—’ˆ”–“”—Ž”‘Œ‹‹˜” ž–˜–“”›š”“™”‘˜˜šœ™–¤˜‹”¶œ–Ÿ™“˜”Ž“•Ÿ¥‡—“˜š›ˆ—‹•©†ˆ“““…˜–š„—“™™‹‰’€„ž““”¡™““˜”–Ž“—––Ž”•”ˆ–•›ŸŒŸ–””—““œˆ”›“£Ÿ“™¢”““”•‘Œ•œ‰•š–”–”“‡žš”–œ¢Œž®“œ“œ”Œ›š’––œ™“Ž”“š–Ž’–—’‡”—•ŽŸ•™{”“–—‘‘”—”—˜””™–’’”–”’”•““˜˜–“˜›Ÿ•”—™”˜’–˜˜–™˜•”“’–“••Ÿš‘˜’–“•”•“’˜”’“˜–’‘•™˜““——”“’””’š•–‘‘”—’–“’––›“–”ž”’–‘’–™™“–•–’””“—•”’”–•”•™”™˜’Ž—”“—––™”˜”’™•—•“™’”–”’–—–•“‘”––˜•”“”’𔑔—“•”—•“”“—Ž–‘–—˜—˜‘––’–’”—”’—˜’”’“”˜””•’’‘–—“–˜““““““‘’”™’—’““–”“”““–“Š–žŽ””““’”š““œŽ¦“•™””Ž‘–ž–”Ž”’•–••”–š•˜—–”•’¡”–“–˜“•‘•ž”•˜””œŒ”—•””„–”“™”™”Ž”–“•†” ’•”•š••ž”“—•••“¥“™“”˜•ž“•”•–—•‘€•””—•“•”Ÿ‘”““––””””“šœ“•‘•šŸ””–”“”–”š”ˆ”““••”—”—––•”’Ž”•–“˜”••—’• •–””œ˜•”–“”„”•”’‘““‘•¡’•”‘””’Ž˜—›•‘™•–”—˜•’””ˆ–ž’™Ž—’’‘’”–”––—˜‡š†’“—”•”˜œ™››’–’”“•‘š•™’–—’‘“”““––––˜™“”™’’Š•“’–’™‘™•••—ŽŒ”’™•›–“Ž‘•–˜””‘‘“‰“‹””Œ˜Œ’–ŒŠŽŠ•—“™––“˜Œž˜‘’š™—•’‘“•—˜Œš—•š‘•“”’‘——™——“—›—šœ’’•–“œ•–œ˜”š—Ž’““•‘˜‘•—™Ž”–”˜—“š’–˜“’’š}“–’””‘˜”™—’–‘‘”—•˜–’›Œ‹—˜•‘’”‘’’“——¥ž–“•’””’–”šŽ—•‰—––•—•œ•—‰˜˜–“Ž›“——’–—””•“”•–ž“•–“–““›”•˜›‘—™–•’‘““š’”““”—•’“’“–––š˜’•œ•˜™•~““’—˜˜’…“˜¤˜•“›²’’”™™•’˜—š““‘™’‘——“”š––”“”›•–‘š“––””•“•“““‘’””›˜”Žœ“§”–•”–—“˜˜™’—Ž”“”–’Ž‘–“•“‘”•—’–”•‘•‘–‘‘“¢˜Œ”’”ž–“š•”™—›“«””™˜›”š•“Ž“‘”’”—˜‘“”˜“•œ—––“““–—“•¥–—™“—˜Œ’¦š™š‘ž’’›™ž”–™““›”“—˜¦™“‘—ž“›‘“™—”“–œ”•—““ š“’–“”“–”¡”œ”œ˜“Œ’™•—”˜“”•—’˜–Ž—®™•“›’”„•“˜•— —‘£œ“˜—š–š˜ŒŸš”“•–𙓛““˜——š›——“—”ª—‘š˜“œ•“”™—”ˆ““””““›“–—™šœ”“”›‘™—›—˜™•’•’”Ž“š—”ž–’”Ž›•“˜“–œ•–—œ‹šœ’’•Š–˜•”–•ª˜•˜“˜”—˜œ““›•—¢”–””””—””’¤””’š’˜”““™’“›‘Ž”••—›–™”•’—œ”›‘”“’›——–˜ •“–•—“–””œ’’—š“–’”””š”“˜”“™——’ “–” £™–•–’•“𔓙œ– ž””¥ – “”˜••‰–•”’™—’›‹š’“‘–“‘”’”˜‘™š˜Ž•Ÿœ”˜’—”“™‘œ—”–•” ”“”’“™“™’“•—’“•˜—•’“—”–“””–”“›•˜”¢Ÿ“›”““˜•Ÿ˜š•—–Š—”ž”“•–ž››””™““˜”—“’™””““Šƒ”Ž“””“›‘’š’”’˜”•Œ‘•–£”–‘˜–—™••”——–””’”“’›‰ŸŒ””—“”™–”‘•••“’—”‘““›’“““’”˜•‘›“–Ž“©–••–’”™“‘–•”“‰–‹‰š‘”˜‹“’Ž’‹˜””—“•™˜–•”–’˜”“š––“‘“”“˜——•‘–”’”›–’’“—˜˜”“–™—•”“ ™”’•ž‘š“““Œš–ž’‘—–”–’š‘œ””•Ž“’˜•œ•Š˜ž”—”™Ž‘™””˜–’“““•–‘’‘‘•Š‹”•”•’š“““•–‘‚“™˜•““’Ÿ”–”š›–¢˜“–”“•˜’Ž—•–’””˜–””””••“”””“˜”™“’–“”–“•—™“’•“›˜”•——“–“““‘•”“‘“™™“œ——“›•˜‘•”œ“œ•”™“˜š•““­—™““••–›“•˜‘”–—‰•”””–“”𓆒”“ž”–”“”“”“‘›˜›”•—–Ž—””•““œ” •”—˜“—“˜”“–”“¡˜”™–““—ŸœŸ™˜””“•’’”›—©””’’•”“™“š˜”””“ž—‘•™–’–•”–““˜œœ™˜””Šœ’“š—‘”–“”œ–“““——˜’“”•™–’›–•‘œ™™š“Ž—•…š—–”“‘œ“›–“Œ—”“˜”‘”’š¡““‘†š““”ž–”—œ‘˜™›•š˜““œ—““™“™š—˜—’™™›‹“™“˜“™•”‘“–™š’Ž—•”—Š•”ž‘—’“““’–˜œ“œš™‹™š‹™–•“–Ÿ™“•”“Ž™”™••˜—”•˜—•”š•œ–“–’•›•“““’’‘››™™˜”ž™’“””š’–ž——˜’•™—™”’––Ÿ•—‘™““™“˜˜”–”™‘›’“”“”˜›”•™•šœ’“–˜—–—˜•““•—•—™•Ÿ •““’¤›šš‘–—š”—–œ˜¡œ˜”˜šš“—™”›š“ž‘“ œ›“«˜’”““˜˜›”””ž›™š˜“š’”Ž““––”“š““š” –œžš—”™• ““–˜”˜˜™žŸ–˜—–˜˜”•˜–œ’•“—› ’˜~—š”˜” ’™¢š™—–“›˜š—“™““˜ŽšŽ“™—”‰™˜”˜˜’˜”“¦••—“™“›’“”›™š—’™•˜““žŸ–𙢗”•˜“•š“””–š”› ”œŸ”–”—›–ž›¡™Ÿ¢™“•“” ˜›–—•™’—¡¢œœ•›““˜–Ž—¢“–“—”“”•’“•œ’‘Šœ–˜•”–𓕦”’’“–“–”–—“™•”“’••“•š™–“˜”“’–™Ÿ——•—–•˜””••“•”Ž˜’‘““”ž™”–•›•œ”•Ž”’“˜–•—š‘——•”Ÿž‘˜“”•™–—’•””””—˜”•–Œ›““••—–”˜”—–““Ž”œ›“‰™”–––˜Ž”“••”“œ“’•“’–˜“™•’–“•Ž›••—‘œ•——“””“”›”˜––’–š©“”™™’–”›Ž”—’’—“•˜”›“““—’™•–”–ˆ”•‹•—˜”“”‘—“|”›™œ“”“‘‘‰›•˜‡ŠŸ—œ”¤‚—§ ©šŒœ’—“–£•“–œ’•¡‘Ž…—˜“œž”Š’–—Š™—›©Œ““p””“ž“¥•’’š—™š–‰•˜˜¢œ¡””®•–¢”Œ‚’x“‹˜Š“‘‹‘’–€‹‘™rš”˜——–˜‹ƒ¡”“–˜™—“—“š˜‘¡“œš”Ž”Ø›™Ž”™–¦Š””˜•‚’“›“””•“ššœ•– –““’§ž£‚•“šž’˜…›’”˜’£™“”u”y™“˜”›•”œ‘¡˜£–’…“”˜Ÿ’£“—|›™š–›•‘““˜–™“˜“Ÿ•““‘˜™˜”š—’‘”“™Ž—™“Š–˜”Ž“™’‘–‘”’“‘˜“’˜—˜Œ–™•““”™‘’–’˜––•—”–“““’”’“Ÿ‘š‘—” ˜”“•’–“”¤“—’˜™—£’‘˜•—””˜–—“’”—’–”—””““•–’•‰ˆ‡‘’™’“”“˜’–”—Ž—’’“ ˜‘•’”““™““‘•’““”’–•™–“‰”‘™“•——‘•š““‘‘•‹’’•“š”–’’’””‰‘“’Œ’’”‘’””˜Ž——“““’—›œ™–”——‘•—•–™•Ž““‘˜‡£€—œ•”“”†›š’™˜•‹–”““”“›™—‡•š–”Ž ž–š“š•˜–”¢£”“š‘••“’–”’˜–•–•“˜›•”–˜’“”œ˜”“š“œ™˜œš˜Ÿ˜” •—–¦™˜™””’𕙓𔓖““•”˜¦‘˜“•˜›ž‘˜”–œ—“™”˜š˜‘“˜•—“””“•˜–‘’š™›•–“˜”–––”‹”“™—–š”””˜’•””•“•–’¡“”“›•›—•™”•“’›–•Ÿ•“’™˜—ž¦”š–‹”›“•œ—““•˜•““”•”“Ž˜˜˜š”˜‘–œ—‘‰”“™‘“—“—–•”“’™•’™—“Ž˜“•—‹š”ž›¨›’••’—˜˜“”š“’˜–“™‘›“™–”“–“š™Œ”š’“ŽŠ•š››”““”””“•”š’•™—”™’™’›•—””“’š“”Žš’œ‡šŽ•Œ•˜ˆ“—šš‹”–”–•–”™—•ž˜““›ž™“˜”ž˜˜———••œ“›£”“•›–”’š˜š“Œ“’•“”—›Ž™—•™’“”˜•šš™Œ––œ˜’“’”™’›˜“’’”Ž™ˆ••””˜•˜–˜’–˜“‘“”‹—‘‘™”𛑗Œ•˜‘ˆ“”•••‹˜“Žš““’”Ž“™‘‘‘’”’——˜’‘•˜‘‘Ž—•œ ‘•“‘”“”“‘”˜•“™‘˜“˜‘“‘š“”–”•‘••”““œ™”“Ž“‘“‘Ž“’’‘’”•—–‘““—’–”‘”””•Ž”“““–“•‘މ““šš“œ”’—“““’š˜““‘“”š’Ž’’”›““™’”“™“‘“’ž™““’“™”‘’•‘˜•“•”“‘Š“›”š˜—’‘“‘”“š“’’”–”’”‘Ž’–’••“’’•‘••‘’‘”’”’–‘”“•œ”“““–‘’Š—Ž™‘’“–¤’‘˜’¤–—“™’”–Ÿ“˜Žš¡’’’›•‘’¢š’’–˜‘š••’––“•˜™’”•—••‘’“““’’“—˜œ’˜“‘–Ÿ•¢’”›’‘”𙡒•’Ž–Œ”“™“˜’‘—“‰–Ž‘—”›œ—™’›’’’£–‘’Œ“—–••‘‘’š‘‘““Žš˜““š——’–“™“”–—£–“““’“Ž—™™•”’“”‘–ž”““—‘š˜‘“”–”“““™ˆ—”—“ˆ’’‘“ –”››– —™¤˜¡——’“““‘›’”––’”˜–š•““””‹—“’œ””šŽš˜“•‘Š“’•”š““‹–•“’’†”‹˜›”‘“›••”˜˜˜–”“›—“•Žž““’”“–””–Ž›™—–••y“—™›•”—‘Ž’“–•Š™›”›–“‚š–‘””™˜””¢œ•“Ž–™”’ž•¡“•Œ‘›“™“Ž˜”š“””‘•—“š™˜”‘’†“’––•“—“‹“’‹——œ–Œš”“““““Ž˜˜•”“‘š‘’¥”—–™‘–‘‘–—Œ›”–“•Ÿ”––™Š—›“”’——–’•“’•š’Œ•”œ“›““––”œ•“˜—‘”••™“•–˜—‹žž‘˜•˜•›“›•—”œ’‘“‹Ÿ›•ž’””“¡Œ“”Œ“•”›–”˜”›“Ž‘™•Œ—””Ÿ•”›”’™’— ˜š”š“ ˜–•”™’”‘–—‘—‘–~–˜™Ž–•𣒒”‘—“”šŽ–”‘”Ž˜‘“›š“–•™Œ”’”™—›“•˜•œ“”—™™”˜‹’•”–”š‘–žš–—šš“••”“’š“‘”œ–ˆ•Ÿ––Ž–œ”›š–‰š“”›˜•ˆ”–™—–›˜” ˆŠ•˜””•‘’“”Ÿˆ„‘’š–›•Œ™””’—”ŒŽ—‰š•“”’™›Œ‘Ÿ‘‡œ““”™‹•“•“™˜‘•›œ˜–˜œ––“—””‘™‘˜—š“—™–”‰•••’˜•™“—“”’“”“˜”•–•—Œ•”Œ”†‹—™•Œ—’””Œ›•‘›Œ“”„žš˜“–†”—”™‘”‹‘‰™””˜–‘˜’“œ‹–‘”˜˜œ•””••£˜–“˜”—•ˆ‘‘–š˜”˜š˜›”–”—™”Ž——œŒ”—“””•–•ž“˜—”™ž‘•—”“š™’‘–™ª•—‘””š••™›”••”’”–›žˆ›˜•’”~•“š•›—”””–’«”Š˜•“““—–Ž–••¦•‘”“Ž•–”ž–›“–˜–•”–•—””›““”“™•‘”’•’”™”–—”˜“™˜“–•““ƒ””““š•˜š™š–¢¥’’–“š“”•“˜‘–•¦Œ“Œ‘’”£““Š“‘‘““Œ‰–“˜–“•”“Ž”““œ˜“‘““’“—’•“–•““¢˜™’”–˜—”“™’—•”““““–”•—˜——‹–›—“’•”“•–›“”•’”˜–”“––—”އ“”Ž”““—••‘š’Œ’”“““”–œ‘˜®œŽ–Ÿ™›œ’’““‡——š•–¢‘’““Š•¦ ›’Œ–‘’‰“‘’•›•’—Ž”–˜’“–‘“–““—‰’“——–‘—“މ‘“£•—’š–‘•”•›““‘˜“’‘“”””Ÿ˜˜•”•ž’™˜‘•””‘–“ž‘š‹—Ž˜‘•£””’“–™¡–œŒ•™”›–›¸““’™––“œ“–—˜Ÿ–¥‘“•˜•’—˜–“‘““’š““–‘”’““˜œ‘–’“Œ©–Š—˜•‘™Š“•¢˜–”–››”‘’“„’—”—ž–›Œ–”—–“•’‘•‰‘–••™¡š•š‘’Œ’““”••’—”’™”““’™•š•šŽ­“•”•˜”›“œ––œ““™ˆ—Œ‘“’››”‘ŸŒª’‘–‘š““•“’”’–š›˜–——““ˆ—”’““•”™“‘”ž™ ™‚š¤˜œ”‘”’šŽ”’¦†“‹‡•ž‘“”“‹‘”†•–“–”••’‘“žŽ‘“œ“‹’’•‰’“‘“’“ª‘”‹‹‹Ž“ ‘Œ‡¡““––“”•–…›’”›‰Ž““—ГГ’˜•“—––“–’–’””‘”•–‹•’Œ‘’“’“Ÿ”›‘Ÿ‘˜šš—›™ž’—““““šŽ}’––“”””©’›”“•œ›™•Ÿ“’Ÿ•¡œ™””–“•’”œ–”™Ž“”››—‘›–’’’”’•œ•˜”£•œ““•“—–Ž””€’””˜”•›”™”’–”Œ’‰–“ƒ““”…”˜™• —¥•ˆ—˜•™‘Œ”¡—”“––•””’”“••œš˜”£—”“”•”™’™’˜¢–“‘—•‘¦—••”—–”›•–—”’””–“—ž¡›£•“‘‘””œ›š”§–’•••“–šžŒ”“š’•‘•†”Œ•””•–›‘£›œ–˜””“”“™––•ŽŽ–””—”¥ž™•’§””™”™— •𙕔“”——˜––”¡’”•”™“–“¤››””˜”™–”•••—•“•™•“–™Ÿ”––”𔓓•ž“—•šŽ–”•›––•“”Ž””“”™””–––––•Ÿ›™™•–”••”›”˜™Ž—œ”–‘—§“¢•‹˜•—”“•“—œ‹“–•–•–”“˜†•””“—•”“”“”™””—••••–””—™¨”•••”’”–•”“–“–“•”““—•‘œ•–“–“•šŽ”’Ÿœ”””›”–•”’””——••—Š“•””˜˜™™•œ•œ‡“’™“•—”Ÿ‹™––¡™“•›˜›—™“”•–šœŸ‘•–“”˜ž˜’—…—’ª“œ’”›ž˜••ƒ’”š“•Œ›Ž’”“˜““”•–“’¦ž˜™“˜ž•••š™™—™™•™˜Ÿ““š–”“‘“–˜–“š•–‘–Ÿ—““˜•”š—”“˜š—𤣙™œ•¥•›””“¢˜¢“”ŒŒ•™—–ª”š˜“¢”š“ ““˜›‘“˜‘—›“¨Ž’”•“‘‘”šŸ˜“–“”““Œ“”œ˜••¡““›ž™›’œ––—’”’›—’““’”’’•“”“‘™’’”–™œ›˜“’““‹˜—™—”™•“˜—˜˜”›—£““Ž“—˜ˆ–’”“””Ž“šœ“•–—™“Œš’’†•Ž‘”’›š˜””™š›“—•““š”š“œ—•“˜––”š——–‘“˜“‘““‹”’›“–—”œ–››˜——™Ž›–“¦œ““•™“š‘£šš”—šž“–“›Ž–‘’“‘——™’Š”™–“Ž‘š““šœ’“••••™™“•ž’•–™˜–“•š—”“•“‘–”›—™™”•š˜’“œ”ƒ“– ——•œ”—Ž–Œ”˜›œ› Ÿ”™‘¥•’“ “™™“——ŒŒ›“—““”‘”•—”’š–”•––’Œ˜““”“”‘’” ”–““”™ž”š”™”“™”š’Ÿ˜ž””‘›Ž–•””•™•“š—““œ•“•š””š““‘–”•›–’•”™˜“•–““Ž–”“˜“˜———•””Ž“•’” ’š““˜“‘˜™›’•–—˜’”””—œ‹““¡¡™•—””•”ž•–›“–š–“–”•“”“œ”—’™š•”™”™šš”•––’›“•“–“•“—–“Ž‘šœ™”˜–“”’›•š—š–”–“””š ”–‘𔕒—“†—“–”“š“—–”“”“’““‘”“˜•’”’‘”””–š—“˜““—“¡–ˆ˜˜–‘“““šŸ—“•—ž–”“•—•‘˜“˜““’›—•™˜’’“—˜“’”’™’˜š›•““••”œ‘˜”™•“ž”–“““”–”“““˜––“›–’““𔕙˜˜“”“’š“˜™—“¢”ž–””’¡•”““Ÿ“•¢‘—“˜–“‘–•›¥”“–—‘“’“ ‘”Ž—“š“–›•˜™—“–š–“—“œ••˜““”“–‘“˜–“•’¡™–—“”–˜˜––“—“”—“–™•””••“˜’—”‘’Œ’—”’™›™š‘• —’“›““•š ™˜—••š—”š——”˜“““š‘§ž—›–’’•••“’™”™š”œ–——•œš —”™•“˜Ÿ›–•›™’˜–”’——”——Ž”–’ ™”’“’š™—‘œ“™—–’’›–’‘›“‘–“–’—™™“›•œ”ž™Ž›“›“”–•–›—’š•š‘•‰˜Š›’›’‘–›‹“‘“•ž“•—šˆ—‘‘’“™ ™’’’•›™œ˜‘‘›•‘’‹š˜’š¢˜•“’™›Ž“’—’˜”’“˜’™™•–’’““—ž—™››—œ—–”ž–Œ“œ•–˜–™Ÿ–Ž™“™’˜Œ™˜’•–ŽžŸ’”‘“–‹‹‘•–™”’•”–—‘—“’’”™‘˜˜‘˜•˜””—”–—–𔓕•”˜œ””—š››š•—–—•‘’‘” –“”™”Œšš‘˜˜”™™”•—˜”–“š–”–””£š”“–”“šš›ž“••˜’”¡’•›“™”¤•”—–’—œ‹•••’—’•”™•–š•“ž””‘“–›’’˜”“”’•œ›”Ÿ““˜•“—•–“““”””“™—–”‘””—Ž’”””™—”‘•‘––—”–“””“—‘•‘““”–›˜•“‘™”—”“™“–“”–’•—“—•“•™‘—”™œ”””–—’•”•™œ™—•›–™”Ž””˜—”’–˜––š’’–”™”—š‘•”“”—‹‹––”–™’›••››‘£š””’““•’•—“š’Œ‘—˜’‘““’–’šŽ“—–‘™˜’’”ž“’˜“™’—–“Š˜•–†‘ŽŽ•—œš””‰’›˜““’šŒ›”–•¤Ž‘ž’‰”’š•„”“ž Ž“˜˜›–•’“¢“Œ“‹’‘‘••––›“z”˜”™š”’œ“šœ–œ—’–“‘””–𔔤“‹’”“”žš””••–•›–’”“Ž•‘œ˜‘“›–––š“”š’””–Œ–Ž‘’›’’•™›š•˜š™Žœ””–˜œ‘’’’•”›‘“š˜““’“š™š–Ž–”•”•Œœ’”˜”“•——”•””˜““–ž“’›”‹”•–˜“‘𔓒—ޕޙ–”’•–““˜—”’”“™”–š˜“—œ•ž•¡Ž–›’–”™’˜šŸ‘•›ž’–›”–”•‹“™“•”•™—–”•‘•–•š’““˜—–•“™’‘“˜•‘—›’“”‘ˆ””™––’™“š‘•”™“ƒ“•”“œ›—Œ˜–™““™œ œ’Œ’“—””’˜–““™™—“™’’‚’‘•”—–“’–—œ—”“‹“’˜–“‘’™Š””–˜–ž“““–’“•’˜˜’“‘™“›“™—ž—’—”™‘“’’”“’”š˜˜—™•š““¥•“•”‘”’š““›‘“”—’œ™œ•–”’’‘’“”›“’›“’™”™–˜š“•’œ’›–”“’˜šœ‘‘˜œ‘–——Ž•’—‘•“𓔙ޕ–“œ’™——”‘’Žž••“—“Œ—’›——’‘”’” ’œœ”‘œ“™–•“˜““—’”šœ““”‹ž“’“™œ”–Œ‘œ•–™““œ’‘“–˜•˜–•‘‘–†’œ’Ž—”•––Ž ˜“’“”œ“–’˜•“–—‘—™˜Ÿœš“’’ž™š—šŽ“™’““œ–‘¡™—–š•–—›•š”›|˜¡¤–‘›ž”•“—’’’˜š•Ÿ“˜š’™˜”’—”“•™ž•—” •““ œ“’“£•˜’™“ŽŸ–—‡‘’˜£›—“•—Œ”™˜›•“•”›”’›¡š•“•˜ž“›Ÿ—Ÿ“šœ›”Ÿ“˜§˜‘’š¡˜’ž”ž“˜˜™•‘˜˜–“¢Œ’™————“••–œ•“œ“–›“•›™˜š™œ•’“–šŽ ž’”–›”“‘’”””™¤‘–ˆ”—œ“’™”™š”š„•”’Ÿ’’’Ÿ¥¤š—¢š›“Ÿ–‘’™–™““š”———”›“””””””›””–™“—••”’”’–””™–•”’š—””””””—•–“””—””˜”•”•””•—”›”™‘“•”•–“•–”””•”–”“—•˜”•—™”—”“š•œ”–••–”‘™—˜›”–šŒ”“•”—‘’”••™˜˜›•”•””’””–•˜””˜”••”””””˜–š˜–”•–•Š™“””•”˜˜”—””•™”•›•–”•˜™˜š”““””˜˜–”’š™”””•””—˜‘•”•””—–”’›‘–”•š™——™””––•”—””“’“••”‘˜”•˜“–”’””–”–š’——–˜••›”—š–“–•’•˜––“š•———––•™”—”˜–š˜˜•’“–••”’˜“”œ”˜••“”•š™™••™˜•’––”••“–•”••’•œ“›—•”•Œ••–—˜–”••’”‘””›’—Ž•™–™•’–•”•–š—–‘•—••””˜—“–˜–•˜““š•›•–™–“”•”—––”˜”—˜‘–”“•”—–“—•–•“š–”“–—•—“••••••––”—–––—”–•–•””—•˜•™•š”™••”—””–––’—›’™•”–”•‘–”’“’™••˜”•“’”˜•”””“”Š••—”””••••‘”•”™˜“•™“•“‹•–”•••–”•”•“˜“”––”””š—’–‘•–’”––—•”•–”—“˜“™’’”””Ž‘””—”–••–’“”“’”” ’™•“˜•˜”–•–•“”‹“”–™••“’’–”˜“”“– ”’•‘“””“•œ——•”–‘“—”“••—”˜“˜–•”••¡”“””••—–”•—••“”–”–””“””–•”˜–””––•˜”—––˜”˜••––”•”“’––””“•“•’”––”••—•—˜˜”’”•••••—••’“•“˜–•”–”””••’“›“––—•””–•””—“”†•™—”—“™•–Ž–•”™–”—“’‘–˜—•••–•”•—•—••›•””’—˜•”—•••˜–”—“’•”””•””—••••———–’œ” —’•”–“•¤•••••’—Ž’•“‘–•“—•–•—“•˜”Ÿ–’”“”–™”–£“–”••˜•˜””™–˜˜–“•–•š“”••‘•˜””””’”••••š••—•–—•’””•–•–••–œ““—™”’”–”–”“”˜–›”–”•“•˜–˜••˜’—••”•“”˜““”–“–ˆ•–—•••”•••–“’“••““–”””“““”“’“™”•’•“”‘’“•“““•”’“™™•––“”””“””“’—“’’”“”—““““–”““••“•””•””“–”””””“—’•““““—””˜“““•”š””“’““—›—“••’–••–’”˜““•’–“””——““•“““””“˜˜“”””“•”’”“––”””¦“’“˜š—“”””•—•“”””’–””’“’“’˜•“”••““”“’”™––”•””’””˜’“—•“”‘““”•”•“““““–“–—”“”“’”•’””““”““”“““•“”””““‘„•–œ””””™–•™’•—›””›’“˜–Š™•’•—›••““––œ””–•”•—œ•“‘”“—’”Ž˜–”—”–š˜š™“••””‹“•””™–““”𔓖†šŠ””—˜”•””š”š‘•}”›•—””ž›—”’š•“™…–—”™“’•“›”–“”™˜’‘”“”œ‘”™”™••—š”‹˜š“”’–•™”•”••–”˜””–“˜’–›—’”””Œ””š›˜•“”’–‘——˜–•’›š““˜—”‘–“•“”“–›˜™˜”–—”™”•”›–˜’••“—––’”—˜–˜”””•’•¥•™˜•””“”•ž–—™š–••›‘™–“—˜•’”’——–•˜•——”—’””–™˜“™——“’”•˜—”’–•“–˜–˜’“””—“•”•”š–’˜——––•«•˜–’•”™•’”˜–”˜”‚•Œ–•—•”••—”˜“’–”Ž•–•––™•’—•••”™““—”“”——š—š—•–“••Ž”—˜”™–”š˜–”””–”•˜•‘•——–”œ”””—𛕖–””•’–—––•––”“—’Ž””›’””•–˜•“š™–—“™”–”•”—•™š””•ž“•™–“•˜–”””““ ’“™œ•””–“˜˜Ž—Ž›–“™–˜”ˆ™‘•”œœ–”“–•œš”š•”ž›“”™›–••”–œœ”š•˜š‘”œ™–““””Ÿ•””ž”˜ž”•˜œž’‹”›˜•™‘š“”œ••šœ™”“£š—•™”•˜‘ˆ”•—•”›Š•‘”’”–•”šŒ–™””—”“•”“”–”—Ž™”›˜”‹ —””•”–™”œ•••™”œ”š•”˜ž›ššš’—””œ“šžš—–•Ÿ•“™œš”•™˜‘•™”•œ“”—”’š•™—“˜Ž—””””—™‹”˜“‘“’›™˜˜—””“•‘šŸ“—›“”•Žš˜š‘–‘’”“—˜•—Œ˜š™—•‘–•“𔓔”••“˜’”Œ”˜“•“•‘—”š——”••““—˜‘““‘–”“˜”•—•“™›–š–Œ“’›‘™”“’’‘˜–›“˜‘—–ž•“”—”‘—•Ž“›’–”•“𙓕”’•”•”“–“˜”˜“”’•“–—“–™“Ž”‘•“’“Ž›•“‘•Žœ•––“••’–”‘—›”““•’“”•”—œ“‘“’““˜“’›–•––””“Œ”˜“•’•‘””˜§“˜‘‘’™““““•“—”Ÿ™•”••˜ ”–š–—–—”˜–’š–’›••“™–”””••™””‘“•”›˜••š–’”””––”š•›—Š”•“”–••”•‘”•”˜••••–“•˜™”““Œœ”›”š••Š•’™˜™•™‘–‚•Ž–—‘˜”•›™”š•””•””Ÿ•”›’”™•”›“”–•••––“–•š•”–•••””•—’•”••𔓔•••“”˜š›”•Œ”•”–“”•𔕕•”•˜•••“—”•“™•–””•œ˜š™˜•“—••—•”–”™“”•–Š•••˜‘—•˜••””˜“ª”™š”””“¦œ••œž–‰™“•”‘‘š“”˜œ“”–˜˜“’“—”—–•š¡“”–¢””›”™–•”’—””•¡¥š—•“–“”•””¡–””—”›œ•Ÿ•’¢•••–±™”˜“ž””œ••œŸ›ž‘——‘Ÿ•¢”—•—”š•—¡”“”•““ž—’ ˜•™”” ‘‘•”–”’•›œ—–—‘˜””ž•›•”›”—˜•–”˜•Ÿ“”’ ”Ÿ™˜•“”•›£˜œ£•“•’š•‘’ž“•“•‘’•’ •“›ž•–”“›••š–•™–”˜”•›š˜¡–›‘œ•Ÿ“›  ¤š›”””’›”–“‘š˜”””‘“—˜•“–‹”“–•˜–”ˆ—Ž•˜””ž“‘•”•—”•—‘“”Œ™–’”—•›”•’”—–‘•”–”–ž“•–””›—””•”ž–”•’š“™•‘“¢™–’“–’•—”•’“š”•˜“†””—“’›””—š—™˜–””““’—”’—•š”””‘’””˜”—•š”ž“‹”–•••˜”•‘˜”–’’–””˜””””š••”‘––•–”•“œ˜•’“–•œ••’›•“œ–—”š—”Šš””–•™“š”–˜’˜‘’”•”–• —Ÿ™˜‘š‹–••’‘–˜””•“”””“•“””“•“’™”“”“”–”••”“”Ž”•””““‘”•”Œ•”””’•”“”—–”•“”•””“’“”“–““”•“’””–”•”””–”—”œ”“”“““™””“”“•”“”””“”“˜—“”””“•”•”’”—“’š”””””””””””•“”“•’‘”—•””•“•˜Ž”””š•”’›•Ž“–””‘”””””””•”””””™••”•”””–””“”‘”˜‘””–”Ž“”–Ž“‘–’”””’”“•””””“‘ž–”’“”•””“•“”•—””““”“’”””•—”“”’””˜”””•””–—”’“•••š•“””•’“’“—“””•˜–—–••“–”–•”•Œ””’’“‘”•’–”•—••”™”“—“’””—š””•”’––••””“˜””™“““˜“”””””••”™——–——”•˜“”–”‘–”–”‘”˜”š˜•’š”—“•‘”•˜’”–”’”••–•“˜•”–’•”–™“””•”š“””””“˜•“•“•”“š”””””•“”“”—™™˜•’™”•–”—”•›–”š“’““•š”—“’””•“••””“•“•’•””“š—™”˜–”•”˜–””“”•˜Œ””•””””‘•”“™””‹˜”–”™“”•““—•”““™–””””“™š”•””“”˜”•–”˜—””™–“–”“”˜””–˜””“””•”•”•”™””˜•˜””””‘•••”•”•“”–””•‘“š””–”–”•”””••–—‘–”””””“””•”™”“•””””””˜””–š–”œ™”œ•”“””“š””—””œ–“–”˜“”“•–•’–”“𔕗’”‘”””””•””’•“””“–””™œ”–““””——”–•˜”””””””•—–’™˜”“”“”—“”””•””“—”˜•˜™•š””•–’™š–•™–˜–œ””••™‘‘”’š™”š”™™—™˜˜™”š––”—™‘—“”š—š“•”–”š™›•—˜š˜”“—’””•›”“›””š™–•”““—’˜”“—”•—–”™“••™˜—˜œ“”—˜–”˜•˜”›œ•˜‘–™”š™˜™š˜’•”““››˜”œ”—š’••˜•˜”’œ—š”™›™•𔕙••—”š“•˜“—–•••››•‘””—™’—–”š”œš——•™””˜™—˜–œ“œ•’’𔕙”–—–™—’—”˜““”——’–™——’™—™˜•›œ”“””š“™”›š””””£˜••š“™š•˜”ž”šš“–•““•˜›•••””›–””™•”“ž™“–›•›•”“œš””œ¡––”––”•–””ˆ••”˜”™™•˜–“˜‘”†˜™˜•Ž“•”’”“˜—š••Š™ž•–‘”š–””ž–™™£””•”“¡•• ˆ˜‘•”›•”•”•”•”—Ÿ‘’”›–”±–˜”•••™”™”•”“”¦”˜•”š–——••™‘””“š–™”””•œ””˜—“””›•””––”—˜™”•”˜–•”–•”””œ”•™›˜ž–“”›–™”™›—›”¡”””“’Œ™’œ˜š““–›˜˜–“—™˜˜“˜“›“˜—™–––˜š”‘”˜š˜“›ž”’——”—”œ–—“–ž›”‘–™š”™”“–”““”’”“˜”•˜—–•š˜“˜”˜”•““•“”•“˜—–“œ–’”™•”•ˆ–•“™“•“›—Ž’”•“›’š—•˜““œ’’˜”””•˜“˜‘•••‘””“‘—’–™™“™–•–•“Š”œ—•”˜’™š›“•˜“”•—”¦•™–“–—”“–š““—›”’˜”“–›’”““““—––•—™•’Œ“”™’”“‘“”‹”•––›˜™˜““““•™›Ž•›—”•””™™—–™š”“–•˜•œ•–›•‰˜Ÿ••••““””“’›—”—š””šœ’”––“••”“˜™•š”˜™˜•“š“—•“””˜••”š••˜•––‘›“–’“˜•š–™••’”“—˜˜–˜˜›•”š––”•–”•˜š—–“•••“”œ“•˜š•™””—•”””–”•““šŽˆ“–””—œž”””“•””“““—œ”—”‘””“›™—™˜•’•”•š›””œœ“””›””“˜˜•“›œ•“””›™’’”•’›“•–š“”™””–””“–––””–“’””—ššš“š””“”•˜‹•“•’””“‘’”“¡–™Š¡•œ”—”›™“˜™””’•œ›’”“”‘Ÿ™••”””š™ˆ“”˜‘™‘”’–”‘“—•Ÿ•’‘“˜““””¤“”“š”š“˜–—––”¢•”‘•‘•””›”œ•—’†Ÿ”’˜•“‘’’””’‘“—“”•““•‘’”•Ÿ•“”›’“””““•’”˜œš”šœ”ƒš•“’“’Ÿœ”™””Ÿ“˜”œ””›œ”–š’‘”•˜›“•˜—¡””‘œ’””œ‘”’–—”“™¡“œŸ““•”œ•“•–š“–˜“”š””•”““˜““Ž’™“’‘“”””–’“–™˜’”””œ˜™”“•––”“”›—‘–“›˜™—’•”••–˜”“•”•–—“”•—–“—“•’•””—•”’“’˜“–––—––”””™•””“”—’”˜š’˜——’’™”—š––—•Ÿ”•™™‘“”“–”“—’”‘—”–———˜’˜•—”Ÿ”—˜—•š—”———–”—”’”•—”—””“‘”Ž•’“–•”˜š•˜••“–”•”–“•“˜“—•“—’“””š—“–•–•””•”––”“•“””—’•—”“š—••”•š’“–˜–”—–“”••—–˜—‘•”••–•––š–”””’•“–Ž”›’•”””•—•—’•’—“˜”••”–¡–“”–”——–””“•’”•‘“•”•’™•••••–”‘—“”••—”Ž”’”‘—“”””œ•””•”—–‘–“’’ˆ”“•™“•’”Ž”’”•••–𣓒“›•’—’”””•”ˆ“””–’™––—“”–””–™•””•”–”’•”””‘“•›‘”“”•™—š””””•“”””“–•”•™–š–”˜”””•“˜‘–””–——‘”––’”•“–”•”“—š”””“”’—•’–’‘“•”’’“’‘’—“‘–““‘—”””“–•’†–œœ••”•¡œ˜––˜–š•œ•š”ŽŸ•œš—–”‘Ÿ—•––••¡•”œ–”œ•›”——”•š—”–•žŸ‘–•“”‘—””•••”Ÿ”‘›•˜•––‚•“––‘˜™–••’Ÿ›Œ–¤’œ‡•”•—‡’—”–𙕙”•–•––œ”•¡™”›•”ž––•”•”••—›–œ’•““•¡š”––•——•—••˜—””™•–š˜˜š–—Ž””•ž– —œ“•”•˜•••›••••–•––”‘œ••••”—˜š›––”••”””™‘’“Œ”–—Œ›•—Ÿœ•ž”””˜••œ˜”•𔕗”””—””•’”𔛔𔔙Е”—›•”•™œ–—–”–”””•”•”‘ž••’•””—”””•š””–˜—”••–“””Ÿš”•””•”—•—•”•—•–¡•™”™”˜•›•••””•š•”š”••“•—”–””–”Œ”•”˜™””›•’””•””š˜˜”—”•˜–•–”’™•–”‘”’”›˜”•”•’œ•””””“—”•”•”””™“•”•–••••”“œšš”––•”••š•”œ˜•–•••“”š”—”–•””–“šš”•••”•–••–™””—””””‹”””•–”Œ–•–”“”—›––—–—˜”™—™’™›——•—š•š—–””—•“”ž•”œ›’•›šŽ˜•“‘™•““•™–——”–—”““”””“””–—•—’š“š”•˜•”“›š“”‹”–›œ’“–——Ž”‘“—–˜“Ž’”Ž•ˆ—š“˜›™“–™‰—˜”“—™•‘“’“““•–‘˜‘˜“””›“‘–—›“““”˜–”“•”’–“”—–˜˜—“•““•—š“’œ˜™”•”™‘’š•”“””˜”•’”—š‘“—“””•“”˜“““““•“š–•‘”›•“™”™™š“–”““”–•Ÿ“œ•—””“–šœ—œ•”˜—™—–•Ÿ˜–£”‘”•—–““”•™•”•••””›–•›–“™’”–—–”˜—˜•™™‘“““–””ˆ”””•”Œ•”‹™–Œ•™–’š•–“””“”•–•›„˜–‘•™•’šœŸ”™š”–Œ“–•—”›•”•–›–””›——“”•”—•–˜’˜’•™••‚—•”—š•–”•š“—”œ”—•’š–¡’‘—””Ž™‘–š¢”˜–•”—Žš””™˜–––”¡”“—“”—”˜•˜›™“”“›”Ÿ”•’‘‘Œ”™†•–•—“•”™”””–•”š›–””’——”™•—™œ•‘š–˜˜—Š™”™“–””•’œ—ž”™ —”–™‘˜˜ž–™”› –”›–›ž”š”˜””•”””“””˜”—™”–’“›™˜™•“š––—™•ž”—˜š•‰™”—›š•’‘—””›’“›–—•”••™ž‘ž—“–—”˜–™•”“ž™š›—’›™••“•–’“•˜›˜”– š—‘”˜”‘—”›™”“˜–”–””––¥—œ’‘š”•œ•šš—–•𔡕•”•œ“•—•š—™”•™–“•›”“””‘™˜™—–• ’”˜˜™•œ”””””š›—•“˜””””–œ—”–š™’’–’”˜•˜˜•™™›””•˜•”””••–›”‘–”“™””’••›”””—˜”˜”š’—•”š™—•’””••””–”‘•˜””–𔓗‹“•›••”•”™—–˜š”†’œ”••–“–•˜””š—•“›–”•””’•”—˜Ž—•”˜””””””—•‘˜˜˜’”˜–•™’”””””š”™•”žœ”–”—•”ž‘œ–––”—•””™”Ž ™•–”””““”—“—•”™•”•šš”ž•”–”•–œ™•—™”Ž”””›”•“œš—›”Œ”‘•”•’𔕔”•˜• ®–‘•“””“’•“•’•–‹““‘——›“•’“–˜•’—’’‘—••—•’”–••’’–™œ›––”’—“•‘•’—–™’•“””ž”””•”•‘“”““““™¡˜‹”‘”–™•£”—““‰š€•—‘—’– ‘Ž”™–’’ž•—”“•’š“™“–“”Ž•˜””•”˜”—–“–—”•›’”’•™”“œ’›’”“”•””••Ž’’–‘™š”’™’“•’”“‘’”–”’‘””•’˜““›••’”—“™“——‘˜“˜”’–’••™””—””’”•’Š””•—“œ“–˜“““‘“—𔓗˜•’“–”š•“™–––˜™’•–‘’–””’š“Ÿ’•“˜˜–•™™“–—“••š”™“š—“•–˜—•—““–“”“œ“š—•˜•‘“•˜“–—“•˜———”¦“•™””””Ž“šœ•””œ“‘“”š””““”–”“˜—“•“’–’“‘”—•“•”–”’˜•œ˜••–“ž—œ’“““’š“˜•“—š“™“—”•“•“‘—˜”—•““”‘‘–—š“’“™“–•””“••–“”““˜•”““’Ÿ“•™•–”–““’“—••’—”—’•–•š•–”•“““’”’‘”›š”“•™–ž˜œš•‰–”˜˜‘Œ•˜—Ž’•–›”–œ—•–‘™š•”¤””“•˜’’šŽ—”””˜›“•˜œ–”–•—”“””””“š”Ÿœ–“’“’’™˜•œ‘‘Œ”””•’š˜ž‡ŸŽ•›““•—›”—™˜’’™••”˜‘Ÿ˜–—œ’’’”–š–˜”˜”–˜“–›•£“›˜”““œž’’”“›š””““”𔋖“–ž•“•”•—žŸ––š“˜›•–”š““—£—™’™“’š•”“”—œœœ“—“›”–””“’‘œŒ—› ˜›š–Ž“™”””’‘Ž˜–š•–””“ž–š›˜—–Š˜“•“‘‹”•œ•“‘˜”–š’‘’––•”••™–”’š——’™–•”˜–•–˜™œ˜˜–••–•””˜Ž””˜”–˜––Œ•š”–•–Ÿ“–’“š˜••”—›”›–—…”——–•‘–“—”—˜””˜‹™”œ“™œ˜“””—“‘–”‘”˜˜•“—“••‘’”•’—“˜‘–˜”‘˜—”—”•”•’•—––••›”•””•“™•𔕑ޗ˜š–˜“”–•‘š–›”“š‘•“’’˜™˜“›•›•’’“”—˜˜’——™“š™”›™˜”˜””‘–š˜’•”–•”””š’•‘•”˜˜–••›••˜•–™•”““—”–•””•’”—™“”’›”•—š”’–”•˜˜””•˜š•••””™•”””••””–”–˜••”’š‘• “••••–˜•”“•—–˜•–––” •–•”˜–”””—˜—𔕕••–š”–™—‘”•”š––•”–”“•“—‹–”•”””’”š••–•’””˜”•“•”’”–••“›“—˜˜•””””–›“”™š”••––”••˜—••““–•‘”•–’”–••’˜˜—•“’–”””•˜–˜˜—Ž––—“•˜˜š›”—”•”•—•‚“˜™š””™’šŸ—œ—”›”–˜‘Œ––•”™•œ”˜ž’•™”˜”—“š˜”’”–“–š”›˜—””–•”™˜–—•œ”š—•”””’•”“—”–™œ˜˜—“š™™˜›šš–•“”‡“••›˜™™••“š—›•••”—”•™ž™’”›•™”“›–—”“”–“–™—”™”œ—›”›•˜”––”‘™—“˜•—›œ”—”—˜š””““™”˜—š•—–””“””˜™“š–™••—›–™™–”–•™–—ž˜•™–•”™”š”œ••—•—”“™””››™œ™šš¬‘šœ˜™•œ—”””œ”“Œ™›‘”””’”››•—•’–—•–š—•™—–™Œ““˜•™™œ’—•”˜–””•“•——›——”š˜Œ”—““˜šœ—•›™š””˜š””•”‘—‘•”˜•š‚’“—•œ•”‘““–˜•—“‘—ˆœŠ•’‹’”ž“—˜“‰”™”š›˜•——•’‘””šž˜”˜””˜’“•’˜––›”‡™“”™š‘”‘”‘““–”Œ””•–—••””¡“”””•“˜•’‘˜“•”–—˜–”””—˜š•˜”˜™–•˜”’’–”“•”œ ”“’’’”““”š‘‘–™™•“š•””’•˜™”ª‘•”””“”Ÿ”“••˜•˜””šŽ•˜‘’•”’›™•””••‘˜”¡’””‘“›•œ–•–”••˜•›•Ÿ£••–˜••—””¦”””—”˜•”˜“”•vŸ¢–••£••š”™™’˜™•›•’–“–”¥˜“””’œ——•“•”•••”‘Ÿ˜˜””–•••”””œ•–““™•›¡”–ˆ¢”””••••••–Ÿ”“”™•–”’‘™˜ ”—™”•‘”““£•”•›“•˜š””•’—”•˜•”‘˜œ•””“‘œŸšŽ•™“•’œ””˜•–“–™•¢šŒ••–“–˜””•”—Œ’”–—–”””œ–•’”˜Ž˜—˜”“••Š•”’’›••”’“••—’–”“”›™””—˜“˜“—’•”–“’“••˜–‘•’œ—––””””””œš—’’–“—“’–•’’“•Ž•”—š•Š–¥”†•‰•–”””“—•—”‘—’•’“¡—–šš•••”œ••–”””–—•—›˜––𕍖••˜™‘””˜“˜’”””–””—’˜”’’˜“””ˆ™œš—”…”•š”–“˜–••‘š“•—”ˆ––•“”š‘–“•“’–‘””Ž”•––››š’—–›”—™—˜•“‘”•——’“œ”“””•–•š“›””™—–‘——Ž“—“”š———‘”—™—”œ™—“–›—‘–‘–“””––”–—™’‘˜“•‘—””Œ“””Ÿ””™’–’“™‘Œ““‘’‘–Ž”˜”—›™”‘“˜—ž’™”•’”–˜”‹–šŽ–•–•—“š’–—™•——””ž•“””•“•”—™–•’’”’–›•“—œ—””‘˜˜”‘”˜““’˜—–•˜”••””˜˜™“›–”™”•”—˜˜“•”˜—’’•’”•™‘•—•••”–˜—‘•Œ”‘“”••˜™–““•”™›š˜Ž•”””“•—š—œ˜š••••–ž¢”•˜‘›‘š–••”•˜—š“——˜”–š–”™™•›“”•–•”™”•’•œ••˜˜•œ˜˜˜–—™–˜–••œ™••˜•—š–•›˜•—™›–——˜›—𔕒”–”•™—˜‹•™’˜’•”𙕕𛖔–“•œ• ’›•——–𗔗𙓕—•—“™™™™•”——”“”˜–›–’™Ÿ•˜•—•˜•–•”‘“š™”˜šž”˜••‘——›”–”™“”œš”––˜•—š™–”—–›”•••™›—˜œ—š——”••••˜™••™˜— •“™™••“˜•••”–“’™•”–’””’˜•••—’‘’”•“”“•Œ”›’•Ž“•––™–’’””–”””’”‘“–—“””˜”–””’”“–—“’—™’•””¢•”““”›”•“’”••¤’œ’’”—•”¨“”’“•’’Ž”’—””“•““””“•“¦”–”˜—”–••˜“””™”–”’”“•’–”“—–•”••’’”–“””š•–’”•”Ž–”“—”••›•”•–”˜—•˜“’”“˜”’””–––’—“‘’˜”™”“•““””“––”‘“””–•—™–“ŠŸ“•–”““–””••••““”•–””“““˜”’šœš–˜–•˜ž”’Ž˜””—‘˜œ’••“––•””””•–•’˜˜•”““—••”—“’œ™–“’”•’””••“““”’•’———”š—•Ÿ“•›–“”•‘”–“–”›–©•’‘•—”—“™””“””˜••–“””‘–“’Ÿ•™“”–‘•”™”–—–”˜–•“–˜•–‘”“™ ”™–‘–“”˜”–••ž—“™“””˜””–““–‘’™“•“—”’•––”•—––—–”’›™”“–”••••”™•—”–”œ”–”“’‘–—”˜‘•—‘™””’”•“““’”“”’“‘““““–’•“—•‘––””“”’•””–•–“‘––”“””‘—“””“’•–“•““••”“••’••““’—’˜““˜—”“””‘•”–”””–‘“““Ž’—“”””“““““—’—’’‘–•””–”’”‘“’•“Š”•””—’–•’•’•“””•–•”•””•”“–”–•”–“‚•‘““•––”•––”’“““•˜””””•”—’“–”•””“‘–•”•”•’–“–•“•”””•””“••’”—“•“”“–“••‘““”“”’‘‘”“—•““““’’–“”““““ƒ’’˜““’’‘•˜’“–—‘Ž’“‹’••’””•—’“‘˜’“˜›‘–”‘•”•Ž’’•˜˜™”Œ‘”––•Ž”—’•˜••””’•”“‘”’–’”’‘‘– —˜˜””Ž””‘“•‘“’•”©”—”‘””’“’”—–’’’–”˜“˜’‘•“““••Ž””””–”””“–•”š“’˜‘“—”—‘𔕕“—˜”“”•š•–““““—‘˜”””Œ˜”•’’•••“‘”“’••”“‘’”“””•“–”“”“”’–‘“—”—˜”–”“’˜•””’“”𥓙𔓓“œ”™“—™‰“”—“œ’š–’‹š–”’’”“““““™™”—’”’•™›“›“–—“’™˜“˜“”•–“”›”Ž”’““”“”“““œ–”™”˜’œ“–™Œ™””’œ”•š“–’”—œ“Ÿ™›•”œ“”š“’“”š”–—Š—“”““›“““˜œ•”’˜“““”““™“–š—™ž“™—”™™”““““”–“—““‘š“–“š““•“š˜™š“–™“•›˜”“”™•“’“”’“ˆ–•”“–š““•š“—”•“““”Ÿ•”Ÿ•”Ž–““–““Ž–•”˜–”—£–“”˜”—“™““”••𢔕—••”••“”•—–˜{š•”•˜” ”•Ž”—••”’•••”•–””–•””—š’”™Ÿ•–”••••”•’“ž”•”™–•••• ••”—•š–•—”™—“•œ›•”•””•”“—•”Ž–j “Ž•••——–“””’•••™’••””“••”œ–Ÿ•””•••”–”•”›šŸ˜”˜‘–—‘••––œ”•”“•”””œ•–••——”•—œ•˜—”–™••–”“—”•––••–”—••Ž“•”• ””ž”•••”–˜•žš•—£•”™”•–˜Ž––’––‹”•—•–•”“”•–•–˜•””“™˜Ž‘ ”‘”‘’–•˜˜Ž““—˜‘ŸŽ”™˜Ÿ•“”–””“˜“–‘’—”Ž—”–›•”—›“—””™“””Ž˜”“•”˜”˜š›•‘–”—““““—”‘”£““•“•• ™“œ–™”’–˜“”—™Ž•‘’“—”ž•ž—“’Œ“•”ž’–”™”’š””“˜”•–•“Š—••›šŸ‘•””“—–”–”š””‘•‘”Ž›’’”””“‰”“•˜šž””–—“’”𔓙™”““”’•œ”“—’’—––™Ž””•’“—–“˜£’™š™’•““™”““•––“•–˜””–•–”™˜–˜’—‘–”˜“›“Ž”˜“—•–•Ÿ™˜–”“’”ž••”™”˜”•›“—””“œ”––••œ”›—›–’•””–””—”›–›™™–•—–¢–˜‘—™—˜”“”›—”“›œ”™‘ž—™••™–š”š–••••–••’‘š“•“˜””—˜—˜”›”—“–”—’——“”•–Ÿž––œ”˜——˜”—”•—”—•”–›—›”œ”•š‘‘’–•š˜•›˜–‘˜•””••ž—›”–•’”—””–˜–›–˜’–—”””•———–›–”œ—““š“š–“”•”•”™‘•œ•”””•—•›’˜”˜••˜•—–•šš–””—™”••””–“”“˜””—•”•–”•”•””›•”’•‘š–•™–•“”””••””••š–›•™••™š’•˜––•›”–“™––œ”—•œ•––’“”–˜˜œ’”••••”••“””š””™”••”–”–•˜™š˜—•™˜•“˜”••”˜“”™”•”Ž”’”—••—•“˜“”•”””––‘™’•“”••‘•”‘•™••“••›”˜™““”•ž—˜“•˜•’™•”–”””•’’š•••œ”••”˜””Ž””–”™”‘•–”””““•Ž‹”•‘›š“›’š“”“’–”•’‘––•••”—˜”“Ž•“‘–’””’–“—“•˜““•–˜”˜•–‘•“““•”““‘”—•””—˜–•‘•Š““‘’˜—”‘“–’“‘’”˜–š”’’•›Ž–“–’Œ”“’‘•“””••”’™”““—“–—”•“••“•˜˜˜”™›“”“–•”•Ÿ“ –•‘”“™”–’•™•‘—‘••”“”’–”‘“Œ•”•–’”“““•š“”•–“—–“–“•˜’˜”˜–”—”™“’˜˜š”›•”—“”™’““˜“”“˜’”†•š”—“”Žš—“’—’–““’—”ŸŽ”—–™™““““–™•’“•—’™•”’’’˜—’”‘“›•““˜””–‘”™—™‘““¢•”“—”—•”’‰’𙕒’’˜–™›”–““––˜‘™œŽœš•—””•“˜“˜‘•–”–”•—’“•“œ’–‘““•–“—““˜œ”›”–’”’œ–•–•™–•’““•˜——““‘““”™˜“—”–“’“”’“—“—“”•—–•“•˜“•”˜™˜™•“““‹•“•“”™—˜˜•“—•œ™“‘““–—–˜–—˜”‘”“–•–•’“““‘Ž•“‘Œ˜””˜•‘’—š‘“˜’•”‘––”“‘“˜™’‘”‘—’—””’””’•˜˜––›”š””‘’””—““•—”“—““””Ž•””•”‘™‘›–‘–Œ—›”–”‘”¢••“‘‘˜’ –‘•˜”–š’”•‘’“Œ“•”“”›•‘•“’•”–”—””˜˜‘•“—“’••˜’•”‘“‘“”Ž’”’””•”—–”•’‘’“—‘”•—”•’•–“–—••’‘•”—‘’•–“—•œ’•”•””“’‘“•‘”›””“‘’–’–••”’““’•‘”””“”“•””–•””‘™•–‘’–•”˜–˜’–’”—•––‘”—–š•“™—”””—•”—™•’—•ž”“”––””•˜˜–”•–”–‘•””‘’””˜”•—‘•’•—““‘’’“‘—›”˜””—™–““’•–‘›•”‘“•’”›—–”•—’”••—™‘˜“”—””—‘”›””–š••”–”—“‘”–—–“™˜–˜•””œ˜“””˜”•–••—˜˜–—‘•“”””™“”˜—“𔓗•—”—–”—“–Ž›•‘”–˜–•–““•”–•—š’‘“•“””˜’—““‘ Ž•”•˜—–˜—”””•—œ—•™™–””•œ•ž–—˜“••›–˜”–›•’™˜––””—”••””˜””›—””“œ’–•™”–”””™˜”•™ž˜—•™š“–—””–•””–”š›–˜”—š––“™œœ•™–œ–”˜•—“— ”–™”›•—›”š””Ÿ™–›–”—•–•š•–••–˜–”–•••”•”™•˜šš’•›—”™œ™••••™””•”–•›”™”˜•”—ž—–𛕕–””˜œ¤”™œ”–•œ•–ž—–””™š–•˜’•’—˜“••™™™Ÿ––—˜“”–”•™˜š›˜™—“œ”–™œ™˜”¢””•““–—”——™”””•–™”–•—–””–••”“˜—•–š”–”—’–”˜“›–“”™”•”–”’–––˜”””—“˜•˜—˜••˜••——“•””Ž•””•”••”••“••’—”–š–•‘”’”•“–”——’˜“™“™”–—•“”•›˜‘•’–’”–”—˜”’—––””–•••”—”•™“š’—”–—–••”™”—˜—”˜”˜”—’—”–”•™•“•“•—›””•””–”•“”•“––š–•’“—•”›•—––”—”˜””•—””š–—š•–’”””™””—“‘”˜”‘œœ˜–—•—”––”””•“—ƒ˜””’““““’’—Ž‘”™”“”Ž”‘“–‹”’—””“”–”’šš”“””“•”’’—”’”™•—“’“”““˜•““–˜“—˜™““““””“•‘’”““•š”–š””•—”˜”–””’“’”“‘˜“˜•‘“‘—–“”—“’’“—”™”™š”™””“”‘””’“•”‘““—”’”““—•˜’¥’‘‘’Ž•’–”–œ”•“”–“—“•“““–”””’”“•”“•““’–”Žš“““”—“”“𔑑•”“”‘“••–“•“š–‘”“–“‘‘•–“–”•“’–““““š“”“””˜”‹”˜˜””””–—™”–—˜•›•—”š””™”œ–”“”š—”””””œ—”“–”“•œ™”“—”——”“š–”—”˜—•””–˜“•“””ˆ”””œ”š–”–•“——”””’–•’””””–”—•”˜“” —•”’”–••”””˜–”›–‘””””—””š™”œ””™””””””–”š™™œ”–•ª••””””𔕔”œ˜““”˜””™˜–”™›”“•”–—–˜“˜š”””™””’——””›—””’‘”œ”””””›”—œ™””””—””’˜™—•›”‘‘“”–—–”“™”””•’™–—“•”•”˜—––ž‘Å–•’•˜–‘˜–£˜¢–“˜–”“”•••”‘”——“”—›–š•š–”•”•”—•š•–—•”ž•–“””‡””””™“’“™š–ž•†™–—“–•‚•œ˜™–š•µŒ–•–ˆ—–“•”™•–’—’—–”––™•”—Ž˜˜•””••”””–––™–“”–™¢•±›“””””š””••˜—”Ž”™””’š•˜™”•œ‘””—˜”§š™Ž••”•—“•‘”•œž•–‚•——“”””•™”•™’”˜Œ”•˜”“—™ª¢—–‘¡–—˜˜–—”“””“–•••“˜˜””“”———š“™’–––˜•§–‘•™“”—••”–•–””““—”–˜––—’™”–””˜“”Ž—“’“˜™’““’’””™–•”’”““—™‘•“˜•˜œ”•’Ž–•š””—•–™§•–—’”“‘’”–Ž–—––•–’’˜˜“—”“””’–•™”™”™”••••”––”’˜“•—•—““”—”•‘”•”›”’‘“‘’’–‘•””š™”“‘–“—™—’”•”•”•–˜—•–”Ž••˜”•“‘’—•”˜–““””Ž˜’“˜–•—“•”“•”””“•‘—šš”””“”–’•–’”•”š“›”—‘“”•–•–––‘“••’˜˜–•“””‘‘“”“”–‘“””—“›–‘”–•“““•••”‘•”““–—”“””“Ž“’“”•”Ž”˜””–›–•”‘”“““”•’“–™”“•”’””‘”—›”š’•”—œ“““’Œ“•–”“——“”‘”•˜”•–’“•”—“™•’””˜“•“”•™•”–”“”’‘”•–•”“••–•“”“”“•””’˜™•’’˜”“—”˜””–˜•“”˜••”š”–”•””’–’™“•””’•”’•“–‘’”–‘“‘“¢‘””“——•’™“•˜””–—–™”––¥–––•”˜’’“•”™•–•™™—›š“””––””“”––”—–—’•’•‘•˜™’•˜™˜–”›—••Š••”’•š•–’˜—“•šœ–—‘’œ”œ•x”–”•˜–™—––“–”–—””•”˜™—™—‹–œ•Ÿœ•–••Œ–•””—šš–•’”š™–”˜“—›•™”˜—•–™›œ–”••›œ“˜”—”–™“™’›–””™–™”•’”•ž˜”•™’•’–¡“•—•™—˜™›””™––”–••’—––“™’”•”••”–—•š˜—žš“•œ”“•”™–•”•”•š£”šž””““›™ž”— •ž•”™”—“—›”“” ”””””Ÿ•”–˜•“ž“”—–”‘”””ž˜”•œ–›••œ–”•Ž””“”””›”˜ž”Ÿ•—š›”¡•˜””“”••Š”—•Ÿ”•–™””™“•™“‘””œ˜›Š’”•””ž””Ÿ•ž”“œ“”•”“”™”™œ’ Ÿ”˜–•€¢•””””ž™”š”””˜”›”›”“› œž˜ ”“—””˜£ªœž˜”””œ””’ž™””¢š“•——”–¥•”””•Ÿ˜œ›••™••š”””™š’””‹””š—œ—ž”””•—•–•˜™””””Ÿ•™”’˜œ™•”œ”•œ”Ÿ›˜•”–œš”•”””œ˜“žœ””—•”›—”—–””ž›”•”šž˜””˜œ•–’””•””›”šœ•›••››”–˜„••””ž”•Œ“™ššš—”Œš’˜”–•“™”Œ””˜˜•™’”•”•œ””™“‘ž”“™••””””›”œ•™‘”›š”–››””•”ž””–””•™”””œ””•›•ššž”•™””šž‘”™‰””•œ”””œ–””˜—””™‘”’™“”•”–™˜š›š”–’””•””šœ›˜—“•˜‘”˜Ÿ›ž”œ”””•“Ž’•™••””•œ˜”•š™—›˜••”–•›”–•–””–š•••••—•••œ•”š˜‘•ž’•–•••˜–•‘•™™š•–”–”••”–••—•••˜––›“•„•™“•—•’–•••™˜œ–˜”ž—•”˜•”Š’—••”––”–‘••”•š••›™–—•”𔕕•••‘•—’˜–—•‘•“–‘••””˜–•—–”˜“”•›”–”™‘›”‘•–•”•™œ˜ž—™—•••—”•–˜˜•”˜‘••˜—”œš—••”—“’—’˜–”•–•‘••˜“”•••“••šœ—›•š••–”“ž§”›ž•”””––˜•›• ‹š•–”Ÿ”šž“ºž’•”‘ž™”””””£š”™™•”™‰•“›•–˜”” œ•—•—™••—™Ž”•””‹”””›”—š”ž•™˜›•°™žœ•™•–•”…”™–˜™˜•‰•˜–™“–˜’”–—”–žŽ’•”•”š•”˜’›¡–“˜””•”””—•“¦’£§”Ÿ”•˜˜˜”•””£“”𔕖•””ž””˜š˜–˜ž””œ”—¦›——–œ—””””•‘˜–”•˜š••›¢”•š••••‘ ˜˜› •”•“”•’—“–™™•š’“•™™˜•”””•“”“”“š••“”‘’–—”“—”›•–“–”•’•••—–—••š•‘’•“—–”””•“•“‘””’•–—“–””“•••”’”“””˜””“”””“–”“”–”’•••“––•””˜’”’”‰–”•—““– “–’”“’’–—“–•š––ƒ–’”‘‘–•“•™––““˜‘–”“–“–•‘˜••”“–—•’“’’••—–”–•”–“””’—•‘”’––š–‘“•“’‘›“”“‘•—••’”•”–˜˜”“•—“—–“”“—˜˜“–”’—’““•““‘“•—–••“’’““•””“‘““—–—™˜•–‘”””“”—‘•‘™’‘•–’“š“”–’˜”–––š’•””•””–”•–“”•‘—“—–’—”••“”–“‘““•”–˜˜“”””””–”•”•“œ‘”™”“—––”••“”•””’•–“Ž“‘—“”™šš‘”•”––“¯•””“–•–””Ÿ›™“”‘•—’””“–”™•‘–•”•”””•””“••–”’˜“””“‘”’””•”–‘•™•–“”•™“•“‘’•”“•“•”•’”””‘““”••”•—•”“”–™–—”•Ž¡–”–”–‘•“‘•–”›–““••““”””•”””–•“‘””•••––••’“–‘““š““ƒ’“•–•“””•“”“”““””“–›–“’’’””’•”•’”••‘‘”‘˜•””Œ“””˜”“”–•š“•“”–• “—”–’”‘””–‘•—˜ª“””–“–”—•—””””––›–“”’–““•–”—””‘••‘”–””’““”’–‘””™“•”–‘•”‘’“–””””–”’‘–’“•–•”””•“”’‘•š“’“’•”•”—”’‘•”’””’”••“”•••—“”š”’”““‘”‘“—–•“’–”–Œ”””–™Ž”™˜›–””–œ˜—“—˜•Ž™›™“ž”—›–’š˜‘“”š•š›“˜ž”Ÿš—“™›“—”›—˜”™—”™˜–žœ››™™—›’””•˜”“™”™š—š“”™— ˜’—–˜›Ÿ™””–—››––Š••™••Œ—“—“‘š—œ–˜––”‘š¡ššš‘š˜“™–™”—”’“¡–šŒ™š•“Ž–™”–›š™””——›“˜”Ÿ”–˜“—š˜–š’–•””‘œ”’š—–—•œ˜”œ“–•”šœ˜–™–‘”“›“’œ•š™–—˜œš‘’”š“”–˜™›˜šœ–””š˜›™ž”œ”””“•”•“—•”••••––“——”¢••–•••”–•™•—“–•—•”””’””“•––••–”—”–”””“•••””–””—”““––•”–••–”••–•–––““”–”’“”•””•“—’•‘•———–—– —––•”••’–”•“––”–•–“•““–••–œ—•••••””•••–”•–””˜”“”•œ•˜•”•—––••’–•—•’••••”–––•–’•–•••–•—˜•“”––”•”•–˜•••—”””••–••”••“•—•”””˜“•••––”—––”•˜™—””•––“•••””˜Ÿ •Ÿ›””””›”œ“”—œ‹œ—ž“—•“—”—–””“”˜œ”””–•˜œ”¤—””š›–“œ––˜•”•œ›”›”•ž”••œŸ˜••””ž”•”™”š ”š”œ”˜””š•š•‘•ž•”•˜œ—Ÿ””…š”–•—•“œ’”•š–—™–””•””•”›”›•”—””•”“”œ•™ššœš•œ™”ˆ—›””“•š™”›–”šš”—”˜•”™š›š—””•™Ÿž’˜™””“ “••š—•”™š’•š“”™”–””š˜š¢›™•’—•”–””›š™šš˜”˜›•”›šœ––¡””“”’Ÿ’˜ž—••–š—–šœ”ˆ›“Ÿ’™—’˜’›™—”™“—™•‘–”•š’•˜˜””™—”•–––”–”•¡••––•—–”••œ˜–•””Ÿ˜””’”›š”˜Ÿ“𙤛¤’”‘’–’”§””–•—š“{•••Ÿ––Ÿ–“”—”—“˜“—””‘”—š•••”•’””š””——œ˜Œ‘››”v •••Ž˜›”œ“‘’–”˜”•“•œ›—–˜›–ž”–“™˜—›‹““•˜•’–›••“›››’—‹•—–––š•š™———””œ“•—•–•–™™•’”°”••˜˜•’–””“’‘”Š”“‘—“““““’”‘“’””“‘’Ž‘’’’•”’’’‘–•–““”““•”’“ž“’’—“•“”’““’–”’‘š˜’’—’š“”‘”“’”‘“‘“‘““‘——“™“–’’’•”™““’”’“–š•‘••“•’“•’”–’“Ž’—–š”›’“–““š“””””“’–”””“˜”‘•”•’“”“©“‘“—“””””“•–”‘“‘”“”””““•““–”“””“•“‘‘”’–“”“•—“”–”–‘“™—”–“‘““”•“”“’’““˜•”’“‘”•‘‘“‘’“—™’“™•“““—“”“”’”š~š‘“”““–“‘˜“”Š’˜“”“™’”–“–“’““Ž“–™–•‘”‘“–”•““–˜‘—“—’“‘•Ž”˜“‘’–—•“““““”“‘—’˜‘“‹‘’‘š“”““•’‘¤““–””‘““Ž”’”“‘Š”—”˜˜™“¢’’•“’‘˜”“”“˜”“‘“•™“–“‹™‘“•’˜““›—”““’˜“’‘“‘‘‘•˜“““’“Ž’˜—’•š“‘“”–’”“œ‘Ž••‘“•˜“’“‘’’‘•”‘“’’•‘•““ž˜“˜‘‘“‘˜Ž““’–“’Ÿ™™˜‘““”š™Ž—•‘—”–”’š’•”ž–—šŽ•™™’•˜’˜““˜––”—’’–™Œ”—“ž’˜”–•™•‹•‘––“““˜“”“š“™—’”–˜“¡—”›–––” ’“–—•–‹‹™”™’•”“–•”•••••”‘“”Ž™““˜—–•“–‹—˜”—”•š–’‘–“””Ž’“”Ž”™“—™‘š“’“—•––‘——”“““—•›“’•”—–œ“•”’”™——–“˜’—˜–“““—“™‘˜š”‘ž“’”šŒ‘“‘„€““–••”““‘––Ž––œ“””’““”—“‘ž••“”Š™“«˜£”“•™œ–•–•”™—”—™•”—š™’––•””˜™”””—•Ž•–˜¤“—–””u—””–”¢•”——™“—•”“§’“¤—•—”š”›—œŒ””’š—•’•”’–”˜“”–”q’—••–””—–Š—š“”™–••”˜” •”œ•˜“““”·˜“”––“›“”–“‡•”›”š“—–‘“š”–˜–””••œ™••–œ’•–˜•”“ —“™Š”Œ–•”–”•™™•“•—•—“‘”•—¡œ›¡”•“€›—ž–˜——”””””’”‘•“””’‘‘—‘•’–”•–““Ž“’””•’”•—•””“””’–“••”‘•”“–““”’’‘’••“““‘’•““‘•““•””•”“•••“—“Ž”––’””’”’’•“˜“Œ“‘•”“”’‘”–‘“‘•ž–””•’’”˜‘‘–’”“™’””š““””•’‘“–’‘”˜—•–””’“‹“““”•™””–•’˜—””•’““”—•“˜““’“••””“™’’’“™““”™““‘’”““–œ”“““””Š’‘“›‰”•’’““™”””˜••œ›–•–““’˜–“‘—”—”—–•• •––”–™š’•”•™š•›—”“”–“•“—”‰œ•“š–“œ”•“–™•’•œ›”””–’””›”“–”•”˜”š“”—›˜‘‹“’››•ž”˜’“’““™–…•”˜—•’˜•””—•—ž–Š•˜”—–—š“‹’—””’”ž”™””œ’—’–˜›‘’”‡”““˜˜”“™”˜š™“•“˜”–š””‘“••––”“”•—”“’–”™›—–•–™’”•”˜”–—›‘˜’’—“”œ”˜–™–—’ž“˜“––•Ž”—’”•–˜““’•“”“”••‘“˜”•˜””˜—“““”“š—˜˜–”•—›•– “––”—˜“•”˜–”“”–——”—”“˜˜™—™š”—–˜”–—”—––”’•—””˜“•”–””–˜•–’‘”–™™••’•”••”š”––›•›šŽ •”•”–š“•––“••›”•”—˜˜˜—˜œ–••”˜–”™••””™””‘••˜–“”𔓕”—–”™š•—”š”˜—”—”’—•—“•—””•—”Ž’”•™–—–•˜”—’•–”‘–š—‘”“–‘•—”’’”™—•–”˜–•—“•˜•—–•––¡‘”˜˜—••™””’™’›£š––””——‘‘˜”“™š–——•šš“˜š˜˜•šž“”“––“–•˜’”˜–””–˜™‘š•“‘”“›–”‘”“’•—”—˜–‘”””””‘”–”›™™””™™Ÿ•Š’”“—•–”š“—“—“˜–Ÿ›˜’–•’”™–’••“˜”™—’˜š”‹–’”—™˜—”–”—–”˜–š”˜™›“œ•”•”™œš”˜––•”™”——˜—˜“”˜š™’—””˜™“‘•–—˜˜•’™–—’””–”œ•–”Ž”•”–””—’›””‘’”““”’——”•’™¦•–™”™—™”š””“—“•”˜”“–””•“””•““”•–”“”””““”””•••””ž–’š””””””–•””•—”•””’”””•”˜“”•”š””––˜””–”•””•””“”—•“”›•”’”–““”š••••”””•™—”””“”•𔕓”“”›”‘”š•—’””“”–•”•””•–’”–””‘””•”—”••“–”“”™“•”••“—”•””•””’”””””“”œ––”•“”••””“”‘“”––”””•““”˜•”–”“””•‘••““”””—–›–”“”””“”“””™˜•”“””””Œ“””••™‘{–“˜•””•™™“•’˜”‹‘–œ•¡•™—•„šš••”–••••––˜•”•™••œ–”œ•˜–”•”£”––™š—••›˜–——””™–•”¢”ž—•š•˜šŸ•¯™•••—•›–•¥”˜œ‘–™••š™Ÿ•š”“™œ–”•’’——“™••••Ž••–‘•••”–””•”•”—–—˜š™“–––•©–ž”•••—Ž”“–•–œ”””‹•’™–ž’ “•™ž””œ”œ•••˜”•“š•–•œ•–š•””“”•”—”ž•–•–’–”””œœ˜œš•““–•š—˜œ•–•””—–’”“˜””•–‘—•˜””—•˜–’—–“˜›•‘–œ”’š–•–’–”’”–•”œ’•–””–𔓗“”–•–˜”“‘˜”•š“””˜””—••˜š••––””‘™—‘•—‘•’”•–“˜”™™š”‘“•–““–’”‘–’˜••”•’”•–™•‘”“””’™•”•š”™’‘‘—–•“•Š——”•—š—˜”•™—”š”–™”–“š–•–•’‘”•”˜–˜™Œ“–›š••Ž—”•”“”—’—†”œ•”•—•–’–—•“”–—‘”—”—•–•™”™—“–––•”’›”•”˜“™ƒ–“‹–””‘–‘“”’’—“”’““‘˜‘„”˜”Ž›œ—••““””‹”Žš˜˜œ”𔑔”•’“—””‘—˜”””–™”“”’••“’•”–•’“‘–“œ”ƒ”–‘‘“”˜™—–‘œ””“›’Ž”š”‘ž‘Ž••”“–””˜”–”””•™›™”š”’—’’’••–““ ”“”œŸ–•””’š–˜‘”””’“•’““”“š–™””“’“””—š‘”•’‘’”–’˜”’“–‘•–”–‘‘›”˜¡”–“”Œ•˜‘”–˜œ•“–Ž’‘’˜•””“”•“•— –”””š˜™“–š›š•—“—”—™“–—›””—™¥–•••–™”“¤›”“˜™’•œ•––•”•œœ”™•™—••—›—•“”””—””š”—Ÿ”œ–—›˜“¤–©––‘”””˜”œ˜š˜ž”«š”–𔓖•œ“•›š˜›–’”“”›–•œ–—”“œ””•”•”™•™š™•™•˜™”˜””––”™œ”œ••–˜”–“—•”œ™—˜™•“š””–™¡™›–›–”–ž”’šœ–•–œœ”•˜”’’–••™‘œ™››”•–—”–””Ÿ™•›•’•›“”£š“—•”“––‘•š–‘š““”“’‘˜•’”“˜–œ”™–•š–”’’›””‘˜–›•—”’•‘’–““”˜”›’”™”‘•’—“’”›—’Ž—“—““››”“””’•‘–’““’‘’ ”–•—•–”–’’’”‘–™Š•’“˜‘–””””—’’“±•’”–”’š™’£‘•”‘˜˜š”›”’š““‘•”””“•Ž”‘”ž›•’“”’–•‘““““”–•”“’”’“™’“””•”“‘””˜žš’•“’–“™‘“––’—”””“”›”’•Ž’’”™‘žš“•“–’’›‹’–’’”›‘”“”•“•’•—˜˜””“—”–“”–‰–•“”—˜–——™–•““—’”‘–——•”—•““––“–”’—’’“”–—”—•–™•—”˜˜•’˜””˜‘”“—”˜—“™—›•‘•—’•—–œ•”ž”•˜”™•˜‘ˆ—–—”•˜–•Ž“—–“Œ–¦˜””•–”˜•—‘˜–•”“””˜”•”•™•™˜’˜••”˜˜”“š”˜”•”˜•™”•”“œ“˜——“–“‘˜”“”—–•š•–Ž–––—”˜””–”˜–“”˜•Œ”‘•“”–””˜•–•—’–”’”“”“––””˜’—˜—”————˜“™””•”““†—’›‘””–›–””“–•˜•“‘•”“–“–“‘“•––—•‘–’•œ•—™”••˜–“•‘—‘”˜—•’”˜–•’™“—“””’”•”š”—™–››•–—™š—‡•–Ž•’–”•˜–˜””’”˜–’™””‘”••‘–•š•––”“—™”š—”“–”•”“‘”’•”“——””•–“•”–•““’–’•˜•“šŽ””•”“•—–”“’–”˜•””——”–‘”’‘š“—”˜“•”‘•’š™”‘™˜•””–’š—–˜’”’““”•˜—˜•—–•˜”–“›˜˜“’”•”—˜•——•’“““’”—”’Œ’””š”˜––—”—œ“•”–—•˜•”‘”’•–“”“–œ•Ž–”›”—“””‘™’”Žš™”•œ˜‘“”œ›”“””’“›“’“•–˜ˆ”ž““˜˜”–”˜’‘“•“–¨‘“Ž–––‘“•”›”™—‹•–”–™‘–˜‘§•‘”“”˜—”œ”’™”––“–—•””‘”•“——‘“Ž””™”•–”Œ“’—•–”””“™•—”•””“’””•––š“”“”–”“—”˜ž˜•˜“‘—”“”•’”’“’••–›”‘“–•”‘••—“”–˜‘”—”—“””““’˜Ž”–“•””•”“•“˜˜•’––˜’‘—••””“”•–•˜”–’••–”•–•–”—“˜–—•—••”””’•“—•–””––‘••”””˜“””•”‘–•’’–‘“–Š•‘””‘‘“••Ž•”˜—•’“‘“–‘”••––––”””•–”•”’“”–“˜›““”””“–”””˜•“‘–”•”•”•–•–”’‘•–—””•”–•”•””•”—’——’•—“”””•”Ž•“””–’••””–””•”•’—–Ÿ”™•–”””“””—’”–•‘””””•”“’“”””–’””–“’”””•œ“’”—–”•““”–“•—“”––•’—““—Ž”˜‡–”Ÿ–”•””™˜‘’•””•“—”•““˜“‘•›“—”””””•”‘š“•—“““ •““–”•––’Ÿ”“”š–Œ“˜”˜’—”““”“’””š‡‘”——“•••”•••–“£“—”’™—“—–•”—’””—œ•”œ•˜”“’˜””–•˜“Ž•”‘–••”š“’”“•–“‘“’““•“”•––˜–””””“™”–‘“—––•‘•“”–”•›‘”’‘–”””“–”“—””™”š““““‘–––”•œ•“’–“•““—””“““’‘”””™””’‘”““–”’’”—’š“‘““—”””•”“”˜–•›–“””““””•‘˜“‘–“–”—““”“—’’“˜˜““•‘’””Ÿ—””“”“’•”’““”‘˜“¡”””“’—”—”““““’–‡”’‘••–’‘•“”’“™“ª–“”š–“••“¤“””””–”˜”•”“™“‘•”˜”’”’Š“’“œ›““’””™•““””’•““’•””“™“””•“’“—’’”›œ–’”’’“”“—“”—™““”“”“”™”•”””’“––šš“‘“•’“”““““•“••“““š’”””“‘““•“’”””“”“””““””•”•”’”‹””‘‘”’“™—’••“””””””“”“’˜“’”“””•““•““˜™““••””™”””•”“”““““•””““ƒ”“”“™”‘”““”“““‘“’”“•““•“”œ““—”•–”š“”—”“Š“•“”•—•–”‘”’–””“”’–““””“’—“””“””ž“”“”’”“‘”“”“••“𔓔•””“””••™““”•”•””““•“˜“•’‘”“”–”“”’““”˜˜”˜”’“—’“’“““˜“•”“”““”””•“—œ””—•”””“•š˜”•–•–••›”˜œ•••——••”””—“”–““š•“”“•••–””š•”œ”—•‘••œ”•”””••””•””˜•”—”˜–”™•••ž”™•”‘•—•˜š”•™•“••–•™’›”•œ–•˜–”•””—”•–›”””–”••”•”™”–“™—š””””“š“”•”””‘”“””š””””“™š—˜˜•’•”••˜›š•’””••”“—™“•”—›•”™”“™•’”••“˜˜–—“•”—•””””•—”—‘š”Ÿ’”–™›˜•—””•šœ—Žš–›“””””˜•’—•–™˜š•œ –™—‚›™––”›–œœ“—”ž•””—•”—•š’š“˜Š”—š˜••—•–’”š“™“––””œ—””Ÿ”™•‘•˜š›–šŒ˜›—‘˜š™ž•£”••™—’•s™‘•”—––˜•™”•–šŸœ¤˜–•“œ“’–”—–”™“›˜”•”•—“œ™œ™™™‘•”™”–˜“š‘••˜™›””•”•’”˜™“˜›œ–‘–”•—˜“”œ›˜™—•𔕖˜–”˜œ™˜˜››”–“–™••™™–š›—””˜”–“š˜––›“™›”‘•”–—‘•””•”ŒŽ•–Ÿ“””’•–””›–M¡–¤”˜‘‘Ÿ•¡“‘‘ Ÿ’”—˜–¡•”—–””ž©|’—„›ˆ•”–¡›•—”˜˜œ˜—•–‘““”” ’•”¢”•œ–›•›˜–†’©“–“–—˜””––˜™–“‘~œ™Ž”Ÿ•š’˜”•”•’ ‰—–•––•™’–›“˜“”–‘‘˜”’”¢˜”š˜Ÿ—–“Ž”S¡˜“•”’š™”“›•Œ–”•”—•”œž–›š¤“„•””——’𢂖•‘ ’––¦š••—𙡕”Žž”••”—•š––¡˜”–”•™•‚‘Œ’™…“–˜”–”˜”””•”“ž–”•œ””””™—˜””•š•˜”˜”š“Ÿ–“‹š•”“”™”””””™•”™š”“˜™–”’ž”˜”””œž”™”™— ””•œ””“””’”””—”™š”š•—–›”›™–”•”—””–”š“–—ž”˜˜“ ”Ÿ”” –š””˜—•™“”””””™””™’—”“™”””””“™”™™“™‘”›•”ž’—””””š›”œ”””–“¢”–”“™˜•–™”•𔕙™””–˜“”””œ””–™™””š—””—’”£™’“”””š˜›š”••””””–›•™œ—”““”›š˜™”™”””•“”‘šš•”””˜›”—˜’’”˜“’–’—–——’”•˜˜––“•——’”™–•”™–‘’Ÿ‘—˜””–•—”š“—”•—›”‘•””’•””œ”—–•—˜—›”š“ž‘™’•’”••–™“˜–•””‘–”•—’——”’—œŽ—••Ž•‘“—–—“–”—“”’—–˜”””—––•š–––•“•“–“••™™–””–”—–—”’””–”—•˜˜—’”–””š‘“––•––™š““”•••š˜‘”œ™”’™••••™–œ›š–””‘–”•””–––——š“•”“”–—•””–””“’•šŽ–•””””‘––’•—”•Ž—“šŠ‘—œŸ‘’•˜’•’‘•”™˜•Ž•””—™”Ž••””–”‘˜•”›””—‘–‘™—˜‘”””“–•”š•˜’’–”“œ˜–”œ–œœ“•–•”š™—•‘Šœ–Œ’”””‘”’•””›”œš“—•–œ““–—“Ÿ•””—‘’•’•”“š”›•‘’‘•šš˜””””œ–•’““—™””•””””œš–›š•–“••›•™™›•“”‘˜“•ˆ•–•‘“˜’‘“‘”–š•—•”‘•——𔑔–•–”š‘”••’˜Œ•’••›š‘•••–”’–™“”“‘””™““£““˜’“’‘•Ÿ“••–“”’˜–•™–’””“”””’Ÿ”“”–“˜“•‘“””•‘“’——•••’“” š”“•”•“’““‘”’–™’š“˜•“”–”¡“•”’’”—œ–“‘”“–‘“””’”Œ•›”—”š””•–“™•—“”’™—””š”””‘’“•™’‘““ª‘”’›–‘•—”“–‘––“”“””•“”“““Ÿ•“””•‘’—’“š——•”•’“—“•“ž’’–“•“•›”’”’“•“™“œ•““’‘”—’••‘’‹””“’“’ž””””šh——“””’£”™—š“š•—”ž—Œ Žšœ™™Ž™•œ•—•”‹¦”” šš–ŸŒ˜””š¨˜”Ž•›•‹•™”“–””“””’”“–””•˜œ”—~”§—”•Ž—”ª•—š‡’“›˜†š›”œoœž”š’’™™‹‘•”•– ‘’¤——™—”£™•”“”•—™˜˜”š”Š¢“•””“™”–˜“®Œ”h”š–•ž¤ ˜–”“””Ž©“±Ÿ  ˜‘’’¡•”—”•˜—Ÿ˜•~™›“‘•—Ž•–“š”™˜š”s””—™‰’u”†’˜˜™–›””’““š«”’™””““’”“”šŽ—”›••“š“’’’œ™““’𛕕”””›š•“•““›“’”•’““œ—”•”“•™””’•’”’““–””“™””–”—–š”›”˜—Ÿ–“’•”•—“–•’”™”‘••˜”–”–›‘š”’’Ž–˜Ž“”“””’””–ž”š““”””•””“–”—™˜š‘”—™“ƒ”’“••”™š“˜“•˜’“𔕔”𔑓‘—”“˜“•™”“š‘”—•“”š””””“””–‘•”˜—“š˜˜”•“™–˜“”œ•–œ”“ž””’—”””“‘””•’“’“’“”’•‘‘™•™—””””–š”–š—“–”˜••”Œ›–˜˜”•“œ•”•”••“”™–”š—˜”–Œ”š•””—••—”œ–ˆ””’’‘–‘””ž•””ž”’••’—‘˜”•~”–”•˜–˜••œ”“—š—””““ƒ“Ž•”†˜“”“˜Ÿ‘—””””–˜””™—””–•”””””“”•–˜•”•‘•‘”™””•”•˜”””•œ•”””••—”—–œ•‘””“••“˜˜••”™””™—“””›–”””˜”“—•••”—˜”—–—”–”“—”•”““—”››”‘˜”˜•“””•˜“˜“•“—”””“•𔕒œ–Ž”•”•”˜˜š–™”•™”™•’–”“‘™•”–›”•›–“–™•’•’”––Ž•““”—•–‘“˜”•””œ”””—”““”˜’“––—Œ”Œ””––——•‰”“››–••”’ˆ••””–’š‘”•‘–••–•”–˜“‘”•”‘•˜–”•”’•“—“˜—•’••”—–•’••”˜”””•œ””’•™“–”””•’’”‘•””•š‘–—’’”••‘”•“””•—’—”—“”•—‘•”””•••”•”•••”””“’’–’•˜Ž••—˜š’’”””•˜”—””˜•••“””•–˜‘š“™“˜•‘’–™’“—•—•”’”––•˜”••””••”’“—””•––”•““””—–”’˜“”—”–””•’–””“•—“š’Œ’””“–––“–”••‹”””””“™’•‘••““—›•””••’«”–•š—•——”£”“”•”›•••••”—“—–’——––•£•“”˜™›’“•”–™˜”•‘•’—•‘””’”’–˜“••‘“”•–”–—˜—‘•š”’”•—•–•˜“™•“’”””•–”“”–“˜’–“•••“””™•—–š””™“”””›”•••–“š˜–’˜”””‘’’”•——œ—••˜–™›–•˜•–”˜“—”–––˜˜•˜•–’””––Ÿ˜”˜›˜””˜—“”’–“‘š–˜’’™•””˜—”“•””•”“—•”’‘•‘”–•”–“”“˜“˜—•›“‘•’”’˜’•”œ”’•“•”–—’š–‹“™“”––š—”–“˜š”––—””˜—”¢“”“—–•™™””™”œ“”–”—••–—Ž˜”˜—”””•š–“‘”•™™˜™•”‘”—’“™‘•”˜””“ž—•”—”•—“’™“”š•›” ””’••“”–’Œ‘•’‘”’”””•›¥—•–””“”–›“¡•œ¡–™”š” ˜”ŠŸ•”“•£•••–•Ÿ£“—𔓗¡‰”—•ž•”•¡›“™”™œž”•™–•””” •””ž”š˜”˜”£š™“”–•š•”}”š—•™—“gŸ˜””•’¤“•“•™™•™”“””•œ•”›’—¡”“›•••”””¥•—¥£¢˜•£¢”€™ž”•••¤™”™–”œ—“ ”œ•“ž—“˜›¦”Žž“•—–›“–ž”•”•Ÿ“”˜™’”•™™“•¡™“•¡–’•”  ˜Ÿ•‘“–“¤””“™™›š“ž¢“”–œ™›–œ””•••–”–––””“–––˜’–˜—––”••˜•˜–””’•™•”•••——””–•“”——˜’—••””•””••–•”𔕔—”“””•‘””˜””–•––“•–•’Ž”•——•—”œ•––˜””˜Ÿ›–‘•‘”—–““›–•Œ–‘–™”š••–”–š•˜“”–˜“˜”–””•••”˜‘–””””••”˜•š•–”—•˜––”“”–›”–—––•–•–‘””—˜”˜–•˜•’”–”™”••”——”•–•—’•™—”•”“˜”•–—š“Ÿ’”•”•”“–”•–“Ž•—•–••™””””—“•”””“•“”–”“’’“’“˜””“—”–“–“•”–““““•–š’““”””””’’‹”“”””•”˜•“”““”“”’•“•––’“”™–”“’”””—’˜’””’“§’““—’””‘””“”“•–š˜””˜‘“’“‘’”—’“–”ž“““”••”Ÿ’–’”•”––”˜““–“””””””–”’”’”–—”•“””“”–“”‘”““’“”””’“”””””“•“˜“•”“•˜’“““•”•’”““’‘“’”••’“”“’”““”•˜š““”“’”–“•“’“””“““”““’””“—˜”¡˜”š‘””’•œ›”’ ”‹š–™——˜šš•”˜˜—“’›’˜—“’–•”š›””œš“”ž“‘”“”—š•”–“•––””›™–•’””ž—””˜”˜›”›•”˜›•ž‘ˆ““™™š•”Œ““™–”“Œ‘••“••”””••œ—”’—”˜™’”˜˜“‘–“”—˜›•”•”–•—’˜‹•“‘•–Ž•”˜•›“”—˜–˜™”–”›’”•˜›—–—””””’“—ž•‘˜™–˜‘•–š••–›™˜•—““Ž•™“•–˜›š——˜––”““”–›˜•—•’Ž––˜›•›™’””••’Žœ”“—•””•›™–”“™—”—•“”–•’••œ––•“””™•”•••“–•—™””““’”˜’•—•”–𔕕•™˜”••’˜–•“””œ••”‘”›”””•”˜•••–•””“•–”••™—–˜œ”“•—˜••––’–•””™™–˜‹’”•”•–••—“—’””œ”••”•”š••”•–•”™•ƒ—“”••”•™”–••›˜”Ž”š•—˜–‘—•—”““””Ž•–ž––‘•••‘“”˜—œ”•—”••–’”–•’•–”“‘œ’•’•—••“—”•˜—›––˜”˜””•”™–š––””’™‘”“–•›“”–—”–•™”•˜“™–—›˜—™™•˜™˜“‘š•˜•š’“˜•“—•’—‘–œ”š“›”œ“–––’˜•œ™“—“““˜˜”“”””••—–‘–”•”Ž“–“•—””‘“”‘Ž”˜š“”˜—•’•”‘“–—‘–‘Ÿ•’”’•—𙑋’”“”•™“ž”“™–‘˜˜••’’Œ“’”˜”˜‘”“•“”•›“•““™’’•™’™–•“š“”–““‘˜”•˜”–‰—””š›–˜””‘•š”Ž—šš”›•“™“““•Ž‘’–‘“ž“•••”•˜“”“™•—ž›•—š””•’›—›—–“”•–˜—“›˜”“••š›”–•˜™—’–“”–˜–“”›‘ž•˜’–›”™™—”—––—ž•“™“œ‘””¡˜”“””—–›–—–•‘˜—š’››‘˜–š”š“–“•–—š•˜‘˜Ÿ–’™•Ÿ”š™™š”–”š”™›˜“™”’“”””œ–”—”—™ššš˜š–š–”—”–‘œŸ–™•””›–™’””“Œ”’–’”•›–™”•”˜š‘•˜˜›”™™™š—••”—™–˜•–•›—“’—”™™™“•š“™ ”œ“˜”••›–š –œ“›•™”—››””””š‹”šš•””“™•˜” «—”œ”“”›”‘Ÿœ”“˜’”””•”•˜˜”•—•”š–˜“™™––•”•—••›™š••™˜š””””†••”–”˜™”™“’šš”Ÿ™†˜•“’š”•Ÿ”Ÿ•–™ž”·ž¯–¡•—‹•‹””œ™“˜‘””•”•”™¢—Ÿ””œ••””””–•––𢖔œœ”§™œ”•••𤔡••ž”’”’”–ž œ™ ™”•™””©˜¡—””•˜””“˜“••–”••”ž—”•”—¢”œ›•“”””–””ž“Ÿ–˜”›¬™• ™›œ—›””•“–˜š–™——””šž“–—•˜‘——–•—Ž™•™œ•˜“›’’•”˜™“””’•”•™‘——“›•–”’“••˜˜———™”——”—˜””Ž—””’”™“š—˜•–‘•˜—‘”™˜˜•’”Ÿ•—˜˜–“…Œšš”—”’œŽ˜”“™™Ÿ™•—”’––š•—‰˜•˜”œŽ–”—”œ™““—””™˜•œœ•”“”—‘”˜–’Œ˜”š”›—“Ž––›–š‘™‘””’˜”—“ ’‘”••––™—”•”š”™”’•—““”–”•™–•–••’’“”œ””‘––˜—–™žœ‘™•—˜š•›”””“•£˜“–”–”“””š–•›”š––š“›”’‰›“””š“˜•–•–›’“’–•“—™””“Ÿ˜š—“–™™”™––™Ÿ”—˜‘–”’“”“–”“š”–””••–š™”–š¡“•œ‘Ÿ””‡“™••™ž–•žŽ——œ”’¡•—“•—š›š”””””’––•’’““–••–”—“•–“ž’ž™”œ—“š˜˜”——•𙓕”•œ™“˜“–”“—š–•›•”¢“”š˜’Ž”›˜–”––’“˜––”–™˜”••”—–Ž“–”‘œ’—˜–“–˜“œ“”—’™‘“š“™ž’”‘˜—œ•™“”’•“˜••˜””””•š—”ž˜‡—•™””“›•›¢•””™˜••”•”š””š—””œšˆ•—š””””•œ—”š•“™•”•œœ••“””˜•””™”›–•™–“™ž•—”••Ÿ•Ÿ••‹”•š˜•Ž”ˆ‘˜†”‹•”›•—”•–˜—˜“””•”••”•’Ž•˜•”•””•”•””•Ÿ”œŒ•˜”€žš””””™•”™•”–œ”–”𕓗𙗛𕓔•—•““–Ž•””™“•“—“””–œ”•–”›š“••”“›“œ˜•“•–”””šš›’”—“”“—˜–’”””—”‘’›˜—”““•œ˜™‘–”––™œš“•œ“•’–’—’•—™™”›—™“““—””’›’™“•™”—“š“””šš˜”“’”“—–““˜•”“˜“˜›’’••–’–‰’•’‘Š–—š”Ÿ“”–”—”–”“ ’”•’’’”™˜˜š”‘–”—›”™–š’•™“™”›š““”–œ—“”’”š‘“”“—•”’—™—˜”“Ÿ™š‘“’“—“‘™™™–—™““—““’™“ž™™’›˜•—“™“–•“œž“”Ÿ’‘“ˆ™œ•˜“•‘”›˜–˜˜–Ÿ““’”•˜˜‘”˜–—••–“’——“““’—’”’—˜””‘š™™›’š“Œ›“—’™—˜”—œ•˜”—š—”’™š”•ž”–”’ž’“˜‘œ•–”šš”™˜•œ˜™—šž˜“™”””””˜”›œ–𔓖–“›–“–“™‘™‘•••˜˜“˜}‘““”–•’˜”–”–œ™˜ •—”—‹˜œ—””“™•”•“•—”›”——‘Ÿ“š’™“”‘“œ””𙑔˜“•“œ”œ”“˜•”œ——–˜“”“”•”™–”›•’•˜Ÿ”“•˜“”—š—”•™“••””‘•—šš——›š—‘”•••œž–žœ–•›’”—œ˜œ˜™”•”‘™•‡–•›‘““–ž–š—›š”ž™’›™¢›——Ž•”› š•‘˜’𙓙Ÿ–”›—–•– ”ž”“– ˜”˜•›œœ‘”˜™–‘”“”Ž—”“˜”˜œ••šœ—š”¡›˜š–’š–”””š“žœ—›™˜“™•’‘–™”™– –‘’’”“¤““œ’“—”“ ‘•”“”™‘––™’•’™•”‰”–•“”™™“–““š“œ“›”’š™™œ™›’œ“”’š•›–›—–‘š’•’”“™œŽ•›š“£›“”—”•”žš™™””’™’“”˜œ–šŒ•›’‹šœšš”¡““–‘˜œ•‘“”““•‘•‘•“‘“—”‘”“”—””•–”˜˜’•”——–’––””“•”‘”‹“’“”™““•’”’“”–Ž•“’˜–“““””“”“‘“’’˜“•”“””’“•–•”Œ’“’”“••œ›””–••‘–’”‘‘“–’•’“”–‘•˜’Ž’•’““™˜•“–”’•”•““’”•“”Š”“‘”—˜•““”‘‘“•“’•”””“”’“—”•“•“““””•–•–›”–’’“”“”“”™“’””“”“˜“•“’‘•‘”Œ‘“–“•“““”””‘••‘’“Ž‘““”“•”—“•—””“——•›“”“¤—Ž˜”–’“—“•—™•••”’“•“”—“”–“—““•ŒŽ•‘’’“”””“•–’––“™•—“’—””–”“””•–Ž”””“•š‹“ƒ”—˜š—‘”“”•—•’™•“—“”Œ—””˜™Œ•ƒ’™”™˜—”””‘“˜•”–š—‘”“”–‘”’—“”“–”†˜—’Ž••”—”•”—”—“Ž”•™••–——•””–’”””—ž•—™•’“•’—‘•‘”•—–•“–”‘“˜•˜”’—•™’–’‹“’““––’–‘•‘““–•—•™—””“”˜”‘”–••••”••––’”—¢˜”•”•”’–”™˜””••˜—•””•––•”••”•”•Ÿ•–•–™••”•—”––•••–••š–”•••“””•—•˜–”•”••˜•‘–”••””•••’•™••––•Ÿ™–’•’•–’•—•••–”˜•˜–•–”•–”•”–›•”—””•••”–•’—”—™•—š•ž–•••”•™š•™••š•””•˜••˜•••”˜•”—”•—•––•–“•””—”•••˜••—–”––™””˜•”••“˜—–˜–––••–•”•˜›•š˜•––”•–••••••••™’”’“™žœ”••“ž›œ’˜œ¢•‘™——™’Ÿœ•œ œœ’žœ“•””“”Ÿš“” —˜›œ‘“Ž‘”––™•™˜—•”˜“™”™””””§—•”—”‘˜–¢‘’›¤”–˜•©˜—••–••œ“š ”•”•–•–’“”™›Ž •–˜•–”—•˜‘“›—”—˜™“”›””•˜ŽŸš”‘”•‡˜™•“””—–• —””¡–•™—š—™•”Ž””Ÿš˜—”—š“”–”—”—ž™•˜•–™“–•–š™—•”•’œ—˜ž—–”™–”™”•›’ŠŽš’™”š“”—˜œœŽ””•””’¥”™––”””—“”˜‘“–˜–”•–™žŽ••““”“˜—“”—––•‘“™‘–”Ž›˜’Ž™—˜–””œ—””•Ž› ˜“’›™•˜””Ž”•”˜”›–”‘–—’“–”˜••—•š””›”™”‹˜š”•š”—••š™˜”–‘”“™‘––•˜”š–“•”‘”“””–’””’”™••—–‘“••””’œ“—–”—›”––™–”ž”’–”—•“Ž—˜–—œ””“‹•˜•“œ••”𔕓‘•–œ””–•”’–—•–”œš›”–“””’š””“•’š™™”””–’™“”””—”¢™˜–”“““”—›•”•›••–™—‘’–•𤕗𕔗’•”˜—”™”¡—•”•—””š–••“”™š”—•™–›“’˜—–•”“œ””“–””›—””——™•–””˜š’”““™“”›‘•Ÿ“’–•™•Œ”—™Ž”–“˜”œ™•’‘”‘—””•˜•Ž””˜“”˜”–•š™””ˆ—”“–˜œ”—š—’•“™“›—”–š“˜Ÿ—’’””˜–—‘“–’––‘ ’›‘™‘”•—“––•—“”™“•’”‘—™œ›””’•’˜““š•’—–—˜ž‘˜˜š˜—˜—”““–’’©–—Ž•“”‘–’™™‹™”“˜‘‘•‘Ž˜’“—•’Ž——••‘–•”•”–š—‘“”‘™”Ž”’”˜–”•ˆ———“–™•””œ”“œ””’•Žœ“–‘—”Žš”’Ž˜˜•”­”“™š—Œœ“Š˜‘–” ’”’‘Œ¥•ƒ”–”•–“’™—•–œ‘”——””ž“•”””š“’’”ˆ˜™’›—™˜”Š“••”Œ“‘•˜–—™šœ‘‘”•ž“˜š–Ž—š“‘•““”’“•ž‘”—’—“•š“’–”–””–•’™’““”‡Ž’“¢•–“•Œ”™”“’”˜›£”•–””””œ—–”™–”—”š”š”—™”—”š””’’””””””—œ”–˜”“–›–”——“˜•””˜˜”–”—™•”“—•™•“””“”””–”—™”—•™’””’˜š–•˜•š”””˜—š—’“Ÿ˜•˜”š•–š•”””™””••’”•”•–””—”––””—””“”“”–”˜˜š›š”šœ””šœ””””•–”˜””›–”‘”–”•˜˜˜˜–•”“š””˜Ÿ˜˜š™”””™””›™””˜—””—”Ž““““•›š”–•—“–”“”“””š–›“–˜”••’”š™–š”™”””’“–¡—›•“”“˜”–™’”š–”—“’™Ÿ’œ’“’™–™””—˜“•’”’•”“šŒ‡•š•˜™“”’““””•‘–’˜˜–““‡œ”““”–š›—“’‘£˜–™•““”‘”“’——”’›€•“–•Ÿ”𕠔ޓ™¢“¤”•””–›—œ•—’’““——••”—“––—›Ž“•—’‘Œ”–•’’œ“–•‘œ•“™“’‘”“”“•š—’š””‘Ž—œ“ž˜”˜’‘’””“”’“•˜”–£“¤ž’“›”—“›˜š”’“““ž“•••‘š—š‘—”’—’’”—Ž““”™¥š¨¢ˆ”’Ÿ¢Ž•“—˜—•šž“˜§’‘©®’’’ž”£”œ“œ“•‘Ÿ‡—“˜Ž˜¤“‘™•—’˜•™“À¬œ‘ª“œ”‘¢— ––“–—¥•žŠŽ—¡“—œ‰ž””šœ™˜”œ šˆœ§…¨¬—³“Ž˜¤—…™—š†’£¡˜‘š••š¥˜Ž•Ž’™“š“—˜• ‘‡œ”‘~•’•™™›Œˆ•Ÿ¢›“ŸšŽŒ”—ž‘–˜¡˜Š–••Œ˜’–‰š‘†—–‘˜’¢œ”‰¥Ž’‡”˜ˆ”—‹¤‰Ÿ¡—”¤“”•—‰™“™’—”…•œ•Œ˜‡ŸŽ“”‘”£—““­™”“’ˆ’}—˜˜s‰“”––ˆ—›–’š’— “Ž–„”›•‘™q˜’‰™š–Ž¡Œ‡ƒ™­Žx˜†‹•‰‘š—™œ‘Ÿ„ŒŒ—”’Š•žŒ‘w’‹™Ž“””…’œŒ”‘Ÿ—zˆ ™›Ž˜š‘˜ƒ³‘˜ƒ›™‰‹•–ŽŠ¡ Ž˜‘“›–‹|“„””‰›”ŒŒ‹•–”Œ–˜—•š”Žš‘•® –˜ŽŒ–•ž•Š““”“‘Š‹’”•“w ‹–’”™¨—…”’†|’Œ“”†“Ÿ‡Š”–—“•¡ •Ф“ ˜yŒž•–”——œ˜Œ˜“’‚Œ‘’“•Ž–•y”—‘ž™˜”‘‰“’”–¨¥œ•›˜‘‘™ž†•‘“ ˜˜‘ž— ‘˜•‘Ÿ’‘”‘–˜“—•m—ž–“‹˜“™”‡• “Ž—“ž“”•˜Ž››–ž‘”‰Ÿ«¥• •Œ¬‘’’œz––Ž–œ“™‘Œ…™‘š‘’Ž’›‘”“”‘“•Ž“›š•˜“˜”’™’—––“œ—’¥‰™‘…š‘ŒŽ•¬‘œ›‘™™”‘”›””’®‰’œ•“––““‘—Ž“—Œ•¡•žž—–—˜“Š–ŸœŸƒŽ™˜¤š’ ˜‘›—’““˜ŸŒ–—‰’Ÿ™ Šš n“‘›“—”—”¡—›–“”’š“”’–˜žŸžœ”“œš•œœž–—™œš£™œ—£Ž•’˜’­•““’šŽ‡¤Ž£“˜˜‘š˜“›™Ÿ”›‘œ™›™‘„žŸœ––˜Ž¦’› —•Ÿ—”¤“‘œ“ž–™šš›”Ÿ•š•}˜ššŠž•œœœšŽ“š“—¡“•˜’˜ˆ’•œ’“›ž”’œ–•™‡’˜—~•œœ•š™˜†››œ—™˜—‘œ“–’–“Ÿ”“—“‘¢­¡”‘”˜ˆ’¡ššœ¥— “–‘’‰ “•””ˆ’©¢§”‘¤«›Žœ˜–”›”¤ ‹”ª“—™•™™”™’“š•›‘˜œ©‘­’’¡Ÿ‘‘‘“ŠŸœ“•¤™—˜š“š•˜˜Ž œ ¢”•—–Ÿš•Ž™˜ž“~š£ž š›¨ŸŒ›” ””¨Ž‘—‘ ’Ž–—¡•žª˜—‡•Ÿ“¦’˜™ ©”°™–‘“™ ‘¡“”Ÿœ˜“¤™•Ÿš§Ÿ“”’•‹•™™šžŽ––²“™—‘‘Ÿˆ™ž—Ÿ¢”š œ‘“˜–‹§”‘™–š™šž—Ž„›š››™–—‰–Œ–™—˜¡‰“’“”–™’•”™™™£Š¢–”“›’™’˜“¢˜‘•˜“–œ””œ– —›Š‘•—”–—‘”—Ž—ŸŽ”— Ž–Ž™–‘¢˜‘–˜™©‘˜™›–•”Ž›“Ÿœ¤’¢”›Ÿ“˜Ž™ ž”~–—–”…•Œ£“’™•’š‡•“‘–—‰‘ž™›‘šŸ–‘——‘œ™”ž‘™—•—™–˜ ž›“˜š—“” šœ˜ž •–›³˜ž’œ––™’‘˜£žž“–ž““ž–Ÿ—Š•”ž¡‘ˆ›š–¡™œ—š“¡™Žœž™™˜Ÿ—’’’˜œ œ™—’‘šœœ—›™š¡••š”ˆœ’’‘•”‘“””›•–”•šž¥ “™—˜–Š™™š‘”‘Œ‘œ¥—’™—’›—š™™•šž–œ—‹Ž›”™•”–›“”˜——”¡™—•¢¢Œ‹Ž”Ÿž–œ”–šœŸš‰”’’œ—›–Ž—”’– ˜—–œŸŽ‹Ÿ•¡š•šŽ“—œššš™™“œ‚°Ÿ™˜š—–—’˜˜œ˜Œ˜™– …—”•™˜™œ—‘” šœ›‘˜‡’žžš ›™‘–š˜Š’›™—•Ž–—”””—Ÿˆ•z‰˜™—’œžž¤”–žŸ•”–šŸ“”›¦•£˜˜”¡˜˜••›’ŒŽ™—Ÿœ}ž•–¢›’ˆ—Ÿ–¡—Ÿ¢—™–œ‹—‹–•Œ˜–›Š•œ—“•šš¥‰–’›™–—ŸššŸš¥š•˜ž–”œŸŸ—’–””š˜›——–•®¡«“‘‘Ÿšž•¦š¡”˜’•𔄡¡•œ•Ÿ†Ššš–›—”ž“’ ¡–——˜”𕥋—¦™œ–ž™š—“œ¢š››••š˜‘›™•Œ–“™“™‘ª›››Š™“—Œ›¥”‘”˜”Œ”›˜’Ÿ¢¡Œ™š—“—š”– ‘™•—˜®“˜–•œ•Žœ›“œ—–œ˜“‘“”’¥•“ •š¨Š‘“›™…›—–—œ˜˜‘¤™—–~ž‹Œ•’­‹“”’‹“‘‹•¤–’›˜’¥””™‘”’›–Ÿ‘‘™‹•–œ”“•ˆ–’’¤›‘’”’’މ™“”Ÿ™š– ”•¬Žž‘“—’““‘‘¢”Šž›˜•—– ~‘ƒ”•˜‰””‘•ŒŸ—‘¢“‘™ªžœ—ŽŒŽ•–“‰—”™”—˜‘£•””‘Ž‘ž˜”¨‘”˜œ™£”—ŽŒ‘”““˜›…‹‹˜’•‘˜”“šš—ƒ”–‘“œ—ž’™“˜“—“šŒ‘’™£Žš’’‘•Ž’œžš¤™¡œ•›“–’ž’”•–˜‘“Œ—–‘–’Šž’”ŒšŒ™”£›“’ƒ—œ—’ŒŸ––‘ˆš”—˜”™Ž‘’œŸ Ž‘…“”š‘™šª–¢Ž™¥Ÿ—™™’Ž™”‹–‘‘¡Žš˜”œ“˜•“’‘š—œŽ“—…”–‚ˆœš˜™’™’“›œ¦š’•–“ž—˜œ–’”…Ÿ‡––•˜“˜‹’Ž”ˆš–•—›‘Ÿ•’˜ŽŠ¨“Žš–“”–“—Ÿ •—…˜‘ž’ž“”—•¡”‘”–•’—Ž•œ‘‹˜‹›™˜™‘“˜•ž–†£•’¡™ —“›‰›œ†—†›‘¢•¢‰ž¥Ž›“—‡—ŒŒ§š„‚œ•˜‰ˆ“”˜ŽŸ—‘˜”˜š”™—Œ–••œ‘“‘’–’™ ˜–‘•™“––”¡›š™ž‘˜›•€šŒ”›œ–£“›Šˆ––’–”“’“¡’Œ—•—Ž•–›‘“£””•“š‘“Ÿ–“”œ ‚˜´¨‰‡—Ÿ¡–‘–”Š™’š ™–Ÿ¥”–’’–‹›Œ’¢——–•‡œ–“–œ¢”š’•ž’‘’‘˜œ™¡šœ•“•§”•™•Šž“–‡–˜•šŸšŒ™•Œ¨š§ ‘£Ÿ”˜•—‰ƒ›§”œ”’•¦„‘†˜ŠŽ‰œ¢”•›‰“•Ÿ–•–™žƒ•™””š“™ž™”Žœ“¡œ–„•–•œ”›š—”–™“™™š‘”‘•–•œš—–š‘š˜¡™–£•‡š–”š“™˜š”Œ—œ·ž—Ž“‘–™“˜‘™˜²––—•Ž’¡œ”•Ž ˆ‘š–›––œ‰ŠŽ£•—Ÿ›“¡š—”Œ’”‘¥”™›˜¡–’™›–‘“••š˜Ž‘”‹‘„”— l™‘’‘‘–ŽŠ–Е𕕖—ˆ•›—™š‘œ””…Š˜œŸ™–†’Š•‘—„œª‡’‘š”˜¥’˜— “•ŠŒ‹›£–”‹“¡Œ™–“˜š“Ž’Ž•–“–—“…—•Œ“œ–‹•‘–”š—šš‘œ’‘‹˜˜—˜Ÿ•˜ ’—–ˆ’–‰™œ—”˜‰¤‹›¦—šŽ”—“†’•…š•š’™‰ •œœ¦Ž†–’Œ—•ž’ª‘›’–”u…’›•—ŒžŽŽ”˜‘‹’ŽŽ™›™’’——ŒšŸšŽŠ”–“–“›—”‡•ž’–•“‹™‘ŠŸ’š–—˜~†¢¤‹‹š‘“Š’œ“›Ÿ˜Œ˜˜‘™‹˜’‰•”—•’žšŒ˜™•™™…–™”“—žˆ™‘˜˜¢˜œ’Ž “••Š¡’Š–™Œš’œ•–‘‘Ÿœ¤—‡™”˜ž‰†“’™Ž–‡™Ÿ”˜Žš…”£–”Š–•‰w“˜–…š•—‘•›—•‹–•’‡Œ•Œ‚‘–—Ž–—“‹••™š“šš”¡”Œ˜š–“‘•’Ž—œ•¢—›–ž’’–œŽŽ‘ Ž˜š™–™“–Š—˜ŒŠš‹“–¡–”Ÿ­˜|£œ‰˜‡Ž˜uƒ–~—‘ššœ›”š”™”‘”—‡†™œ‘–“—„”—–‘–…ˆ—–“–£•”‘’‚ž–”žœ•“Ž–…›Œ˜Ÿ Š™–”‘š’’’‘˜›Œ ”—š„„“Š‹˜›™ ˜—Ÿ©¢–˜”–œ”‡–Š“’––›ƒ—”–˜šŸ¡šœ™”šŸ—“›‘ˆ——Ÿž–š’•Ÿ ””™šŸ”–›œ–™•š‘œ—™¡–—‘™˜—– —¦‰••‹™›”˜˜š¡“Ž‘š“ž••˜––§—¬“™¤š”’š—£Ÿ•›•ˆŽ•¢š–˜š¢ž“‘˜žœš‚™™‰¡šŽ¡—žŽš•‰Œ™£‘–ž‘ž˜••”–‘ž™™¢Ÿ‘œ’¤š™’™œ›—™ƒŒ•Ÿ•šž‘™”…Ž…‹“•’—Ž˜•”™‡¢šœš˜››”ŽŸš ” œˆ­œ—’–š–“’˜‰–‹œ¤žšŸ”’ž–˜™¤œšœ¢ž•—¢ƒ˜›––‘”–—““•‡’¡†“ª–š’—’–™“£‡™““••—“”–’¥‘ž”…–Ž’Ÿ•˜›“–ŠŒš‘ž™”š”š•”•…˜”™”Š•““šœ–˜†Ž“”œœ˜Ÿˆ…›‘’Ž”•—”š•’š’‡˜˜“Š”˜‘‹’‹†’š“žŠ••”ƒ“•Ž‘˜Ÿ”Œ‘—’–¡—¤‘µ–¡®–—š›–‘š–——‘‰˜—š™˜”•’•Ž•–𭆕’–œ™œ••¡•‰‘𔓖—Ž’Ž™–”¦’™š’–•’Š•˜šzž¥•™™™˜Œ“¡——¤Ÿ˜™““†dˆ‰“¢†‘†™———•‡“š“£Š¢—“’•’‘•–•—žˆ‡‹Ž“x—“¥’ŒŒ–Š’˜”’Œ‚˜ŽŒŽž™—‰¦‘••œž‹ ‹Ž…Ž™“•—“‘’ŠŽ–•¨ˆ™–¨~ž‘‹š’‘›•ŠŒ™‡“…£“”“ˆ‘‘Ÿ•‘˜šˆ€’”†“•—™œ–””‹‘šŠ“’‹™˜œ‘‘•›•‹”Œ—Œ‰ž™—’Ÿ’“•‹‘”‘—~}‘•¨—ޕЋ’Š˜–‘˜Ž“ž†•˜‚~—ž…˜“™²››œ›¦„‹“‰Ž“•’†‘’‡›ƒ“”ž’‰”•“šŸ›—•ˆ”–”“™›Ž˜† š¦¬–‘–™•–‰Ž–¦™”‡“uœšž•–‡Ž¢ƒ•Š”œ’–𛉔oš¦Ž}‰”—œ‚Œ”–•v’•“‘ª™„£ˆ –šˆ‰˜’Œ”““œ”•r–Ž—‘¡œ¡›“”•Ÿ—’˜—”•›‹™£—†š—“—‰”„”Š–œ˜Œž‘—‰Š‘›”‘‹¥“‘ƒ‘’›Š—‡œ‰£‘—’š–Ž““Š}™•™””—£Œ–™£—…•†| ˜‡š ¢š–š–~ˆ™˜–™–£†§—‘‡‹„“Œ‘¤{Œ““‘–•£—Ž˜œ•™Ÿ‘‰”—“’’”Ž˜†˜”¦˜—Žšž”–Ÿ’‘™–œ–“““‘š’”r›—“Œ›´š•’–†’•”¥•—– “›–‘†’Ž˜ ™—€’—™”—•”˜Ÿ¦™‡Ž¡šš’™‘•¦•ž–‰•›•Œ‡•›“€˜‰Ÿ’‡”™ƒ˜–Š—œ—‚”‘…“œžŸ€›•“—”’Œ˜’’›•’ ™˜šŸ—•’œ“Œ”¥ ™’œ—”’’•“ƒ‹”•‘’“™›˜š•˜’…“›™—’Ž™†Ÿž¥’“”””—šŸ™—œ—¬“±–“Ž–›…•—–Ž•‘—¡¢’›˜˜¤š–‘Ÿ–”˜žŽ—˜—“˜˜–””–™Ÿ–š—‹Ÿ˜›’™žšœ›‘™‘Ÿ••“•”¦˜“–‰™ ––•—ž›•œ£‘”…—ƒ““ž›–›’›š’†š–Ž––”š•œ~•—Š—›’ Ž“œ¦ž’”–™–—‘®š— ˜ – Ÿš˜–“ œœ”œ•–²ž™•ޑޙ¤¡˜”œ•— Œ”žœ™—’–‹™—¡•”™¢š“•¤¡– ‘ ›•™Œ–œ™“©›“™›•”¡¡“‹™š‘”›•’œ™ ’˜—š“”’š“Ž• ›šš”­ •š}Ÿ–——’œš’›—£™‘Ÿ˜‡œ£—›‘–”¡—˜•££˜˜š•˜š›Ÿ‰”“——”›™’¦˜˜–•’—¡ž››Œ˜¦›Œ·¡–’˜Œ™™š™’›—•˜——›œ‘¢‹“ž¤™‹—•™š¤“Ÿ”Œ®•’™—˜’šŠ š™œ”}‰š‘‘Žž˜’–’‘–„–¡—¡‰“¢––™’Œ—’‰š“”œ”•š–—”•š› •’š‹™š––’Œ•Š˜‘”™”˜ˆ™š™›š“–Ÿš””—•‘𥗓‘ˆ˜’–™–¥­¦šš™œ–’’Ž›Ÿ™œ˜––”…——’œ”š••“œ–Š˜™“—˜˜–—–˜“†’—Ž…™—𛋙“¡›’›š“—”™Œ›ž–Ž˜œ”—–œ•‹—Ž—›‘—Ž”ž›‘„œ¨ˆ‘›˜Š—–ˆ’™••°“†ˆ‘£šž›‚–š•˜˜{‰¤œ’“š–›–’˜‘ ”‹Š˜“–˜‘–™™‹¡”“››™••—‘œ“Ž–—™Ž‹šŒ’”–œ›šš––•˜”˜ž–™™•”•ž˜œ’’™”‘‹‘˜”’––ŸœŽ’šŽ—––š™Ž˜˜•‹˜–…›Ž’›‘›©•œ•ž›š—¡••¡˜—•›Š™”Ÿ‘‹’˜•”Œ‡‰•—Ÿ•–Šš“–•¬”œ” Ž“–ž––’˜“‹˜“”•‘‘Ž}““ŽŽ˜Ž¡Ž ¡›’• –š••ŽŽ˜›’‘‡žœ™˜˜’ˆ“”–•‡‘–”¢‘˜ƒ”Œ—’¨‘’“–—Œ”’›‘•‘˜—Ž”Œœ–‚‰‘„Œ‡‘–›–‹x“…‹š–™•œ–’˜ƒ”‘Š‹˜“—” ’““’›Ž˜™‘—–˜–—”“‚†Œ¢–•”’™ŠŽœ—…‹œ•¦š›”…›˜–‘y’‘•––’’••Ÿ˜¡ˆ“Ž’œ‘–š‘““‘…›“–”™“ˆ•{’”•©œ’“™•›’–——™œš‰ ‰œ’••™š”‘Ž—œ•ŽŠ“••Œ›Žœ˜”ˆ™”𔉕¢Š˜•—™“•£š™›“¨ž”’ ™¢•“—•œ–”•™–™Ž“”œ•”Ž¡™™—“Ÿž—— š”‰”¢–š”Ž¡•ˆ–¨“–Š™žŒ¡¡Žˆ•˜–’™Œ’••†–𖆙˜’–Š—Œ—••›Ÿ ›Š•‡‘Œš‹–šž•Ž•™–‘‹‘Ž””““™ ›‘™”£ž™Œ–—‰“˜“’— ’—˜š”›“—”š’’¦“•’•—˜“”†’ˆ“œ•›˜—¤š—ž–“˜••••–Ž”œ–•“¤—˜™ž“™˜’‘¤Ÿ”•’ˆ• —”“œ–—‘š˜’–š˜ž–’˜ž––•—‹”œ¡˜š’›Œ“‰‘“Š“ £™‘‘•¡‘™’˜›š™—™–˜Œ›§–——–ޤ§•Ž™•œ“‘— —‘–™“™›“—™‚›–˜’’‘–’•–¥{›•šŸš˜œœ—‘˜•’œœš“”’–“™“—–˜™‘•‘¥—’Ž”ž¢™–—•”š‘”•œ’–‘•£’˜Ÿ˜’ž‡—“˜™œ¥¡™“’•˜¤Ž“šš–†”‘žŠ•–ˆŽ‰’™˜š –‘™Žƒ™”‘˜—‘“s”—”…š™—•‘‹šš˜›‹›œ‡™‘ŽŽ••𤋗““™˜•™‹“’›„‘‘˜š”šª†ŽœŽš•™•“—‰“™‘–‘š‹›–•–ŸŒ›~‹›˜ ˆ”¤¡–’˜Ÿ“Š™¡ž•—ŽŠ˜•”©¬”Œš‘›—¡šœ‹’±˜¬•™”¤´˜„››“–§–”Ÿ‘‘“’˜Ž•œ™™“Œ”‘¡‰Ž¢¶™”›‰”’••µ—‹”¡—™‘“‘‡}–§“’§˜˜”—“›˜’œ—‰…’ž °—Ÿ˜šŒ•–‘”– ›”•Š“‹ šŒ–”” ‘Š“•‘„””›’•œ”‡•¦’“•‹‡‡’•–ŠŸš–Œ–›‹’œ—˜’£¡Ž–”””™–Žš—ˆ‰•›œ¢•’—’„™–’–’Ž“’”Œ–ž‡œƒ¡’—›‰ˆ—¡˜’ Œ‹—“”˜…š®†Œ™‡‹ •‡•œ”Ž’ƒ…Ž¡‹“Œ“œ‰š™Œ—” š—’‡ˆŒ‘‘›˜“Œ––”• ™›–‘„š¢˜ Š«ž™‡‰Š™”‹™’©”¡–€”•œ””—•ˆˆ˜Œžˆ˜”•’‡‹’˜˜‘—–¡“ŽšœŠ•˜œ¡…’‹Š––‡’„’”œ”ž–•‹Œ›˜“šŽ”••••–’‚‘™’š’‘‹—™Œ›™…˜” •”“”˜™–™“‹•—™‘‹‹‘–’–™…•—“”Žš’’‘ޑޙ•Ž›“–——‘™‰Œ”•”˜–ŒœŸ•Œ•š‰–…Žš‹——“~‰’š–Š•—’Ž–’—Œ˜Ÿ—‘› •—žŽ—–Ž’Œ™–œ“Ž—Š—¡’–Ž’Ž•Žš—–›‹˜—–——‚’–”“‹˜”˜”‘’‘’œ›Ž—‘Œ‹”‰—Ž›•”–•Ž–’’™’“”“›˜“›–‘“™–—Ž’ˆŽšž£ž“—ˆŒ’‘’’”’£››”’—–’Ž˜›—‰“š}‘›”‘•’‰•˜ š›™‘”£•““”¡‹Šœ“Ž…•‹“–—ª˜™œ¡š“‡’Œ›–˜‡Ž”‘“–––“œœ›š˜•”‚•ˆ“™‰˜‡Ž¡…œ‘’œ‘“«˜†—–“˜Ž–†–’•“—–•”‘œ†™Ž–Š—™•œ“˜˜˜œ•–˜˜ˆ™—›”˜•‘‹’™Ž™‘˜”“Œ•›Œ—…†–˜—‘™—œ•—˜‘™„’›”ž–•ž™‘’“‰•’“–—“ž–”•–—‘Š”–Œ‰“•’…•“–’–š›šš—˜”–Ž™˜•˜”‰••–•’–œ“›˜•Ÿ•’–†¦“—“¤“› —’“¤Ž˜—–•œž™˜•’’z”œ–›Š–™š•™™n–š”‘˜–¡™˜™“–¢–‘”˜–‘–™•–‘“•“’žš••š›—¤£”–˜œ’–ž„•“¤‘š™”Ÿ•œ‘–—‹—­“‘–Ÿ‘‘¤˜™•——“••““Ž•”—‘””™™—”’‘š˜“›Žœ˜ŠŒ”—¨””•˜•”w–‘••™”•˜–”™Ž“’™—˜‘š•¢—§’’”’’ž¡œ”ž™›•Š—–š¦š——Šž˜‘Ÿ¬–‹””™’•y™œ”“‘š‰“’˜•—œ˜Ž–““™¨ŸŒ¹®’˜‡œœž’š±Š’˜‹”‘”‘›™–ŽŸ¤š—œƒ™”¦“ž™•ž·œ•”—š’…ž˜••– ˜š‘”“—¡Œƒ—–žŽ•¨——˜••µ—µ¯•¨Ž¤”•“žœ’ªž–™œŸ‘“˜ž–œ˜‘”˜œ‚›‹›•——²“–Ž•¦¤ž”§’”“˜”˜”–«’–˜™˜Œ™˜–—Œ•™šŒŽ”–‹”—’–‘Ÿœ‘–”–±‡’¦–𥕙‡’Ÿ‘”’Ÿ˜•–‰ ›š³”‹™©£•¡ –•”’›‘œ‘’Š¡—‹¢¡ˆ‹˜š—“’Ÿ‘“Ž›’¥‰¥Œ†’–œ–“Ž•¤¢ ŒŸ—–“–™”™”Ž’ƒ“¡’›ž•›’•‘™ž‰–™š“˜ Š¨Ž”•™˜Ž¥”¢——•–˜‡“•‘™“ ŒŸŽ–ž™™Ž’’–©˜‘‰’–Ž˜˜–œ“œ›› ”’—‘–‘Ž”¢“‘—–’š‰—–‰”Š—¨•Œ ¡•—˜™“Œ–Œ”›”›¢–˜}‘•ˆ“˜’”—’Ž™™••ŠŒ–Žž’—–”šŒ“ƒ‹’”“¤˜˜Œ’‘”’—ŒŽ’•’”¤•”—Œ›—‘£—“Ž“’”›—‘•š””’’ˆ‘–”‘Œ””“Œ”Žš˜‘•‘˜•ž“™’šŒ‘™“—’‘–—Ž———‘”‘‹š¢š˜š•˜“’‘˜‘’Ž¢“•”˜‹“œ–}“™–—˜ŽˆŸ™”™›˜“•••…“‘Ÿ¡˜š–“œ“š’•š™—†‘”––œ˜’ˆ–—˜”•š”–••ˆ—›’¥Œ˜ ˜˜“¢•ž˜‘‘—“–“–˜ž™˜‘‰Ÿ™™”•”—’›Š•’Œ“’’”•Žœ’••’—œ•˜œ–š“£–››—“–œž˜Ÿž™™˜š™˜›–¢”šœš‘›š˜— ‘‘š•¡•šŒ”¢—’—ž™“œ’ž˜™Š–™£˜•”™Ž¦¡–—œ˜™–š™œ•Ÿ’•š–…‰›’‘Ž”ššš•–¡†’ž•–’†¡‘ƒ“›‘¡’µ—’ƒ›’™›‘Ÿ™’–˜œ—¤š–Ž”‘•’’”•’‹˜•¡œœ“‘”Œ—Ž“šœ•¢’š™”‹˜—˜—•–™›ˆ¡˜–‘¡”–‰š™‘£Ž“—˜˜’”—œŠ–‘˜š—™—™‹”’™œ•š–‹—£ž™™’–’’Ÿ“ŸŽ’›™‡ŒŠ„•˜›“¢“˜•¸“–§–™žŠ‚Ž•• £Ÿ™˜—˜†ŠŒŽŒ”˜y‘”Ž’™°œ‰Ÿ”‰Ž“‹–—Œ‘”“˜°œ˜Œ—Ž•‘™“œ“™“—‘”ž—˜”¢¦“‚•‘’˜•’‘Ÿ”ŸŸ‘Œ¤—Œ–ˆ}Žž•¢˜–šƒ•¥™Ž—¢›‡Œœž•š‘–¤””•™›š¢ŽŸ˜•Š¡ “•‘Žšš›˜•Ž”–š˜—€”‘‘‘¢¡œ›š‡˜Œ •– •‘¦‘“’˜ž‰’˜ŽŽ”‡˜¢ž”’š„‹–Œ’„˜”Ž“™•¢‹š”žˆœ™’Šš“œ”˜Œ“œŽ“¦‘š«–›‘›˜šŸœ–žŽž—Šš–”•ž—«žžž¡™˜“”£«˜‰”“ž––¨—†’š ¡¡¤›¦‘›¦–¯“—”•”–¯¢ž™¨¦§‘—œ¢™”™Ÿ‰’¡•–’˜¦‰›’•™Ÿ¸©™ª•”¡—«™«‡¡›³”¤ ™•Ÿ±––”•‘¤¦”¡›ƒœœ•š”Ÿ¡”Ž–”³›¡Ž”œ•Ÿ•ž’—±”™¦–›—™˜œ¡œ•’ˆ›•““¥”•’Ÿ˜|¡¢“Ž˜•˜•v‹––˜š›Š—’Œ’ž™™•™ž¢¡—™•Ž…–”‰™“—••–¦”šŽ‹‰”€}‘†”…ž˜˜”™”˜‘šœ–š¦“Žš‡šŸ˜ˆ¢•—‹ˆŒ—•–™ŒŠŽŠ¢ž£y‘“£“‘‹‘’’›‘Ž–šˆŽŽ’¤“˜’–”‹’™‘–’•€Žœ‰˜˜Ž‘‹‘†™’œŒ Ž™Â’™p”Š‹˜š“™“™•Œ¡’’‘†ŸŽ‰…“‘‘šŽ£™’œŽ‘•’’‘‹’‘•Ÿ’Ч”Ž©‘Ž“’Œ”Ž—›©——Ž‹˜’Š“›””𔋑‘›¹‹˜ˆŠ‡–“ˆˆŽŽŸ’‘‹›””™•–ž–›‘“˜Ž‘¢œ•Œ‘”œ–‘“”—›•”­Ž“‘˜–—œŠ“—™–Ž’“¤—Ž—Š’Ž•Œš‹——˜–™—š—“Š‡”œ—™Š¡˜•˜œ““‘šª‘†ŠŽ—“›¦—‹•‰”•—”‘’š’—’‹‘›—˜Œ¡Ž“Ž—š’˜—Žš”‘Ÿ• •—•™š™“‡”•’•‘¥¢˜—œ‘’‹•‘“˜˜›•‘“ˆ’˜’–‘–‘—”£~‘–’œ”–›™—–”¡’Ž•‰„•”•œ“‘‚•‰¦‰—†“ŒŽŒŽ“’}šœª¤‹—› ”•ˆ—‘—–’”’›ž—“•™•—œ••› “‹™‘Ÿ’’š––•˜Œ‘–—¡ ‘œ—‘ Ž‹—Ÿ”“–•‹’›“›š•””œ‘”‘’›”•“š‘ Ž–™›ˆž—œ–˜Œ•“’¦˜¡‹–Ÿ•’Ž‘“’œ‘“‘•—¤“—””š”š…’œ”™Ÿ”‘–~‘—“š‘š•›’ŽžŒ“’‘‘”•š—–•™ˆŠ£šœ—‚›™•ž———ˆŠ–˜’••“œœŽ—Œ§˜Œ˜ž™‰›–•º š–’’¢“–­‹“ “–‘•’”†Ž˜—›™”’“ž‘”‹– ˜“—™”’“˜˜‰Ž“™œ›œœ—””§™–”Ÿ“”’“†••’“‘œ“›”’šš™™ž—ŽŽœ¦Œ™”–’•—’𔑕’”–•˜’‰¡¦’™†›˜’–‹“•‘–ޤ““‹Ÿ—”˜–˜”•’•”’–¢˜™”Е𒙔•“™’›ž¥Ž© š™š˜†–Žš•¡›•™‹”œ™•‘–š“”—œ‘™Ÿžš’Ž‘›ž“’˜‘–š¢Ž‘‘–•–¢ž™Ž‘”‘•“”–Ÿ›’–¢˜”“—Š¥œ•˜•—‹Œ›˜’“•›—”—š”šŽ’‡Š’Ÿž‘•£Ž›—š­–Œ“¡™™¬‘—™“Ž–œ™‘’–‘¢“–—š”–”˜˜‘”ާ—•”˜“’˜š¡‘˜Š•––’”œ‹„š•œœ••˜ž–”œ˜’¤ŸŒ™’“‡˜’“™‘–œ™”™•«­‰’—––Ÿ¡”—“™”™–•£”ž“—¥©›™›œ—™—‘¥•–š—•˜Œ—“•’˜žš™—ˆ–Ž™†’£‘“Ž™’’’“˜’˜Š–‹œ“–“’” •š—“›”•Žœ›Š—‘›Ž™““’”“•Œ™˜–ª˜”š™“œŸ‰•Ž£—‘’˜”›› •œ‹£¢••š—•–’–’˜’šˆ››ŠŸ—†“™š¯u›‘’’xŠ˜˜‰¡ŸŽ›„›}“ ‹…›§•££ž¡›€”’ ˆ‹š†‰ š‘“Œ‹¤Œ¤‹›•€›ˆ›’š—‘š¬‘‘œ›•š—v›™ƒž”‰~¢¡™š™—‡•Ÿš† •™„~˜šŠ‰‰Ÿ£•Žž”•™qpˆ‘‡°›š¡ ›’˜”š³””’ž¢˜‹––Ÿ…“𦥑–ƒ¤z«š¢š––š…ž¥‡‹’šš–††žžž—’’Ÿ„‰ž›•”¤”Ÿž£T›ŸuŒžƒ—“‰–tš¢—~‰Ž‚–Û”›’˜”‘~Ši‡•Ÿ’–™‰••†—•––’¡•¡˜—𙓗’“Ž—›™£“–““œ–•’–‘–œ”š–˜–Ž–¢£—–˜“‘— ˜“˜’™—”–”—“—Œ““œƒ˜•——•Ž™•—•˜•›‘™šš‘ž”¨œ’’”“–“Ž—”˜˜™–›™’‹˜ž”‘•—‘˜“•¤–‰Ž–•Ÿ–“’”˜›––•—‘”“Ž–‘–”“’•“™‘’“—˜›œ–•˜‘šŽ’˜“¤—˜™—–˜—‘“˜Ž“—𙓑›•›™•ž–“–‡–“’•š›“š—’•”›˜‘–•¯•–™‘–‰–—““™’—…“’™———“”••‘•¹©””›Œ›‘¢˜š—’¥•‡”†˜œ”…““‘¥›“‘„–““™£”™–—“¢•–”‡’‡™–œ’•–—˜—–”‘q”ŽŠ–’Šš‘–}—’Œ—™–v­ŽŽŽ—ž”›”Ž˜“ž—•‹Ž–›™–”–—‘”ŒŸ–¡—‘•‘™†¤’’‘–„‘’••œ“™˜ ’––’–™•‘’˜”¡””•™Ž–•—•”‰‡–™•’˜“…š›“•š¢œ•˜œ”ˆŽ››•“—‰Š““‘––’’›““•“—™‘“¦Ž’œ”‘ˆ•’•”‡•‘ˆš˜“šœ–‘‘››†ž”˜›š“”•‹š—š•—‘ˆ“”‘Š’Ž©’™¤”މ„˜‘’‘™¡‘———’Ÿ”žˆƒ––—˜•š’ Šš’‘¡šŠ“˜‹•“’–Œ‡“•‘™Š‘“©™››Œ˜‚’“Ž““¡˜““Œ—žŠ”•††•œ¤”„‹˜š›¥•¤—’“}•¦™‘˜–ƒ‘™˜Ÿ˜“’“š–Šv¦™ˆƒ›‘“¤—•‘œŽ“𒛆ޗ‘™Œ‘“š’‹¢˜“”¦—•›Ÿ”“Ž’•šŠ Ÿ›œ‘Ž”ž•‘’“˜•‘“‡…›™—”އ‘“—©›Ž›‘””Ž‘–—“•‡‹™ “Ž›†›‘™¡‹•ª’“™“™’—“š‘™—“–‹™’—‘‘Ž™ž‘–’˜ŸšŽ™˜ˆŽ‘”–ŸŽ•š•Š’©Ž™’œ˜—›’˜›£’›Œ™”’™–Ž”•¢”¥“…‘¡œ¡Ž ‚‘Œ”£‰—™—’œ›› œŽ•¢’˜zž‘ƒ“’”’‹—‘œ–˜|“‘Ž„±˜š•–œ–’Œ•‘˜©tœ’—”§›š“‘ŠŽˆ‚–œ‰„¢˜••Ÿ‘‹Šš‘˜“›¡‘–€Ž¨¡‚˜‘Œ––•˜‘š’­’™¥š™‘…›¡¥•‰ž—Ž‘—–ž› ‹{™Žžœ’‘ž‘•““–“˜‘‹’›——|’›‹¦–‘˜ŒŽ–‘¢¢–ž˜–—”“£‘–•Žš¤–”œ¡‹˜’„—’˜•Žž–¥…ž”’’›Ž‘˜°‘˜Á“€—••›Ÿ‘’”˜“š™˜•’ŠŽ’¢…™’‘·¡•˜Œšž¥”Ÿ•ª¸Ž†Ÿ—ž˜›«—ˆ•™‰“„’“š“‘Ÿ…–’}Ÿ –•”—ž˜Ž’±—“•’˜Š•”–——Ÿ¢‘›Žš”—–•¡‰žŽ•˜‹–…–ž”£˜“™’•—Š¡œŒ•’•™£Žž‰‘‘ ž‘’šŒŽ’¡˜˜“–“™¡•“‹Ÿ”•Ÿ–‘™”œ›“—’‘¨˜‘”””“•’–š•“•˜Œ Ÿ‘˜Œ™““—‹•–œš‘š‡‹˜”—˜œ””’—™Œ‹›œ›‘—”—’—™‹‘Œš’’™‹’Ц™Ÿ’š“’“Žœ““–‘’˜†–Œ’šŽ’–‘”˜›‡‘›‘•˜ž˜›–’“¢›—’“—‹•›‘––‘‰£˜””‘–—˜“‘›’Ÿ’›™•˜”œ˜•‘š•––’–Ÿšš•——§—˜‘‘›—•—Ÿ•““™™šššžŸ•¡›‘”®”˜—••–——’Ž‹ƒ˜š’ž˜–™•‘”œ›’•’’…”’𔋙Œ•¢‘ˆ•–“‘–‹˜’•”–”‘š˜”«œ”’›“”’™–Ѝ•“„‡ž|’š‘œ’“—ž ˆ“™‘”“–“—’ž–‘ƒ–˜‹—Ž¡”’’‚‘—˜”““’£‰•“‘‘’šŒ‘Ž–†’ˆ„¡ …žŠ•Š–•›–’Ÿ‘•œ‘—“•—‰”ŽŒ™…‘‘”œ›•˜–Àœ–˜Ÿ ž¤¡Ž””˜Ž¤“‡’™–”†——––Ÿ–••›’±™ œšœ”¡““’”†–Ÿ”‹“Ž˜ˆ•¡”—š““•i›™–¤”’ƒ“Œ™™’œ—’•°—–—’•‹‰‰—˜›š“–¤™’Ž£—“Ž–—ž”šŽŒ§’‘–—Ž›•–šš–•›”—žž™‘–˜’’‘š“ ‘——™ž —¦—š‘‹—–•–•“¡ ž”” ƒ‰žœ†Žx–›  ‘¦’’–§š’––ž’–“˜“ކ𗙗–‹œšŸ›•–—”˜¢Š•œž’”•— “’–—“˜ˆ¤™–Š–ª•›™–™˜˜’”—“¤š”™‹—”–˜¡š ™—™š’¡“ˆ•£Ÿ¦™–ššœŽŸœ“˜•™•–Ž„—™~‰•–¢”——𓤖“” ”ª’‘‰˜‘¥˜š”™™£§›‹—𛕓Œ —˜–Š•¡’‘–ŠŒŽ“Žž’‘Š“–¥‰”“–©”–¤œ˜›¥’‰›˜›–—ˆ‰›˜’™ ’–”Ž–›™Ž™ˆœ‹“Œž’’Œ••—™Ž•™•œ”’œŒ|–••›”šˆ”‚†‰Œ‘•”‰”𓳖…Ž–”“”Œ©Œ“• ™›•‘”Ÿ’“˜”—›–—ŽŸœ”—žŸ—˜Ÿ™‰–˜ž ’—ž™‘“…‘—‘‘ŽŽ’”–“’–‡‘”Œ’šœ”¡–™ ’–Ÿ‹’–‹¡Œ–›š—–˜”–•“›œ”š§‘ŒŠ“Ž”“ ”™˜’‘Š™“Šœ•¡—•‹—Ž—™–Žš’‘””‘…‘’–‘’›œ’‘ˆ”›˜†Ž•‘“Ÿˆ—Ž¥™“¡“˜†œš”˜“ŸŸ“Ž‘›Ž’˜šŽŸŸœ›˜ƒ’™ŒŽ™ ”™••­œ••“š¦Ÿ–Œ–“ޤ” ›Œ’–Ÿ‘œ”‘Œ™“‘—ž”›œ—™ŠŠŽˆ••š‹“Š†‡Ž›™šš”–’•‘“–‹Ÿž|¡Š•”‘–‹”Œ•ž’˜‹‘”›•¡‹’Š‘’–•œŒ› “˜’Œ–™‰ŠŽŽ™‘ž“› Œ’}•Œž–Š˜›™™¤ž œ”›¡—•œ˜‘‘š’’›‹‹š’’••–”Žž’”•Žšš‘Œ“‘š“’Ž•š–‘“œ—Žˆ˜Œ–‹Žš˜•—“˜”ŽŒŽ›œ“’ž™œš–š˜—˜”Œ˜•‹”œ—Œ‰”“…•‹“™˜••’Ž”Ž“š¤Ž˜‘’™—–›š˜˜˜–’“˜“˜“Œœ‘Ž—‘™Ž’˜™–š’˜Ÿ–—™•”—Š—•“““¡‘Œ•Š‘Ÿ“˜Œ™Ž’’š“‘ŒŒž‘’“‹Ž‘–”•˜š——”˜ ‘ž–™—“Ÿ•ŒŽ•Œ“‘š“ŽŽž–˜‘’Š›“™’£›’Ÿ”˜ŽŽŽ“‘•”¥˜™•˜•‘’—˜Š”˜“š”Ž‘‹‹‘š›—’–Ž”š–ˆ•›“ ‰˜–˜”˜‘„—‘’”‹––œ“œ”…’—–Ÿ—Ž“•“Ž–¤•¥ˆ‘–Š–––‘•“Œ”•©‘…‡˜©‹‰œ¡’”Ž‹–˜‰¬™š˜–”›——Ÿ¤™’˜••˜“š˜’ˆ“‘Œ„™ž•š‘›—”–ˆ˜Ž˜–”ŒŽ‘Ž—“•‘˜“•”£ˆ–•“›™•”–˜’•œ˜š†–˜‹––—šŒ•˜’‘’—™˜“—˜”‹…˜‹“ž‘’ž–•Ž™’”‘Ž‘Ž”š—“š“š”Œ‘‘——…››”—˜•‘¡•‘–›“‰’‘’™™”’Ž™Šž•ŠŽ™œ™—›—®‘Ÿ’“’š“’“Ÿš‚–ƒŽŒœ‹’‘—•˜š†›“š‘›”œ“™œ •’˜˜–—–œžœ•“”•§Š™’“–•”ˆŠ‡——š“– ~Ž”˜„” “–Ž“ž§•™•™˜’Ь’‹’””™”›™—˜”—Ÿ’”’˜•¡”‘‰‰“–““ŽŠ›Œžš““™Š›–މž–›Š œ¥Ž™—‘‡“žŒš›““–}œ¨Œ›” ™¥™˜Š‹“’š”—•‰™“Œ’Ž•„ŸŸ—™’¡…£—“ž“–‹™‰‘™~’›Š˜œŽˆ–•›š‘• —’¦—¤ž–ˆ”˜¦Ž¥›ƒ›’””™˜ ‘©’“€˜™¢‹‘“Ž™ž“žœ”˜Š£›¡œ‘Š”•–£‘‘Œ‘”—•••¤—Ššž›•™˜Šž–“˜“— š›š—•”Š•“”’˜’•“•Ÿ’‘‰›’””’™˜•¡›‘Š•Ž•šš’š™ž˜––‘’”š’–Œ–‡“ˆ–œ”Œ—ˆ™ŽŒœ› •Œ—‰•„›“”——–•”—‰—œ’’“’”’™š’•¢¨‘˜‘Ÿ˜‘¢ Š£Œ–ŒŠŒ’¡• ’–‹ˆ”“’‘¤‘•º—“˜•˜‘›—“••‘ ‘˜™††—‘–ˆŽžž‡‘˜™£“”‘š”¡˜Œ˜˜–™‡’‰‘›—‰‘ˆœ›–˜”™…–Š–›™’’’˜‰—š™„Ÿ—‘ž—Œ¡Žš‹“”•Ÿ‘v‰›ƒœ”š’–”‹¬—‡‰Žž“…’˜–‘ž–ª—’˜‘žœ”œŸ•˜Ÿ™Žˆ”™¥ž “˜“•—Š›™‡Œ”›‰¡–•”””˜Ÿ™’†Ž”˜›š’˜ ¤’•––œ˜œ“›“—Œ‡›‘}†‘™˜–¤œž›–˜Œ˜–’•Ÿ—Š’’š””‘Ÿ›–™ž—“š“•“¢›’”—˜–˜—Ž—“–’“œ™˜”˜Ÿš••™˜—“¡”™™”—Œ•™˜“‘’™ ’–š’‹”™™–‹‘˜—›–“•”›‘›‰”—œ˜™š›š–—¡›‘•—™›•š‘•”™˜š”Œ™™–’¥›œšž’–œ™˜““•˜ž’—”’“‘›–œ–—”˜š•’žœ•–˜•˜•Ž›•š—‘””’œ•–•’š–™–—¸’Œ‘˜¡Ž˜™š›œ—’’”•Œš›…•’”˜—›‘–Ž—’˜“œŽ˜•›™—˜˜ž”›Š˜‘ƒ‰Ž’“Ž”Žš““Ž’‹€ŸŒŒ•˜’›‰“”’•“‡ž’’š“•’’’…Š‹”|–’–™˜”Ž™‘†Šˆ‰™’’”‘•‘‘˜—‹¨—‡——–ŠŽ‘™“’••˜””“€˜™—‘—’™Ž‡•”†—‘•‘ŒŠ‚‘”Œ‘““ŒŒ˜”’’‘‘”™}Œ§‘–“–Š“–Žš’—’Œ„Œ•‘’Ž”•”“’‡Žš—”—•w’’‰”’—¢”’‹’€Œ””Œ•”–¯™‘•Šx“•”””Ž““”•‹”„š œ’——Š‘“£š„“šŠ—˜‘•˜“’“Œ”…Œ¡”‹Ž“Žœ–œ™”’”‰‹›”‘™‘˜˜ “”‘——‘Œ‹˜ ™›‘–‘™“•£–‘Ž™“••—Œ—„ž—”’™¤Š—‹”“‘ ’™‰˜‘¡‹Š‹“š’ ˆŠ–Ÿ•|”’Œ˜«˜œ‰‘“•¢“”•—”ƒš”‘‘›—¦™’š“Ž–šš˜Ž“—¤ŸŠ‰ž—•¡‘”—›š–¢›‡‰›–•““—›‘œ“z’‘‰Ÿ–”„“ŽŒ•”‡›’‘—š¤š—Ÿ•–š˜˜Œ“Ÿ“‹””‘›‘›—Žžž›§¨ ”›™¤ˆ˜¢‹š•¢¢•’“’™§Œ– œœ“‘Ž“˜ž—”—œ›¢ˆš›“˜–œš›—Ž•˜’“~•–¢ž‡˜†””žš•™–¦Šž•“”‘‰¢•™•˜š™–Œ“—‘£Ž‹“œ”ŒŸ–—¬›ž§’Ž•—™•¡’™Œ€—š“š•“°š••’‘›—™‘š””Žš’›”˜–”–†“š˜™••–›¢‘—“›™˜›‘›•®–’™‘›–’˜™”ƒ˜–›˜ž‘Œ¡”™˜–šŽœ—Ÿ’ ’’”‚§Š£š–›ª’™•œ˜—‰”‰˜™—™ˆ“Œ““£›’”˜• –—•”‘ž“—‘¡“¤–•š‰””‰’š™ž†˜˜‡–Œ’‹Žš’”•‰‘˜”š–œ˜”‘‹¡˜‘¨Ž‹™š’”¤œšœžŒ|Ž˜œ›š™•œ™š”‘™¢•𛕙ž–¢’“”˜“ž¡Šš•‘œ˜†¬––ˆŒ•ž˜› ‡Ž–‘’’“‡—‹•±“˜˜œ™Œ‘Žœ‘‘žœ‹Ž™¦™–‘“”‘”•••—ž’’‘œ˜›‘ ¢‘ƒ™–™‹¡””†œ‘‰‰Œ—–’““˜œ§Œ“‰–Žž’—ž‘©Œ•¢‘šŸ›‡š——‘žˆ—y˜ š–—¤’„š”Œ˜””’—•™ž–œ›˜š¥–“››˜’¡}¦¦›–y¢•œœ”žŽ˜œŽš‰šŽ™žŒ–‘’¦ž˜‹’”›–”›Œ•´’‘––|šŽ˜“ŽŽš•Š’”Ž–™–’…•œ•ƒ“˜ˆ›Ÿ‰ŒŽ”¨–—’”ž‘•——Ÿ«’’œ•Žž–’”’“‹“š”—›™Ž–˜š“¡–“‘—“—‹š’“–Ÿ“‘•””“››šŸœŸ“––…ˆš¨–Ÿœ†œŠŽ“““¡™–¢¥›’‘Ž˜’¡—”¤–˜ˆ‘›…¦œ‘†•˜˜‡—£››–“¢{–†‘“‹˜›–”™‘–—“Œ—™‘‹©“”“‰”™œ›œ—“•‹“‘–”˜”•¥–£Ÿƒ¡–Ÿ‹•’›“£š‰‰Œ—–‘—œ–™ž—’˜’’†–¬–‘˜¢–•Œ ’”—–––š—›™–žœŒ—Œ—’’“ƒ•–˜ˆ‹Œ’–”™˜Š”–—™¦˜ž•˜”•™ž“—™“œ„™”ž£—ˆ’“š–›–•——‘›‹’–•‘•œ–š•™˜‘”š„”™•š—˜–›’”Œ‡”ž‘‘˜™““š“’¢–›”Œ‘“—’†„–’Ÿ—Œ–¡–Œ”§™§” ‘ ’œ’’—¢™’Ÿ†”—”‹…—“”™˜—–˜Š›ž—˜Šž¡Œ•š••Ÿ‰œ—••˜œ˜›˜œ™žŠŸ“˜‚Ž–“˜¢Šœ’‘•›‘“˜”–”›’š•Œ•‘–™™’•“•““”¦š•œ™š”ޣ𕛗‘¢ ¢¦¤”¡ž™‰–™Œš” ’Ž“—Ž˜’‹•¢Œ’Œ•—™•”¡“’“¡š–“š–š› Ž’’¥žŽ™“™›–‰‘œ˜•š•‘š™Œ¢‘˜˜•š–Ž‹‘—“¡˜•›“‘–‰—‡‘’’‹Š’’ ”˜™Ÿ›™ˆ¤•‹”–š™ˆ˜‘•’›•Ž“Œ“•¤”Ž‘‘—˜”Šž“‘‹•’––’š•‘—’“šœ””’ž˜—˜Ž•••“˜–‘–˜™‘™ŽŽžŠ“——‘Œ”‹’š““‹•x——£™¯Ž•Š”—“’š”––™•“–”—™‘œ„œŽ”Ÿ–™†”¡‹‹ž“—”Œ—–‰•š˜‘”–Ž‘”•—”“”«—”™Š‹”’Ž–’”—•œ”—”Ž”˜˜•–”•Š‘“’’”›œ—–¤Ž‘‘¤“—’¢”‘““‹•’Ž”œ—“šŠ’–’–•‘š‘™•“›™“‘„’”Ž˜¬˜–™‘–¡—›”¡‘–“™–””™•§œŽ–•—”‰” ““—–˜›¢•š’š™Ž“Ž””——›™—–™ž—„’œ˜—’ŠŽŽ”“•—šœŠ”“”‹œ“œ•†—ž˜Ž”“—“ ›’—¼““Œš“¢“¤˜’–¢•¡—–‘’™Ÿ’“›˜“™ž—˜‘“’–—˜Ž–’–Œ“˜“š–“—™–Ž••’š‹˜••Œ”’Œ“•”‘ˆŸ‹˜˜ž‘”—‘›š‘“‰“•‘”œ˜–’—’’–’—•–•–——š‘›Ž˜’•‘•”•›‘˜˜—“˜•–••‘˜¡š’Ž”ž—ƒ’–‘“…™‰“”š˜”Ÿ’—”–˜“”˜—•˜š—”Ÿ•›”•™’›•‘›•–“š•˜’š—–™”‘–˜šŸ‘Ÿ“œ“•—”™“›’š“˜ ˜™›…—˜œ••”“–”””—”“—ª—™Œœ˜ˆ•—˜™–‘››–Žšœ›“™– Š“‘’“™¤“’‘™—••›”••”™”š“’—›’”˜±‘–”•‹”‘šœ™–——•”–Ž”‘”•’—™œ—–™š•”™”‘”–—‘–’ —™•Ž”˜ž™™–’”“”•›˜‘”šŽ—™•–””†“›—˜˜¢–š‹‡—•’–Ÿ–“•˜˜œ“˜•—’¡‡”¤ †™š„—Žššš’•’–”–‘¯‘‘–‘‘¢‹š”Ž‹£”…|–˜š…›‘–•‹”‚‘‘•žŒ• —Ž’–”“–˜Ž•˜•¸”…•’‰‘•œ’‘£œ˜€”Ž—”£Ž«˜•™“–›œ“™Ÿ‘”ž”Œ˜’ŽšŽ›ž˜Œ™žƒ¦•š ’š‘›¦›‹¦Ž™Ž‹Ž–”“’Œƒ™Ž¡”•Š—™Œ˜Žž’›™Œ›‘’’š——‰–“¤“Ž–Š’‘•”‘˜”–”š™¤ˆ“™—‘”•šŒ““•˜’Ž”Ž˜£Š‡˜‰‰ƒŒ“ž•—š•—ž‘“™’ˆœ“’£™’–“‘™˜Ž–š•Ÿ‰–’––™˜—–••¤Œ–“šž—”“‹Š’‘‘—™–••—“‘•˜œ’”™’“—˜’}“Œ——•…•–•š‘™•‘’“™š˜‘”œ’•œ„–‘—‘“‘‘}”‘’—ˆŒ™”•™‘|’†Ž˜“˜™‘“˜”†“‘™Ž˜™”š——–—™œŸ–¦™š’˜•“’”›Ž™›š‘‘—’“–•“žš—”–•ƒ“™œ”Œ˜‘”–‰–—‹’““¡’”Œ‰‹“‘Š‘–‰–’‘””™‡‘™•Ÿ–“•š—Ÿ–œ‘“–”À–›”“š†’“‘–Ÿ’ŽŒ’•‹’‡•“’š“——œ””““’Ž–““ ”“•”›•™““˜£”“Ž’š˜•’•’“•—˜“‘›Ÿ—Š•–‘“š‘œ•”˜“”•—“‹‘’–œ›”““™š’˜’’›“’ˆ’‘—‹”‹•“‡Ž”•Љ“’“–““–“…“––’““Ÿ’‘•“—’—‘˜”˜—”‹’Ž“““•’—’”““Ž–“‘ž“––˜““‘“—˜’’’•š‘˜“‘“”‘“˜“””“•–“”‘——Ž“•›“š™‘˜”““œ˜”›ž¤“——“˜™“••—”’—Ÿ•‚“ž•Œ—–”›“’™‘” “œ—’’™—•”•–™˜™•ž••˜™‘–—–Œ ”˜¤•ˆŽ””ž‘•Œš˜‘˜—”‘Žšœž¦˜ž“–—›–‘•šŸ•“ž‹‘š–Ž™“–”‘‡–œ”Ÿ‘•”–š–‘““œ•Ÿ”•’‘¦˜•œ‘–‰’œ˜—𑤑 ”†›œš–ˆš’—–Ž”•™’•ž“•›£˜‘Š”‘“———˜Š“‰©Ÿ‰˜˜¡•Ž—†“ªš—‘‘˜–™›••‘™–•ŠŠš‘•{“““•…›Œ“‘–šŠ›“”Š––†——™›–—žŽ•’ˆ‘“”š•—•–™˜‰”‹“ž“𙓛•”‘Œ”””˜•”“Ž’™–Ž“—‰”•œŒŒ—••“–š˜›‘—’“—–’“‘’ž”˜™’•šª”‘›ŽŸ”›”Šžœ‘”Šœ˜š———–“–Ž‹’• ›“•™†’˜—”—•“˜˜—˜•›—”‘Š’‹––•’”ŒŒš•“•“˜”–—““Ž••Šœ””——™š”’‘œ‰•’’Ž“”“”š™ž•—”“‘›””—––ˆ”•Ž–‘™™•›Ž‘‹˜£š›–—œ–“ˆ™—™—™ŠŽ–Ž’Ž˜”š–™š‹”–Ž‘“’œ¦‘•š•˜‘–•”ž•Ž™¥‘𛑒œ™’””’•‘ˆ˜”™˜‘˜”¡ ’¡‘”‘”“Ž“–‰’˜‹š”–”“œ—–’‘Œœ’‘“–’—Ž•š“˜Ž‡’“Ÿ”—”ž”“’Ÿ ”˜Ÿ’‘••Œ›’–“’–’œ™‘‘˜—š“““‘’šŒœ••Ÿ“”‘Ž‘’›’™–’™—‹”˜’‘‘ž˜“ž——“’‘™’˜›“’“ž•—–Ž’’‘—”“™ ’𙕋‹‘”‰ž“Œ‘›ŽœŸ™—••Žš““Ž–Ž’––’—‘™‘•‘—¡‹‘”•”Ž”“‘•–š—“‘—Ÿ’”““Œ—“–”‹—œŽ•“•‘‘˜”—”‰’–›”“›•—“Œ‘žŽ”’•“œ†”””‘—–•š•’˜’““œ”œ”‘“•Ž“•—–””’Žˆ•™”Ž”••‘“Š‘•–•‘•š“–•••˜”’•‚“’—•”’‘“”“š’––•”•‘–‘•‘•‘—‘‘”™‘–ˆ–“‘Ž”›”””™“–•‘–•”–‰–•”‘•’“—’”™‘”——‘™˜”““—‘””•””Ž’’–˜šš—¡Ž”ž˜žª‹•“™”•š‡Œ”„—‘—”™›–Œ›™¤‘’ ¥”¦ž‘”‘Ÿ’‘˜œ©œš“𔑣 ž•†Š§Ÿ•“•ŒŽv“˜—’—“x”““Ž“¤¡‚”‹Ž—†’Ž“•™““„“±™˜›“‹˜†œ —’Ÿ…Ž“’• £Ž›™’–˜–”ˆ™œŠ”’—¤¥”‰š‘•›ž‘™”™œŽ™— — £™ˆ‘¥–••†™£¡œ™‹•‰›–›“—””Ÿ›Ž¡“¤™œ¢“𔡕’”˜œ—‘š ™Ÿ–™ŸŠŸš“—•“…‹’”—™•——‹•‘–›‰•™‘Šœ““™Ž˜””’Ÿœ•’”‘•”™”™˜—š‘“‘‘‘•œ“•’…—•‘†¡Ÿ“‘“–•”•Ž›’Œ–›š˜™’“—“›’’“¥”““”€”Ÿ€–—‘›‘¡“‘—”’—‘“œ˜›–“•—Ÿ——“’œ’›”“‘¤’“’‘˜••Ž—”•”’Ž›’’–“•“œ”œŸ”””›–’•”’”’™¡Ÿ”’””’—•“•›“””—˜‘—•˜–’˜’’“’’™¥–¢Ž‹“˜Ž“•’’ŽŽ’‘“Ÿ”“œ••”Š—‹—ž’• —˜šœ—”•˜“•š••’„™–Ž¡’–™››˜••”™Š–’–—“››––˜Œ“Ž˜—™——ž’ž“‘˜›™–œ•”˜™—”™˜™‹‘™™’“”š–“’š“™š˜’—’¢—™•‹œ—˜š‘ž—ˆš•ž––—œ•}Ÿ™—Ÿ•”“•¢™—¡£“˜›•™“˜— Ÿ–˜–‘•™˜•˜’–”•’—™›–’Ÿ•’““› ž™™›—–˜•›•˜‡‘–ޙ𙦓™™”ž“—–““•“‘•š˜‰žš’™•—™££’œ›—™šŸ˜’’‹“Œ••‘’•˜’¡‘•–•”•”™›“˜—‘ޑޓ—’’–•—‘–”™’––œŽ•”’’”˜‘¥ž–’Ž“”“—’’•—‹¢–𛓒 ˜žŽ––‘¨•’’‘•ž“–’Ž—•™—–•›•–“–Œ‘˜•™‘š‚”›–‰Ÿ™”•¡Š’‹’•™”””“˜‹—–‘“—œ’“’Œ•Ž–™››•–••—’—‘˜•““˜”‘”™•˜ ™™”‘“’•™—”••©˜ ”—•‘•›™’–Ž“‘“‘š–—–ŽŽ“˜‘‰Ž’–—œ••••”™›”’’’ޓЋ””‘Œ˜•—”’––›˜”—šŽ”‘”Ž˜•š’’“’“™Ž˜“ޙޒŸŒ™”‘•Ї‰“• ”’˜›•˜–‘‰•”˜““›’–Š“˜”‘”“‘”ޓ𧑒”–‘•’”š—””““‘“•“•¢Œ—™†’”š“”•Ž–‘•—–¦”“”˜‘‹‘”—““Ž’––Ž€‘––’•••Ÿ›–•’–Š•¡˜–Š“’••‘”“š‘Œ—““ž™–’š•˜“š–”—›‘–’“’–“”š•œ•“–•›’•ŽšŒŽ–•š“š–“‘‘””š‘”™–”‘•——•Ž•…‘“–š”•œ¤’’““”˜—™”—‘ŽŽ‘‘’“™“Š––’”˜•”““—–’™Œ’˜—‰• •‘”””—“¢“‘“•››•“‘––––”Œ‘¢““’žƒ““•’–”— ž–”“”–¡”Ž“–“”Žœ˜‘”™”‹Žœž”¢–œ™”“”•˜—’‘›–“•™–—˜’—”•‘’•–•Žœ‘“•™’š‘–•››–Ž’™—Ž’—•ž•‘”””Ž’––™•—–Ž“”–š“‘—™‘›—š•”—›”“”“•˜›“””—•Š™”‘’“–Ÿšš‘‘‘”œ˜˜’Œ–œŽŽ‘•™™”˜›–•™‰“”ŽŽ’—›š”’—’‘šŒ’““’•”˜‘’–œ‰““šŽŠ™—š–™“Œ“Ÿ—‘—˜•’‘•‹‘”“•˜•’”–““’‘–”Œœ‰“›”˜•›“’™––š‘™“’”—•›£’ƒ—’’•މ––““–Ž•˜™’•˜“”””™•Ž£“™š–™ž™•–˜“’‘•’—–—“˜Š•–”‹”““›‘’‘’–š”˜˜–•›•—–“˜–‘’—ž‘މ›—–™’˜‹’”“—’—•–“—”•—˜––›—˜–š™š™Ÿ†”’w‘–˜–“™–š”•Œ™ŠŽ”““™••Žœ–›••–‹•’”‘Ž•›¡”žž™•”™’–“–––Œ‘œ‡•”—–—•œ š–¢™’—˜–‘›“™œ“–•›“š•—™œ–š™£Œ˜—‘•“–‘šŒ——™™›…˜œ™š”¤’‘——”–—–š–˜™–’ž’••–Œ˜’š•—™—ž”—ž•“–”˜–•––—””—‘Š”™™”›˜”•š–•ˆ¢ž‡–’‘˜˜“™˜•‘¦‘™Ž“››‘‘”ˆ¨‘–•‘Ÿ–›—™‘œ™––’˜“œœŽŒŸ•š¢Šœ—™“›”™—”©”˜‡©˜”Ž”™›’•šœ’˜Ÿ‘ª’”–’•𛓓¡‘•“˜‘‹—”Ž•”•’’“—–£–Ž’“™‰’•“’›•“’“•—™‚—‹”“‘’“Š”’š’˜Œ–‘Ž•š”š’˜˜”•š•’”•Ž”¥Ž–ŒŽŒž’“—›””Ÿ¢–’—Ž“˜“š‘“’“›’Ÿš‘˜”ˆ’•š“‰˜••˜”•˜ž£•𙕔“’™Œ”•“œ••›”—ޑ𑖔’™—’‘Ž”™–©•“’ž““’‘••›’•™‘˜–Š—”Ž“‘œš’”˜”šš‘‹™›š”˜’Š“’”““¡›••ž“ šžœ‘”œš•©¥’“›™¡•œŠ‘—¢ ´•›”–’™˜””˜’“ž¡š”¢Ÿ“œ£ŽŽ‹¥˜—•¡“¢–ž“Œ”¢—˜—•––Ž’‘™˜š—“¡‘Œ£—{б†œ¬– “‘ˆ– ›•›•›‘‘𔦋•“œ“¤¢Ž¥£¢™“š˜““”‘™–›–š–›Œ––•™™¤š˜Ž‹ž¯ §™‘——¡’——™¡™“𔡒¢Ÿ›¢¤–’‹œ˜ž›“žž¢’–˜•˜œ‘Ÿ¹—™Ÿ—™‹‰›“•ª–“šŽ¬’œ«—–¤•“’‘œž’ޤœŒ›²¢– Ÿ§¥’’’™—˜’œ›š–™“›˜¢¢—’›ˆ‘šœ–˜˜— — ––“œ”‘”–™š”˜‘˜–“™šš™›–š•§–”–›˜—¤™’𛕤ޒ’›™—œœ™‘—˜•—˜“˜“—¤˜Ššœ›•™ž’—“–—ž’“™“˜”•””š“˜™©£—“‘˜•—’’˜™˜”“–ŒŽ–”•˜˜“—“•‘›–”˜£Š ˜Žš’‘–š”•ŸŒ—”“’•šž“™›š””–𛢛—“”›”””˜––“Ÿ™š˜™Œ‘ޢޗ—Ž ™š–™˜Ÿž˜™‘Ÿ•“™’¡“”“˜–Ž˜œœ›™¤Œ›‹›’“œ›–Ÿ–˜˜›ž’œ——˜š“’‘ŸŽ •˜Ž—”ž›š“Œ››œ•™› ™œž––—¦‘’“šŒš–‹š™¡™“Ž“—”š‘’‘—†Œ™›˜’•’›•—–œ’•™’‰Š”šž•™˜›–Ž•”š–““¡”“– ™€“Œ‚”—”˜£•Ž …¥‘œ‘š‹Œ”˜Œ ”•˜–’™–›˜’œœ”’’’‘šœš™˜š–‘œ››˜”•”••š•••–›™¢Ÿ™š™›œ“’—©•™’šœ˜’’’™–Ž–œ›“˜š”™–Ÿ’“ ” ›š–’–‘މƒ—ŽŽš™’œ–ž‘–“™‹‘›–—œ”™†“˜‘˜ “š–¡˜‹ £‘ ™—“ž•–˜’Ž“ŒŸ•Ž™ˆš¢š£—Ÿ–“”†ˆŽœ›•‘œ”™š‰š—Ž“›‘“Ÿ’ŽŽ–œ›’Ž••”žžœ‘›“•Œž’•›ŒŸŸ–—˜¨– ‘—“—‹ž–‹›‰œ‘˜‘•š›”›™’–›‘–›•Ÿ˜ƒ›’ššžŸŽ™™˜’–˜—Ž‘’ —••’Œ–ŸŽ•‘…œš”™™¦ž‘˜”z”‘Ÿ˜š’™§˜Œ”Š›››Ž——”𔢋£–‰œŸž—’›¡‘”Ž““”—–•’ˆ’˜„ ——–“”š—‘‘œ’š””–‘Ž’‘މ™˜’“ž”›’‰‘•“Ž“‹––ŸŠ–•‘”‘œ”—’–˜ˆ“š›”’œž‘¡Ÿ›‘ž‘Œ“—Ž™™ˆš™——š–Ž‘••—™‚–—ž˜š™’—šš“–ŠŽ•–‘›‘£”–™’Šš‘‘—•”ˆš––¡œ†—†Œ™ž›‘”š ”•‘’–’’†”•žœ”š•“‘–“”•’•š‘›˜™Ÿ’œ—“¦ ”‘™‘›’¡—š¢—š‘’š’•›† •œ••š”šÅ“™Œ’’–œ”¡“””Ÿ˜˜Ÿ—”’’Š‹”˜–’‘•žŒ™••ž”“š—“˜•ŒŽ•‰“™•¡˜œšž™‘’™“’”ž’Ž–€Ÿˆ“’ž’š˜š‰•Ž–—””—šŽ’œ™¡Œ˜‘›Œ™—“ž‹“—’£“ž“™–”Ÿ…ˆ‘†–’—œƒ‘œž—•¡–‘˜–—¥”˜”—𙓕›Ž®—Š¢“–—”›“Žš˜‹‰–Œ‹™‰––œŸ˜–¡”›‰—–‘—”‘–¡›‘“’›£œ““Š™Œ¨˜“­—›’”˜Žœ’޹•Œ”˜“Ž‘…š•”““‡•–™Œ›”š ™ŽŒŒ‘•Ÿš’‘‘“–‰”Œ’žŒŸ““’‹‘™‹‘™ƒ—“‹–›™‘’Ž˜”—’–•œŸšŒ‘”“‰“𛦓™‹“•“‘˜˜“‰¥™“ŽŠ”‘“‹˜›‘ ™’–’†Œ˜“˜†–˜’•‘›Žš™™—’…•˜•’Ž””‚“Ÿ’–‘˜•—•ˆ˜’“œš— ™£•’•‰˜—‰œ“Žš“š‘‘’š†}•š—–’Ž™•‘•‘–™Ÿ–‘Œ–Œƒ›Ÿ–›–™‹‘œ””’™”˜“—†”ž™Ÿ‘‰ƒŠ‹–— –’™˜•‘™†Œ†‹š•’’“—“–‘—š—“Œ–’Ž“”š•‘“”š‘š–”–“’’Ž•–•••“’•“—Ž”“–‘‘–˜’“”œŽ””–”“•‘‘—•—–’—š˜”•”’•“‘’–”£•˜›”’‘˜“𔕖™‘’•œ–‘”‘˜˜™˜˜“‘‹˜“—••”’’–˜—Ž”•”˜“—–—™”•ŠŽ‡––•””›…“——•––”—‘’••‘•’™Ž–˜–”•’˜”•”–Ž™—Ž›’”™•’—”‘•˜“•Ÿ•—•”‘—Ž‘‹œ˜š‹–‘—•””Š‘”“’Ÿ—”‹–” Ÿ–•“”“…”’“Œ—”•“™•Œ˜œ™””™™““•™‹™ Ž”’™š’•‘˜’¡“˜ŽˆŽ•Ž©¡Š™–—–›’•”›œ’€”Ÿ”u•‡”‹”˜•”“’¢—˜Œ”’–’‡”–‘“‘š”—…”’›¡›‹”‘•“Ž—˜ž—‘ˆ“‘§‘’y›—”ƒšŒ’Ÿ›”—¥¥™™•‡˜™”Ž¢–‰’œ–ކ••™œ|€“—˜“•š•Š–“€•“•œ–š•™“˜‘—•“œ“¤•˜† ˜‘›{¤˜’Ÿ“’’—“Ÿ™š”™”“—–™ —–‰œŽ“‘–z›ŽšŠ•’”’Ž””–“”š™–’›’“”˜”™˜–š“•–š–•Œ”“œ•˜–”–—ŸœŽ——‘™–—–”•›™••”–˜—“’—ž •–“ž•œ”“””™——”—–•˜––Š“—›‹š›Ž€Ÿ‘•›‘’š—†ž‘—–™Ž‘™™“’”š—”–’•“‘”œ“’›Ž–’––˜”““–”˜’”’“‘–›—˜œ˜˜‘‡œ”•˜“™•—’•™•–—˜˜‘𙕖”””™™•–‘—•‘˜•–••™“‘›“š“˜‘‘•š¶•˜Œž’™‘—‘š–¢–•š•˜••™Ž•˜‘‘‘•”…•—ŽŽ’”‘“š’•ž¦•ªŽ‘‰“™’•—–˜‘’’””ˆ‘˜•’””˜•Ž—¢™•‘Ž’—˜‹Ž‘–‹Ÿ”…“’°”’–Š–••–Œ”›Ž‹‹–‰”“““Š’™–“Œ™“š˜“™Œ‹”““ŽˆŠ“—“‘ˆ‘˜•𛂑…—˜™˜’—“ˆ—‘•’–‘’•ˆ”›’”˜˜“‹‘˜’‘˜ˆ‘•”†—“’™’’”Œ”“Š‘•Ž’”•ž•“•‘•–•“•’’”‘ŠŒ–Ž”‹‹’†˜”’Š‘™’“‹–˜”‘’•˜˜•Š‘„““‘’’’œ”—Œ‘’‘Ž‘Œ‘”Ž„““–Е𛖗’‘ަ•‘¬–Ž”œ’’”™¢’ŽŒŒ“Ž’“‘”ŽŽ–‰Ž•Ž˜˜š™‹‘š”‘ž”“šŽ”Ž¡“•’•‘•’‘‡–“’“—‘”’š”ŒŒŒ±’‘—”‘–“š“¢Ÿ‹•©”š˜“™•œ“”Š‹•‘Ÿ—‹‘–œ”Ž“••’Ž¢’œ•£‘”Œ–•¡’Ž’ŠœŽ•™’™Žš…’“™•˜’–’•”””•Ÿ“•‹‘€‘—™‘š›–‘•–‹–—”““”•–˜‹˜“•’‘|˜””’‰£‘”™’Ž‘•Ž”‚‘ޔޕŒ——Œ®œ’¡—ŒŒ¦‘™š”œ• ‘–”š•’˜Œ“™˜z”“’•“›–‘š‹’Œš“”‘’“‘£Žšž‹›‹”‘‹¤’yœ“’’“”Œ”—œ“›¦—Œ– ”‹’”¥—–†¬œ‘‰’‡‡{‘˜œŸ• ›™ž”˜€ŒŽ”‰˜”™‘¶Ž””’‹”–’”Œ’‘˜Šˆ—Ÿ‘Ž“™œˆ†–‹ ™˜’”~¤“œ‘™œœŽ—‘–”𗫍¢•‡“•–’“‰†•ŒŽ¾¥†œœ™–•¤’“™‘™š——”“¡‘–’“‘“›¦†”—žž‹–””š–˜›ž”›––Ÿœ˜“•’–”’“•–—’—”ŽŒ•Ž–‘‘ž”’’œš’—”’‹‘•“‚•Ž›‹¤Š—•¡Ž———’›—Œ’—˜Š—˜Ž—šz•‘ŸŸ‘ £™˜™™“‚“•—‘Ÿ˜‘ŒŒ—“™š”•¢‘‘™ ”¨”Ž—ŸŽŽ‹˜ž”‰–‹“›•–‘‹’–—”•’’”—‘œ›”——˜—™ª”•°”˜”“š›Ž•™—˜Ÿ•——”‘—“™•™‹•“”Ÿœ’–œ‘•¢ ›˜ ––›’™“’––““•”‘™“—•™–˜™’““‘”“’”„’”’•‘‘‘“–“–’–•™”’“”ŒŠ›‘Ÿ“’”“•˜’˜ˆ™•“”ˆ™ŸŽ‘–’‘”’–• Œ“””‘Ž””—™•”—›˜•–”’™’‘”“›•—•Š¢‘“‘•‚–“—’••š–•—¨‘•’“™”˜ŒŽ™˜’•“Š•Œ‰£”Œ•“–—•‘“–‘–“Œ“—‘—’—–’Ÿ“•’“‘žŠ’—’™”ž’•—•‘“˜‹”’•‘•Œ•‘••–’”•š–’–“”––”™–”‰—’’’•‘Œ’›’’—‹—˜”––—‘ ¢•”›š”Œ––Œ“œ¡’“•—”•’‘•–ž‘––Š˜˜—Ž‘”Žš›˜” “‘‹””“‹‘’”Œ•˜œ•–˜ˆ—–˜”•™š…” Ž™Ž˜—“•›™–—”—’“•”’•œ“‰¤ Œš„ž•“•†‘––‘—•”—›–’”™›—››’“™š˜žŸ˜””š•™‹™Ž–››“‹‘”•™˜˜˜ “™”’”˜š‹•šš‘‘–”š™ ™§‘——•™””˜‘‘” –˜Ÿ–‹Ž‰–”’”—Ÿš”š™—–™••˜‘™—š˜¤–£–ƒ“’’𒒉ޙ–’”ž‹’–’™“—˜”“™šŽ’“”•“˜‘Š–“—”Žƒ•’•†•„‘ޑ𑕓¡˜Ž””œššš‘š••“œ“‘•ŸŽš“ž™”“”™‘Ž˜”“’••›ˆœˆ¡Š—”“’š†š” ’œš—Œ”–›‘Ž“’——Œ’–ŒšŒ‘«—”™‹—’””“š”˜“•ޓ𕔗“‘’“Ž™“™–‘•‘–“”Ž”‘‘Œ‘–ŸŠ’›šŽŽ”˜›’™•‘œ”••’‘–”Šˆ™”š–˜”“˜”Ÿ’¢‘˜”“”–š™——“˜Ÿ‘ž’š˜‘«›•Œ•œ’“•–•œ–œ™–’™”ž“™—–—•œš˜™Ž– ‘œ—’”Ž”–œš‘—“¢˜’šŒ‘‹–•˜‘ž––›™˜”žŠ‘™›“ž’ž“—“œ’—Ÿ•—“¤™’””˜—š‹Ÿ—”•œ£–—–‚–”“•—œ–‘ šŠ•˜Š—›˜“Œ’˜”›’—‘›’˜ˆ“𛑛’•˜›š—‘““›”’’˜›’‘•—‘–““¢ž’¥—š•“˜‘˜˜š””›–›Ž‘™—›™– –’œ™”——ˆ–’–ŠŠš–‘›’’”‘Ž›“™œšŸ“¤Œ›¤˜†“š‹——‘œ‹˜Ž¡—–¦“–†”•‘•˜Ÿ–‘‹—‹–‘ŽŽ¡“†”—˜•¡”‘’’ŽŒ“”“—“™‹‘’™šž™žŒ¥™“Ž–•Ž”’Œ“™™••”¡š•‹‘”“”›’¡’“’‘˜™™•Žš“œ–œ˜”Ž”œŽ’‘•›£š”œ™¢‘•”–Ž’–‹Ž Š“œ˜š”–™• •ŽŒ‘”‹Ž‘“¡ž’šš‹˜–ŠŽ–“›—”›’‘Ž›‘£–”£šœ–Ž”‡‘“›“‹š›’˜™“›”›­—š›ˆŠ¥œ•™•š—†—˜—“Š——”˜””•Ÿ––••‘—‘‹{’–š“Ž’˜’™™˜’•‡••“””“„‘••£˜š–’Ž––”‘”œ˜’­™™”“’‘“•‹“”“’““”™Ÿ›Žš‘˜ˆ”““‘”’˜ ž›’ž™‘”‘‹“‰ž•“•‚˜•˜“–“–—‹“›Œ“Ž“ž˜Œ—ž™Œš‘‘•—œŽ’”Š˜Ž•—ž–¡‘—•–𑕉““›•‘”“Ž›“›’–›Ž•’›–‘”•”–˜””—–”—™’’••Œ‰‘—›’’”ž“‹ž““ˆ•”—•–™¥›••’’’š‹—š…œ’œ‘••”–§£—…™¡„ŸŒ‘’ ™ ¡…£›–¡“Œ‘”‡‘„–“¦¦¡‰›•—œŒœ”Š˜’—‘ŸŒ˜˜‡”’—¡™“žŒŒ’Ž˜‹‹”’•’Ž•€˜”š¬ Œ“•‰™‘—”ž™¬šŽŽ”’›¿¢¦›¡£ŒŽ ™–‘–›“’¥“†‘˜’—“—“’‘‹Œ—“Œ‘‘œŒ¢’š|”‘ž˜•—“Ž˜˜‡’“‹”˜“›”˜”’š‹’”•œœ’|›–ŠŽ’‘•º˜žƒ¦“”•“–¡¡Œ’„š™Ž„‰‘”›‘—’–œ™œ•‘Œ“”œ…–™Œ’œ‰˜’˜”’“’Œš““’Ž“Œ“•–”‘‘™’’•“’“–š”š”–‘“Œž“——––”–uŽŒ“™’‘Ž‘•˜‘—˜”’”œ˜Ž“•••œ™””’˜’“‡’”œ“™’©š•”–—‹’ ”Ž•š‘“˜¡©‘Žš•“’“•’˜’™¡ž“•“š©“ŽŽ””’•‘””””›™––’–“‰“”“”•™‘”–š–”Œ‘‘•”Ÿ““’“’’”“ŽŽ›‘’‹“—“”—Œ‘•“Ž”Ÿ•˜–›œ“–“—’–““’•´žŽ”’–~Š——œ ƒ—“˜••Œ’˜Ž’—œ–˜ ‘—–Ž™›œ“—š”Ž‰‘œ©ž—’–—Œ†˜ˆ“–œžŽ’‘Šˆ—¢”‰™—ˆˆ’’œ“”˜š’•“™‰Œ‘œ’‹”•“˜Œ‘‘‘—”–”Ї’™–‰”•‹’Š–Ž—‘™œ’–˜•˜’•“Œ’”—Šœ•”–¡š”˜–’›š—’•‡•Ž˜ž•“‹’—”•™–•’„š’•Ž™›””“¡”™™‹•’‘’••˜Šš‹¨•Œœ—“–’——¦•¢qŽˆ‡‰Œ’Ž›’”››ˆ›‘¢Ž”’™—›“’””››“š’˜””“š’“›“‡š‘“–•–••™œ–Ž’•†‘‘•™–•’’”’š˜“™‹““••”˜œ˜”†“””•––~““•™™”ŽŽ™‘˜’•”’Œ˜••”Ž–…”•˜“•“‰‘—“—–Œ••”‰”–‰œ””—•Œ“‘•”œŽ”–¥ž“𛓕‘Ž–”“““›‘’›•“Ÿ’’”¦“•””––“—––‘“‘••š‘’Ž”’ŒŽ™•“™”’—˜‘™“’“”ˆŒ‡‘‘œŽ–’Ž•••ž›–•Ž–“–”–”’›š˜‹“š––”˜••—˜•¡–ž–š”–•Œ–…˜“œ“•”›”›š’Š•˜œ’”•“—‘”Ž¡“›–—”••“ ’’”Žš––•™“••›˜—–Œ”––™—™™™”–—•–œŽ™–“Ž˜¬•˜™—™”’Ÿ•ˆ–—žŽ•ˆ–”••–ž—™””“ ””‹”›—˜ŠŒ–”•–“—‘‹˜•˜œˆ‘™ ’›—”˜”–˜˜˜”–•”šœ˜“—“‹—Ž–‹››”‹™œœˆ™•”“•›Ž‘‘–š”›’”—“—‘”Œš‘™˜™•šœ”’”•œ—ž’œ™™—””’”’œ‘š›‘œŒ›–š™šŸ“ž”›•¡“š”–“˜–••š™“˜‘””“•¢‹—šš•˜™“£’Ÿ’•™’›–““›ž”“ ˜š˜š¡™’Ž•—“Œ–•©’ƒ“ —˜–‘˜Ž™™Š ž•ž•›”‘Š–Œ›™–— “––œ–‰–•—’‹”“Ž‘••ž—–”•‘—š’ŽŒ•¡˜œž—•’‹›˜œŒ–”˜‘‘‡‘”˜“•™•”Ž“”—Ž’š˜•”¢™——’Œ•‘š™–™“™“Ž‘˜–”¡“—‡‘’–™©›šž‘ •‡”ŒŽ”•…˜•’šš–—‘šŸ™™–”•”Œ’›˜”’’šŽš’ž’ž”˜™”••ˆŽ–›•—•“—‹˜›Œ’—’“‘›”›‹˜”•™‘“•››–•”—Œ™ˆ•––‘”’‰•“™—”—‰•…Œ‘›—˜‡§˜•–˜•““‹™—™–‘”Œ——•’“˜™ž•˜’’ž”…•›—Š’‰’—”‹’‘––””—Ž”œ™•Ž”œ–›–„–‹“—‘•“—˜‘“ˆŠ˜ž—œ’™™—‘Ž›”¨Œ–”’——’‰’œŒ–›˜•˜‹’•˜—””šš”•˜–™›—˜š›–•’…ŽŽ˜‚ˆ’‘˜ŽžŸ”Œ•’“–’œ™ˆ‘•šŒ–‹—ˆ–‘ˆŒ’››“š“Ž’Ž—”›””—˜›•”‹…£”ŠŒ‹”‘ˆ‘’’‡™†šˆ¥ˆ—š™”‘”˜”—–˜”“š–“š—’™™œ›‘Œ˜ ””•Š•“–’™’˜š“–•˜•‹˜•Ž–š­’œ˜•”“”••š—””Ÿˆš’š“—™’…™˜Œ“•‘|Œ”•”˜Ž‘“’“‹•“ŒŽ–šª‘‘‡ŽŽ›”Ÿš——›˜Ÿ——„‰–Š‘™™ —–„œ•—”œ–‰› –Ž˜“•˜›˜’Ž••ˆ““ƒ“•”•—”“šœž’’‘ž£“–Ÿ–’”•£”Œ¢–Œ–“’“’—““—•— Ÿ’”‘™–”’Ž–¡”«••‘¨˜‹€™ž–—›‹˜—•—˜¤’š™Ž™Œ™”‘™–ž”„™”„š’¦Ž•œ˜•‡Ÿ™›•¡“˜“ ’”‡•™š›¤…”›™š™™š•ž˜•—š•›‘—›ž˜’—Ž–’”‹˜––•Ÿ–”™’™•˜“›˜•’ –“£–—”–™®š˜œ‘“™©–™“š†Œ’—––’‹‘žš’‹Œ””’ ”¡ššš›“™”Ž—˜…”—”””–“ž’“”––š™’˜š‹Žœ‘’ †‘™—‘Ž‘’˜˜š›‘’œ™Ž•–™‰’—”’Ž—˜—™–”“•–“““•—”œ‰’Š‹“—Ž“¢Š”™Žš›œ—ާ““‘›–ž™–›™§’›¡—“–š˜™¤’•–‘¥‡‘” ˜“ŽŽ’’—” ¡‹•‹’’–˜šž–‘ˆ—“œ—›™Ž–Ÿ‘™“”—“š˜‘˜›”’––—•–˜Ž”š––˜š”•™Ž‘––”–š“Š’Ÿ•”š••—–’‘•–‘•”™‹—˜‘˜–’›’‘™£”•–™“••š–—˜Ž›•ŒŽœ”—••“–«Š•™˜’—š‘’”—˜Ž™“Ž“›–’†œ‘›–—‘–’•–Žœ™‹š“—‘œ˜”™š›’–¢“š›™›’™‹’”†‘–’•—•¡’–’¡‘”’•‘˜‘˜–•˜™š–—𔓢™’ˆ—™‘’——™œ—–Šš˜—“––’’›’‘”‘šŸ•”‘œš’•“’Œ’“•–””—Œ‘”‘”™•••˜”u˜“˜“”›“’—œ—§œ “›——› •‹Œ”‘—•”Ž—™›–‘“‘‘•‘’–š‘”ŒŸ’’ˆ•ŽŒ˜ˆ™–”›—™’™‘‰‘’•”Ž•š—–š£“Š”’“— ““ ž—”””•–”Ž’‘—‹”‘‰¥‘~œ‘’•–£Ž•—•‘™‘ ŒŒ“—Ž•”ž’Ž–Œ“”–Ÿº‘𔑡œ™›•˜—›Ž™‹‘—Œ–’‘œœ‘“’™‘“““––œ‘“ŽŒ”‹”“Ÿ‘—ž‹”ž¦•’–›’™‹•’•—“”“Œ”””‘’˜–Ž’‹Š™›•¤Ž‘Ž‚š›—Ž‘—•‹•’”™™—›‘¡”Ž–—”›œ–— š•‘œ’•“š”š”—–•‹˜–••™““‹”–šŒ—•’–ŒŒ–˜Ž ‹—›Ž‘‹—’‰Ÿš›••‘”‘–™‘˜’š‘ŽŽ™›ŽŽ’Œ›‹‹“Ÿ˜›”œ“  ¡’›•œ•’‰’˜”𔑙“–™’އ“‘‹—¢’‘˜‘›Š“•›––›š”™–”–™˜–˜––…•¢˜–‘–•‹Ÿ‘šš“”–‰ ”Œ‘™˜£“™’˜š‘‘’ž”›Œ“š—‰š–‘š•”Œš£“’’“‘€‡™——ŽŸ©™›’¥“”’”““‘–‘•—™”•—•–Œ•š˜•™“Ž”‘”Œ™˜”™“’”–’—Œ”Ž—“Žš™–™–”‹¥’Ž•‘ –’’––’–“›“˜—”œ›“–—™”•™”˜•”–˜—•˜“š–”—˜œ‘Œ’”“–˜‹™‘™ž”Ž—˜‘“™”˜—š•™–••˜‘“’Œ‘–’”—“’”™–’‹•”˜¢’”‘‘Ž—‘˜‘”—Œ’’Š•›–”•’‘—œ”’“”—”•Ž—”–‘’‹˜’‘‹™“˜••™—›“”š˜–•“—“’¡•Ž™““–“—••’–’‹Žš——“‘²—‘›˜—‰—“›˜“•Š—•‘•“’”ˆ•”“‹›‘Š”¡ŽŠ–—˜˜™•™–•™˜•”‘¡›‘ŽŽ—‹’š›–™Œ™”•š•œŽ˜¡™¦™ –“Ÿ”’š–‘œ—Œ•“¤”®š™ˆ”–”“¡‘‘“——‘‘œ‘•’“›˜ˆ™’”•™¤“‘‹‘šŸ•”¢¡ ““”—™›˜Š™¦˜–†•““—œŒ™•———’¤”–”’‘“–Ÿ‘–“‘Ž’“—“˜Ž‘ Ÿ‘‘”™˜”œ”œ‘–—–™“•”Ÿ“——Š–››ˆœšŽ’—‘šœ›•£——Ž—˜”––“™”“Ž‹–™žŒ•’“ –––˜–™“—•Ž—™”¢“‘‘‘–—š“žš‘•‹–– ›š“›•‘Œ“™™‘”•’••¢”•“‘–˜’–Ž—••šŒŸ’‘–•–•”””›Œ‹“–˜›Ÿ•~–‰‘’ ‘’“˜™“™™‘š’““•‘–”—’Œ›‘š–ˆ—Ž““›š“‘މ˜—˜ˆœ–™Œ“˜‡”Ž“—’‘Š”•—˜“˜”™œ’’•Š—”“””••”Š“˜–————Ž“’™™„••”‘“™——’—™”’–‘“–˜’“˜°’¡š˜”œ‘‘•“‘‰Ž‘•›–˜‘•——”–ž’••“—““œ˜“™”™’””Ž”•˜ŽŒ˜|—œ”Ž–’•—™˜–” š˜ŸŽ•”“‘”’—˜™–“•“•“–—ޔ𓒕˜‘˜“˜’–˜“•””‘—•—’‡™“•—”’™™—Ž•˜®——’–’‘—”“•˜’”†™‘š•˜“–•‡”Œ‹—œ•˜‘—““–—•–‘–•˜— œ™Œ“›™”‘“”–—›–—™’—›—™‘™“Ž—“—’œ–””‘–Šœ••”š”›——•••‹’–““•›—–Œ•“’—•““”–Ÿž——ž•—’˜”—–™˜“”“˜˜“’”Ž’•Š•–›‘–‘“‘Š’–’Œ”‘”•“—•–™‘š›””’–•š—“”’¢‰””š””Ž”’˜›š“˜’”“›–“™‘„˜–”–”š– –›—¦’Œ”’“““•Œ™‘™•›š©’Š–š›Ž•Ž’•”—’‹–’’ž—’‘‘“’’‘𑓤–‘Ÿš‘”——›š“›“”“’”œ’‘‹˜”Ž•–”œ–•Š’Ž™Œ””’‘—“™™‘“—“’‘—Ž“˜‡—•’–’–‘›“¡Œ“”’–˜˜™˜–“’”—•—𙋔‘•œ˜”—‘’™šž——–šœ˜—˜š›Ž˜‘–œ•›”•“•˜š”“”œ““š•“–‘ŽŸšš‘—•’—œ–“—”•““™™•”‘™ž‘”•••š—”š–˜Š’˜’”¡•”‹“–•—’””—šœ˜’“†“˜‘œ›™¨“‘ž“”𢔠”’““”–——™™ “—“‘™“ž‘‘–”““”ž˜–”“””™–˜”““š“— –”––˜˜˜–™•””š”•Ÿš•œ•˜“‹”™Ÿ•›š•’–””“””””š˜’•œ•˜’“š˜“‰”’”™—˜œ˜Œ˜•–˜”•™”šš›Ÿ’–˜•™¯›Ž’“¤“‘œ–•––”•Ÿš–”¤š•Œ±’›Œ™””ššœ’Œ–””›‘’š›–˜œ˜Œ“¡¥‘›Ÿ™—𙓓›”Žš ””’™™œ“š ‘š–—•“‘—𕦕—Ž™–›Ÿ››–”’—˜œ’•ž“ž››Š››’³•Ž— ‘—’Š•”¥Ž’ž ’—¥›”‘™‘–—‘‘””’–™™Ÿ”“˜ –“••š§—ž˜š”™’”“˜›“¡ž˜›š’’™•“Ž˜›ž”’—™–š”žŽ“œ“•“š—˜›”˜¥› ›”›“£‘Ž’Žšœ’›™’”›™’•’ž’“™ˆ•—˜™‘“™Ž’‘“”‘–‘š’–‘‹““Œ’‡““‘“’Ž—ž”™•™˜’’”¥š‘–‰™“ޑޒ‡‘™‘’•’˜’’“‹““–Ž–’Ž”’˜“’‰’š•‹Ÿš˜•ž“”‘‘’•šŠˆ’Ÿ•ˆ…˜Ž™¤•“—œ’žš†ŽŒ’—“–’‘“†‘“œ•‘”‘’–’””‘“’™˜“’—œ˜™‘““’”‰’‘’’œŒ˜Ž‹•“•‡‘Ž˜’“”™”“’›’’‹“’Ž“”’†‘œ’‘˜‘”‘’–š’•“–•˜’—Š’œ˜‘˜“Ž™š›–š‘’“‹“”“™’¢–”“—”¢”““”“•‹–‰—›••Ÿ‘—Ž’––”•‘—“œ“˜‰’Œ“’“‘‘•—’‘“¢—–•™•‘—‡‘”Œ¢’‘Œ”’Ÿ™ž“ޑޒ—šŽ›“““‘‘”Ž˜•”“••“’•Ž—’š“’—”¦‘’—œ›‘› Š– ƒ•‘’•ˆ’”‘—ƒ‘•šŽ“““”œ‘“ž”•‹‘“œ—–œ–™’‘’’™’‘•¤“šŸ‘’Œ“•’”“”Ž–‘„–š’š“’™™£”‘””™‘‘‘“”“•™•“””Š—œŸ›”“˜›˜—”’‘“’•–Œ•–š’“Œ€š•žŠ¢””˜†’•“–“”𔑑‘—©•”‹”˜’‘œ’’™¢›“œ‚§žŽ”Š– •Ÿœ”ˆš““ŒŠ“™’Ÿ››Ÿ–‰“™¨Ž”—”Ššƒ¡—ŸŠ–Œ˜‰˜Ž’“‘”—‘Žƒ’Š”—‘‘¦Œ•”•“•§†—•——žš{©’šš•’—‘Š™—œ”‹˜“–Œ•—•–£––Ž˜‘–˜–ŽžŠ——Ž•‘›—”Ž™“—Š‘™œ’‘”š¦™Œ—“––”’š‡™‹€ —“‘–œ”•“——––›“©¬‘” Š•ƒ›’Ž’“–˜§Ž•§–™——Ž‹‘ž——˜•˜‘”“•”˜’˜Ž›‰š”—™•™š•“š–”•–—••Ÿš•œ–‘™—–™•’•š“œ‰‘ˆ˜›˜™™˜ž˜™•˜‘– ž‘Ž’Œœ™ŽŠŽ‹—›Œœ‘š”•’šžš—•—š˜”Ÿ˜”‰Š¡Ž–‘œ–•’˜¥‰‘”™™š˜œ–•™¡–›•›–„•Žš””–•›“—‘ž†™”˜“•—š—ˆŽ‘›š—™‘ž’ŠŽ’““‘™ž‘¡”… Ž”œœ–Š–”™˜•›’—““˜’›“’“—™’•’Ÿ™˜•–Œ•š”š—”˜”©““˜••”š”—”“œ˜–‘”–—¢Ž““Ž“™”™—–•š–•–˜• —˜‹˜‘‘ž—’‹” ””š–•”˜•—œœ‘’ˆ–——”“–”œ›”›–’”—‘“‘–•“–¢‘˜–“‘”˜¦”™’‹—“–”‘”™ˆ˜”””––“”™†˜Ž–“—–”–”—–—“¡”‘‘’ž˜‘“••”’‰––•“›•“—˜””Žš˜•–’”’—“ Œ•˜¡•––••™‘“—‹‘–Ÿ“–’‹”†—•‘‘–‘˜”•Ž’—Š•ž–™–š—“ˆž’”›–›’”“ ‘–“˜™Ž’—“•—‘•’–––”Ÿ“—”™—™™•— •–—‘–‘••Ÿ––•“–™‘–”””Ž—–›š”œ’”Ž”–““”˜–™•”–•’–™––•—•–””••—–›—š•™••™–•™’–”–•—–—–™“–“”Œ™••“˜Ÿ“˜‘–˜––Ž–•“ޕ𓕖–––—––”•“–•“•™–“œ••–”–‘–•›—š‘™’•™–‘š”–”• ™˜•–‘ƒ–’—•ž•‘˜–Ž•›”–Ž—––››˜–’’Œ–˜‘”˜’“”–Ž’–•“–˜—™••––™–––‘—–™™™””˜–—“Š•™“•””–œ‘••’‘‘–š•”•“””“•™’”•”™”’–—––•’””’“•Ž–”––”Š’”–”‘•“••”””•‘’š––”””–”””’–—’”’“Œ•’‘˜•–‘•“Ž•‘•—’‘•–‘’–—™•¥Ž›”””–•—•¢ž•”•—˜”——“ •˜”™—–•”•”“•—’’–Œ–’”ˆ—˜”–—•”•””••Ž”’”“””Ž˜”™“›–•–““œ•Ÿ“—––––‘”•˜™••–•—•Ž••–•—”“•‘——”‘”–““””’Ž“‘Œ–‰–“––•—’–””–“’•—’”–““”–š––’’‘“”““”’“••—‘–•“‹—–˜—˜—Žš”•ž’——‘“––—•“–•“”–––‡—––”–›””“˜”•’“’–•“ “›“–„‹•”—–˜–•–œ”˜›Œ””’–‰””œ“”‘•–––’™¡––—˜›––•’ ‘–””—•–••–Œ–š‘–“—’“”œ”—–”‘”–™•–‘“•“•–”“™’•”˜Œ“’™›—“˜”••••œ•œ”–’”——˜•–›”˜“‘”‘’‘“–©–—–”“œ—“‘’“”¨—–š™—˜—‘”•™•’“–•¡••””““•••‘–“•–“•”—”“•””˜š•”Œ—“–•••”˜˜“œ˜‘’š“•”™”•’˜“”•“––•”””—™—‘–”•”””””–“—••••–—••””–—•”–“””•œ—’“”ˆ“ž“”•¤‹•–”””˜‰•””•™•”—”œ•’’˜“”•’••™•”–•˜“””‘’”˜˜”•”“”’•‘–“”š“’•”’”’–˜š–•‘•“”‘•—“•–’“•”’”–— “”Ž˜••–””•‘–““””–“—”—›––“–“”’•‘Œ˜•š””•™”“•’‹–™‘–ž‡”˜›š••–‘—‰“•“ŽŽ–˜“–•𓉕•‘––Œ‘–“’–•‹Œ˜—™—–Ž”’Š’—”–›–“—›‘’’§“‘•“‘’™’‘•…’’ˆ•—”ˆ˜••£–œ”Ž—‘”–™–ž“–•šŽ––—‘šŒ–•”–”––•Œ‘´“Ÿ••–š––“—‹‰Ž”••“¡”Ц•–––’ˆ––“œœ’˜•œ‹•“˜–••”—“‰‰—”˜•Œ–“›•‘™“–’•––£—œŠŒ˜•˜‘’ˆ–“–”‘–™—“”–’™•–ŠŽ“•“•“–”—““™—–Ž‘—˜™˜•™‘Ÿ•Ž—”–‹”••š‘–”••‘’–•–——’Ž’›•‹•—•¤•“’–”‘‹–‘—Ž”–––—•”•šŠ’”•–‘Œ–”“—™””‘“”‘“—‘•Œ˜”–‘‘•”œ–•–“‡•”•¡Ž•›’”˜™†Ž˜•“—’—–––‘œ“’™˜—“”–””–›”—›–’“™“˜š–•–“––•”’””˜”“”™–™“–“”‘—–Ÿ§˜”¥–”–•––¤”–••œ’•–“•˜“•’”–™“••š˜“”œ•””•–‘—“Ÿ”••¦Ž–˜•–•–˜‘”’•”¡”˜‹•—œ–›Ž•™Ž””–š–”™’•””‹•–˜Ž•”•’•••””’˜“”˜“•“”––˜“–•—Ž•––•’”“Œ–™›“”œ•’‘”›Ž—Ÿ”———‘–¥’Šš‘“—•—––•““—“•”–’–”•›”—™•‘Žœ‘’™–›•˜˜–•—˜”—œ˜•“•”–™•”“––•–’”—™““•š–’–••ŽŸ”˜”–––“˜–”—•˜š•™‘““˜—•’”—™•„•“–••”•—‰™“—””•“™Œ•’–”’™•””‘š‹’‘Œ”–š—••—–––’ ”‘•‘‹•”Ž‘‹’’‹’’“”š‘“‹”Žœ”Œ••–’””‹“”“‘ŸŒ”‘“˜“““‘Ž˜ˆ”›”‹”‘’“”•”—’ŽŽ••“–’”“‚‘ˆ‘†—“‰“–”—“–”‹”Ÿ“Ž•‘…‘“‡’‹‹—“•“’““””•š ”˜”””””“މ’”‘Ž‘‘‹’”“”›•ž“”’‹’’š•Š˜•Ž™Œ“–“••—¡”’‘“‘”“š“’”~”“”“–š‘–™‰“”–“Гދ’“Š“”•Ž’˜Ž’Ž‘”ޔޗ’’’‘”–œ•““–•–“––ž”–—’—–”“—”š““–™“˜”ž•™–“›”’––––”’–™¦“••’”•–‰ž–˜—’–’•‘––‘’‘—•–›ž” ’“Ž‘”—‘–—‘™“”’“––“˜—Œ•–”‘˜’•’”š˜–Ÿ•š“ œ–Ÿ–•š––”˜Ž‘¡“–––—–ž‘–˜’–¢–“’•––––’’š’—–’“—ŽŠ“•™—““•–”“™‘•”Ÿ•‘ž–”–’Ž–•’™––”––•™“’œ–•‹”’’“’–™‰–‘’¡“’‹’‘–——–‘•™–™™’š••£–’™––—ž—˜”””—•—˜˜œ›™‹•›œ•š“ ŽŸ—•”“–•ž•œ’–Žž™›—Ÿ•–’”•Ž—–™˜•˜’–—•›–ˆ•‘–—‘•™œ–—“•“•˜™”›’›““–™”Ž—Ž”“™•™”’•’˜•–™—”’˜”’—–›€””–“•”›†™™›—”’•’”’›••›“—‹•“”—•™Ž—””•˜š™˜•”’š™—•”˜š›™š•˜•–Œ˜—‰”šž• ”•–•Š›¡–•—”••’—•˜Ÿ•—˜–•›•›•–”Ÿ˜£“œ‘••—””–•””–š˜–‘¡—•”–ƒ”Ÿš–”™–›¢ž–Œ›”Œ•›”–—™‘—š•“””•••š–•–•™œ ‘¡Ž“”œ•–•¤—Ž”ž•ž“”—•›™¤—¨”“•‘”™–—›’• ’–š–Œ’™œ•––¡–”••• ‘•••˜’™•—•–š ‘—–Ž–‘ ••š’Ÿ–”—™•”•›•”“•£”‘–‹•“™“™•”–•”Œ›–•˜šœ–‘”š’•¢•œ—–¦˜“•’™˜›œ•––“””˜•”—Ž”•¢••—š’Ž˜Œ’••‘—›Ÿœ™–¥––’•˜›™“––• ’‘•š™”Šš—“§•”– ™œ“’–•™‘”˜””–’–˜˜’‘–œ’“”™Œ›”•”™•••—”•”–”‘•–™”•™”‹–““–”’•‘”™™‹—’ŒŽ”“’™’•š”’“•–•­” ™Žš”•‘¤’’˜”“‘”—“œ”‘‹ “‘’”‘˜ ’Š–‘–•—–”˜‘žš—˜‘–””•“‘••’””“•••–—“•”“–œ”‘–”–Ž“‘”–’–™•š–——’“‘’˜™’””š•—‘•–”—™”•”“’’˜Ž˜”’‘—––’•ˆ’’—’–•˜˜—“™–”Œ–““˜‘”Ž”–‰•”—•”–™‘¢”˜”•’•ž•““’“’›ˆ’•—‘™™••˜•—–“™›˜›˜”–”™Š”•’’”—–“’”–‘”“‘“’˜—•–’ –š––˜—““–•ˆ”’ŸŸ‘“”–Ž•—–•–•™••˜’Ÿ‘š——’“’…”•—•–––•—–•‘–”Ÿ“—•”š•––•”–’“–’’“”’—•“”––Ž”’–•—“‰–—‘“•‘–•™–Ž‘’—”’’”–”–—––”“™—––’–—’––š•œ›–˜•‘“–•“”…““š“š™’™Œ••Œ–˜–”•‘•”˜˜‘“Ÿ“–””–“–’———›“–›’˜–”˜““•”–•¡’•““”––“““““”Ÿ“••”–“•–“•’“™‘”“•”’œ“—““““ž”—““••““’•””—”’Š›’“˜“—•””’“•“––›˜“›˜Ÿ••–—“š””“œœ“•“‘“—“’–““–‘œ”“”˜“’“ž“”š“—‘–’“˜˜–š’–“”“”’”–““•œ•˜”˜“”””˜‘˜““—“’š••——™“’“”““•—•”“™ž““™œ’–”’‘“•˜‘‘™””“””’—–•““—›’–“Ž›““––””’¡””’•Žš¢š—𔕕•“›—”•”–¡’˜•™–œ•›™’™•–•——˜••˜”•—•“–›–›”–”•Œ˜Ÿ•”š••˜™•“•–— šœ•™™–‘’•’˜š”œ •„•Ž•“ ”™””‘š”™™––•Š—–‘”—’˜˜˜“š“•”‘•šš•ž•“”••—ަ–”‘—–˜“‘•”””“”—••–™—˜ž””–”š–“•—”–ž•–•˜•“•“•—–—ž•–’’˜”›•“–™”’š•š”–”—”’••œ—”–”™•””–•ž—’–“˜–™—“‹•”–œ”•”˜”ž••™–ž•—“‰‘‘–ˆ˜“•˜•”˜“’“—“—Š—‘‡”˜”œ–—••••”Ÿ¥’“•›’Œ™”š–™ ›•‘’–›””’š•”•—œ–š–œŒ•š™—“—“••”‘•„’¤””Ž”œ–™Ž™–Ÿ–†˜”“Ž‘™…•”•ž””“•–”Ž ™‰š‘–“•”•œ¢•£’ •—”™žœ•’–œ–––“’š‰”•—œ œœ’•›—’“–š•›”›’‹«”“•Ž–˜–““”” •”—”””–—–”š˜–¥•‘“”•–”˜’™‰——•”Ž••‘–Œ©‘’™¡”Œ”Ÿ–Ž’˜™š‘’”–’“‡’š“—“œ—‘› ’”‘”“““”›”““‘œ–•’“—”—””•“›’•–’”“—‹”“‡••—”““–š”–“””’””“”ª•—Š’™’”•“›“–•““Š“™“””‘”—•›•‘‘¥’’™”’““Š”“”Œ“•š‘“”””” ’”–’–“œ““•—”‘—ž”““”“Œ“”“—‘—•’”“—““’’’“”•”˜•“’Š”’“—“™“”™”““‘“‘‘“”“’˜”–•–”’•“”“•›–•—“™—™’“‘’•”’š•”“‘‘–’•˜–”—ž’‘•——˜”“™š”›•‘’––”™•—”””•–—”’––“–™”•’”—œ—’‹“‘–™–¤™™”“—›—˜’‘”–’”•’–—“–’“•‘—”””‘”–”““’–’””“”˜’“”™’–‹“œ––•”“œ”’”›–“ˆ““–”““™••”‘™’•”—•–Ž—˜š“’”•—’—‘“š•“•–˜Ž‘›”–—•œ–•š‘˜—••ž’•““—•––”–“–›“–“˜‘”•–“Ž’™™š“—”•”™“–ŠŒ–“—””•Ÿ‹—˜“•Ž’•–’”•‘••”–••˜–›•˜” –”–”—”š“–‹–™“™˜•’••™•“–Œ––˜••”“–“—””””““™š”—˜”–”Ž“šš‘“–“’˜”’‰”“–š–Š”‘𔓔•–˜˜”–¡””—”’“œ‹“”˜’”šŽ•—–——““’–’Œž‘–™›’“”ž–•Ž“•”•‘“””•˜••””“””““”•“–“Ÿ•””’Ž’Œ—“—”““–““•“”Ÿ—“•”›—¡–—‘”—•’•—”˜˜’“–““–“‘™Œ’“›š”“–‰••‘‘”˜“™•”””•“›—˜Œ‘—¥§”›”‘“”—•˜“Œ——˜–—— —–•˜—š˜–”–‘“——•”™––›“˜˜”–——˜š—’”••””•—‘˜š—š—“™“–••””—”–”™–“—””˜“–——›“—•˜•–“–—Ž“•—‘’•’–•–•”–“—•”•‘•Œ—––•’••‘––˜“‘——˜•••”˜’†”›™““•–›–•”•‘’—•”‘’™•˜™›•“”“˜•—–”•–•›•š”˜—•”˜•—’™”™š•—˜””˜”—š•——–“•’”–”Ž•—“š•”’‘™“–•˜——–›“›”””‘”‘Ž••›—•˜—˜•”•œ˜™”‘˜•“–’“—’‹—–””“—’“”—“‘Ÿ•’–“–𔓔˜“””“““”‘”’““•‘’™•“”š”’–——“–š“““™–Ž• ’ ”““›“””“’••’‘“’–—ž‘™“›”‘“–›’”™“ޕޙ’–™–—‰”œ“””™™¡”•“““““˜Ž”“‘““““•š“›‘™“›“”“Œ”¢–“”““–’Ž“”‘œ”•Ž–”‹–•“”—˜“…–˜”–™–š–“““š•“–”‡Š““”““•›˜‘˜“”†•““—““””””•‹Ž•“‘’—“’Š–“‘—‘••‘‘–‰•––“–—™˜‡œ˜–’’™“””–•”–’‘“——Ž˜—–•›–—’‘Ÿ•™™•‘–š–‘—–››Ÿ”’’˜–—”Ž•–™••œ‡–š––’”›”•“’—––••‘–ˆœš•”–ž—œ’•—š’—–‘“—–’–“’›•—›–’™•‘•”‰—–”œ’•––––ž–•—––””––Ÿ™š–••—’Ž›“––”™¢ž–•“’›–“••£’𙑕‡“›‘•”–‘ —–¡’–’š•–—–”’™——™–™•“–ž“••–™  —”–”’—— –”–—“•“ ’––’‹•˜”—˜˜“’š––’•’—“–˜–—•˜”—•˜—•—‘Ž–•–•–”—“’–—–‘‘”–’”–•”’•“–š”–”•™—•“š“–———•˜’•’–”•—‘˜•–|‘Ÿ“—–—›–—‘•’“˜——‹”•“™š–—ŒŒ’–•—›Ž‘•’–”•”“––—”“–™™••–˜–”’•“•’–“–“•–’—”•–•–‘Š™”••™–––—˜˜•—–••˜˜“˜“™•”“•—•“˜–‘–“—•˜•–•”–”’“–”““𔕖‘–†”•–Ž–•Œ–”•“’–˜•–•–”š’˜—–•”–˜’™“šž•˜——–™œ•š“•“——•—–—”—š•–˜–•”™“Ž’’‘™–••˜›žš–—“™•–““š–—›‘’“™¥—”“’¦˜•”™Ž—“—–‹˜•——””–Ÿ““–‹”œ˜–¤“–“•“”’•“—ž–š˜–—˜‘—¡—“”–—Ÿ••š¢˜—–•–– š••––•˜–•–‘š™š—–•—•Ž›–•–—«•Ž™•˜•–™””—˜‘”£ž—•–‘–”–•—–•š–—•‰•˜–—•œ¡•—›‰–’˜–š›–”–‹••”™”˜——–—˜—ž”Ÿ—™”’››–Ž–•Œ—‹‘¨‰“›™•Œ“”•‘˜‹ŠŽ’—“•’–‘™””˜’ˆ–•˜——’ –‘Œ”——š•”Œ–™—–š•“– •˜” •–™•“˜•“˜•‹¡•š•…‰’™›•’”˜‘™Œ”•Š”£•˜”‡’”››–’“’‰“•–•–—”­Œ‘”•–•”–š–‘‘‹‘––š–œ’Ÿ––•–Œ’—–“¢‘”’‘–šŽŠ–“™–•™”•–’ˆ•‰”’‘–š•˜•Ÿ’˜—–“”—›•”ˆƒ˜–”–”’ŽŠ••—••—–”’“‘—””ž”•Ž™‘’‘˜–“•““”’’’¢Ÿ““’••‘’¥“’““’“‘“‰’“••˜’’–•˜––’‘•‘ š”‘–˜’–’‚‘’’‘”–“’’’–“ˆŒ¢’”•‘Ÿ’—’“˜‘—‘“•š“””’–“•Ÿ“›’‹’•“–›““–”‘••œ”–’”ˆ—š–•–•™–•“¥“˜“‘•”•›–’–“‘“’ •‘“—Ÿ‘—”•”•“”™’–•’“—’›•œ““’’’’–˜“œ“’—’‘˜•˜•“™–’’–š‘•–’“’“š•—’’”•“’–•”•£“ž–’‘“““•–‰—•’’Ž”’››––¥• š–‘—–˜””–••“”Ÿ’™’”œ˜”’–•’’™—œ——”™“’š‘‘‘˜•‘•—•š’‘’•–’‘”–˜–•˜Œ“‘Ž—’•”“—‘š”’’•’—œ“˜“–—”š“’’‘’–¦•“‘–“𔓗•–“™¡‘‰“•—–™–—’š“›Ž———––‘–˜š“š–“’šž‘“‘˜˜–““”—–š“—“•˜”“˜’’•˜–•“›”‘‡•‘ž˜”˜”••ˆ“™”––”˜—“˜”–’‹“˜“‘“”“”–“Ÿ˜““Œ’”–—š’–•˜“–’’’’‘’‘’•†”™’š•‘—•“’›”‹˜“’—“ŠŸ“œŽ”š•’—–––•‘’‘š•–”˜š‹‘–““—™Žž™˜•¢’‘”•‹‘™””Ž¡–•Šœš‰œ•‘–•–•’•Œ“””‘“•”’–‡Š˜•’’ƒ’œ’›‰˜™‘š–™‘–Ÿ¬”š•”ž••˜Ÿ“›¢“–•••𔕖•’’””••™ˆšž––”””–”—¢—““’Œ—ž—“›™”‘Š…‡•‘•••ž›”ƒ–|”‘•••šŸ’˜“–™Ÿ””””–—”‹œŒ‰•”£”š•š™’–¤›Œ”“–””•“‘“›•š‘‘’‘“““•”’•š“›’’”‘’””’ž“‘““–“““”Œ‘•˜’•“•ž˜™’”˜•““–“”“–“ “—™š“œŸ“™””’•‘“›“–›–•”“ž”™’’–’“Ž”˜”“”˜““Ÿ‘•“”‘Œ“•“ “–‘““•––“•˜”“•“”“š–“›’”“›“•—˜–”šŸ““““’‘““”•™”Ÿ“’”•““•“š“›˜“““””––“ž““ž“‘”›—“’•““’’“’˜Œ”–“‘’“’““ž˜”¢“¡”“’‘“’“‘•—“’‘“‘• ›˜”y›‘••—œ“–›•“›““””𔕔‘œ–••‘•—‘”•Ÿ””•–”Œ••˜„’”Ž ’œ’“–˜“‘–”“™¡”—™”˜˜š’–—š“š—”“•Ž–—ž“š•‘Žœ•™”“Ž¢˜””¢™•“’“”˜€›˜›•™”’”•˜”’”–’”œ”š–“˜•‘˜˜”’’Œ“¤ ””•——”””Ž˜š‘ “•‘“š–š”•Šœ•‘•‘–•œ”œ”“˜•¡˜©””˜˜”“‘——‘“˜”˜“——˜ž”˜“–—£š•Ž‘‘”›œ•—–™Š“˜›•Ž”žš’Ž––›‰“‘•“•Ž’–™•‘”‘›™’–›’’’”–˜””•‘‘˜‘ˆŸ˜–“—””““”“˜‘•’””Œ”˜‘‹–œœ”’•–›˜‘••””–”“”­‘™˜““œ˜”–’’‘’’’•”•†•–””“””’˜’“ ”ž•—••ˆ”—–˜—“ŸŽ—–•“•™”™••–Ž•”“–’—ž”•••—“•”•”›‘•˜’’–’••”˜’“šŽ–“’••˜š•š’‰˜”–––”’™š””—•˜“Ž”“–“•’•Ÿ’¢‘𔑒‘”–˜––“’’˜”‘–š––•‘”‘•““”•Œ‘”“š””“”’Ž…“•”““’–•••—””—“‘”—‘“–“”••’‘’’“’’•’”–””’—“•‘•‘•“‘“”’¡““”–’’—“Œ‘•”œ—“””’™“•””Ž”’•‘““–Ž•’’”•’•Ž”—•”“Ÿ”‘“’–””™•–“–š’’—–”˜”ž‘‘””•—•”–’•–•’’’–’•––”‘“““•›•‘”“’ •“••”—“••™“—”–™“•–…Ž•““•˜–’”•’“•“““””—’‘’‘Ž•• ’•’““’—™–••”‘•”™’’“——™“••—”“’’’›’‘’•’’”–’“”’˜’’”““•”’’™‹•—™’’•Ž’”’•™–’’•”’•”›””’”œ˜–““’™‘•’˜‘Ÿ’“’•¡““”•˜‘••‘›“‘–““›”’”‘•›™’¡’˜•“•œ’˜–œ–˜•”“—”–“’”•’š“”””‘’’’’”‘“ˆ”–•”””’“—’•“‘”•”‘Ž“”“’”““’–™”˜’’˜œ“’‘“–“’—–‘’ž““˜••”’’—–“—›”’“’“–‘’”™“›”Ž––‘‘•’‘•“‹••‘“‘”“—˜’–”•”•–›“’–›’”’”–˜‘•••™”••“–•“–”––‚‹–š“œŠ”–““™’“’•””œ–“ŠŸ—š–’•“”™Ž“Žš”‘—’“„“Žš–—”’–‘‘•••˜’˜”—”“™“—”–’‹—‹——˜••”•™””—‘•–•˜–™‘”ŽŒ’“•”’Ž–”—•””’›”‘–”“””–•—˜””‘‘–––š–—’‘ŽŽ’—”—”‘™–‘Žƒ’”˜Ž•”“™•Ž‘”•’’•Ž•‘–¡“—••’—Ž“Œ‘–ž””‹‘•›—”–Ž—•“š“œ••›‘œ‘™”–Ž•—˜š‘™Œ“•𗇙–Ž’–˜•’’’“—Š˜’•‹š–”’“˜’“•‘”•™•––Ž‘‚—›–•‘•ˆ—‘’™“’Š“•™—“šŒŽ••—–šŸ“š”””“•œ—•Œœ––—””—–”~•™‹•–š”–’~œ–ŽŒ”•–•—–›‘•›Ž“¢•—‘‘¢™•”‘“Š’—“•”“’š’š”’”–’’•““Œ›š”˜•›“Œ–““ŒŠ“’—”Œ•—˜”–‹‹”“—••˜’—’™š˜˜™’•–˜“‘—Ž’’—™‰¤””•”—‹–“™’“˜——“‘©”™˜”’“‘…’•–“—’Ž––š––“˜•‘˜—••––”““ž‘˜š™–•••—–˜–¤–••–˜›–•…•“•Š“’–“‘›•”˜–’““–—–•™––™——‘ƒ••’‰“…•–––”–•¦±•™œ“–—–‘–“™–•˜— •–• ¯›š––•–›–•–™ –¥‘•š•”šœ–Ÿ•“ž‘‘œ—”˜”•”–˜¢•™˜—–˜–––—•”Œ–•Ÿ•”‘’™–¡–—–š’”–“”’–™’“–”•““›•Ÿ—Ÿ•’¨’•’’•œ›Ž“’““•’ ’ˆ’’“œ”’‘–’’”™š’’–•š••’’•““ž—•’˜–—•–•–ž“’“›“•‘’’‘–”•¡““Ž—Š•“–’Ÿ”’’’—“’“”¤”“• ”’”¤’—‘’•“•—’–“•“œŠ›‘Ž”’’£’ˆ™”š””š••“¤Œ“ž ’•–•›–˜“•—””’𔓕œœ“Œ™––•“‘œ“•””“©“‘”˜“’•“’’–¤“™›“’•’•–’¢”•“Š••“••”“—‘–•˜“•™”’•“““•——•™“šš–”“Ž““•”œš•’‘‘—’”¨“›–ŒŽ‰˜’“˜Ž˜˜••“•’•”’‘‘’••’–——Œ–“–˜˜‘–– –•”•’‘‘Šš”•’›–—–”••–•”—–˜•“¢—š˜˜‡‹‹–”“”œ‘–””””–‹–“¢’š’– ŸŒ‘–“––““——’š’Ž‡–’‘—”“”–‘•˜‘––¢••¥“”—–•—–“–—”””’•’‘¡˜“œ™–••“Œ“‘–•“•£’˜•’Œ‘”‘––Ÿ”™‘—“œŠ‘—–•‘•Ž¢•Ÿ••‘•–•‘“—”’Ÿ‘••“”’‘”–š™–”›‘‘–˜•–•Ž˜”›•”™ž”””³• ˜“——–œ”’•••””Œ”š•“˜˜š”‘‘”–””’””—“•ž•“š™•Œ“›“Œ’˜’”– “–’—“––•”•”𔕔—˜–“š‘’š “£Ž™—‘¥’”‹‘›˜™—’‹Ž—‘’—Ÿœš”š–’šœ™“ž”•š”“˜¥˜™˜–—””“’’ž‘“”˜›—”“‘“•”’“””‘™™š•“‡¡š˜Žš”‰—˜’–˜“”•Ž‘”––˜—‘”Ž“•™”””›‰”•—“”†“˜š¦–”ŠŽŸ™–š–”Ÿ“”–™–£’‹“œ’““”˜”˜š˜Ÿ—“›‡š”š’‘“œ”—”“š•–•–Š™”™“•–•‘“”–”•Ÿ–”””“”–”—œ••—Ž“—”—”˜’“𛕔”œœ‘””Š –’™““—”•““”š—””–𕗔ޖ£š“‘”•”˜•”’ž–”“••’”—“Œ•”›œ‘œ‹”‘””¥””š•ž“•š”””•”“–”š—š—”š“•’“’”“”œ”ž“”˜‹“Ž”˜”–ž˜Ž”•”™““‘–“ Ÿ–““”œ””—”Ÿ””™““”›—”ŠšŸ•””–žž›š•ˆ–”•”•“Ÿš“›™š”š””š”“‘—Ÿ“–Ÿ””’Žœž—”••ž”•“”𑇖¡—‘“’–””’–”““—›””’““•“”¤™•™›˜’”ª’““”•’”š’”‘–“‘“–”Š–•‹”—–‹›“›•“•“¥‘›–˜•”‘”‘œ™Ž‘“Ž–“’•‘‘—“”“’§•¢•“–““¡“”™‘–‘—”“”’“—’““’–—•”’“˜”’Œ“””””•—™“”•—œ”˜˜˜š“’“˜––’œ—Ÿ–˜’“‘”™’“———“˜–““‘”“šŽ‘”™—‘™––”©””••Ž›‹“˜‹’“‚“Ž“›™œ—”ŽŽ“•”š—‹—’”“Ž‹’‘’”’ Ž””’—“”Œ“”’”•”“‘““š–’———’“““Ž™‘‘“Ž““””’’‹’ž—‰”Š‘’Œ’†’’•”™””—‰‘‰‘”ˆ’š˜‘‘““”’•–”“‘ž”’‡“–”—”’”“•“|Œ“˜†•“““”–“•‘‘—”““Ž¢“•˜“””’‹Ž”“’“‰”•“”•‘“•Œˆ˜’Ž”›’‘˜”‘””•’“—“—’•“’’•’‘•—”Ž”’‘‘“›Ž”“ˆ””‘’•ž›””“’”Ž”•“‘”–”““‹š•“ˆ–”šŒ’ˆ”™“•Ž’˜›’“‹—’”““›“““–Ÿ”Œ““¢™“­Ÿ™”š“–“—““”™ž”œ†“‘™“˜”—•“œš“”˜˜•™‘“ޔ𔒗•““’“œ“—•“’ ˜Ž“•™¥”‘””Œ“•“““•š©“’”’’’”¡“›—“ž’š‘®“˜˜©š–—“““•“””“•’¤–”˜“›Ž“‹‘“”“¡•“œ““š—”š““–”“¢“–“’“““”“’—”£““’•““™•“„˜– ž’‘˜“’““•“˜”’™›œŒ•”Š“šš–Ž’£–”–•••–š’“—”’–š––•›—–••——•”ž™˜’š— •¢–Šš’–—™‘––œ••Œ”}’’“”—“‘—’‘œ–šŠ—š˜””’–˜‹‘š”›Œ‘”œš˜“––Œ•”’•Ž”˜“’”•›’š••–” ——œ‘‡’”œ—–•—–‘–‘ޙ𖔑—¥””‘––—›–’˜•–—’“‘‘•–—’Ÿ—š”–‰‡•’ž’¥”š –”—𔕀œ––—£”–•“¡”—¡”•—•’”¥˜™–‘””–¡””•˜”•žš™šŠ˜’—”˜’¡™—–“••” ™–””™’–—š’˜™Ž”—š›”—•š—••”“•””™–š˜˜—’”–•£˜•”’••–•Ÿ—”œ˜“•Ž’’•‹—˜‘”¡šŽ˜–•”““”—‘•ª•“™”˜’•”•——”—˜™•—›£’˜”™“Š’‘•Ÿšš™’ˆ•“”“œ”“›™†“‘’ž””””›•”’›“‘•””–’”’•“”’•›œ””’—’•–š””’–Šš”••”“”š‘™‘¥“™’“‘”‘—”˜“Š›””•””’’••Ž“˜“•“’•—•š””“”™˜Ÿ‘–—–”•’™•˜•–š•˜š—‘““œ”š–œ˜–“–“—”™˜›•—›’““™”˜Ž””••”–Š›š–˜—œž–”œ™”—™–”—‡’•–“—’•šˆ”™œ˜‘–‘’–‹•““}“ˆŽ˜‘’”˜¦”‘œ’’““••–•œ“‹¡”‰•—šˆ“–’“–“‘†•””–—’“”•’”Ž“”‘•••’”‘‘šŸ•¡Ÿ”““”‘š’•“š—Ž‡Ÿ“”’‘š‘•˜“•‘‘•—’‹“•“””œ’’˜’Ž”–›”›“’•–˜“‰•““ž‘•”“™•–Žš–™Š¡™œ“™˜”’š—“—™˜•”˜Ž–•“ ”‘“–›Ÿ”“•˜–”–‘ž’’””˜”•—“•—••’‘••“”•””‹““˜““Š–’‘–”–“‘˜˜–“’•——“ŽŒ–“’‘•‘”’š“’•’›’”’–š•‘’–”“–‰”–’“””‘—’™‘•‘”˜–’”•˜™–“‘‹–›•”––“Š’Ÿ—“”—–”—•–”“–“••‘–”•••‘’˜’•–•˜’”š–Ÿ‘•—’“’•”“™™’”Ž›”“™”––‘˜–Ž“—’–›•––”’”—’——”““”’’—‰–š–˜”‘‘•—“—–™’–‘”“”“–™š•”˜“˜‘–•”œ š˜œ””œ’“’”••—Ž–›™’˜”™Ÿ’“””””””Ÿš—“–—•—¡””———‘’–¡™”——Œ““œ–£—šš•š”™ “——””••“’“•Ž—–”–“’—’—“–“”Ž‘¦‘–’šœ›–“˜˜•–ˆœ“›””™”””‘©‘•˜•”””ž“¡˜”›“™”‘”“–Ÿ‘—–ž”””‘“”“”•žš‘š–”¡‘‘—–””™‘’””•˜–˜—™“””“’“™–‹Ÿ”—™“”•Ÿ“™”˜ ”–””•™•“”Š–“¡”“›“š˜•˜”˜‡™”•–•—”£˜›”–Ÿ’›™–—“—š–š“•—–—‰—’”œ’—‘’—•””˜œ˜””“””—“–‘˜œ–“”›”””‹–•——“˜”™”‘’”•“‘™”’š–”–•—‘—”—𔕕“•”˜’˜•’””—‘›”š›œ“•“›’“—ž’œ’”•œš—¢›“š”™•””™›— —š”–”–”•™”’”“”‘”’“–—š›””””•œ•”””——”›’•““–—˜•š”œ•––’™’œ•™š””–ž“‘œ¥–•“—””˜•’——–””–””—™“—”˜•˜“šš””“‹“““—˜”–™™™•ž–™“‘š—•–“•”•œ š—”˜˜•›’–œ”’–—¤œ˜“”˜’–•””•••–’•š”””“œ•‹’•–š‘”—™”š”™œ””š™“˜’™‘“•œ’‘“š”—˜‘”Ÿ ”§”œ–”£•›””›–™œœ“–‘š—’ŒŸ‘’œŽ™•›š›šœ•––”’–”™š˜–•“”“”‘“”’š˜””’”Ž–•‘‘”“•›–•—•“Ž›‡•”’Ÿ›•™Ÿ‘•‘•˜—˜š•—•”•”‘••‘–›Ž“˜—”••“›‘‘¢–”…”šš•”—•’•’–’’–˜›•–ž•”¦Š›•–˜šž’•Œ—••™š““œ–˜–› “–””œ—•˜’œ•—‘››™˜˜••˜•™˜•–˜••™š˜–ž–œ”‘™›š”•––™—’˜”••“–‘”Ÿ™˜›“–‘•’™š˜’š•—•‘–š•ž”•’”—‘”š„–”˜¡•””Œ—••”“”—šŸ’•””•‘£“•œ•—¡”•›‘Ÿ–œ£•–•”›”š‘•”‘˜•“•¢“–˜ž”••––•—••—š›™˜•Ÿ˜˜›˜—’•š•™”–’“•–•—›•‘—Œ’•—š••“˜ž™›–•˜——™”˜”•˜ š—šš˜”“•Ž“‘•—˜š—–•” •‘£’’™•–šš›••–””•¦”’—•›˜™˜—“”––“™””””ž”•–˜”Ÿ“˜š›”˜š••‰œ™”š š•—’˜•••˜—‘–—”œš–—˜—™š›”˜–”™Ž™’•˜£˜–”—›–Ÿ˜“¡–¡œ”Ÿ‘•”—–Œ•–›•“•”’›š”—““•”””•—˜•˜•š˜•™š™‘š–—•”•’‘ž—”•”–˜šœ˜”™“”•“—–•¡—œœ—Ž”—“”””“˜–——šœ•›–••˜™’”’œ™”™“—™“›—•’˜”˜”™š–“š“–”–—•¡•™•™—”žž–“•Ž–•ž—”’–››™“••—‘—•–——•—–¤–”•Ÿ”’—••–•–”š–œ¤’””’’••’ž–—š¡—•“•“’”š—˜””™™–Ÿš“›—˜“š•—’•¡”£–›™”•¡“–’’–š•˜”–”••™œ’˜”““•𔕖•••–•—£˜š“œ“–””ž•–“•‘—•–“•˜˜Ÿš“‹””•—•–•–••›š“”™•œ™–™”–“•”˜™•˜“—£’”Ž•‘•˜š–—•ž›•—••–”––”–¡ž•™••–˜•—•“•”–—¤””“—–•‡™™••”“”•”–“‘”‘šš’““‘ –•™œ“‹“•˜“’”–›•’“”””‘•••‘‘ŠžžŒ”“’“‘”“Ž˜˜”“’”•›’‘˜•’•ž”¢“–”•””–•’”‘—‘˜‘–‹”••™Ÿ™•Ž‘—”ŽŸ—’“œ’•“‘“¡’”•”œ•w”¤˜–˜••“•“”–šŽ˜›““””•Ž•’ŽŽ•“’’‘š’”““Œš™•”Ž“’“˜–•“••“”•›‘™™•‹›”’”™“’••‘•”“”••Ž“””’”•“˜“’•–©”””“£•–“˜•‘”Ÿ’••••›’•” “’™‹“˜”“““•Ž•Ÿ“Š”—’”˜”’••†˜””Ž“’“””“““’•—“—“—““Š—“—›”—•—“•”“ žš’•”“’’™œ”””™’”™“Š—›Œ‘˜Ž•“œŽ˜–‘–““Žš–––••—•“›š”‘“““““–ލ““‘–“’“—“––“’—–›”“£¢›–“”“’–˜“”—ž—’“—𗦕œ—“˜——–”—“˜––“’“‘•“—“”“•›““–…‘˜‹–”–‰–™¡–“’‘—’–‹™˜“––“‘˜–“•–”•”ž—’’–‘•”š˜–‘•”˜Œ •’•˜‘—’–““˜˜”Œ•ƒ••’œ›–•—–••—’“š“–—“Š——›—™°“——•Œ–Ÿ’——Š—•’’•–˜“““›”‘•Œ•†¤“‡’Œ–”“”Š˜™’•–—‹‘˜””’‰’—“–œ–𔕒••ž–•™””“–›¡”–—™–”•—¤• Ž—•••Ž‘‰—––•š•”–•šƒ˜•—””‘˜Š–•¥•‘”›’Ž•±™˜‹–™–•—•šš’–—–•–••”œŸ‹–’™––Ÿ–˜—“—•—“ ’•™˜‘•™œ’Ž™¦”œ•–“žš’‘“•“šŽ’“•’•™——˜—“›“•˜Œ—’–•’–•••˜”•’’“’‹”—“™˜”•’•’™–“˜“•”“”••Ž“•–“š–˜“”–””“•–––“•—‘—–˜”’““““••’•““Œ’•“’—“‹—”’‘˜“–”•”””••“’„˜•™–•–•”–˜••“”•—•’””–”œœ••••““”•’•‘““”‘˜”“˜˜”•‘”š’˜“‘–””›–‘š”œ—˜Œ•‘’–”’‘–•––‘•‘–“‘’‘–””•—“œ”—”˜•“—–•‘““—••š’‘””Š–›š‘¡š”˜œ™“”—”’–™˜—™š—’–˜”Œ•’˜””—””˜”Ÿ˜˜•‘›š•““˜˜š–›•™”™‘–“š™š–•˜–””—›’œ›•—–”™—“³‘‘”š–“”ž ”’’ž”“¡“˜–•“‘“Ÿ–š“Ÿ˜¥——™“›””Ÿ“”œŽš–ŸŽ˜”””’“–•“’™›“‹”–“™•”˜“”””™–”“”•˜‘‘–‘•š”šš’œ–”““—™–•ˆ›˜”–”›’“‚—¡–”–—”“•‘“†•‘””‘—’”˜–›““–“›—Š’›™ž—˜“§‹˜“š—˜“”Ÿ——“•‘–’ž “”™™•’™—‘–”•””‘ˆ••Ž’Š•—™ž••’––”•Ÿžžž£•“‘›™”–—”•™’Ž“––•˜™•’}•””‹•™‘——••“”•“–¥•š‘‘‘œ’––¤’™’™˜˜•‹“•¡”›Œ™›‰–•••“œ“›–“–• –•œŽ¢˜œ•œ•••™•”’–‘‘–“”•’Ž”˜Ž†Ž•••›‘œ›–•š‘””™•œš—š‘”•––—”›žª“‘“•’•—ž–”–’“•“•–—’’œ—••”“–”””•¤••˜’›“––”–•“•™š˜—™–”™ž”™’šŒ—˜™–“‹–“‘˜—š•ž•—‚‘“œ”•“˜•—‘‘–—‘¡“””“”˜Œ—š•ž‹•Œ’“•”“™†””ž••˜”–‘““•’’’’“Š–Œ™Ž•“ž“¢‘’–‹“—‹•”•“—š‘˜Ž”“‹Ž}’“›””–‹—–‘”“‘•‘–’–ž—”‹•šŒ“™”“‘¦¬–’—–“—–“‘“•‘Žš’¡“—š””•ŽŒ•›”˜œ’–š••š”––“˜•‘”˜••””Ž’Œ“’’›–›‘‰Ž’•›”’–‘œž˜‘‘Ž”˜Ÿ –’’”“–‹¡–•™•‡”𔕔”˜—•™—”—••”•—““•˜‹”˜”›””•••”””•›—’š‘—–“™–•š •–”˜–•––‘’”š—šž˜••––œ•–™–’”Ž“’””Ž•Žš“’˜“””’’•’“”••‰‘›—–”•’–”‘‘”›–‘” ™•”•”—•–”—•“’š‘–’””–”™•“•š”””—™—™˜˜š•–”””˜••”—™––𙓕•–’“•–“•›‘•”›Ž˜••“–—””Ž‘•’—–•”“™—”ž“•”˜•””—”•˜•𔕗”––––••“–••””‘š—š–š•“—›–‘”–˜–•Ž”›˜•—’—”•–™“•‘—‘—”•–”“•––——–—––—˜˜‘•”Š–‘—‘•—™ŽŽŸ––˜—•Œ’——•’’––‘’”˜—”–œ•“’–”—Ž‘’’“˜˜“–œŽ–“ˆ™šš™—™ ’”“Š—‘—•’–•“‡’˜œ”•–—œ•‘——˜•“––—‹”™š–—••’‘—•™–””””Ÿ”—”““•—•”˜™‹›™‘—“–– •˜–Ÿ–Š‘•–œ––—•™Œ”˜‘—’•‘™“•—•—’‘•–Ž”—–““–‘–’—‘—“—œ–“›••••—’”–ŽŽ˜Œ—‘–•’”‘“•”•’’–•—“–“—’•––™––‘“–“’’”—’–‘—Œ—’•’––˜‘–•—•ž“™“šŠ–’—˜”•˜•”•–“Ž’’—œ•’•••Œ–Œ’•‘“ ‘œ‘“¢‹‹’™•ž™“‹‘—”–““—–”}†“•–•–˜–—Ž–Ž“Œ’¨–†£¤¡Œš••–’’——–ŽŽ•—–’‘—‘–‘’–Ž“””™‘˜“•›–œ•–”–—•“—–ˆ––›Ÿ’“’¡—–˜’˜ŒŽ””–Œ••’†”–“‘›•“––„’–™˜”—ŸœŽ••–”’‘š”™—“”—“•”—“˜—”•˜•’’•“””•––˜—•––—–˜‘”™–“‘’”’•––“—š’“–š–˜›”•–—”ž‘š˜•”–•™˜—’˜“’•”––”˜”™›—˜–˜”•”–”˜˜•Ÿ’—“–”—”“•“–˜˜–—•‘–––•™œš”—––•”•‘–––••Ž”””˜’”š“–––”—œ”–”“™“•–“•˜•‘”–”—’••š‘šš‘““–•—˜””—”™˜–˜˜–––’–“˜‘—–—™’—–“”–ª••–•™”œ•—•”•—–––“•”•˜š›—“’”ž“–“‘“˜•˜’’’š•–—›•”–˜™–––™’—–””•› ’—”“•”—ޕޔ—“𔕕“‘™–”œ•—–›”Ž•’•”š–““™“˜–”“–š––š‘†””–”¢––’“•š˜›˜˜•“ž–•’‚™›“–——“™‘‰——–”ž––žš‹œ•”›˜˜–——’˜–œ—Ž–Œ”Œ”š——•–—˜™ž•Ž”—‹˜”›•’–“—˜–˜œ”–š’”“‘”’’•—˜•˜—•———’Ž•–˜˜–•”™šˆ••Žš˜•š˜‰˜–“–”“šž•“’˜š‘’–‘”–š•—‘•—˜“”‘•—“•Ž“”——–““–’“–™•’•”š™–’“Ž’•—•••˜‘–’‘—•’•‘”‹””‘”“•”“”™”‘“‘–•Ÿ”—”–•––”’—’œ“—”𛕗‹’œš““•˜•‘’—•—––“–••¤‘—“•©‘•—”’›˜{–“•–”—–‘¤—•‘”˜–•˜–’“””››”•”•”‘›œ’•––˜––’”•“˜”–“š›š—›’——–‘“˜ž˜˜˜“••–™’–š’””™ž—”œ”•“Ž™–‘–œ‘—˜”‹“•–““–’”“–š•—–œ–™‘••‘’”—†•—’ž–š“•”œ›“––•”—’œ’–“‘“”‘““‘“”•’š’“•”—•–’•”—˜ž•—’𙣒••ž–““””•““š”—’›‘–•˜‹•••’–‘“”“–“‘“•““”—”•“”˜”›’”’–“•Œ“—”“”™Ÿ’–”•”“’‘™•š•“••”–£“ž”’•–”œ•”“”””“’”•‘”›˜”‰”””•“’™’”••—¡”šš–™’’˜’’’•ž”—ž’’Ÿ¡•’ž”Š•’™•›“”š•™—•”•”–•–“˜”—•’“—”’•ž–“•‘“˜•““˜’“””›–”’“”Œ•˜–š•””“‹“–”—“’•Š–’Ž‘–”•‘”–”–”’“•“–“‘’’••–••”––’—•“—š””“–“––˜Ž—”–‘••——“’“‘“”“–•“‘•”””•”–•”’™””•’–—’•‘—–’”–’’ž—–“•“’Œ”––”™““•”•“‹••“—–•–•––•–”–˜—””›”’‘™¥šŽ“––•––—‘••Š–––••˜””•”••’–•”˜˜œ˜”•”–””š‘›•–Œ”••“•”’–˜—••”’Ž’•–“•—“’”–“—™’•Œ•‹Œ•Œ’“—œ•“”–”•›–””œ˜¡˜––•›‘œ“™“’•š•š™›—œ•””–”•––––••‰“›”——•–”•˜–—™›‘““•‘™•”—”ž›’•––‹œ’•˜“‘•–Œƒ˜•˜”‘”••š–˜—”˜“–”—•”““œ¢—‹’–——”•–’”“œ‘”—”•–––••€–”’š––Ž˜—œ™•••–Œ’–•œ“˜–•–›“™”‘•—Ÿ—“”‘“‡šš–”•‘Ÿ–Š–”•“”—•–”ž““’——–‘‘Ž‘‘•›™”š•›—‹–šš’”•…•—‹•‘•“•ž••––‘’”˜’–‘•˜—•Œ–’šˆ–˜•“—“™–——’‘•™–“•–•™–—’Œ”Œœ›’““•””—™‘•˜‰˜”–—”–•’Ÿ”™Ž“”–œ•Œ’”“—Œ°•˜“•–œ›–›”–“Œ”Ÿ˜“–š’™“’™ž™Œ•”œ–—šŠ•‘•–—•œž¯“¡–”•–‘–‘’™Š•œœ™‘—••–‘‡š’–•…—– ––’‹”“ž•••¡’–Œ›˜”•”–ˆš•Ž›¢––‘™•–‘s•“––—–˜™–‰Œ•z”–šŽšŠ”› ”Ž–Ÿ˜‘–‰””š·–—˜”“›ž‘’œ–”•ž™”‘›—™“Ž•’–™˜¡”—š”—™–””–”“–˜–“œŽ˜œ™‘ ˜“–“˜–––’”” ”˜˜”’¢”™“’‘”˜—˜›“•”™•”™”“ƒ•‡“˜•’”˜•”š•–“•–’“•™’™›’’”šžŠ“‘¥“™“”“”–¦”•›™”””•“ ”“•“˜’”—˜‘’𣙔”“•š“”˜¢˜—’”•“•”™” •š˜œœŒ›™’”’”“›“ž™—““’”“”•”œ–ž”–š—’–˜” ””‘™” ••“–“˜•š“˜™š”™ ¢“•”° ””––“ –—”–˜’𢗓”š“”–¤–Œ”•£’œ””—““˜’š“’—•–“𤓓’–––˜”–”“˜••˜“’“‹–“Œ”–•“‘Œ›“—“”•˜“°‹–”•  ”ˆ—’–›˜“„”‰ˆ”’˜š‘—•—“–˜¨“›¢“›“”Ÿ“”•›“›”“”‹“”‹“’’–’•““—‘’•’””“•“˜›“””‘’– ”˜›•ž““””–—Š¢”¡“—•“”•—“ˆ–Ž’“š“““’—¤™”‹˜—‘–•™”¶”“˜““Žž–—”‹’“ˆ““™šœ•–––©“™•˜“’’Ÿ ™““•’“’Œ“–“””“’“™‘•””“’““““’’—Ÿ ›’™›””“Œ›’–—’“•™”‘“”–Šœ–‘Ž“–œ•œ••’’˜‘”Ÿ“–”””“‘“˜•™’‘““ž”š””’–”•—•š“‘’——¦”™”˜”“‘–”›™‘“’“•“–”“’‘“Š“’””‘‘–““’“’–™“”“•”—““›”›’”•’’”“““Ÿ“‘–›•’“‘“•œ”‰“ž”–“““’’™“ ™“Œ““”””’”œ—” ‘˜‘œ””–•”“’Œ™”–Ž–”š˜œ–‘™˜—™“˜œ¡Ÿ–‹œŠ–‘–”–– œ“’ž–˜˜”“•–•–•‘‹•ޙޙ•“˜–“—•š–›––‘’”–Œ˜ž’Ž™••™“‹‘”‘—“Œ–’–£—–œ”“‰™˜”–˜—”“–—¯”–•“•¢£••–“•–˜•–¢Š“›™••–’–”‘•’’•Œ˜“Ÿ–––•‡‹’˜•–•”””••”Ž”—–Ž•—ˆ˜™š—–™•“–“™•š”Š–Ž”–•’——–‹˜š•ŽŠ›‘”’–”–— ŽŒ—Œ•Š•“–™›“›š—™’”‹š”¡›“””•–”““—‘˜–˜–“ž’˜•‘™š”‘œ—–””˜””——œ’“šš•’•‘•Š•“˜—™”””–ž’‘”š˜“”’•“Ž”•—œ’™•””—•™˜“ „Ž—™—›“Ž©—•–”•“‘’ž˜—”—’ •—“•–’œ’¡“”“” ”“œš––‘š“””““—–”’˜Ž•””Œ“•’•“””“’˜”“‹›‘’”˜‘–š•–“˜–”–‘ˆ œ—’“””–“”Ž™¢–”“˜“”–•”Œ”›™““Ž”˜š–™”~”””“•›˜˜˜“˜”œ“•˜ž›‘‘””•“–•¡Š›˜“™–—œ™“”—‘˜”’—˜•”𒣕 “—™•‘“”““”•••——š—–›”—‘”—œ›š‘———“•••‘“–§˜’›™“—œ•œ‘”••““—”›œ‰—“”™’—•‘‘’”•””˜Ÿ • •’’›š’£Œ“Ÿ“—™”““œ’‘𙓓”—’–™”Œ–“™—“––Ÿž“¡ž’’“Ž’žš”“œ™–›•“›‹“›——œ“’“˜›‘—™˜š–“•“•˜“‹˜‘ž“‘›’”–¢›•“•“¦”™“ž”’“—–”˜– –”“˜••“¢‹ “——œ˜“˜š™Œ–˜•œ““–Ÿš™”“—‘‘’‰–¢‘“˜’š™”–š—“•••™•–“–—ˆ™“Ž“”•””—’— —”“•––”’–’–”•‘–—’•—ž“Ÿ”—•’””‘–£‘—œšŒž•œ•“”‘—’•Œ’Œ”•“›˜“™•—–¯’š–œ••–•˜™ˆ“˜œ“”•–—–š—–š—••“•œ—“”••••”•’–•“‘¡•–œ“•”’‘””–”š–’”™“”’’•–––™•”“¡—–“•–”‘œ’” –•˜•Ž””’”–••––—“—˜”’“•–—™•–“•”—”•“”‘›’“”™›™–••’—•˜”–š—ž——œˆ™••¢Ÿ–”•™•••’—𙕗”š–”˜•¡š™’›’•—’–˜•™‘––›œ “• “”‘–Ž–Ž“‘–†’„Œš‘—˜•–”™“•”””•”“•“—“—•™’¡”—“’Ÿ¡••–‹”•’‘•“˜•–”””•”™•‹“–’••”•—–›””““œ’•”˜–›—š‘”–••˜”•›––•Ÿ –“Ž˜™“”Ÿ•“”•”œœ”—––•“•š–’Ÿœ”œ‘𔓔““Ž“”˜—˜¦’—”•‘•–“—–™——“™™š”‘•–˜Ž”œš™˜Š†–’Š•”›”“–“•”ˆ—“ˆ•’™“˜–”˜–—’——˜Œ˜•Œ’—˜——”™–•™–›‰–Ž•–“–Ž”—š–“’•”˜––•”’“•‘–›”‰‘’ƒœ••“•𔑛”ˆœ’–’”›‘™–ƒ…—Œ–—––“—“•Ž¡•˜“’“””—”—––“‘™––˜–™ŒŽ—•””œ›’’—”—Š““••••Ž‘“•›Ÿ’—•‘–˜‘”’”™˜•”“Ž––ŒŽ•–’”–Œ—–¡”‘‰’“‘“–—•”™•”ž“–‰‘””“”’••”—‘˜•–‚š“™”˜Œž¡•“–––˜˜˜™’“š–š‹’––—š˜”—™–“™“”™Œ’œœž“›”“Ÿ‘›——‘’”–—™••Œ”‘—Œ›˜˜–•Ÿ—Œ‘™—–“••›“™•—’——š‘Ž™‘—–“—™Ÿ–•–¤š’••––˜›™••”—“”•—‰””Ž‹•–•œ”˜“••—š•˜–š–“˜‹˜–––“———™—”“ƒ ”“’Ž™›–•Ž—™–“—“–¢”Ÿ‹”¥”Ž ”“–•””Œ“˜–“–›”””š˜–•˜——š™Ÿ’”˜”–›–•—••žšœ‹–•’•˜•‘•—›™’•“˜–”’–—›š“–‘“–™¡œ’•’‘˜–””Ž••–•’–ž•”—˜“Ž‘–“–™”Ÿ’™–•Žš”—”Ÿž›“—–“•œ™˜›–’“”˜›—“’‡—œ˜œ¦•˜˜‘œ•—–Ÿ•š•‘œ‡™—‘”Œ—¢™˜—Ÿ–˜–••Ÿ˜™œ–’–’•’—”“’•š•••™ššŠ•“•”›•”“—•Ž”–™”™˜™—–œ’–•“——–Œ”’”—•–Š•–œ”š˜–•”—š—’–••˜”‘–“”–ƒŽ”–‘’™‘““‘‘’–”‹”–Š•”™¡˜–“–“““”–“—Ž’’–•“’‹—–•–•“‹‘Ž“’Ž•‘“——•–“••‘”˜”” ””—˜œ’•“–™˜Ž•”–“‘“Ž•‘••–—’‘•Ž•–›—––“€“Ÿ™™—’“‘“–“”“––““‰•–“™–¡—”—“”“ª”˜•—™•–‘•–—™˜’˜–”’”–•”—’˜””•“•Ž›”Ž—”––—›”™•”“Œ™“‘’•–“’••‘—•œ”‹––•¤†‹”–––”•”–‹›••”˜Ž”•£ž–—–”—˜—–“”•–”Œ–—“”’‘‘•ž”™•™“šš˜¥•“•¥‘—“–›š‘–•–•””’¢–‹”••‘–”ˆ…”–”’–•”–•—˜–”——“—™“–ˆ“”•—‘‹’‘”•›•–”–”––•“Œ¡““•’”“’•“”Ž‘•“•Ÿ“—–”˜•—–‘–––••””––Ž••”“’••–•“Œ•ƒ••—–”–””• “œ•••“–•”•’–—”•––’’“’—––•••“Ÿ”—–’˜’• ’•›“••–”–•“–•š“•œš“••–“”•Ÿ–—•›––Ÿ—”—’”“‘™–”“—”“–œ—–š–™Š•’‘”–”—ž“••”––›–¡š˜”‘•Žš—•›“›—“‘“—š‘—™•––ž–”šž”‹••””””•‘™œŸ”š˜Œž”“‘”Œ‘—•™“›˜“˜‘—”–ŸŽ””›’’˜”“››“‘’­˜ŸŠš“‘”Ž˜˜—“‹”Ž•˜–™¤—Ž˜“ ˜Œ™Ž “’””—“”“ˆ˜˜Œ–•““–“›“‘š””“”“’˜Ÿ£“””‘Œœ““—Œ˜’ž”••š˜™“””“”Ž˜—ŸŒ•›””“–”—˜œ™“”–““Ž—”•š””œŒ¡Ž—š™“š”““’—›“‘”—”Ÿ’œ”›ž’–™”’“”–¥””””•”››”Ž•”——”””–‘™“ž—œ”“™—›–•”••’“•›™–“—“’“”•”•’””–”•œ””Žš”•”’•”•”‘˜“šš“˜˜”Ž— ‘•›”’“’˜––œœ””›•Š›”™•¤›ž••”œŸ•–œ¤””•”“””–’›—•“œ•””“”•’”š—••‘•˜–Ž›””•••“•”•Œ“œ“™•“‘˜—˜“𔕔”ž’¢“˜˜•–•••”“š‡“•“••–ž•’™–•–”š™˜Ÿ˜•“˜”“”–”•™˜™’‘“”Ž”ž›™—Œ˜”“‹––“—••••—‘””–”“”ž“‘“–“”•”’““”’‘••––––•“•Ž‘†ž‘‘œ™™”–•”’–••“•”—”‘–“–‘•‘‹š–’”’“”“”“’••Œ•”’“”’–œ“‘•“•’“•““—’‘Œ““”Š–’”˜‘‘‡–•–•’••’—›’”œ’––•ޔޕ–’“’–••””•’‘š––•”“˜•—”–“™”¡˜“‘”““’’”—š“””“˜“”‘•–’•”œ•š”Ž•’“•–••—••‘“”‘–“–”’“–š“˜ž“Ÿ‘ ••’“•–”‘••”“’“•’𛕔‰‘Ÿ’““–’žŒœš“’šŽ™—–•—‹–›™—š”—–“”œ””“Œ™¦™“žœ‘™–Ÿ””–“—Ž‘”œ’’—Ž“ŸŒ–Ÿ““”™Ÿ“™’”™’ˆ–¡’‰Ž²‡œ¬œž“šŸ“Œ›Ÿ’’Œ“™’“‘–°—ˆ•–”˜—’Ž““”Š”””’Ž›Œ•”“œ’˜†“‹•˜Š”Œ™“–˜—“””Ž–™”““Ÿ‘–˜””‘”——’Š“’•ˆ•™“‡—”“•”’•˜“«–““š’“Œƒ˜”ž›“›Ÿ‹“•“®””œ’¢—©Œ“”Ž””˜š¡—‹•™Ÿ••™œ””‘”—•’’“–™‘•••“™—–œ”•—”““•–’”‘••–•––™™™˜“—›–™—•˜–•–˜˜””›––”˜”•“•’”••”š•—•——•”•“”™”“•š•˜“•“•–•““—••—–••“–Ž—•••–˜–𔕓”’’–•–••Ž–•••”—•’••••——– “¡—œ•–•”•—™••••–˜™—–•˜‘—˜•••Ž—””••••–—˜–”—’Œ•“–•‘•”˜•–›‘–•••–•›——“Œ—•‘š––•–••••––˜—””—˜–“—•”˜—•”–•—––ž’“”’––Ž’•—˜›”Дދ‘–˜”“š’’š””“›Œ“”““Ž‘’€’’–—Ž—ˆ˜’•”––—”‹“‘••–“•’–ž“—‘“–•Ž—Ž” •€ŽŒ‹‘–“‹Š–ŽŽŽ•’““”Š—’œ”–‘—’”“ž”—“”“”•‘”–’””“”‹“”Œ‹”‘‘Š–Ž”“““‘‰š‰’“•‰–””“Ž’’‘’“”—–‘’Ÿ˜•“•“‘•“Žž’“‰•’Ž›ŸŽ¬™“’‘Œ“|’“—˜˜“˜““‘Ÿ”ˆ’‹”–—‹—š•”’–ž•˜‘•›˜™”–”šŽ–™™–š–“—ž˜”•”‰—””œ•—”™ ˜˜›””•›‘–“”˜Š˜œ—•”—“””˜••˜’›”’”˜˜•”“••˜–’–˜–‘¤•™ ›•”š’¡š’•¡“Œ”—“—©‘”Ÿ”–˜–•’Ž–•••”—•’‰Œ–™Š—•”••••’•”‘˜•–’Œ– “““–ŒŒ•••ŸŠ’‰Ž—™”›™›“’“ˆ––’˜—˜•”•”Ž’—™©›•”˜”–•—“•¥””—”™•—•£•”—‘™ž’‘–––—•™”¢™‘Ž—–‡–’—™–—––›˜––’˜–˜™•••›““š•—”—––•”š•–™’•žœ’™˜¤”–’‘–›’ž˜••““––™‘–‘œ•”” “”—–“•”’››–š…‘š“˜“•‹Œ–ŽŸ–—•‰“™‘”•–›’“’––”™Ÿ–˜–“–•“–”™‡—’—“•••ޕ𓖑–‘˜“•‘‡’ ””“––™‘–•’™”“˜•““šž–”••—”–›—š˜Œ˜š•“•“‘—™˜˜•“˜••˜’–—•𠓔ޖ–———–¡””‹““›Ž“—‰“–œœ–“™“•—™”ž™›–”™––˜•˜“•“—›––“”ž–—Ž›–—–•’—”——Œ–”–˜‰“’—•––••“•™‰˜–“’˜”•““”—”••”’˜–ˆ‘’’”” —–“”• —”š›–—•‘’—™˜””—”’‘˜•›•“‘‘’–—˜¨“”™”•›”–•”• ”—•š–‘•‘–•Ž••–––›•š—š–—•”’•—–•˜“›“–•“™“””™’––”’•‘˜“œ•––‘–“š•Ž––’•¡•–•”‘›•˜‡–œ˜–”•“••™—œ™‘Š’›œ”—•–‹˜••–“—•™–Ž–—“’˜–––›—˜ ž”—ž‰Ÿ™—”“œ••“žŒ¡—•››™–—’–•‹’”žœ‘˜™—˜¤›”–ž”“‘™‘Ž–—–”˜—“™ž¤Šš•˜••—˜˜™””’ƒ˜“•ž”–™˜› ••š›––‘—š•”—œ—˜”’™––“¨‘–—ž•›™••š‘Ÿ–š”™•Œ–˜Ÿ•Š”•ž–“””šš•••’‘•™—•—”‘•••—Œ‘ž ‘™–Ž™™—’Ÿ¢¡˜˜•—”–––ž”•€’—–‘“™—–ŽŽ”ŽŠ“™Ž‘–”™–™‘—‰–›™•—ˆ’•™£“ž”—‘”•”—•†–•”“˜“¥Ž”‘•—•’˜’¡“—–“¦•““”””–•”™†™—š–š™›••‘—•Š••™Ÿ”‘”Ž”˜•–¡’Ž•“–•˜”‘˜”˜˜””œ•“¥ •“¡‰•Ÿ’¥•””–’ ˜““šœ“–•“¨––›™•’˜‰™œ™•–”••“‘h¢”—“””š”˜…”’™‰¤“”™’™‘¥£—””“ —“‘–”¡šš’“–ž¥¬›—‰”“™˜‘›¡Š”¥˜‘”˜“—•”œ˜‡’”§–“•œ“–’˜•“—…›š”œ•‘–––”˜š£›Œš•ž”–’”“𦇔””•““–•”–”“–œ–‘˜—“’•’Ÿ‘Ž’‘’—˜””˜‘”“‘œ“‘““”““‘‘Ž“”““““““““ –Ž’—“•’“”“–—x𔓓™—‘••‘‘‘““’““•“›•Ÿ‘”“–“•’‘”•‘“••“™–•“’——’“šš‹’’““Š–““’”ž’”’•“’““““““Ž–‘‘““•œ–“”“”“’𔓓˜“˜š”“–‘”•“’“–”š“’’ž“”‘ž“’“Ÿ“›’•““”““™˜’•‘••“Ž‘“˜“’’“–—’œ”›’•Ž˜™–“‘‰’“”’’”¥—™“—•–˜’“•š–’••“˜Œ—‘’–˜‘“›¥‘•–—˜“”–•–”•—™“˜—”•‘“•‘™“–““”˜••——–˜••’œ‘œ•”›•—•–‘”Ÿ˜“‘• ”™‰”•œ‘•”˜—’”–‘“˜™•“—•š“•’••–‰“–—•‘•’‘••‘ž‘‘Œ™“•”••œ•–›—™“‘•—š¥†˜–š•–•‘–”–•––˜™••—”‘”•“–’Ž–•–—’”Ÿ‘—“”•”–•›•’–•–š–•˜œŽšŒ•¢˜’“‘“••¡š””—œ ¥’’˜›”•›”˜•š“—””‘—‘’–š˜š••™–—”›–••˜“••“››˜“–š–“’’”———––šœ––”Ÿ—˜‡”‘—•’£›—’˜—˜–™“”–“ ™˜—”“––”•𙕗–¡”•™•–Ž£†”“––•‰ œ”˜•—”–““©˜“”—‘–•›Œ™’—•š•——–—˜š¢‹›––•–œ––˜–œ•‘Š–—–œ—”–––‹”——•–Ÿ–›“”š•••”––”—œ••¡”˜œ–’—‘–•¦•©––”ž––‘”™–›—–‘•–•Ž‘˜–’––’’‹œ’¡š“–˜”˜–—”˜—Š•—’š•‘“‘’Ÿ™””—œ—•Œ—˜™“‘˜•š‘š–Š–”˜‘™•–“”•—›“™˜ “™š’–“–—˜•˜––‘”‘–œ–””™•”‘™“˜—–š““—™“ƒ’¢›—–Œ““’–”›˜˜••“’”’““’˜’˜Žœ”œ–Š™‹ ”’•”“–”—†—”’’–””œ”˜•˜œ“––”’˜Ž—Ÿ›””˜‘“—”•—”’𖕔𓑓™”Ÿ“Œš˜›£•𛒔𖙓•Ÿ—«––•””•š˜”–››”˜™——šœ•’•’‹Šžœ•™–••––”–š››’’—“”œ–¦ž““›Œ—€¡–•Ÿ“‹’§˜œ¢œ›“¡œ“’Š•““”’”•˜ˆ›””“˜˜‚••”¡‡š——¤”™”š’¡”›¦Ž©”‹™•–™–‘™•˜ŸŸ”ד–†Œ¤ž£“‘—”‹™ ••˜‘–‘™›Œ›œ’¡¡Ö›Œ—”––—v••”…Œ—•”˜—“””˜””–ž“™–•“Ž‹ž¬Ÿ””——‹‹””•“¡Œ”†ž•‡•™ššœ–•ˆ—˜‘”•‹“˜š˜”¨””𕖙ބ•ž¤”•–˜š‘…‡Šœˆ‘¡˜“›–”—’–—˜†••–žœ—•Œ‘•”˜“žŽŸ•—“”œ”’š˜“—–’’˜’›‘˜”“š’™–•’™“”—”“””“““‹‰¡•Ž“—˜•’••“’’‘™”˜““–“•“˜¢”•””’™•—š•š™’˜›”Ž‘ ‘ž“œ”˜’”“•˜•’“”–Ÿ———œ¡”•ž‘“š˜—ˆ’”œ“”““””š–˜–”“”“”“’’““‘šŽ”’Ž‹“š˜•“““”’–•“”“–—š‘“Ž“˜ž—›”“–———›‰’•““’“™•“—˜’“™™“““”—’”œ‘“ŠŽš“›ž–”š““›••ˆ—˜’š•“•“š–œ›Œ•–•––Ž”¥“˜“”Ž‘Œ‘’•–‘—–—™“œ•˜‘‘—”““—”•‘•”“’“›—Ž’—™“Š—“˜•™“™••“–’–“˜¢””˜¦”‘‘—š™™•—’–‘“—•Ÿ”˜Œ”“–“˜™˜’“™–‘“••”š”›˜––‘Œ‘“‰›•”“•’”•“Ÿ˜’‘‘’”–•š–™—•“š”™–˜™’—‘œ“•””™™‘•–••’š™ŽŒ”‹˜“”“••”˜š‘ž—‘•ˆ’””•–”š‘•š–••’’••””Œ‘Ÿ“™•——”•™“—‰–””””—•–˜˜š•™“•Ž““–“”™’•’‘”Œ—“‘–”’‘Ž”“““‘Š”‘‹—‘’•œ•“’”•Ž”“‘— ‘“”•”“‘˜•‘—•“•‘”’‘•”””’––‘–““–’“’•‘’•›”‘”•‘Œ‘–““”“Ž“””œ“•˜“‹”‘‘’¦’•’•”“”–“£‘’’¦‘••”–—””“‘’’•”‘“–™’••”“’‘ž””‘’Ÿ”¢”“–‘‘•”’–••›•‘”—Ž’“˜”•‘“““•”‘—“‘“–’” ••œ’‘“‘’”‘•’’™“˜“”“‘”•—•‘‘‘”š–Ÿ—Œ‘”—˜–”””•”œš•“—•‘–ž””––‘š˜–”Š•“–—•˜–šš•–›—” ›œ•—•“œ”••—”—•—𔕕 “•–“”•—“•Ÿ“š˜–™ŽŸ˜’“••™–¡–›Ÿ”‘™™™Ž“–œ——”’šŽš™”–™”“”—”–˜š•–—’’˜”‘–•••””Ž•›™”–”‰’š“œ“•–•™””’™•˜ž“Ž’Ž–“–›¢”¡”–•“’’˜–™„ ”–••™’—“—š••ž˜––’““—”—“ž”“œ˜•œ”–•“”˜›–œ’“•—›˜•“ž–¡••””””‹’“—•˜›—™”‘”“˜˜š•ž”•‘•—“•—˜”“•˜œ”•”–•’Ž•–¢›•›™‘˜©’•Ž™œ•˜›’‘”š“••š”›”•’“’••”–“œ”›˜•–•“‚Šœ”–’’‘”“Š•—›’“•‘“““™™Ž•’Œ“˜•˜“–••ž•”’§–—–—”””—“Œ˜•–‹“š•Œœ™–”••”˜•—™–”’–Žš˜”›˜›œ——••“••œ¡›”šœ•’”›–”˜Ÿœ—•‰””•—Ž™›¤“•–—‘“›•𔫒•™‰“—›”އ“˜Ÿ” œ”’”’˜Ž”’™˜Ž›“•”˜”œš–˜™“–“™–”Ž–•‘—“Ÿ•’œ”‘••”••“—š•›””“¨•™”—•“•‘’œ˜•““•”•“Œ“––›•›•’•“‘“—“––•‘‘š‘’•¤–“—–””Ÿ”’—“—˜’’¡˜˜”–˜–‡œ–”–•”•••¥•”’••”˜•Ÿ—””•Ÿ•’œŸ“˜”””•‘™Ž••“›”’œ–•™”’”“–—•”–Ÿ’”›””–š•”’•˜”šž”™—•••š—‹Ÿ•“•”œ–•›—“’’Ž“–’”••™•‘’‘‰–œ’—•“—š••œ••”•¢•’”•‘™”••–•š•—˜Ž”•ž›––•–•“•“ž’”šœ—•œ™•–˜”–ž—••ž˜œ••’–•‘””•–•”›”Œ•˜™™š“”•–…™–‰”••–Ž•‘š ’”š˜–‘›”‘“‘”–™–—–™¬““”•™••£”Š™“•ž••••””Ž•š”˜œ•˜”–‘œ—–––•›••˜••”†”—•˜”“˜›˜Ÿ–—”••£—•››––••›””™ž••˜”••˜›””œ›”––“—–š–š•™––•“”•‘𒕇”š””šžœ——¦•”—”‹–•–•‘˜–•™“Ž––’—•™’“”“–•’”“›”•–•”“””•”“•ˆ”“Ž˜•˜’””™˜™••Ÿ–“••’’Ž—–š—“›”•’ª‘—–˜•’š’•›˜”‘Š–•““š—’“”™™——””–“••••”„œ•œ•””•”Œ”’““”‘•‘’—‘”˜”””””’—””““‹‹’’•’•–“–’“”•’Ž”“™Ž•Œ•’•™”–“”“›‘”””•Ž–’™”•“˜‘–•–”𔕛Œ—‹••”““”˜—‘––™”š•“ƒ™’’”–›žš’’”“‘’™’—“‘’™“‘ˆ’–š—”“••𔕒•”¬š“’—šš’•“™£œ•‘’•“˜“’•’“™“–’ •••›“¡“”“•“‘’•Š“—“¥”‘””¡‘™“–’“”•“•””””•“–“ •’’‹ªš”™”“š••’š”š ‘•”•¡•˜“•‘‘’“•”“• ›Ž–“•””“‘—”””‘“¥“–™”’‘“”‘’•š“¡—”“–‰‘’•”––›”‹“œ˜”Š’–”“›“•”›”“œ’’’“’“•‘””’•¥–“‰“”•“™ ••“•“•‘–‘˜–“—›‘–‘•—•’“•“‘’‘“•“”—’’–˜“’“–’”””•–’‘’–‘’’˜“™”˜““–••’•–•—”’œ–•‘–”“—•“••˜’•“”’’“”’“—“––™”•“˜‘˜“‘›’“–’’••‘‹”•‘”“‘——––Ÿ”‘”‘••–•š˜Œ•’“•’“““–”˜”•”–•—”‘’•š—˜”—“˜˜™’”Ž”’”–š” ”–”•—˜‘“‘ˆ“–š••””•”ž’–—“‘•–•––”•‘’“ž”˜•–›–™“—•”‘”‘”•””™”—”šŽ•“Š’•”•““š‘“›‹””“——•–¢–“”‘‘™™“”˜““””ŠŒ˜”’—––™—“””——•‡“•˜›—“”Œ¢“˜œ“Ž‘•Š”—’–‘Ž““‡Šœ–›””Œ—’–›™›“Ž–““’—𙓓“|˜Ÿž“““’Ž““•žœŽ‘œ”’“Ÿ“Š™““Œ–˜“”•–™“Œ—””“””—‘“”’—™ž›œ”‡‘Ÿ–”–“™’‹›•™”›”“””‘Ÿ“——”Œ“•”“”–—Š„””’—’”“š“” •–’’“–‹““ž–™“““™—“‘“”Ž—“–“’—œž™‘”•¡›”’Ž”™–—˜”˜Œ••›••‘”††–™œˆ“•’’–”Ž•••‘•—”‘‰ž“˜’•œš‹œ–ŒŽ•“Ž“”¡’—“š™’–•–•‘‘‘”“•”•—¥™ “𔓙–Ÿ”ž”Œœ””“”œ”žš“”””””•“••’—”‘•˜•‰–••”•’•”‘–——–Š”•””•’•¥”™•”‘“•‘”˜”••›”ž™”‘••‘“›–”œ™”—•—Ž‘’”‰•”“˜š”–Œš’”‘‹›•‘ŠŒ–”šš•”•–’•ž–¤ž•–•–••“—™’𔓛™’Ž–•’——–•™––˜•†–Ž›•““–”–¡’™š‘’–”““–“—“™‘œšœ•“ ”—“”Ž’–‘‘—œ–Œ’•–”’”‘““‘•™Œ¥“˜‘–š”Ÿ–•” «ˆ–›•—‘–•šz‹›•–”•–™•š˜–—›‡‡–•“˜–”™œ••••–Ž”—•™Œ”‘†• ’‘”‘—”–”‡—˜‘˜–¦•Œ•ˆ”—–”–““•˜–Ÿ–•™šŠ˜Ž–“•—¡’ š’™›š”•“‹˜•Š’‹›•’›Ž•‹”‹˜™—‘—  •–•’—“ƒ’£“–”Œ“–”›—š–“’•”••”‘žššš˜•“—šž•–‘–—’”“––••Ž–’–„™—œ–‰•‘ž’Š—”–••““–œ”‘”‘–—–‘“›’••””–“”Š”˜”›˜œ•˜––—¦”œœ–Ž–•§–”™‡¢”“–”••™–•–Ž””–‘•’•¡—†—–•”‘–”–•’”—“—”¦”•“–”–‘”’“”¢••’””•–›•”¡•‘•––“ž”–›š”¢‘–•’–“—”™–™’”›””•“•’–•’––”––’…•“•–¢’”“—–ŸŽ–›“”˜’‘‘‘“œ‘‘•’’”“”š’“““““’šŽ”¡‘’œ•Œ•“– Ÿ”“›“‘““’“š”’Œš’ž“Šž‘˜–”’”•””“¡”š‘”“œ•˜Ž“£““ƒ“š–‹“˜‘‰Ÿ—““›˜‹“Ÿ›“•“•““““¡“”™““¦“•““—•‘‹“”™ºŸ‘›““““’•““–—¡–›’“›““ž‘“••ž”’˜™š™“”“’–“Ÿ “—™“““‰Ž’’™‡“—“’““‰š“–’—˜¡•’“‘˜“‘’’–˜™“—•–“•› “’‘—•‘”˜—–›–˜–Ž”“•›œ–””•Ž•–“¥–š›–””Ž’–‘““›˜•šŽŒ•”–”‘–œšœ‡•”™“”—“—’–”‘•’‘‘‹—’”ž‘—™”•”—‘•—”•”–”Ÿ–—’¢”›”•––•Ž‹™ŸŽ••”••˜’•ŽŽ‘˜¢–Ÿ‘›”••˜ž –•–‘—•• –¡˜–𙓓””Ÿ—™‘”–Œ•›–—™•‹•œ •““••š––‘‘•œ–š’˜‘–’˜”’”™‘”‘”–Š••”•™••ž•”’Žœž˜œ”‘“”•Œ–˜–‘˜Ž‘””‘“¡••™“œ“Ž”•‘’””’”““”››Œ—£Œ“™’’”““‹š—‘–”’””•”˜”“‘•šš˜”››“š’–“•”””{’˜”—Ž–“”¢’œ”‘“’“”‘“””“–Ž’™“™””Žœ™”𔋓”‹œ“‘—œ”•“’” ’”–‘—“›””–—’œ•”“’—¢””””“œ’¡—“’•“’“’••”Ÿœ“”ž’’“”˜”—•”–’‘™“’’•“‘–—“›‘“™™’“’””Œ“”šŸ‘ ’•‘“”“™š”–’’—•𛕇”›˜—˜–¡š—™“—˜•£˜˜˜‘—‘˜‘…–˜–’›——••ž•––•žš˜™Ž˜˜“œ”••‰–™˜–—‘–••–›––•—Ž¡—š‹•Ž–•œ”—•––•—“–ˆ”‘Ž’’•“– “™——“–ޔ𖕕’•““’••–˜–~š–œ••––—†••–••–˜–œ˜–Ž“”—•–•–—𙕕•–’’•••–””””™–¥“—ž˜•–•—••Ÿ“š—š˜••––”™••š––“•—–™–•”–•’—•™“—–¢™•–‘––™“‘‘“–’”–•™™–‹—Ÿ—Ÿ”‰—Љ‘‘•—˜’’’’‘“’™’™‘‰’›““” ‘•““™““’•œŒŒœ“‹•™Ž˜“‘žšž•™œ““™–‰’“‘’žŽ˜š“š›–““—™–—’Ž’Ž•‰‘Œ“”® ”••’“Ž’›’’‘“†‹£Ž—“‘Ž›“›’›“š‘““‘“–“—Ž“”““š—“—’š“‘’“‹•’›““““”š““›”“‡›™”›˜“’“™“– ™–˜”“–‰“š“—’“˜“¤ ““““‹’„”œ””””••“—–“”ˆ–”›—’‹’“‹Ž›“™‘’”•——ž”’’”˜‘Ž“˜˜•’””•‘”••–“••“™••”–’™••”–”‹’•’—“’—š’”‘“™“—•’”––’—•’Ž–—‘˜•˜”–‹—”•’’•“”‘‘ˆ‘’Ž”˜•š’’’””—’“˜“–“–“””““—”•’œ”›••‰””‘™•“—˜—••”’“•‘Œ“‘•‘“—””“—Ž–“’’œ“Ÿ““Ž‘—”˜’––‘“ž“‘˜’–“•–”–›”‘—„‘”’••’‘—’“—Š”‘”’“–‘‘”Œ••›’™”•’‹“””’“”•˜’“—›“—˜”‘“ž—“ž”–—’š—˜”–Ž˜˜—“–ŠŒ“•žš–’“’“”™‘š•Ÿ“—œ’Œ¥““•“˜”–‘–”š—•™“‘•”œ™Ž”œ›’™‘•”š“Œ•‰˜~˜’š”˜—œ•˜–’‰•“™™Š–›š“‘™š~–••”””Ž“”—•š—““•““’Ÿ“Ž˜”–’–—•””‘•——›Ž’“’™–˜–”““Ž–•–™”™“”––“›“”–š“˜™™‹“›““—”š–”™—€’”˜“•”› ’Ž˜”–””—››˜’‘”•”Ÿš•”›Ž—”‰ž”–š–’“ž–Ÿ–—ž–—–—”•–”œŸ–•––””––•–—–––˜—–“’–—–•–—•—”—˜””‘•—’—–›ª”–™••—•–‹–—¢›—•’””•–•”•”™˜–”‹‘˜”—𔓒“›–—–™†”˜”›”—–—™š•’•š’”•žœ”“–•—•––™—––—§–•””–––––”–—“›“—Œ—•—šš—•––——“•”–—œœ”‘”‘–•›š¢“—•–™™””˜—Ÿ‘›–‰–•–—“—”–‘•—™›–—š’•—““”–”‘•—š’•—–”–””” œ››š—“’––˜˜•™”””•–”°Ÿ‹“Ž—ž“””–™’Š•˜’’›“‘‘Ÿ”—•–‹˜––—–•–”–§Ž”–’–¥”Ÿ–•–œš–‰› š•”˜‰”•™›•ˆ–Œ“––”————–›†’•›–¡™£›‘Ÿ¡š• ©’𔑕¥‘Šš”™•‘Ž”‘–ž‘”•—••~”•ŠœŽ˜”“••””’•†šŠ–“••’›¥‘Ž‹•–•–‡š™••š˜‡”•”œ”—š™Ž–Ž–™•š‹…•™’•Œ•‘–•†–¢—•–™–•‘–Œ •—–—’“——”™“•”—–¦•£™š˜–”…˜•š—›Ÿ™Ž‘“’–Ž”Œ™‘–˜––“Ž‘”•’™‘™“”’ —‘— ‘Ž—”–”–”—•“œ’‘’œ“‘•—ƒ••“–Ÿ’’”“•‘–—‘–‘’œ˜‘“”•—•’˜’“”™•‘—£”ŒŒ”Œž’—˜•™“Œ•’“¦“‘•”•™‹”™Ž”–’‘œ„Œ—š• —••“ ’•”š•”™”–•‘–’¡—•”•‹š““””’’—˜–‘•—•Œ–’“‘““”‘”•—’“‘Ÿ–”“–—Ž‘–”•’•—“–”–Ž•—”‘–‘““‘•”•—š‘–’’Œ‘’–””••‘“‘˜˜ž”“›–‘‘¢ž™–––¡•“˜’ŸŒ‘—™–˜“ž““’“˜•““’‘Ž—‹—•“•Ž”’‘š–•—¢•”˜•‘““˜”–•“˜•–”™›–š–”•‘™Ž”Ž•ŠŒ‹†˜•œ•“–”›–•›’¦‘ž’•”…ŽŽŽ”’”’—˜Š”“•”“‘  ——›““““‘“š˜“Œ’”ޔޖ–”˜“‘‘—”œ•’Ž—™’šš“•”“’“—”–’£•™’‹–’‹“”’˜“‘“™Ž’‘””‘““•†–”‹’Ž–Œ—’Ž•”Ÿ“¤Ž•“““‹ž”‘’”•¤•’•‘’Ž˜’•–”‹ŽŸš’•–—‹•““–— “—š›’˜—•—“”““”ŠŽ”“˜•–”—‹‘•’–“šŽ”’”–‘–˜•”•ž•¬”””“““‘“•‘“Ž“•’’•“™œ•‘™”—Œ–‰”Š‹”’˜–—›••’ ”•–”“””•“Ž•“””•––‘•‹˜‹˜”‹‘œ’•“”Š”““”˜‘’ˆ”Šˆ‘—“—Ž”’“––Ž”ŠŽš“•“˜••‹“¯””˜–•“–˜š“ž–’Œ’‘••‰••”’‘‘‘–Ž”–ž‘™•Œ”–œ••Ž–‰”–•¢–““•’””Ž•˜˜›““ ‘’”“•–›£”’“˜—“’•””•”‘›”‡˜”””–‘Š”““’›—•ŽŽ”•”‘Œ•™—•”Ž•™’Ž“›–’‘—–‡—’™Š™”—•œ”ŽŽ’•–”•™Šˆ‘¡™Œ”’œ–’™””Œ•–š–’•”Ž•––“˜’•””†•¡”…”“–“‘““‘¥–”“‘“–“Ž™›ˆ™–“‘Ž‘•”‘’—“™––”—”—“¡””Ž—”–“””•’••™”””™•“‘–™••Ž¡”™““šŽŠ“Ž“”‡†š”Ž“‘— Žš“—“Œ’š“”–œ‘“••“¨”•“”—•“‡’“”’“—•“““”’‘’”›–’”“”˜“””™Ž˜ˆ“””˜•”•“žŽŸ‘”“’”“Ÿ‘““•™”’“‘—Ž›–…’•š•“••‘”–“¥“’—‘—˜–“¨””””˜•š”Ÿ“Žœ““”¤‘ž—˜’“”””™˜“Ž““’•’’’Œ‹•”“‘‘“•””’‘™¢‘“—’“’“™•”” “™œ““¢•Ž—”“’“•—ž”“”“”““””•–‘„““–””””•‹•”“‹Ž•’‘‘“‘š“”–’“˜””‘™—Žˆ™™’›žŸ•†ŒŸ”’‘Œ˜‰Š—”‘“—’ ‘™•Œ’““˜‡“›”Šš„˜›–¡žz”“™Š–’–’˜’‹qš¨Œ‘y—Žœ’‘•Œœ’™—˜Œœ®“›¨ŒŒ˜Žš’‚Œ““€šœ’’™‘’‡£šx“™Œª—‹‰›“š‘“˜”•’“¡Š‰š•“‘ž”Žˆ±˜…–‡•–ŒœŽ–‹–‘’“™›”‰Œ‘™ˆš‡˜Œ¡ž––Š‹‘–›””Œ®ŠŠ„ˆœ‰•—•°‹—‹—Љ““›‰£‰œ”  ŽŽ”–š‘›”‘”‡‹‘‘”„f‡Ÿ˜’ˆŽ†˜«Š“Ž–’f–Œe˜„c”’•x™˜‘“–©Š¢£Šˆ†ƒ“—€‰|“މ™’’“›¤‰‘†Š²w™”…€‹–¬’—š’¡“ž–ˆŽŸ—ƒŠŒ‹—•”s™—vŒŽƒŽˆ‹”†—¨ž|™s’–”“Œé} ˜š}Œ¯™ƒ”ˆ¨Œ˜ˆž‹‘”€‰€’…’‹˜’Ž‹Œ˜–“©œŒŒ“œ«–“y…‡³–ˆŒŒŠ‰Œ‘ºŽ¤Žš‘“Ž“š”f”•š—Œ˜—Œ”®“…˜ª‰‹•–¯•’‘Šˆ‰ŽŠ‹›‘—š˜‘”•ž—›ˆš•“—ž™’›•š˜‘¬¯š“˜—–“‹™žœ”™‘‘”‘Œ’ž™”—‘›–”ž’šžœ™‘™˜”•¤‘—šš‘”˜– ’£Œ••…ž•Ž‘œ£›”œ“˜“¢« ‹Ÿ˜˜“€šˆŸ¡²–§œ““˜¢“Š’«‘ ’‘‘—‹™ ˜—“’–•Ÿ’˜Ž˜““›šŸˆš“¢–”’œš™•Ž’—˜¡ž¢’‘’™™’™“‹™œ¢‘š‚š‘¯––š”ŽŽ˜’š“–™•‘¥¤›ŒŠ”š•‘›˜‹”“ž ’›ž¢™œ¡‘•Žš–—„ƒ’œ˜˜—Ÿ¬šœ›‘—ˆ”‡ •“‚ŠœŽŽ‰„Œœˆ“‘Ÿˆ‹–•Ž˜ž—‰›¡ˆ“ž†£Ž• ‘±–š‰Ž’Ž‘Ž‹”›†ŒŸ¢—‘¦˜—˜‰”‡”‹ˆŠ†“‘ކœ’’«’–‡‡•‹š†‰‘Œ‘œ¤˜Ÿ–’žˆŽ„Šˆ¦‘Š›”œ’—£•¢¡š’”˜¥‹—Œ•Ž‘”–˜¥™‹Œ£ššŸ“–‘“‹¨”˜Ž˜Ž‡“‘ ŽŒ˜“Ž“ŒŒ‹’šž‘œ•¥‘{’–‰Œ•’‹€Œ¡”˜š–’‹Šˆ‹”›¢”•—Œƒ’˜™‡˜ Ž—™“‘®’œ•¤™—’’¨‹š‰š‹Ž”’””š„’Š–‹Š –‘š ‡’”•™‰›–Œ•‡˜Šœ‰‡’›‘ދޒ˜’”š““Ž—”–žšŠ›Š”Š•‘ˆ“¡Š¢’™‘¤‘Žš”›“}—‘ˆ“–q“•‰”“”˜……†w—¸v›„™•’“›““³œ‰£“–”˜ “–”“Œ•Ž—œ™šžˆ—””˜ ™•–”ž’œ—’Š“—’†”“t˜‚£“‰’‡œ–š™žŠˆ•“‘œ›’ކ•‘š—•”›‘’‘‰–‘š–§’–›‘“˜‹˜•“’Š›˜“•“’“o•””–‘Žš”—Œ—“މ“’”•˜›˜˜Ÿ‘’”••Š•’Œ“–‘Ÿ–—Ž––§’—•ŠŸ‹—›–œž¤’—“Žœ”“’“Ž’‹£‹ŒŽ™‘––—”‘”‘ž•“’˜±•—‚¤”˜‘•œ’–“‰”“©“š˜¡–‘–‘š‡‹‘‚“¥”‘”šŽ “”½’Œ™Œšž‘ ‘‘‘ ¡””¨œ‘“‚‰”œž’–¢‘—›’”œŒŒŠ“˜’™˜‹…‹’•Œ––šš“—©“§š’Š¥“™ŽŒž™‹Œ”™˜–•‰¢‹Œ™Ž”‘…•”’“•—˜ŒŽ€›—“ˆ£˜Ž˜ˆ””žŠ™‘™•“•‹•œœ”š™’“—ššš•Ž•¢’™•§šˆˆž”•¡›œ’‹Ž‘”‘Œ—•—“«­¤—“¡™›–—™Ž¤’™“³‹™–”—’˜‘„—™”—”¯¡“–”›—‹ŠŸ”—¨‘ˆš››—›”–˜‘˜œ¥™ž—‘˜•—“—‹•—ˆ”™x‘›’–—™˜—“Ÿ’’žƒš”Ž¡œ˜””œ› ž–Š›’–––‹ŸŒ¥š’‹•—•’|Ÿ˜”’›•––‰”Ž–£—˜¤ˆ–œŠ’‘œ”Ÿ˜ˆ’˜“‘•’‡…‹ž¢™Ž•˜’”š¡Š”’ ——˜œ‘ž˜’šŸ‰ž“”“™ —”š‘—§– ”£”›™ œ}‘›‹ž™š“š”•—šœ—–™˜’~˜™†šž—šŒ‘”¢™•“’–…{¥—’š—ˆ‡—’’ŽŽœ¢Ž’•’‘”Ÿ‹¡œ‰‹£““Œž˜• ‘”Ž•™–—™’žž—š‹ˆ—–™š•“–Ÿ˜Ÿ›š’Ÿœ’˜œ–›ž— šˆ›”š˜¨‘¢’Œ˜šŽ‘—¡—ž••™›Ÿ—œ˜˜’–¥””•’§•œ’—š˜¤“•Œ’“˜£’‘”——’™š˜›™Ÿ›–¢•’•‹š‹Œ‘’›“–Œ”’Ÿ–ˆ”›•‰ˆ•“’’”‘™Ž’“•—ƒŠ”‹„‰œ““”…‘ŠŽ•–’”›Ž”š‹€––Ž—™”Œˆ•‰‹“šˆ‡”§Š—‘‘}Š“•“’Œ•—“‡“–•ˆ”ŒœŽŒ”Ÿ†‚ƒ†‘’‘“™zŽ’‚”™†’‘–˜Šš˜’‘‘}{’—Œ‘–“•ŽŽ–“”‚—„‹Œ~‘Žœ””‰’…“‹–‹‘‘Š—‹“‹š””–‘Š’œ™••£™˜•‘‘Œˆšˆ‘”‹ŽŽ’–’‹“Œ–•ŠŒ—›Œ‚…”—––‘Œ™„’’–•Š‘’’—ކ‰Ÿ‘–•Ž˜Ž”–‰š‰”Œˆ–‹™˜’‹“—œŒ‘˜‘‹‘–’˜™”“•—•–’–Œš…“’˜•””Žœ’•™–’¦†“ŽŠ—š™š—–‹šš˜•–š’’——”‡’šŽŒƒŒ’”–¦•„›š˜”œ•’•Žž›š„–›—’“¢™”Š”šŽš‘——‹‘™•’’Š—›Ž•𑉙–™–™ˆš’Ž–œ’”‡˜’’“—•™Ÿ‹š•™„“›—•–¡’ˆ’™‹•‰Ÿ”‹œ‘’ˆ“’“•‘•œˆ•†•˜˜•™˜™‰––”‘˜”“š˜—“‡—›’š™’ŠŒ˜†“˜˜Ž‰›€˜—˜Ÿ“—“•‘‘˜ˆ••›‰‘–ž”•›r‘’“‘—‰œ”‘Ÿžz—™“•˜–“¢‘‘—“Ÿ’†’˜—™Ž™”¥™™˜’¡™š•…Ž—›—›Ÿš˜™Žšœ‘„”ž–—“™‡–™Ÿ’š“”™š’—˜Ÿ¡¡ž’–š•‘ŽŠ’—”’™‰†–“”—ž—‘‘‹›™Œ––•¡“¢šœ—ˆœ’’¨Œ™‰™˜¡—“š•“›‡˜”“’‘a†—“˜Œ’™Œ‘™“ ”–˜Ÿ†’–›’’Œ”—–Š–šš“’¡“𙆕— –‰š’Œ“Ž‘—–š• Ž™”•¦•—Œ“Ž’““šˆœ—”‰™—˜•‘Œ˜¥–˜Œ•…—‡‹• ˜¢‘¢–Ž™”¢›–•™‡„‹¡’—–’Žš›—‰•š•Ž˜†‘š‡“•Œ‘ž™–Œ“”’—š›•’Žš›“›•¥–Žž•“ŒŽ––¦–|–’œ•—›‰˜†™Œš–¡’•š—™Œ˜‘’’§›—Œ’ާ”››”” •–Ž™–”—š˜“› Ž‡ž˜’”‘–•‹…œ–Ÿ—”Ž–“’Œ—•”‘˜‡u‘““¡ŠŒ’’•‘˜¢‘“š–ž“š–••———“›–š›”˜Ž˜˜“˜š••Œš§’ž£–‘›˜—‚›Šš—Š–œŽ •ŽŽ•™‰• Ž—šœœœ•‘œ”‘—‘•”˜Œœ¥‘‹˜’¤’—”˜Š••“™„‘šŠŸ•‰’‰‡‘Ÿ£’—’†‰š™‘–”š“–˜‰—“™‘‚ŽŽš”˜™›’š‘“’”“›’žŽ›–’¤ ˆŸ™“Ž—š•Ž¥”–™•‘…‹˜™•𔓔–—{˜‡Ÿ’’Š–‘ŽžŽ€Žš§™˜‘—’ª~–š­’•“‚••’¦§›’š˜—š„ˆ•– —Ž“‹‹‰—•’“›•‘—‘–“–ŠŠ“ŒŒ—›Ž‘†•’”’Ÿ•ƒªœˆ™”’Œ”‘•œw¢•”™” Ž—Œ¬“—‘œ”˜•”—Ž”””Š¡‹”Œ‘›œ˜—¦ŸŒ“މ™—«Š˜•›”†“’••’¢œ•†Œ‘‘’‘‡—‡“œ•”Œ”•‘§’’˜”‘„‹…‘–’¦•ŽœŒŸ…‡™£”’”“Ž•‘”•˜’ •š‡ˆŒ‰šš›Œ Š–Ž“—Œ…‡—›¡”‘•”•““މŒ™Ž• •’‘ž”˜—œ‘”’•‘…œ˜˜” ‘–‰•“†”“˜Ž›–•‘•”›‰…”‡’’“‰–—•”˜œ‰™–•›‹––œ•Еޗ‘Š˜—«ˆ›”‡‹ž“š”‰˜–~‘•–—Œ’””™° ‹š››”ˆ¡“™Œš˜–™Ž˜›œ–œ žŠ“Ž’„}™ Œ”œ¨”ŒwФ‘š“”…—“„—‡–˜“ŸŠ£“‘”Ÿ•¢“—››w–𑣑˜•™“‘“•“’š”‰˜š›œ‡žˆœ—•›˜–Žª•’™ž†Š”“–“••šœ˜tŒŒœ“—¬Ž™–™“¡‘œ‚••›‘’Š‘–‘–‹Š‘¡ƒ”ŸŽ’’“ޓޑœŽ•”ŽŽ‘“•Š‘”˜‘Ž••¤˜ž“™—“ž”…‹””——“—•‘‘’¡“Š‹‘ž—–•“{˜‰’¥“žš’‹Š’Š’• ˆŽˆ”˜š£¡—›‰•–—’—•–Œ’“Š—Ž“ž•Œ˜™”ޓޕ•Œž£”›™ÈŒŽ••𔓒‘™˜‹™›‘’˜Œ˜’‡ŒŒŒ‘˜ ž™’£ŒŽŠ–•˜—™•’‹“–š‰Š“”•£™‰–‘”œž‘ŠŽ’”™Ž–Ž…Žž•’¢~𙓩—”›‰Ÿˆ•––—’ ”ž’“”™“‡˜’”—œ’•–˜š‰œ–”Š•–›•š¢ŒŠ—¥£œ”Ÿ™Ž‘®–•Ž”œš——•’”‘‘œšƒ‹’‰Š“”’™–ƒ›•™–˜Ÿš”žˆ’‡—‘“•›Œ’Ÿ‘˜–’—¥—šŠ¡—Šˆ’„“œŒ˜š•ª”„Œ‘œ•£–š‹ž˜‘›¡™ ’•–• „މ” ¨›—”›œ‘š‹‹—š—šŒ ”Ž—¡›™™“‘•£šŽš›‡—Žš•‘Ž‘Ÿ„Œ”‹ž™Ž‚˜› ž¤››Œ”œ—”—£¡Ÿ’‘Ÿ’‡†ŽŽŠ˜—™Ÿ”›Ž™˜“˜ŽŒ…•–˜’˜ž¡ š“ Ž–‘§Ž•”‘‡—¢•’’Œ–˜ˆ‹‘š‹‹œ›–’˜” “œŒ‘•šŽ•””‰™ ‹—‘ª””Œ–Ž‘•Žš¬Œ„Ž˜“‘¡‡Ž™¡ž™ ““Сޒ‰¢¢“„——‡–•˜‘‘™‰³™™‹’š§b“–¬‰™‘“–—““™‚𕑆‡‰†˜”Š—“œ’‘“ŒŠ™”¤¡•‹Ÿ—’¡Ž™“Œ¦š•ŠŠš–Œ¢”““•„ŒŽ™‘‡”–Žœ‘–‘”—•–––’–ªœ‘Ÿ˜”Œ‰”—„”“Š˜•‘†–’ œ’–”—˜—Ž•‘š˜•™–š˜‹™”•–š——‡’™Ÿ—˜š™¢•ŽŒ“žŸ”ž¡˜œŸœ“š‘œ—–”•™‹‘”“•”›Ÿ˜——®–™š˜•’‘™ŸŸž”•˜™”‘©—Ÿ•ž Š–˜˜‘ •¢‚›‡•Ÿ“”¡•„™¡Ÿ™Ž¼‘––¥’£“¤™–˜”™Ÿ¥¢š£•––šœŸ‚”–™‘–ŽœŸŸ™›—”›‘š •–—›˜˜“Ÿ”—œ–‘–‘“ŸŽ‘˜–‰š›œž—ƒž¥’˜•¢‘‘𓡤™š‘œ‘“˜—¢…£ œ‡ŸŠ“œ”–›¤™”˜ž••’”–•𛋙£‘Ÿ˜™“‘š“•™¡—œ“§’™ž°Ž™™˜ƒ›˜™”œ˜•Ž…Ÿ›ƒšš•  ™’’˜’— ”•”’•–‘™–”Ÿ°Ÿ¢Ž«›™–—™š¡–›™”–¡™¤Ÿ‡¦ˆ’›“‘™”˜’–—¥––™’•©›—‡•’‘’¦’–‡£•¯‘”›–¡~‹œ—˜›¦”‘–›˜—ŒŒ–“•š™ ˜o˜‰”••˜‘Ÿ”•˜˜™‘•–š—™”“Œœy—‘™‹•¢œ’¢™›”˜’™™—–š— –œ¬—™Š›Ž‹š›“•Œ››”ž—›z›˜Ž“œ™—‹†—¡–›ˆŒ—ž‡Ÿ• ‰“šœ›”™Œ–ˆ ’‹˜•ž•ž‰™™yœ›™†–‘†‘™™ •—“–w—ˆŸ¦–•’ŠŸ”„‹—Œ–¡›š•’‹¢œ“™“‚–‘†™‘Œ—–”žšˆ•£ŽŠ–œ’“’‘˜™‹–žy£•Ž™ƒ”žˆ–”¤’“”»–‘’Ÿ‘Œ˜•Œ‹“”¢¢Œ‹›—‹œŒœ• • ™‘Ž˜——ŠœžŽ‘Ÿ’œ š˜›•“••œ™˜‰Ž˜’ƒŸž—“ˆ“’‹”’–‘–‹ “„ˆŒŒ’™’œ•‘—”•‹’›‘‘–š£Ÿ†˜’’”•‰’“‘œž•–‡“—•z‹ƒ–˜”‡Ÿ—œš‹˜†››”˜ž•©‹›¤Ÿˆ—”˜–ƒ™• £›©“œ’žˆŽ•“—•—•–˜„£–—¬Š”™˜™ž‡—‡œ’š‰•™š‘†—¯˜—¡„Ÿ¢”{——˜”˜Œ‘˜‘™•𠣋’’’‹“²œ“‹”˜—’™‘°›“{¨ššš–š’š”œ—–›£š›“¢¤“‘—˜ š••›• ••›¦¦ª›““”š–“•Ÿ“¢•š˜–œ“˜žš©¥˜–™š™‘Ÿ‹¡˜¤–—¥—ž™‘™—œ„¢…žŒœˆ—ž˜›˜›“©œ˜“£•‹ŠŠŸ–˜•‘Ÿ”’—£œ‹ž‹“–•‘Ÿ“”’–‘œŠ•–Ÿ—“‘Ž‹”Œ”“—•”“ž—”‘›—¤‘“”›’—Œšš™—“‹™“‹ŸŽ“‰“‘™“•“—’•˜”ˆ““›Šˆš‘ —•›‘›”’€‘ˆ–—’„Ÿ–—‘‘™”˜“˜ “Š–€–Ÿ”¯š˜Ÿ–ƒššœ‘“œ˜“•˜Ž“•–“Ÿ“‰Œœ—•Ž›’š™œ“’˜˜”šš‚™Œ™”¡‘†Œœ™•Š–‘‹š’†š”˜•™––Ž”˜ššœ“–t—¤œž¡–›‘Œ˜‘—‰Ÿ“˜–›¢”œ˜Š•”fž‡•–Ž—œ‹”‘ž“œŽˆ’š‹”’‹ŽŽj•—‰”ŒŠ©’’ŠªŽ‹±“—”Ž—•œž¨Œ•„’—‘‘š—™u—Žžy‹‘Œ–—ž’——“‘˜˜ •­~µ‘‹š•©‘’Ž’‘œˆ—•”ŽŠš•ŸŽ“—–Š’‡—ˆ‹›…Œ‰…•Ÿ•ƒ”–ŸšœŽ’‘ŽŒœ˜…‹”‹ˆ‹¡”–™™”™‹¢˜™“†Œ¡‘‹«ŒŠ—”›Š‘Œ˜Š¡’š¨š–˜˜›‘•‘Œ™Š»™‡œŽ”˜¬›˜†—‹º—›œ•šš‹Šœš–ˆ—……™•—‘z–——”—”™œœž —”œŒ™˜’–”–†‘˜”‹™—‘˜’™Œ ‰‘›’”–’Œžˆƒš”š–œŸš’Ž¡–ŒŽ‰‘Ž šŸ•”Ÿˆ˜Ÿ—“‘•–—Šˆ—•—ŒŸ˜™œ”–™ˆ’ œ–‘ŸŽž’•œ™‚Ž–Žœ‘›—œ„š‘ŒŸ• œ‰¡˜™ ’œ–š—œ†– ™—–™…”Œ‘¦œš“—‘›™“™˜š¢“‰‘–ˆž˜”•Ÿ’—œ~Œ— ™¢Œž ’™‚“šŽš—™““ŒŸŒ’–›‰—œ—šŽ˜£§Ž• œ“ˆ—™•’yŒ’Œ˜Ž›“’˜†„“Š•‰ŽŒ„Uˆ’œˆ…†’””›Ž‰Š“³‹†® ‹Ž°”’’Žš¬©’‹„‘“‰‰™žŠ—¢•š””’ƒ¢””“s“‹‰˜Ÿ’ž’¦‘~ˆš«œ›‘‰“““”z“ž‘“¯ž’˜š–‹¡¨—|‹‰ƒ‹“‡Žœ†š˜Ž‹˜˜§—Ž’©Š¦Ž»“Ž®ÝŽ€’‘•”‹Ž–’“©‰¤Ž’¢’“–•ˆ†¸˜ƒ™‡—žxŠˆ“”’Ž“’¢Ž›ª“•‘•‡–Žƒ Ž·¥‘˜’‰šržŒ—“ºœ– –£—”¥¢”Žƒ“”ž”ƒŠŒˆ •†Ÿ˜š‹“£–“’‰“•~”šŒ’“–‡—“œ‹ƒŒ–••¤Ž˜ Œ˜®‹Š‹–’Ž‘šŒ˜—“œŒ’†™–‡ˆ‘’‹‘œ“ž˜ˆ–’™‘¢‘𤓇‰‹—’’Š’œ‡­Ž“’„’™—Ž–—™Ÿ¡¤˜Š‰‡”‚žu•’|{Œ”‰ŽšŽ‡¥‘‰”“•¼œ‚š‡Š‰‘œ“Ž”Œ‘‘•“™”””œŒƒ™–•§ž‘˜Š•ƒ“ŠŽ®§˜’—™’—““¨¥„¦“–˜•“rŽ—˜£œ“°–ˆŽ™ˆ’‘“›†ž‘–œŠ šŒŠ’ŠŒ¥Š‰ƒ˜–š•¦˜Šš¸—£«˜“‘™¦–‰˜šŠ›•˜™}‘w–š§‘“’•r•™“¨Œ’’ž–‘ˆ‘‰™¡’«™žš›“”‹‘Ž—•˜~”ˆ‰–œ–•Ÿ‘ŒŸ•އ†—‘’Œ®Œ˜•’ž‘Ž’–ž•©‹£œ“—•¨Œ˜–Ž•’——w§•“‚›–š“—‘–|”ž£™‹—’—ŠŽ‰›–˜‘ˆ›s‰˜‰–›—Œ‹–‘–›Š™ž¡›“’†”‹˜ƒ‡’Ž’Ž•ŠŽ‡™›—œu•–Œ‹Ž•{–›œ‘”Ž“šŠŒ‘ƒ’‹Œ’•”𓣋{’£—‘Ÿ””›™‘˜œ¨’”Ÿ“˜™‹“’Žh‘”‹‘—““–’‘§¢˜ ¥›Ž’Ÿ’š—š”“–˜—–•”Ž¡‘˜’Ї¥”Ÿ“–™•šŽš‹–¤’’’ž†žˆš”“¦˜•‘Žœ™‘›Š–“˜•‹“’—š—°Ÿ”ž“˜‘”¥“˜œ•š’–›–Ž‘Œ•˜™’˜Š“ž—”Ž–‘”—”’•¤‘˜‹˜™’§˜•–”œ™”˜”ž–”Žœ“’Š””•ˆ› •š’“•”Œšœ›Ž­™–‘•—œ˜§˜œŠ’š“‰Š”™“–Ž’˜—š‘–š¥ž”˜•“–‘”‘˜†‘š™˜•”””“ŽŽ‘“‘“–—”‹Žœ—”•“ž‘‘œ‘Ž‹”–“™‹—’–š–¡Ÿš“•• ‹˜£”œ–‹˜–™š‘•œŸ•“›—“”—œ—”¢–•“š“—Ÿ™Ÿ””‡{›’–˜›–‚––—Š’‘˜š¡¬“Ž˜”›™”’——™‘ž“¡Œ”“›››˜”—™—•—–’”’’”š™Ÿ—š‹‘–š¡”’™Žš•˜œœŽ£Œ˜•”“•¢˜•¨‹‘›–™¡’–•š’“”•™‰š˜’™Žœ••¡™–§‘—¡š™“ –Ž ™•••›“‹ˆ†Ž’“•’––€–Š˜˜™–Œ‘– ›ž–“—¥š†š’”x†˜•Žƒ{˜—œ”“ˆœŠ–“Ž¥¤¢—“š–~’ƒ“˜™¯”—™ž‘š”–—ŽžŠ˜‘’’‰Š™Š •”——˜™–~‰™“‰Ž£˜‘†•€ˆ–ˆ”˜˜’˜“”–”™””—ŒŠ“‘™˜“–•ŒŽ“‡“•‘™›‰”•‘’“Š–¢™—™‹‘’’”•›…–žˆ“–Ž‘—–’˜“‘„“‰ƒŽ”‡‡™’–…¨”•Œ‹––•¦‹›Š•ˆŠˆŒ…–˜Ž“‡—‘Ž‹„†‹™œ–˜•›•’˜‡—Œ™™Š™—™ˆ˜•‘Œ‘—–šš•Ž”‹Ž”’•’‡Žˆ†”Ž‘”ŽŽ“¢”“ˆ——˜™••”—¦“Š”–‘‹ŠŽ”•–ŒŽ—–•“œš˜•žœ—–Œ”•“š‘„’›ˆ•‘¨™œ–†¥•‰‹’˜’¢ueš™”‘Œ“‡«“ž€ˆ‘‘Šˆ™˜••‰––—•Šˆ“ŽŒŽ‰‹Œ˜““–““™Œ‡Ž”‹š—}¡šƒ‘©‹˜™–œŽ”—‘‹  —‘‘—™’”‘š‡Œ‘›‘ž—’–˜ŒŽ‹œ’ˆ›†’Š•… ˜—’‰—‘†˜‘y‹“Š—”“‘“‚’“‰”–ŽŒ‘Ž•‰š–‘’š‘’«–“Ÿ‘“’ž‘˜–™¨—“ВДޒ‘‘˜‘”Ÿ“Œ•zœ‘’•’–~•”‹Šš’˜•‘ˆ™Œ™Ž“–•Œ’•¢•˜œ•’•““‘‹‘¦Žž˜‡•‘Ž—™š‡•Ž›•“”šŽ‘–š‹‹˜ž””’¤›Œš”•”š•œ•‘’›“œ“Ž‘•˜–™’–—™—™ŽœŸ—š’”‹™•—“””’š”–Šˆ—¢“‹–“•†“‰Œ‹¥–‘–‘”•““–’ˆŽ‹”—‡—€”“—˜•£¤‘—›¤›œŒœ–˜”˜”›™™—–›œ‹›¢›“—”˜œ™¤—Ž­”–™š¨–šœœž˜“Ÿšš•–œš–¢—“šŒ˜šŒ—™œ˜œœ›š¢£š™–š‘Š—Ÿ›’¡Ÿ –£—˜›“•œ’™•’š”¡Ÿ’š‡’˜›–š—ŸŽ•—•¡‘’™¥£‰š˜ ’‘“œœ¡ƒ›‹Žœ˜”—˜–¢‘••›–¡“§šœ˜—Šž˜—”¡–‹’ž‹˜ž•“Ÿ’˜ŠŸŠ“““– •ž™–¤œ‘–•™›¡“——™Š›—’šš« š••žŸ¢—™™“•’œ‘œŒ›Žœˆ ”†—’›¡‰‡Œƒ”Œ“’–™“š’š’¡‹‘‰œžŽ‰—¤œ£ž•™›“ˆ£’Š•›•–—’Ÿ•¨•‚™Ž•†Ž›™–‡’ž—›˜š™—•‹Œ‘†“‹†‘‘’v‘›‹Ÿ”™‘®””‘…Š”œ™˜Ÿ™•ޔޖ™‹Œ‰¨Š‘ ‘œ›Œš ’—˜ˆ››Ÿ›†˜¤–‘™†¦’’¤–—š ’¤›‘¨©¢””–””–¥™’Š’’š––‘”“‘Ž’©›œ˜œ‰™¥””¦‘¢›’”£Ÿ’—…Œ•‹–®“¤’““¨‹…’ˆŒŽ‘~•—†‹Ž’Ÿ––žŠŠ–’›ž‹”’•™˜–œ˜•™—¡‘—Œ–•–˜–˜‘Ž šŽ•“—˜Ž™–…˜—™œ“£—ˆ‘‘’“”•–™“—¬‘Ž–“¯œ‘ž–š˜” –“’™–’{‘šŒ’Šš’¡”ž—‘‡–†•šŽ’ž‹––Žk•—“’•‡—¦Žz‰ ¡“›˜¡˜š˜›Œœ‘›“™Ÿ˜“¢¢£˜š’›‘’˜•œ”“˜“Ž“›–”•–“‘‰•—œ”‹œ’Ÿ¨™‘˜—¨’˜“ž•“Ÿ—““”¥šžŒ––—ˆ‹Ÿœ¡’˜–™˜‘ž“šœ’–”——‘¡¡’ŽšŠ–›’–—›˜™šˆ”’œ’“‘‹•…Šƒ™•„¤”•˜›“¡š—¡–•Œ ‹ŽŠ¦‹ž••“•™˜–›ˆŸ™š“‹‹±’™q—‘–‹•’“’•‹›Ÿ”‰Ž•–™‹“”ŽŸœ’Ÿ’Љ¦Š™ˆ”¢‰›¤›”‘†•œ¡–‘•‡¢—€´˜“‹‘‹™‘—œ“‘’ƒ”’”žŽœŠ’’•’–“Ÿ‘œ‹“Ž—œ›”–’™Ž£‹“”ŠŸœ“Š”•”Ž’™’Œ–£•Š›˜‡’¢•‡Š–”–’–šž‡——‘ŽŽ¤œŠ™—‘Ž¡Œ”‘”—¥™”ž˜—‹’œ–—’— ‹ “˜˜——¡“‘–––›–ƒ—•–••™›žš“Ž””˜ªœŸ˜“™••¤Ž–t˜”œ˜–˜™‘œ›œš¤”ž˜”šš•›”œ˜©“›—›£“‰‘˜“›œ‰ ”•“‘–¢Ž—𗓙Ђ{•˜˜•š§–§‘š”’šœš–ž{—™š˜•ž–Žœ’”‰˜”’”–“‚ˆ’Žš›™ˆŸ“™”Ÿ˜•˜”‘œ‰•’™“›™Ÿ˜’•”Ÿ˜–Š–––—š™Ÿ•–™ž•—’“‘‘©ž˜‘‹š˜›–™›™Ÿ—ŠŽ›£‘›–˜“”v˜—’šœŸ’…™™”¨“•‘¢—”—•’‘›’“‰•–ŒŠ™‹—•›—’˜ž’™‘¥š•“˜•”˜£›‘—•ŒŽšŠŸ„‚‘•¡›—–—–šš›—‰’“›Ÿ“œ’‘˜‘–’𣑗“‰ž’œ‚ž˜’‹š‘Œ•š–’™™žŠ™šŠ–™˜ŽŽ›•޳žŽ™•¡’“˜¸——ž’“•Š™™›ž––’ˆŸ“—œ’––œ‘“Ž‘—”—™ˆ™—•‘™ˆ—‘›”œ’”’‡ŸŒ¤•¡—˜—›’š”™››Š›”›’Œ”‘ŠŽ…‘”•‘–’”ŽŒœ•’—˜ŽŽ›ŽŽ‘šš˜—•’›”œ˜•™›©›”“¡žž•šŸ—¥›“”œ’‡˜ž¡¥¤—™¢‘’“›˜’œž’•Ž… ‡š™–…§Ž–”–Žž›¨’™–Žš” •›¤“†¤™‹‹—‘“–””’•—¡’—¤ž˜ƒ—“˜”—’œ•’¡•Š}›–•œ“„•–£—¬£›š—–¡“”ž¤ž£œ‘‘‘”–›•ˆ–œ˜•–—•“›œž“–—šŸ˜›Ž˜–š““–¦›–”£Ž•“—œ¢˜œ—›”˜¤¥•–š‹œ™—¡››ŸŽ†­­›€–›š‘––ƒ¡Œ¤‘•”••—–“¡¨Žž¡’œ“žœ¡¥šš™¥–‰“Š”™•›––™™›™•™›––—›˜–‘’’Ž—•”“œœ›š”’•˜š’’™œœ“š‘–—’˜–”Žš¤”“¢— ˜‘Ÿ™››•œ³œ•˜“‘š–”””’Ÿ•›˜’ššœš—‘˜–˜£™™™ª™“‘‘”–“•“‘™—•š˜˜“•’–š›–™˜˜œ‘›’–’•’˜ŽŸ‘˜’‘—ŒŸ“’–•—””•’™——†–œ˜—”š“ž’””–ž–™•’œ—”•–—‘Ž™’•™˜Ÿ–” —š‘˜–“š›— ¡œ˜–—•“™”“†š‹˜š”Š —›“ ŒœŒ”›‘އ­‘’ŠŒ·Šœ“›¤¡¥Ÿˆš•¢–Œš–³ ©™“›¥›£Š ¡’ž˜šŠžˆœ­ž‘˜˜ŸŽ’‘™§ˆ„‹Šs”•“›‹™œ”¹–”‡†•˜ £Œ–ˆ¡ž¥–‘¢’—‹•šˆ”ª˜£§””Š ’‘¦¤•˜Ÿ•~’ –ŽŒ‹¬Ÿ‘——¾x˜˜žŸ›‰ššžžž–Œ§€›šŸœ“†‰—£™¬›¦—ˆ¤Ž”Š¡‰˜š£›ƒ—¯››ŒŒ–œƒ†ŸŽ›«œ’šœŸ‰˜Œ£“Ž‘œ’¥œ˜’˜œ’ˆ“•–™‰¬‚ž°•—šž“™Ÿ—Ž‘ŽšŸ–œ™˜‹™›–—“‘›ž‘‘˜™’’›¤›•–˜”™”Ÿž—“›™•Ÿ–––ž˜›”Ž”—™–˜—••š—ž“’”•Œ–“˜›’˜ˆš™œ•¤••Œ–›Ž”‘˜™œ™”™„˜™—ž˜–¡’ž£“—••ššˆ˜“””’’œŽ“—‘—“–˜’’•Ÿ›—‘––“’•—œ––—“œ”š’•“˜”˜•‘™”™——” ‘š˜™¡—–˜™”––—ž›¨™–“––š™”˜ž–”•–›Ž—’—”‹•›Œ–˜˜™—ž›™–Œ–—œ•””” ’‘‰Ž–™——•šœ”˜•“›•›”™’”“‡”š—”‘“”’”—‹•𑙢‘–“˜”›zŸ™”›ˆ–”˜‘–Ÿžž˜æ‹—¢£”˜œ–š“—’˜±“’•›|–‹›’‰’¡„š™˜“”’‘”“˜’––¢Ž™‰¤Ÿ’‚¡•¡œ•™Š˜¦—’˜ž–›”™ƒœ˜ƒ¡¥yš“ž–œŠ’˜‘•—ž™œžŽŒ—–“––˜œ••˜–‹‹””Œ“‰™†—¢—™ž£™–’–š”‹Ž›˜˜˜—•”œš‡—•ˆ•‹š—˜˜—«˜˜šš˜‘‘Ž––Ž’‘s…“—˜Ž–š•””–—–š}šŒ•—•š”p–Š¢”˜šŒ„– –𤛧•œ™|““¦“ƒŸƒ›šŽ”›™‘šœ“–€£‘––‘š——‘•œ”¦“˜’‘•”ˆs™‚‹“›–“—‘™”•˜—Ž–‰”¦‰¢•Ž˜˜€”£½•†š‚™¨—𢶕‰˜œ˜›¤‘”œš•“’‡–•’œˆ“‡£——’š•™–Š£›“•£““‰•–‡•’”’‘—–Ž–‘™–’˜‘Ÿ¡š{š—”…¡–’˜›•™¥––“‡”˜—­“‰‹–‘¦‰ “¥‹•§«–š”˜’—–”•¤‘’•P‹Œ‹””‰””„Ž”“‰‘”‹”•މ–‘•˜ŽŒ–•Œ‘‹•–•œŽ™’Š‘Ÿ’œŒ“‘›‹‹›‘ŠŒ˜‘–•’‘‘™…’˜™•˜–ƒ™›Ž™‘šx”𔓒­™Ž˜ˆ¡™™¡‰’‘’„އ˜ŒŠ‡ŒŒŸ’‡ž‰’‹Ž›‘Žš’•˜¥•Ž™—–¢”‘—”—’‘’™š¤’–“Š—“’›‘“‘’“–š•€v’“‡•Š•–ŽŠ”‚–‘—‘Œ•Œ‘•Œ™ˆ­•˜–•’”š——†–“••”•”—šŠ‘“Œ‘“–›“’‘™‘’»ª“˜š¦¡ ŸŸ˜””˜™–¶›—›¶ž–¥“•˜–ž–Ž ¢£œ“–“Ÿ š›”®™‘“•šŽ —œŸ”’–œ•œ“™‚´­¤—‰£’–’š™–—’­š”—•𙢩ƒ¡§£™›Ÿ£–”˜™‰•„ƒ—š•œ¬–•©•¦Ô‰oƒ–³–¬¨‘¥–lo—¶“¡¨™š«‘˜ž——˜š†…Ž—­›¢””“šš”˜‡‘•’•œ™•’™•¢‚–“­“–•Šž¡¡’˜”‡¬›”‘’¥•œ§Ž™£Ÿ£ŠŽ™›š›–’¤š ¦–™w™šŽ—¢Ž˜¢z‹š••™›“” œŸ’™š‡‘œ–œ¡‚™“–…˜”˜‡˜–¡’”™‘”“›˜ž¢ŸŒŽ£”‰™˜Œ˜ •‹–«™›’”››’ƒŽ—“˜’‹˜Œ•œ™••Œš’“ŸŽ”—‰“š“šˆ¨˜œŽ‹˜‡›‰’™•™™™Š•˜¡““›˜—–žŽ‹ž•¢¤‚“‘‹œ™œ’“‹ ˆ›šš¡‹šžŸ’–¡š˜„ž™š•••›—ššš—–›“š–Œ• ˜›šˆˆ”‘Ž¥£ –Ž‘–’—šŸ¡”›™Ž‹ˆ™§˜”™‘‹‹¤—™¦Ž•““’‘‹†Œ˜”ŒŽˆ–’““™•–˜¢—– ‰¡Œ›‹”–¢Œ™’—‘Ÿ——¡”—˜•–”’’Œ§œ”—š”•ž†—™’…Š”•‹’‘š“’˜–•’Š—‡•””•‡’–šŒ—–•ž–ŒŸ‘‘ž‘šŽŸ—•’’–‰˜“”“‰™†‘“˜—”›—”œŽ›‹ ¢‘–c’•”’Š’™„—™”’•–•¢–™–Šž“™Š’Œ‡§—‹†‹—“•—™’”Œ”’ž…˜ˆ‰•‘˜’•’˜˜ž†Š…—†…Ž‘‘–¡•£’–~š•Œ“•”“”ƒ—¡™›‰•Œ‡‘”Œ¦š“›‹‘‘¥’Ÿ€”‹žŽ‹Žš‚™Œ›–”Š—‹”‘ƒ“™”•£“‘Ÿ–“‘›“š‘ ˆ“™˜“Ÿ{–—“˜¥£Š” –𔕗…•™•›žŽ”—ž˜›˜—”™ œš“©›Ÿ…£•‚¡‘ˆœ…•˜’šŠy“¢• ‘ˆ­‡ž ““~™±¥‹˜‘’‡–“’¨£— Ž‘Ž“žž••˜“‘™‚—‡“|Œ““–•‘œŒŽ™‘Ž–¤ž—–’“”•’›—•¦“¨™Ÿ““”•™•™“˜œ¢©’´‘’Œ’”••‘—”´”•ž•••—˜–‘—‹š‘«œ™”–”Œ’§’’–ŽŸ–’‘‡¤›Œ™ƒ›¢•“•–œ’–„’•y–’Œ‘„¥†‘–¥•—Ÿ˜…œžœ˜›Ž¡—„‹Ÿ——ލ‘Š“œ”–•’‘ƒ—‘–”Š•›–œŽ‰Ž“•Ž—’𥕑—ŒŸ•ˆ”ŠŽŒ—‰“ŽtŠ“’‘’¡’“’“Ž“ˆ“€ŽŠ›Ÿ—”•ž”ˆš“’”’’Žšœ‘“šŽ¬zŠ|“’˜˜”“™œ‘Œ’¡—’–‰Š”‘•ƒ•““‹Œ°“‚‹˜”›œ•®‘›œ–Š‘”˜—›žŽ¢‚›““”–’’‘”˜£Ž—Œ‹Š™•‘“‡‘•”˜Ž‰”…Œ ”š™§–•Œ ¦’•–‘”’‹——‘Ž¡‰‚‡Ž‘”€Ÿ•—“Ÿ‰“˜•››Œ”ŒŠŒ“–œ†š–““™–œ‘“¢™›—™›œ•‹”“œ—˜—™™”Œ£• ¡Œ™‘˜• ”•Ž™“œ™›’ŸŽŽ”›Ÿ‘™¨“‹š ‰–™œ —™ˆ››”››—“—–ŸšŠ˜š ƒ–•‘›–Œ›”¡Œ”Ž›•””™‹Ÿ˜”‘•“—¡™”‰“Œ”ŽšŽ‘•—‰~‘’•—’™™’““•‹‹–Œ™š‘”¥¨£ ˜•ˆ”•–˜œ’Ž–‘“~”Ÿœž•‡Œ¦Ž–’™…¡}›”˜œ—™““‘–“’’¥Ž™’‘’ŒŽŠ‰˜‘˜˜——Ž™•Ž™’™šˆ“šœ•Ÿ™˜‘‰’‹’œŒ–†™“’Ž~œ’Ž’š™{‘‘”“’Ž“˜’¤—‹›™‰“‹˜†‘œ–‘ŽŽ’•™—‹š’—®”Ž‘’š™‘œ™ ””Œ±“””››•‹Ž’’¡“ˆ›‘ˆœ–¥˜Ÿ–’”“Œ•Œ˜£Š”¤š–Žœ‹›£”§‘”—¡Š–—™›•’‘”˜‹˜‘—Ž˜Ÿ•Œƒ‘†• ˆŒœ™Ž˜Ž•Ž˜˜† •‘˜™˜”š”œ¢’“—Œ’š”š”–—‚‘—›ˆ•’šž˜–““𗢆‘˜“œš”—±œ“• “£š™›–‘ž—›šš‡–“˜‘˜‡”“‘¢“—œ’Ž”˜—†—¨¡š“¶™Œ’—”šš–¯‰}’‡’ žš•–™•›’¤’˜˜˜›™¡’˜˜—’“ –‘’š ’‘žˆ‰“›œ“••œ‘–‰—”œŽ–šœ’‰¢“˜›Ÿ–ˆ–˜—Ž ˆ–››‡“—‡–š•Žš‚”¡Ÿ‰‡’ •–”Œ”Ž—”¢‹˜–“•‘œ‰”–”šœœž•–šœ–œš‘™ºŸ‹›”•Š”‰Ž•‘Œ‹Œ’’¡•—Ž“¤šŒ‘…ŽŠ˜“–™Š’Žˆ‘‘’—’‘—“–›”‘”ž“ŽŒ–œ •‡‚†—”‹ŒŒ‘“”œ—“–”‹•“”ŠˆŒ˜›–•˜‘‘‹”‘œ–œ˜–™•—–š•›ˆŠ…‘¦˜…™ƒ’’™‘¥’”˜Ž‚’ ””“–•‘ ’”•‘¦†Œ’”•›–•š’™‘•”š˜–’†Ž—š—’ ŽŒŠšŽ’’†™˜‹œ—„ž‘‘Ž—‘‡—’”‘–†­–žŽ‹’“œŒ”•…‚”—‰–“‹”–‘š“™š˜“—™žŽ”–¨š–“•˜vž—†„—”ƒˆš—”Ÿ›Ÿ™–˜˜Š¬†––®‹–𦔡˜˜šz“—™•£’Š—•“¬Ž™|–€™—‘–Œ›‹“’–”«Ž‹¨’Ž–“—¥‘›—•—‘—’™“‡¡ž‹‹˜––ž•Œ‰˜†™ŸŽ—’³–„–“†—§’€–™”––¢”’•£¸”„•‘—š‹•”›˜Žš£™”•’™“©•‹Ÿ–˜šŒ˜š“’‘š—›•š¢˜—‰œ’„¡“ŠŠ™£š’š˜——Â•€’Žœž‘™Ž‹Ž’—£’•™˜–˜™“‚“™•›£š“““‹‹—””•‘˜«’’“˜–‹•˜Ÿ•‘‘’—Ž”•”‹„‹’’’•–r’”•‘‘Š’Ž“”¡ž–™‘”‘‡“¡‚–“’”…™‡—†˜‘Ž–Š–‘œ†—™“™–˜“—Ž–˜–‘”›•ƒ—ž››Ž‘—‰™ ‡’¢¥‘ƒ—Ÿ”“–“Ÿ—›–…ŽšŽŸ‘™£–‹–“™˜‘•–Ž—‘Ž’›šŒ˜‹¡—‰‰’‘§”—˜”Œ‘‘’”Ž”˜—’“’•ŠŒ’‰˜™˜›–v™‰—Œƒˆ›Ž¡•¬•–‹Ž‘””“‘–¥š‘”›’–Œ–Œ›’’’¯œŽ“™–”’ž•“›–š˜”žŸ—•–™ŽŽœŒ–™ž‘––Š’˜“•‰›“™—–Œ™ “‡•“–‘•Œ•••˜–“ˆ“•™‹“¡‘Žš˜•”‰––•˜¤—Š’‘Š˜”›–{™š¡¤›“›‘””•˜•—–”’‡Ž™Œ›•‘‘–š•–‹››“‘™™—›–œ™™‹™˜¢‘š•“—‘—“”›¡’–¥’”œœ“”™–‘—£š’–››š“™ ’Œ™œ•£––’““•’•”|ŽŽ˜•Š˜’••–”–”•›™“’˜‘—’–£‘‘ŠŽ˜‘•™•Œ–”‹‘‰—˜‰”’“Ž‹…‘’„ ™”žŽ““–— ™•—ž‘”‰•””œ™œ‘—’Œ“•š—‹š‘–’ŽŽ“‚Œ—Ÿ•ޛދœ˜‘Ž•–‹–ŠŽŽ›–š‚—”—–‘Ž–‰’¦’—Ž‹‚ ’˜Ž‹—‘ˆ¨’Ž—ˆ“’—˜œ™”Ž“’–‘šŽ—‘”›š“››˜˜ˆ†š—•™–Œ‘–—Šœ–’š””Š”–”•“““”“š‡—Œ”›–’—„–’’’‘˜§Ž‘~ˆ•¡Œ–”Ž˜•—ž“”“—˜ˆ“—–Ÿš“’“•”’†”•‹jŒ”Ž–†Ÿ’Ž–˜ˆŒtŒˆ“’[“ŒuŒŠŸ”‘Ÿ–“ž–Ž’º”˜´¬š{œššŽ¯£Œ“ŽŽ™Š•”•Ÿ‹Ž­•¦†›¥Œ–™ˆŒž“’’”‘œª”~™˜˜¢‡—’Œ–Ž—š’ž™šŸˆ‹˜ŽÏ§”y—†¥•‘’¤ªŒµ‡’‰‘¢„˜›‘”Ž“‘®˜†ŽšŒ‘–‘šŽ·’ž–¨ˆ‹‰’‹Ÿ©™žŒ“‘Ž‹}—Š–•žœŠ®¤‘ˆŽ–•ž¡‘——œ•ª–”Œ—­›Ž‰¹™’‡’•˜¦¦•Ž˜ Š†‘¸Œ’¦•”š•”¡„†’ž˜‰—œ‘•¡Š™’˜¬·™‡” ™‘’—™š’”“Œ”Š’–‘œ•‰„‘Œ•‡¥•‘Œ…“ކ’¤››¨——¡ƒ”ƒŒ—Œ¡”“–œ˜‘v•¦ž£’‘‰•š–ˆ–’”ž”“–œ‹˜™œ”““‘™Œƒ—™˜—–Š˜¥™›Ÿš¤•‰”•ž”‡•“›–‘’®„—ˆ£—œ™“’˜“ˆ™‹‹”˜œ˜™‘˜Ž‘Ÿ”‘–’“•Ž~š’ —ˆž˜–Žq—–”ž‰ž°•˜„˜—•Œš—ŠŽŒuœŠ£Ž~‰’‘’Š‘‡”Œ‹¡£šŸ‰’¤˜“•Œ˜˜”’ ‹–”¡—˜•˜•”’–Ÿ‘”¨Ÿš˜š‰˜„‹™Œ“”“’’šŸœš­Ž†Ž‰•››“™‘ž Œ“‹˜Š˜•œ¦ŒŽ•š›™–£š¬“’”¦—œ‡’œ›©˜Žœª©’“™‘ ™ž”—†‰•Ÿ˜‘‘‘šš™”š‡‰ŠŸ‘«Œ‹–’’‹›“‹•™‹™’–˜Ÿ¥‘…šŒ“‡œ”‚š‘•”ŒŒœ‘“˜›šŠ–••—ŠŽš›™‰“”•˜Ÿ””‘™ž‰œŠ”ŒŽ™œ•œ¢À˜˜–“˜¢‡‹–¨{›ž—•—š|‰š’Š”“™„Ž‘˜›‹”˜˜“˜—˜œ›–˜˜–’“˜”‘—–™––š¢’ž‹Ÿ”•’‘ž‘˜›¢Œ ›’¥šš’“‘™”š”’–’ž›‡“™“˜Ž”›˜“šš’•”——•™““˜ŸŽ“žš’“š•‘Š‡¢—’™’™˜”~š–‹“‡žž•›’~›‘˜š—–”ž’˜•–Ž—š”’”…™Ž•˜™¦›˜Œ’‘š‘”’‘•Ÿ“›š—ž’—“’…‰–™¢”œš—“‹”Ÿ›—”•˜|–’’‘’œ¦•ž¡ˆ––——‘“™ŠŸŒ—“•œŽ™’–“ˆ“’™œ›Œ•””—q•“’‚• š—‰–œ–”••’‰Ž’”Ž–’‚•’——–‘’‹“–Œ•‰™–¢‘ž›š ¡‹˜…”“ž‘”–•˜–”Ž–’““˜‘Œ˜•𒔆ˆ”žŒ–‰“£”œš—“–‘Œ‘—™šŸ…—¦¥ššŽ…†›ŽŒŽ‰‘”•”y……‡”“—”š“–£’š€’Œ‰”””˜•–‘“˜””“—“œ™Š’ˆ”’›”’”‘•‘„‘’†œš›–•–’…™—‹“—““”•—¡Œ¤Œ˜ˆ“ž‹”’ŽŽ–ˆ®™”œ—„¡’™Œ˜|Ÿš˜•w‘–ŠŽ˜œ‡”ŒŠ•™ ”‘“‘’–ˆ•’“”†“‹˜¡’œ”Ž—Ÿ—›•œŒ‘™›†–ž—ª“”•Œš”•—“–š® ”“”Œ“•Ž’š’“‘‹“””Ž˜’‡’—’‘—ž‰žŸ•’šš˜œ”•’——Œ”ž•Œ—˜ŒŸŒ}–”•“Š…“–‡‘–œ’Œ‘†˜˜—“‹›œˆ–˜ž¢’˜Œ—›‘˜—‘”““˜Œ•—““œŽ––“šŽ–”œ¥ˆ •””ˆ¡’˜š™Š—‘™‘–‹’““•¨‹‘™›––™–˜”¤†‘—“““‡˜™”’‹‹•‘Œ•™˜‰‘›”Œ“ˆ‰““‡›Ž—‘Ž—”“‘™”‘’Š’Ž”Œ“ŒŒ”œ—“”•˜˜”—š’³Ž•““£Œ˜“’—’””‘ŽŽ•‘†œ’†–’˜˜Š’’‘‘©”š•‹–ˆ‘““—žš˜‹šŠˆ˜’‘ªŸŽ‰™‘•‹•’“’”’ˆ˜›¢ª”‰”–‘”’•Ž”–”˜œž“—’“”“’މ‹’˜’”Œ—‘ˆ•‰—”–’‹˜‘‹–‹”—Ÿ““–”Œ”’‹Ž‹’’”–‘“—ޕ𓖓”œ—Ž”“Œ–Ž•’“‘ŒŽ—›’””“”™”™—˜Œž“œ“”–¨™’Ž™ˆ›˜‘–›˜–•‘•‡ ›™š”™—”‘Ž”™’™“—“— •¢– ‹“‰“š–––”˜—“œ‘•ª’—Ž Ž”—˜•’‹“•£”ž–˜”•™•Œˆšœ„Ž”“˜š” ž— ”Œ‘’˜›”‘œœ‘•”Š“˜“™•’Œ—œ™–‘‘”––—›—˜‹™’œšœ˜’–”‘š“”š—‘”“•ž™—“‹–™—”•‘š’–™—˜‘–™˜‘Œ›˜Ÿ–˜–Š—–Ž™“Œ‘”™“ŠŸ˜ƒ‘𙇋Œ’š‹Œ–‘’˜•”—’’Œ“‘ƒŠ“‘‘•Ž–Ž˜’”˜“Ÿ™‘Œž””“‘‘ž–™ˆ•Ž’——‘Ž”˜š™˜Œ—‚–’Š‘ˆ”•“––‘‘”–—œ“Œ†‹†™Ž““™¡œ•˜ “š“–˜”‘ƒ‘•ŽŠ’˜•‘¬†•Ž˜’“˜š˜–‘œ•Š››˜”’Š˜š˜’‘š‘—‹“ ˜“™—”“˜‘˜”’”“”Šš•›“—–’›“Š’‘š”—–”‘œ¤•›“ž™’𔓓–‘“‘™š—›•——œŽ‘’”‘‘’Œ˜— –„˜–Œ†•–˜ˆ“– —‰˜˜”•“šŒ¨“’“–¡›––އš|y‘”•Ž‘‘™•}”‚›“’—™‹’““”•–›™Œœ˜’Žš‹ —‘Œ¡™Œ–˜Ÿ“™–¡’™—–”¢—™–—”Ÿ›”Žˆ—•¥•ŸŽŒ•ƒ¦ ”“šŸ£”ž©Œœ‡Š––—–™š…”˜––‘¥š•œ•”Ž’Ž‘”›‘–’”˜—’––—‹”‘Œ’˜––”™–“†Œ‘•¥‚–‘“Ž•–•’•—”’¤Ÿ–“—˜—‘˜‡“£•›”‘ޓЇ’–’ž‘’š““›Šš•“‘‘™Œ”’‰š“šœŽž¢˜•ŽŠ•‘•’Ž„•˜’•ž˜šœ˜–“•¡’’’“—‡¤“³žˆ““«’£Ššš–’ ˆŒ•“™’•”––›•˜—Ž“¢—ˆž–¤—–™Š“˜”—‹ ™’–’“”‘º•Ž£Žž˜‘𙑛|‰‰“™“™“•‘Œ•’ŽŽœŽ™‹’žš›’‹“’‘‘˜š™š—“—–”•‘…™™’‰’”–”‘‘’‰‡Ÿ˜Žž¥Œ•‹’“˜¦› ‘˜——Š“‹›•œ˜›”““—•›‘š”›™† •”’™—•‘‘š–Ž‘Œ–œ“‘‘•”‡–ž’“Ž”“—’’˜˜¢“–’’˜’Žˆ”’“ކŒ“Ž œ‘“’ž”ž—“ ’š—•ˆš•–“š•“ž“ž™“‘—‘Œ˜˜š”’¥•š’–”œŽ‘–‘‡˜—¢’•˜“’–ž¤Ž™˜’’“’–‘›ˆ“’˜’““”m£‘’“–™’’’‹—–˜“Œ™‹–‘’“˜ž’™™œ“”–’™“™š’”–¸‘“™–’“Ž—”œ¢‘”—‹’‘’‘ƒ•’›’–’”‡’–‘”—Ÿ–“•“–”ŽŒ•“Ž´•¤—•™Œž˜’˜™•Ÿ—‰“‘ œ˜™œ˜‘‹—™“—–›˜“›™˜’›™“˜”‹ —•™—“¡—–œ”’”›–£’™‹”™”˜ŸŽ•ŽŽœšœ˜†˜™‘ “š™šš’’’—”‹Ž‘˜•Ž˜›™‰•”˜•˜ž“‘—¬›™–¡–œŒŽ••†šœš™•‹˜’¡•”™•—™‘–™¢˜—‘—š™”–˜œ’£‘“¢“‘˜š–œš™‹“‘Ÿ–™¸——ž“—•˜w•Ž‘¡”•’œ–™‘–xŒ“Žœ¢‹šœœ›“ž”¢’›¡Ÿ’œ”˜”‘–œ–‘š —’¢–˜•——”‘š••Œš‘œ˜––—”“Ž“”–“šœ“—“š‘“›˜‘™™‘—’–•—œ—ž„”š— “—¡””œ“–™›‘” ¤”œ™Š ”ž–Œ›š•’œ˜˜ž–“˜¢–—‘’¦’µž—••Ž’–“œ’•• –’’•›”™“‰Ž—”‘’•˜™™•—‹›•›˜”—”˜Œš–›••”𔡇–Ž‹–““•Ž’•–”——”“‘œ’–—š“’–•Ž™”—”››˜šŸ•¤˜™™ ›š™›“™˜˜”™•‘Œ•™–˜’…›—““¡——“‰Œ–އ˜–”•“‰‘§«š”›’‘•–—š›“Ž˜•£‘›ƒ – ›”’’Ž’–‘–•“š£¤ƒ‘Ÿ‘¦¢————š“¥Ž”š—ˆ˜–ž““™™Œ–““’Š —Š”Œ™”˜•’‘’—˜ª‘’”–£š‘”§›“‘˜Ž’”œ‰“–š‘“’œŒŽœp•’ŒŠ—’”˜” •‘“•‘”’Œ’•”““’’•…™¦™—™—‘˜•—–•›˜œ—‘Œžˆ˜–——–—Œš’”•§•˜¡“ ¡š˜‘£’ƒz”’“’—‰‹Ž—…•“‰‘——”†’Œ‘•”’š”——–˜˜”Ž‘•’”’’‡–™–—”™•“˜‹•’ƒš”¥Œ’—”¡‹›”‰•”‘—š–›–’ —•‘•‰•–ˆ—“‘’—•Š‘šš‰–•𔓗”“”–•“ˆ“’“‘’’”‡•˜‹ƒ¦––’˜˜š——”†–•”Œ‘˜——•““—”’˜“–•–•–™”•–“”›“ޤƒŽ–Š›–˜“˜Ž‰‘“•Š”’™›•–‰”…“ˆŽ—Ž˜—˜”‘Ž——‘™•”‰’•”¢–••˜‰“‹“‘Œ‡”“’£‘—Ž’ª’Œ“–›žŒ––‹ ›”‘–¦“šª„˜‘˜’—“—˜—Œˆœ¢–Ÿ—”¦ˆ—”œˆ­Žœœ™š§œš”€“¤Ÿ’ ‰Ž¢˜Ÿ ‡–”“™‘’…—’š˜“™‘‰‘”••”œ—˜š’¶ª˜•œŠˆš ¡˜ž‘v‘Œ“§Ž•¬—˜Žš…š™”˜—§”‘¤“Ž™•™¬“‹“ŽŒœ••™› —žšžˆ˜‘¡™•—”†–ŽŽ®‘•ž—š˜Ÿ”Ž™”Ž’’šŸ§¢™Ÿ‡£•¢˜•Ÿ¥Œ‘¡“’•’™— ”ŸŽ’–™—›‘‘ž—‘™’˜‘‘”“““•““‘Йޑ‹¡’—–‘„™•“’¢–˜“’—–›••Ž”‘™“Œ–™’“‡Žš•“—š“Œ••’˜’ž”’ž”–”’‰”•‹£…›˜ž—™–“…’Š’”””¢•“•“—–™˜¦”’“’˜’‡Ÿš•𔆛“•𓔤“›Ž‘˜ˆ’†”Š£“’’‹’“„ˆ’•——’”¢˜Ž’˜™’’Š’““‹‘‹¤”’˜‹šž•“•‘–“Š˜’‹“”“•™—”–™Š’Š˜•”œ˜•–…œ‡•“ƒ¢‘—‘’Ž•˜‹œ¢Œš¤Œ—”–“‰‘•«—“¢”““›‘”—‡™ˆ˜“ •“˜’˜•”””’Š™”Œ”—™’˜”›•š—”™“™˜ˆ‹™Ž”œ—•–““—˜˜“—›š•Ÿ•“™—“’Ÿ”‰œ”™›“”™™‘˜“˜˜˜Œ—™”“–‹ž•‘––™tšš¡–˜—Œ–—”‘“Ž˜• ›˜ —”– —“””˜””¤–•‰šž™•˜‘˜•›—•——“œš——™–’–—™”¢š“˜˜“™––•š–Ÿ—”¥œ—–”•™‘œŽ—›•œ–•„š’”–šŽœ–˜””¡—œ‘–œ–“•x”’ƒ—ƒ‘–“–“˜™¥›Žž›™š‘ š‘ˆ¥“¡’ ˜“••••š”šžŽ ‘«•’‘•”‘“–Ÿ’——Ž’–”˜”œ“Œœ”’Ÿ•˜“œ‘•’œ‘––”“”– •œœ‡š“•—–‹—™–š—‘””—‰”’—•š••Žž…’–•–Ÿ’”±•œ”¡¤ˆ•¢—” £¢•”— –™–’ŒŠ–š••™š”“š’›š’“†•“•˜¡›”˜ž“”Œšš”™ž”•’•˜˜¦—‘‹”““––—“ž›•™—’œ–™–Ž•›£ š”•˜—”“–’••œ’“™˜•˜•‘™•š¥š•”‘“˜—“–—ž”’“ƒŒ“•’–‰‘—ž—•—•’™—“™š—‹–“†˜””–˜•’””˜˜–šŒŸ“šŒ•”’–’ˆŒ˜—“”œ—žŽŸŸ™“˜’”“™Ž”’—“––“•Œ“Œ—œ™–œ”¢Ž””—ž›–›Ÿ‘š™”˜“|˜›“–—’’”™‚­›•‘—’œ‘‘’’’’“…”––‘™˜™‘—––“”‘™˜œ‰Ž›”˜“”¢••‘‘˜”ŒŽ“—¤œ–ˆ– ”–”—¨‘—•””š’•”™•‘–¡•—‘–ŽŽ›˜œ”œŽ˜˜“•–”‘—”””–•—•›–“ˆŒ‹¤• ›‘Œ–’–“”•—–™lŒ–•”•†–—‰ŒŸ•§¢¨“Š •Žƒœ‘—˜ƒŽª‹’—’š‡‘ž–œœ“ƒŽž‰žx•‘¥–‹”’•‰’š‰„”‰–“ ›š•˜‘”’—”˜›Œ‹˜”£—˜•–¢£”l•–Œ“œ‹••“Ÿ–š–‘ŽŸ“”¦š¨ ž™ž–‘¤—’’|Ž“”šš—™“™”‹˜““”Ž˜•žŸš•¨” —‘¡’Ÿ”ˆŽ~™›‹š••˜¦›¢œž‘®ž¢†’‘“Ѝˆ’š––•›ªš”—“‘—š–’”——‘›’”›‘Ž˜”˜“š•šš’ˆ••’‘““•‘–›Œ‡’‘š‘“–˜—Œ•——•‘’–”’‘—‹›’˜—””Œ•“Œ”’„—’Œ†–„—Œ‘™ŠŽ”Ž“™–…’Œ–•–Ž‘ˆ“–˜“™’‘˜•”˜——˜‰˜””›–•Ž’Ž•–˜‰–’“•Ž‹œŸ‘˜–™š’’•‘‘–”™š•”“•˜š˜“Œ”•›˜›‡˜š˜””š•˜•“”””–’—šž’‹”–‰–•Œ”ˆ–“‘”‘””‘“’•Œ‘•””—’—“–Ÿ¨”“—’–Ÿ”–›Œ“‘š•Œ–––‘’’–’™šŽ–™ž‘‘Œ•’’˜—˜˜”‡Ž“•‹’š“•”–““›’œŽ—˜•‘•”–“›”Šš”މ•—•žšŠ˜•™Œ•¥™” Ž›—ª‘–•˜’“–”–˜›—‰”—“Ž‘šš’‘ŽŽ•––——–‹•˜—•˜–—’”™“Žž—˜•Œ›˜–™—›•˜Œž—›”œ—’“—’œ—Ÿ˜™‘‘˜–‘” ”‹ˆ•—˜”—•™–“•Žš––‘œ›“’~’—‘Ÿ’•”˜•“¥š•––†Ž›™’¦‘—œ——›š—”Œš‘——‘†Ž‘”›‘‘™‘‘˜‘–‘™Ž—¥Œ“•Ž‹•‘’“—’Ž‹—“‹’†—š’—™ŒŽ—•“—“•“®‘™•’ž Žš—•™Œ”“–—¥“ŒŽ’„‘Ž—Ž’’”–š›˜˜‘—“‘’•–ŠŽœ“’•‘’‘Œ˜”‘˜ŽŒ‘š’’–’‘‘–«’˜˜¦˜Š““’—‘“”œ™“Š‘’““ŽŽš˜—‘–˜œ”’‘Ž‘¡ —”†’’˜”Œš‰ ’’Ÿ˜Ž‘Š’™‘—’ œ’’—‘–”™šŽŽ˜–•–’–—›˜›’—”•“ž‰œ›“”š„”Ž‘’Š•—“‹– —¡›“™™Ž•˜’•›‘–¢™•’“›Œ’‘–’šœ—˜‰–””•—˜–’“˜Š’Š˜‘˜™šŸ•˜–•{’’Ÿ–Ž—ŽÅ–‹’Ž•„œ“¡Œ§‹”¥’‰”ž™™”ƒšœ’”Žy§¢”‘›—™‹ž•“–š™—˜—›¡œ›™’˜‘œ—Ÿ—šŸ—’“š””ž—“““œ–™˜¡––”˜”——”–™ž’”—˜˜“˜˜›“’†˜“™˜ —“˜–™…™™–—“——š—™˜”œŒ“ššš––› •‘“šž—’–›—ž‘‚ž”Ž“°—–šª’ž˜˜—Ž’•—›–“–˜–‘Ž‘Œš“’›™“š“’•›Ÿ˜š–‘˜¢–x¡™”š™–•š“™Ÿ•’››•˜œ‰š¦‘˜– ˜‘“š—’†•œ”›Ÿ‡•“™Ÿ›©‘‘–šš˜Ž›™–¤—–‘“—˜˜’š˜”œ”“—˜”–¤ˆŸ”˜–ŒŽ™ž’—§•’••’ ‘’•š™–—Ÿ œ”˜•Œ”“™–™““‰”Ÿš›—’˜›ŽŒ•—‹””˜‘”“—Ц–›Ž““–’™“•‰Žš’“£—šŒ‹•“ ¢™‘˜•¢Ÿ‹“š£Ÿœ‹›˜—‘— „ž¢—–Ÿ£š‘‰œ—œ™‘Ÿ£“¡—–œš˜“¡š’ž™›“›––ž–†’˜œ’“’—–œš›™›š—–™£–Ÿ†Ž’Ž‘œ˜˜š™‹—š¢Ž™‰Œœœˆ›•œ¤ƒ‘–™’”£’ŒŸtšœ™ŸŠ’ŠŸŸ‘•‘›—–™›– Ž™£¡—”™ššŸŸ —¡ š™›š¡¤•˜ šš˜¦žšŽ˜‹š•œžš–•“›Žšž‹”›£˜Ž•˜Ž™ žœœ{Œœ•–”›“¡“‰œ—‰œœ —Ž’™’§’Ž‹²žŽš™“œ˜’š•’’‰­‘—’¿’’ —“Œ£Šˆ—•œ——‘…Š”†ŠŠ‰—Š“ Œ–¥Ž—Œš˜”“•˜œ’• —š‘œˆ•š‘™Ž‰Ž•–˜Ž’–ª›„‡ž˜o™”‹›“”’Œ–„£—œ•±“„’¤Ž™Œ›švŽ£“’’››š’œ…£ŒŸ”…˜’›— ••–ˆˆ‰™”‰—”‘’—“˜Œ——“‘˜šž‰ŸŒ™Ÿ›§œ‹—Œ‹”ž˜”›‹}’…™†œ†‡““•Œ—«¡“Ž–”…‰‰‰Žžž‰’Ž’Œ• “—“—’ª’™•˜š¤žš›—™——’˜”••“”’’¡˜•Ž—™“’†’”“’™›•¤Ž”””š— —‹™”˜£œš“—‘žœšœ„Ž˜”£Ž™˜š“‹—ˆ•“œ’˜“œ•šœš“š¶˜˜˜’œš›™”™–””¤ˆ“’”›˜”‡Ž’‘Š”—–¡‘›•–•‡˜‘œ“Žš•—•””ž”“Œ–Ž‘—”œ™‘‘“›™–™™“œ” —™”š›š”¥‘”’‹“’–š––’—ž“™•›”’–“™‘‹•™–™–”–•‘š‘ˆ–“›™—™ž›’Š¢–•–”“–‹–Ž¡––”—™™—‘“”£š—Ž•”“•˜ŠŽ›“šš¦š‹“’“š••›–Œ™–š™’—˜Ž”œš‡¡–˜—•›••–‘˜›•••“““’—‘“”’’‘—’—“‹’žš–•™••œ”’“–—–›š•¢™•Œ‘—”œ›¡–›€•™”’š‘—‹‚‘‘Œ•—™•𔓑›‘•Œ•|”“‰›Ž—™›Ž‘Ž–™•Ž–’ŠŽ‘“™Ž˜™”••™’Š–‘˜Œœœœ’‘š““••—”š›˜—”—‘’””––ˆš“••›²˜˜“‘“š—Š––Ž™ˆ‹—™›™‘™‹šŠˆ”‹Œ’˜‡Š ’¤ŽŽ””——• ¡Šœ˜–Š‹•‘‘’‘’“„•Šœ“Ž¡‚™•–Ÿ–‘Š’ˆ’›—‘†Š‚™’œ—š”›ž‹Ž’Œ™‘“Žž“’’““‘““•ŽŒ•Œ–›ˆ‘‘ŠŠŽ”—š’Š“²”ž—••“—”އŒ˜“˜™ˆŠ‘”‰Ž¯Ž”¡‹—Š—Ž—‘‹•‡“œ’Œ˜Œ“ƒ‘’ˆšŒŽ˜‘”˜ˆ˜“ˆ‘š‹“‰‘‰™†Œ”“›’—„“Š‹–ƒ‰œŒ–•Гޖ‘‘œœ™–‹Ž——•–”–“•›—”–˜—‘”‘’Ž™“•’ ••’ޓދ“”˜“”“’‘Š“Œ”“’‘•—–˜‘›‹•–“”•––’–’‹›”™“—‰”’Ž”“•‘˜”‘”–—’–‘‘œ–“—”˜““•–”™““’•—‘˜’•šœ˜Œ”‘“œŽ•˜‘’’—Ž—˜–˜˜“‘“”’“š“–•‘™‘—–•••’—’’“”—‰›••”šŽ”’•Š’•—Žƒ–’™”•—”““•Ž’–“•’”–”˜Œˆ‹–‹•“˜•““’•”—“†——’œ”•”¡—•”‘‘†Ÿ–‘‡•“‹†ˆš“’Œ•‡ˆ•’‹•”Œ—•˜‰}’Ž‘…‘‰†—“˜—Ž˜Œ}›ž†‘š†¨‰œ‡““‘˜‹—‘ž¤—§š˜“ŽŽšŠ‰““Œ ŠŠŽ„œ‘–•}œ’™‰‰‹‘Ÿ¥“•–¤’ž–Œ”ž¢ŒŠ”’…˜‰“}‚ “…©–‘–›’’¤˜œ˜¦Ž’‘™‰‡™ŒŠ–¡£™Ž†›ŽŠžš¥•—–‹“‘‰‹›Žœ˜Œ™“‹”™Ÿ‹…§™¢”‘ˆ™‹‘š˜„˜Œ”Ž““ŒŠ‹–’—¦“–ˆŠ˜–œ•—‰”¢šŽˆŒ•“†‘˜”’˜š™–“’—‘’–œ•’•“¤’š’Ž˜“—ˆ’–˜‡’“—œ–ž›’Ž”“—•–”“¨••–––™‘Ÿ–‘‰’–˜’— “˜–—€’Œ–——Ž’—•˜—u“™’’Žž ‹š•‘’”¶˜”•š˜–Šš›’“›–œ¤–ož–’’•‘“ƒ““•Š”™–™“‘–•’”˜•–—• “‘‘˜––‰’œ””“‘”“Œ“Š—‘’‘––¡‘‹ž–™“•“˜””’’•••›™”“”–”‹™˜™Ž›–“‘–˜˜•’Ÿ“””‘“›–••”“•“”™“’–”“™•—˜•š”’”•œ—–ŸŽ“’Ž™–™–™œ–¢’œ«”Š’—˜•“–˜’Ž–Š’–’›‘–Œ›’“™’—––˜‘’•˜Ž•–˜š˜Š—‘ ”˜™š •——“’“‘’˜–†—†œ˜—šŽ•”‘”’œ‹–——ŽœŠ“Ž”’Œ˜Œ”œ‘›—Œ–›˜˜¢’™›‘‘—šš’–—Ž’—•œŠ’’•˜œ”—–š‘•œ’š•›’‘“–•˜’“˜™‰Žœ—™•’•“‘Ž•˜–šœ‘’“—””’˜•–™™›•‘ž•——‘–‘”›ž–¡†Ž•™‘”™‰‡’——•‘–™—’“‰”’˜’–”•š”–‹–––’•• ’•Ÿ”—‘ˆ”’”˜Ž–Œ˜Ÿ—˜—”›Œ‘˜ž‘œ““›“”ŽŽ’’£“—‘–”—“•“”Œ•‘‘™—•ˆŠœŽ¡š—Œ’¡‹Š•‡•–‰‡Œ™Œ‘•˜†•“’“•—‘Š‘ž—’˜•Žš‹”‘‘’¡“Œ†•‘œž””‘“”—“ŠŒ›’’Ž’˜˜•Œ‹Š’™‰”–ž˜–ž–𔑒”‘˜ ’••”‘”‹Œ‘‘˜ž’’Ž˜”’‘”“’£Ž‘•ŒŽ’‘’•”™‘”–“•œœ—Ÿ£Ž•Ž‘Ÿ–v”¡˜–˜¢‹”žšˆŸ “…•––—•‰¯¡œ“Œ˜“Š’› •‘–œ˜˜Ÿ—š’š––“”Œ™¢™Ž~•”•‘™Ž ”„ †–œ¡“‹–ª˜“—ž™¡’š–š›œš˜s²–™’‘‘””œ˜¤›—’œŽ—Œ–•«‰˜z•ˆz™’—~’sŽ™ž‘œŽ ”¢˜™Œ¡¤•’Љ–š—¢¼’”žŒ˜˜’Ž ›©šš‘Šš˜¢šŠ— Ÿ•œŠ~”‘œš ’™—žy©——“‘–•‹•ž–šš£—šˆ§™—–”›œœ››˜‚„‘—Šš• ž²˜‘˜ˆ˜’‡ ‘™“–•š™”‘›””—–”—ž˜•‘™¦‹”—¦Ÿ—•”›•˜œœ›œ˜™–š›š˜“‹“’–Ž™˜‘‘”™—œ–‰”š”—˜¤™’™˜š™“•‹”–›„•ŒŽ•…§“’Ÿ•™–“•“~“ ‡”“Œ––œ‹””‹”™•ž”¡¥“–›‡Œ”“•”¤˜Ž—Œ—™”›Ÿ™˜“Ÿš™“™¡˜Ž˜Ÿ”™“š››–”•—š˜•˜˜–š™——˜•—‘Ÿ™“–Ÿ™˜™¦›™}˜•”•œ˜™˜›’™‘—™–”™•—˜’–‰‡“’—˜”—™“–£—›“Ÿ—™›–œ™“–•”—’ˆ’•”““›–™™“‘“—–ŒŽ“™‰“•ŒŠ“˜’”‘™ŽšŠ“Ž”¢•Š‘™“ž›’‘•–‘––™“’Ž™•‘š–Œ™‘™”’’“•”‘•—’ž™Ž”›˜£Ž”‹’›–•š““—“š‰–“•‘”‘™•™‘‘’—”–—˜–š›’’”–––‰‘‘”’“Ž’“’“—“š‘“’“”‘•’“‹“—–““•–‘’•Ž•“˜”—’—‹““ŽŒ•—œ”““‘’Ž—–—””“šž‘•š˜““—‘‘™‹–Ž“”’žšŽ’”’‘š“•™™‘—¥Ž„Ÿ•“Œ‘Ž“–›“—ŽŒŒŽ‘”‰’ދޖŸ“‰˜–†„—Œ•–†‰Ž“‘ ’””“’Ž’’˜•Ž”—‹š–’””ŽŽ‹•“Ž¡’œ“‘¢ŠŸ‰›—™–ˆ•—•”Š˜”Ž˜•Œ®‘ŒŠš‘ˆŸ’‘ˆ‘•–‘£Ž––œ“›ŠŠ”’•†ŒŒœŠ„˜Œš”‘‘Ž‹““Œ–ŒŠš—•”Ž‘žŒ˜ ŽŒŠ”Š•‹–œŽž•’”Š’‘“Ž˜ƒŠ„•–Œ‘’“”šŸ‘’Š”’•”“Ž–Žšš–›”‹”“ŠŽ”—’”–”Š’’Œ‰—Œ›”Œ˜Ÿ‘™–’‰œ˜‘¥˜‘““Œ›•—‘‡—œ˜…Ž‘•—–’•Š–“ ž–Ž”™’’–•Œ’—‘Ž™’šŸ––œ—™š•”𕉔–‘‹•š’‰•š•”‹ŽŽŽ’¡™ž ˜Ž‘¢˜—–š–ŠŽ“”Šš“Š™™žš‡‰Ž•ŽŒ—‘—’’˜“Ž—£”˜‘œ‘ŸŽ“’‹—š–—”’‹—’‰‰—‘’‹˜™¢Žš“œ•˜š’˜”Ž”–’’’”•~—’—–‡—˜œ‘•“——Ž’›’˜—ŒŸœ‹’™’”‰•™Ž“““™œ•›‘’“—•”ŽŽ•˜••𔓔›’˜ŽŒŽœ—Œ•“œœ›•Œ–Ž••’®Œš•’˜”•‘‚—Š˜“Š–•˜“¤“Œ“‘—”™˜”—–‘Œ‹’”¡˜”“›“˜‘’‘’’–ž˜‘•“”’“‹•’“Ž’’’–˜’“¡–—•Ž’š“Ž•˜”’•—‘–’•Œ–’‘‘šŽ’”’–” ™šŒ“‘”••‘Ÿ‘’’‘”Œ’‰Œ•›Œ“ޔޗ›‘–‘’”™’‘™Ž“‰Ž“—”˜Ž—š’…—”‘‡’Œ‘–œ“Ÿ“’œš“Œ““—ŠŽšŒŒ•Œ•Œ•™¥’‘™£•‹’ Š¢Œ•”ª›’‰”‹‹’Œ“”–‘“”–•šŽ”’–‰‰Œ‡’‘…•’’ —¡”Š—“—˜—Œ˜‘™€‰œ¢‘‘•ŸŒ‚ “‘™”žŠ¢‘š’Š¦š”¦–“•›’š†’¦œ›š—š–‘‘•‘–‘•“‡•‰•Œ‘Œ• ¡—ŽŒ¢Ž–’ž‘™—šŠ’—•šŽŽ”œŠ—˜˜—Ž•Œ‘‘Ÿ˜ž¡’™—›“–˜¢‘›Œ’ŽžŽ˜ •˜¢›š’”‘’•’™Ž—’‡”’“‹”£“’Œ‘š˜—”’‹—˜“˜—”•’Ž”‹“‘•¢’«‘‘’–—’’‘“˜šœ˜–’’–••Š’“‘‘”“’—“œ†“—‘–—œ“’’•‘˜Š¢–›—–™–Ÿ›£•œ”–¢“Š™””›“”¡­‘Œ•“‹’šž™•™šž”“‘‡‘–’˜ ˜‘Š‘ˆ‹–“¢‹–š——ŽŒ‘“—““”“š“’Ž“›“œ‘‹“ˆ—•ª”¥‘•š–’›–”™—Ž“‘•’—£™˜Ž’šž°™“‘¢˜”˜”‘”“›•ŒŽ––Šƒ‘‘š™œž¢˜–¤’•—™–‰‘Ÿ¤€––“—••‡Ž“‰›¢›ž¡˜œž—š —‹ ‹˜Ž¨˜†™‡”ˆ•““¤Ž““—›‘‘Žœ—§‘‡ Ÿ’Ÿ™‘˜—–‘›Ä•¥Š—˜‘–Ÿžš‰£žž‘É¡˜’•– ’‘š •™ —Žœ’–Ž‘‹•‘’•”–ƒ’ŒŽš‘Œ‘‰•’ƒ‘–“—™›¢‘ ™“˜˜ Ž™šž‰–”›˜ —’•–‘“—™ “ˆ–”•“–•’”Ž§š„ŽŒŸ™–œ£…—Ÿ†ž”•™™˜’žŽ‹›’”•–“‘“‘•š•˜™–“’”Œ˜¤‘¡‘–’’‘‰’’šŽ”‘—‘ž‘’—‘˜’ŽŠ“”–’“•™‘’‘œ›’”ŽŽš‘’“’–““ƒ”Ž’–•¥¢˜‹’‘œ•›‘‘™’žœ’”ž˜•”—Ž’“–”’‘—’””•‹“—‘’‘Ž‘¤‘Œ‡™’’—›•‹‘’—‘’‘š“‘“™š—–•’’“’“’—‘–•’ˆ’‘›˜“–™“‘“š‘”›”—“–ž”•‘‘’‘’™Ž›š‘–‘’›š–’”•““™—‘”…’‘‘Š”“”’•™­““—‘‘™’““™ŒŠ’Ÿ“—‘Ž¡š‘š’ŽŽ›œ˜—”‘Š––‘ŒŸ–”ˆ–šœ¡’–”‡•Ž“¡”‘‘•Š““”“šŠ—•“Œ’‹–•”‘“š–’Œ‘‰”Ž£Ž˜’—–œ“‹—‘—†–¡“‘Ÿœ•”˜˜“—““‚–š–•‘Ž“••‹”‘œ•ŽŽ‹’‹•”‘•“’™•“‘“™Œ˜š•™’”˜•ˆŸ”‘Ž’‘”š‘”‘’—˜‹šš—±¡•ƒ™‰““’”ŽƒŽŽ‡…–˜’˜‘Ž“““•’—–•–‹Œ•—’œ“’™Ž““ž˜”‘Œ’–•‘’ŠŒ–Ž”…Œ•˜——–Š—›˜” ‹Œ‘•“¡™“š•“Š””–š±—˜™˜›‘Ž–š“–‰—•‘—–“Š–”—”–’„ž’‘‹•š•ˆ˜”™‘œ˜œ‰œ”˜––­¦•›•—•‡–‘“”›•‘š™–˜˜˜Š—’•Ž’’Œ˜—–œž‰–™Ž”™•‘Ž‘‰–Ž—–— ›–”‘Š˜“‹–˜“”˜‘ŽŽ’¢”Ž˜œ‹”•›”˜™›•”›•˜”šŒŽ‰›•‘‘“˜•– •‘‘”‘‘—•™—“™‘’“•Ž˜”˜–—‘–——–’•–˜’–œ“‘š–•”•Ž”‹ˆ••’Ÿ••›šŽŽš”Дޒ“‘‘’“–’–‹”¡—”Œ‘’—’˜‘”Ž–šª–›””’˜›˜ƒ˜—–—“šœ…••’˜–•Ÿ˜‘•¾”˜‘–ˆ‘’˜™’š‘•Œ’’“‘’Š’”——“Ž›š””˜“–Ž“”—”‡’—Š˜‘—•Œ”’”™•’™•“…Ž™œ‘’’šˆŽŽ™‘“”–Œ”—›‰“œ‘™–ƒ”Œ’”•‘‘”‘•¦™™™™”›•”“˜“œ—’—”‘–ˆš•™”—–“‘–“–˜ˆ•𖖔ޒ”‘“–—Š™–‘—›•—‘”’“™Ž›˜ž–Œ™—–‘Ÿ—–’Œ˜˜“‘Ž›˜˜“Œ”Ÿ”’Ÿ–‘••—‘”—’˜‘•˜˜zž•˜“•–“™’’‘“š‡Ž˜„›››”Œ›š“•–”’–—–”‹˜“‘©“™žŒ“œ‘¢›—’’𙑔ƒŽ‰—œ’™‘—’‘”…”Ž’“‘›š–‘‘‘š’‘‘’š˜“—Ž–˜Š•’““‘“”šœ—’——–’”—“”• —’–‘–•š“›š—“’••Ž––‹‹œ‘–”“§‘–“šŽ˜ ‘™›•’œ•“•••ž“Ÿ‘š‘••‘“–™©”—œž›––˜“Œ—‹˜¡™‘”•›šŽŽ‡—‘“Ž¥’—’™™™—ž£–”›“œ–”‘–˜˜”‰‹”’›’𥔓ޒ““|“œ’š’Ž‰Œ£–¢–—–”ˆ¨™ž›Ÿˆ•–˜z–’Ÿœžš••ª—˜‘•”Œ˜Ž’”›“•¦›™•“‹’¢•’™¥Žœ”£“‘•Ž”˜š”¤Š“€“‘””™¯”“¡’•“””“–—“•™‰‘—~˜¦’”•š–‘—…”’›Ž‰‘””“—™ŠŒ“—“–‘Ž‘›˜›Ÿ•Ž’žš”•¡›‘”˜šŒ—š’”“œ”™”Ž“”“Š—‘—••‘”Žœ˜œ‘ ”–œ–ˆ’•—œ™•’’›š›’އ›””‰Ž’“š‘’‹’„‘’•˜†š–šœœ›’“”ž‘š“—˜™—˜“¡œ—”œ—Œœ šš‘—އ•‘”™œ••™’•™˜”–•ž¡›–—”•“•–ššœ’‘’Š•ž’’¢’—“˜‘—˜Š•›““ŽŽ––––™˜Ž–‘š–Œ“¡Ž¡‘–—œ˜™–Ž— ™”¡“œ¢—›—Ž˜’¤˜Ž’˜“•Œ§š˜™–‘ŒŒ–˜””Š›’˜Œ”˜“”˜˜““’”Žš”•­™’—•‡”™œ—”“‘‹ˆ’•œ™“‰“£‘‘Ž”—’‰‹‘‘“–Œ›Ž’}—–›šˆ‘•£‰“”——’•–¡¬™‹™’š…Ž”Žš›™y”—•‘™}‘“œŒ˜”˜Ü”—ž–”—–Šˆ—šŒ• £–‘‰–“‘”•—‰{Š‘œœž¡–•›™‘›Ž}“š’€’–“šŽžˆŸ—š“•™ž—”™™—•‰—Žž‘”“˜•~†–”•—––œ˜‘—™•˜•”𑆓–•˜˜šŽŽŠ‘š’Œ•¡•Ÿœ“‘›—”‘”‘“–˜Ž‹‘šŽ“•“ “Žš‘›™¢’™“—Šœ••œž˜“••“‘›’“Ž”—“—’—’˜•†––•Œ‹›’“–””’‹Ž™œš‹‘‘Š•ƒ“–’‰”—‹‘Ž–ŒŽ‘•š“”–˜‡Ž˜Ž“Ÿ’v‘••˜”‘•’—’”š™šš”›–•™™‹“““œ‘š‘Ž•˜‘–—’Ž—•š’‘–”•–™’”‘Ž“‘’—Ž—“𢗠“œ’•”››•Ž“ –‘•””•™“‘›ž’›‘œŠžŽ™“’”‘—”‘•’š–••” ›™Š›œ§–ŽŠ‰›‹Ž™¡”—¥Šœ¦”¢ž”‘‘ˆ˜“›“ ¢Œ—…œ›•Ž—–£””•‘šŽ‡Ž•𡣑£š–’™¤—˜“™‘¯›““¦•¡’˜“™Š—‘–“‹”—𕤒•˜ŽŒŠ©•¾¤­Š¢•‘’“©‚™©’Ž‘˜Žœ˜Š‰“–““–›–†{–•—Š‚œ•§‹”Š’’“•‘“‘””‘–—•‘‘Šž•“‘‡ ‘–““Šš’Žv’¡œŠ‘–‘––“Ž®’‘‘šŽ“Ž”މœ¥–˜˜•—š›šŽ–Ž’™•’”—›–”Œ‚˜—–’’–‘ž›’¡š’œ––“’•—™š™‰žœŸ–¦‘‘˜™–•”–‹š’ˆ£‹˜“¨”ŸŸŠ–™“•–‹Š ˜™‚–˜•“†”—•–“š–Ž‹™•‘†Œ˜“ššŽ”——‰—œ™™”—Ÿ•šŒ¤‹““Š“—™¦Žš”Žƒˆš‘•˜¡—•’› ›’š–š“’’Žž–ŒžŸ”Ÿ–’—Žž––‡–”˜˜”¢Œ˜ŠŽ•–œž•––ž–‘Ž“˜–Ž–•™•›’–¡¦˜–Žœ—–“–¥£Œ’“›—ž™¢”ˆœŠ•‘’ŽŠ‰‘–‘Š™’Šˆ’“‹œ—ˆ‰”Ÿ—Š˜”““’“›—£‡”ˆ–’–‘Š“‘•Ž““•‹‰šŠš›•‘ˆ‰Œ‹’›‰„”žž’‘”‚Ž”’Ž–š‰››ž“‘ƒŒ‡™Ž—™‘–˜—Œ›Ž”‰›ž…€‰…›‘–•“‘•Œ—ޙޔ–‘’¢–‰˜•‰š†˜•š”š˜“’——’œ–—–„™Š’‘š’’™—Ž—‹•’–’Ž–Ž—‘Œ“’‘‰‹–…—œ‘–˜Œ—š›Ž˜Ž˜Ž†œ‚’“’“›Ž”˜•œœ‘€“‘•‘–•Œ–ŽŽ‘–•˜˜“”‹‘ˆŽ”””’“’‘Œ‹”™”‹š’–Ž”“އГ•’•¦–ŽŠ“‘•——™Žw•”‘™–’’—“‘‘•‹™”–‹•“˜Œ“““”Ž’•‹•’‘”Œ“Ž’œˆŽ“’“𑉢—™š—‹•—މ‘‹’™™‘’˜’‘•“›‹šŒ¥—“•š“‘•”ŽŒ’Ž›‘•‘“‘’‹’•’ŠŒ–‹“–‘¦‘Œ‘•”Ž’—œ¢‘‘”•”Ž”’‰›—•š’“Œ˜Œ”‘–œ˜ŽŒ‘“––š›’‹™‘›–©Ž¡‘’’•˜žŒ™—Ž’™Œ™›—œ•”—Ž›–•“š˜’”–”’”‘˜œ›•¥›ˆš“’“–™Žœ™˜”œ—‘˜–•“™””š–‹ šž”œŠ——˜™‘¡“—‘—Œ¨¢“ˆ“’”˜•š“’”œ–˜œŽ’˜Ÿ“›•–’Ÿ•š›”’’—Ž˜—•œ—“™˜•—˜”™™™”ž“œ‘‘“˜ˆ“•–˜—•—”’‘ “¢•”¤•š”’“˜“’§‘ž”–˜ “Ÿ——”‘•–¥ª’—–•…ž‹“‘•”—›Ž––Ž—”¨“𒔇”‘™¡“–‘”¡‘•“”’”›–‹˜Ÿ‘˜•šš˜•ŒŠ”‘™‘‘š•š˜’Œ–Œ–—˜¢“””•˜¢–˜˜—’‰™š’–““ž™¬‘’’’ŠŸ——‘Ž”™“™‘Ÿ‰Ÿ“†’›˜žŽ“‹ˆ––™—••’–©’‡“¢˜“ˆ—†•—••Ž–©•Ž•–“˜•”›’—¥——š”Š—”‘—‘’Œ›–‰—˜‘“—–‹”“‘’‘–’Ž”•‡—‘‘˜œŒ‘—™¢‰‰‘’Š•‹˜–——‘‘“Š˜Š–—–Œ‰˜“™–‘“’’—˜˜’—˜ˆ•š˜–›“”›y“¢Œ“— £‹—ŽŽŠ”‹š˜“Š•”ˆ–™ž”“’™Ž”Œ“—˜”””‘‘”‘Œ—’…ˆ–—•‘–“•‹••“——“œ–’‘œ“–›Œ’—””‘–‘’”•‰‘˜‹–“––ˆ–“Ž’š””•‹““—’–ž–Ž”œŒ–•‘•”t“‘‘“’’œ ‘”—’”˜ž™•š˜”•‡¤˜•’ž˜‹‘“– ˜Ÿ‘–Ÿ™¡™”’”–š’Ž›•“”Ÿ“š›™œ““Ž‘‘‘™–•“ž’“¡”““”ž—’Žš˜•—‘𣖒‘™’’•›™Ž•’Ž”…ˆ‘—Ž—–˜–™Ÿ–”—–’‘  ‘•›—“–Š’‹—–‘˜Š––‘Ÿ’™”“œ™›‘”––’•—‰’““‡”’”’””‘šŒ˜’“Š’“¤‡”š†’”—œ”Ž™•Ÿ˜•—’‘•”‹œ“¦Žš”“—ˆ—‘‘—˜Ž¥—š’“¡–œ‘’—–Ž—“—‹žŽ—‘”‘—…‘–•’˜šŒŽ˜•’‘™‹’˜œ—‘Ž’•“‘š’“Š—‘‘ŽŽŒ““–’•˜Œ˜˜‘’œ”™’œŽŽ“‘’”‰’Š–›‘Š‘•”¡¥™‰†˜˜“ŒŒ‰’™’Š”™““•—•ž“‘’‘’’‹––’Ž“‘–“”‹”‘–•–›”š’•š™¦•–˜“™•••”•’’™“–’“’“‘’•“Œš–——™“’–‘•‘š’–—–’›””•“‡‘˜›”••œ‘‘Ÿ–œš–’Ž”•––•˜“’š—˜“’———Ÿ—™š˜Žš—˜– “¨‘““““‘‘’”“”’˜•’‘˜“––“–Œ’‘””–Œ“’“‘•™›š“’˜›‘˜˜‘›—“˜˜——”—”š˜–Š›•™š’–’—”—€—‘—‘’‘“‰‘˜’—’”•–›—’š–“ž“’™”š˜›–•’–“š™–’˜•Ž˜¤™”–œ•™›–”“•”“‘–™•—’“š–’Ÿ““‘˜—˜”˜˜“ˆ”‰–›Œ›•›”–—“ˆŽ‡˜’š‘–˜“˜˜˜Ž•œ¡•“©š‘”œ”‘š›Ÿ””•¢‘žŽ•—œ“ŸŽ¥•Žœ›‡’ˆ›ž™“›™—”™–¥•–—ž“”™™…“”›Ÿ–›šŽ•¢Ž”—’‘—“™““•’›Ž™˜•˜——’“”“Ž“•›—•Žš–•’–—–œ˜’—‘‘“›—”Ÿ“”𓣓ž”—™––™“—›–—›œ••™”›‹––• ’š•“˜•“’—Œ–›’‰–Œ‘š–”‘”‘›‡x“”‘•–Ž’•«ˆ’’’“‡“’–’’›œ”–••“’’’—•—–•‘‘‘”Ÿ‘”’«—˜˜˜‡“”žŒ”’”š•Œ‡‘œ–ˆ™”˜’™’„˜—‘œ‰‹’|‘—Œ•“˜¢”Œ–”˜˜ˆ’“’”–’ˆ‰Ž™’—“’‘’‘—“’‘Ž’˜šœ}•𓓒ކ’Œ‘“š““œ…›‘““•‹™›‘–Œœ’–’•’ž““•“‘˜—’ŽŽ–’š“”Œ‘–šš˜–—‘””‘’„””’“‘‘›–‹—š”’š˜—–•“’Ž’’‘’š’–ŠŽ–—”™“’‘š”Ž—‘”“”•¡ˆŽœ—•’‰™–™•“••”’˜”•‘˜¢Ž˜‘’’“˜–”‘Œ–’“’š—‹¡“’Œ“”™”‘–Œ”“’’r˜™’š•‹—™”’‘“’’…˜“”‘ ”’•‹—“””Ž”’”•“˜•“’‰’™™˜˜’Ž”“Š‘“‘‘ “’“‘’“‘’•—“‘“–‹›‘Ž’“””ŽŒ“‘”’šœŒœ–žŽ—›–™‘‘•˜—“𔆖—•˜”’™Ž“Œ’“–™’–“”–•”•š›—”—–– —…—”••”š—›‹••–‘— ”™–˜–’›Ÿ—“’—™‘—š”•˜”“¡’˜‘œ”š—˜’“—•—ž£‹•Ž™—”–›•‘˜–˜˜œ—••¡˜Ž‹Ž–™••—œŽ‰‘•š™–ŠšŒŸ˜™—–™«•…š˜“›Ÿ”•Ž’—˜š›™˜˜ˆ””Ÿ“–‘™˜•„¢˜”›•š”˜›™˜”˜—•–––”›™š™ž’”‘–”‘•˜¦˜–’Ÿ˜š“——Œ•ž™•‰šœŸ¡–‘™›“š››˜—‘«˜˜—Ž–˜ž“˜Ÿšˆž”’™–—ž‘•‘’–—–ާ‘˜‘“š–ž“—•“–˜–™’Ž”™˜‘–Ž˜„—˜—““Ÿ›–—Œ™¥œ–“™–¥™œ’„‘˜’“£“¢Ÿœ‘š‹œ—™™’”™™”Ÿ‘•––’‘¡‘œ˜‘Žš’—œ•ª”Ÿšž–“†Ž™š”¢—™‘“žœ˜•ŠŠ£“’‹š—“¦”“›””–™—“™•••‘¢—’•¢‡•Ÿ•š””˜”–•˜“Ž‘–—Ÿš–™™Œ”’’—˜••™™˜˜–™“¦’ˆ—š˜“”˜ˆŽ‘œ‘‘’˜‘”Ÿ¤ŠŒ’““—’“œš˜•Œ¥—‘ž“ ¥“–ž›˜£§–Ÿ“™“›“”•””‘”“š–•™“•’•‘—” ‘“““•’—•”•–”’˜•’”“Ž–”˜–“˜”˜—•–•Ž’”––’ž’’•–ˆ””””™””—™˜““Ÿ•Œ””Š’”•”–“‘’™“šž•™•–‘”˜••–’’˜”“””••“Œ•’““•””“š–™•¢‘“””ŸŽ™•••“••Š–”’–’‘–™•“”“””‘”˜””—”›•’–—”’’’ ‘•“•“˜“–Š”–“•••’žŽ’–”““—•–•”‘œ”–”’“š’“”‘“˜Œ•–‘–“–Ž•Ž˜–“”““—”–•–˜“•–•™•–š••˜’••˜—••••––˜’”‘–’”˜˜¡•–——–˜“•–••’–”’”––“Š•“””–””—“““•˜”—˜–—˜’•”–•–•Ž”–˜–•–¡˜Œ™œ–”‘’˜™”•––”–“™–”––˜–•“š˜•”“••–“–”–Œ—“™”–’‘’ª–’“–•–˜•”•—•˜‘“’“”–““˜’”•”–˜““œšŒ––˜–•••”–Œ•Œ“–‘’–——•”™–Ÿ”–’”˜”“˜˜–”—–”””’“’š—”–¢–™–”–”•˜—””™–’˜’—™’“–˜—™Ž””›• ›–•““•””–œ’•–••”•—”•“–™–—–œ–•–•˜•”“”—˜••’“–”—–š’”“”–’•–”–’––—‘—•’–˜••š—””’–—•••–——–‘”¡——•”••——˜“–’••ž”••”—›“—˜‰”™——–•”˜••””•”–•„•˜——Š’œ””•””••–•”’’–™••“›•–•—š–•“˜”‘–”š•”™•••––•š–•“‘—”’œ•’›”•–•˜•“•˜’”‘’––˜•—Ž—“•“”•’—˜•••—’’–•––—–—“–”””œ”’—ž“’•’•”•“’”– ‘“”“”’”–˜–˜—‘™•œœ–—–”•–›”––•”–”•“Ž••–˜•’”“––•“š—”•“–”••–•“–“––’˜––•‘”—˜˜’”—”‘•‘”ŒŒ•‘––’–—“––˜˜”––– —’”––˜•••”––”–•˜—‘–›˜•—–”–“˜™•’•”—–—‘•’–•“™—’–’“•’”‘˜”””•–’˜““–’”——’“•‘”š”˜’“’”’“•”“——””œ’—”—”¨‘–ššœš™–””••”˜›–™˜”•””’”“•——–•”“”—”“–”˜•›–”’–’•••””˜˜”š–”“˜“—•“—•™–””’–””•–•˜•–•›˜–“””•”””•”–••”–––•Ÿ™ƒ•—–”–”‹”™–˜’•”•“ž“‘”–™”˜”•””–—•”•””•”•””ž‘””“˜“”•”•”—•“™š”•”š™”–—”””““”•”––“–•”™“’””••‘•š—•—””•”“”“™–‘“””‘””˜—•””“š••“•”““›•“”––˜’˜•–‘”•“𔔔𡛙•ž˜••–”˜•“‘•””–Š—•˜–•••““™’•‘•••“–”—–‘–…™˜–—”‘••”–•’’”’•–’’–’”–™’•”‘••––Œš–—š“’›••“••••”›Ž”Ž’›•™’™”¢• –”—•’—Œ‘Ž–‹‹’•”•›’‘•—“’–Œ†•••–˜–•ŽŽŽ‘”–”–—•–”˜—Š˜‘ƒ•““”‘••••Œ–’–•ŽŸ•˜–•••”‹™š˜•’‰–”Žˆ•”—””•—–“•••‘›”–”š––‘“•Ÿ’”•“”–›–“Ž–—•—•š••”——–š–••”–Š•“•Ž••”‘“ž•™”–””—–š™”—›’”“••“’–‘•‘”–•Ž’–•”——’“’™“”””š••’œ’”‘–”˜•–”••”˜†”“”””–””‘“œ–”“ˆ˜•””–”Œ™“š“–“”‘“Ž”‘–””ŽŽ”’™’““•Ÿ““œœ–’”—–•š–––——””“––””‘””‘– —™”“–—–‹¡˜••••–‘””“–•”˜’–”Ž””“•›”™”•’””Ž“•™™“—”•“”•‘”“•˜˜•–•¥””–’–“š“–š•‘’’‘“••”’š—Ÿ˜””’‘––”””’—””“•‘––’˜”˜•—•—••”“’–“•’—‘‘—ˆ“—•”–’“”••”“Œ•ŽŒ––’””’”•Ž“”–“’–’””••”Ž™‘“”–”–””•Ž•”“”“™”’”–•‘™’“•—”””˜š“”šš”Š˜—˜“––‹”•—’”‘–•”””—•””‘‹—••”””•••’”•“–“—•“‘“šŒ”’’”“”•“–”•Œ”••“––—”‘’“–”“‘–”’’–Ž”““‘••’‘›”•™’“•“•“”–—”“˜“˜•”••Š••˜—•Œ––”•”—’–”‘ŽŒŒŽœ–˜“”™•™““™””””–œ–“‘š–˜–”–“–•—ž”˜š••”‘”ž”“““”——’Ф’’••””–—“š–““ “•”•𔓔••–™““””“”“•–•’“–ž™”Š“›˜•™“““‡’”• ¡‘”›™™Ž•¡‹›’’™™”˜“•””’“”•œ•œ“’“””’•’““’–—Ž”“•”’›“””’““Ž“–’“š’“““š•‘—œ•™’’“œ““‹ ™ž–““”‘”“—‘““–”“š“—˜¢“““Ž’˜“–”w”“’’““Œž˜›•˜”‘”œ’œ’ ““…–—•“–”””–˜œ–“˜”—••“•“•‰’–˜’š–•”“’•–”––’“•””••““’•“‹–““”••”—•Ž“‰••š•£–“•”•–••‘“‘‘”“’’–‘‘‘˜—˜–“•——“”•““Ž•—•œ‰–”’‹™Ž•••›–’•“––––•––‘“”””’–––•–•”–Ž•—–’šž“˜’”••••”“”—•”œ”…““–”‘”™”’”—–”•“”’—“™–•–“”•”’‘“–—œ––’Ž”•–“–’‹“˜•‘••”–•””““’”–˜‘’–’’—‘Ž””“”žšŒ•¡¦”–””¬§””¡•—œ•Ÿ”¥–™¨•¢§“”•Ÿœ•”“•”£—•”¦”•¥§”¤›••”›œ˜””ŸŸœ–”›˜¥”‘–––””— ”˜š“Ÿ‘Ÿ”ž’©’•›”›”’•”¤¥–™“ š¢¢”ž”¢™‘›–”˜œ–§““”–””¦•”§”˜”“¢”“”“”–—”•ŸŠž””Ž’••¢•““””𕤕“›“ž””’Ž Ÿ£ž˜”“™”•𤣍—”•“—””𥣕”œ“•”Š”›¡Ÿ“””•›“¡™¦”¬””–™•’ž‘“šŽ“•›–”œ¡¥¥’••””—–š”™š”•”“š››–•š—“‘“™•“–›˜”¥—”•’–•”“”••””–—–—••˜‘”’ •™ •—”—–—”›•”•”—™˜”’––š•••‘–Ÿ˜’”“——••§–Ÿ‘–”••”™’–‘“•¢—”‘’˜š””“›–¢–”žœ“”Œ”•“–”—””˜žŒ’“•š••”””–ž”ž••‘••˜“’–“”””““‘”––”“—•ž•””––˜˜˜—•—“•—”˜›œ™–•”“—•š—”•”››”•”•“—–”—“•œ™•–”—•“š–––   ˜•” –•–—‘”„›––’•”––’•“–”–ŠŠ–šŒ“Œ••’•‘‘’Œ•Œ‘”—’–••”••—••š‘“•Žš”’“•”“”’‘‘“’“”“”””–•••”””•”•˜••““™’˜”˜“ž””‘–“”•Œ•””“’–””—’’—••”Š“•“Œ•–‘Œ–’—•”••’“˜”•—””•“••”™—‘•”‘””‘‘”“”–•š””–”””’”–”•˜”—““”•’’•‘˜”••™“—–“——•••™••”’””“–—•’–”’–’””•“—•——–—žš—–Ž••“”–“•’™™••™–““’•‹–“˜’’—”•“•‘˜”’•–Ž––•™••”•—–•“¡’‘’–”—–œ•••—“–Ž™”‘–””—““Ž–“–Œ••“••”˜’’™–š••”–ž““ˆ–‹““’“”–”””“˜š“’˜“§‘˜”’”Ž“‘‡Œ””•—–•“•˜”‘’•””’”•’–“”–‘’––•‘•’“•’‘•™–”˜”’”“–’‘”’”‘”˜˜’—”‘•”‘›•—•™••–—¥–•›’•—”“”•“š“•••—–••”••“‘““œ˜š‘••”œ”––™‘——””’š“‘‘’”’“’’˜’“›•–“’—“••’—‘–’’“•“’’‘‘’‘›““““’’’’™’—’‘“’“™’•’—“’œ’’“”’”’”“’–”‘‘—‘’˜•™”“”’“’’—’••“ž™ š’–‘”˜•“’™˜‘Œ“’““‘’’“‘“‘’’””’’’‘““ž’‘••’‹‘š›š“”’“““–“”‘’™š•“’“˜’˜”‘—’‘˜“’•––•’’’’’’“••”’œ’’–—“•’’’“‘•‘”’“‘’”š’”—”‘”™˜–•’“‘“’“’“’—›’”“•š™˜’˜–•“‘“—œ¡•˜ž——“‘›”—‘‘š”›™–•“——””““”—š“Žš“”›’™“—“™™’“—–“œ”š—““›”–’’–”’“”’’—”•‘™ž••’–”œ”œ”›’““—¢••ž——•˜—–•“Ÿ™‘“ž•’–‡•‘””—”•™“œ—““œ••“••’—“š‘˜—””••¨’“““•”‘“““”œ“”“•‘––›šž–••–’“’š•›š™‰“””““•™—‘””››•“•’”™“”–˜š”•“–”’”’’”””‘™ —Œ™••Ž•”˜›’”“•—‘•“š•””•’ž•”“¢Œ‹“”›”Ž™–Ž–œ””–Žƒ”•“–•••”Š™’•’—š•Ž”–•˜’“‘Ž•””’™’”•œ‰~“–”””•”“™“–Œ”ˆ˜Š•Œ“ €Š‘š“Ÿ”’••“—˜˜“•Ÿ’Ÿ“‘ŽŽ•–•”–™˜‘•˜–““”–••”—ŽŠ•“‘–•–—”“”•Ž–‰’•”Ž–¢œž”–•”ŒŽ”ˆ”•˜™’‘••“’”—’—Ž•‘”’•’•¢™””•””¢‘’“”™š””ŠŒ•Œ–—–“Š™‹Œ““–—•‘”””–›‘–”–—’•‡•–“–””˜”‘™••’“••”œ“•”–—™““““—“‘••’‘”“†‘”““””““••œ–“”–”•“˜•”™•”“‘––“–˜•””“›•’•”•“”“”••–“˜¡“™˜”“–”•—–•”‘‘•˜™–Ž”“˜“““™’•—’Œ––”“‘““€•–””–”“•–˜’”––“””•“•Ž”’“—”—““””“““““–‘”–•“˜’“”””””’•‘•™Ž”’’•““’˜•’‘•““““•”••Ž’“”“”’‰”““™•“’™”“’—’•‹””–”–”™”•˜–—”–œ˜”—™˜˜––”Š––š••“—•”–•—š”™›““’––•”——”™“š–—’“’–••–™”š“”–”••••“–™–Œ“˜”““—–•”˜”•—Žœ—“”“—–“”–””•—“Ÿ””“”ž”•“”’–’”‰•“”•“—“––“—•–•›–š‘’•™™’‘—“““”—”™•–‘“•“’–•–“–’™˜–”—•——›”•––™““–‘–—›“˜”—‘—”œ’•‘”’”’––“”›“––”˜“—•“’˜”–“——•–”–’–’•“’–“”•˜•—••”’’“”•–”–”–”•Ž˜””““˜’“”“”““““‘“”¡’”˜““—ž”“™““’˜’•”““”“‘””•”“𔓗”–”“’””’“’˜”“•š’“‘““““•“””™•””–––“™–š’“”””’’”’—”‘•“¦––‰“–””“””Ž’“”““““Ž““•Œ•’’’““““““•“–™‘˜”””’–‘•““”“’—””““—“•‘“”“”“™“•‘”’š“•”“Œ–•’““““““Š–—”“”““”Ž“Ÿ‘•”•—‘™”’‘”’““”“•—˜—”˜˜“‘ ““””—“––“”“—•˜’–”””—”˜”‘–’’“Ž”“”•–“”—“–˜——›“””•””™•Š—–’”Ž—“’•‘•””—•‘””’‘’•–•–œ••“•œ“”’—˜‘”’••—ˆ•–‘–’–•œ”‘‘’’•–˜”–”–”‹•–—–”’’’˜’––•——••”šœ”–™””••—–”˜•ž””–””˜–““˜Ž“”“”“”•”–“”“–‘•‘•—’––•‘••˜”˜“•—› •—Œ“””“••™“‘””–”“—–“••”“’–—‘’’–•’”–•Ž”—“™—“•–š“”•“”“••“““–Ž“Ÿ””““’”“’“—“™”›“‘“˜’“‡—””“‘¢‘““““““˜“’””’–•““–™“™““’–””“““–•”“˜”™”•““““”“›“’”“Ž””‘Ž“”›—’•“”’˜“”—“”“Š–”–’š“•š•’““”–””“”““•““”’Ÿš”’”“““”“”“““——”“–•’‚‘Ÿ““““›““”š—’”““““”‘”—–¥“’–“””’–””•š“““™’“–”““•–““”—“›˜“”“’•–•‘—”‘˜““˜“‘—“‘”“Œ’““’”“’Œ“”’–—–••› –•••œ˜›•‹š””’––•”˜–›—“‘”–—”›™–••–—˜•¢˜—•™™™•š––’›—–’—•––›™“”•”–•••–“–•–•‘œ—™Œ”––š™˜”•••—˜–™˜œ“–‰‘“—••——•Ÿ••›™”““–•–••––œ•Œ•””––•”–•’–’˜’”–Žš›’˜•••—Œ–—–•‹˜–•–—••”•••–••–“˜–”š“œ–•–˜•–——•–––••’”š—ž“•••‘˜š•–••™–•–•–—‘“›Ž–“’“–˜šž“˜š–•–“¡¤•™’••”””“”–™’Ž•“”–”™”• ’˜–•’“”””••“”””’”“‘’’•›–•˜“”–“–••Ÿ–––”–—“””Œ”“””’•”•”’”•–•‚“••™••‹“Ž•”–vš’”›—”š•“••–””˜“–”••”–•’”œ—•“–”•–•—’•‘œ”•“•——––’““•”•“…”’•”’’”•“”–’‹”“”–“•”š“”’—”’”’”••“••‘“›”•••–•”””’˜””•“™’–‘–‹••”’””‰””“—˜–”›™–’’’—”™”””—“™˜–—•–˜••——š—‘˜š”—•“˜—”•—–“—˜‹˜”–—–•’˜––•‘™”š–•š—–ž—”•™•˜—––••–––—˜ —”š––•”•‘—–š’˜•’–™†˜”•—“—˜”–•–“—ž–’•—›•œ—”™‘””—–˜˜•‘¤—”—–’––•™’”™”–—•”––—–’‘“•—–™œ™—“˜–•–˜•—•—•”˜˜–™›•”˜–“—‘•˜–——•”›••–™•–•˜š—”•™••—’—–™–—šœ‹••”‘“””••—«˜•˜ž—“•–›—˜—”™—–™—˜•˜˜œ• ”—” ••””•™•𔑒–“˜”“–™–ž”••Œ˜“–••–––—”Ÿ•”’–••¢–—•”–’”•—•”’•–—ž‰“Ž••”•””˜•˜—•“˜—“–•šš”•••—–˜•––š’—•–‹™–“•¢™•˜”–“£“™ˆ“•“––‘–•‘—¦™””’•••“•”š–Ž™–”Œ–“‘–†•––•••™–”’––——•‘•”–”“˜“™˜•’Ž”––‘“›•””••••—••˜ž”–𙕖›‡”“””•“›˜ž˜‘•’”••”“—’•œ¢˜•”Ž•’’™‘š•”•‘••š–“”•’žœ—’–—™Œ”™”’•’™•“•••›”“–••–—•š“™˜“š“™•˜–—˜ ”•“™•œ–œ“–––“ž—”•”””–•”—“œ•–”•Ž–›–‘”Ÿ–”š•“•••“•’š––““˜‘š‹‘•”–œ™““‘’–––•——–’–’•“”’••–‘–”—–˜—–•ˆ•–•‰Ÿ•›”–•–Œ–”––•™˜“—“•–’–”˜Œ—š–™““•”“””–•–•–’”•Ž–‡”––‘––™™”’”Š”–“–– ›”–ž•–”““›—––™˜–š””–”–•““““™–’••’–‘•“–Š’•’’”‘”””‘”‡‘””–”™˜–˜—‘™•“‘’•‘’––œ—‘˜”•’’’—•””—•™Ž–§–“”””˜•”“”–“”’£“’‘”•–’›”‘“•–—‘“•‘’‘—––˜’’›“‰––—‘–””“•˜—–˜”•—’”’—–—“—–”—–Ž™‘š•–˜Žž‘•šš–“•’—•‘‘’““’“’’‘‹‘‘’™•–““‘ “‘‹™•™”•”š‘Ž“•ˆ˜•އ–•“™’•”Œ“’”—”™“˜’’’“˜Œ—‘•–œ”—”‘‘Žž‘’••”y• —”””•š”›–˜˜”””•‘’–”Œ“•”•“’”•–•–•”“”Ÿ——•—––•Ÿ—•“–””‘˜”””ž—“••‘‘–”‘•”––”•œ”“™–––𔕒“„”–Ž“••£’“Ÿ‘•˜•–’™“•••™š—•”•—––•’”•“••˜••˜’Œ“•’—•”–••••š—“˜”‘•‘“›”––”’•“–”˜””•“‘““—•Ž˜–—””“˜’’“—••••–•”ž˜‘•”˜”–•’‹”“Œ”–•—“•šœ””‘’•“’”“•–›••š›˜•™š›’•˜”•ޓ𓒡™“““‘—›œ“–”–”™”˜”˜š”’™œ”“‘˜”“““““›˜•—™’”™š””—–“—•””–˜“Ÿ“˜™•““Ÿ™””—•™“—•”™—’•˜˜—“‘™Šš‘ž“™“Ž’”–™——““˜• ’’—–œ˜“šž‘••—““““Ÿ““œ• –’’—“““Ž“–š“”˜”™’“–™Ž™šœ”“““’““—““’£”–‘““‘––š•š–“••”•–‘™›™–“”“—•“”˜“”“š““š •‘—•“’–˜™›”™“—”“”˜’”—’—š–“”—“––š–™•’””•˜šš•˜‘“–“——šš”—˜–Ž›”™“••–—–”™—•”™œ™”•”••““’•™“”““•’”–••™œ•”“—””’“—œ„•”–”‹””–—”–™”—™–˜—•™™‡“’”–ž“š…•“•—•–“ˆ“–›™’”–›•’”“—–‘””••—”••˜’—”“Ÿ–•”‘“•œ“—›˜•š”’•‘’–“”•œ˜“•””¡•”“•š•“•˜šŸž”•“”–›˜™˜””•–•–‘ž}””˜–•“–˜”œ™›“•”–—œ˜š“˜‘“–›•”‘™™’• ”ˆ–••›˜™ •––’––“–”‘””””“‘–—’‘“•–•›””“”˜–ž–”Š’“—•””Ž’–“˜’–›‘˜•””“––‘“’𔓔’’”–”—˜“–¢”“”–“”–‘™‘–•‘‘–—•’—”“£—œ”‘’–˜•‹•–“–‘’—’”¡™ˆ˜•’‘”•“œ€•’–—•”˜’••”•˜–•“–““•˜•˜™–‘‘“‘‘˜“”–•”••—”–—•—”“•“’”–—”–“”“•“™“—–“–”•–Œ•”’•“•—””•‘—––‘š“’˜”“œ•••––š›—““–˜’—–’•™’‰’–™•’‘–‘’•••–””‘”•Ž“•’•“•‘”—’˜š’Ž•–”’‘•••”–’‘’‘””’›•”‘”—™–•’’–’•’“—“”Œ•ˆ’“”•””•—‘–“‘”‘•’‘“””ž˜•”“š˜”“‘š“•’–Š“’“‘š–’”•—“‘—‘””••–•’ž•”’–‘–•”“””–“Ž’’Ÿ•“‘œ¡Ž’•”•–“’•‘••’Ž—˜–‘–“’“’’’•™”—””’•‹’¡”•–’˜”‘“–Ž••–œ”’‘•–“‘˜•’’”‘–’–’˜—”˜”•”•”••‘’‘‘™š–•“”˜””•—“•”—•“’–™——–“–“——“•Ž—–””‘””“”–•’•’”“”–”“•—””—”’™”““”˜–”“›‘–”œ””“”””••“““‘¡”˜”–”‘™••• ”’“™—’‘“š“š‘™•–˜”•Œ‘—Š–—–”𔓖“–’””–”“’“““””™‘—““”“•“ˆ”—”““”™’”‘–”••”–”’”“’˜š˜™’•˜“”“’“ž—™”š“•“•––™––”“’˜•”‘‘”–›Œ”“”œ“”‘““«‘’–—””™—“——“••˜–•‘”‘𔔔𖓒‘•˜Œ•“–“˜’––”’‘••””‘’”•‹–“–•Œ—–——•Ž–•Ž”•”–””—––”–—ŒŽ•‘–—–“•–ŽŽ––”””’–•••—Ž‘•‹™‰•˜’‘”•“–•—‘ž•—”‡–•“‰•’—–’•–“Œ–‰”—••–—••™–š–••’•–•”––”ˆ‹‘‘•’‹˜Š™••”•‘‘““–•–—–“Œ•–‘‘“”“–™Š”—”’‰Ž‘“”””‘•—†•”Žˆ••Œ‰•“” ˜•—’•”‘–¡•—““”™–”–’˜–Ÿ”•˜‘’’“•“›•’Œ”–š““’‘ž“”˜‘œ“˜š•ž–””Ž—””—’–“‘š”’•–•“™™•”“”’™”“”‘”›™“–™‘•Œ”‘š’••’•˜•““™••“—”“—”•Ž˜Ž˜‡’Šœ––¢•—–”––——“ŽŽ‡‘–’“”‘’”’–––•”—’––œ”•–›¶š’•›•””’•”˜”–•—˜š”•™‘ ’Ÿ’”“’ž””–”ž••”“–“‘”•˜œ—Ÿ––Ž”“‰™›•—œ•““””•Ž›“’“Ÿ–•”€”Š›‹”•”›‘•Ÿ˜‘”’—’—””‘š˜žŒ“•–™‘–Œ™‘š™š”“—–”““”’–”•“›˜———’‘•‘’”™–”“•–”––‘—”‘––“›–’”–™­•”•“˜•’Ž‹—–™˜“˜””“—•”“’“¡–Ž…”Ž•••™’˜ –“•™¦•˜‹—••–•”œ•š—––••œ˜•–‘••–—––Œš”•”Ž–••–•“”–“““‘–’“Ÿ³–’•••’–Ž–•”ž“Ž”’•“’Ž”——›š•“‘Œ”“—’•“–’›•‡“”’•‘•––Ž˜•Ž™••‘‹’‘˜Œ”–—–•Œ“’‘˜—–œ™––Š”–‘­Œ”•“”•”‘–‹“•“’”–™‹–“”Ž’•”•“˜•œ˜“•Œ‹—•••–‘™“’™‘””˜—”˜–” ””’––•”’“”–•¦•“•”“–••“•–š—Ž˜•”””“–”˜•”‘’“™‹“–”›’”¡•“”••’‘™”–””Œ•––Ž’““–”•“–•ˆ•—•—•’”•”’˜‘”–––•‘‹•”••”Ž”“”“”‘—’”‹––•“”“˜žˆ›‘’–•—•”–”¤”••–•‰“”’‹Ÿ’–”–š‰Š“”•~––•”“•™”š””•¢’˜••™˜¢—“””‘––•–˜•“““™™–”“‘—”•–”–’œ•¤•“–•‹•”••”•”–”•’•œ›””–š”•˜—”‘•™—‘•–“•–•””“•“”œ“•••——‘›”–‘˜”’•—–”𔑗𗖑•Ž’’˜“•–™—•”’––”••—•–~‰”’”–••–“—”‹–™œ”“•”Š”ž’œ“••”—ˆ””•”””‘•“Œ–’”––™“””•——Ž™••”–•”•Ž•¨”•žŽ–•’„“Š’–•••‘”‘Ž•–”Œ”“–˜™’–——š•”›™šœ””œ“Š™”›—“””“–”’Œ—‘š’˜“”’’’“–—•”“—›Ÿ”””””“š“ ––’“““—’“––””™ž”–“œ—˜““–ž“–“”˜”•“ž–—™“‘˜—Ÿ“––ž›•™•’“”Œ•š˜”‘ž’“˜•’’–“‰ž–”“––¡¢““””—”“˜”“™””—””“”’”š“—–œ›—”šœ“ˆ’““””˜ž”›””™™•—”—””ž’––™›“‘–•”™—’’”““””™˜„“”’”“”Ÿ›”šœŽ’””—˜¡•œ˜“¢“““œ“•ž—Œˆ™™“š•“˜–––•“š”œŽ›“—œ”–’“–—˜””“˜™—”••””›’•’˜–”””˜ž”““““–‘•˜—””““˜“šš“–œ“’˜˜—˜”™š›””””—”•“—•”’›–”•’œ—™”Ÿ—¡¢’š“””’Ÿ”™””žž””™ “œ”—’”—•”–’”’”“ž““˜—‘›’‘š“””“””—“š”—š“˜•”Ÿ’”“”””š ”š“”“‘œ“˜•–𔓗•™”‘“’•“¡”˜š“”“š‘””–––”™—”“™—”––—““••›™š”Œ•”•˜””žœ•œšš”—‘”“˜““”˜›“–Œ“Ž•“›–“”“””’˜“–••’š””“’’”“—”’””•”Ÿ””““““Œ•–—”••”–”–“–”“™”•‘”•™””“‘‘“”š””—””””“Ž™”—“•••“‘––”“”™”•””••˜›“™‘‘’—–š–—“”’’•˜•“•““š““š–¢•“—“”””““•“˜‘›”™”’–”‘–”””“•š•™“”“‘“‘”˜”–—•’˜’–“”•“’š–’•‘““”—–“—˜•“‘‘““’””’›–”•–‘“•“”“’“•–”•–‹“‘”“™–””–”“•–“•œ•œ—””“““œ•’œ—‘”””“Ž””™“z›ž–”˜˜œ•–”•”””“‹—‘’—”””•”–““›‘“𔕓“”•™™••““”–““’”˜•””“š›•Š“‚”“ž–•–’”’–•–””Ž’™Œ—“‰•Ž““”’™—˜“œ–”••—”–œŒ§–”’™––•”•“œ”™š“••—–œŸŽ“•••š”’•”“š“–““”“•˜›™˜—–˜•’““”’Ÿ™˜‹•“•‘––˜Ž”“••—”š““–™“•’š’•‘’•““”“•““Œ•‘–—–ŒŽ‘–˜’“œ’”“ž“—˜Ž’—““““›‘š“’—’•–”•“’’—•’”“’”“•““““““œ“œ•’“’—š’”–“”‰“”““’““—–—”““–“—”“““’“’•”˜•–Š’•“”–Žœ’“•“›””š“˜“’“ ˜‘—–”–—–“’”šœ‘””““““—““—“–“”–“““”“”•“—”£“™ž—•’•””“—’“•““—”•””“”—Œ–”•“•›“”—’““œ“’“—”“’–‘”“—‘““’Ž“”¢“””Ž“’–—“Ž•““–“’‘‘’”’“‘™’“™›–—”™”“—•™’”Ž–••”Ž‘Œ•Ÿ“–”“•”‘’ž‹””‘”–“‘–––••—‰•–•“•””“›–”“”•“—••Ž“”—‘‹–•”•––•”“‘“”–’‘›”–“•¤Ÿ•“”’”Дޑ‘—œ•”œ‘˜•ž“š–”•”Ž•”¢”–––’—–”“•“•–••”–“–•˜‘—•”—“–˜••”—••••”Œ–‘‘–‘—•–—•—‘–”£“”“Ž’œ”‘¢••—“•”„“™”–“ž••ˆ”–—••–”—“’”“””œ”—‘•“•“‹–””ª“•–”ž–••“”—“¥”–—”“”“™”˜–š™”››•–“–”••“¥“—•“——𔓔””˜š”š’“—š”ž‘”––”“—˜”™”˜–••™™••”””Ž””“‘“™›”™“”“”•–£™”–•’•”•’—“™˜›•Ž‘¤Ÿ•—•™Œ‹”“•™™–ž–‹•–”“™””•–š••“œ”””’””—”šžœ’—”𕔥—’••“”—’”œ”“—“œ”Ÿ”’’—–’˜–˜”“”‘œœ –œ˜’“”–””™š˜”“”•”˜”—˜””’”š’•™˜–•—““–”“›’“šœ—–ŠŽ•œ–”–•™”““—‘“–•”“’’š•”–•‘‘•’–’˜’——‘z“—“’™—“”“–”––”Ž–“”••™“’•–’“’“–•“Ž”—•“•”“”š’•““—“““”“˜”’‘‹—’Ž“–•‹“‘’”•£“‘‘”’’“‹–—•’—˜š”•‘’““†¥“‘“’›•”™“’“”˜“’•–““•”™‘““Š•˜‘”¯–’““’“•Ž“”–““““”‘””‹””•˜›“–”“’‘•“˜–”’’‘““—•’“”™•‘•’—““•””“—•”’–”•u—–“““”š™›“•’›ž”“‘—“•›•“”“–›˜””’–’““”——–—••‘”•’–˜–Ÿ˜—–’••””–’—”’‘”•’”••”–“ž””’”˜–‘“”––—“–˜”””••””’’‘–‘˜˜’–‘—––•˜•‘•›–“’“”“–™–““‘•›‘‘‹š“•“ž–••Ž–•••“—–‘–›”“”‘•––——””–›•’•—˜—‹˜–“•”–’’•••–—”“‘•“’–‘•’–“”“˜˜“–”“–’––—‘••–™™––•”˜’”””š‘’•‘’–𔕓‘“‘•Ž“–””—–•’–’•‘‰”’““”“’‘”—”•””—‘”•”–š—”˜“™–’““’““‘““—”“”””•™”š’’“‘–‘“—•”š””“——“’“‘™•”“›•š””‘““”’“™–”—‘˜˜“’›žž”““˜”“œ”œ“”Ž–”Œ•—›”’‘œ™••”“–“”’“’”“š““‘Ž“”’‘“”““““”™“˜œ••‘”Ÿ–™Ž—“”•““›“ž“”‘ž–“˜”•œ•˜–‘’””—’“•–”—’š“““–’””–””—““›£’š”œ•””˜”—™”—”‘—“•—•‘ –•ž™”•‘‘”™‘—””“”“”—–”—””—˜—˜˜”‘˜–”’––•›”Š™–“–Ÿ””••”•””—™”—–š”š–’•””“’™•”˜—›”š“•”œ™—‘––•”—–•™ž”•— ”•“’•’˜˜—“”–˜•–—˜ž•—”œ–—”šŽ“–• ˜š•£“š“”””“˜œŸ——”—“•”š•”–”•–’–‹”’’‘”›“””””“–—–“”•š˜’”“•˜—””™•”™–—˜™”˜œ”‘“••“˜“˜–§˜•Ÿ˜””•‘—–”—–“–™•˜•š”Ž˜••“–•– —“”˜’—“–•˜—”›””—’š—®”‰’“–•”–’—•ž™“•“–—’–•“Ž‘•’•””“”“•””™—”‘–”š““•™•›’””“˜””“–•—•’•™—•Œ••“”“–”›”””˜–•Ž“¥“–‰“‹’–•–••’—›’•”œš•—Š•’“–“•“—•“Ž•’•’„•“–’“–”•”’“•“”–“’•™”–“–’”£š˜”“’”œŽ“””“£”•––”“™“—š‘“‘”‘•“–˜‘’—œš–’•“—’”—•Œ–“™—“”š•–Ž’–”˜“˜•””¢‘‘“–”——•–”“š““”—”–‘”•”•“•™“”—•••”‘•œ™”‘•–—““•”’š”’’ž••Ÿ–“”–“–•••–—•–˜’•“”’–””‘•–“”œ’”””••˜•” ””“’“’”””“••”‘Œ–‘—–Œ”’‰””‘—””š–‘—””’’—””‘‘”—•••–˜”•’•—‘–”–•””““’–•““”’–’”“š––””•”——™–•”“‘—™•”’’’›•˜‘•”—”•”“”––“””••–˜“•’”–”••”‘¢••‘—’—˜‘”•••“•‘•’’’•™•—•˜—•‘—–••œ”—˜‘•™”—–•“——•™–—–••“–—•’—”œ’—•••”“““”“”–•“’—––™š•’””“£—•”–•—”•’”–”™—£”’——“–•“–˜•–𣙓”• —¢™—™•”—¢—™“”™••§˜–œ•œ›”Ž™›—”˜–˜•‰—•š””‘”““–”˜–‘””“™”˜—”——–—‹”˜•–¤’•“’•”•–—“”“–•˜–••—•“›’““”’š–˜œ˜™•˜•–’””“••™”š—”˜˜””›ž”Ž“•–“”˜“•˜——“—’••””’•™–•–‘–“•–’““ˆ˜—––•”›š““–•–””’•—–“™’”––‘••–Ž‘–”–Ž‘˜”””––‘Ž”–’•“““›”˜˜–’—•”““š“•‹’–””˜’•”–• •—–‘”“••—””“™”›“±•’”•’”•Ÿ•”–“”§™—š”™•¦“Œ’”•Ž“‘™™€•”••Š–”Ž˜”“”“•”••”“•’”’•‘”“¡––•””•”—–’–”’™“—˜•”•–™”•’›”•”“–›–•‘•••–“•—–™––šš”–Ž•”œ™–“Ž•“’•©–•––—›‘‘•””‡¢“•“–”™Œ––”–’•›œ””””£œ“–‘••™”•“™“•Ÿ”œ—”“Ÿ—œ”””••˜™”‘ “”›š’”¢•••“”“ž”••𔖔ޔ˜•ƒ“””•”““••–•“œ”–Ž‘••–•”•š“’š™“”’˜”“•‡’•“““˜›‘›Š™––•• •”¡Œ“––“¢““””“•“””“”Š•‘””œ‘“”’”˜•›•””š–›•“‘š’›–—•’’””’Ÿ•˜Ž”““‘”••™‘””’‘”•–Š“‘œ™“”•“—”–’™•‘“”“•”˜˜™˜”Œ›•–Ÿ˜œ“•”›’˜š•’’‘’’“’‘”œ’–˜”’‘’’‘‘•“’•‘“’’”“’‘’“š“““‘“”•’Œž’Ÿ”‘Ž”“™’˜“’˜–š’““’•““’‘’˜‘–’–‘”’•š›™–“’‘’“Œ’˜‘’˜˜“”—˜”“•–“˜—–“”–”’’’’’“’’“‘“’““’’’’“““›’”‘™•‘“›œ˜˜’’’“””’”’”‘“𛕕“•“•‘—””’”š’’—’œ“–Ž“’“’’›”““——“’–’™Ž““’–’“™•”Ž“““’““’•š˜˜’‘’’’””—‘““•—ŽŽ–›˜”––”–‘–•ž““’—•‘–“˜Ÿ“––”‘”•˜›•••••”•–——–“••–––“™–——•—“•˜ž”—˜•˜““––˜•–•‰—”–‘•˜’˜”•”‹˜•“•‰–•”–˜’–••˜—˜—œ—“”›—–š•–——”–”–š••™›Ž’•˜”––•––––ž—‘‘”—™™‘••—•“••˜–”•— •“””’›™‘•–˜–Œ” –‘’š••–Ž—”œš‘“•—”••œž– —˜–•“˜‘“•’—˜•”””––›–—”˜ž”•š•“‘›—”™••—•™”•”•”š˜•–••‘’”•˜•——“–•‘–™–•œ”’••—”••™“—••’•“—•š’••••–”˜–š•——•–˜•”•š••—–••“”•––“’•“—•‡”•–•™••”‘–•™“•““œ‘•”–•“•˜“”—™”“š–•””•—•–—–˜–•”—––•”–””•—–––•“’“š˜›••••‘‘•–•”“˜•‘”–”’•–˜——–•’••‘›–š•˜’””–“••š–œ”•”—–””œ•”“••“–•—“–•’••“‘”•—” ”“’–›‘••“•“—•™•”˜”–“•–—›”——–‘’”“”—–‡””™”š””š•‹šž”“–˜””””””Ÿ”•›•™•”–Ž–”•“—˜—•——•™“™•’““š ••–•’”——›˜ ˜“•–’™Ÿ”™•‘’–•”–“”’”•••––“‰”•˜—˜•ž’’“—”—˜’•š“˜”•–“”‘‘”›š•”””“–’–™“¤š—Ž•˜˜“Ÿ““””–“–””••š’”™˜—•š˜”“•—“’’—˜‹”•”˜•”‘–¥–“– ”“—–•”š•””—–•—š“™‘“•••–“›••Ÿ˜““‘”“—˜“”””–Дޒ𓓓•””“‹–”“¨—”–‘•Ž‹•ž‘‹”•—š””“•••™™••†¢”–•‘”•’–‘•Œ–•’Ÿ“”””•‘••”‹”—“”‘”’Ÿ•’•¡–••“””—Ÿ•˜“’˜•›’–‹–™”Œ“”•Š“’‹ˆ••••••”‘š–”•—””””–•‘•“””‘–•¦‰••”•••—•”Œ”•“––•”“–“‡•¢’••—£‡—•••Œ••Š”•’‘••–‘”•”’”•“–Œ˜”Ž”®“””“•“–™Ÿ”•Ž‘••“˜Š–“•”™”–•–”•““š›—˜’’“•”™”‘•Ž‘ž”––’•“”“•’–––“”•’’Ÿ”–——‘œ—’‘–›•‘”’•”˜—˜”‘–“”•–”“•™”•‘”“’“‹‘‘›“—’–“—••“‘–˜›–™“–‘¡“—“šœ””“•”˜•’˜––““œ“••‘–••’˜–—•š”’’“™œ—––”—’”‘•‘—””••‘”š’”’•””––‘“’’—’Ž“•—“””‹‘•”›••“Œ––™”–‘‘”—–‘•—’•Ž’“‘•“›””•—’“•’”Ž –””””™–’””•••”•™™”–›‘—š•–”˜”•’“—’–”••”–”””””“–˜—“–“•”’‘•›’”“š–“‘”•™•””𔑕–”•“–“—””–š•’—–‘““–“’•‘’™“›–”––”’”–š—Ÿ’“••’‘––•’—”““‘”’””•”–—’˜“’”–•””——–™”–˜“‘“˜˜—¤•š•–•”•—”—““˜–“‘”“”––•š••“–”–”••–—’œ‘Ž•”–”““˜•Œ•”—–“—™“’“Ž“•“ž•–’””“”•–”–’˜˜œ—•—•“˜’••”–’™“”•—•—•—•’‘••–”šŒ—š•”˜–•“””—’™“¡‹–”—•“–••–•—”—š•”—’ –œ’—š’–•”Ž–Š•‘”’•—”—••—••”––“’”‘“—Ž•“•‡”‘”–”•—™–›’–š—“––“’‚–– ——‹”’”–•—”—–•–•••–”˜•––”•–”–•—’“••’‘šŽ”–”••”’–•“””˜”•‘”Œ–’—‘••—’š–‘•’˜•’••–•”••Œ•–˜¢•’š•—”’˜’‘“–’˜—”’”•’–™–Ž––—•”—‘™•˜˜”–”–•‘ž’—’”•––—•–™’‘Ž•’”‘˜™–•”•••—•–•—–”™—“’—–”’–•——”—““••••–•••‘–––•’–”•ޕޓ—–’™–”–”•–“–••—–’Ž“–””’£”–œ“•““˜•˜–—’–––’–•Ž—–—––”–”–˜•–Ž–—¡“”Ÿ–˜Ž—Œž”•”•–Ž“——•‘–““••—‘”“’’•”˜••“—˜”‹•–”•“•–”“••”“•–›––‘Ž’•–“˜—’’•““–•‰”—Ž‹”“””•–•”–˜˜“”— •••”ž’—‘œ”—•••”•š••˜“š——”——–‡”””””š•“–•––••ž”š˜˜’–›–––˜™–•”š•–š––•˜”š–˜š––––—™›“”‘•–—“Ž’–”—’”—”•”™”™–š–”™’–‘“’—“”•••œ›…˜–˜”––“™–“š”•˜–––••”™•”––—“‘™””“˜™”š˜••”››˜•–“‘š™šœ–”˜š™””“”–˜”—˜’‘¡˜”–”˜–›•““—§˜–š—•–”Ž•”˜”–•–•”——˜– ”•˜••›ž˜–ž˜•”“‘™•—”•‘™˜™˜•–šš˜’—‘–•“‘–‘–Œ•œ–”“——š‘‘–—™•••—”–•““”—•”Ž•“•“‘™•••“™“••‘›––’”––˜—”“•–œ•˜”—“™‘’‘’“•–•‹Œ•“’’™–“˜–—–“•‘—”š•…–•–“™’“‘“’“––••”’••• ‘œ”•’–—•’—•™•’‘•›”””–£˜——•––š™’”•›”“š”””—“–••“›”—˜‘”‘’”•—••˜•—Ž —–š—•”’š”ˆ“˜–•–’œ“––——–‘–•–“Œ—••“–’‚™”““–•‘™•‘–™›§” “”–•—–”“–”•••”“—˜’•Ž—™•––•’“–””“”ž–œ”—™”—”•–“—•–”•”–“”™“”˜œ•‘•—–••–—–’••–’š˜—¢‘–•”•–•—¯–š—“–•˜š™˜”“•˜œ•’”‘™—•––•—•“–”“¢–˜“—•”™•–˜““’˜›–•š™™•––•”””œ™––””—’–™“•˜™˜•”œ™–•œ–•›•–”˜”—”˜”––“’—“˜––““••š–•˜—ž•”¡•“Ž’”˜”˜™”™–•—‘ž–•––—•“—˜“•š•’“‘œ•““”– —•Œ›™“˜”Ž•”–“•”Š•Ÿ•–“—––•”•–š–”š––š‘“•™––––•“š‘’—•“Š’•””žž•Š“””•””Ž’ ‘–—§”•–••¢”•“•Š”’””“˜—š˜––—’•‘‘›–•”””˜œ‘˜œŽ••”’–•˜™˜’”“—–”•–•“›•–—Š•”›–œ‹”••—”–—œ”–•’–š•˜—”–•›“••š’“”–’—¤œ‘”••–‹••™˜—”–˜—••””‘š‘“•”—œœ—“•ž•“”““””ššœ‘•ŽŠ“•“’˜’œ“”•”’•’‘“••”’“”––•š•”“•–•œ•“—•”•”•—’””•””•’–”“•––—™’‘™–Ž˜”–—‘—••’š•––“˜“”•••••“”–’”””””••–›—“”““”••””–”‘•™›™Ž–“•’”••–“–’—”’•’”“‘••‘”“™‘•’”••”–•–••”Œ˜•“”‘”“˜““••“™”–‘•”’–“˜•”•”–“—–“••“˜•’–”˜•˜“–”••‘““—•—”•’—•”’—“”™––”’”“”˜••‘•–••”“–˜“‘”“Œ’”’‘™–•“•‘’—–“””–—Ž“––œ•”Ž—•“–¨Ž”––“Ž•–•••‘•‘•”’Ž””—‘•”Ÿ–“Ž•”“–•“’”—”–†–•••Ž••–‘”–’š–•“”•”’‘‘‘”“’“””œ•’•–“’—‘Š–•“•”‘•—“Ž“•—”•–—•’”–‘Ÿ––”˜‰Œ“••••“•”Ž‘–“”’––‰ŽŽ“—•“•”Ž”’‹‘–•–Œ—•Œ”“—“–”“—”˜”—”’–—‘“”””•‘•–’–”™¤“–”–””“•”’–”••–••œ’ˆ•™Žšš––”š–‘•–®“—””••”•”––—”—““›•”–•›”Ž’—š›”–•Ž•Œ•š•”•— •”•”Ž–”•“•ž”•’™“”•”‘—Ž”•–”œ•”™‰•™Ž–™‹——”•Œ—–‘“”•”•›–”šŽ“•“ž•”•“–•”•‘š—“‹•’••”–’”•”–Š•”–”›”””•–“”“œ›˜‘•”‘””ˆ™Šžš“„•”–‹••Š™•“••”–™‘”“–”•“™™’Ž’”‘—–•”’š™Ÿ•”›–•”™šž—”““–™•“œ˜”“““Ÿ•”“šœœœ“˜“–“˜š“™••”““œž””””“—•”–ž•“›•“š˜“˜”““œ›””¡›“”‘–“•£““•”””Ÿ”š”™••›‘“˜š‰“•”•”•Ž’œšš•—“‘–•˜”›”Š›•–““—“••”˜“•““ž““¢˜™”’”›“”””“”“•——’”™—”—“˜“””“›””–“”™””•”•™—˜˜Ÿ”“”“—˜–•œ™“““”ž”“”œ„”“’’”“™™“˜ –””“•”œ‘—›”š–”“œ”“”Ÿ™š’•“™™‘“›—••˜””ž“•“¦“”””““˜’Ž““˜‘¡”‘“˜”‘“‘–’”““–˜””“““•“““–”““””“““Ž–“”œŒ”Œ”‘“Ž““’š”—””¡””“”™“”‘–‘’”“Œˆ¯””Š“•”‘”—™™˜“ž’—ˆ”•›Œ’Œ””ŒŠ•˜¤{“”““’““˜š’’–’š“”””“’’““‘–”—’˜•‘“””“”—”˜“”œ‘““˜”•™•’›‘“š—“”Œ–”ª˜’“””‹”“’”“““Ž”“šš””““Ž“”‡•““‘’•—”’˜Ž“ˆ˜”““‘”““‚””‹”•‘‘“›–””““”’”•˜’›”—”’‘–”””•–’”ž“““””𙔢•Œ˜•“•””•œ“’˜—”–”œ£“•“™‘ƒ”™•“–”–“›”Ž¡”–†—”–”Š‘˜’—”›”—“’“˜– ‘”ŠŽš–”—Ž‹Š””›””””••”—“—•“•–”””“””“”˜–œ’•”“—•“𔓓”’‘”””–œ“”œ””•—“—”˜”•’›ž™“š‘““”Ÿ””›™¨“”“˜“””‹•“–‡’”“œ‘”œ‘••…•“•‘•“›’’Œ˜”™’•”š—›“”¤“”‘–™ŽŒ– ”—•–—š–™™Œœ“–––““™—’’™••™‘’”•”•” –šš–•”’–—”𔓔’˜”—•›š”•™’˜“•”–•••‘”•”—••Ž–”—|•”›—••‘—–—“™‘Œ•¯œœ“—‘“””–•ž–ž“–’•— ”–””’”•œ•••––“••’“””™•™™•’š’•””Ž“–•”–˜‘“•––’‘˜•––‘•“— ˜”“•••”–•ž•‰“•’˜–••—–—•Œ˜•™š’‘’•¢•–––•“—–›—•’˜•™™–›’ž”–””˜’œ•”“”““œš““šš”š•š“£”—ž“•œ™”’”™™”“•””Ÿ˜•“Ÿ““œœ”“’“”™•“•œ›”—”˜””¢›’–—•”‹“•”œ“›—“š”—žœ”š—™Ž•˜•¢””œ•—›œ™”“‹”œš“”“•—˜•’—“”™‚””“”–”“œŽ’™•’ž’“”““••””›‹š‹””“™¡•““”——“™””’›“–““”——šœŸ—’š–’•˜˜‰• ™”“”“š“”š–•”œœ’”šš“”“š•“•“šš–”ž•Ž“”””“”˜Ÿ™—š’“ž“˜“šž ¢“ ”•–“’‘ˆ“¡œ”“““Ÿ”—”‘•˜‰˜‘›“š“š’–› ’“—™•””’••˜‘”–—‘’˜•””•Ž““’—š•’•˜—”•”–—™“”““Š”““˜“”˜”™–™›“”•–š–’”“–””“–˜˜”“’’˜—¢•š’’Ÿ’““——” š¡”“”” •“˜“™›”“’‘••’“˜•šœž˜”–•’š—’“““—““••””“—“”•˜”žŸ’”“““–œ˜˜¡””“’—””™œš””–›’–“œ“’™˜••“Œš’š™”’”’•“”’Š–’“•“Ÿ”š™™–•˜““’–’“••’–””””’–˜˜’••”•”–’’•’’—–”‡•”•–••–˜”™–”“••“—™˜”–•˜–‘˜—–—•’”—””•–””“”™–••–—“–‹—¡”•˜–š•“–”˜•—•‘–””š“˜’•Ÿ‘Š–”•”–“—™~–”••––““š–•”•••–“—”’– ˜˜’œ•˜—•–Ž—“•••–•“–•šš““’––˜–‘•—’•“”“•“‘˜Ž–”•”–“”•™’³”–š––‘›”Œ”•”—””’‘–””–”•”•–™œœž™–”“˜–““™—“•”ˆ–”˜–—™•““”˜•š•”——˜””ž“™’–š”’š––•’—˜”•”–•š”™›’”˜˜•–‘•”Ž•““™š“•™›–”•š’“–““““•’”—“’–š˜˜˜–Œ—Ÿ””•–¢•”š’“—˜¡–””“•𕖔𗒔”™“”˜›˜–”–—“••™“”••“—•””“””••š˜‘›–––“œ¡”””“•“—–”›“•’”•“˜™˜™–’”““–Ÿ˜‘˜›Ž”“•™”–˜šˆ“”žš—••›”•–𔕕œ™˜—˜”š””““““𔑖’’–“•˜–™š˜œ”¢“““”“•›•—•––””’–—˜™••”••”—”’••˜•“•–—’”ž‘”“‘•š”–——•—”•”—•‘–“’˜”•“˜™”Ÿ•”–•”•’”˜–”˜‘’’—•Ž“¡”–•””“¡–˜““˜“–š“—’•™Œ‘“•–‘‘“—•”–•——“‘‘›•“’’““”’”•–“—–“”•“‘‘‘’””“”“œ•˜—””–”“—••–”””’’•œ—”–˜••š“’™”•”™””“”ž”–’’•–˜•Ž˜›•”“š“’”—”••™”“’“””’™•˜“”™š‘•𔕒™•”“–‹’Ž—’•“””š”“˜“—ƒš˜œ•—˜’••—“”’“˜š“–•”’“š’˜•“›˜“”–‘“™–’—•Ÿ•“›—”•‘•—™•’œ•’”˜’“ž–š™—•—”—˜œ–“‘•“–”˜•˜””•—“ˆ™Ÿ“š“£›• –—“Œ—‘•””““–—”•˜ •”’–”••’”•–”𕤖˜”¡~‰—–”“’—›–“š’‘—‘‘’‘”™”•™˜•‘“’””–œŒ“–Ž•—“›’“˜œ‘“”‘””–£••›œ”£‘š”–™”›—”š’Ÿ™”˜”™““•‘“œ•”–˜•’““•Ž¡˜”‘Š””“•Œ™—™•””•“’–œ“• —‹••”•’““”””“—”Ž’•”‘’‰”‘•”’˜“š”“˜–”—Š’”””•œ”“•’”†‘”˜™”—–‡™’—–—•œ”‘˜“–—•“›‘¢””–””““–”•”••”˜““Ž•“”––”’”•”–’•——Ÿ‚˜–”“’”˜’“‹•“˜•’““–”‘””—•“˜““–‘•‘Œ”ž““”“•––š““”–•””™’™•–“”•’–”“•—“”””Š„‡’–”‡“–‡“•”•””“–Ž•–“—””••—’‘“‘’––›”•“”•‘–•–”•”’š••—–––—Ž•˜’—•™•••—••Ÿ•—‘“•”˜‘‘”“’Ž™•‘””•—•–˜”••˜”“’’””‘‹“•–“–—••™œ‘•“œ˜”™–•”™•š•“•ˆ‘‘”™“••–‘•–—”—’˜“–˜–””””’•˜‹™™Ÿ–”–”’“”“–•”œ•–•”Œ”Ž”“•”š”–˜””•”•””––Ÿ…“’’–”–•”•–—’••”•••••Ž•”––•‘˜‘‘“—“Ž“•”“•–—“”¡–••›–™“š‘•””–“”–––•–’˜–››“—‘˜’••’–™™—’•“••’••”—•‘“‘‘‘”’‘”’œ–”¢‘”’“˜™•“•œ”•”™“”–“–””˜“•’“‘“”’‘””—–™”˜–”•”š“““š“” —™—“˜’•›“’•˜—‘”™”’••––“’•£’‘–’””•’“’–Ÿ™‘•••ˆ§Ž•—”””‘’”’–•’–›”’“’’”‘““•”’–•‘£™”“••”“˜•¡‘’‘••’“–”“•–“—“•’™“˜™’‘””–•—”™‘’š™˜›—“˜“”’‘’‘–•–’”“œ˜”—”““’”–˜œ“‘”–˜”“˜“•‘“™”™œ›”“Ÿš’””“”””Ž•Šš’”—’“™“”““›””š”—“–’“–œ—•‘”“Š””“Ž“˜””“’”–•“–Žy“”›”˜””’“Ž˜˜—“š–˜“’•“Œ››Ž”“¤“–Œ›““”•““–‘ š““›”“““’”““™•𔓓™Ÿ”“””›–“•””Ž“›“—”–—•›—”™“’“–™“’˜Ž””“‘“”“–€•”•˜“”™”“•‘•”•Ž˜•˜““‹˜“””“”ŒšŽ‘˜”£š””’—˜“œ“” ’‘š–‘š—“•˜•™“”’’™š›’“–•”‘”™”“•œ—Ÿ””“”“—•˜—–š™–’“•™’’‘›–œ’”‘“˜–‘•“Ž’˜—˜¡•—˜“™‹–“—˜—˜›”Ÿ‘Ÿ—”‘’––—•œ—–›“™”’–“—–•šˆ™’”––”—•“˜’”œ–š––—˜”““˜“˜–“žŽ”–““’š•˜™”•”–“—•—–“”–Œ™”˜™“™“”˜“˜””—™™—–›–•™”–”’”—–™””•“—••™¡œ—––™“–””•’•Š“••––Ž‹‹Ž’Ž–‘“š•–Ž’”˜—••“˜•“œ••—’—œ––”–š—‘““”“’“œ“”•–”“”–›––•–•”•”–›––™—•–œ“–••••™“”’”–““–—Ž’–•š“”“•””“–‘•”—–Ž–˜”“—“–••”’––••—“—’‘•š’’–˜“”•‘—“—”—–”‘‡••–•Ÿ••–”‹Ž––•–••””“‘–•–’“‘”“–”™‘”––•Ž’——”•‘—’—™“••˜‘‘–—“‘–••š“œ•’–“•“–•–“”•’‘”–’™–“œ¡“•”–•—˜”–”˜–”••™—••‘•Ž“•”™–—––”š•˜Ÿ£•–£“”’” •™“š˜–›•˜“‘›¢–œ–”•’Ž ””•••œ•›™’“š¢˜“˜•”™“”™š•““Ÿš—’“”‘“–•“š”””˜“•ž”¥‘”™›“›–‡’”“——”’‹”—”¢š—“ “ˆž“™•Ž¢˜—““ ›• †’“””–—”“š•—•‘ž•””“’“‘”’“˜••Œ”‘š““”•›–”ž•”‰“‘›’œ•”“œ–œ“•“¢‘‘’›¥•“šœ“““”˜”•›ž””›”’”•ƒ”œ •””—˜”—™ ”’””•””“›¡‘‘•”–”¡œž–¡”••–“––––••–”•’—–™‘—˜“”—•”•–“•˜‘’–––—•••––˜™”—”•”–•—–•˜–’•”•‘“•–––”™•••“•˜””•–•”—••••“””“–‘—•™”–•”Ž””•”™–•œ™––•••ž—“••˜˜”‘“–”––™–••”—”–•‘–••••”—–™–™–œ–•–”—•—”•••’—”‘–•”’”œ•“••”’‘’˜–––••””—–“’š–•–“••‘” •–““––•˜•••˜“•“””–™™••••”˜””“’•“‘•–“•—–‘“””—””–”‘Š “–”““”¡—˜”Ž™–™•“š“˜“‹ž“‘™•“›•“””““š’”–˜““šŸœ“˜““‘““—˜’•“œ¢’”“™Ž”“”‰”“•š”š”—”ž—”Š‹“•›”¦“—¢” ›‘“˜“”‹•‹•™–”“˜’Ÿ”“””š“”žŠŒ›•“œ”““””“““–’š’”““›–Ÿ”“““™‘“’“““œ““˜”•Ž›—›š”Ž““–Ÿ›–£“””—’”›”“™•“‘𔂙•“”“–“›˜™”©’’“’”“•”••’“”Œ‘”’ ™¢“œ“”“–“–—”‘”–••Ž–“‘“””““—“—“”–––”””•—”Œ“––’”‘“••–Œ’““”••“•“™•’—””“””””••”‘••’’‘——˜’ˆ“–”™–””Š”’—“‹”Ž•”‘”“•𔓓‹“•”ˆ—’•–—””›”““’•“•””’“•‘“”•–”•“‘‘‘‘—•’’“–•Œ›”’’˜–““˜–•Ž“šŽ’“˜‘”’’•““““•˜“‰”•“–“–’’•“™–”’”““‘••—“’”–”•šŒŒ›——ž••Ž˜”‘‹”•Œ–‘–•—•”“””•–—”™š–”—”–”•˜–š”Ž—––•—•”••–š““˜””–˜••”’–•’•˜—’“•ž’––Š••¡””–””“™•Ž™’˜’•–‘–š”Ÿ“”‹––“•”—š‘••”“‰”•”›¤••›‘‘šŒ—”–•–”˜›’’”“•••”•”–’’–—•’““—•”““•••“——”–“‘“’•–”š••’••”–“•›”†”–•“••š•—‘–Š”•—‘––••˜“••””–‘–“›–…‘””Ž’•—Ž‘‰’—˜“’–œ›”•“ž“”–’š’–’””‘‘”‘’˜’˜’‘••‘’‘“š‘–’—•”’—–—“–•‘Ž”˜‘•’‘ˆ”•šŒ’–‘”’”‘Ž¡”—‘™˜—‘””—––•‘–“”’••”’œŠ”“˜”Ž–‘”‘’”“”ˆ—Œ–““¤Ž”•––“˜–•”“”–”–‰…•’•’–––”•–™•’’”“Ÿ•œ˜ˆŒ•Ž––—••““–•—”“Ÿ‘’”’““–Ž–•‘‘‘•š’™–”–••’”‘’•‘‘••——”’’–””’——’‘•—˜”–””Ž™–”——•”§“•’’ƒ’’‘’–‘–’›•““”¢—ˆ–œ™•¢”–•˜–•™–Ž‘˜–•—›Ÿ––”–”–—”˜œ•“—¡Ž– “—’””š–„–•š§•–‹—¤˜”•“”””—“–œ˜š ™”‹—™žŒ–Ž•‘—¢•œ—šŒœ–œ”¬–¥“‘¤›“–‹”™’˜—“–˜••œ‘”—“”𔕕—•’˜•”˜•—“–œž–›‘”””””œ•œ—•™‰•¢•š•’“›‘”–’”•£”§ š‘•“”œ•–žœŽ••“––”™“Ÿ¡”“”—–”–˜––‘••””˜‘žšœ•”—Ž®–•›šŸ˜‰Š”“–“™œ‹”‡“”””““™”–”—œ“’“ޑ𑓕”“˜Œ–““•””‹”˜“—”Žœ”œ›•œ›”•”—‘”““Ž““•‹™–”“‘—“””””•“”™–”””†’¤ž’‡“””•“‹›““š˜Š”š™Ž•‘”••‘’˜“”•““ˆ”“Œ ”””Œ““”“””•”—‹›Ž’“”–”Ÿ›•“”“““”–”•“¤‹”“•“Ž’•Ž’““˜–•’‘”’¨“‘“–•“‘ŽŒ”Š’”˜Ž•¢’”’‘•”™•™’”¢‘••Ž”“¢”—˜š“˜”“˜–Œ›•“–’—–˜–”“”““’™š’•––•”’“’“”™“‘œ“”“’”””“‘‘’““™‘““”’’’‘”“—£•’“’”™“““–’“›•‘‘““‘’“”’“““”’‘›””’“–”™’—’•’”““–“”˜”“’’™•””““˜“”š˜’“•’’—’•’’”“”“–””‘“’””“•’œ‘”‘‹’—“–˜“‘““““““““‘’‘™–™”“”’–’š•““’““”‘““š•”’”““’‘”‘š”˜‘“—™’’™š“ž’““•˜’–˜‘“’’–“•–”’‘“’—š•’‘’’“““”–›““””›’š•’––”“–”𙕗•”••˜•—––—––“–•–“‘”•”•””–“““”•‘›œ•Ž’•“‘•”•–”š”™’•••˜¢•–••”””•••’—”–”–“’ •˜“”˜“›œ–”˜™“–““”›™˜œ’‹˜•”•œ›–‘¡Ÿ”—•“•••’ ”••–•–”•••••’‘Ž•“”Žš™––•–•’’•““•—”••””“—š—–––—‘–“”˜–Š––š”–——˜“‘˜’“”š˜–”“‘•—Ž”‘””‘•”•”•”””“•’””‘‘’”•ž˜–•š•’•šœ–“•––š…•—–•”•–”•””•‰–”—”›•—š••••––’–—–—••••–˜—˜”˜™”—““•”Š•–——”—•™˜•”–“›–”””••“”—–”––––—˜˜”“˜™–”—”•”™”’•–—š–Ÿ“—Ÿ“—™“•š‰•”•š“˜—•”—••–•——”˜•”•–——•”•”“– ‘•¨•—”œ‹™™”•––•—”—••›——”•”—”–”–‘–”–•–˜––‘’–•••—”˜”™–••–’•–•˜“•”“”•”‘“””•š•‘“–““–šŽ‘Š”“–’““–•––—•—””“”Ž›“’—–•”•–™˜•–™š–““˜•™“•ž—’œ•”–“š–’””˜ž˜•ž—•–“•‘–—•™”•Ÿ–•“–œ––”“•—”•’–”–””•˜––“”™˜›ž“”–†š”‘’‘’”•–™–š—š•••–›”™™•”˜™‘–”š””””™—’œ•”—–•œ•”“””••••—•ž”˜™”›“•““—œ“”˜””–”–š••–”––™•—™“˜—”–œ•œ™˜—’–•“•””˜•–•–’•›–“———“”‘˜ž”•›•ƒ•’•—“•š’••˜”˜’˜””™–™˜š—–—”“¤˜¡”––•©„’•™’‹‘’—‘•Ž“¦—Ž“–™”’“”””•Ž “šŒ•–‘Š”¦”ŸŽ–’‹”•‘”œœ¦“‘‰”šŽ–•””•–’••—•“”ŒŠ”¦œ›”˜Ž“•“”’”•™˜˜œ•ž“¸•–‘—’›’—’”–•–¨••—›¦‘•–š—”“–“—¡”‡•”‰–“”—™”““—“ˆ•Ž””–•ª”𖓉‡€‘•˜”œ—”Ž˜•œ”•”––†™“”Ž“•‘•”§›•••‘Ÿ˜““•–‘•œ•Œ•›˜‘Š•›£••”‘Šˆ‹˜”•Ž“™ž˜“”˜”“““—˜š““šš’™”–“˜˜š—“”—–”““•›”””““–’“–—’’—”“’™“›”““›š”˜“˜•™”“›š’–“““““”“•”š™“˜’•—›“›š–‹–™“˜”’—“™’—šš“Ž™š“”‘™’š“”š˜–•—”“‘“”–““š“Ž•’“—””““““˜“˜›‘•Ž“•””–œŒ”””“–š“š“”š™’™“”““›™ž•—˜”’˜“”•˜‰™œ”™“““˜”“”˜’”““™““š‹”£˜‹“”——–›š——”—•““—””“šœ—–“•”’“˜–––Ž“”•–™˜•¡•”•””˜˜ž”“”’’••”“—‘——•–—•”š’”“”“–”“𔕔•”Œ–˜•“™””––™•š—–“•“–––‘”“š“””˜•”••““˜”–›–Š””™–’–•””‘›—˜“•“”™•“‘“š˜“˜”•›¢””›—•”“––”•—›•–”“““••”–”‘”‘˜”š•’”’“˜’“““•—”‘•”’””’”•”Œ””’—›“““•“”’œ–”–‹”’“•”•œ––“”™•••ˆ”‹‘”’’š”˜›”•š–•”•”‘–™œ’“–’•‘˜—•”™””Œ•“‘”–‘“–”••–š’—–™““••—•–”•’’“š–”•’–—–”•”””“š”•š•™—“‘”‘“”•’‘”™•‘˜—–›”—–Ž“”•—””™”˜•—–“”—•–Œ’˜’– •›•–’•”œš—‘–‘“›‘•”—’›”“•–˜•’›—“–•‘•—™”•”••–—•–—““•™”“––•“’–—˜•“—•”•”–“••“›”“”’”’—–——–˜••“—–“š‘Ž•“–”•”˜”””••–˜”•™”•”–“••““‘––Ž•••”–“”š–––•›”š–‘•˜›”“”””–”“Ž–Žš“”““˜““•Ÿ™””•›”›“—•™š•”’œ“•–”—•Ž•”–•”™ ”‘š”–™“”••’‘”˜”‘•”–™˜”•”“‹–””›“Ÿ–•š–™›˜ “|’”“”—–““˜–š’’”””””’–š••–’’’‡”–”•—‘”•”‰•—““”•“””“•™”–›•›‘••’”Š••““”“œ•““˜“˜—’—’•’™™•’œ™–™““•“•†–“••”–’•—”““¡™–•‘”“˜Š”–””œ›˜“”Š•”—““”Ÿ———””“”–˜–˜š“”““˜–”›œ•“““—•““•“š•˜’˜“—’–™”–›”“–šœ•••––”“”œ—•“𙓓¡Ÿ•™“•šš”•—“𔕖•”“““‘””“™“–›”š‘•–˜”¤›”’–—”””ž’•˜š“šŸ’¦•œ”“œ•”“•‘“’šŸ™”“––™•“˜ ’™““—”“•”’“’–——š›–——’—–™“••”œŸ“œ—•“’“–”›•’–—’—•›••š““ œ—“˜˜”–“”š””Ÿ—”••””–”“žŽ”•”“—˜›™”——•’’“”œ˜˜›˜‘“”–”•š—–‘•“”˜”–Ž›•”””’–—ž•Žž”—•’•—‘•‘“™””–’“”••”••‘”•”•“‘•”•–””•œ“’–“ž—‘”—–—”””•“š”˜‘Ž••’“š˜šš”•“•˜–”›–”¢‘ ‹™Ž•–™—–“›œ”“˜—•”••””•‘“Ÿ‘”“•“”™”–™”•œŒ’””’—˜ž“–””“–”’”” “–”“•“‘Ÿ’””•–‘”–“œ“œ’›”–“’•›‘—•““¡””“•‘•”–“–•”Ž“•“”˜••–™˜”” ””‘’—••”’“•˜Š“”••”””‘’’‘•’›”–•˜”––Œ—“”—˜˜•••””——–’›”—–’“””–“––””š™”•””““‘•™•”–—š•–•–“˜”’”“˜”‘Ž‘‘–”ˆ”“”‘–‘—™—”•˜•„”‘––Š•–“Œ—‘”‘’–““““”›’‘˜“••••“““˜’“–‘“—™”••–œ˜”˜•–“•—‘””šŠ””—‘’’—˜–””—•”š••”˜—•˜”“””•˜”’™–’–”••”“”’””š––”•’‘“”–“–’•–•“Ž–˜“Ž‘“Œ™“–—˜—–—”“””™¬”–‘”••”›•“’”˜˜•˜”–•‘’”“’””ž”””•””–•›Ž•““—”•š•”••”–•“”—š•”’Ž–”“”•‰”””™•œ•—”“‘””’Žy•–’•™””••œ”—”“‘–’˜”–”“‹—”•”•Œ“•’¢””“”•””—Š›•–”““”••”””•’——’””˜“”””””’”•“”””•’•—”•’—”–—Ž””“••“š’’“—•”•”™“”•’‚””—““”“–‰•””—•Œ˜”•”¢’””••–™”Ž“’”™–•’–—•”‘–•“”“”•””–’’”––•”™”—–’”‘˜’–’——™––••–”•”““••”“—•–•—ޕޖ”•–’•—•”“•–˜—’•“•”–•––—••˜––‘•—–›––•™•—•’—˜š’•”“”“•’•‘Ž™‘•”’‘™›–’”•“–•˜”™–‘””•••’–“˜•”Ž–”ƒ”‘–Ž˜Ž••””š“”’””“”‘”˜”“–—›˜•–•–’”””˜“—–Š”––•“”›˜•–•™š—”‹–™™””–“’•—–”–”“••”••“””—“’–”Œš–”–—”™’”––—”•’“”•–—’——˜–›•Ž”—”˜•™—”’”“–•–”•’”˜‘”•–˜”——˜”–““Ÿ‘˜—™––“’˜–•™š”—”‘”’–”••˜—˜”––—•••›’š“”Š”““•–•“–™—”š˜—‘˜š•™Ž™“˜‹‘”˜••—•™““‘”“““˜–—™—–““˜•–—–•š—‘•——™“‹’”‘˜“’’“••••–˜‘‘”—™—“˜—––“•“—“’”“’–—“–Ÿ–––‘“–˜“”’˜””•–““•“’––”–”˜–•–“–’”••••––”–“—˜—”›–™Ž–•”™“˜’•˜–‘“–“–•š•“•”–˜‘“–œ”‘¡•–“’’›•“ª•ž”“‘Ÿž““”““–Œ”™”••ž•”–“’•“•”’‹“˜˜”“’œ”””‘“”•˜–›“—›•˜Ž“„¢—••”•“˜}“ŸŸ”•“’—’˜™“—“œ•“’“𛓕““•““¢¡•‘–•œ“““’““˜“””•“˜”—’”“”“˜˜–•““‘‘––“Ÿ“’•— “—“Ž••“‹ Œœ“““˜•“‰›”“•–““‘“•–œ›““•“‘™’”“•““–••””“Œ–Š“•š“•™˜˜—““•”˜—©•’”““”’””š‘‘”‘””•‘˜Œ“š“™”•„Žˆ–••••“’“ˆ’’’”–•‘§““‰”“™•“•••¡•••““’•““”˜•”ž—Ž”•”“‘Ÿ–ž”™•©‘”—‘‘–”—˜—š•–“œ“…š””˜”–•}•’•–‹••–ˆ—””””•’•“–•¢–šŽ•˜—’”““•””˜’•–”Ÿ””‘”’–’––•Ž•”“”“œ™•˜•••’’”™’’”•—–•’¡”އ’•“”žŒ’“”•›’•‘˜’”™‘‰Ž¢””•–œ•—•••‘’’ˆ”‘“’•š•–”•š’•›ž’“•––›–—•–’”––•™”””•••–Ÿ”˜••™“–—–™—”—–›—“–“’œ”–”Ÿ ”•––“”–•–””—››’œ•”žŸ ”Œ”‘•“‘–Ÿ‘“”Š˜‰‹—“”œ“““––Ž‘’’–––“••š–”•Ÿ”•–“”•–”•ž–’›™Ž• ›—’’””””š™”——•˜•“™–‡•–Ÿ–‘›—”——”•¦’‘”‡•–”–••‘’‘•–“”—ž’•–—œ”“•œ™Ÿ‘–••‘––ž—–“˜Ž‰¥™••£’•™™“•–•–™”–—”–•••œ“”——˜™“˜”’–™•”––˜›Ÿ—––‘˜””—•–•–›Ž•—–•–’–’•–˜š•••””••—›˜•“–•”•––• •”œ–›—––¦Ž••™•–“•œ”–‘–•–™‘’”¢–‘š••˜–‘š‘”—“—–‘–••™‘’”–––”“–—˜–Œ™Ž™“–“”•Šš‘•”•––—–¢—•Ž˜•”•”•”›™™™—–“‘––—•Œ›”š–””•˜—Ÿ•”–›˜––•Š–”—”””‘›œ—š•–ž–•–’•”™’—££—š–ˆ—ž’™’–—•“››œ““—“”’“’œ“’—”Ž‘’’”•™•’Ž– ““““’“’”’“•’““‘”’–“”˜“”—‘“–‘“ “‘–””“š— ’”•“•“““˜’““™––—“•”ž’›“š’™—“—•£’“ƒ–™“•“”’œ•“’œ¦“˜’“““‘“““”‰“’“‘“““””””“››•”““•”šŸŸ–•“““••”‘’“‘›“•””’“™•œ’••“–•“‘’”“–•˜“““’”“˜”˜•“™Ÿ“““’“–’‘’’”™–›™”““—”‘”–•’•”“––”“—™–’“”—¢¦“”“•”–”—‰””“•‹•”“—‘–•””’––—ˆ’‘”–’‹“”’””‘–“”’”’Ž””•‹’“’‘”•”Ž““”’œˆš’˜”“˜•’”“’Œ‘”Œ—•”“œ‘›–”–”˜“–œ’Š•—•”˜”¥’˜”—‘šˆ““‘‘’’›’“–“”••›ž’””•””’”’Œ”‘“𔋗º›••’”•–”’‹”•™’••’–“““ž”—“•™“““•”‘™”••’•”›‘—“”’–“”’…”˜Ž”•”‘‹—‘’•˜“–Œ”“‘ˆŽ‹‘“”‘”‘’”™““’”“”–”›’“’““™–”“‘“——•—•“”Ž””•“™””””–”““‘”£•‘•‘”“•š”’’œ••š“–”™’””‘—–”’”–””–•š•—›”’”’ޕަ––•“•˜–˜—‘—”“›’——˜””†–¡“•”™‹’”™›•’”•›’”–˜ž”“•–“•””“——”Ž›•–”‘’’˜™“””’‘™•“””•”–””š“‘•‘““–›••”–•–•™“’”Ž“”“š””˜–›”“Ž”•“•“•’“”˜”••›“”ƒ””“‘–•˜’—‘˜”™•™”œ–š—˜”•––•“‰–—–•”•”–žš•”™”–”••””——–¨—•––™–š•••••““•—•””‘•–“••›”•š••“–˜”••”‘ž•ž””’••”“”Ž”•™•••–•‘Š‘’”•’•˜”‘–œ—•—š’“”™‰ƒ–—••›œ“˜––“•–›•–™‘ ‘•”œ•–•‘–•”•’“ŽŽ–œ—‘”””•”’”•••”””’”–•”‘“—––™•˜˜”••”œ—˜—•••‘™•“—‡”–˜š—•˜””“”‹–•”’–ž‘”••””‹“•“‘˜•–ˆ•”‘‡Ÿ•”“““””““““Ž–•“”•’““’“‘“””…——““šŒ–”““““”“””“’Œ‘Ž’‘’“”“’’”–•“’•”““‘Œ“•¢““—“•“”’•“”“ª•–›“—‘›•”ž”™”’¢’“˜‘“—Ž“˜–˜’˜“”—’•™’Š“‘““Ž““‘›š““Ž“““’“”Š“š—œ•—”Œ—“–”““”“•“““•’“’”“—”’–Ž“–’“’—‘™›’–“’“—““˜Ž»““˜’““Œ†“Ž•™•”‘–•”‘–“ƒŽ“”Œ”“”””’–—“”“’‘ˆ’”“Œ•’™‘•š’“””””–•’”’’’–”’“““”’“’–Ž••—••–”–•“•••›••”—’•™‘”——“•›˜”””‘‘•“‘–•—”•”””“”“Š™•—’•˜˜”…”–’•—“Ÿ•“˜’“›–””““˜˜‘•š“™–•”—™˜Ÿ““”–•””—’“••˜••””’”•’’–••‘”“™”•””–”–”š””Œ•–”•˜•š•••—˜””—‘˜”•””˜“•–™›–”’”•–Ž•–™‘””•’’——•’”œ“•”’“–”šŠŒ–”’•‘š˜™—“•˜”–šœ”•š”“’“–’•”™•˜”˜”’’—•“˜”Ž•”’ —‘“”“”š–’”’’™–““˜›”™’““–““•—’“•“——”’““‘”“”œ’•”“”’•’•Œ”™”ˆ•‘“”•’˜••––“–š˜Ž•”›š’’“‘Ž’–Ÿ•“”•œ””›•š•’“’“““”’•—•’”‘”–••–“’“’—›”–””Ÿ‘‘’“•’–‘”’“œ“š˜’’š”“’–“““”˜“”Š’Ž”•’’••—˜”–žš”””Ž“˜——™“—“““™““œ–›’“”}—•“““”““˜•””—•’“—”””’’••”‘•‘“”’””˜“•“––“‘‘—–”–—’–“”””””•–“”–•›”•”““–—’’Š––”—––“”’–•””•“–“•’‘‘’–”“”’Ž–‘•‘”“”“””–Œ’•”•‘—•’–“••“’’–•–’––“––“Ž’’”““•––“–“”—•‘–”•—’’¢““––—““•’–—”•’“”‘•’—’”’‘“•”‘”“””—’“‘‘–”–”•–•’•’—“–—”“”“’’‘–‘““”’““•••–”“”‘’—˜•”––•‹“–““”“œ–”““”–™ž”‘“”’•“† •”œ¤‰’”•”˜“˜–“¦””…ž”••“•”–‹•—•˜œ˜Ž•••”™•”‰˜”ž”˜–”• •›“•••••œ“™–”¢“–𔢗·“—¯”›•–™“’ž”•”’™š•—˜ ¢ Ÿ””˜ž“œ–‹”–”–”•™Ž””•Œ”””•”•–•Œœ—˜–”“— “—””•””ˆ—Œ•”¨•›–™“‘”•›™˜Œ•™”•“—˜†ž“•”••–”ž—£””˜¡••” “•’†’•”‘‘˜–˜“›’••––“ ”¤›—•Š›–”•Ž›¢™ƒ•““––““˜‘‘“˜•–••”““‘™•—––“˜“Ž–‘–•–“’–”—”—›–œ‘˜”Ž“†•••”’”•’–”•’™˜–”š™˜”˜•—™””•“•˜˜”’˜—””˜•–—›•“˜——•—“•š‘’š”œ“—’‹‘œ–••”“—ŽŽ—”•—‘•”‘Œ™—”’’“”•›’”“•›––”—šš•”–˜–’”“–““‘™––™“™–••™•–˜’”‘“’•“–‘ž“–“‘•–’˜”˜š”ˆ–•–˜”—˜‘”’—”“˜•——•”ž”•–“—”ž—™š–˜–’••“”“Œ—–—“”–—“”˜•““““—œ••–•’“˜”“‘“™“˜—“”“‘™™“““•”š•“–š“““™–”š“”–’’“––”•™”•”˜’Š”£“““””“›“™””’––•€‘•˜•š•›”˜’•˜“¢’““š˜–˜”Ÿ™“‰’“™¢”ž‘”’”•—”“—¡œ’“—’’“’““˜”””——””‘“˜¡””’‘™”–“’™’—“™””—–”“——”š˜’’•—š’“œ””“’š•““•œ”“›˜”•˜‹”‹—œ•””“–ž”™”“”“•““””‘Ž•“‚Ž””™•™•£“” ––ˆ–˜”“”“œ˜—šš†™“œ”™“™˜••›¡—”˜˜““”–“”š–“’“’•”𔕖’•‘”’””—•›”˜œ”•–ž—’–”“–”•’˜”š›”—’–—••Œ“˜•”˜ •“‚“‘ššœ‘–’”ž””œ•”‘‘„””œ˜˜˜—–••”˜••›•𔕕•••’–”˜•Ÿ™•›—”––’‰œœ”•””—””–””“˜“Œ”–•ŸŸ™šœ•—””—œ”•Ÿ”““•œ••“—””™œ•”•™—•““Ÿ•š•›•©••“—’”™ž‘˜–”—›’–˜˜š˜”™“”—’˜Ž“—•“–’””“—–œ‘•Œ“’’““’”’¡“•’’•’“•’•–•”™•””˜”“•‘Ž‘–’”’“”•“”“•”“•’¦’””–•”•’“•œ–‘—”—”Œ–™œ’““Ž—”“’‘•’–—“–™‘‰˜—”–”‘’”””’–•’Œ‘•’“‘“’““•”•“•’”•Š“••‹u–‘“•’’‘’—–’”‘›–•’“““”‘“•”“‘Ž”œ“‘””‘“Ž•’š’˜•“’““”––‘›–‘•””–““’•”•–”—•˜’‹Œ““‘“””“’‘“Ž‘”—“”œ“”‘˜’““’𔓕”™˜˜“—“œ“–—““—‘”’ ”–“”“”’›“““”““’—Ž“‘“”“›““—˜””””𔕕—™’•““–””“”“•˜“–Žš“—”™›—’˜”œ•–““œ”—˜”–—•¢—›‘‰™—™“•—”•œ‹••–“””“””‰–‘““”””•“™“——–—‰“—ŸŽ’—“”“’‘’“š”’˜“’“™““™–‘šš–”˜”““˜š ™“˜”“”“””“›—‡““–˜•“›¢“–”‡””““˜™——•”¡“•’–’”’˜œ””•Œ™”˜“–—‘š““˜˜’ˆ¤’˜’“’’‘‹›˜œ•‹Œ”ŠŽ˜—•’”œ˜›—’““‰–’Š—Œ“’’Œƒ˜Š’‘˜“’’’’–””•–Œ–›œ”ž’’•˜“‘‹’•ŒœŠ¡‘‘’‹’†— ’‘”‹›ŽŠ†”Ž—ˆ’–‰‰Ž‹’“•—•—Ž™š’’Ž•”šŠ„—‘•‘•˜Ž‘›’‰˜ŽŽ™“•Ž}ˆ•“‡“Ž’‘‘‹‘“™’š“ˆ˜Ž•œ›”‘’‘Žˆ…Ÿ‹‘‹ŽŽ••ˆ’†’‡“–›•“Ž’‘Ž˜•—Š›†‘‘‘’Ž“žœ¥›•Š‘”“•’’”””›“’‘’®¨Ÿ‘‘•›’–“‘ŒŽ’Γ›’š‘ž“–’—Œ’¡’‘™ŠÂ‰™„›ž§’Ÿ‘¢•™™‡™©€‘˜’’~“’’•’’—œ›”™¤”–¤¡¢”·›š›’œ““ ›š•‡w™‰·œ’›¤’–«œ™”™“•Šž™•—j”–‘™–”‚š’‹Ž‰›“”•¢~˜Ž—“’¥“š“„’–’˜‘•™””ƒŽ’’’r’Чޒ‘˜Š“m’“‘‘’ž—•›’““š—§­˜””›Œ’¥’•š•žš£¥”—y”™•–šŠ“’“’’“›€‹˜’’’–Š—‘…™™Ÿ—”–”Š”¡”‘a•“•š–—‘“’“‘Ž‘›˜‘—މ–  •›Š’”’“—•˜š“›•‰“’’’’”‘’‘˜‘‰—’‹–˜‹Š’——‚›–––‘{•š›™—“™¢¡‘››˜‡œ“’–’ˆ•ƒ‘”’‘™“’˜£‹•’’Ž••—•’—œ„‘|’š„–—–—–“Žš’’•™™‘™’“‘’œŒ’—‘“’•—‘‘•™š™•“•—˜•œ‘—‘–…“–•–˜”²˜ ”‘‘‘Œ••ŠŽ–”––‘›’”’Œ‹Œ•”•Š’™–”Œ”‘’•›‡Œ|’šŽœ•‰£‘–––ž”•–Œ…›—¡–š—’—™ž’™ž‰ŽŽŠ¢—œŽ•‘žšŽ™ŽŒ“•“–”Š~™žŽ–•rš“Ž‹‰—•š—™–Š””‘›Š’œ“–‰Ž—–™¡š‘‘œš’˜™’•‚’‰–ž”“Š–‘—‡…Ž‘¡—³‘ žž•––”†Œ“™Ž™•“›¡”‘Œ—…š””˜ž“—ƒ˜†“†ˆ—’•‘—Š—ŽŒ•”ŽŒ‘¡ŽŽŽ‰™Šˆ“˜­}‘š›–š¢‘™›˜ —”œ•‘‘”˜•’‘—Ž˜˜“•˜Ž“«¤—›®˜š¢š’šš“–Š”˜Œ’œ”’••­Ÿ™Ÿ¡”””¢™–’™’–“¡Œ“’‘Œ‘’•‘•˜›—‘•¢…𔑠™”˜¦ŽŸŒ •­£}—‹•Ÿ‹•œ”‘”•”‰šš‘”ž‹–š‘v•“’˜œ™‰•‘–•†—‰–¥›™’¥ˆ“Œ˜–‘ž“›——‘’ž’’•˜›¢‹‘§‘‘‹’šŽ•”ž’œœ›‘—•œ™‘’Ž”“‘—›¡œ–“”‘‘‘——œ‹š—™‰†‘”š–›‘†ž’’¡– –Š™œ‘’—–—ŽŠ“–•ž‘—“™š˜Ž–‘–˜““˜£‘Š‘’”¡™“ ”“ŸŽ”•šŸ’Œ—›•‘†‘‘‚Ž’•‘š‘˜“’ˆ’•†™•–”‹š¥“’“’”…ބЛ “ŒŸ¤‘‘˜¡Œ‹”“•Œ£‘™~—’‡‹ž‘𢇛ˆ“„Ÿ•Ÿ“š”’œ’’•™ ’“”’’‰©‘—†Ž–‚Ž’‘–”Ž€’˜Ž’ž”“˜˜’¦–ˆ¨“˜–™’”›ŽŒ’š“™’“™˜‘™‘“•”š™Œ’ŠŽ”’Œ™‘‘’“Ÿš‰™›”ž•‘‘’¥š™‡‡’ˆ•‘”£šŠ— ›“’—›œ•—”€‘–—‘šŒ˜˜•—Š’–‘‘‘’” ‰––’—Ž–‘‘–›’‘Š‘—–”§‰˜˜™’…Œ”§…šŽ›•‹’žˆ”•€‚’†”‚”—œ’’¤ž™¥“œš¡’–›’–m‰’Ÿ¢œ“Ž”‘“~–‚Šš‡Š‹š˜Ž’•—šƒ‘¥ –“Ž“’—’•—”ŒžŽŠ‘‰—g–™‘”˜–Š¢u“‡“‘“™–—Ž“ŽŸ“šŸ“‘”•‘˜‘—‘‘•”Ÿœ™–¡¡Š›œ–—“ˆ˜‘‘œ›š›––œ™–£›•™žž““›–ž—¥šŸ ›©š˜ ™–Ÿš•˜•›œ˜‘—™‘¢¡¬—¡š—¥–”ž‘–—£™••–˜Ÿ•‹™‘˜•™œ””’œŽ’“–œ››˜œ‹–˜Ÿ—“›q—“›–¡¡Žš¡˜ ˜—–—’“™˜•™’Ÿ˜”¢”–‹›–”‰ „š‹‡™£œ”˜—˜’“ “˜’Ÿ‘—™Ÿ’•’ ™›—––‘•¡ˆ“œ ˜‘›•–ž„‘—–•™‘šŒ“’–‘’‘Ÿ’›œŸ˜“‘•˜’–œ˜’› ‹™–ž›˜ž£œŠ’šz’™‘–‘Ž”——¢›““• •ˆ™“Ž…’„“–˜™•”—‘–˜«–˜˜†™’—˜Ž•™”‘—”–””˜” “ “‘‘Œ”’–•‚“—’›™’–•Œn‘•˜™Ž˜z¬‡’‹ˆ‡ˆ€‰‘’’”–‘”–‘˜–• ““—‘œ˜•—“‘’˜¤•¤Œš•–œ˜’Š‘•š™›“™ž•›‘’”‘—¤™–’“’“Ž‹—˜”ž¡–“™•˜˜›“‘–‘”•˜“¦žš‘”“§Š“–’—““Œ”‘––—›¡—š‰¥Œ˜˜˜”•ž‘’’”™˜“’‘‘‰—˜’‘š•™‘’‰œ•‘’’”’––’“Œ’’‘‘“”ŒŽ’‘–Ž’•‘“‘••”‹Ÿ•’‘‘‘‘‘‘‘’‘”‘’–’Ÿ“–—œ‰”’Š‹‘‘’“™™~‘’•–”˜‰—’•™—–‘›“ŽŠ“•‘“‚‘‘“—”‘š‘ŽŽšŽŠŽ’Š”‘’˜”’Œœ‰’˜“’’•‘—•’“““’’‡””œ”™”’‘Ћޕ‘’–•”‹”‘œ’’“–‘…’’’“’“••’‘’ŽŠˆ’‘“—›‘Œ’“’‘’’‘–”‰–Œ¢•Žœ›˜—Žž“˜— •˜™”‚“š˜•–•˜“‘œž‘—‘˜ž•™”ž‘ž‰››’——›¢”–¡—–“˜—‘›¢šœ—”ž™–šš‘Žœ‰–ž™ŠšŸ”ž–Ÿ‘𢙓•’›Œ“‘˜›Ž¢›š–”“˜¡”Š£œ’˜Ž˜—™ œ§˜–” —†‘–œŽ˜›–”Žš¡Œ›Ž‘’Ÿ’™žŸ˜•–’ž‘¡š ™–—˜“™š—’•–œ™š•—›Ž‘›”¨’¡—’¦•’Ÿ•—œ›š¡§ ’™žœ‹™’” ›‘•š–‘’œ˜•“˜ž•””…’”—Ž“Œ‹‹”˜’›—šš“œ˜–Ž‘ƒ’‡“™™ ›”’—‘”–“šŒ• €—™‘‘v›‘‘‘˜“ž–›¦—¥“‰•‹Š’‰Ž˜‘™ž“‰“››š••š¤‘ƒ˜ ˜‡„–“”’š”œ”‰‘Ž—’““˜‘œ‘”›š††˜¥¤˜Ž‹’‘—™”›œ—š‘•’š•‘—“”ˆ‰•‘—‘•‹ž”Š‘–˜ž‘•–Š••›”›‘¢¯’——𛑋œ“—Ž‘„€‹‘¡’’™¡© ž“𦋕•–””’˜‘—›‘‘“ ”¢™’ƒŒ“‘–’˜¦’™”“œ™”–˜•’”™’™‘|”’‡™•’Šš–•œ”™‘’Š˜’‘š‘‘˜‘Ž“•˜’š“““‚Ž™ ‹••’’›“”™•—•¢”˜‘Œ‹’–’“šœ‘‘®•“”Œ—›”–Ž“’‘Ž˜””’’‘œ”‡’އ‘Œ”’››Œ‘”’™šŽ‰’‹–”–“’’˜•ˆ•’˜‘–Š•–Š›–—‘•—•”’’œ™Ž”–›“”š’••–—’”–—Œ•‘‘‘”’’“’”¦¥–’—–—™„’’””’’žŒ¢Ž–‘‘—“Ÿ–Ž—œ—›’•žŽ–¢–”˜Š™“’ˆ••—š‘ž‘•“¨‘•™–…‘ˆ’›’ž•“š™Žœ‘œ‘™‘•‘˜‘š’”˜ž™™•¢’œ‘¤•£¨Œ›‘œ›“¥•——• ‘‰‘’”ŸŽŽ˜’““›–‘”ŽœŸ‘‘œŠ”Š”‘––”®’””˜Š˜ŽŠ•ž’Œ”‘‘£‘•‘’œ‘›™›¢š”“”‘  •¡Œ˜—Ž›¨‘¡£Œ”’—™ž‘’‘“™ š“•”•‹‘–‘“™Œ˜‘–•‰“““™›˜‘‘Ž“œ–¢Œ–˜•‘‘Œœ‘› ’’•‰š•š™˜Ž“‘’›‹Ž“‘•…’”’“Ž’š‹‘–ž‡—–˜”’’’Ÿ’š”˜’›¤™£‹Ž˜‘’–“’‘˜’Ÿ›“—Ÿ¤Ž–š—ž”ˆ“—”“´•˜–’—•š|œ‘šž˜’¤‘˜’‘Ÿ’Œ“‚’›ž’•›˜–ˆ¡“‘•Ÿ‘–™’¥•£¬š”Ÿ¡“„— —“œ“Ÿ’Ÿ–œš”’™’›‘•—ž•›™–“‘“ž’™•—˜• ‹›šœ’˜Œ››˜ž•“Œ‘ž’¤™› ™™›¡¡”‘Ÿ‘‘›ž— £—˜¬š’š¡”˜‰²ž‘’ž•’”’’œš’’˜”Ÿ”•“›”‡’˜—––˜w––•“”–•”–’—˜–““’’™ƒ“•’–“–‘—•”“š’’’–••‹–˜’“‘–“‘”’˜•‘™‡’”—•›˜‹š™•““”¦–‘—–‘œ’ššœ–‰–“›˜’“œ–•¢š•“——”“‘”–“‘˜–•”—’–š›”—„•’ˆŒ¨—Œ‘™š’Š’‘›‘––“–˜’““š“‘‘”š”’’–™Ž•–…–›š•——”œ“››––’’Š–’””’–˜‘’•—¢•—’‡’“‘œ•š•–›’˜—˜–•“™–’“’Ÿ œ†‘™Œ‘†™’–—–šŽ•ž‘‘—®Ÿ–“†˜™ŸŒ‹–œ‘™•†‘‘š™‘š–—’ —™’–Ÿ‘’’Š‹£”–‘žš™‰‘’©œ‘”‘ž’•™¨‘“œ¦•µ”•šš’›‘¯’™–’¢¢‹–Ÿ’‘’™‘—Ž £š…Ž•’‰•“ž¢€˜”“’ š¡‘—’Ÿ–—¤’’”““”–‘‘Œ›ž‘• ‰”“˜’š“”‘’—”’¥“˜“—Œ™‘”—Žˆ—’“’œŒ˜Žž‘—•Œ’›ž”} ›’“‘˜ Ÿž–•«†Ž“ˆ‘‘”–…†—’¡‘‘”Žš’Ž£’“œ—Š‘¡‘’Œ€””–”™“•’•œ”Ž‘•’‹Ž––›Š—”’”–•Ž”›““—“‰Ž‘‘Œ—‘‘”’•˜“˜‘“—˜ˆ›»˜Ž–‹—”„‘•Ÿ˜“¥˜––Ž›Ÿ˜‚‰‘¡‹Š˜Œ‘™‡Ž–’˜‰¤™‘•Ÿ“–š’Ž•£˜ž”™ŠŒ’¤‘”‘¤¤›˜—‘–Œ™‰–’‘™š”’›–š˜•‘’•”˜š“Œ•—š‘”–¬š˜—‹ˆ’˜—’”•™—””’•˜›‘˜‘—Ž’‹ž’•’œŽ••Ž›•˜ˆ‘‘•˜˜’¢‘•‘’—˜™˜–˜–œ”•”’ –’’–Ÿ™”–˜™—œ•‰Š˜’—™“‘–“‡–—‘•Ÿ‘’œ•’““¡•œ—–‘—Ž‘‘«š’‘ˆ’”–™šž•™•—”Ž‹‘¡“—““𛉙žž‘¥˜£“ˆ£’—’š¡™– ‘™’‘’œž‘–—›”‘œ¢›’£’ ’—›œŽ™–’œ–”œ•¥Ÿ’šŽ”˜’š‘’œ›•¢–¡š•–‘‘–›š”‘–Œ”“š••’› ’“–ŸŒ’‘ž‘“—’™ž•—Ÿ¥ž‘“Ž˜—•™”›¨™—”—˜˜ˆ’‘—™“ˆƒ•“–˜’’—•Œ’‘‘”š——‘™˜•–™››‘’š›Ž–œšŸ”˜™““œ˜’’Ÿ–v™–’‰‘•”›‘•–“œ’•”’Дޒ‘œ˜’‘—’™‘ž™”•˜—¥’«’Ž™——Ššš•˜†˜˜š”š‘€ž‘–“”Œ‘„•›ž—”–†‘”Œ’—Ÿ›˜•”’—“‹˜Ÿˆ¢’”–šŸ›–œ‘Ÿ–žˆ•‹™’›•”›–Œ•“š‹“’’¡˜˜”’œ™›˜—œš“‘—ŠŸ—•••™–‘“ŸŠ‘‘–—”•‹”‘‘’˜˜‘œŽ›¡—š–‹‹‘“‘œ“šƒ‘‘’ž’‘”‹™–Š”‹œ—–‡ ¢‘”™¡–•ˆ˜•£Š•“ ””‘’Œ˜‘‹’©•“’–‘–ž‹–‘ž—•¡›”‘‘”“’‘‘’•’˜ŠŠš˜™Žž“™˜™“‘”–ŽŒ ƒ”“•š‰‘•‡‘›˜–“£ˆ’Œ•Œ‘‡Ž™ ’ž‹š˜œ•™•ެŒ˜Š—’œ””’’•–•’Œ¡““‘‹•“‘™‘’’Ї“Š“œšŒ‡¤’™“™‘‘’‘‹’‘’‘¤”’™š‚™‘‘‘–™”‹ –¢ž••‘š‘‘‘‘š•—‘œ“Ž’‘‘““Ÿ—‡Ÿœ–ŽŽš™›—˜”Œ˜ª–˜‹˜‰¨¢˜ž˜Žˆ’Ž‘¢š‰–‹™”“ŽŽ˜œ•“‘ ‰¥–•}˜Ž‘‘š’‘’¡‹™–€šš–’—‘’²’¡ž—‘••™š–“‡›‡•› ©˜¤—Ÿ¢ –’“Ž’œ’‘›‘—–š›Ÿ™“‘œš‰–›Ÿ•™–œ‡Ÿ—”›¡™–”‘— •—“‘–“™‘“šœœž…˜Ž—”‡‰˜š‡ž•ž‹‘—‰‘–‘—›˜–𔕓˜’˜Œ œŽŸœ}–¤¢‘ˆ›—›™—œž–‹•“¥§–‘’–’šˆ’——•‘Ž—¢š—›„‘ž•“–˜˜—˜ˆ˜š“–™œ”ГГ•œ‘“’˜—•–•¡ž˜’¢¢—£“—‘›•’¦”™š”Šœ’—™–Ž•œ¡˜“§Ÿ”•—ž’ž›˜”™žŽ…–”“–ž¢˜•’•‹œ›Ž—–œ„Ž™‘Ÿ˜•¢›š‹›œŽ–›ŒŒŽ“˜š’Œ›——’’š“”•™¥…ŽšŽœ•–‡ Š“—š‡Œœ‘˜Š”ˆ•ž¥””’’”£¥•ž˜™Ž–ž™“Ž—¡š™“‹›š™˜–‘Ž‹Œ‘’‘›’‘”™–˜ ˜‘ŽŠ•–ˆ‹’·•‰’’•“Žœ—š‘š‘–’—§ŽŽœ“§“—‘””š›’“Š—’‡‘—‘Ž’‘–‘•“–œ‘–š•Ž“˜Ž—’›‹”•““–’‘‘ˆš›£‰–›‘Ÿ•ކ˜ž”–’šŽ›Š‘‘ŸŒ’’‰Š™“’’™¡•Гޗ‘š“ˆ‘š—Ž˜•’‘˜‘“‘‰”–…ŠŠ‘œ‘““‹˜–Žšž’˜˜Œˆ’‘“•“œ‘‰Œ•›¨–’š’••ˆœ•–’…–‹™‘“‘’™½‹“ž˜˜Œ’•˜‘‘”““’šœ•›™—“˜—„›—‘–•‹•™’ž““’–‘–›“‘•“‰žŸ“›Ž“—”’’”š˜™˜”—ž‘“‘‘‹”’‘”’—›’š•—–˜‹•˜—Œ˜’œŽ›˜œ“‰›“™š–‘”œ–’š—Œ˜•’‘Ž–””Ž”‘–ž—’’˜’š“”’œ”‹Œ–”•£›’‘¢¤–š™‘˜–™—”Ÿ‘š”•ž˜•™––““‘‘—ž‰—–•˜˜ž›Œ”™‹’˜Š“žš…“ž›•“™ ˜•“’“˜‰š’‘™‘”–¡™˜•£‘–›–™¥œ‘’—Ž’••‹š’‘’œ—œ’Ÿ˜˜Œ’’“•’ƒ’‹ÄŽšŠ‡†‘”–—”“”’Ž˜–£—‚’‘¢‘—’𔓖•Ž’‘Š‘’“’‘‘”•‘œ…™•–…›™œ‘†’”š—’“–˜ž“‘“ ’•¢¥‘— ¦•‘˜——ŽŽ’’Ž••‘‹…‘’š™’˜‘“•›Š«‘£Ž™¢€’“š’Œ”””˜”‘‘Ž–›”’‚‡‰‘‘™”‚—“¤””–“ˆ“ ‘–¡‘–‘Ÿ¡’™Ž˜‘¥“žŽ‘œ“ž‘›‘Žœ•¢Š––€™’š”“˜›œ‘’•‹”–¤‹šš”’’Œ–’Žœ’——Ž˜‹œŠŸˆ±—‹‘‹—œ“Œ…™•œ‘™—’™ž”“—‘““‹——’›˜˜š——‘†‹•’‘Š’’’›‘•š”¤—š–Ÿ‹›œˆ•’…Œ‘ž™—‹“’Ÿ’˜‘¡•š’Žš‘…š“’‘•“‹˜‡©Ž““•ЉŒ”’šŽ“—‘™˜™›’p𛑋ޑ†‘•—Š–š’˜“”‘™—™™Ž‰”’Ž‘œ‰’—š¡’Žˆš‘“™˜‘‘ ‹—•¢–Ž’’š™ž‘š‘•“™’’™‘”’šŒ•“—Œ›˜œ›ªœ‘“•”—–ž•’•Ž‘‘‰Ÿ‰Œ‡y¢•œ’––˜Žc—‰‘ž›™œ‘œ“˜ª‘‘“‘“›‡˜ž“›ƒ’–™Ÿ‘““™™ž—‘””§‰Ž‘’’œ’‘’˜™¤ž•˜Ž•«ž•ƒ“›Œ§’––“›‘‹^•šš“‰‡—|’Œw‘Ÿ”–š”˜‘†œ‘”–’—•‘š’¬Ž§š—˜  ŠŒ‘’‘¡˜ž›˜™Ž”¦’–™‘Ÿ——– ˜š‘”–—¦…šž—’¦Ž–¡–’’’—’•Ž‹Œ¡ŽŸ’®šš••¡•‹‘•‘‘››™†–޲ž”’ž›‘’’•žˆ˜ š”˜œ£˜£›“›‘•–Ž€••“Œ…››”“—˜”™”‘¡–‘‘™–•’™›œ•Š‘”•’˜šš”—¦š”•™Œœ“’œ‘˜Ÿ”š”Ž—š˜¦“‘“™”˜’•š™˜¡¬–”“–™•“©’‰›Ÿ›’”ˆ”žŒ›™”šœ™˜’˜•š‘š‘ •™›˜‘”™“”žŽ•”—”§‘”™¢‘‘𗑣𕕒Ÿš™˜‘ ›¢Šš˜šŸ•ž–‘™›•–™š…‘“¤…“—’œšœŸšž‡œ–š‘‘—œ‘˜”–—œ†–ž’•‰“‘‘‘”“—–}œ”’‘œ“–𔕒’‘–Œ ’‹˜–“’Ž“”—•–“’’œ‘’—‘Ž—’š•‘‘—™•‘—˜š–˜——”“’‘”’‘’‘••Ž“šŽ—Œ‡Ž—‘ –‰£’œ”“’–˜š“’˜•œ–ŒŠ…Œ’œ•™••¡’•—’’˜—’‹˜‘’”›™–Œ˜’Ž’ˆŒ‘”‘‘…•ªŠ–’™˜™œ‘‘“““™•‘–’”’—š’˜’˜™’›‹Ž’”‘•’–Ÿ””‘’“”Œ•‘‘‡“ž•‡‘•”Ž–Š’™˜— —‘—‘‘•––’—•–Š•–”“—Ÿ“‘’‘žœ–†™•Ž’’Ž“›“ž—–’›Œ’›”¼›Ÿ™Ž™œ£›’œ–”—‘™›‘‘š’«ž“’‘’•—•’“œ‘Œ—–¤‰›’‘™“‘Œ‘ œš•žœž¡˜¢•˜¢š– •••”š——‹›Ž”Ž—”•¤•–˜’“š¥”šƒ˜—’ ™Š“—‚œ™Ž“™“—“Œ“’™‰˜•¡™—™—†œ’’œ“›’šœ””“Œ“ž—‘•™”œ™•…•‘™›…•™•’Œ”“’›ŒžuŽ‹–•Ž™œŽ˜“‘—”˜ž”˜““…‰œ’Ž‘” œŸ•—›xˆ™–•˜‘’“Ž“—¥” –‘‘–“’“›ˆ“˜’”‰˜–”w™““–š—Œ•“›œ–‘œ•’”—’“š‘ ˜œ›œ•“•””‹‘£Ž‘¢—•’—š›•œ–œˆœ–’—‹Ÿœ–Œ™žˆ›˜›™”¡ˆ‰ ‰—œ”‚ š—šŽš—™‘Œ˜œ”›‘‘“ˆŠ‘Š‘ž•–ž’‘Œ’˜•Ž’’ŽŽ‡”’‘™‘‡¡Ÿ’•‹‘—”Ž‘œšŽ”–ŽœŠŒ™œ™––Šœ•Š”•Ž••™”›‘•”‰‘’”–™˜›•‡‚Ž‘£“‡œšŽ}”•’••” –‘”–’“””–—“’“™Ÿ‘™—‚“•‘‘•’¢––‘—‘—‘›˜—“›’‘‘“‘’–‘‘”—“š’“”•’š•“‹““˜š“˜”“’…“’–’™‘™“†’’–‰•—š’”’—Ž•‹‘“““’—|š–•–Š–›“ššž“–Œ”–“’™œ‘Š•”“Ÿ–•›“š˜’“”–“—••—™œ”œ‘‘“”—˜’‘’•š’—‘ž’—˜Œ•“–Ž‹–”–™•–’‘’’˜•–••˜—“’–”š’—›šœ“–’”•“™“’’“˜”œ•…˜’‘“ƒ’“–žš —–—’’’ž˜«–—³Ÿ™–”›ž’’Ùœ‹™™Œš¤˜•’—™™’˜’‘š ™›š™™Š’£œ’”𖙢•™›œ¢œ‘‘“‰—’‘Ž’—𔡭˜–¢™œ —˜™˜“•‡“Ÿ›››Ÿ™¶žžŸ–œ˜–šŽ•’ŽŸ¢{——•˜“–•œ™•–’‘¦–•“ ‘›˜ž™”•“ šŽ€œˆ“‘ž–’¡“‘‘š’ ’¡—‘˜œ£¢•–”Œ¤‘“˜Ÿ–“–ž¡Ž‘š‘’’¢›’•𛕠’šžž““‘­’£œ™™˜˜š•’’žŽªžž™™”©—š–™•‰¡’’—”˜Š—š‘‘–Ž›ˆ’———–”——””˜˜’•œ™–’”¤š¡ •’“‹‹“‘™š›’•™”‘‘¢‡“š•‹Œ‘—œš–““–‘‘—™’’•Ž™Œ–Œ’…—Ž’–—ž’™“½’”“Œ•™›—‹–””š’–¢‹”š””‘ ¥•žšˆ“–‘Œ›œ£’ˆ‘¡¥‘”“˜Œ¤‘”•“ Ž’˜¡š‘¥‘›¦¡™–‘™‘’œ’––›”›““–‘‘––Œ‘›’’ªš›•‰Ž‰’£’™–¦—Ÿ“˜˜•“£‘“Ÿ“—›™† ‘–‘‘Š’’Œ‚›ˆŒŠ˜”‘’•œ˜¦˜›Ž““˜œ›¡Ž’¡’…˜›ž’˜¯‹—œ˜šŸ——””œ–“˜”œ’’™œ›•Ž•–œ“¢–’“–’šœŒ™œš•–”““£ž“’ “˜›™•‘“œ•™—•x•“™˜Ÿ•—•”’—ž™Š—ž›Ž•“™›““‡žž”šœ—•‘Ÿš–¢™œ•–˜’—–Ÿ›“–“–›‘›‘œ›”“”•œ˜“Ž˜’“‘›”—œ“™“’Š’•™œ˜ž–“Ž“•“š‘Œ¤˜“š˜›”™‘—‘””›˜˜›”•—–“¡’Ž›–ž——‘’•“—““–œ’𕙆˜™˜›š‰›““‘¤“Ÿ•˜‘‘Ž’™Ÿ™Šš‘Ÿ“’™’†—’‰ —’“Ž–•–˜œŸ–œ’—’‘›†­ŽŽ”©œ¨”‘›™—¡¢“Ÿ›— Ž“ž‘‘…—’ž‘𛓓–ž¢’މ ’–¦•” ‘˜™“¥˜ŒšŽ‹‘—‰œ‡‰•‘›•‹””–˜˜¤‘ž…ª”•œŽ‘’’Ÿœ‘¡‡‘”’”’¢š”‘–˜”‘š¡““œ‘–‘‹–“œ—™•¥‘‘”Œ‘‘’ˆ ž˜“Ÿ–’–š‘–”–’—ž‰œ–“—”Ž‘–£’¤–›–x™‘˜‘‘¡•• ˜‘¥‹—™–••©™‘‘Ž˜‹•˜ž’–’‘‘•¡™Œ’ ”“’ˆ ˜š”Žž•Š–¢™œ•“‘““ŠŒ”œ–‘˜ƒ––‘š˜•’™“›…šŒ‘š‘›—’ ’““ ˜š “—‘œ“Ÿ“šŽ•‹—›””•˜ŽŒ—”‘‰˜š“¢§”„„ž’œ‘“™”§‘—‘››—Ÿ–Œ”‰Š–˜•˜”–‡Ž•“™––›“™•Œ‘Ž”•›”™‘–˜‘›”ˆ•„¢’‘–””””•„—•Ÿš–žš”š€•‘‘ˆ¡œ‘Ž›‘ž”‘Ž•“Ž–—”—‡†•œ“Œ}”‘‰’•˜šŒ™‘’–“¤›˜”™˜••œ”’’– ”š–”• š’–‘•’š‘œ”™Ž˜‘“”“’–™•š˜‘•“Ÿ™’’’‡•’‘–’”•š˜—’‹”‹˜‘‘™—’”•‘–“˜–”¬ž˜š‘›Ž‹’˜™’—†•”™“™”–‡Š™–“–—’Œ•’”–Ž•–” —›”˜™–—‘‘•”’’–™˜–’›’”™“’“–“•——’“Œ—ˆ£–š‘˜•—–—˜‘‘™‘˜–š’’’’”“”‘‹”‘—”’™Žˆ‘‘‘’”‘˜”’‘””˜•˜”’”š’’–˜—ŽœŒ¤—’‘”™œ•¡¢˜š““•œ‹¥ž˜š›œ—“‘Ÿ˜š—›œ™’’”ž”•™š˜¢ž•™Ÿ‘‘Ÿ™’’˜””™œ•œ ™œŽ‘‘—•’‘Š’™‘“¥šœž›Ÿ˜Ÿ— Ÿ™˜—š•œ‹ž™Ž Ÿ¦‘–‹ˆ¢’™•—“ Ž‘ ’§ž™™–‘ˆ‰“”‘ œ’“’š®ž”›œ‘’·ž““™šœ•”’¢šœ—–›’ž—“‘œš›““¡“Ÿ‘”™£’ššž“š—–’–£œ•ž“™Ž›› ±’¦–›“–‘Ÿ™•˜—˜Œ”Ž’–‘“˜˜™¢ž¡ ” ™ž› ­¡‘’”—‘—£Ž““–’’•›š—Ÿ‘¢–”™˜”“˜—–’–“–˜—””“”’‘–‘’”‘•—’’“œ—œ“’’•“’–š’œš“—’—••’’”•“‘’’››˜’—œ“–©œ™•‘”‘‘•“•‘™’•’ž›’˜˜Ÿ—™“› ™§’—›™’“œ™•”‘”–‘š†•‘š˜“–’›’””š”˜™›“žš‘“˜–˜›”’”Ž”“”’ ‘——‘—‘”˜™˜’—›’’Š–‘›˜šœ’™—‘”–˜‡“’šœ•–™”–“›’™’š—˜’—œš•’›‘““™˜¢–š™Ÿš›“–—“”“–’’›†‰›œ’¬˜‘’•˜©“ ¬¡c”˜Ž–މ¨˜‡­¡”¨˜›Ÿ˜ ˜’•š‘‘–—oŠŽ–•ž’“¨‘“˜›¡™•—žŸ—‰’’Æ–’‘’¬—š™”œœ£š™”–Ÿœ’—’¡¢š”2ƒ ˜™—¥‘¡‘š­š›—}Ž˜”’ —“’Ÿt~–’Ž––•‘¤”“­ ››¢ “_±Œ‹–‘•’›–•–’¡‘—’œœš¡•„‘“‚›™˜¨˜x—ˆ”•˜ŸŸ|“–™•˜¢¶“’šŸ“’“—¦“˜˜–¢’•“•¨†¦ž¢˜Ž¬›”•›“˜›š’’‘“šœž—’œ’’’”“˜•Œ•œ›—˜ž–“•˜™“Ž™œŽžŸ™–“š‘””“”““’›—˜”•›”—–‘˜œ™”“—•’œ‘—’šŒ”‘’’–’“‘“’ž˜“šŽ–’›••²‹”™‘’ž‘¤’™•—“œ–£™˜˜™ž“’¢“™•˜ š—†‘’––¡““’˜”˜’‘“”•—’‹”–—“š““‘™œ‘™’š•šœ–‘ž’“”“••™””™’“š—”›–™–‘–”–•œœ“”•––š’“£›Ž–•”•“Ÿ•˜””’ž’—‘”–š™ š•——Ž–”“‘–Ž’““•˜¡•š”Ž’’Œ™› ˜™‹™Ž“™‹Ÿ™—šš”’—Š—Ž‹›‹‘Ÿ—‰“•š’š’‘˜˜“–‘˜—˜™ž˜’€“š’‘“‘’‘ž‘“•Œ—”›•ž•¡y‹–•’› ”…’ ˜”˜˜›šŽ¡“ž‘†›œ¬’Ÿ‘•™‘“’Ÿ“—”˜Ž˜x›‹–’’“•–’š‘™–—ŠŒ˜’‘“–Ž‹–Ž‘’˜ŒŸ—Š’Œ‰“•™  ˜‰’Ÿ”‡‹›Š‘‹‰•‘˜Žšy“‹—š–”’š˜ž•ŽŒ“˜™››™Œˆ—‘œ’ŠŒ˜Ÿ—‘˜™ £––˜”•’‘“”ž‹~•š™’“”œ —•™›˜——š˜”™••œš®–—’ž’™˜ŽŽŽ”˜Ÿ“–¡”’Ÿ™­—˜£œ™’Ž™›“•™›˜‹›–›„“•’’‘“’™’™˜—™|’š—“Ž—†Š•’—£˜”™™šœŽ–•‘–ŒŒšœ’œ’’˜”‘•‘𥖇ˆ–‘’›—š““˜›Ž•’–—“”ž—•“Š¡›”’—–™“Œ“•™“—•˜–›š‰’—’‘‘šŠ†¡”‰•—”—‘–œ•’™›–‡Ÿ˜„”‹™“•—‘––˜›–š™’“Ž’Œ‘”‘ ¨¨•š¡…™˜œ™œŸ’“•”™ž ’†‘’‘’ŽŒ‰šŽ‘‘Ž‘œ•”«’‘’‘˜‘••’’‘‹“’’‘’”˜ŸŽ••‘Ž’‘’’Ž’”ŽŽv“’’““’–’“‹˜‰’”Ž’“˜”‘—•‹‘”ˆ—““‘‘ˆ¢†žŠž” ”“’““’’…”’““‰‰Œ‘’Œ–•‘Ž‘˜‘ˆ’˜—”•Ž“’“–”’™”’“‘’’••““”““–ŽŽ‰˜’†–’”–““Œ¤•““’“”•‘“‰ŠŽ˜‘˜‘Ž“‘“‹˜”—“‘‹“’’“”’Ž€Ž‘ŽŽƒ‘’‘“’Ÿ‘“—¡ •™‘‘—‘””’ƒ˜Œ–•˜›ž—¢—މ”™••—Š¡ œ•–’’™£‘”’€•ƒ£•’˜“’—™•£’œ‘™º––‘‘”£“’‘—–›‹ªŒ–¡ŽŸ“’’Ÿ—‹ƒ–š’œ‡—‡›Žœœš†›¦Žˆ‘–’‘Ÿ|“”–”—’¤‹®‘•‘›¡šœš›’–š’–‹”•šš’†Š • §•Œ–‘’——•¡‘Š“—œ†˜›“Ÿœ‘‘‘’®–“Ž¡˜¥’”“¢•w’–’–¥–‰‘“¦““¤ˆœ–‰“’”ŠŸ‘Ÿ’‘•ˆ‹£••¥£‘šœ ”Ž†‘‘“𔩖œˆž’’™”™–”Œžˆ–‹‡”’”“Ž‹•–•Ž‘˜œ”£œ“‘•’› ”‘‹”’“‹“𛓖›–ˆŒ’”’‘œ™’’’†“•Š¥—–‹™Ž’‰–˜’›—’Œ¢‘ˆ–“ ‘¡œ’’˜˜•’—”›…‘‹—–ޤ¡—’“—’¤‡”“•—••Š’•š–†˜‰— ”—Ž˜–”š›ŒŒ’Žž™“‰’’“‘Œ’”‘ Ž’”Š““’”¤““Ž•“š‘’ž‘“ ¡“„““”’š‘˜Œ‘•‰•˜Ž–’™’‰Š”ˆ‰’“’šŽ•Ž’´ ’“˜‘¢“ ˜”ž—’’–•’’˜Œ’›¢’”‘—Œ’œ”‡š–š–‘’•”£˜™’“•’‘••™—ž˜ŸŒ“…–””›—”‘œ––—¢’“Œ”“‘˜’›”š–¡—›—“’ƒ•›‘“‘’–œ—“”š‘•’Žœ‹—›’’ž™––’”˜– –””—‰”š’‘“‘‰”“‘’—˜™ •›•˜–‹¦£’‘™Š“—–’”ž”¢Ž’–‘Žœ’—šŒ›“—‘’” ™¤”™–›œ’‘“•›‹’”‘––Ÿ–””Œ—›•–˜—–—š–x‡Ž‘’’‘Œ›š˜š©–•œ’•’’© ’’’•£–’—”’‘•¨—Š“§”ˆ”“•Žœ˜ž–”“› ”•…š’—”˜”‰“‹“‘•Ÿ”•‘––‘’–—›’–“•𢉗˜—“’‘œ–’‘’’™”•™¡–•’†‘”ˆ“¦”˜š•–™¤˜‰r›Ž•šœ¥Ž±‘Ž˜¡“Ÿ¡‰Ž‘™–””—•™Ÿ•‘ž‘““•Œ’’–˜Ž˜y™“ˆ’v—Š””—Ž¡Œ‘”›“¢˜’‘’•’’›¢¢œ”Š‘•™¥Ÿ¢’š’—“—“ž˜ƒ’‘¬›“”•—“–œŽ’–‘œ—ž˜Ž—™™’¥‘“–¢“²–—“ƒ˜“–Ž¢~™‘’—™’›™™¤’‘‘•¤•‡™Ÿ¦™•“—‹–š˜ÁŸ¢“•””Ÿœ˜‘œœ—“““‘˜•¬˜›Ž˜‘ˆ‘’›‘‘˜–™•™Ž˜š ©“†‘’‘“‘‘‘¢–™ž“—£ •¨“”Ÿ—’–™‘šœ›’˜Œ¦“Ÿ˜…Žœ•™˜‘˜›¢Œ¡Ÿ–”Ÿš—”Ÿ„™’‘›’–Œ‘–š‹Ÿ…•Ÿ™“•—– …Ž“™”–Ÿ¢œ”Œ˜‘—‘ž›‘  ›—’’ˆ‘‘œœ‹¢¡š§˜•˜‘’˜››‘•—š˜‘› ’•“‘“œ“ž˜›‘†›’”’“‘›Ÿ£¥’’Š‹“˜’—•w‘‘—‰…”£Œ‹‘‘‹˜’†••”•””“Ÿš‹”{–‹•Š‘“–‹‘‰–™–Ž’”’†›“™“‘˜•Ž”›™‘𛔣ž‘˜Ž‘”–…Œ’“—•›ššœ–£˜’Œ’™“Ž˜›”™““‘„™›‹—‘šˆ›’œ’’”‹Œ—Ž”°—’“†–“”™‘˜‘Ž–›Ž–“’ЇœŒ‹–›‹”Œ— ™‘‘ŠšŒŽ”˜˜š”‘•ˆ˜ˆ‹’–ŒŽŽœ’”’”Œ“‘Ž–¦šŒ•𔑓’žž™‘—‘•…˜˜Œ“Ž‘’~’”‘Ž––›‘’’–•–—••¢˜™—‘˜–“™”‘šœ•—˜Ž›’‘“™‘‘”’˜›”’‹ŒŒ–‘’†œ“œ˜‡¤Ž‘‘Œ’‘Ž‘•™”‹Œ•’‘œŠ¥’”‘”š’š’œ†”¡ŸšŠ•‘ž–„‘‘‘žŒŽ”—Œ“‘•Ž˜ž’š‰•–’™“š’›’…Ÿ–‘Ÿ”ŽŠ”¦ƒ„“•‘žš‘‘–‹šŠˆŒ’’Ÿ‘“–…™‘”Œš•‘‘—•œ‘’˜š‘”’”–““Ÿ“‰•š”’œ”•’Ž’†•’•›Ÿ‘‘ˆ‘’‹‘‘’ŒŠ›‚ž‘—”–’“ˆ’•–…•™”””Ÿ‘‘’œ–•˜—›’• –“–œ£—™“•™–‘’™™—‘›‘›”œ”œ‘š˜• “™šœ˜’›—‘–—’‘‘ž–’–’˜žŽ™‘–™žœŽ–œ–——ž—’˜•š–š •”Œ•––“‘ŽŽ‰‘•˜Ž”ŸŒ–•™™›ŽŽŠ›•‘¢’–‘’‘‘š–•’•§œ•—“˜“•’”˜‘‘—š—‰š–’‘–ššŒ‘’š›‘’Žœ—˜’™‘“•”•“—šž†’š˜ž“œ“‹”’—Ž”—‘Ž”–›•¢’–‘˜‘‘’œ—“—“–’Œ–žššœ¦¥‘’’—•™š““’”——„’˜—›˜˜’‘ޛ𖑔“’‘•˜”’’’‘•’’•’š˜š—š–’š’”—•‘”šš–™…’‘’’’•’—•–”––•‘š–¡˜—™““š‘“™•”—‘¡ š›˜Œ‘›—–’–”’’”–’‹•‰—’˜•–Žœ••“‘Š“ž””’œ›ˆ›“Œ™–˜‹“Œ”““™˜’Žœ•œœ’—“—’˜”˜–‘’‹••’’—”˜–—‘šœ’’—ŽŽ—”‘’œ““‹œ—Œž˜Œ’”’›Ž—•‘‘™•›¨’“‘™—–™™Š‰‹Ž”“”‘›’“’“—˜œ”Ÿ—™‘’—¢¦ ˜™””•—‰˜‘•—“Ž™‘“”™™–Ž’ž’’‘™“š‘‘£—›•Žš”¤š–£•’ƒ—ž‘‘|˜’‘ž’Ž“™˜šŽ˜¡˜’“š§•›˜’«•š“ —˜›˜”™œ••’˜˜‘—¢¦›–ŠŽšš”™Ÿ–—‰š—’”–Žš—’š†•š’˜”•«”‘™•—Œ˜‘ ˜š”£‘…‘‘›’’‘šš””š•‘“¢y”Š‘•“––‘š~’˜ž‘‘œ—”“•”ˆ–›”ŠŸ™ š˜”“™˜‘‘•–‹š˜’œ˜—“‘š“’“˜–’’˜™•–”—’““‘š‘–‘”“œ•‘•–•”–’‘——’‘Œ›˜’–”’““‘Ž’’’—“Ž™…’’‘’“Œ”š•˜—•••““—’“’“™‰‘’Š—”šš“˜—Žž“•—–Š“™£‘•™™”‡”¤”•““—“’˜”›—”—‘©‘Œ’‘ Ÿ‘—’“—‘‘˜‡•–˜”¢“““šž™“•˜“Ž ’’“‘‘“™’–›˜—““”™™†–‘––”—Ž˜’Œ““ˆŽ›‘’”‘”ކ”•“ˆ”ŽŒ•–Œ’“—“‘‹š”•š”ª›•–‹““”•“’“’˜‰Ž‚™˜™‘’‘– – ”˜‘“›–•£”Š——Š–›˜š”’˜™˜’›š’Ÿ›‘’•š‘Š–’‹™™‘”›—š——ž–—›’’¡•’‘œ’œ––“˜—™œ‹’ Œ”¡œ™šŽª•—–™‘”œ –¤”‘‘–„—’–œ–’šœŒœ“ š™š–š—‘œ’–š—•”•’š‘–Š–›Œ‘–—‘˜’›’›’˜š™•—’‹“’š“˜—š—™œ˜•’‘•‹¢Ÿ‘’˜“”›”œŠ“•“™—”›œš¨•–””‘‹˜—•˜’”’‘„‘’›ž‹˜š™“œœ—•š•Œ‹’’—“’›‘“Ž’“’‘‘ŽŽ•˜‹’Ž“•‘’”–ŽŠŠ“•—’‘””—ž“•”’Ž”“™“—‘Ž”•“’•–’—Ž•““”’‘‡’’›“‘•Ž””™‘•™ŒˆŽ–•“ƒ‘˜‘’’”•”˜’’•’Š—•’–›Ž“’“•‹˜‘“–‹—‘’’”–Ž’“Œ“——˜Ž¢™“‘‘ˆ˜’”•˜—’Š‘”Ÿ†“’‹•‘”ˆ”˜˜”›’“’Ž¡Œ‘Œ–•š””‘Ž“’˜“‘˜‘Š™’Дޓ’•“‘“™‘‘’’•›“˜Ÿ—‘’’”—Œ•’“‘Œ¨—”§•‘‘“š§ž”•›Ÿ‹˜“‘–‰ŽšŠÊžŸ”Š—¡–—››—’•œ“‘—œÁ•ž†™‘ª’–™”’–šœ™Ž–šŽ ‚•Ž’’‡›“‘“’œ—’¡ŒŸ£’œœšŽ˜¤“›”£”•š œ›Œ—•‡šŽ–¡•—™¢’•ž¨Ÿž–‡””––™—›x™•’•‘“’‰’•š~œ”˜•Šš£•Š’——žŸ’œ‘Œ’‘’’šŠ’ Ÿ•˜‘‘™ŽŒ‘“˜œt›œ—ž—“—™’’——’–›‹•™™‘ŠŸ¢’–“œœ¢—Ÿ˜ˆ—’™‘’œš•¨™•’œr’•™ž— š’’›™›“˜‘—’’•Ž“ŸŒ‘•…‘˜™‹Œ Ÿš‰˜’—™•™•—›—•“–“‘™’’–ˆƒ”•œ—ˆ‹•Œ’—Ž•ŠšŽ™œ‘‘§˜’‹’‰””¥˜‘’žŽ–—Ÿ”˜’f‰š™Œ}–Œ‹ŒŠ™’‡†‘Ž–’’“—šŽš›…—‘‹ž“‘›¥˜ˆ•”’•…œ”—“‘”–šŒw¡Š’œ“ŽŽ‘•–“”Žœ‘œ’••˜’𤔛‘‘‰œ‘•…“Œ’Ž˜™‘•‡’Œˆš ˆ””’œ¢’”Ž›™Œ“Œ‘•ŒŽ„‘“‡‰Ÿ’•••“›‘’Œ§‘’ž•Ÿ•Ž•™‘’•˜–“ž–ššœ•ž–—•¥˜–˜­•˜ªš‰š—Œ—„ˆ––‘“”“’¡ž›–“•ž‘‘›““˜–– —Ÿ•š‰ž—‘’—’‘ž’™“››“•–˜œŠœ¨”•™”›—†˜”˜•–ž§±Ÿ‹—”“ŸŠ ’¢”›ƒ–”‡‹““™•žœ–•’‘‰Ÿ˜“ª’’“˜›–šŽŽ“”Œ†•‘’”—¡’š„’ž˜–’—˜“”𕔙ޕ’‘ž•–™¡†’Ÿ˜˜Ž‘˜”’”“•œŒ“‘Ÿ™’’“•Ÿ™˜žš‘©‘‘™‘˜•œ™§‘–—“”—˜}Ž’’‰—”€–Ї•’“’Ž’Œ—– ””“Ž–•Ž–”Ž•˜—š•–‘šˆ“’’“’”˜–“”¡“’“Œ“Œ“‹Ž‘‘‘ŸŒ’’—™“’‘’“—Œ•…’‹’Ž™‹–Ž’}’“•ˆ––›”–“’‘‘’”Ž” •“˜‘——ŽŠ’’‘ŸšŽ’–’““Ž…“””—Ž’˜®–‘—¡šš’Ž”• ‹‘ˆ“’—’’”‘–Žš“’“–••‘œ‘’›“’—“‘”’˜‹’–’”†”›”‹”‘’‘ŒŒ‘‘‹“‹‘Ž’’”•”–”𠆕””‘‘’šŠ’“‘–†’˜”’’‘¡Ž”Œ£Ÿš™Ÿ’™”ž™”v——”‹™˜š“–‘˜›‘–‘ž›’“• Ž•¥“”¤’—‘¤œ‘’˜‰…–Œ‘‘¬“‘‘¡’› Žœ–™‘Ž™“•‘‹Š”›”˜”››•ž—’³“›œ˜˜“†›œ‘–šŽŽ’œ ŽŽŽ–—”Ÿ©“”‹’›—š’’‘›ž’š‰“’Œªœš‘’•”——‘•“ ž’ ‘“‘‘”—Ÿž¡—‘™“‘’Ÿœ˜ŠŸ¥—“’”›Ž‘˜ ”•—š“’’‚‘œ•”•—”•˜•œ—’š‘‘›—¡š‰’‘¥–Ž£œ›™’¡‘’”œ“œ•ŒŒ”’‘•‘“’’¢ŽŽ”Ž‹˜Œ“œ’“’šƒˆ•Ž›’‘‘“‘‰Š˜‹•›ž¥‘ŽŽ•’—˜——””˜•””–‘‘‰Ž’‘‘’™•›‘Ž“•—}œ‘•‘Œ—’–ŽŠŒ“™˜‘••Ž‘‘š‘‘ž•”Ž•–‹œ’›Ž“‘’‘މ‘‹‘’™ ’Ÿ’ž–™—•™ŽŒ‹—••‘“’›’“—’Œ““š’‘Œ˜‹Ž“‘—Š”—™”’‘””œ”Š’’’‹’‹•“‘‡‰’’Ÿš•–‹‘“‘“—›£œš—¦˜ˆ——‘’˜’’“• “˜”“•”“’’’œš’•‘‹”“’““™“””’‘˜––™—‘™’—’’’“Œ”—“‘¤‘’–’“•‘“‰‘—”’““—’“’‘’‘’”—–••–›’‘ˆš–‘––—“Ž’–““‘ƒ““–••–“‰–›’›— ’’”’””—”’”މ‘•’‘“•”‘Ž’‘“˜–Ž‘ƒ™’—˜‹“˜“—”’•—”’ŽŒ’•’“““š“Œ•Œ’’“—‹”‹—’“’””’Ž’’•”••–’Ž•™”“›‘–—“Ž•’’”™ž“‘’–‰‘“–•‘——’“’‘”’ƒ’—š—’“”˜˜••“™›Š™”¡’“‘š‘…›™”‘œš–”“•—˜•“——‘’𙕙’™–¤’›ž”•˜–”–’š”Œ“’’‘˜“’›“–›˜™Ž––ŸŽ—”—‰‘–›’“”’™’™Žž–‡˜™•–—Žš’—“‘›˜•“Ž——•™„›“’•‘•”•“•••–š”””“—‘—“™”—›“‘”“›’‘“š–”——›œœž–™š’›™“˜œŽ–••˜“¡¡™’”—™‘”‘‹”•™š”””•—•œ›’£™”“’’’œ”š—•™‘žŒ”“™š—š•’“”“ ––Ž“”™“’“’–•™–––““‘•‹š““œ“”“—“’–—•˜“—‘œ’‘”’‘””“—œ˜š‘–“’–•“’–”—š†““’˜“’’•’“Ÿ›•“––’Ž’“‘‘•‘˜’•’–˜˜“˜šš““Ž““›•Œ”Ž“’‘”‘•——•‹ŠŽ““”™“˜“›“›–™‘•‘|‘–•‘•˜”›™”‘’‘’““–’™“–’’˜”š•‘’—‹”““”–Š‘•”“——š‘‘“”•’–Œ–—’—”š’Š•›’‘‘‘‘–’™“”““¡—–’’”š’•”””“š˜’““ž•˜‰š™’“•‡–¢—“‘”™’—Ф—œ“ ¡‘™’›šƒˆ“’—‘•‘“Œœ–™™ƒ˜Ž’‘Œ““•’‘”ŠŽ“ž—’’¦–“’˜“‘˜ŽŸ˜Žž†˜‘œ”•¡‹‘˜’’““ •’••–“–˜›’‰’”Š– “”—“Œ£Ž˜”•’‘£œ‘“¥“”‰˜œ•š”•š•‰”“”š’œ“”†—œ“‘“”˜’’Ž“™—”–’””˜“‹Œš’™•—›•‘“Ž“¢ˆ”¡”š”…””’•’——•”ž›Œ’œ’”“’Š“š¢•Ž™•’Œ•Ž’“”›”•†–•–‘’’œ‘‘–š‘™•—Œ’”•˜““¡‹–š–˜—˜•‘“•’“–’”œ‰’œ—‘’••”—‹¦”Š—Ž’’“‘’‘”’Œ˜–¦—™”’‘«“‘“˜—™ŒŒ–’”˜•™—ž”•š¥œ‘ ‘‰“‘’—‹“’‘‘™—–™ˆ‹”Š’”’œ™š‘Ÿ‘šŒ’‰—“–ƒ—ŽŽ˜™•˜˜’”š•˜’’”•‘•™œ™‘’”Ž’‘’›™—“™””ž˜–”––’˜•”™•™‘•’–•””–’˜–™˜–¤’’’’––‰™“Ž™˜›œ—•––€”‘“’••–‰”“¢•’’“›™•‘™š‰™”–‘–“•˜–•–—“Ž™¡’’’”—”Ž’š–‘˜†“¤Ž–›Ž‘“—›’••š— ’””£Š•“’’‘“’š’š—–”•š”‚œ™œ•œ”•“’‘–œœ–“Š˜‘‘”˜ŒŠ‘“–˜šŽ’““”•š—“˜”’”’–’“”’’’”•’š˜˜‹—˜›Ž{’•’’’–’ ”–“™‘’ž˜•–””˜’š‘‘‘‘’“™Œš™——“’”ž’–ŒŠ“••’–š©“™Ÿ‘“‘’š˜ž™”œ”’‘£’’£›’Ÿ™•—‚‘•›—™–Œ‘’’š’Ÿ•œž—’’’œœž‘›˜”–“Ž‘œœ§—¡™Ž—‹”–’–•”‘’Ž’‘“šª”—‘—¤’—Ž–’›—™—’•˜¢™™’‘‘’‘’ Š˜™„“”“™‰›§™”¦’ž”˜ƒ‘™™—‘’y•”ž”›–“‘Ž•’‘¥›œ‘•“–˜–“’’ ‘š–’›“š’‘Ž’–’Šœ“—‘˜–™´•–”’””“’–˜“ž“’˜—’Œš™˜˜’š”’‘••’£—œ–‘˜•’“¢“——“•–™””šŽ˜”‘”–¦˜—š•–‚•“’—’”‘˜™¥Ÿž“‘ ’““•œ™œ’’’—”—––•’“‘˜—š —’‘“”™“˜—•Ž••’˜•’™“’–•”“•‘’Ž–‘‘—›’˜–’—“’ޑ𒙙•“‘›”“”••’’•–“‘˜’‘—™˜œš––ž””š˜—˜•š”™–˜—–‹–“‘•ž–’––œž˜—‹ž“–”š•––ŸŽ•—‘˜’–‘œ’•”›—š’Š”š“—™Ž˜‰’––’’˜’‘’”™––™—™“‘“–˜‹“š›’Ž‘–’–𔓒”–›••”’š“Ÿ””—–˜———›…—™’˜‘“‘œ“—š™Œ–™–—”–‘š’’Œ““˜“œ™’’–œ—˜Œš—™’—“•Ž˜—˜|•–‘˜•—œ—˜’œ —Ž’›““‘— Œ™›”•Š’˜—˜‘”š—› ”—’™”‘‹’’•”’‘œ’“›™š¯’–”‘”›ª™’–’“•’–š•žšŽ”–•™‹˜’•™—Ž›”’“šœ—Ÿ’šŽw–”‘‘•’™˜Œ’—ž•—Š™…›–œ‡u––“–—š––’•Ÿš•”‘œ’—™‘–—ž””–‘”•‘“–œŽ–œ˜–œ”—š˜˜’Ÿœ—¡—“—›”š’Ž‘™¡˜™™•”™‘›‘“˜˜Ÿ“”ƒ —–˜•™”z”’’‘–“•‰˜–•–’’Œ˜—’—‘‘–”•“–’””–•“‘––™—š˜’›’š‘’’–’’•”š˜•­‘—’—’˜•“—•š•¡Œ—”•’’—˜“’—’”–•–’‘’œ–¥•“˜’—˜”£”–˜‘’–••š™—›’ž‰’–‘“‘™˜œ˜“™š“””‘’Ž˜˜”–“’˜¡™—˜’—“Ž“‘–—™•“–œ—’¢“™’Ž˜’š“š—Œš—•’“ž’‹”’’œ–—™‘˜›”•“™‹š˜š…“¢’’”’“”˜—Œ—–‘—’—˜‰–—”ŸŽ˜š’–µ’’Ž™‘Ž”˜“’—‘™”‡–“’®“Ž•‘’’—Œ•™š’™œ¦ŽŽ“˜”’’””•‘––­–‘’ “““‘¡““’¥œ–¤Š”’’“’““˜“œ˜’›‰—“˜”‰œ‹”–“†–•–Š—–±”–‹£’£ˆ—™’¢šŽ’“™Œ–””¨‘•Œ¨’”’‹•¢””’ˆ©™–’˜š‘•¹“‹—œ™¡“˜’˜¢Ÿ‘™—”’“ “‘“’ŽŒˆ“™’“™’Ÿš•œ•–”£¡“¦Ž•ˆ¦“•Ž“¤‘““™–Š“˜ œ¢““”š—š—š’Ž“¥••—”••®Œ““Ž‘—Š˜˜˜’’‘˜ž‡Žš”–˜”””•’‰™ŸŽŠ’—˜“œ––’’‘‘‘—•˜‘’”–˜“‘™–‘Ÿ–’‘’‘“›™Œ•’‘™’’‘—’™‹–‰•š”’˜˜›•¢”™š“¤’Ž’’•ˆ—–Š•“’ž‘–•’š˜œ˜•Ÿ’‘”˜“”ˆ‘”˜‘’‘‘‘…’—•Žœ‘˜‘–‘–’›œ“‘’“•“”£•“˜’‘‘Ž’—‘™–”‘’˜•‡Œ—˜˜—“‰•˜‰š“™’˜†œ‘’’›—™–’”‘——˜–—Œ•›’•’”–“’•—ޑЖБ“–£’‘“–‘™’“”“•’’‘‘™”š˜—™–”“œ˜š›‘—š“–˜•–”—’—–œ–’𓒓𖕉—•˜Ž’Œ’’“•˜—™š•—”’“›œ’’™“”‘˜‘•“š•——˜™”Ž—˜›‘’‘–”•—š˜¥˜“’œ“ œ“™’—˜”˜˜‘™“œ•˜ž•œ‰—Ž’™ ”•“š“•‘›‘“›–•”“”˜’——–’Œ””›’“““—’—–“”™—›‘›’••“˜•œ• ˜’—”’™ ’—“’™–›–š‘“‘”œ‘˜“•’Œ’”’‹—˜–’˜š–œ‘œŽ”•š›”’’“–™¢•˜“™•““–’’šŒ››˜‡˜–‘‘” ˜”“’•™“–••–›‘‘–‘’Ž”—•šœœ ‘——“’›•’’œ•š›˜‰’‘˜™“’’›”•™¦–Š•›£•••‘’™‘•”››†š“›“ž‰ “ž’›ž•Œ•”–‘—‘Ž–•‘“”˜˜““”’¡š¤“ž’•—žŸ—‡™Š””™—–’™œ™™”£“–“‘”š—‘”œ’‘””¡“–’—•›–‘“¤“•’™–™¦¡”¢—“•”¢“ž’“•—“–’œ“’•—šš”“•——™‘‘£™’““œ˜Š–š“’‘ššš—Ž›˜—ž–™”˜’™›Ž‰›•‘—› ’”’’•˜’š‘š›–”™“›“‘“œ•“””›–‘™š˜—‘’’’”“‘š’›™”‘•••”˜“‘“’’˜‘–Ÿ”˜•›š”•œ™š‘—˜‘ޓ𒖖“–—”‘—’œ’”  —˜“’œ–“”’“’š“–‘™•’‘—”–š‹““™”›•’š‘˜š”’‘’”–“œ–¡›™™’—•‘‘–”¢¢œŠ•–”š’”™‰’•Ž•”•”Œ”šŸ›’—“–“•—‘š‘”—‘’š‘’Š¦ž•“”ˆ—”—™“•Œ—’’’ ”•…¦ ”‘’”¤“• ˜’—““ž–•˜§–•£ˆ––¢’šŒ•‘’ ž”—’’‘”’”›‘ž••Ÿ–’–’¡’•—ŸŸšŸ’ŽŠ¡’’§ž“‘˜“‘’ƒ–›šš‹£•u ˜˜§ ˜‘­•••›“ž”‘›‘’–—”’›–¡”‘‘ž¢š¢”˜Œ‘”•‘–œ’‘“—™Ÿ“—™¡–“ŽŒ–ž’…ƒ•–ž’—¥—‘‘“’“‘“™Œ˜žš’•’’ž“˜”‹¢—“””£–ˆ’˜••ž“›”‹”‘™— ”™˜™‘£Ž’™‘““—Ž“œŸŽš›œ“–«’’’“–¢”‘–”“’’–•’’Œš‹˜“’”Š–”“˜˜’‘–•—˜•’”’˜•–‘Ž’‘’‘—‘”—•–’™•”™’‘–’‘’šœ““’‘•“’“’•“‘—…—”•—””“‘‘“Œ‹‘—’”“’”„¢‘“™Š’”‘Œ’””‘–—–•”“—–”˜ž˜Ž’–™•“”’™•™™—›’“𔕙—”–›™™’™’•˜‘‘•’•’’š—“‘š”Ž’’—˜”’Ž•‹•”˜—’–”•’“”’“š‘š˜‹’“•˜™™’–•’•—‘“˜““‹“‰˜”•˜’–••“‘Ÿ—‘“’––šš˜•–“”–‘Ž’Š™”“‘œ”‘™¢™—”“•’›‘•‘’™“˜”•‘“–““”•’–“’–“žŽš““•”’šŽ™•’™‘““¬—”“–“•’•˜“’•‘˜™ž••™”—”•˜‘”’‘’•‘£™Ž¢š—“ ”›“•ŽŸ“œ•Ž“‘›•”–‘¨”›“‘“œ•““˜––𢛔‘’¥””–‘’“Ž˜“™™•”—“œ“‘’”’””–“˜•“”œ”Š—ž›”•”˜“—‘‘”˜’”š”˜–˜‘“””•–•—‘‡œ“˜“”’“–“˜–”œ”™’”–™“”’‘’›Ž’Ž““’’Ž–Œ’‘ކŒ‘Ž““”‘yŒ•‘”‘Š–’‘““‘‘“Ž’‘’““Œ˜‘‰”’‹”‹’”“”‰’‘”“”’’“’‰‘‘›Ž“•”™’‘‘”’˜’’’Š’“Ž“”˜“—••ˆœ’“Š’“Ž’‘’’’’‹Œ“‡‘’’š”’‡’›–‚“‹’”ˆš’”–”ŠŠ’‹‘“™“‰“’ŠŽŽŽ‹’‘—’‘’š’„•”“‘’¤•‘”˜’’ ’Š˜’”“ŠŽ‡”Œ”—”““‹“’—†‰Œ“‘—•‘‹’“‹‘“˜›•›šœ’“’•’•“’¨‘‡™–˜‘™šœ˜Š™©™›–™”˜š–—’’”–˜’’˜•|š˜˜™ˆ‘“—š‘”–™“›’––ž‘™–’’µ’“‘“’œ•˜”“–”˜œ› ˜‘«˜•˜“”’œ”š™”{œ—¯“¢Ž—£¨’“•š“˜·™’œ—’•”ž–•’š›˜“‹’¤•Š—ž™™žœ˜š‘“’™˜›’š˜š’™ ’’”–šœ›ž—˜™’‘™•”œ“—••˜“ ‹˜–’—–œ˜˜˜œ’Ÿ•“”’£¡•‘—•–‘“‘“¢’”“¤¡ ¡—ŸŠ¦™˜›–š–ž’“‘š‘ž’š‹”’’‘ˆŒ™›˜’š‘–’›š‘•™”–š’”–’”—•›™™’’”’“ކ˜Ž™š˜†’”Ž’™˜•™›˜›¨—œ‘’˜‘‘“’‹—Œ¬“”“›‡—Œ‘£žž˜Š£“”’Ž•”–•–“›—˜“œŒŠ’˜Ž’›Žž”›˜”œ™–’’––™’™’—˜”Ž‘’š–˜‘ž“™’–Ž”’‹‘ž–˜›“–’—““‘””•š“—‘‘‘œŒ‘Ž—•’’šŠ›’•Ž”››‘“˜’•˜Œ•‘Œššš”‘›’‘ŒŽƒ“‘—”›•›Œ‘‘•˜‘‘’Œ—–•ޤ˜’’“Œ¥Ž™—ž§”Ž“‘“œ‹¤©“““™’‹œ–“•’–˜’‘—•¢“‘”“—’’’ ”‘šŽ›–•“¢¤Ž”‘‘†“’‘Œ’¥•š–—”™˜™¤—”£‹‘–“˜‘’˜ª‘˜–š”˜•’‘˜žž~’“’”“ˆŒœ•’˜‰Ž”“’˜““œ›–œž“¥š“’— ’ž—–ž™“•’™™”¢’š•‘‘”ž‘’¤••©˜’˜•Œ–“—“–‘š¢ž‘—”¡‘•••–™”–˜“‡•’’’––—™§˜‹… ‹•’—”‰’’ ”˜Ž˜š’’’šŸ’žw”™œšƒ–Šr”ŸŒ‰“Œ—•”˜–›Ÿ’£•‘’‘•z””ž›‰“œ¡˜œŸ‹–Ÿ ‘±ˆ‘‘–›’‘™’–™’¤‘˜˜Š––Š’‹›”¥”‘—ŽŸ“˜x‡¥’ ’‡˜‘›Ÿ‘–™š‘‘‘˜˜˜š£‘˜’•—œ‘ œ¤Ÿ•‘š¤”i Ÿ’ž›”‡‡’—•£š‘’’•‘•—Ÿ •”˜Ž‘†”š˜œ‰Ÿ•›’Š¥—ˆ’Ÿ ”›•’–„œ”›””–’—”¥¥“–‘•–Žš˜Ž™‹˜­Ž’—•›•¢œ‘’”¢”‘—ž˜’“–›––œ˜šŠš™™“‘›ž—’|˜ž””Š™–Ž–”•““•“’’–“†••š —†’™˜˜’žš˜”–—œ–“‘š’’Ÿ““’Š’¡™‘›’–’“œ²•”›•”——“–‘—žšœ„š‹•šœ“œžš’•ž§–’‘’Œšš•”ž§š—’žŒ‘›‘Ÿ“››™’”“™˜•˜ž“–”•œ˜’œ“–—Ÿ‘’——”žœ˜”œ’“’š“ •›‘””š•’œ˜“™›œ’™™Ž“¡™™“““š”ž›š•”™šž’•’‘–¡–”˜•œ••“Œš’“•—–ž›˜–š–’’™•˜”’™—Œ™•˜’œ– •‹˜›š˜—–™–™œ—’•š‘š—š˜›™ž’˜œ™’—•™•—”’™——–‘’’“’‘™’–—’˜“–˜–”š•“—˜•˜•–“š–—–”–˜š—™‘’Ž›’ž™š•š˜›”“˜–š™’˜‘Ž–’‘™•›˜’”’•›“ŸŽ–‰•š‘š—’—™——˜’ž›•—”‘ ’—””’›‘–—™˜š˜‘‘››–Ÿš”™™•”‘˜•“›•š”˜›ž“›š”’’™˜–˜˜š›œœ›’¢’“–™–œ™——ˆ“‡—–––•˜˜’’™•“‹‘•’”““–ŒŸœŽ–•‘–“š‰––”œ™•–““’—‘š”–—“’•’˜”–Š—‘˜•“’“’“‘’˜“™’•‘—”“’’‘”“’”’”’•“œ•—–˜“ˆ“—–‘œ““Š“–š™—Ž’–ޕД”Š“˜’”‹Œ•¤œ“™“–—— ”–’—’”‘œ’ŠŽ•—“™¢˜œ”—”˜‘˜”““‘‘‘•”’“‘›’••–š™™“•’“ŽšŽ™š••Ž‘™’–““Ž•˜Œ•Ž•’–”•—’—š—’Š“’”—œˆ•’˜Ÿ““™“––œš”’“‘”•—Ž’‘Œ•’’””‡—›‰”†““•’”•œ‘Œ‘ˆ’’’“”•””’–‘”‘“”‘‘™——•’‘“•‘”“”‘™–”“‘‘“’•’’’’•”–“Œœ“’“•—˜œ’Š“’“““’’’–†—“–”˜““¡‘”“–‘’Ÿ‘”““‘“•—“–‹–““‘–”–‘™’—”–“¢”¤”š—š Ž’—––”•‘”’”™–œ’˜“˜–“”“”—–“’–“ŒŽ“ •”––“”Œ’–’’†Ž”’˜š’™‘•–“’•”–•”Ž•”“›’”’’”’œ”•Ž“••’¤—‘“’ŒˆšŽŒ™‘’––’–ˆž„Ž›’•¡–‘††Š•””Š–’ž‹““’—Ž’•’’ޤ“Ž‘¡…”‘‘˜”—“”¡œŽŒ˜’‘z”’’“’“˜’™”‘Š‹‘”™”—‡œ•’’–˜ŠŒŸ€‹£—¢’– ”Ž‘ž•“žœŽ‘„„œ–v„“’‘Ž™ “ ’Œ¢Œ™–•‘’ƒ•–ž•Œ€’‹Šš‘“–’“‡‘—™“‰šŒ‘’Œ—Œ“š•——–ž‘’‰“’˜’ŸŽ—•¡’…˜’•“›‘އ’–­¢’”’”š’‘™˜‚•’“’–œ‹’’›”‘•“˜˜˜’’’’––•ž™”…”›–‘š•™Œ›˜š–ˆ“—šš–•š‘–”“’˜‘’™•—•‘˜–˜’›š•“”—••˜• –™–“˜’’¢•“‘˜’”•“–™•˜˜™–™Ž“–•’˜’”•—“‘’}–’Šœœ•“’—¡––‘’’–’“—“““’“Œ–˜’•’——“–™••”—”’Œ™’‘—–Ž—Œ’œ”™—’‘“‘“’–•–––•–˜’“‘–——Ž–‘’˜“˜˜“•“˜–—š “’›˜•‘“›“𔓕–œ—¢‘’•Ž–’””–’““’’•—”•š’’“”™’–‹‘•“˜““•’‘”“•“ž–”—š””•‚‘™””“•™˜•”‘“•–’“””†––’’’™““’’•‘”–•›š“““‹““¤˜““”““•—‘Ž“”‘–˜•™•–’”•—–Š”œ›—œœ—‰Ÿ›‘™“˜‘’‘‘”“”–‘—•˜”““’š˜˜—›“‘•–“Ž—•’“˜“˜š£¢•“˜“––—““‘’–––”‘“——““˜™•“˜•Œ——˜”–“¢•š“”’’œ‘–”‘’”’”–’“’”“—™Ÿ¢“‘’“–•’–“—‹”’–••™—•““’’”“‘‘–’‘’’“‘•—Ž‘œ’‘œ•’–œ’–•–˜™š›“”‘™•’›–•𔓒˜–›‘š˜“˜’•›’’“Ÿ’•‘‘’’“‘Ÿ’‘˜“˜•›”Ž’Ž”‘¡“ž’“Ž’”™œ•’‘™š‹™‰‘˜“ˆ‘‰•”Œ—Ž‹““‘”Ž’“”Œ—˜•‘˜‘—–’’—”—”—™ •’––Œ“—’’“—–’™˜£’’‘›““›•˜Ÿ›‘Š—‘‘‘“˜‘Š•˜˜•”‘œ–”™Ž“–—ž”–’“–‹’“’˜•”™‘™–Žˆ“‘—‘“Ÿ’•–”’”Ž’œ•š™–’’’–—£¥–Š““‘”Ž”‘”˜–•›’Ž›–—›ƒ”‘—Š‘””’”ˆ§š”’“™’’—š˜”—•’‘—’—‘’”–‘˜‘—’’‘“’’¢Ž“’˜’””ˆœ‡“”•™š—š—’Ÿ ‘¨’”••‘›| ‘£Žž’Ÿ™“Ÿ–“𓤖’“—§‹—‚“£—’•““‚‘’’z“’›”’–šž “”“¥™—“†‰‹’™“™¯”™’“œ“”““••”””‘“•’’š™‘˜’—Ÿ™Œ€•”žš•›“—Œ‚¤”’“¡’š•Œ”’š‘™™‘˜”œ’›“’–”™’‘”‹†”Ž˜”–”ž“’“”œŽŽ›”–’’™œ’“™œ”š›œ—˜šœ’‘—¢˜•Ž›¢”–˜”š•™šž›“š”’’ž›”’Œ›‘ •“‘”—™—š‰”“–›—’’­™“‘œ’–——“Ž›—™—˜—”—‡£•’’¦’š’”––“°˜œ–‰—“‰’’Œ•‘–”›“ ¡Ÿ—šœ’£™“‘™¢–“’š“—œ’—™œ™—‘Ž”˜“Ž•›Ÿ’’™—›Ž‘“’•–’——”–˜™ž•’‘š–™›˜—–•š—œ” ••Ž“’™“š—˜˜’Šš““–‘•”‘–•™”‘‡‘Š’”Ž–•‘• ™“•˜–“˜ ’’”“–‹‘™’’““’‘™˜‘’’’•˜‰›‘’ŒŒŽ“—’“”•“”‘“–’’’“’”Š˜——Œ‘’”•“—‘’˜ƒ”“’“—‘’Ž‘›“—”’šŽ‘“™™•‘”’–’Œ—””Ž’˜“˜Ž˜”•Ž™ž”œ’“˜“’‡‘”’‘’–—ŒŽ“‘—“‘™’–”‘‘—’™›•“‹“’–••‘‘–“’š“”œ‘Ž”’’‘“’’Ž•’’’•‰’”Ž“’’–’•ˆ–‘“Ž”•“˜’–Œ–•‘”–“Œ”’—–’š’“™”œœ™™”“•—’’“—›‘‘“’”œŽ–‘’“Ž‘‹šš‘š““šŒŽ”Œ•–’”˜’ŽŽ–Š’”’’’“œ—›“Œ“•’‰—š’—‘••‘•Š‘™Œ“’’’š“’’”“™’“™”™—–“–œ—–—“¢“–•–”˜‘‰„‰‘““’’‘’Ž—‘”™”“”‰š’’“™‘Œ”’“Š Ž—œŒ••“´•”“˜’˜‹“”’Œ’š‘’Ž•“—˜“›‘’”›“”ž‹‘‘”–Š“™“‹‹‘•‹’Œ”‡–œ’“‘––˜›˜‘’ˆ’’‘”˜“’•™“™¡‘““•››˜’’™™““›œ™—“’–‘—“›”——š‘’””—””™¡ž—™œœ‘•˜–’‰Ÿœ”—’™›’’š“™š’”—š’‡–—“’š—š”œŠ—‘ž—““ •“’—“’–”—™Ž˜¤——•Ž–š¡›˜’˜“—˜–‘“‘ª”›˜‹‘š‘—“ŽŽ’”–¢’¡¥™•“—’‚“““”˜“‹’“”Ž‘–‰Ÿ˜™Žž—“Šˆ™˜’•••›•“”ž’“”’•—’™’“’š–‘”’™’“Œ•”¤˜–š’‘’–ššŽ‘”—”’“”‘•˜–‘–“Œ“™“‘— •—Ÿ”•’š•—™›œŽ’“•—•–š˜“’’‘–•”›žš˜‘œ™–•“Žš“œ•–•—œ””’™“•’“’“˜’—”•“™‘–•–’“˜›—•ž’––’’›•’‘š’“™–”•š›’‹“š˜•“¡–– ’“™™Ž•‘¡™›““–’—•’’‘Ÿ’““𛋓“•’”™”‚˜œ“‘™™ž•‘‘’’“™˜—˜Š˜•”“£’˜”–œœ’’™–’’™’‘”“™˜˜œ›•›”‘•—›—™œ—–”—™“–•“•“”𙕓‘‹“—–’‘’™›•“›”–Ž”’›‘“˜—‘—™•–“Šš‘–”—šŠ’’”šŸ˜—˜š•–’’•—•ž™”˜’›‘•’’’˜”“™š“™••—›Ÿ–—“˜’•‘’‘”Ÿ“ž•”—–‘™œ”›ž—’“›œ„œ•‘“–’‘š’™š“”™••„•”‰›‹’‘™”—–™–”˜•¢”œ“’ˆ—– ’¡—›•‘—˜–ž™šŒ”’’©Ÿ”‘”’™—–“¤‘—š””–™”—”—‘˜š–™—“˜’–’’“™–™Ÿ””‘““’•ž”žš‘Ÿœ”ž˜“““™š“›••›‘›“™•“š—œ“–ž–’–’”›™Ÿ¢“—œ§–Ÿœ™—‘¨¤’’——•”™”“’“’“•‘˜’’–ˆ‘—”””“‘£’”–““Ž–™””‘‘•“–‘𔑡““–‘“””•“‘›œ‘—œ‘‘’’”‘‘’”’—‘Ž™’’™•Š–‘—•“š•›’’”’–•Ž—••›“š “›•˜–‘Ÿ“š”“–š’”ŸŒ’”‘‰‘ž”›“•š’‘““”—™†—“‘”Š”’“ ‘“–‘’˜“’•’““‘’•”’‘”’••ŽŽ’˜Œ’‘““˜–—•Ÿ’‘—’“””““™–’“–’’“—•›š¢‚’—“’“”¢“’““’“«”™š’’™‘•Ž¬Žš–•ž—Ÿ™¤˜‹‘˜—“˜‘•›—’—’’’“‰•—‘—’’’¡—‘”“”— ‹Œœ˜˜’’š˜“‘š’š–¢—œ•–“‰š•‰–“’•‘‘“—‘™’£u ‘‹“žœ‘••—’•ˆŒ”™’—’›•Š–›˜‹›–’”£“’˜“ž’˜—Ÿ’˜•œ”‘¯‘•žžŸ¡Œ’‘Œš˜Š‘—“š‘•“•“–“ ‘“ˆ”’†–ž™—•—Œ‘œ’”¡™”™”’…–’“™’¡Ž£–‘™‘‘‹’’™›–‘™žŸŒ¢Žš”“’‘”’“‘“™“’”’““““Ž™œ‘™Ÿ•™”’–“ŽŽ”Ž”Ÿ•“’–”““‘““’˜’—‘“’˜”˜–’›‘’’’𔓖–’”–’‘““”’’’—’—–Ž‹’•“š˜––’—“–’œ”’™œ”§š›ž›’—˜Œ™““›žŽ”””“’”’’‘Žˆ”““’’’’“ž’š˜•‘˜“•š—”•’’’‘•œ’’””Ÿ˜’”‘“˜‘œ“’—’Žš’‹”–š’œ“”‘˜“’’“”• ‘“™—’˜“”‘‘›šœ”‘“”’•“™“‘˜•˜˜›™“—“‘““ˆ”““——‘”—Ÿ—’“˜—”™Žœ—š—›“–‘™’––›ŽœŒž˜™–—–šŸ•‘ ™‘œ–‘””“š”’‘•’“–™™‘–—–žš’’ˆ•“‘’™™˜™œ–œ’Š™¦‹˜–‘›“’ —™˜“𢢙œ“•’ž‘–Ž˜˜š‘‘–”š‘—š–—•—œ“‘’——“™’™—š˜‘•™›’¢˜™’›•—š›’˜–—Ÿ”Ž‘–‘˜œ›——”˜•˜‘’™œ’•›‘‹™•–™’”—–›“™¤œ–š˜™•†˜Ž’˜’™•–š—˜™‹–•’’‘‘••¢›™’›“™–’œ–Œ’’•””•“’’“’“›™•˜–Œ’’••–’‘‘’‹“—“•—™•ˆ’’’‘‘“’””““‹—’˜’™“š˜’”•”š•Ž’–’’—š“’–“˜“Œ’›“‘˜˜ƒ““Ž’”–Ž‘“”’–™•”žŽ—”Œ‘—‘Ž“–˜–”‘’”‘“‘އ—”Š—’“•™˜”™“š‹Œ—‘‘¡Ž”“’˜˜”“šœˆ•˜““””“’“ˆ”‘–’–›Ÿ”–“‘–Ž‹•”—•“•’–‡“—‹–Š“”™’‘™––‘‘’”œ”–‘•“’•““˜‘¡”‘“”“’Ÿ˜’“”•”˜¨‘™”‘“““—“˜—“š–‘š”š–”˜———š’˜˜“•š–ŽŽ““”——”“œ•™”™—”’’™”””˜••’˜”˜“š’“‹“’•“•š•“˜’˜•—“”™•˜•“›”˜•˜“˜™¡™”˜˜–’Ÿ™›“˜–Žˆ“—’‘›––™“–“šŒ‘“’˜“ Ž”‘™‘‘—˜”ƒ’•‘”Ž‘–™“œŒ“‘š“™“˜˜”“•™š‘““’“”˜™”˜‘‹’••’Žœu“’‘–—’›”“—‹““•”“˜—”•”ŸŽ’™’•’™”•““•“’•‘›—”‘“““Œ“’—Œ“™›”‘’‘’˜‘—›˜˜’—™‘“—ššŒœ–˜’‹‹š”‘–“’“•‘ž‘––’˜–•ž‘•”›‘’—–––——™œŒ’‘‘’©’’‘™’—˜›’—œ••™›‘ž–œ—– “š˜š‘™–“š—™˜˜•“”Ž¢‘›‘––”—”‘”–“Ž” —‘‘”–’“–’‘“ž—“˜’—‘‘‘•–”‘™’™••‘˜‘“’•“’–š˜–™™””—‘“œ–™Š›“’”Ž‘—“’œœ’“—•˜’”œ¦™›Ž”“˜•›–˜–™¡¥›’”‘‘œ˜˜Ÿ•’‘•“˜››£Ž’’–›ŽŸ›¡’’Ž’“ޔ𖖓™Œ–‘’ ˜™”’—˜š—’•™’›’‡•’’“œ‰”Œ˜’““’“œš”“‘˜œ˜“‘‘‘™£’’›˜’’›“’”‘œ’–’š–žwš–•¡“¡”••ž™˜£› ”¤Žš“—“›‘’›“› –”˜Ž•Ž”‘Žž›–“Ž’‰—Š›‰—”™˜–”—“¥‘™•’’ˆ ”š’’’Ž“—‰˜Š™–š¡›’’š•˜››™™““–¡–““’”•˜–‘š”¡œ’š‘Žš‘‹—’”¥•‘š‘“Ž‹’–œ”¢žšˆ“‘›——’’¦“¡€‘—“”’“’Ž–Ÿ“‹“–’–‘˜••Œ‘–“–—’’—–—˜“˜“’•‰‘•›—’Ž–““š™”“œ—š“‚ž’’‡’“‘‘“”””‘›™ˆŸœ™–”•˜Š“‘Ž’Ž•”œŠ–ž’–™‹—…›’Ÿ”–‘–—š‘™•˜’”†‘’”‘‘˜’š’•˜ –£•—’˜˜–•‘™•–’’˜”˜—–““’”›“—’˜‘•’•“š’’“•Œ”•“Ž’”ž‘•“˜’—•—œœ‘›–““’“›“•‘—–”“‘–‘‘’—ޒ𔛆“’‘£˜’’ ”Œœ“•‘“™“’““””–šŒˆ–’š’”’¡˜–’’™“™ –Ÿš˜™—Ž’•’’š––“—••‘“œ““•™”¡”Œ”‘•–’’““’’˜’‹šŸ‘•—”’Ž•ƒŸ“›‘—“…•–‘”˜’ ”œ•—™”‘š–š’ž’”‘”‘’“‘œ‘—š’•’–“œ¡Ÿ™’•“œš‘š˜•˜“—‘…›” ¡¤’†“š“œŽ‘“ž’•˜”‡‘˜˜œ”˜’’Ž˜š›œ–ž“–™ˆ›|’™—œ–—œ•¢“†““‘™™’’˜›š”’’“’Ž‘•œ›“š–“”•™’“Š“—ª”‘£’’––™’œ“‘§“˜•“—š’’”£•™˜’‘”œ“™˜¢Ž‘”™‘‘•¦œ•Ÿ’ “˜”•’•ž’—“œ›šŽœ˜™‘“Ž—’‘Ž’–——“œŽ—‘”˜§”””—”•œ—”“•“”ž¥—’™”—˜–”‘˜’™•€—””™”Ÿ’”–˜‘›“—›’›’™›—‘“’˜’–”²”›” •›”’‘”››”’’“ž’••—›—’—“–‘”’”Š”—•——‘š‘š“–˜’’ž—š•š…–Œ‘”“”’“‘›‚š—’’”‘˜”–““—‹˜—–š”˜”’’“—žzŽ’’””Ž‘ˆŽ“‘––Œ–›r“‰’”’–”‹™’”•“Ž˜’’’’…‘“š‰’Ž””“–‘”Ÿ‹˜Ž“’’’“‘’’Œ’›“©“–”„’•’‘‰š’’”•™””œ¡—”’›ˆ¢—ˆŒ’’Ž”˜‚Œ’Œ“‘’‘«•Ž’–’ˆœ’Š˜““‘•›“€’”’”“—’“••”‘’’–‘““–‘š—•‘•Ÿ’’“–¤’•Š”Œ“’Ž®—’“‹–™‘Ž‘—‘““’”’““’…–“‘”’”‰–Œ‰ª‹Œ”•——Ž’“™›Š‘™–‘’’œ•–£—¬—–™‘™“™’¨’‘œ‡”œ™œ—’˜›“’—‘‘””¦’”›’’¡˜Ž“——“‰Œ›•”Žš”‘’Ž•“‘•’•—‹“—˜••–šš}’’“•—˜“†”–“›™”•˜“œŒœŠ“‘Œ‘•‘˜™¤•“†’“’’ŒŒ—•„Š”’’•—¡”’˜‘“’”–•“–‘“—´•–‘—’—”’–“–˜š’’–’’–”˜˜–š•”‘‘Ž™‹‘š”˜–™”““Ž—z’”›š™Œœ–––•“•’œ™ž‘”“‡‘—’“™’Ÿš‘™“Œ…“—’—”—‘’•’›‚ŽŽŽ–”””¢Œ“˜¡““•—‘–š‘™•’’”–“”Š™–˜’”•—“—““˜€Œš—‘”—“’–”—‘–’œ“Ž™‰ˆ–‘““‘•”“•”••—“Ž‘ˆ“ŠŒ‘‚ŽŒ|““–•“šž˜™‘—Œ‘™Š–“‹š“—•“’•Ž“™–™–’””–£“‘––“—˜“››œ‘’—”’›˜–›š›•“’Œ”—𔕓’””———˜—™”’“”‘›’™‰”™™–’œ™”…”˜‹–Š‘™•š“”‘Œ’—“•‰˜Œ”“””˜š”Ž“—ž›’——˜š”¬œ””’——•›™š“’”“‘“•–—œ’‘””‘”‘“•‘“™–’“’•“š”ž•“›“—’‘“‘“˜’•›Š’‘’•””‘••š’“—”–”“““˜““–“––˜’–˜“˜—•”‘˜‘’‘–’•†’ž””•”•”’–“–”—”“’”˜‘›œ’•™”“’““•œ”””‘“˜””‘ž‘•š–—••“•‘••““Œ’‘ž”œ“•Ž”‘š“•——“”‘š–•“’’‹™“”˜™’’—’œ•”“”’’––š”’“”™–¢š”Ž“•‹•“”“•—–””›—”œ›™•–›˜“””˜œš‘“•”’’–••“‘ƒ‘’¢œ’š”œ—˜|™•‘””’•••”“—’—“”‘“š–•”‘‘—›•“•’˜Ž›—›—–“’’••“‘•“ž™–‘“Ž“’““}’—‘””“’“’“™“‘˜¢¦ŒŠ—ŽŽœš‘’’‘—ž™•‘”“’‘˜””•ž”’š—–˜”™“–“Ž”‰š”–—“¤›“˜˜–™“•”š’”’—–•—–Ž–“𔕠’’”Žœ™˜‹”™˜–’”˜—“’Ž’–‘’…˜’˜‘‡š”›™‘“’—’•’’ž •›– Œ“•–“’’”Ž’’š“‘Ž’š –’’›”™•‘‘“—”“‘˜‹›‘’•Ž˜¢”˜’–Ž’“’™˜‘’™˜”˜Ÿ‰’—–’’”˜’’•𙕋’Œ”’’˜‘’‘•’‡—–𢕕‘—•—”–•›’ ‘”–—•—ŸŽ’˜—””‹Š“’›–•œ–˜Ž—“’–¤‘’˜‡’Ž’‘™Ž’–“’’•‘“›‘’“•…˜•‘‹“’œ›™’Ž’ž‹’Œ•’•‘“–’•‘‘’˜›Š•“–Œ˜“‘‰™—’’–‘”—š“”—Ÿ‘——›•”š‰ŽŸ‘”‘““ˆ“‹’””•š“œ™•—¡’’˜˜–•”””““’‘•˜›˜”š’“’•”•’’–˜–•š—–‘’“’““–’˜’”–‘’—‘š‘‘’—™“‹••“™“•”‘–‹œ–——”““˜”““‘“™”•ˆ’—•–—“‰“›••˜‘’–‘“–’•‘”œ’’–——™™’œ˜“‘”’™•š™–’“”‘š’““—›–Ž”‘’™ˆ•”—˜˜›ž›““”𔓒’“––“•“‘š’’•š–˜”—“•“’—“–—˜“Ž’•ž—–š“’˜•’™ž“‘’”‘‘’“••”’’ˆ‘‡“““’’–™•˜•’Œ’˜•—–•››’““–›”ƒ‘–’“’’“”Š–’”‘–’œ‘™ŠŽ––†”””—’‘—–Ž””˜›–•’˜—“””‘—”’Ž—”“—Ž’”‘‹••˜’’’˜’“’–’”–’”ˆš‘••¢Ž‹‘•••“•”“‘œ˜œ˜“‰‘–’˜‘¨•Œ•’’’•š•”’’–”’—’—’¡”——•™š–©œ•–––”™’–”›˜‘‘’Ž”˜›“—•‘—’’˜ššš•†’Ž””’”š•‘‘š˜“”‹’”’Œ–Ÿ“’””–’¢——’““‘™”œ”“—”›’’—•˜•”˜‘“““•’“œ™’’’‘˜Ÿ§‘—œšŠ“”˜’–‡š’”™¤“’˜’”’“’—š”˜“’’•”Ž‘’”˜‘’™—“¢’˜ˆ“’š”Ÿ“‘’’““’Œ’˜‘™™””™“–˜£‘’ “•”•¤‘”‘’¢›‘‚Œž›••”–”Ž’’”¥ž”˜¤““‘““–‘’–“™‘’š“““•’ž’žšš–“•œ“Ÿ¥’“”’’’›““– ‰’™‘•™˜›˜˜—“”‘’’˜˜ –›ˆ“’‘‘‘”£–”“’˜›’’—‡’Œ’‘”““šœ—œš““–•““‘’™‘ž™–“’‘“’’šš’™˜œ’’–˜”Ž›–’’“˜œ™ž–•–”“™—––’”™Ž–œ›‘•––œž•——’•‘“—™’—ŽŽ’Œ’™—›“˜–œ™—¡›‘•“™™’’¨–“’“–˜”–™‘˜“Ÿ’ ˜–ž›Ÿ“«“”™““–œ—‘””–“–”‹’Ÿ—˜—–˜”¡’š˜˜Œ˜”ŸŸ“•’–˜›˜’ž’”“’—‘•’•“’—’œœ’‘”’Ž˜™’–’”’˜™“–•™œœ‘’“–•’—•™“˜““›”™”˜Š“—•‘£“‘Œ–Œ–“’—““–“˜š–¡“’’“–’‘“““™™–™–——˜•—‘’’–“–”‘“–•““’“•—˜“𙂖’˜’›“š—’Ÿ—”’‘’””’““–—’™›‘’–™‘“•‘‘•‰“‘”–“˜’’—•“’™””’’˜““’’’™™“—˜—‘“—˜—””™“›”“‘™”œ“Œ“ˆ–›’••™š•œ’•š“’““•‘“‘¢‘‘’’š””’’’’—‘˜—”™“—’’—™““”“”Œ‘™‘““™“š“”’”—™™™”’’“‘›”œ“™’’“•““¢—““’›š”‘›™’•–•’””š•“•”’–”‘’™’’šš—˜›—”’“žš˜œŽ˜’“•’™”…’œ”“’”¥“’–ž™–“•‘›‘—™…˜£‘”Ž—”—‘“”˜›’—£’š•”“š˜™“Žœ“‘–•–š’–ž˜’’‘“’’’’—’œ•”•–•››’”•Ÿ’œ””Ž‘ž˜ž–’“——™™•”‘“”—›“•–Ÿ–—‘Ž’‘‘œ•’˜‰Ž™‘“—‘•“•’–•™˜“™”‘˜•’“ž—’–‘“—™’–“‘™’’”“‘’ž›ž—™•’‘š“—˜”š¢‘Œ’’””’‘˜˜“¡ž‘”•“‘Œ˜“’‘‘˜š”˜•–”“•“”“‘žœ››’˜—““—œœˆ”’“•Ž˜–Š“‘šš’’š˜ž”…•›–“”—“ž‰”š“‘˜¢”Ž—”›˜˜š£—š““’’™—’•–£›˜™–˜““–••—˜›Ÿ†’’~—“‘–’Ÿ‘–˜‚—˜–€›˜ŽœŽ—‘–˜–—’“’”£˜˜–”–‰’š˜›“–˜‘†‘™’’ ”•›Š™’’™™–›’Œ’›¢–¡”š‘˜›’‹“š••œ¡Ÿ˜™“˜™›¤™‘•’”˜“˜•œ˜—”’˜’œ–’ž™Ž ›Ÿ“’–•‘’¡•’Šœ™•’“”™‘•š›•”š˜Œœ™“˜’“”Ÿ–Ÿžžˆ”ˆ•—˜š—’’“‘•—•‰’”™•’’–˜’›’•›Ÿ•Ÿ–Ÿ“”Œ™˜’ –Œ”‰š ’”žš•ž˜’ ”‘‘•›•–”š—‘—›—‘˜¤ž—“—œš­”˜’’ˆ’’‘Ÿ’¡•››˜›“’ž˜—š•ŽŠ——–œžœ“›˜•Œœ‘•’Œ‘‡‘Ÿ£•”‹›Ž‘“•–“›™ž’‘™•“—‘’’“”™œ™—¤—™—™•š“’™•”’š˜“—“’›—‘Ÿ˜šš“˜—‘–‘’››•œ•ž••¥‘—“‘šš“š–“’œ˜‘’“›š˜š˜ž’“œ™’–’“›•𛕑¥˜–¢›“”¨¤’’”•“”””•”””‘‘•“’”””••”“••“•’“””””“•”•••“–”•”””“•‘•“–’—”•““”–•”’••—’“”“””••””•”‘“”“•““‘”’•–“–”“””’””’”‘–”—”š’–”’””’”–”••••”“””“•”‘˜–“”’“”•”””“–”’”–“”””“‘“•”••””—”‘•”’˜””™””’‘’•’””“””—––“’•Ž•••”””œ“‘”•’”–“š”Œ‘‘”•”””’–’”•—–””””‘’’““•“”’•””–”””–‘—–‘––”””“•’––‘Ž••”•••••–”––•–“—•––––••”–•””’—’•““—‘•”–•’”’–”–’–––”••”””––””•”“–•••‘—•–œŽ’Ž•’•“–•”“–”‘–‘”–——”•”‘—‘”–“‘–“’“–”––”–––•”””’–•–”–”’–’“’•–’”•””“••––’”’—•””“•”’••’—•“’–•‘””•˜““—’–•––•––”’”–”“––”””•“”–”“’“‘––‘”—”Ž“””“•—‘–™”—–––••—’””’–“’’–“””””””’””–’–„˜•—””“•”Œ——•••“’•—•–”•’”••““”•Œ•’•”’’“”—’”’”–’”••“–—•“““›–““””””–‘˜’•‘••’–““–’•”™”””“”‘•…𔑕“’”˜’“•““–“™”•”•–“”—• ”™””•—••”–“•”“•”—Ž•—••”•’“––•™š”’–•”““—”“•”—•””—˜–“–““•’”˜”•Ž–•••”•••””““—”“—”‹••”—““–’”–””–š–”””““•••”’•”š“•’••“”““”––””’—••–””“”““—›“˜ˆ˜’‘””‘—‘•““•””–™–˜—˜–’••”“””’˜‘•“––˜•””˜™““•—“˜—•”—‘–”””‹–“”””•”–˜—˜”’–Ÿ——–—‘–•™”™“’’š•••š•—••”’œ”—””““Ÿ•—“˜—”––•”•””•™••”•”—•—–•—˜•”§““”—–•œ•”–˜••“”—”•–”˜““•“–š‘–”“š”””••—”•š”–”–”•’—–˜œ”—˜””˜”‘–“•˜–• –”˜””’•—”•˜•”‹’—𔓓˜“”””•’––––”“““•””•š”–——”•”˜”––”›—••”“”–••”••–”•–”””•••‘••••“”—““”•”•—•–”“”–”““”””“’””“•–”˜“—•–—œ“”–•••”‘“–”—”—”œ™”™”™–”–’””••”•–“”•“”•”••–”–””–”••”•”••“•––—•—–”“˜”“”””–—”•–””””˜”•””™”•™”’•”˜”“•–“•”””””•““”“–“”•“––•—˜”–“–”““š•””’–•“‘•“•“•”“”’–••••••––•””•”””–”žŒ•˜˜•“““•–•˜•†š•—”–•™–•ˆ˜––””š••”–•™˜“–”““”ž’••––™”“•˜””—•˜˜–—›™•””““—•”“𔕕”•”›——•‹š”“––™–””’˜•–—•€˜–”–˜”’£’§“–’—•œ“’•”•–’––’™“—““”•––“–”›——œ˜’•——“”š“”••˜““•–•–™”Ÿ”—•“––—–•›•‘–““•›‘™—š••–—“–¡–’”–˜š––›“𙓒•““š—™”••˜–“¢“”’–šš–™–˜Ÿ“–‘•—˜”•““““”›¢““•““•’“”Ÿ•’”“”š–“Š‘“–“–•“—–™“”’““Ž•’––•–““’””•’’™•”•––’’“”–““”–“—‘–›’““—˜”–’“““’“–’‘‘“”„˜™™”™—““”””’’’‘’““••’•–”•’’’”’–”•“•“••œ•’“•›—– ’“––•””“••™””—”–“–’””“’•“š““’™’““˜••‘””›“”“•’—•–”““•Ž’“—”š‘’’‘’““””›““’‘˜‘™™“–¢’•“““’“”“””•Œ”’”“”’’”˜•’•”“‘”‘”Ž˜—’”’˜”“”’””••”’–”“’““’Ž“”š–›–”””˜”‘’š–”—œ’“’““—””“’“—‘”–˜”’•”—’”•“•”—”–•’˜””¤•›••—’“š’”“––™—”••–’•”“•”’‹”‘’“’•”•’•“””››˜‘ •›™˜™“’““”•“”–”œ••˜“”–”•“™’’“”’–“””“–”•“—”“““•œ‘•“•Ž˜“•œœ”™‘‘“•”š‘œ’’•—‘•“š““’”™•šž”š•“”‘‘’“Žš“”‘”˜•“˜–”““’™š—”“š —“—“—”˜ž“£›™•”“š“““““—›•” ”“›“’“”œ“Ÿ–““Ÿ•”•”›˜›”””“™•’““Š””““““˜”—””œœ”˜••”ž“˜“”€“™–¡—š”–¡•’’š•“‘”’˜š’•š““”’“¢””›•“–““ “”“”•”•“™œ•—“š “˜”““’“—““™““›–“•“›”“™š“œ–™“’—““’›œ“——˜’“”•““’œ‘”“•–”“˜–’ž“”“”•˜˜””–””““ž“”šš‘––”“˜•”•™–›“—“”’–—”œ••”–”””•“–˜›“••••“”˜“•˜’‘••”“••–•–•“ž“–““”“”••”––™”””’”œ•”––– ˜•”””—–”“’”—––“•™”“•‘—”™˜•••“˜””••™”•‘ž•’‘”‘”•“–𛕓’•–“––”–––‘‘””””–••“–”˜––—–“Œ•˜™––““••••’““—•‘¡•𔑕“•–ž–”‘–””“•–•“’˜”›••–”••––“”•‘Ÿ––™—”¢”””––™‘——”•””—”—”••—˜œ™—–˜““–”•–“–š””””žž’”¢©””””§¦ ”™Ÿ§¤ ”ž”¥’£§”•¤¨“••££•””••£œ”¡¦””£§œ”Ÿ¤•ŸŽ””¤¥”£•§¤§•”Ÿž““•””••””¡”  ”¦”œ¥ ”¢Ÿ ›”Ÿ”œ•”””£¢¢§”ªš¬•¨’•œ”£””§£•§–”“•”¨••§—Ÿ””£•”””””Ÿ•¥§•£š” ¡“¥££”•””Ÿ¢”¨•”› “¨•ž”“Ÿ¦  ¤§••œ””¥¥›•£§«••” ”•¥£•”•Ÿ ”•”¥¦””•“™¥  ¦§”—“””£””Ÿ¡žŸ ™”™Ÿ•”££¦£–¢””””œ˜¤””—•””“–”•–—›’”“‘”•‘“–“’–•”’“•–””•••––“””“”“••“”™•›Ž”•˜–”˜•—–˜–”˜ž›”“””–”““”¢••””›•••—˜›—Ž”–•”™•˜••š””ƒ˜–“–—˜••”“–——”˜“••“–““•”•’••““—•””“•””š ‘‘”š›— ••“••”˜Ž”–••›š—œ””•”–”˜”“–•š“•”–˜˜›˜Ž–“”“”•””š””–™”•š›””–“””—›”ž“–—•••”•”–” œš”•—“••””•—”””––•›–”””””“—•Œ”––•“””““•œ“••“’“••”–•“””–Ž•”–••’’•’””“’’”–•“–––”’š––“””’•”“’”—“–””™–”–™“˜“•‘–”••–“”’“–••œ˜‘˜“‘•–˜Ž”“’”˜—Ž”—”—–––Ž•™””’—•””””•••”””–•–•”™“’“••––™””–•’”™”–•”–”“’’—“”””•””‘‘“••”•—”—•“””“–•–—”‘’”•“•”““•–”‘•“”—“”—”““™•—Ÿ‘™——”“–•”””•“Ž‘–˜–““”“’“–”Ž•”’“—”’”ˆ’••‘—••”––””““—“–“•”™“”‘–”–‘”‘“•’˜–•““••”“““˜––™“”””’””””•”“ “”‘•”ŽŽŽš•’”™’•”••’’–””•–Ž–••—Ž““‘”••”””–—“š’––”•”“‘”””•“”›–•””“’”•–’•’’’‹”–“”’”•••’–”––”•‘”˜”–˜’•–•—”‹’””“˜’““‘•”—“•“Œ“”Ÿ”•˜™–•››••œ’–“˜‘““—“–œ˜’’•’”““’”’“—“š“’“““›“’’”““”“••’’’“””˜“’”’”’”‹“’˜’˜‘•”““““’š““’““’“”’““”“”“”“‘”‘š“”’“˜˜™”“““’“˜’“’–“†—“•’™’”—Ž—””“”““—”“““’““““““”•“’“’’““™“––•“”’›˜“‰”’“’““”•’“’“™’“š”’”“™“’““–’‘™”•“’’““”’”’”’’’“’’““’“’›˜“™”“”’—“—’“”“”•“”™”’””‘–—““•“’“““”–“’””””›¥“™•””““˜”””ž•–•“—”—”“”“…—–•”•˜—•”””””™”“’“”˜“’“’œ“š“”“˜˜”›”—˜–””›”ˆ”’”“””“•”𗔔ޖ”—”———”“”“š””“”•”ž–”–™””™”’˜”–›–•“”’””˜””—”˜“”›”””“””“›•œ–”—™”©—–””””˜““•””žž”•”“•“—”™™™”–•”“”˜’ š™‹“”””“”‘˜‘””“˜”““•“œ—•”•œ–›˜••”š’””™”•–œ™—‘˜”–’”””‘•ž›””’••–”•¡›–””•œ™™”™–˜–˜•š” ”›”…–”””š–––•—–› ”“›”“—”••š—˜”•˜“˜•˜œ›•–˜™•”“”“”–““™”›—––”™™š”ˆ›“›˜••”–”˜˜™›‘–‚—’–˜–‘•’˜”–œ›•š–“””•–¢––ž“™”“›–•–”•”˜–œž”™Ž–›”’š˜™”–—–˜Ž“š•–™—”Ÿ”“—“ž™š™š–”•“”—™™’››—–•––”–šš“•™™•–™’”¢œ“––›™—˜›””–““Žšžš—•— ’–‘™˜›—Ÿ”““”’Ž—”œ–”““’˜™•–˜–•”“”—“—”“š–“•’‘”—”“””””’’–’’–”’“˜“•”–““”˜”—”—–™–”–˜—”’““–””“–“˜–”š—“—›•­˜“–“—”••”—“—–•”š“”‘••’”’™“•–•“–“‘•“””••“•“™““˜”””“””‘”š˜˜˜—”•“”“‹““”“𔓕•“’—“““–”“—”––š’”“–““˜’šŒ•™“”“–“•Ÿ˜’“”••“”—’“™™–•“”›—™“—•–””’““”–••šš˜•”–””™˜•–•—“““–˜™Œ••”—””•“’–”›•—”•“•”‘•“—Ž“––””“––––˜”—”“““”””–’—˜—•“–•””––”“—”–••Š”””“’–”“””•“•”—““”š™’‘”•“•‘”””““““–ޕ𗕙’”—’—”••—”“‘•”‘•••—••”“•“”“–•–”•”——–™•“–˜›——–“”•——•˜””––™–’•“’•“““•’”••“–””˜”—””“”•”—”••–“’”—””––˜”™–“”–“””–”–”•˜˜–”˜””‘”••–—–•œ“–““““”“”““”•’”““”““’””““‘”˜“’’““‘—’’”‘‘“““”“”““’”“˜“•”’”’’““’–”˜Ž““‘•’““’”˜’”’•‘“”“’‘””“–“””•””—’•“‹˜’—“’’“‘“–””“”ž˜“”““””•’”””’“”’”•“’“’“““•™”’“”“””“’•“•“’‘•“•’˜š’”“•”“’—“”’“œ’•‘•‘’“““”’‘“‘•”“–‘•““”““”“’—”“•”’˜›“•“““““•‘–•’““”™“”–”“’•‘––“‘”•“”“”‘‘’””—”˜••œ”“”“™›––———•“•“•˜••š––™ž—”—”–“•••”—˜“Ž–”“•–“•“—•‘•“•˜˜“™”˜“–•–“–••’““›””“‘”™“•——•—•—™•š™”›—’–”‘””‘•——•Ž––›”›”—––“•š›‘˜™”–”•–›•”——–”“™”••“–”—•—–—š•˜””™Ž“”“”•˜”™–““•“–“”•”“™’–•—•”—“”š˜›––›““”””“•”””˜—–•”œ”•—“””“–œ–•–™•”–•“”“”’™”š˜•–™›”•——’–”—“”–”‹”‡”œ””””””•””““”š”œ”—“˜”“Š˜’””“›“”””””™””‘’””••””•”•”“—”“•”’”’”””“”””””–”””™”‘•””–“–”Œ’Ž””˜”›”••””–“’”˜–Œ”–””‘•”“’’•“‡””””“›””—“””—””””””•”””™””’Œ””“”””””˜˜”’””””–”“””““•™—œ”Ž˜”•‘”•Ž“”’”””—””’–“””š™””“–”•š“•”•“˜––”•”•’””–”•–‰‘’“””•“”‘’“”’”””––’•›™–””••›•”™”—›•—•••’—••“•–•”›™––•––™—“Ÿ™“”–š–•˜–’—•–˜•”š–˜œ••••—”•–”“•–””—”•——–“˜••Ž—•™•”•—••Ž•’š™œŽ–œ‘™‘—‘”•••œ”–›”™•••”–•œ––˜–˜“”˜–––”–”˜–—˜–•––•”š–•”––—™“”••–’™••”“—”’›•––™–•””“œœ“˜•–•—™”– š‘”–˜—–––””’œ“’–•›’™š˜–•–˜•”–”••––“––‘“–—šœ–—›””•–’›¢”–•“”“•“•—“‘‘”””•‘”Ž“•–’—••“‘‘•••••“”••’”“’‘•‘‘–••“”•””•‘—“—––”—••““—•”“”’”•’””’‘–‘œ“”–•–•”—””““–‘˜˜–”•”‘”–”••’’•–“•”“•––•–”“”’••–”—””•”““”’•”••‘–”“–••“”•”—””“””••’”“•‘”–––““‘—”›“••••””•““‘”•’“–•“–“‘‘””•”‘•Ž“‘–””•””•“‘“•–––––‘–••“–”””–—”‹•“”–“““˜–——“—•—––••”•„”––”’˜™•–––•”˜“–—““—š‹•›”–œ•“•˜–”–•˜˜”—–––‘—•““––““š“˜˜––”–““–‹˜•—–”–™–• ”•™–•––—–Œ•‘”––“•“™–•“‘’—“—•——––‡“““’”–––”–“š–—”—”Œ–˜š•š”–“–•––‘“‘—•š™“œ“—•“’”“•”–—”““’”™”œ–•”•™•–“—‹”•˜˜––—•“™™Œ“•“™‘–““•—˜••’““–™™œ‘——Ž‘’—•—”˜™•““’•˜™‡•—••““”’—•”“•‰•”•”ޖ𔇒”””“š•––•••’—“œ““”Ž•–••—‘”•‘”“˜•‘š–••š–“‘““–•““•””––‘—™‘–•”˜Ž™”™•’–””””‘˜••{š••”•š“––›—’“”•”••’••“™—•“’•••“•“˜••“ž”–•™ž”|““•–•“—“”–••–”—“—“”—‘“›–”“”Ž˜”‘›–”•“”•–”””•‘—••›™“‘–‘’•’™Žžš˜’”–›–“š“’”—–™––•Ž’•“Ž’™–“”“•‘‹•’š–“““”š–•”š‹‘”˜”•–š”—š••”•––•••–˜•“•˜”“–•’••’–”›“”˜˜“›–ž–‘–•™’•’““•–”“—“š—•–˜“™™•¥”””™–”•“ “™‘›•–‰‘—•“‘‘𔕔–𙓖“’•’–•š–––‘‹—’“•–••’—“š–š–—–ƒ•”‘˜”–“•••’–““–•˜—“‘“•••œ–•–›–”“““–••“—Œ–•–•••š•‘”–“––™‘“‘•—•–”˜–Ÿ˜™—•“–•“•’”—˜•’•—–œš’–––“”Ž”“““•Ž–’”‘•–”””–—’•—”–””“”“—–“™”””””•–˜—–—••—“’–’“•”––“‘–˜™“••”“‘•—““–˜•”‘““”–”“““””–””“•““šš“•””–’“”˜’”’–Œ”•”–””•’—“–‘”“•““‘”•”•˜—–“““–––—“—“•—‘—•“•˜˜‘˜ŒŽ”˜™”’’“”•••“’•”“”“’“Œ”“•˜”’““”•‰“”—•˜“”““•”•‘‘—•—Ÿ“—”“”—”—’—‘“”””•˜”˜“”‘––š•–’––•“““”””“•Ž•’–”“““’“’•—‘—‹”•“’““”…””””•’””•”•”–‘“”‘”“““‘”•”•—””•—”“”•‘–”‘—‹”““““•”“™”—–•”˜“–•š˜‹š–”•””¥“’–—”†“”–““’—““–’•”—œ–•“–•‹••‘—‘’““Ž–””“”“’•”›”œ”‘“““•””“”“•””’”Ž“’““‘’‹“•—–™“”–Œ•’”•””–”•™’”””‘–•—–“’•““••“”™Žš•“•”•“Œ“•–“”—•–“•’‘’“˜‘““”“˜š•“Ÿ˜“““““—““—™“•“•“”–•–“’–œ”’’—–”““““–˜“™–’“–•”“›“˜Œ““•™““š—•”“”“”‘““”””“›“›˜”––˜—“‘˜Œ™‘š“•”‘–“˜˜”œ”“—“—“’‘“’—”“”›œ—˜“““‘““›““™’Ž˜’“”““”“““™“””–œ“—•’——“””“”˜“—““•š“˜“–””™•‘’–š”’–““𔕓––œ“““š““›–‘”““—““——“š™’“”“•™›š™˜”—–““š““•——•š—“‘•“—••’š˜“““”›”œ–“”““›’–”¡—‰š“˜“—•™™””œ‘”“•™œ•”“””™œ””—””—š‘“˜ž”Ÿ““ ˜“•“˜˜¤”“š“‘•“””Ž””““”™˜“––˜˜–”‹›˜—“‘”™““”¢–•“œ“‘ ˜–“Ÿ’›¦”’•‘’™™’”’””œ””™š“–’”ž•”””“”¡“˜“Ÿ™z”ž ”~˜’””””›œ“—””¥™’š”›””˜–š›”ž”“•˜™š™˜”“””’”‘“”“—–”“™œ“¥œ““•”™•™”—”“•™““ž“”‘™ž•“œ”ˆ¢””™•—™”“”“–“’—–•—”“““˜”’–”––‰–•—”›•›”“œ—–“’’”“——””“•“œ–•“š˜˜•™œ”‘–“•–š“’”•“˜–”“™——““•–”“˜”›”–˜———”•£“–•”–——•”§“–˜•—•‰˜˜‘––•“š”—““‘’——–”–”–——”—”—Ž””“•—–•“–“™•ž•—™—–’’“—•“•–•˜™“”••’““—”••“•˜•—œ—–’—“”™•“˜˜˜–“–—”–“—’”•–˜—•’•“•—–”–“•˜˜”™˜””š–’˜“”š˜’™™“–”Ž‘—™˜š›•““‘•””Ž•‘“•““”•““”–““Œ“”””““““–’’—”•“”“–•”••’““““‘““”Œ•““”““’“’“”•””•’””””’““““–•”“““”“—“•—”’”””˜––••–•“–”“”“˜‘•Š•™“”’Œ’”˜“––—‘”–•”•”“••”•“‘““–•”’•”•š•”“—•“‘”œ’”“•––’“”“••–•“”’•”•”–””“–’–“’“”•’”””•••““”š””•”••–”Ž”‘“•““’•’““•”™”“’“”•—“–•”•••“•’””•˜™“”“”˜“”–””“““˜™”•™““—”“““˜•œ—”“˜š””’•”•““••š“Žš”“™•‘”˜˜”•’“‘™–“•”“—˜•“•—”“’““•””“’“•’“”””™––’•–“œ•Ÿ”’¢“”˜™‘““”•–Š“”“‘•“”™Ž—‘–’–”˜•“•‘˜’“˜”““”“““”𙕔Œ”•Œ”““”“™“”—–“—“”“““”‘˜“———•“’“’––›•—•“”“”“•£–““‘”•“‘“šš’”“•œ˜”•”•“—’’“š’”–œ––˜–•‘˜‘•‘—”œ“““””–—Š•™’•“““˜–—–‘˜”‹™•›“–•Œ—“–•’–’“–––•”–”˜—“™—”“™–Œ”˜Ž•“”“”•˜“”•ž˜•–“––•““–•““œ“”ž”••™•—ˆ‘”••––”“•˜™”‘•˜—‡–Œ••‹’“–••˜”š•–””•™••œ•’™•“™•–”“–“”‘•˜˜’•Œ”‹‘–“”””˜˜“”–”›”“Œ“‘•””œ—šš––’Œ“”–™•–—‰”“”›”•™™““”™”••““™’•”“›—•—–˜•˜š–’”“”™“—™•š–›ƒ“”œ˜—–•‘““••Š“–™“”””“•’–—‰›””’•‘”Œ“Š“”–““’’“•–•’‰“•“““™““‘”˜“•””–””“•”—’–””“œ•”““”’‘“‘”‘—†˜”˜–›•“›””–‘“›”‰–Œ“–š•Ž””“—–•”“–“–••”•‘ž”””“—••”“””’”•Œ•”—”Œ‘’Ÿ—”””‘“•”‘–”‘““’”•’“ŽŽ’“–š–““”‹—”•Œ•”““”•Œ”•””’–””…–•••’’”˜š—”“’—”‘”’‘—Ž—’•–‘’•—”“””•šŒ••““–““““”—–˜œ‘“’’“•‘•““”¡’•–””’’–––––‘–““•““‘’‘”’••””“•“’“–””’“–•——–•““’•–”“““–‘”’‘•‰’”–‘•’•’™•–”’’’•Ž’–•“•‘œ“•™˜•‘’”•’––”•–•œ’’“’–•–“–“™•“——’•”–“˜—‘“––•‘’”‘–•“™’““‘•“‘“–’’•—•’““‘‘™“’–”–‘••””””•“˜–•“‘–”–”“’–”“••••”‘““‘™š˜˜••––“–’””‘£‘“”•”˜˜š”‹‘•“““—’•–“‘“‘”™’˜–”“•“‘Ž—•”””’–””˜““”—”––••‘“‘˜”••“”••’’“”“““•”“’“”‘•š““•””˜•Œ““–’•”“”“•–•–”•”–”“‘”“˜”“•’‘••”‘””•–•Ž‘‘““•”•“•“•—œ”—”š•‘š•’“•–””‹“”””•’—“”“”“‘”’•“•“’–—–ƒ”‘•”–“““™“””‘’•••š“–”–“•›’Œ—•”•“•“‘“””•––“–•£‘–”—˜––š“””–”‘ƒ–•˜–”””š—–˜”‘•–—•œ–˜š•“”––••–‘–––––˜””–œ””š—’•“˜–—”“–”˜”•˜˜œ–––——••””—–””™”™—–—•—”–”Ž“”’•—–”‘””˜™•–•”˜Œ–’”•‘“’”—˜”•‘•”–“–•––›”’•””—–––“—”“–•˜•––••“’—š”–––—’””–••’“ ”–””–•˜’–•“””–—‘•’–––••–“•‘”•›”––“”’’’”–’“–”‘‘š––•—”””“—œ—œ“–––”—––š™›”›””“”Ž•”˜•”””“”—˜“˜˜˜˜–”—”””—””Ÿ““”““”š””“••‘••™˜•”˜”•“—–”—”““•™”–”š˜’”“•’–”“””—”””™”•˜“˜”•˜–“¥˜Ÿ’•˜“•”•›”œ˜–”Ÿ“¡“• “–”“———””–“”“–’””””—””–——”“”–””””“”•”•“••–”“’•œ‘–””””—”™•”–˜“”˜”“œ””——“”••””š””“•”›”””˜“”–—•””–““”•”š––”””–”“•–•””‘””–””—•˜’•™”–“”›—––”’””“”““““’“”““’’““—Ÿ™”•“’“—“™–””•–›“““““’–””‘““›“’—“˜–“’––“•“–“•““”–’“’““˜“”“”””—”•”—•˜“–›™“““’”“–“š’’•œ”š–’“”’—š–’”””‘”—•”“““’“““’›——’“š“””””“˜“™š“˜”˜›““‘“““””™Ÿ“˜“”””“—”–“”Ÿ”“–“–“•—“’–’—™‘”𔓓™““‘””“”’””“˜““”˜•““’˜”™””—”“›“”›”’•š˜‘˜–“’’‘“™‘•““”‘”“™’“š˜””““˜’–”š”š”›”˜“”“•—“˜–“”“’–œ”””””——”—˜•”™™“““•”–—““—˜••”˜™Ÿ””•–•”’””š””“›””š”—”˜˜–”¡™£””–“˜”•‹“š••™”›™’¤“š••¢”˜””–’•—””””›””™—–•””™””””“”—”’–—™˜”—˜”€“—””””—œ”›”””“”ž”—”–™•’—›š”•””“–˜”š•˜›”””š“”—™‘””“”””–‘“––•”“”•–šš—””–””ž“”——•—•”––”š——”–˜””’•Œ••—“”““““™™•“ž““”””“’“‘˜”‹˜––”’™™••”•”“œ“š““˜‘‘”‘”š””“˜””””””•””˜““•’““™–”“”“”•–”“˜™•’–“’—•˜•“‰“–•–•’”œœŒ“Ž“–‘“””•˜”–’“•“••’”–˜’–““—–•””””””Ž—“”“•••’‹˜”“”””˜““”•”žš“”“”“”––—•—–’’“““”’˜˜”Œ”“•’“•›˜”“•––”–‘“›•Ž””“”“š”’’”‘–““—“”Ž—š•“š–•˜“—š•““’’”–•‘“—’““’™•“žš—™–’’“•Ÿ”‘š‘’““““—’’‘‘“•˜’™•‘“‘˜”’ž’šƒ“—•”“’““¤“’•–Ž‘’“’“’’“’š–Ž—™“‘’–œ–œ‘’‘‘‘˜’”“›“ž‘’œ“Ÿ—“’——’““’”’“•’““’““”•“““’’’’“˜™”“ž¡’—‘’’”“—–’•’’•–’¡”•“’˜”••“–’Ÿ““•–›‘˜•œ’““•’“’—’’’•–’’—–“ ”’•”’›‘—‘—“’–“™“Ž—™˜˜–“’®’’–——“•–’””•—š—”“”–”””“”’•““•|‘“’”“““•†’”••””‘——•–—‘—’•”“””Œ•–—–“—’”“’”•’’’”–’—””””’——“”’”˜’—“——”””–•™—“–“““‘š”Ž•”‘–u™“—•‘•™•’“”‘“”“–“•”–”“—–’–’’”“—•””–•˜–•’—’•˜•–‰’‘”—–—’““”••”“•”“’””’“‘•””—“””‘”“”–’“’—•—’””“”•”–“–•–™”‘‘“’—”–”—“““•’˜•”˜”’•“”‘™“•–’‘–”“””™“”””š˜Œ”š••”““–••–—™“”›”™”–”™”“•“˜•”’™š•”•”””œ”›™”“”—“””—”š•”“—–””•’—ž••œ–‘–””””•”“’”•™•—•š–’•¢˜›•“•–•”‹“™’š”˜•¡›™ž”›”›•™”•”—–˜’•”•”œ•”•“•”“œ••””•”š”––˜•””ž ”Œ˜˜”•””š“”–””—˜”˜”œ””””™ž–—–“𔓙”š—™š““••••–‘””—•”–“—””“”›”•‘’•”“”“—“”•›˜š˜–””•™–™–”“””“““‚“—“”“““™•”˜–—’•’•‘’•’“•““••”””“••“””“˜”“”•™”‘‘•—™““–““””˜–•””–‘“’“““””“”—••‘—“”‰––’•“—”“’“•”˜Ž““———’˜””™”•“““•’”’”“›•”˜“‘”’”™”’•“““•”•“•”‘•–˜•”’”“”“”–““—–”—’”‘”••”’•–š“—”•””“Žš’–•”—•’““’”’–“””‘“’–”ž“”•Œ”•”—•”’•’”’•’““”‘˜˜–•–“™‘””“—–—™‘“”’–—›’•”“–““““–“–š“““”’”““—‘•’“––“’“–•–•–“𔕓““”‹••–––“•“””•–’”–•–˜”•”““”•”“”“’“”’‘𔑕——›”“”“•‘–”””’”–—˜˜•™”—“—“–“˜••—”–‘–””––“‘‘”’“’–––“–“˜–™–—“—•˜™’‰—”“••–“”“’–•”—“—“’””””•“’’–’˜“”•’”“”“™•”–••–“–”–‘—––˜¡”™’”’•–›‘“–‘”––”•“•“••’‘–––—–“–”’–’•’“””“™™–’“•“““’•Ž“Ÿ‘™•˜’š“™Ÿ•’‘“’““’™’‘“’“––’””‘“˜”’“˜’—”•‘š–’’“’–““˜Ž“’““’’“““’‘˜‘–‘™’”’š˜œš‘’˜’”–’œ•“š“˜•Š¦’“”œ’““““‘˜“’““’™“’”“–””•’““’“’•“˜—”–““›–’š‘“’’““•›’™‘“•–”š”˜‘’œ˜•—‘’““š““šš˜““““““™’’’”•’“–’’’™““”’‘”‘’–•Ž—•˜“••‘“—”‘—•–Ž•–“’—’’𔕓›’”“”—–‚“š•“““–˜—”–š•˜“”˜”š“”š”Ÿ–›•“Œ–‘•””””—••‘“’“––’”Œ•””‘“’–”›•–•”””Ÿš“•“““—””“”“ž•“˜•–”—”•–Ÿ“•”™”’”“–•™‘•’™–“•“—“Ž•””˜“”˜”’““Ž””—••’“—”””•”“—”•œ–—’”•’“–Ÿ’””•”“—“˜“•”ž‘—”““™” ——‘”’•“’˜––‘œ•’“”•’””™–›“”•œ””——”‘—•”””™™˜™•—””’““’œšœ—”•›”˜”–˜•›“”””—”Ž•””””’“”•••–”•”“•”œ”“’•““””‘š•““••“—•’‘”“‘–˜”’œ•™•““˜—”“”—‘Ÿ•“‘”••””•””–”•••––˜’””Ÿœž“””“”“Œ”–’”ž“¡––¦”œ’•“–”•“’˜—“—”“”“•””••”””•“””””•”‘””š”—““¡–‘””””•“”’””™’” ””””˜”‘““•–›””™Ž˜–—”””–””’•’•”“”›•”¤“˜””•–˜’–”’—“”˜””•–“”˜”—˜”–‘‘‹•’””––”ŽŸ–š˜•””“–œ••—”‘“”“”‘”™•••œ–’•——”–•––”•“—˜”“•”“•˜’•”–”–”–”™•““••“•—–•”””•”“”””•”•••™‘•”•‘”•œ––“¦””’––’”–’––””‘—–“”ŸŸ–˜“•”–—™••–’š””“™•••”“”™–——•”‘–•”“”˜—“•••’‘”——–•”““˜••‘”––•œ•”““”“—•”™“–“”••–“™””–•–•–™–”Š””–“”—˜™—“•“–•“”’”“–’”•˜–”–˜™—••™”““• ›”•”•–””•”•š•˜”–“••–•–”𔕋•’•–’”•”•”•••••–”“”•–’•”˜•˜““••”™–••›•”™•“•–””””””–””–”——™–—•––˜š”“•–•““”–•”œ•–•˜’™–™–—’—”•™™”––••”•””••””•–“””•”•”•”—•™•˜–•š˜‘‘™””••––””“”–š•’—”••”›–•–””•™”“—– ”˜••”••–”–œ•𔕕—••™“”–•”•”•™•••––•™–””–””–˜™—–––”Ÿ••–•••””••””’•“––”””’”–•“š•˜•˜”••š•••”—•”•šš•••––””“–•”“——’•š——••”•––””–’”œ–•——•••””––”“•”——•˜•—”—•ž–Œ“•š•“•”Š”—•˜“š•™“—•˜•˜™”–“•’—˜š–•”––’—•’—•–““––••”•”˜–’––””•••””–‘“•”•™•”™—••˜“š“™•“———™’––”—“”•–’œ˜—–”•—”•’™–”––™•–—””¢™“–“”“˜–—––––“š“”–—”œ˜–”ˆ™•—”–•–””“”•’‘”˜””““š•”•š—™Œš“”“™’šœ“™ž›””˜› ””“”•˜••‘–””˜“”–‘•“’“’¡™““•™•˜–”‘—‘•““”–””“•”“”•›’™™œ”•“•”•™”“””‘“”—™™—”‚˜•‡”˜•Ž‹œ”””“œ•–•”•”˜•”—”š““œ”“”””””””›—˜“”–”£›Œ“”“”œ““š•”–”“”˜•“——™›–™•—˜”“˜š”ž•œ“”“”–’””™‘””“•”•œ™“˜ž”•”””—™™•œ•“’““““•“——“”…‘’•——’–•—””•“—“Ž’”““”““’”—“™–•“’“““—“’˜’“”””““’’’’”›’•”’”““’““–“˜’‘‘’“‘—“““˜“’–“’“”’•““””“–”““™”“’Ž—–˜“““’“—““˜””™”—”’””–‘˜”“—–‘“””“‘““”“““‘’”“•’“““’”“˜“™—˜“’’˜˜‘•’“•”““–“’‘“——˜”’’“˜“—’“““”””’”“–’”’”“““’—“”““”–“’˜š”–““”“’—“–•““““““”š”’“—–•™“’‘““““”“—’””•“•’“•“”””–”•—–ާ“•“•”“‰“”¥’—”““Œ“–•–”•’“––“““Œ“”–Ž–““••’’”—•”“Ž•–”™”““‘—–”“Œ“™•”••’•—•›–’•—•’•“ˆ”˜”–““•®••š—“•–™“”–—•”””•“””“••”™–’’“—”••“—“‘–™”•—”––” •“•–”“›“›•”—”’Š”“‘“˜–•–”‹–“—““‘”–˜“•‹•––Ž””—–”•—•–•“Ž”‹Ž‘”•“›”’””‘•––“Ž““”•Ÿ”ž–•”–”•™”•”‘“’“”•”š•˜˜•“““—˜˜•˜–˜”••™”˜•––”–˜–”“˜••––”•˜œ”𔕓”™“•—š•˜–“–š˜“˜•—–™”•—•’•”““—–”“–“——–•“›””•—˜“––‘•–•”““˜–“™—•¤›žŸ–™””œ—˜“”˜˜—˜—••”••š••–›‘—”“—––”“–“›•š—˜™™•›™“š™™“•••–™“™••ž—“š“š•“–—™—–œ–”˜““™™•œ—›š”“––”•˜–Ž”••˜–•™””•’“•“š—–™˜–”“›•’˜“”—–𙕗–š’‘••––••—““””“›¤”•••“”“”““”›•“—”“‘Ž“”Œ’“””‘š“••”•”š‘”Ÿ’““’“–”–’”’•““’”••”””“•”“›“”‘“””””“𔕗”””—–—”—˜‘•‘””••—””•”•’”ž–•‘•”–›“‘”•’—–™’””””‘”“‘–“𔓒”“””““‘”‘˜“—””–—”›•›“••”—•“”••”•”“””•–””’’”˜””™“”—’–‘“–”””˜””“•—””––””˜“Œ“•””“’“š˜—–•˜“””““”—‘“˜•”‘‘”–“™‘•””“’•”“¤•‘”–”””–™“–—›”—•—•”•—˜•‹•™”•””–•••••‘Ž”œ•”™’••™˜—“–””•”’–””›—•”˜•”•”””•””‘”—˜”“—‘™––œ”˜“––•”••”˜•˜”˜–•’“–Œ”•˜’—”–‘–”•‘“–”–•—–•–“–””™•”•”–””–’“””•”“–“™—“”•••”•”–••‘–“’”—•”˜—•™—’–•—””‘™™ž™•Œ•–•••˜š“”•”–––””’”””–••‘”™”‘•˜–””””•–˜”“š–•Œ•–•˜›—””””•”œ˜“˜“–”””’–œ—–›•—•–“”š˜’“‘””••“’•–”””•“›“•—““”“”“š–˜™““–””•–•š•–œœ‘”’“”’•”“—”›—“‘•›˜”“’š’•““˜”“‘”—•“œ“—Œ•›“–—””Ÿ“–“•˜™—••”•••“™•–˜–•“–––•”—“ž•¡™•”“››–ˆ›•“–•–•—“‘’•›œ’”–“›˜ž–™—•’•“••“–•˜”œ””——””—”–””’›–“›œ“œ˜‘“””™•ž˜•”–‘š”“Ÿ“”’š’—š›––”’•••—’—›””’”™˜””—–””“š—™–ž™™—•˜”˜–š—“”“””•”•••”•””˜›“—˜““—˜–””š–›“”˜–“˜•˜™˜–•–™–”“““”–”“˜”›™–”“›”’”œš˜”‘“—”’””™—•œ––™–™”š—”š“œ”•šš“•–”•“•“˜•–š•’”““••”•”—”›•˜ž•””›ž‘›™”––”“˜”–”” –“”“–•“™™š”—––“˜““–˜š”œ•“••–˜““—•’”•˜—–”šž”•”““•”“˜™•—•”••”š“”˜œœš–œ•”›’•——˜•š“““•’Ž’–••–””•—•”˜”–•“•–“”•••˜“˜•”–••—”–––––˜˜“‘˜””—•’–™–””“••‘”•–•••–—’’•—•””’–””–”“‘•––”–”–‹”‹•–”–‘–”‘•–•™––œ–––‘“””˜”–•—™•““—”—•™––˜›–˜–”–——–”–””–˜”“•Œ•’“™•”—––•””“––•““‘”˜”””•“–”’˜–“”“•—“–”–”–”–“•––”’”–•“—––•—›•”•“••“”“——’•–”’”“’“•—–—–†“—“–”˜–—””••𠝕˜”•“””••˜•’“–¨’“’“”“œ–”¥“••”“‘•”•”•—””’””’“’•¡•˜•–‘““”•”—”••œ”•“”£”“““‘”““““’–”˜–”””š‰š’˜•””–˜“”““˜—”³•”›–œ”—–—“”—™‘——’”™•—•–•”‘–’™“–•”•“’“’–“–“”›—œš–‹—’“””•”“”–••“›““˜“‘”•’–“•”•“™™••”’”•“•”“••’–”•˜•••™—”£’’””‘˜—‘“•‘””•“““‘Ž‘•—••••–’•••’–Žš“““”™’Œ“—–•““’˜–˜•”˜™š“—”‘’”””˜“”•˜œ••–•–“–”—”““––ˆ“š“–˜›“•˜™“”•›•“–•“™–”’““’•““˜“™š““’˜–“’‘•”—”‘”“˜–“™–“”š•”™—”‘–”—“—•™–Œ–•“–•˜–”š˜™”’“˜–”•“”“ž–—•œ’”—œ–‡—’“•–•˜ž“™–”••”““••“š–””•œ–”–“““Ž–Ÿ˜—Š••—œ“”–š““–—••˜”“’œ”’–”—šš–—–˜–•”›““š™–™˜—“Œ••™“”Ž›“”˜•˜˜œ”—”–””“”—–•’“™Ž•––””“™”—–™“••”—••–•“‘“•—““›‘˜”–š–“•“–’““—–”“‘––•–•““““˜–”“—“••““”•–”’•‘“•™“‘••™””•••”—™•’•—’”›—‘“–•—““¢••“–“•••”œ““““––•”–“‘––”“—•“”—’“––”——–Ž˜“–•–•–”‘“”“——’™—–”“’–•–””—–––“•””“‘“–’”–•’–”‘•—“–‘‘œ”—˜“–—–”””’”—”˜”•—•””‘•–””““”’–™––•”””“““•”–•“š–‘”™”–”–––›—œ••“’“•“”““”“”““›••”˜“”•“””•“–”“”˜•”™•–””““’”““•”™’”–—’–•–™’Ÿ’–•–˜–•˜”—•–•”•“œ•–•š••””™“’”•“”Œ’–“•–““•”–“““““–”•“•“™”“’•˜˜•““”’˜–“””””˜“”•—˜’•“‘•”–˜š•›••’š““™’“˜–‘””“•“–“––“““™•“‘™“•••“•””˜’–™””–”“‘“’””–™˜”––““•””””‘”“””•–“—”‘••““”””“–“–™•—””’–““•—”’••”——–•”––’—“”˜”“˜”’•––š””™“““•“œ–•šŒ•“““––”“‘“›’–••”––•™—’˜“‹”Œ•”‹”™–”•˜–Œ‘‘Ž”””’‘–“•˜’—–”–‘••––˜”““—–•–“–“š•™›•‘“•–™“‘™Ž“•–——–“˜••–“’“–˜”œ••“’—•’•““–šŸ”’••–Ž”•˜—““•’’••–—“–—“–“–Ž›•”’•–•”“š“”“—“•™–•”–”•““—’˜““’•”•””“–”””””•–˜““–“•–•••–””“”••””“’•”–•••–“•””””•˜”“——•–“–•“”••“•–––”••””””––””•”•”“’•”““–˜–••–””••”˜••”“•“–ž–”––•””˜•—”••–””•”–”•””–•“œ•”“”’”•–”—”••–•–”—”•–”›••“•””“””‘•”–•“””’•”•””“•••”–””””–”””””••”””—“””•••••”•”’“””–“–”•••“•”—–”•””””–”••”–—“•’”””•”””“•š–•““””””“–˜•“’“ƒ’•””“–“•”’’”–“”“•–•••’–”’”’”“‘•’••™Ž’”‘’“—”–“”•”š——”’““——””’“““—’–—•’”•’—––•”•’—”•’“𔕔˜Ž”’’’’•”•—””’—•‘•””•˜””’‘“”“—”–”—””•˜••‘Ž•˜”‘•’”–••‘““•”š—”•”“”“•”œ”••–”—“‘““‘””‘–••’“”“”””“’˜–”™˜”“’‘“—”–“–˜‘‘”’–•”””“’”˜—•˜•›š’–“”“““ž“”“”–“¨”“”“”“””’•–”“˜•”–•–’”‘”””’””•••—•Ž•”””“‘’–”˜—˜““••–“”“—”••ž™””“•‰•”“ޔ𓓒—”–““Ÿ™”‘™˜””••›”•“™””‹”—“–‘””œ’“•’’–”“”•””’–”“¡••““—””•“–”–•“’”‹”—š“™’“”””•““œ–“—”’—”•–“•“”—’‘•™’“•“”•š–‘–•”•”“”‘›••Ž“”•–‘”Ÿ”•–•–’’”“‘”•——”“•“——˜Ÿ””—Ÿ””’’““’“”””’ŽŠ“ž‘””““˜“–”˜–”¡™”““•“˜‘“¢“‘”“—š””“””‘Ÿ•œ••”’•š“–™”›“”“˜˜”“”—Ÿ™””–––”“””“””“–”–™”–”––“”••““””“›””—“š™––•”¡˜™•”“”’‘’”–”“•–Œ’””“”œ””›•š“”–””””””–”’“‘““”™””³–””””Ÿ•”–””›–”—”–”•—”’—”—”–—”“›•’–•”’”“”š““”–‘””’‘”””‘“”™””””’“”•–•”–“””“”™››˜—˜”’¡”–˜•”•—””“”™‘§“•”””““‘‘”Ÿ—’”˜”““”“—““›’—”“’—”””“””“˜•™‘”“••“–™”’—““”’”””’’œ””‘–‘•‘””™””“’”œ–”’•–””­–“”““”•–“—“–Ž›”¡—›”“”“¡‘™””Ž”–𔓔“””””’Ÿ•’““—””””“”•“˜˜˜”•“”Ž’•””””™—”˜“”““˜”˜””’—‹–”™”–‘”“”’ž”•Ž”“”’”“–˜“””“—””‹ˆ“”—›””””’“‘™”“™”“ž“”–˜žœ›–”‰¡•””‘–•‰”””Ÿ¤”š—”“““”“œ•𛓓ž”𔕑‘–”ž•“•“’™¡““““”œ™““““›Ž“””š—“’™—”˜”›¡—•“š’””‘““˜”•“œ“ “—’›–˜”˜š•–‘›•”“™“–™›¡—”‘—Ÿ›“œ”¡’’”“‘—œ’’”’”“–”“›•Ž™““˜”“””””•”›™ž”›“šš”’–’““””—“”””“”Ÿ”š“””œ––™’•”’™““‘˜š›“““Ÿ’”™š”””š“”š™““˜–“”–œ™•“““”™“”“”•’’œ”‘‘”˜–—•˜ “”‘––—œ••š•“””—’’–“––™”–•™“—•”©š’••””™”•••”šš““•“““—•—•”™”””œ•“”•”–•—•”ž’–”““”–”“””œ””“˜œ–•–™—›“’——•””š•—•’•‰•š”š–’™“™“•““——”‘–”••””–•Ž—™”“˜•••“—” ”–™›–•”›š“–•“–•“™—”—•”“““™”–•“™•“—•™—“™“”’˜–•”—‘””•˜””˜“–””˜“—””—•’•”œšœ”—˜•”–”—“””Ÿ™”˜•”‘’•˜•“–’˜””“”˜›““’“”“’‘”•””˜–”“˜“š“™”“——”“”–“““““””’••••““—”“‘”˜“”“•—”•”–”˜””—˜˜•“””“”“—”˜–”–“˜––”˜••š“˜”•‰“˜“™”˜”—š” ”›•“˜”™”“•–’””’””“””“‘•š““•“”””““–””–™›•”š—”—–”““”ž•”•””˜—“™”“”–˜—”™˜–“•–””ž””Ž—•›“““š“”””“””–œ“”––“¢““““”–—’˜—•““““š“”˜™™–›™”••’”—””••”””’“˜š“™š“““’˜”’”•—–˜’–“•“”–“¨›“”“–””’””™•”–’”“•—Ž••‘•—”“’››”“•—•“•”“œ—“‘“”†””“–“™˜“š‘™˜•“–•“œ’˜””“˜–••š’ƒ›Ž’™”‘‰”“”‘“”’Ÿ‡”““”••“˜ƒŽ›““œ’’””“”“”‘›”šž”–—”„˜“’’’œ”™•“’’“’”™“–˜—˜›œ“Ÿ““˜–’œ’œŸ“’’˜“”›‘””œ™’•–’ž‘”•””—›•œ˜“’†”“’”“”š’ž—“““š“•’•’““’•“’˜•—‘•“““‘””–™—”••”™•—•›••’””•”“›Ž”•••••““˜“““—•“•”•–”–“•–”—•“•—–•˜’•””“”ž•”“™”•”•”•”““–œ“œ“•š”œ•””“–•˜’•–””•–’”‘•””••™””›“–”••”––‘›‘š““•••–”—”“–“˜”˜•”Ž“™Ž˜“•••˜“””–•Ž›“š“”•”““”˜šš•”“”˜‘‘””™•”•˜”•‘˜”•”™–•‘™“ž•––•““›“”—”•“š–“˜“”–•™–—•”•–•“”™š•‘“”’•–£”–“—•“““œ™˜•›–•”š”˜“š›”•™š–”“™˜”•”•••”—›•”œ—––””™•““š”˜•›—Ÿ••˜–•–““““•”“•”–›•œ–™—™–𛓔—•š•”““œ“–˜ž”›œ•¬”¢”‘Ÿ‘–””—•˜••’•”•––••™•–““˜•”””””œ•–—š›’•“‘›•“”””™™“š–”œ–“œ”—•“š—˜››•’™““Ÿž’‘—›Ž”“•™”•”šŒ””••–•™›“ —“•“——–š–”’“”“›’”—–œ’™™–Ž¥‘–š™œ“™“”’•‘“‘•–•–””•‘—™–””’””“•’“˜’•’’™–•“‘––”•——””™•”’’•’•—‘–”•“’”˜–‘”™–•–™˜•–””—•”“”˜””•”—•–”•“–š””””•”“‘“•—”“—•–˜”“™“”—š™”””–”––˜—”’”•”””’•”””””˜–“•’“––—˜””•“”””•‘›”——”’š”–”—••“’—•‘“–•–””‘–“˜“’”••“••‘’‘”–”•–”””“’™”•”’––—••”—”“’“”••”™••œ–’–•“’”—”””‘–‘’——›“”“•—“”š™˜•š—˜”›—–›”‡˜••“”—›“••”“œ™”™™““ž›––˜•”–•“–š™”’”™™–”•’’••“”“””””š”™—•š––™™”§™™‘–“–—–’™”š˜—”“’”•œ”•’–•¥”•”’™•˜“•”“”˜••™‘“”•”™”••“””“•—˜–—“”“’”¥•›““““𙓛–“”’“–”—’”™—’—™”””—””“—’”˜š˜”“”–“””š”””œ•”•–—”š’“•—“—”—š•‘—”•”•š–™™–™”“š””š™—œ”–””“•››¢”““•””““’“–Ž”•‘”“”‘’–”””•••”—”””••’˜”“““”””“”“˜•–•“”‘•“”““•”•–””“”””•””“”—‘–““‘‘•“‘’—’•“••‘”“““’”•ˆ˜˜“””š“š•–””’‘“‹”–“••“••“”’’“”‘–“•”–”›””Œ•“‰”–——’‘’“•”””’”‘•”—–“™”’—”‘“”‘’™•—‘”““’‘‘”“—•”•‘“•’’•”””•”“•”ž–“”•–“•””•‘•“˜•”›”–’—••””•–‹“–““’’”””••“‰•“•”“““˜‘“•™š“’“–”‘”•„‘•““•’”–•–––’“•–•“•”œ”‘•“š“–“””—Ž”“—‘•’““™–”“—“’•”•”‘”“‘–‘–˜””“’˜š‘“ŸŠ——•’““•’Ž‘–””“•–’•–™“”“““—•”“”“Ž•‘Ž‘–›–”¦’”““••“˜“˜—”””“”“’•“’’•–’Ž•™‰“““—”‰–ˆ–“•““•“’Œ”•–••Ž“™““”–”–Œ‘””–“•““”––”‘”—™”•—˜˜–˜‘“““•”•••–•”““•——”œ˜“Œ–•””’“’”•“—“•”•–—–”—–”“”–‘“””‰”–•–š•“””•”—••”™•••™Ž”’“’˜””““”—”““–˜“‘“”˜’—’’”‘•‘š”””—”—›œ–˜’”›““—˜˜””•””’•••–”•“”““••”•“””™–Ÿ™¡’‘–™™–•”“•—–“’“•—–›—’™”’””›“”””–•’—““‘•–—”–”••“•—•Ž“–’–”–› ””““•”ž‘š—’“”™“–“™””“›—•™œ”–”’•–••“–•“”””˜€”—“”“““˜–“™•›‡™”“›“˜”–Ÿš””“š˜””“””Ÿ™•’™–”š˜“–—“™””“¢–”“”–•‘““–•”•‘””¢””“™””–”“’›œš“—›¡””™”–”•œ“˜—𔕓Œ™˜”“—”‘”‘”“’š“š¡““”•œ”“˜–•““›””””’”˜”‘š“—•™™”˜ ”““””›–”—””–”Ž”˜”•œš™ž››“‘Ÿ”“™™‘™—››”““•“”’œ“””“›“”Ÿ–“™œ’“””™˜—˜™”•”“”“””’”—”ŠŽ”“•”“•”””’“𙑓•š•”””˜—˜•›˜˜”•“˜”˜“˜’›š“”“––•””•”˜–“––““š—””•–“–‘“”—™’˜•š—––“–œ–’–““•–”“–“›˜”›˜–šœ”œ™¢“•š“™“”—•–—™™˜”™—–—”•”œ——“–—˜•›š“•“–”•“”––™š•“š•“”“”““”•œœš’”™–‘«›˜”••”™š““•œ˜“•”˜““˜›—˜œ™•—“”ž—”™œ–•”˜””•𛔔𛖔—•”‘—”’–”™ž™—œ™“”““—”“•™ œš“”¤“”š––—‘˜“”“•””–“𔓔’™š”–’˜–˜”“•–“˜˜”“–˜•’–—œ–—––•“—““š““—•’•”•–“–“–›““•–“š–—“–•“““••”“‘””•”—–‘––•–“‘’–“–‘–””””“™••‘˜•—™•‘•’—“–“’𔓔•”–•••˜”’’”“™—–•“•””–—•‘•••”””“Ž“––•”“”›—•”‘“š“–“”——“˜’•—•’“”’š“œ˜’‘–”•“”•‘—”––•–“—”™›““•”’••“”––‘”˜“–“”–—’”•˜’•–˜•—•Œ““••˜‘’•”£“”““ž“’”•™›‡Ÿ”–“™“œš•©—••“ž ”””””™•”–—•“–¢˜””–”–—“”šœ””›˜¡”“‘š™–’“”›””“˜”š™” •—“•”¡—«””•””Ÿ“™“™–𓇙‹”¡”’‘”›”“˜’—œ…”””–••”Ÿ¡”š”“ž•”””“”™”—›–•–‘”Ž•”““””˜“£•”–“œ”™””™–˜™”œ”‘›””˜š™–𙓓”›”•““””›“”›š“ ””“‘—›˜œ ”–˜”“‘““–š– •—•Œ•” ˜™’•š“”•”””•™•–“”““–•–““–¢•”“•“””‘•›”•–•”•”•–•–––—“˜•”““’™–”––”““•””“••”•——•”—“•“““‘–”“•”––•“•””••š—“–•“–“•”“”–—“––•¤–•–•“•”—–‘“•”•“•‘–“—––––—š“””““–••“•“—–—”“”—–—˜””““•••–š“––•••“—““•“™”—“•—––•“”—‘–—•’•–”–””•—•””–’”––•’”“—•”–”•”———•••—•””“”“•˜–—”–“–“–”•–•”“““•”œŸ“™–““““—˜œ”—œ›“™“—”›œ““›”•“”œœ“““““—‘”‘“•“™—š“˜š“”““’ž˜”—“œ—•”“”™•’“”—””“–”—“›”•—™”–—Š””š”š“•–“”˜š—“›™––“𔡋”“˜•“™ž‘””“”™“”™—’˜“”š””“”””–“’‘‘™”””–“˜—”““’“šž“™““™˜“œ”œ”•˜š“–›”••”“š““˜“““š““˜”“•’•“–’“Ÿ•–”“””—˜™“””““Ÿ“””’Ž’”—‹‘”•—‘—”•”“’•’–“”—“”“““––”“”“—’˜•Ž‘‘••–‘””’•–’””š•“’•Ž”••–””“’‘•”•Œ’›–’™—˜••““¨”“’•“”‘•””™”–™—¡““’••“”¤“’•Š“”˜—““••’••–““‘“¤“–”•–‘–”‘‘”““•“”“”““”‘•’•–•—””ˆ’’’’–•’“––”–“—“‘—•“–“’”’™“”›Ž“‘“‘˜’“””“–“““”•”•˜–“˜–””“‘‘”“•”•—’“–“”˜’’œ––‘—š•“’—‘”““‘•™˜›””–•““’—‘’–˜•–š•“˜”™“™˜””””•”˜‘••””–•—Ž”–’”“–›™”›••–““’›”•š–š–•”“””““Œ•““›“”š“™’—••˜–“”””•“•”œ“—“––™•—œ‹§• ”’–›ž“•šŠ‘”’“–“–•“••˜†–’’“•••”“•““•’’–›–•••””—–“”••”—“˜–”–”“—”’••–˜•—˜‘–’•““ š’‹—™š””•›”–’•‘“•š”–••™“’‘˜“”“˜™—–š•“”““““•”™““”–Ÿ–”–Ÿ––’–™“”“–Ž“•“•”””“•˜“˜–“”‘•””’“’•”¢‘“•”““––••••‘”‘’’“–’–”’’–”“–‘’•”•“••–”’”“”“”•”“’”’‘–‘’”‘‘”“˜Ž”’“”“–‘™”””“””—’™–––—“•”––˜’–“”’”•Ž•–‘“Ž’’”‘–•–’•””–‘–‘’••””—‘“–—•“”‘–•“–•“”•““’–“”’•‘˜“”““’””‘–•–“•”‘”•”–••–˜“”“”–•‘’•”‘‘•—“˜”’”•‘’‘‘“–•—œ“•’““”Œ”””“—“‘…—”š–”“”–•••˜ˆŸ””•˜•’”–‰˜™––•™œ——•—–—œ”“•“”•šŽ—‘”—““•–“’–’”š–––˜–•””¤–”“•”•”—™—“–˜”•ž™“–—“—’–”“””’”–t›’–˜“”“””“–‘“—š“—“——”•–•Œ• ““˜—–•”•”˜•—™•œ˜šœ•„•””––—œ•”——–™••”—–”™”’™”™—’•““–—‘Ÿ“•“—••˜”˜–•“”–’——žŸ”Ÿ’’–“™”•’—˜–“‰•””””“™“—•—‘’”–—•••”’“”•”’š˜””¡”””“™–•”¦’¤]œ“““—’œ““„ž”•“—¡¤““”””¨”š“””•£|“𙕛—“”¤ ”•”˜•—””’—•””””“’”” ”˜–“ •£”›”’Ÿ’™“”“”•”™—’•Ÿ“c—˜ –¥“– ”“—•‘—•”“””“•“—–“–””–““””“”¤”ž˜©œ“Ÿ”k—•”’““›š”˜•” ““””™’”›••’•¥”•—””˜”–˜’•”’”“Ÿ””™”–””˜’“”§¨”¢’”““ —¥—›”™¡””š””›š••ž”‘¢“””–‘”•”””“™‘’“””””““’—“˜•–“•’““”™“’—”’””””””“““”“–“““’”““““™•˜•‘”•””˜”““š“”˜—’’””’’““”““˜““”‘š“•”’™™™’’’“”‘““˜““——”•›–˜“™”—‘™”•–˜“”•””“““”“““Ž’•””“’“”’”“™”›™—”““™˜”•–’“”“”•—“•““˜—’™“””“š“™““”’’œ”—“““•“—””“”““““—“”‘—““™–”ž”“““•—”˜”””””“””™”“’––•𙓓ž““”“““˜“””•—–†””“–“”•˜––“š•“••™–––•—”˜••••”•’–•—”••””“—“”•—”•’˜–™Œ“•”•”•˜–‘––›”‘”””””•”“•”—–””“––”“š–œ–˜“˜••’”•”–›“—’˜—•–™“˜“’”– ž““”•”’•“––––‘•””–––•”–”›–”˜—˜–•”š””›˜•——–•“”””––›““”“”“™•›–—˜–“—”“’˜“——••–—”””Œ—”•“›–•—’”’“–”••”—™–—”•”–””•””’––•“™• ’•–•—•—ž””•••–˜•”™–””””•—””“–¦˜”–”š”——”¡–•–”š˜––••–˜”””•“”—˜Ÿ–“”•™’“•—™”™•—”””–˜•‘•”””Œ–””š””–—˜——˜”‘˜™“™”•””‹”™•—•˜•œ›™“•“••’˜”••š”˜•“””••“•–••“™•”—–––“–”’–‘——•˜š•˜“””–––™˜”›••”š““””–”š”–——”–’š””˜•““– –•—–••Ž——”•™˜–•™ž”˜—•••‘“•–”˜š•”‘–”””“’”—–•–ˆ”•••”•••””•””˜Š’›˜•““’‘–—”ž”˜¥”’”“š‘˜™”£›“““’––”’““•—•”˜•“—“›“”–˜•’‘›•“””–“’”“–˜”’“““““•“•“‘—“—–›“˜š—’”˜’”’•‰“™—™“–• ››•“˜“•‘–“““–‘— ““”“““–’—••›”“˜”“““”““”‘–“™“–“” ›Ž’“’•›™“—““œ—’Œ“‘–“œ•˜—‘““Ÿ“’•“•˜•š‘“””’“–’“•“˜’“œ’“™”—•’’•𓓔𔕗’”Ž“‘Ž—”™–”‘ –“––‘–””““””†˜”ž••”””ž”’•™“‚š”˜•˜”‹‘–Ž˜ž“–’‘•”“••›—•–Œ””™””•Œ”‹Ž”’••”›•˜˜‘•“™’—”–””“•””””™——‘˜›’˜”¢˜Ÿ““Ÿ”–“‘œ”™•š–Š–£’–Š”ššŽ”’™—”ž‘””“••¡••›“–˜“”›–“””””•”šœ‘˜–•””“Ž˜Ž”••–”–“”“•‰š•“”•–“™””—”“•””“Š—‘–ž†”••“”•’˜”””—Ÿ””“ ”}‘’”–š“•˜“™”—š“”•”–”“’”›“•š••”•“–””’“”œ™’“—““““‘’˜“˜‘™‘–’““–’”‘’š–’“”””—’’“‘“–—“‘’“’”’‘–’˜•”‘–—•–’”’”““‘™“““’‘“““•“–”’–‘š“—“™š›”’’’“‘’“—’’”™““—‘™’š“•›“•“’•”“””•“”“‘’““”œ’˜””•’““’”“˜“š•–š“™š“’“““”–š“˜‘“›‘—”“”’“˜“’‘’““’š““—’˜“’’˜“““–’”’’˜““”’“’›˜“˜”’–’•—•™•”—“•š’“˜“”••’•™“’–“’—‘”’”“––˜‹•Ÿ˜•”“””™•’—˜—˜–™•’––˜–”˜™—•” —“””””˜“˜˜”“›“˜•™”•™—“”•—”•š–‘••–š•–“””›””“Ÿ”•—•–”˜šš–ˆ˜’•™–—•”‘””š—”•”•”ˆ”’•”‘”•”•šž—˜—“••”•—••š”‘œ•”–”••”–”—•˜—›–ž•˜š”‘˜—“““”›””“••š˜”“”‘–“•–š•šž“”•“”–“™•––œ”“”œ”•—˜“”•™••š™”—œ“–””™˜žš™™••’•”—”””™•–“™–“‘“••˜–—–˜””“––˜‘–Ž”–“““—˜”—“™˜’’”””—–––“Š“™—””••–—”•–•“”••“—™—–‘˜”•–“–””“™•”˜•–•™–––’““•—”“˜”œ”–—˜”•”–”›–•–˜•”›”—˜•š••š™˜‘•‘”Ž—”—”•˜–—”–˜–”––•—•“•”“—–•“—”•–•˜‘˜•–•”–™–“••”–™“‘••™š“—“’”’——–’–”—”““”ž•›•’•”–—””’“—”–™—˜•••“””••–”’˜””•—–••’™“”•—–œ˜–•›˜–’•——•—““’••‘‰–””“”“““’“”›“‘””—”–“”””‰••“”““•–”–”˜•”“’”””–“”‘“”””“•““‘“”“’”•”“’•“”””š•“”—”””•••”“•–—”—””‘”“–”–””’”’’’’”“”“•“•””•’““”˜”•“”–“”•’¦“”””’”“•””””˜–—•””’’•™”’“””“•””‘—””““’”“•”•”“”••“•”••‘“”“‘••“”“”””’”“–”•”“Ž“’”““•”—“”“’–”•’–”’”“’‘–““•“”›‘“”’“’˜’””””•…”“–•”“”Ž•““™’•——“’“““•””‘””””™˜”””––’“•““•”•’𔓓•˜—“•–˜“’•’“š“”’™™”“”“Ÿ”““•”—”•–“’•‘”Ž™š˜”“”–“”•“—•“‘”“ž–’–”•”’œ”–””‘”‘’’’““•••“’’”“”““”””““˜•‘”–”š•™™”œ‘”“”””–™”—–”›“”—”™•”‘”’™”’”“”‘“’‘••“”—”””•””•‘“––™“‘•”“”“—’˜“˜“”’“”“—“”“›˜‘•–“–£“”–““”–””“•—¤‹”””””“”””—•Ÿ“œ†””””’’•”ˆ““””–”•–•”–•’œ“””’“’“ˆ”‘ž”›••““”’˜”••ž•”•˜˜“”““—–““’”™”—”–œ••”Ÿšž‹—”—””’“˜“•–™”ƒ–œ”›’“©•œ”˜™˜‘“—–•“””••–”“—““””•””“•”š”œ–›”••¡œ–ˆ–“”–•–“™’—•”š•™Ÿ””•”ž•“••–•’™“’––›•””–”•”“”ž”””’’”””›““•”˜–›–•’“•˜•”¤”““˜˜››”—¦“•”•“–›˜””“”–—”—™•”””•––“˜–—”—”˜”–”’š”‹˜–“”–›˜••”••™—”––““š˜—”—“”—““”˜–”••™•“””•™”””“““–”“›”•˜•—”–˜™“–‘••–“““””–•™•”•¢™–‹”•”–›“–—–”—••““””•”•””—œ““•••”“”“””–˜š••˜•”žš•••••š—“–”•›•“‘”–””——•––˜•“–““™˜•—š—–•”•™•“•˜’””›˜•”™ž”’›˜“•”œ˜–•˜™“‘“””–”“•——••š“•““”—•••••“”””˜š’”“•””“”—‘’••“•–”•”•”“’”•–””•‘—””””••—•““’“‘–Œ”’—••”””——”“”—–—•”–”“•–””•”“–”–™•––•“•””• ”•’•™””Ÿ”––’”–”›––•”—•“ž’””‘‘’–›–•“”””•••œ—“”““””•”””—”—”—•••—š•‘—˜”””•”™”‘””—““”””•’˜˜““•“”š–””—–“‘–—Ž”””™“”“”’””””””’‹”‘•™••”˜”“•’–”™–”““””—–”—’”•ž’•—“”‘–•””––™˜ˆ•’—•““”—•––“˜–™”˜”–’––•Š–“–•”˜˜•••”•𙓕—“’–š“••™•–˜“•–•“˜•—˜–––˜™”•“““–•”“š”š™•—•–——••–˜•“–š•”—““™™••‰”‘•”‘“‘œ–™“•––—™—”–””•••™•”““••••“—“˜•™–›—Ž”–˜“‘™““•””–•“•”””–“ž“–”’—˜š––––”’“””›˜Œœ——””–˜“”™–””•š˜—”•—“‘™’’•”˜–˜™–˜•””•“˜“”•››ž–—–’—–––—”—”˜““••’”“•˜•””“››”—šš•’›—–—™—‘™”‘˜™•““˜š’”˜’”™˜“–›”“–˜Ž’™˜™—“—™•“–•™›’˜•–˜–””““™–”“˜”™–”—™–œ˜”–••’–™–𔕔–˜œ—”—””’™”•ޓ𓔗——𔕕””“—––œ”•—”“›–––“™“’–•™š”““”–”Œ˜““•••™’“˜“•–˜”‘”š•’–˜•š˜••““”‘˜–”˜—”–—•““—˜•”–”–•”–—””›’’—“œ”—•”™–“—–“–““™››š•˜•™“’––š™ž•”“”’”“–’“›•””““š‘—”“™™˜Ÿ“–“•‹”“£˜•”“’œž””“””—“•—““š–”“š‘”—““’™˜”–”—š”””˜™’”“““Œ””“™““œ“š•™™™”—˜œ’•“—””“–œ–š”›—“’“‘”Ž”“””’ž–”’”“˜””›‘‘š‘“œ”“””“”˜“”ž”˜—“–—†—•””””œ“˜””––’‘”ž”••˜š›˜›”•“’•›‘š—™š”””š““‘’””𔓕“šŸ‘•”“—“˜˜›•”—““”“”–’–”–“””™–”˜˜š””–“”“”©•“‘”“““”Š–”Œ’”Ž“••˜“‹‘””‘•Š•”“••‘”™Œ”“”•”–™•’—“’Œ•“–•’”••”—•–•‘““ •““’“–”•’’”•“™•“”“”’¬’’“‘‘‘“‰••™“’’’œ‹“”˜’“‘‹’•’”–Ž••–’“Ž”””“•“—•—•‹–••“™Ž•““””‘”””•“—’¡“’”•’Ž‘’’•œ”“““‰Œ’•””••“””““”‡–•Ž“–Ž“”••Œ›“•”–”“–’”™”ޕޔ›˜˜••’”’—““”•—”…–›•“””•—••“”¨•—”—“–—”¡”𖔕މ”••••“—“–•““–ž–’˜–’–“•Œ””˜––˜˜—–š–•““““””“””•“•”—‘–¤”“••—–—–•Д𒔔•”¹˜Œ£••–““–™“–˜˜˜‘•”–”•–š–”•£˜–•“”“”•””“‘–•‘š“•““”Ÿ–™“”””‘𔓗•™™““ˆ•“™š˜”š”””“”œ“–””–š•”””–”•“”––˜”—‘””›’’•”•˜•“”–””–“•“”—‘—”š–––’•—“™—’˜““”–—˜–••™–““”šŒ”—œ‘—•˜””•—“œ”–’•“—•’›•••––“““™Ž”“’˜“•‘›–˜—“•˜™“‘•”—£—•œ’–“““”–”““›—•œ”™Ž˜—¨ž••““—’•”™“œ“’ –‹‘¨”œ”¢•—“•”‘”˜““—“—–Ž–••Š•“““˜––•“–“™–“——›–™—’““•“••–™™“ —•’“¡“”–”œ—Ž––”—•Ÿ““š—”——–•”••”— —‘“•”Ž—–˜‘”ž––”•’˜˜›“˜••—”•“˜““›•™–“—˜«‘—›••‘•–““•“˜‘’’“”“““’””“—“—˜“’”“”Ž›”“˜“““””–‘“““““–“‘“’“’•“–—“•Ž‘”’’–“‘•™““’““”““‘”“•“’“’š””“‡™™““˜“Ž“‘–”š”“•šŽ’›’••”“–“–““”’‘““’Œ‘””‘““““’“’““™”•’–—™˜˜”“’““”š““““–‘‘““•’••””’’–“š”—•’‘““—’“””““’’•“““”““—–“•”“”“’“••“—““•’“š““–‘•“—’•““’–š›’”’•–”‘”–••”””••˜”›’˜’‘–’•–—“’••—”••’’•–•••“—“™”“”•’•”“–•—‘”–“—“™”’–“•”•™˜““”“•–””•”˜“–•’—–™”“œ–š‘™”˜”’””™—‘˜••““•’••”–•—”–—•“–•””’••”•–’“’•“”“–”•”–”–••”™•™•™š”›—””–––“”””••˜–””“•”—••’™–•’–”“—’™”“”—–•–”“•˜“’”••“””™›”“”’–—–˜™–™’””—–”—”–“˜—”˜œ”–›”•““••–””“•–™˜•œš”“’“Ÿ–ž”˜™›”›””˜“‘š“••˜•’’š˜”•””“›˜“¤—““—ž”𛓙𓔖œ”ž” ˜”•›œ––“““””“ž“Ÿ •š“™–”•Œ››““’•—–“¥”š™˜ ””˜™¢•˜”¡•˜“•¢—˜œ•’•”••š“”œ–’™”’𔕔“”“œ”¡œ”•›™””œœ”••“˜Ÿ“™•”™œ“™“›””˜™œ—œ¡•“˜““›™“’”””ž“”•””˜›–”˜““Š—˜””“›™˜œ¢—•—–•”—““—˜ ž—˜•—¡—•žœŸ–˜¡““”•𗒔𕕔”“—–˜•œ””””–•””›—•˜—•–•–™••”••”–”‘–”””“’•’™”›””—•”—•˜™–”•—“š””””˜•”“•”‘•—’˜˜–•’˜’š’—“•”“…“–””œ”•…–——”˜““’•𔕙–’˜ž”•“••𕕙𕔔”›•••”–”˜•œš—’•˜˜–‹••“”••““””••‘™•™”––•—’–•—™•—š””””••˜œ•••“””––•”•™–•™ “—””•“—‘˜™’•””“””˜“”‘•••”˜•Ÿš•’”““ŒŸ””””“™§“”•””““––š”Ÿš——””–“•–˜”“˜–”“”–“””“““”–“’Œ”““•“™“—Š”“–•”™”“•ž”“—••““”•””““”™“”–—˜”—“™™›”š“ž”’”–”“™•”›“š”™’”œ“œ””œ™˜—”“““““’“”‘“•™““”””””“”–“š˜¡˜Ž“š—•“—’”””“–•“”“”𙓓“”•–•™——™”’•““–˜“—˜˜–““””’““‘””’“”“–š“˜””””ž›–•˜”””•““““•›”˜•š”œœš”“Ž™’˜“”’••¡•–™”“““—˜”’›–™™•–’™“”–”˜˜••”‘™”•“–•˜š””—”“—˜Š””•”—“”ž™““”“š–“•“˜•–““”““•“•—•™“™”š”Ž’‘•—•™””‰’™™˜•›“Œš˜–””‘›š“”’“•˜“““”——””—Š’—““™”••“’“—•”—œ—™–›š”‘•—“””•˜˜“—–”ž•“““••“˜—–˜•—”š““•š”––—–•“”˜“•™˜“”––”•››“˜›•”“›–™–——””˜•“’•’™œ—š”—‘•“•—–™”““““ˆ‰“›–”““’šœ”••›–Ÿ“”–”•’›’œ—š””“•’’’”’”—“”•𔓒˜“–•”’““”“”•”–š•“™“•”’“”š””“–”š–“““‘—”•ž’‘“”””™’”‘“”š—™“–‘—“‹”ˆ’”“•˜’•…’•““”¡””œ‘’“˜’’“”•”••”“˜•“‘“›–’’’’’“–“˜““—œ”Š”“””’”›”™”“˜Ž““–”’•š˜’“”’“Š—””™—””ކ“Œš“”””’•”š•”“•““”“•”—£Ÿ•“”‰•Š”“˜—›’—“”’•”’•””–””•“””•“““–”•”•”•”“•“””••”•”•–”––”•“”““”””“–“”–••“–””’”–”“”•–“”’”””“••’”””“”•”””””•’“–•’”””•”“”•“””’–™—”’–’”•““–”•””“”—••“––”––”“”•”””•––“•““––”•”˜–””“˜““”–––•”””–––“‘“”’””””””””•””””•””“““”—––””•””“–“”–—“˜””””–‘•“’”””••’–”“”‘“”•““•–•‘”•”“”“’””””•“…–—™•“”””ž™••žŸ——•›”œ”Ÿ”˜—Ÿ•“’žœ•–––”—Œ”–˜““¡Ÿš•”™•”•“–˜”š•™˜˜•–›‘—”“”””•”“¡”—˜”¢•š›œ•«–£•—£•œ–”†”—›™™™•—”–—ž•’ š””›™—›Ž••”•–™••š›’”•”—•••”””˜–“—’œŸ•Ž•—•”•–”˜—”–––’ “Ÿ”Ÿ““˜”™šœ˜•““”Ÿ—‘˜ •”•œ”•–›•”•“˜––˜•”£˜’”•”Ž™˜›™••—–“ “”›™›““•’™•˜—— ••”“••™Ž–’•”“““”–’”™•“”•””“”—’•””–”•”•“•”–“–•“˜–’“‘”–•–™“™’””–•“•”–•˜–”“’”“““•””“”“œ”•“•–––—›˜œž”•–•–“–“›’’”˜““™‘—”–œ”•“••“•–””–’•—“”•’“—–‘“”””•”““—”—˜˜‘™–›œ“–“‘’’•“—•“”—••“”™“—•“˜•““•“”š““‘“•“—•““—“—““’“”•’”–—“‰”‘“•”™“˜•˜•“—‘•“““”˜š—››•—’•–””“Œ’““•“›ˆ”𔓓’™œ”•‘””˜”””›˜“–š™”’‘››’’“”“”–“—••“™““™”•’’™˜“œ”˜“™•“•›‘”’““ “““˜“–•’—’••ž”–œœ”Ÿ•—“’Œ’˜’–šœ“—˜Ž‘“˜‘“Œ”’™œ”•—‘”’“”•”’’’š’“—’““”““œ“’–—–‘“”—˜’“’‘‘”—“˜•’™™“ž“š’”œ“—•—›”Ž–““•‘Œ•• ’“‘˜“’†•““’—””š“ŸšŒ•“‘’™ž–——““›”“ž’’•š’‘™›“…“”’’“—•““‘•—œ“”™•”““’•—”–”––›“•”•””Ž–˜•””––“”•“”—Ÿ””“”“‘•”“˜”˜”““˜–”””–™‘•”˜š•’““•””“š“š—”““˜–’”›Žœ—••˜””‰’™—’–”•šœ–””–’”•”””‘—–‡•“•”—””™Ž•“““•”””•“™””• ™•”—”—˜—“”“”™™“™”“¤•“–”Ž“•œ˜—“–—•’—““˜–šš•‘““”••–”“˜–•”–™“•œ’”““™˜—••˜””Ž”’““”—™•“›™–•–𔕕“““–”””””””““˜“•›““””““”••““š“—’““’“””••”“’“–”“”””’’”•–”““““”“”““—”“••Ž“’“““””“””””““–”“”–”“‘–““’“’”—””’”“—–“”•”Ž”””˜“”••“”“’”’•“••”””““”•““’””’”—™“”“’”‘•‘”””’“•”“•“”“––”“’”–“—”“‘–“š“’’“Ž•–“””“”“““’”™””’•””••“’““”•š–‘“”“”“˜”“”’“–“”—–˜–’“™““”“•”•“”’”žž¦“Ž“’““’““””Ž‘’’“˜–—’““’“”’”Ž““““’–Ÿ”””““•“‰”›š“’”‘”–“•’•”•š—”‘““•”““’“š”’Ž”˜“’”–”–—“’”—”’’”Œ’•Œ“}•š˜’–Ž˜“™””‘•–“–’”’“”’“”’‘’‘““““””•“’“”—•‘‡’šž“¦•’“““’ˆ“”’•’’š“Ž’”’–ޕޔ••““••Ž—’’“““““—Ž”’‘—”“•›’•‘•“•”““Œ’“’”““’“Š—Ÿ—š–“’—”“‘‘’‘““‘‘’©–¨”Œ–¢˜ž——‘‘™©š—–ަ–”’¡™‹’ެ–¡’’’‘••œ•¦ž˜¡‘œ”•’‘‘{š“š“œ˜’˜–Œ‘•‹… ™–‹‘•“•’‡—”—šŸž‘¤‘€›Œ›’–’¤—•¢›’Š—¨•Ž’£‚“¥–¥’–•™w¨‘¨‘‹¸‘’£}«—§”™’’’‘¦”‘š’œ’“’•Ф’“‘š ˜‘’–ž•Ÿ¡“­–—šœ—’œ—¥—•¦ž“œ‘“’š˜‘‹” ž‘š˜‘‘—˜Ž£œ¢’ˆš••–•’w”‘¤–‡‰‘‹‘’‘™‚›‘”›™”££˜ ’‘…¥˜–¨—›“”¬˜”›ž•¡’—Œ‰–™š‚—™§“†žš““•““–Žœ—¥˜•”’•ŒŒ›““†š‘‰–“–Ÿ–“•œ€œ®•‰“…”‹•¤’—–“— š“µ‘™™ ˜•“‹ž–’ž¤“‹••’˜’¢™œ——“¡ž¥šy¡“ “•Ÿ““œƒ¥¦„œ“—“›“–“˜—›—“™šŠ¦š‰“”“’‘˜Ÿ““š“•”—™š–˜‰“™‘’—”«®¥‘œ“‹“™“£™‹“—““›˜’Ž‘”“ˆšš›—™“Ÿ•“˜†œ©“¤¤”“§™“š–’›œ’ª“˜‘›™”“›’™”•‘‘š“˜—•–œ£••°“†“™’‘‘”“‘““•ˆ’–”—”–•™’š‘“Šœ”“Ž“œŸ““Љ}– Ÿ“š“Ž•…”““—•—“Ÿ”“µ’’•›“”’’•¡‘“–x“ˆ’œ˜‹ƒ”–“‘𦕖Œ“Œ“𤓓”Žz”“‘“•“…“…Г𔋔œ“ŒŠ}’¡“”“’–™‘““ŒŠ‹“™“”••””—“„—••£“‘’±““’›“œ’—‘“‘‘““–‘”“›–“Œ•”’œ–’“›Œ’—”‘Ž—‡’ŠŒ“’—““”˜š Žž”“šš›Ÿ‘™•›™¢”™’š›—˜¥”•“—œ£˜Ž““™œ’““—““˜–œ¡œ¡–𑍕“••”“šœ¤Ÿ“£”‘“£’•™ –Ÿ“¢˜¥Ÿ•‘–œ˜”“¨™‡˜–ž“›“‘ž•Ÿ–“¢“•‘Ÿ˜—š—“œŒ™¥“’“’¢““¡ –›“š““““Ÿ“››“œŽ™•“–’¡˜ž¥““”“› š““• ”œ‘”“”‘— –Ÿ¦“‹–‹œ™ ‰˜™¡““ –“ž~˜“— ““—–—œž¢“‘”—–¦™˜“¨™“ —”Ÿž”‘‡—“¢™–“˜˜“¦˜–“’Ž“Œ”˜“›Ÿ–‘™–‘™›˜—–”˜“’˜––• ’—“–’’“’‘ššŠ•§ŒŒ™ˆ•Ž—‘“¢™”™‘–š‘•œ••‘šœ›—–• ’‘˜¡——›©–™“’¯•‘Ž™š‹’†™•—››–’‘œ²™”‡Š§…—ž‘™˜ œ Œ‘–‘’–‘’•š¬Ž—Ÿ”’Ž‘«‘˜—‘˜¡•–’˜—“›Ÿ˜™’’‘”Ž“‘’—–Ÿœ—œ“¦œž’‘’œ‹Ÿ–•§•—‘˜’–•‘¡ ˜‘—”‘‘™ ˜”—‰’’”𙋖’ž‘ˆš’¤Ž ›¢–‘’žª‘––’Ÿ™‘–Š›’‘–—š—•“‘š’ž¥š“”š‘—“•”–‹™˜–y”™“”•‘“““’”—’œœ”š—•˜™“›–’•—“›“žœ˜“˜’œŒ‘“˜–“”–Ž“’œ—“¡–€šš¤“š“Ž– –™’“–𕇙˜˜™”“žš‘œœ“—“’““œ•¢“˜™—“”“–’…’ ”•”¢“–•ލ–›“““’“•’“˜”‘•’›““”–“—•“£•š’’–¥Ÿœ“˜““’š“¥”¢Ž“˜•““Ž–“’–“˜š“—–•“¢’’‘—žš’‘“¡˜““˜˜Ÿ¢Žœ’¡•§•–ŒŒ˜ž””Œ–“••ª————‘ ‘ƒ“•“‰˜’–“““’’“  ‹žŽš“¦Œ—œ’–{‹–—– ’“””‘’˜—“ŽŽ•‘—“”•” Ÿ˜”œ‰œ’—’…• ”’™—Ÿ“ŸŒ˜••˜œ—’ž—”—•ž—š–œ’”™’•ˆ‡’’‘“’’—¶—•’“‘’£’–˜’–¨•‹’—–’‘•—““’˜’–’“–Ÿš—˜“˜˜–›“‘’–”‘›•™–‘“ž’•“–’“”—’¡˜’’Žš—•“–›“‹Ÿ—““š•“š˜’–™ŒŒž›¢™—’‘…¢’–˜œ™”‘šŠ˜–—’˜™’‹ª’®•œ˜›––˜–Ÿ…™ ’–Œ’’“‘‘š•›‘•Ÿš™ž—‹”‘“† —š˜“›’™Žˆ‘›”˜“¥››™’”š—Ÿ›œ”‘‘˜™‘Ÿ“’Ž—¡š’š‘˜–ž›‘‘’‘˜„—‡–›Œ›¢‘£§ ˜¨‘š‘…‘’Š–•“–™™’’™‘š”‘ˆ•“—’˜£œ“–’’‘šˆ™“‘’˜£ ‹’”’œ—š“–’’ š’›‡žžœ‘—’—”‘Šž•’‘› ‘‘–†œ›“š‘œ–œ”—–’¯’“”œ–”ž©”’‘ˆ•›‘˜š™Œ•“«“œ—‰žš’•›”•™——Žšš‘—–œ¡Š”’—šŸ““—“““œ˜ ˜ž”™’š“ž˜“š ™˜””™“——“—“š–˜•š“‘Ž“‘¢“¢——“œ‘““¨”“‹¢•š’“¢ƒ——œ™”“‘––—–’’ž“šš£•¬“““”¢““˜›ƒ••™–“““ž“Ÿ™““œ“™“˜œ¦š‘˜–“”“—ž‹œ“”•¥•„š”š›“›œ—“˜œš“”Œ•Ÿ“—“˜ž“Žš‰‘“•™““š–•˜¦Ž”˜˜•™˜“”¬•“••Ž”Ÿ–›™˜“–¡”“œ›—”–ž˜Œœ“˜•˜‘•“””—”˜–˜’˜’•“˜“›—˜œš——£”•“™ª—•““‘“’–“‘’š†’“ž˜‘–š“”œŽ—™–©˜“™š›“•˜˜˜—•”“š˜’–˜““—š™Ž“Œ˜–™˜“šœ™–––™““œ•—–“—Œžœ˜“›—“–‹¦“—“’š““—œš—‘›•“““Œ’› ’”™––“––šŽ˜¡ “”“••–’“’—•ŸŸ “˜•—˜˜Ÿ““’œ”œœ™šœ“•“š“›˜‘™“•—““™—”“–¡“˜–•™›”“wž’—œ˜‘‹š’™”˜“™•™“”™š›˜š—–’–‡‰ž–‹œŠ’’—”˜…˜Š›š“Ž•§‘‹“’‹˜›’’‘’’’˜”¦š—¢™’­š’”¡“–ž†’’‘“ Œ’’—ª”Œ‘—’‹Œš”“Ÿ•¤œœ•œ’œ¦‰‰”’ššŸ•–•’†”˜‘——”Ÿž—ˆ’“Œ™‹•’‡’’¢’’–›‘›œ™’“’š’˜’—‘–›’š— x”Ÿ’“’ž‹—’’–ޤ˜  ’Ž•šš˜ ˜’”˜›šŸ¡‘”›’™’“œ’ž¢™’˜’’Ÿšœ‘¨—…” ”Œžœ£‘’—š’Ž”‘•–””š‘—’‹——’œŸŸ˜’›‘—™“’Ž˜¥ž•™•—¡ž“—•‘‰—ŽŽ–š’“™—›¥”“–œ”””““•Š——Ž’‹”š–‹‘“–§œ•”ž“‘¢‰““™§p“¢‹ ”“‘’’£–’’}™Ÿš“ž”†§”©“š”Œ‰Ž’““”““Œ’¢Œ–Œ›™‡‘“—¢£““‘§““™³•™š”’“’“‘“›œ¢™“‹”³••“”“™‘‘•“”™›”–Œ“‰’—’›•”“˜‰©­ž—Ž“““—ž“¡“±†“‘™““š““™Ÿ¥”ˆ¢• ˜—””“›‘–’£™™¤“ˆ‘“’’––¥˜’‹“›–“‰Ÿ–Š”‹”£“˜Ÿš˜Œ”™›ˆ Œ ­“—”–”“”“““ž‹‘¤Œ•£˜Œ™•““˜›˜‘¡“—’˜“¡ —’“•Œ“›„–¤“ “¡ “Œ•ˆ‘š‹’“Ž”†–¡—“”“‰“Œ””Ž —š•“™¡”ŸšŽ“–“’™““”ŽŠ“™’“““‘“Ÿ“”œ›™“——†šª–’“”“”‘””““œ¡•–›ˆ“•œ ¢Ÿ‘“””žŸ“”™£™“—“Ž“˜˜“˜“˜““œ“›••¦•’—Ÿž’–“Œ’“’™‰‰œœžœŸš“ž£“•  ¡’ƒš¡’‹•“™“˜•’š’š“— ›‘¡‘›’””Œ“Žš¢Ÿ’“—“’’—‘”¥Ž‘’““’•“‰—˜“¡›’ž–‘™’‹˜ŽŽœžŸ›“œš•“—’•¤™š•’Š˜“’™•–“’‰•›š™’’Œœ•’›˜™Ž—𒡆z“Ž’‘•’’œ€’™‰Ÿ“‘’—’ —’™‘”‰©’—‘š‰ŒŽœ““’›–’““‘‰™•˜’š–•Š—‘“’’ˆ™’ˆ›‘ž’¢“•’’¡•¡’˜’’œ˜–ª˜“˜”œ›—•“‡’’’˜ž‡•““—•˜’’•—’•—˜–‘“𛓡“~˜“™’œŒ£±—˜’–š˜—šœš™ž˜›š§œ—““˜”—“’ ’’˜—•Ÿ˜‘¥œ–£–’“‡‘——œž’𣒠•…“ŒŸ––’Ÿ¢›“——–Ÿ™“ ›’Ÿ”«–“ŸŸ’Š” —¬œž˜’˜’š”’”š£Š –“’›™›––’Œ’£’’¢¢•…›’”’—’Ž—’Š”’œŠ’’’‰—œ£‰’“’™›’œ’’—œ‚’‰–“¡ž¦œ£’’Š—…žšš–’’•’—›˜’œ›’’š”š‘­’“•œ™™˜›““‘“˜šžœª—š¢š’’œ”’›¢ˆŸ•¡{““šŒœœ”•š”š”™”˜”’‘š—˜‹˜ž“–žž“Ž—””““““š’“•›”‡”–˜“”’•—•˜ž“ž—–š“˜–›˜–™“–™–˜’—¢˜—ž“‚™’•’ž“‹•š’™› ”“•–‘•—–‘¡˜•œ““˜ƒ——Œ““’—““™§•”’™“““š“—“›œ™š‰““’“œŸœ“”“‘—““•˜’–’’“ž–™™—˜“Œ“”–•šˆ–•ž“™“””“Œ™¤˜“šš““•ž———“•›Ÿœ•™““’–™˜—”•‘˜—“–Œ—“——–™ž¡“’‘–Ž›–Š‘¤Š–‡™‘Ž’‰“’—£”•‹’˜‘•’—˜“Œ’‘Œ‘‘”‘”…™¢“œ—ˆ‘‰š•”Ž›‘Ž”…ž‘žŒŽž—œª‘Œš—ˆ–”ŽŒ“Ž‘’”§’•ž¦¢‘¤ˆš‰—“•‘“˜–‹“ †“Š•‘‘’š–‘š‘—†‘‘ŒŒ¦–˜‹‘’‘œ‘‘‹‘™’¬‘‘–Œª–‘’‘““žŒ‘’ŠŸ†¡’’Œ””˜”“’‘“˜Ž’ŠœŽ•Ÿ‘ª‘—™‘””žž‘”›‘‘ˆ’‹’‰…‰“”‹“†–‘’’±”‘ž¡…”‹ˆ‹‘š‚‘‰—“™“˜Ÿ‰“’˜xŠžš—”“¡“•›’’œš›žšžˆ–•™‘ —“‘„›““‘““šŸ¤Ÿš¥˜—‰š’“”˜™›•šŠ¥“”ž˜‰“°¡—–ž™”ƒ“’¡œ˜ž™‘Ÿ•›¢¨“Ž•¤•¦†¡“‡šŸ—¥™™“ˆ”šŽ››­˜ž’““›—{œ›¤“‘“’ž““ Œ¯£™…–“““š“‘›“”Ÿ” ‘“œœ‹¡¦•“”“¢¥ˆŸ““•­Œ›ƒ‘“𧙬 ¤“•–ƒ““œ‹ž•“—“œ‹“’—•›“–¥““Ÿš–™“ž”¢‘Ÿ›˜˜¡“˜Ž“‘›Š¦¡Ÿ‹–§–“Š““œ–¡‘““–Š’Ÿ˜‡‘•’”“–‘Ž“¥”ˆ’›Ž‹‹‹“™’›’Ž“’’‹‘‘™‘š“›”“”’¬“‘“‚”‘™›’ŽŠ‘‘œ•Š}‡ŠŠ’š‡”–•’“”–““‘€£œ‰”‹˜’•–ŽŽ¥•’‘““Ÿ“•˜‘}’’“uš~‚‘‰‘‡‘‘–‹•’Š’“’„‘€‘’ž‘™’‘•˜—œ‰–’’‘˜’—‘’›šŽ®“––˜œ“’Œ‘Œ”~”’‘ž˜–œ‘†’–‘Ÿ’°‘ž—‘‘Š’š‘§‘˜œ‘”’‘’‘Ž’’•‘¦“’–••‘„Š‘’—’“•š†’˜–˜‹Œ““‘—¥”’ ¨š¡‰Ÿ”š–›šœŽ“’•š–“’“’’™ž‘•ž‘Œ“œ” ’—›œ“—˜’’Ÿ—ž“’š•šŠ–“”’‘›šŸ•”•’‚’€”–’€‘“’–—˜‹¢˜”’…”™˜˜˜¦œŠ›•’ ”qŽš’–’ ’’›—ƒ—¢’”’˜‘˜¢‘¢š›“’š–““•‘–’“’”“‘’–˜ž¤”¢’˜‘˜”¥˜’—žŽ¤”¤žŽ’‘’—˜’ŸŸ…•’œ›’’‘›› ¦’’— ‘•‘˜’–’‘Œ¢›š ­’•’—™¬’¥Ÿ›” ˜Ž‡’‘”‹“˜–’¤•§‰ž¢’–œ€š—–‹›– ¡˜™’’ £’’¤‘‘‘– ›˜Ÿ—•‘Š•ž–‘•·Ÿ“›——˜‘Ž•–‘˜œœ˜— š’ž«“”‘š–“˜š•‘“–“œ˜‘’ž”𔕗žš‘¥‘Ž“—Ž™”‘˜›™’™‘Š‘“Œ‘‘™‘†˜Ž‘œ’‘‘ ‘˜‘œš’Ÿ‘”˜ ”œš’’‘™¡š‘’˜“—˜œ’Ž””™ž’¡‘›žŒ“š—–˜‡‘’•—‘Ÿ£”‘ƒ“‘‘šŒ—’š”’Ÿ–Žš¤”“’­–‘¤–¬¦ž—š”””‘™‘š™˜‰“™Ÿ’’Ž˜“‰š„š™˜’•– ”Œ’™”~ž—†ž”›’–‡™”’’”’’Œ’“£˜ˆ™“•ŽŸ•’—“–—’’—™Š’Ÿ”‹‘›ŒŽ“’Ÿ†”‘——–””—‘••˜™©Šž’—š…— ˜‹—’‹Žƒ˜Œ–Ž¡–“’•žŠ—”š‘“‘Ž’’|—‘¡”‘Ž’†‘”–‘Š˜š¥’•“”‹”’’’›™–š‘’”œ™“š“™œŽš›™™’˜“•š˜‘–ƒ”š’”’’™‘˜™•’”•’’™–—˜–‘•Œ™’’ž’•ˆ‘Žš‘¨–”—›—’™••’’—šž‡ŒŒ•©‘™‘~‚™™’Œ”ž“•—“Žœš‘—“˜‹Œ–•’~š–‘‘˜‘‘˜Ž›Œ¥…‘žˆª‘‘ޔ𣒙¡‘ ˜”•‘𣛇” —‘™‘›Šœ’›¨–•”‘‘œ’—’‘•‘Œ“§”Ÿ¡“‘£Žž”“—”¤•Š‘ž‚‚—‘‘˜ˆ‘‘›¦–˜’}”‘”‘š‘†˜‘““šš‘‘˜ˆ›¡‹‘’‘•”–‘‘Ž›“–Ÿ’‘™™”™¡‘‘ާœœƒ‹ ‘“‘‹‘°Ÿ¢‘™œ‘‘˜•”Ž’‰š’”•—— ž–’’›‘…˜‹›¢…Œ“‘‘ž“•‘œžž–«Œ‘‚“™™£Ÿžž”—›‘£™”•¢™š˜œ–š™–œ–›—ž“–𔓛““›—‘¥˜”™ žœ™¦–“”Œœ—–žŽ˜“£¡¡–“žž—“”Œ”“ž ¡™œž’™˜“£›’˜–›•“——𙣙•Ÿ“¤œ—š˜‘š¢š“›š¤š˜‘“¡“”™““ “ š˜”•“’“–˜“”ž”•‘“—–ƒ‰•œŒ“”“”›˜œ““™šž””›“–—’”š™”“›¢œ–•”¡Ÿœ”“‹“›š“™•Œ“Ÿ•““”˜š•›”’“…–•ž›”¯–“ššŽ¥›™¨ž˜“— “œœ›•‰‰••‘“”x“•›•ž¤›˜ž”“›–Œ›”š›˜”— Ž’““¥‹¥ž’’—’’•–‘š—Ÿ›“Š”£’’žž‘’𛓒žœ™’‘›ƒ£š——’˜¥–’“›•…˜Ž•’™Ÿ£—•”’˜‘’˜”——’~“…—Ž—Œ ™Ž—‹’›—z“¯”’‚’’™’’Ÿ˜ž˜…¢ž’‘’—’‡’Ÿ”›‰’˜žžŠ¡™’’’—žš£’’š—’“¥œ’Œ””›” ’‹›¤€•œ–•˜’›’š ’–¢Š’“•’’–˜–’™¥’™›£•—’‡“¡—­Ÿ¦˜– –™’‘¥…’›”—•“˜¥”‘•›Ÿœš’“—• ‘¤˜••“Ÿ˜š–½ž«“˜’™””“—““›‘š™˜}–š“†˜—™¢“˜¡–“ —žž˜“”•“–ž——¤–•›·”š “Ÿ—˜š³˜Ÿ“‘“™œ›—˜“›‘—’Ÿ¢ŒŒ“¥˜ ¡Š“¡“š“““‘¢’›˜“š“•“„“‘™“œ£’™‰“”˜~|¦›•“”“•˜£š““„ª“£”š“Šœ˜˜œ˜“ž“¡˜‘•±š”“’“–¦“š”º‰“  ““Ž…“•’™Œ“—§Œ ™“ƒš“™˜›˜˜˜•ž«Œ“––“—”•›ž‹™”˜“‹›…‘• ”’•—–›¢“™•ž’›””˜–ž“ —““––¤““‘““›–˜——˜’–œ‘““™’œŽ—“Ÿ—•—“™™¡”“‘™’“–™Œ“—•“‘˜‘ž‘ž“›”¤ž”–”“‘““Ÿ‘—˜œ““™˜”œŒ‡£”œ—“ £œ˜”“–’“ž““—Œ˜’Ž—““““’•›’ž””•“šš’—˜Š•“”“—™˜¤’“œž’ ““ž•••’—“ލ˜“”–‹•š’—“–“’”–“˜““•“’¥”˜”“”—”˜˜–“€“’”œ”Ÿ‘’—™Ÿ“𔓖˜“—‘ž‘“‘’—˜”‰šŸ“–£•¢«ŸŽ š‹š‡¢…© “‘¢š˜““Œ’’™›«œ™¥›š˜’“š • ’ —‰’–—·š¤‹”Œ’ŽŒ——•”•¡”¡–’“‘ŸŒŸŒ—“£Ž•˜™›£˜’‡••“š•¤˜ˆ¦’”’ ¤‘šŸ’£’’¤’’¡ˆ®›¡™ ““’£’–—’œ‹›’‹­–¥–““’𔕒““’¡œœ“¨œœ£™ž¢“›Œ–¢–­¡œ’“”’šš’—™’’››•›¢”ž“žŒ™œœ¡™“˜–’𕑛𛓔’’zŸ’’Ÿ˜£•ž™’«’–“¡’ž—”™•›ž’—œ™–‘š˜¢”™Šžž“›š“’’’™˜Š›™›Ÿ“‰‘…—’—™”’–—ž’–•••’Ÿ—Žœ•‘’”œ˜š˜Ž›‹•ž£’•ž¥˜£Œ¢’“™˜—”œœ˜’•’’˜”•–—‰ˆ’—–‘›‹’˜’Ž‘’’˜©ˆœ”˜“‘’‹’…’‘›™—’”––ž–˜’’“’™˜¥—’’•¤–“ ’ŽŸ–™™ –’”“›š˜“—–——Ž’’—ž’Š˜˜’˜›’’˜Ž””•ƒ”‘Ž‘œ—˜’†•’™˜™˜”‘›˜’™—’–˜—žž‘ ˜‡“‘—™›‘•š’—š“•”Ÿ–š’Œ‘ˆ’’“”˜“–¡”—““““’“Ÿ™ž‘¨‘’›“‘’–ŒŒ—’ƒ™“œ¡“–“›˜šš§’”†“‘œ–“•–—‹ ˜š’˜“…™—“š““’—“•••™”“ž“°‘“—œ“˜‡Ÿ“›œ©•Ÿž““•¥““™„—¡˜™“”“’ž™’”“š’“—•“Ÿ—©—“““˜”ŽŽ’“””—Ž…”——•–––•“›”’†£™™•˜’‘“˜˜“ޓޓ’™“’—™Œ‘’˜‘’Ž›“—Ž”“›”’§”š‹›Ž•˜“˜‹“––—˜š—™©’”—“œ¤“ž§œž‹‘“œ‘“œ¢”Ž™™‘ •‰“–˜” “’’’•—˜ž‘¨ž—›™›”’–¡¥‰˜™Œ’’œ’Ž’˜’w—Ÿ••‰’‹¢—šž•œ”˜˜œ‘™”—š™˜Ÿ’›ž•˜–’–’„™§’‘’Œš–”Ž™’‹ ›±¢‘’’¨’’›Œ¯™¡”™’’’”‘‘“˜œ”—’–”šš‡†—’“’Ÿ™¡ž‘’˜œ’œž“§šš”›—Ž’“›¦‘•™©˜Š•š’˜’™›’Œ—›”’’’’”Ž˜–¡’˜ž‘—˜—’¥–’Ÿ•––—“šœ›•’„˜‹’––“—¦•”˜¨“–”—ž”‹¢˜«™–’’–•’“‡–†™™’˜•“—““Ž’˜—““–““™—›— ’–™¡–©““–Ÿš“˜™’™“— ‹“•“›Œ…Ÿ—“™™–£œ˜•—”••˜’••š‡Ÿ‰Ž•“¢“•“©– ’““”±““”˜¢–• “˜›‚˜¡‘’ “””““—¦•–˜¥˜“”“¢“ª™“˜™œ“”“‘”¤•™ž““““–”—““™•¡‘Œ®”“‘˜Ÿ’“˜“ž•ª••œ œ™Œ“†“–˜“—¬ˆ“•““š“–‘’–™” š—™“šŸ“Š‘˜£Ÿž—£“–“‹ˆž“•–—˜š›œz›“˜™—“•”Ž˜–›ˆ“”•“‹™’‘‘ž–”’’™¢“•–”””“˜“““š›ž—–˜—‘—“™§’–—‘“–˜Ž“•™~‘›’“‡“’“Ž‘—š–›—”ž•—œ›œ“—‘—š™˜š“˜ž“•˜šœ”˜’“–¡Œ‘““Œ““’Œ™Žš”““—“—“•—“—‘“—š–¥™›–“”“›”–•““—“Š—•“‘–•’›œ‘”•Œ‘•–Œššš“Ž“‘™“’——‘“Š‘““”–““—˜“š–“’“˜”›˜“—™–““œž—š˜“•—“‘’š”Ž˜Œ“——£™›˜“˜––𙦒ž¢™ £•œ—”šœŠš—“• ¢““’“’™¢”–‘‹šŽ›¥•¥–’™™”™¡’•œ“˜–Š”“žŒ’”›™““––’ž–š}—˜—“‘’““˜ž’—“™’—’–¢ž‘“’’žš‘šŸ’’•—’¢¢ž”†’Ÿ’’—’“˜“Ÿ™š£“’“ˆ’œ–’𙢕¡“‘‘Œ¢š†£“““ ™™š’“˜¡”Œœ­“š”››§ “š”š‹§ž¥™ž›’š“– ’ ¡•˜“™Ÿ“’’†˜“ ž“—¤•‘™›•“‘—’—’™Žš•¢œ›“•Ž’˜š’™š™—ž‘…˜™”‹•“›’Š‹”‡¢–—•§–”Œ’’… ’˜’’›’’•—š™—–—”}œ’’‘ޤ‘˜”’’––’‘’§—›—Ÿ’•š›œ˜˜˜”•‘ˆ– ‹‘“Œ•’“¦”Ž’”˜’—˜””‘˜Œ¦Ÿ„ ’“‡Ž“ƒ²‘£‘“’’z𣓒’’‘±‘›”•’žœ‡©”§ª’’’—šŠ˜‘’”‹”Ÿ’Ž“•›–Œ’“’”“§£˜„}‘’©’ Ž’†œž’މ’’–••“˜ŠŽ’•˜˜”–›’€˜’š ’“•ŒŠ•’’¤™’ž—š••ž¦“”“Ž“n•w‡šŠ˜“”‘˜‘™•”’ž–š––š˜–“ ¤’ƒ“““’—•ˆs“‰§Š”¡Ž•“‘’ “œˆ‚˜“Ž˜“›‰¦”ˆ“ž“œ ––Œ‘‡““‘‰’j‘—ž‹’¢“ ˜‰‘”œ‰“œ¢”—”“~•£•”“˜‘‡Á’š’’†““‰¬~—«Ž“’““’˜ž’ž“”™”“‘–‰’£–““““’™€’“—™¨‘™‹“‚œ—”›“š•ª‡”—ƒž™Œ“—“‘’„‘ŒŽ“ƒ•““˜”‘žy“–Ž‘“t“˜—¡›Š”ދД“”“‚‹Ž‘’›‹”—’•“…“’”Ž˜“™“˜“{Œ˜’”’Œ‘˜‡ª–‘“Š¥’”““”“’“” Ž˜™œ—Œ˜’’·•Ž””†–“—–”“•Ž™›¢™Ÿ}“”¨““‘‘‘ƒŒ–—’®‘Љ’Ž˜“—’ž’˜œ““†‘š‘’‘—Œ”§“–“‘Œ™™Ž¤’•’œ’“–¸ŽŽ•“–“’’Ÿ–’¡“•“’‹™‹‘““’Œž’“•Ž‹—“†‘‘““—““ž“——‘¦˜“–”’™“Ž’¦‹—“”’’ŽŽ‘•‘•…“Œ’•“—“§—“”›‰ž’’›Ž’’¡”’Œš™™“Ž˜¤’••—‚Ÿ•—š™™Ÿ˜’›Ÿ”Ÿ“’”•ž—ž”u”˜“’”™““•’’œ•‰”™›–‹—‘–‡—’˜œ›–™–’’ –˜—’‹‡Ž™Œ”™’Œ”Ž›™™•–Ÿ’–”’‘–“‚£——•’žŒ˜ƒœ¢‘’—’‡“•“Ž š§Ÿ’¦”ŠŽ •’›’‹’’’™›¤Š–œ›’’¡’’“˜•Ž’——›”–Ž““’Ž˜ž’“š—˜’•ž“‘Ž“œ–“ž”š –Š’›“—›’”‘‘’¦’’’•“Œ’«…’šš›–›“›“•œ”œ›˜¦”•’››’Ÿ™™¡”Š˜’Ž•¦–— “““•š”›‘–•ž•˜’š™—”˜ž—Ÿ˜’’”˜¢“’’‘˜Ž’ž‘–’žšš–œ’˜¦–’›¢–”’“——’’™™•š™—’””“—’Ÿ“¦†˜•ž’™ž“—•ž‘’š—“˜–˜ž’Ÿ‘‚“”–œšŠš–’Ÿ“–˜‘–‘’—‘’Œ•v™–™’’’—‘‘‘›•¡Ÿ’—”—˜•šœ’’’˜“™ ‘’”’”–˜¢’’“˜™š”ž’—›—ž£•™Žž™’ ’šœ’š “•’Š“‘‘ž”š˜•±“••š›œ¡™’–’œ”š—–—˜—˜’˜—’¢™—– £”’•Œ”™–’š™Ÿ›‹‰“œŠš–—––Œ””‘¡Ž“•š””““˜“’’˜“”˜š”™–˜¥–’•˜“‹“ކ’Š—š’’—‘Œ—£—¢…’“¤’””•’”“‰’¨•”•“—’›š•‘ š‰Ž’‘£Œ “’—Ÿ’ŒŒ¢”¡‹’”’ž’’”…•Œ˜˜’’¤’–’“•’“–™–Ž—™““’”‘•’“–•“––œ“¢‘–ž”’ž’Ÿ‹Œ›Œ§š”˜’“’’˜“™’‰‘’’‘’’˜“Ž“œŠ’Ž“¥–“—‘¥•›•‘¡’† Œ’”’“˜ŒŽ›¡’ˆ‹†¨˜’—‘™•œ‘”•™–—‹œ•””ž™Ÿ™‹’šš—’’“’‘”“ž Œ–“˜’’’“’œ•˜’™’£ž¢•’“~’”š’’‹ˆ¦‘š‘Šš›—‘›‰ Žš‹•’”Ÿ™ž’ž™’‘•™•“šŸ¡Ž’ž›…”‹˜‘…‘’¨’’¤‰¤™’‘—’’’‘‹–‘—–Œ–¥’’Žž‡”ž•’“’“¥–•‘’Ž’–𢗒œ™’ˆ‘Ÿœ’Œ”Œ˜’”£˜¡’’’›•’•Ÿ—’™”’’ž©Ž¡–’œ‘–œœ’…’œ™ •‘†Œ‘•’•Ž¡’–˜š¡š›“œ˜µŸµŒ˜›¤˜“™š‰«¡š¥•¤š‰šŒ“ £“‹™‘–““™““œ“±–™”œ£ž’¥‹“–Ž™›ž“‘¨Š“«˜™•œ—‘”“𓦙Ÿ™–‰¬›““…ˆ†••°“–¦Ÿ—¬˜Š”“š‘ ƒ–ƒž¢Š ›“‚“¡ …‰“““ ““ –¹¬•Žž“”“‹““‹š”¦“’}б©”“”“¯˜›†““£¡™†–™“œ“¥®¢ª˜“Ÿ‘§œ˜¡²¡¥‘“‹“ ‘“Š¥­£“«š““Y”„¥‹¤’–“‰¡¡˜“‰“—‘Ž’”œ¢—–“z𦓔¤¬§‘šš™“’—‘— ›‘£§¡”•˜‘›––™—™”›““—’¥˜—“Žš–”’’•’’š™ž¡š” –›–‘’’¦”˜˜¡™’—•Š’–˜ˆ•ž—˜‡’‘ž˜šš•Ž›…™šœ’Ÿ“£–“—’’™‘–œ—•–’œ’­’‘•–Š‘’˜’˜š—žŒ‘’’¥’’š†˜š¡”š’”’”’›’›š˜’‘Œ£—š—’’’š—–˜’’””’Š’“ª˜˜™•–’œ–—–••œ–•œ’’‘–’˜™¦–’™™’’—™’œ“•—•”¢˜’˜“ Ž‘’•ž—”’”‰–’˜—™š›“¢–¡”—•Ÿ’¤–•“• –“š”–’›“”’“–•”’––”Ž—“””’””˜ Š¢–‘Œ–ž“’£–”•’‘”˜—••””œ“–”›™ •ˆ•™”‘‹œ—™™œŽ–š””œ•†œ’‰‘“”–˜›¤˜’š”˜—–™—–œ„™–““”’“žŽ›”˜”’™””Ÿ—§”›’–”””””™”“–Ÿ˜Ž”•’‡•›”‘””” š’˜””•–˜•‘›”Œ–™›˜˜•””˜—›œ™œ—˜š“”‘”›“”ŸšŒ”—–””—•˜ Œ‘”‰ž’•––”‘•”’ŽŒœ”ž–˜”•–›”›Ÿœ—”˜™›’ ’ˆ‰“’“—‰•›‘•”“—‹–”“™˜“Ž•›œ“›‘Ž•“““’’‘–œŒ˜–—˜–‘”’•–—™›˜“’ž”—’œš˜›“‹›“Ž›¡œ”—Š•œœ“™•”¡š’¥“•œŒ™”˜—“–‘‘•“œ…˜™—‹“Ž–’žŽ“•’Ž”’“”§’“˜“’“‹’••’Ž—–›“““’ž•Ÿ’““’˜Žœ’“’Ÿ••–’ˆšš•’ž““’–”¡šŒ™€–šš’†“–ž’ž•{•“”—’’™—¡—’ “––““”““Ž’’˜‘•œ“’”Ÿ–’•’—™ “›–š“‘—”™“Ÿš™’“˜—‘—–›•‘‘˜—‘“™“’“˜˜“““’–œš™‘™™ŸŸŽ“Ÿ–’œ”“•”™“—›‘’’˜Ÿ•”˜š’“˜š›Œ˜œŽ˜˜“«—œ£”˜“ž“Œ“‘ž—••“™“ŒŽ–‘’›——•“–’Ÿ•£’“–’–›’“”‰–—““›’”’–“‘œ‘“•—Ÿ˜¡”““’–—™‘’“œ‰˜—™”™’””š“““‘˜¤”Š–—’““œŒ’•“¤“’•“’’™“•›Ž–“™Ž–˜™˜“š’žž››ž’‘””“Š•œ’—š“ž”–Žœ“”¡šš‘––•¡‘›’œ•°ž‘›Ž“•‘’‚‘“—𛓓™“’•ž€˜ŒŠ™™œŽ’š”žœ˜šˆ““–¡Œ‡’˜–•”‰„€ˆ“Š–›™Ÿš“”Ž’~’”𙇗𓔔–“‡Š˜’‘‘’” —„’””‚’”—’œ’Š«’’ž˜¦•˜™“’“‰’‡š’˜’›”—“—˜”¥•”““’ž—‹˜’“™˜¤’Œ–’˜š™™˜›’’”–˜”›˜—‘’”“ š’Œ™›Š“¦™’’—Ž““›ƒ’£˜—”“‰ “•’‹‰š–œ£Ž“’ƒ’››š“ ‡’“”•š•™——Ž˜—–’“œ•˜œ““˜˜”“—’­–œ“•‡™“““““–˜’™ˆ“—ž’𙓕›†œ–˜•—“•–Ž“˜––›’˜“‘‘’šœ––ž””š“—˜¥Ÿ•—“““–—™’˜“œ—‘–‘—œ˜š‘‘“˜’‘˜”{““•“““””“— ’“–““˜‘“š›œ˜›“˜–™’›¡“”“’š”ž““‘‘š¡”‘›š–Ž“”•”–œšŸœ––““™“šŸ“ ’”˜“•—““‘œ•“•™”›•›““”š“›““™™”¦—œ“Ÿ–“Ž—–“ž˜˜š¨›œ•“¢—‰Ÿ‘œ–›‘ž”ž™‘•–’“›–—“›‘œ ™›“¢•™”“—““•˜‹– ƒ–’‰›““•‰•—’š™“š’‘–“™œ‘˜’““¢—›”–”’•™˜“•“œ“œ–‘“Ї”•˜™““‹–•’’‹••‡‘—“™—•¡“š““™““•ƒ”˜–™—“““Ž“–™“‰›‘—“’”Œ’ž˜¦“““‹”–““—”‰•–”‘”—œ“••“…¡’˜˜” š•“£“”ž“Ÿ”q“Ž—““™Žž”˜‘“—“—›œ–“““ž’§›Š™—–““˜˜“˜˜‘•š˜œ‹“œ‡”–“‘•’‘¥™“Ž™’–”‡•—ŽŒ”¥”’›–”“•““š™š ”š‘ƒ’œ“œœ‘“›“”“œ—–““™“²•’”™¡“™š˜“’•§›—’”˜’‡†œš’“œ„•”œ”‘““Ž Ž—’ž‚ˆ–‘“™¢’š—“““‘‰““­€”š—“’“­“–š“‘—Ž”—“–™ž{¤Œ“”“‘”™““‘‘ŸŽ–“’šŽ‘š––š“™Ž™–’Ž—˜“—““—“®™‰™“™““˜Ž•Žˆ“ž—–’š–”“•“Œ‘šš¢Œ”‘”“œ”“—•Ÿ•€”•–“Ÿ“› –“”—˜˜™’’˜•› •¡ˆ—•Œ™“•› ”ŽŒ›œ”””“™–Ž›› ——“ª‘“’–‘‘œ”‘ ”“’ˆ”§š”š‰–Ž”Ž—•˜”Ÿ™™––•™”ž‘¥”’Ÿ˜™”ˆ–“’œŸ•”Š“¢›”’«‡”–”–“š•¬Ž“”–””š“š›˜”•”š“Ž›“”™›Ÿ‚”“˜’¨œ’”””š–˜“”¢‹“„ ”•–›£¡—𔋕”†’§’—œ›Š”’”™‘”ŒžŠ‰”‹¡””•”•Œ™–”‹ž˜”—–”˜”—š–š—””‘’›”œšž•¢’“Œ†“ž”›š•–’”˜•Ÿ–˜“™–’•—˜‘”–›–•““‰“¢”•““”““›•™™˜•š¡”œ”“”…š˜˜›™“Ÿœ›–““ŽŠ‘“•”“–—ž’ŽšŽ’”š–‘“—–} ˜ˆœ•“‘š’™‘©’““¤ˆ“¢‰”–™“ ™ž‘—¨“•“”–““›Ÿ„“”“”“™“”™“’’—”®“–“šœž“““’›”““™‹˜“’˜™Ž•“„••—˜¦Ž›—¤“Š“•“ž•~’“˜’““Ÿ›“‘’— “†˜•𢖗“–˜“—”ˆ›’ƒ–“žŠ“–˜—ޝ”’”“–Œ–š—’—–œ˜“”™œ•–—”—”•—š™”•› ””™““–”š‘œ˜šš–—š”“˜’“˜ –—“–””˜“™™‘™—œ™”‘›”’–šš’•™›“ƒ“™“‘‘‘–”•”›——™™™“‘•“’’‘’“”’—“’››‘¡““‘—““•™™“‘š””““—›“š•—””“•–“›š–™””“ž˜˜–“”•˜’“™š”“š™œ›”™”š—•”•——§›—•“”—˜“—œž”“•™““—˜”•ž‘”––‘š›”˜”›–“——›•š™——“–“ˆ–•“•˜—–‘••šš’™–…‰¢‘•—‹•’¡“‹—“Š™’—Ž”œ‘“’ˆ”–’’’‰’’–‘•Ÿˆ”˜‹”–’•—œ”•˜•˜’šœŽœ’•Á‘Ÿ•Ž©’“’¦‹œ‰“‘‹”’†Œ¡’‹†š’›šœ–˜ŽŸ’˜“Œ”ޙС…”’™˜‡”¤’”’š’’”«ª’—Ž‘’’’™’‘™’˜’–¥’“‰«Œ’’’–Š‘‡’’––¤ˆ–‘Ž“–Ž™’š˜”Ÿ’“¦šŽ——’Š’˜˜’›˜‘“’š•’’’‹›““““”œœ’—Š’ŒŠ‰–‰–’‡’“ž’“˜•‘„Ÿ›Žœ””’“•—•Ž›’œ’““˜“–‘•”––•””’ž’—””‘””•™Ž›ŒŒ––—–”––’—šœ”–œ’‘”—“…‘‰‘“œ”œš“™‘–•“”Ÿš™•‘–”™—™™’Ÿ—”’œ’—‘•Œ‰’‘”—˜ˆš”‘”””“””•–——’Ž”””“’““ž˜”™œ”Œ—†–—”””—œ™Ž“”‘™Ž–™”ž™””—”ˆ—‘•œ”£š“•–”“”¡•”¢’˜–””™”””š‹—„•”•–•—•”’“”“–‹’””–‰ž”’—‘—œŽ“†“’–‹•¥š”ž˜›—¢•‘š’—™•—“𙕔—™“ž——““–““˜˜“›Ÿ£™”–™““‘Ž˜“˜˜š“™›™““˜„ ™“¢“•‘”—˜™’–’”•—“‹”„žŒ›™•““•š™Ÿ“™““•š›˜ ˜‘”Ÿ“ŸŸ“”£“–“¡““š‘´–›ŠŸ“”“‘“‘—“•›Ž—Ÿ““’†’¤Š“”“–•– ““Š”•’““Ž••’šš—“Œ—“–‘•œœ””ª“‹“”“™šŒ“˜˜““˜Ÿ—”Žž“‚››š——“©““•–Œ’™˜”š“ž”“Ÿ——“—ž•–’‘˜Ž¥—”‘‘‘“––“““™›”‡™—‘ š‹˜š˜“”–™’“’“’––˜™š’•ž”Œ‘¤Ÿ’˜ŽŒŽ–—œ–’—”Ÿ’’‘™‹™“˜‰’•˜Ž™•–‘—˜—’•™“¨‘˜Œœ’Ž•—› ˜”˜’Œ —›’œ’ž‘“†’—Ž—‘Œ’‹’‘¥’’–•¦›“–—“”’Œ’˜™’”“•š‹’™““‘—™’”’—”œ”’“˜’–š ž”’š˜˜œ’˜‘”™˜¦˜“™ž’ƒ’•’’£™•’—‘’’–™¡š”ž“ ‘›™“𕓉’‘›•Œž—˜™™’¤”’”™™Œ¦•–“—˜•—Ÿ˜“““ž‘Ÿ¢˜™›Ž›‹—”–Œ›˜”™œœ“›Šœ““–’’˜–£”••¢“—•”ž™’™¦•’𙋢“ •˜’’𔥔œ‹“’š—ž•š•˜—™›š“”™“—¡£˜˜“Ÿ—‘—™œ  ’’—ž‘›–›—•™’¢ž›®‹’Ž’›˜’’››¡œ•ªš“‘“£’˜’œšš—’—’˜œ¤““’›š•š’““ž¡››“–›—˜š“ž“–ž™™‘ª—›¡’“™’¡™Ž’œ’’”•›œ›Ž”£—š˜“›’•ž¢Ÿ š•˜–“’–™’’™™•š— ›™š’›••™‹††ŒŒ“›“Œ“—’“–ˆ˜Œ‡““‘’’’‘’’‘‹œ“˜”’¤’–‘’‘¢‘–‰’—“Ž’Ž‘”žŽŽ’‡‰—‹‰•“‘˜’““š‘›•“˜’œ•””““’ž•‘’”žŠ“‘Œ’‹Ž—Œ’’‘˜’’‘šŽ’“‘’’’’‘™’šŠ˜’’“’’š˜’’‘———’„‘‘”‘’••˜”ž‰Ž˜’‘’˜š’‘’˜“’–’’’Ž‘Žœ‡“’‘Ž‘—‘“¢“Ž‹˜Ž–‹‘’‡’“”—•—œŽž“š‘£”‘”‘—¦˜“˜‘‘•§–Š”‘—–“–Ž–Ÿ“”“•““š“’“’“”–‘—”˜—›”’”‘Ÿ‘“˜–““Œ“šœ›“Š”‘“‘““™“’•™•“’’š˜•”‘“ž‰•””™Œ‘“”˜¦‹”••žŒƒ†““‘—–І’ž’†’““š›š¤™“’“¡’š–’‡›––“““¥’••““““˜™˜’“š—¥ŽŸ”’¡”–Ÿ™–‘“ž–¥š—’‡¨š™‘’–“–ž’Œšž“•˜’’–‡Ž˜Œ˜‹”——•˜••“—’“”’›™–“”œ•’‘™‘’•“’“›¥“ œ¯˜‘’Ž¢¥”ˆ”—“–—‘“œ—“˜•“Ÿ‘š“•”—Ž”“‘“““™““§‚””•œ”“™ˆ£•Ž•Ÿ™“ŽŽ˜•“¢“”™¨Ÿ„“••¡•“–ž•Ž’Œ˜‘œ”™›“Žš’Œ™‘Ž“Ÿ—””—˜œ~”¨“™›Ÿ‘”–’›“”—““’‰‹•ž”‘“’“ž“™—“’’š˜““œ›•“”‹š“”“’’““¡ž–Ž¢“¬‘”š—’’“Š–©”™”¡˜•““––“‡•œ “œ˜““—š¤˜”ž•“›•——“•“‘‘“—… Ž™š™”™“Š¡•“•“”——”—™’—“˜’Œž¡’“••’Œ””‹’˜‘Ÿ”˜•…”Ž’•’“—’’•’’”›’§Š”‰–Ÿ•’’Žœ’’Ÿ—’”–› ’š‘ ‹¥§¨¤’›š‘›‹“—œœ—˜‘Œ•š›œ›š’˜‹ ‘••›•’‘”‚‘‘•™–“…‘›’””™•©’‘‰‘Ž‘’’ª™—ž‘‘’¨‘’“‘”•’’”•¥•’’’—Ž¢”‘’‘•œš£’¢˜”——Ž’‘”¨™˜“˜ž•š’œ’˜œ’¢‘’•’““‘‘˜Ÿ¢—‘¦˜’’•—“˜–’‘•’Š’—•Š””’—”’’‘”Žœ˜£•’¥‘¡š˜“š‡œ—•™“”Ÿ¡›‘œ‘•Ÿžž¥”Š’§Ÿ™’’Š’‘œŠŽš†¤¡œ¥–—™’›ˆŽ¡ŒŸ”’’‘£‡’ƒ“’›Œ’’•—–’‘•“–•’›œ™‘Žœ›’”¥˜’š¡”’šž~‹“ „“’ –’•š›­‹‘”‘•‘’—œ£˜’£–’’’…‘™‘‰–Š—™’”‘•–š”›’“’𢑓‘’ •–œ’Œ˜•œ™–ž’†™“‚“šŒ–ššŸ’’—‘~—Šˆ’”’’‘œ˜™’¡¢¤‘ˆ’šžœ”’‘š’§ž™““ŽŸŒ–’—–Ž’‡”—¡ž™•”¡—€—š˜’š™¤™ž’˜—˜š•š–“¡™›|“›”–š––””—”“—œ˜Œš•“™…˜–š“Ÿƒ˜•¡’Ÿ”¤œŸ““˜œ”––œ”—žœ–›œ“—£ Š“•™—›Œ–”š‘“ž–•¥““˜–˜”›“Ž’——“¡™—“¡™“‡“’™“”œ›Ž‰˜”“”¡“•¥“œ–¡™‹”šœ–zšž““”“Ž•˜“”œž™š‘”””—”›˜œš”‘™–‹š™‰Ž™¢”“”šŒ“šš‘—“— ““˜–’™‘‹‰”œ¨— œ“˜”š–“•œ™’—– “—˜“–˜š“¥™š’©•Ž”ž“™—š’š¦Ž•”‘”“”™™–Š”””“’–›””™““””—““–¢’‘Š“•™—““—–‰—’—–“•—•Ž“••‡•‘‘ˆ”‘“˜œ•’‘‹—–Š“”–•‡–’“š›…”š˜–•“¢•›•˜—‘•‹˜“–•šš‘Œ’•“”—““š“¡’™›“’“Ž“–œ“›’ž–“”””“ ž™””“™”Œ“”˜™–Œ—”–•™•™•›“”˜š”˜Ÿ›—ž“ˆ”“”““œ–Š“••““Žƒ”–šž‘’Œ–’•“˜“”z”“Ž“‘“˜œ˜Ž““”•“”—•–š˜“ž¡“•“–‘œ¢””–––“”Ž’“•˜‰’›”š•˜””’““•˜˜Ÿ˜—•–—’’Ÿ˜“˜–”œš“˜–”“—”ž‘’“Ž›•›’˜š‘–’“›•†’”š’”“œ–“˜–•’””“•šœšš™›•Ž”›Ž¢”˜“’™““’šˆ“š””““““”™“š™’—•“––Ž‘ž”””“”›–™“”™˜ž–—•”•–š’’“—”𔓗•—’’“’“‘”¢˜“—•ˆ‘“œ””“•“™’””’›“›˜—”œŽ““šŽ”ž’–›•˜“Ÿ —“ œš–’˜™Œž“œ•’–’™’”–˜Ÿ”’––¦›”’‘——™’•—“–”ž““’““•™œ™˜Ÿž•›š“£”““Ž˜Ž›”ž““•—’‘““•ƒ˜˜šŽ“šž•“–Žš™Ž–•”‚•—”“˜—•“˜”‹–š’—“•–žš“‘™ŽŠ”™“”˜‰™£“““’›““™˜“Œ•““”“ž“›Œ“™Œ”™“‘¢¤˜Œ”””“–›˜““—Ž–˜”—•œ––Ž‘“Œ’”†™œ“™˜•“•“˜“™•—š“˜‘“““”ž›ž’•Œ”™•˜”˜”ž•—–œ“–—““‹–“˜˜š˜™Ž—‘‘”™•—“˜˜”•”˜œŸ—”˜Ÿ–“™–••Ÿ’šž”Œ™¡”—••””“””š—•“ž•˜ž’•Ÿ””“Š—“œ˜—–”—˜”“”š“”š˜Ž”š›—“—”•œ˜˜œ•”›“‚‘”•ž”•’”’ž¡“”›š•–—˜˜˜——”˜¤’›˜›”•”“š””˜–”•”“”š”˜™””—˜Ž”•‘˜“›˜—”•”˜˜––“”•›”‘–š”™›šž˜™””“”’”Ÿ’—žš””””“’”–œ¡™”–™””–“•˜—Ÿš”˜–›˜”™˜”Š•”–˜–“š˜”’””˜šš””œ›¤Ž™”™“”𦕑’œ„Ÿ—™‘“••’𛓔’ž’“’–“Ÿ””““Ž““‘•—”‰•›”‹““”“–˜‘—œ—“šž‘›“«’””•ª“™…–’—’–˜•Ž’–Ž—’›–š“›˜”—–›š“˜•‡£’—™Žž–›“›—ž“…©“¢““““˜–—”˜’–““““𔓔“•š“”™„‘““”“”•••““˜•™–š•“——”“˜”—“”‘—¥—š˜‘—Ÿ“‘“š“Ÿ“šš“‘““’”˜——‘“Ž“—š••“Œ”“Š™…’“–“˜”“—–“™—”›Š•”––š™–”•“œ–£œ•“•›•’š——‘™“–—˜Ÿ˜›”“”–˜””–””––“˜”•”›ˆ–™””–™˜––—‘™”𣕔¥”Ž•“Ž™”••˜˜•˜•––™“”“Ž˜‘˜›”’––—œ–—”—•¢‘‘’–”‘”–’—˜œ”Ÿ””–””ž›ˆ••˜š”””—“’š“Œ˜˜’”––—ƒšž“”””™–™œ“”‘Ÿ˜˜•™”–˜˜œœ–””Œ“›’™˜–œš˜””›—”“—‰”•œ””šŸ˜–•‘”””š“–’š”ž””•™—™¢–”š–”…˜”›š››‘™“‘”ž‘”˜Œ˜“–˜“”™Ž”Œ”‘š””“—•‘˜•–‡”™”•‘•“”˜”“’Œž”¤••˜“ ˜“‘‰›”•‘™“”œ““—š—‘“˜’’“”•©”””“Ž™’—•““žš–””Œ”ŸŠ•“–’ŽŒ“”““–ˆ‘““‘Ž“”“•Œ’“”““›“‰‘“˜”“•“’’‘š—Œ‰”“““‘›•“””’•™œ”œ——”’Ž“™–Ž›“——•“–“‰””Ž“‘“š“œ’““‘ŠŽ‘””¤“””’“•‘•”˜”“’“šš”Ž—•“’¡˜“”’••““š’“‹“Š‘— ™•“”¡’’Ÿ’˜’Ž‘’”“”––”“•““•–š’’­—‹°’“•˜¤”“†’–“Ž”“—­˜•¬Ž“šœ‘¢š“ŠŽ‘–˜“…‘™Ž£›–𓼕ž”š•““ª’“‘¥—©“”“–š“’“›“¤“’„““‰¢–”›’Ž“““¤“•’“•—’‘›““𧉓‰•“”“‘£‹““–™¤‘¢””Ÿš‘’“‘‘“ ‘—¥“›ŒŸˆ—““Œ‹“–Žª¥“—–““’Œ•“Œ““§’“‘Œ“Š’“–Ÿ§”žœ”–““Žš›“‰Œ‰˜ƒ—›’’Š‘”“Š–•œ’’‘Œ”–œ™‹—‘—›‘”~—•“˜’—˜““”’’ž›˜”˜—š‘š–’~‘–“™““š™œ‘’‘•–“”Œ“˜““–‘˜•™‘›œ“Ž—”–Š›““Œ“–œ™˜’‘’”™”––ž‹Šš“ކ••›’’’Ž‹’“™”™›š“”“˜’™”’–’‘”¤“’’‘Œ‰Ž–““’›™š’“Ž“•“™“žš‘œ˜’’—–““—‘£˜Ž”™’—“˜”’˜—–•’’’’’Ž•™•–š“˜”˜˜—•𓉓“›¡©›Ž‰™‘’—¤’’–œš‰Œ‘‘•“•˜¦—Œ‘  œ’’Ž”“¢–’”•›˜‘Ÿš’–“™•“““““”‘ˆ’Ž‹ž“šš–’–“’”—’Ž–““Ž”™Ž““ƒ“’›’™“”Ÿ•š–“–––”“’›’›™––š–“’•”“”–“”“–Œ’’™—š™Ž‘“’”•˜ž„’š“’•““’˜•–™ŸŽ“““‘“’““–Ž–—“”•™‹–“š“““–”𒓔𗛓ޕ•’•Ž“Œ”ž‹——’—•••“–“”£“¥‰“•‘““’–š—–£’Ž”’’”“”’¦˜¦•”Š–•’“‡‘Ÿ“‘“™“žœ‰“™•——•‘”‹˜š—‘’•—“•“–˜•œ•—•––““œ––““““—“••–‘˜”–Ž“”“•’’˜•’—“˜œ”’“””Ž‘ž”œ“—™™“–“”‘“•”’–“™’–‘™“”“’–™•˜•“Ž”™””””’˜“”—“˜—’•Œ›“““‘—““•˜„–‘”“‘““𔓑––˜“”•Šš”—™“““’—””““––•”““Ž—–““•™“Œ••”–—…–––’“ž“™•“Ž”™•“•”““–•’’˜Œ“—•˜—–“™““”“’ˆž•”–“”“™’‘“••––“—’–““––‘š—•œ‘ž”•¢“‘žš‘›™˜—™•§”“”‰›¢““ž““–˜‘Ÿ „Ÿ™™˜™‘“– š—•‚œ“œ˜“™”r™œ‡‹‚“…žž—“š““˜–‘“¤——£’“—’—›“—–ž“‡–˜—˜Šœ•ž–†“œ“— …““‘ ““ŸŠŠ””˜•“’“”““š“—–Ž•›“‹œŸŽ¡š“”“–¡‘—““Œ¥Œ›“™’Ž–”œ“––˜„–•˜“–˜š“˜“ž “™™„ƒ“‡›““—‰‘£šŠ“‰•–•“š—“™ž¨”˜”˜”’“›„’“šš™ŽŸ–˜’‘““™–’—™’–—’‘™›“‘”˜™••–““‘™•Ž“–𔓗𓔔’““–Œ˜œ‘–™•–“𔓖–•—–š”—“š“› —–˜–”–”™™–•’”•”’•“¡•ž™š›‘”’“˜š“’—™“¤˜‰•‘˜˜–™š“•”›¡™—“““—“““ž‘œž‘“”””“““œ““•šœ““””ˆ•˜‘””“”¡›™“”‘”••’š”—š“’‘•›”——–šš’•ž—˜““”—˜““¢˜“—‘”“™—™––’”–™š›—”¢”“”–—•”‰–—’“™“š“–’—Œ‘“—“žš‰’—””™Ž“‘™—’–Ÿ–¢–‘–˜˜”œ™Ž“››“˜•”““—“’–”‘‘œŒ˜—’¡‘–’˜…‰•–”’š’——˜’’Ÿ›Œ”—•Ž“””“ž’—”›—™™’Ž—Ž’“œ“¡‰–›™œ”•’–”š—‘–‘œœ”’•›–˜ƒ’“’’’˜—–’–›“’’•’œ’˜–—–Œ’––ŠŸ™™¢““’•“’–’“– ”—›˜“•›™™šš•“•“—””—”ž˜œ’š“’š’¡—–’˜™“’—’“ •“Ž“”–š˜’“–“™›’—žšƒš ›–’“”’–œ˜¡š‘š™™””–—˜•”’š’›—š˜“—›’’’––˜–“”‘—”“’‘“”””““—š™Ž‘–””–“˜““• “–“˜˜›”‘–’“¡’† Ž—”š”—š“•—“”–““”˜”¡•”•œš™›”Ÿ•’—˜”›””§’”™•“˜”¢š”––«•~”–”˜“”™‹•˜–•”’”““š“ “•–‹”““Œ’™”–””“”•™““”•¥’Ž‘•”–•Ÿ˜›‘”›••‘–”Œ“™˜‘“””“““––’”™œ”““Ž˜–“‘“”‘–”˜••”‹˜“™•›–š–™“•”—“”•”•™—˜—•‡“™‘Љ“”–”–™•–’“–‘‹“•”š–“‘—¡Œ“•›“–““•““• –•™‘’©”’“•¥‘—‘›—“–œŽŽ“–››šš›”“š—“’–˜‘™š““™’›‘’’‘”“¤•–’”“œ“˜““‘”“¢•Š –“—˜™‘˜“’“”““”“£‘‰“‘“’“•“¥“”˜“‘—šŽ§“““‘‘““—•‘Ž““–‘’•‘“™“–’›’–’“›“–“ž£Ÿ“›–““—˜”‘’››“ šŒ™™”“˜•“’’˜–£––¢”—“”›“•‘“•™›–“˜“”Œ“ŒžŽ–‰Œ•”““’’Ž•š”š‘—”’“–“‘““’“’“•œ‡‹—™“™•”˜“–™—–˜Ÿ•“–’‘•“•—œ—’¥œ®“›–”š‘Ž“•”’Ž’’–“˜•“š•˜—’“–““”•‘‘’”Œ—˜™““š‘ˆ“’’”‰““Œª–•“•’“““’𙒔ޕ’ž“”““Š”œ•“““–”™’“•˜—™“‘“Œ”“‘”•”“‘”“—–‰’—›“š“–—“–Š›“Œ”’“—‘š›Œ™“š’‘›”“¤““™˜™“•——”—’•‹›“–‘–›œœ““ª”“•••“••“’›Œœ’Ž’”˜“Œ”ŒŽ™”‘š‰““”““Ž”’’Œ˜‹’™’‘–“”‹–”“““Ž’˜”“”—‡˜•›™“•”“•œ’Ž”ŽŒ“Œ‘‹„–••“—“˜™’“’”—–“˜˜˜•“–•‰Žœ“•“Œ‡““Ž•–Ž‘‘Ž“‘“”“–•“Œ‘’““’›Œ–žš““““•Œ““—’–—˜“—‹’•‘““”˜–•™ŽŽ–˜’—“”“‘•““•–“›“““‹‘Œ™””•’’•Œ””•““Ž—™“œœŸ—““–—™“’“š’•’¡—•’›‘—™˜”“‘”‘–š‘šŽ£“””‘‘“’’’““¦’¥–—™š™›’–‚šƒŽ•–’’œ˜’’œ¤¥–’—‘’“˜Ÿ£™Œš–‹˜’¡˜ª–˜–’š’’œ›‘”—’‡™“•———‘“’––Ž•“’›’”’’“š‚’š—‹’’ž’‘™’Œ—‘—–’˜š›‰¥‹’“’šœ”’’™šœš—’—ž”œŒ–“š˜š’™Ž™œ’’’œ™’‹”¡“’›–’’˜›‘¢Ž™“’””›œ–™“˜†’›š˜š«Ÿš–¥™’˜¤—’›Žœ–„Ž˜—™•––™–“˜•–•–”–“•—–””•’•–”™–•’—˜••—•–••••••••“’”–”–‘–”˜•“›••—•””•”’™••“—™•”••••••’–—””˜›—•˜••—”“•–•“•–•”“•’–••“‘”—“–—𙓕•——”™—•–••“••““–––”•••“•”“•’™‘–••™”™˜›’••••––•–••••š–—••”—“•“••”•–•—˜™“–‘•••”••”“›”•”“••–—–’–˜•••”™”•˜••’–•–”–•”””——”•”›—•””“–•–•–•“œ“Ÿ™©šž¥¡“œ¥’Ž˜——“—𛓔‘˜®“—’˜‘““•““–•šª“Ÿ™›’–¥“‹‹ž•‘§—©“¡™‘“£¢Ž”˜š˜‘“’˜›žŸ”›—š›—“©”«›•¡™œ“”‘‘šš•›“žŽ“ŽŽ¥Œ‰•“¤¡£ž–“ ’“Ÿ““’‡”œ¢ž˜“““›’•¢“š›™œ†“–œš“““™–›—’“’£‘™–“©—Ÿ™¢§“‹Ÿ™œ˜Ÿ”𣓗“ ˜“œ •™“‘¦““•Žž“–¥—“›“£œ§™“y’“ž—›¡Ÿ˜‹ž¢—“œ‡—“£—¡š’™”›“”’”†•™“—“—“ Ÿ•¡˜——–™˜–Ž’›–””™”—›–˜””—””–›••“˜–˜“•¤—”œ™—˜˜œ”™—’–”™œz——’”𔓖œ‘™˜”—ˆ—›•”’›Ž“—••–”œŽ˜”šš””‘”˜”š“Ž‹Ÿ–˜””žš”“š”Ž”•›””—Š“—š“”””“““—“”•˜ƒ”˜”°˜”—”””™—•™“”œ™š››š””–𛓖˜”‘”›šˆŠ ”Œ”›”œ˜””—”˜–””™••™Ÿ‡””™—šš”˜”¢–”—œ‘˜ž ”Ÿ”–””™›™™—šŽ•˜“™‘˜––”›–˜Œ–š“˜›•’‘–“™“Ž–‰—š””ˆ•‘““Ž““•˜’”Ž™™“”—”“’“›–™””’•“‘–“ž–ˆ–“”•‹“Ž™“”–”“‘—•“››˜™–—“‘‘”“–“‘“‘•‘‹ª”†—•“™—”–›z“˜“’““Žš–—”–“’“™“’•“œ•˜–“œ›š£••“”“’Œ˜•““žŸ‘•™Ž“š‘“™”“““—’•’¨›—†“™“’™“’´’“š–““™ž““’Ÿ”‘š“–“¢“”ž•œ“•— —˜—“‡–“‘“‘œ“–˜Œ”•®–ž–“˜“¢™Š“˜‘—ž™™šŽ”—¢’˜”“”™œ••””•““𬗕¢˜–Œ’Ÿœ“Š•˜•”‰•““˜ “’””™–”z”ˆ¡›•“𙕦ž–•“•–𛑑•”‘•œ“™•—–“‘˜Œ•‘—“Ÿ™¤Ž“•–˜— “‘“›£““™…›Ÿ’““–“““•˜“•œ”™š“˜–Ÿª¢””“— š”“”‘‘™–™”—––•”™š“’˜”Ž“—•™‘–“œ”š›“ˆ—®’“›š““’”‘’›””›–”™˜•”ˆ’“¢™¡•›‘“Ž“ –’“—–œ“š—›—‘”œ•›“¢™‘˜–—•ž“˜š˜ž“™””š“Œ•—”‘‰ Ÿ””›““——¨ŸŒ’–‹’ ™“œ›™™Ÿ“—“œ™••“˜ ›“’–––”‘•Ÿ•—Ÿ”›œ™–—“˜”¡”–‹““”’Ž™››˜™™“™“’‘›˜‘”ˆ’“˜š’™’‹“Ž““—““š–œŸ™““”¡“ “”’ ™’“šŸ”‹–›”””“¡ž“˜“”Ÿ™•“–””ž™™Ÿš™¢“”˜“™˜— ™——Ž“”¤’“–®œ“““›‡”–š‘”š›“Ÿ¢šš”¢–“’–”œ¥›™™–“”•›“¢™ž•™Ž“–„”›“™™š•™““™™‡”“–˜Ž‘—•”““˜‰”“““““—–”Ž›™—˜”’”““Ÿ™‹—˜•“–—”Œ“˜‘’•˜‘’“’œ–˜™’Œ–“œ“›—–•”•——“›—Œ—Ž˜š—“—“–•Ž’•œ•„—Œ“˜‘’•œ›“’’˜“““œ‘ޓ𕓔“¢“•“•—–”‘“–œ¨˜“““’—–•““–š˜•˜“———›–•“Ž‘™‡–˜˜—”“‘“—š““—‹“‘˜““š˜š”£‹“š–“˜œ’—“¢—“œ˜˜˜’Ž˜•”“Ž–‰“œ”•—‰——”‰Ž•‘Ÿ–“”‘”£œ”–œ™•™’–’–‘“žšœ›””‘¥š””“””š™˜“¥•“£—šž“”“™”‘’••”𙓔”‰—–˜˜—Ž”—•ž“‰–”–‘ ›””ˆ‘•£Ÿ”””’‘  •“””‘••’š–•š˜”“¡‘™–¥”•”” ””ž—‰š‘“—”””““™“‘”–¤”“’–š“’“”””›•—’“”•””š”•—š˜œ”›‘“—’œ—š˜•‘”””•“”—˜š–”˜‘””““¡—”™˜Ž•˜—”—•“–•—’‡“”œ’’”Œž˜£”‹“”£”’•’”š—••”šž˜˜”“—š”˜—š“›–•——–š˜”’™——””—””˜–œ–˜œ“—›•”––”“”–™œ›–š”š–•”š—•˜˜™Œ”—œ—“™š”˜“–™˜”š•™••–”œ”•™›—›–””•™—”•“–—𑙔𕔙”œ”“””›””››™•Œ™”””•”—š”™˜•š•”–”““˜ ””•”™˜“™””–™—Ž—•—›œ›š›”–••š™–•—›””•”š”˜š•™”–™””––””–ž”–‘œ˜››˜”•””™”›—‘–˜–”—–—”˜™™™“›•–””›–”™‹›”£®’–“˜Ÿ”˜—’š‚š””“—“”››Œ’””š””—Žš“‰Š––™˜Ž—”’š“——Ÿˆ””šž•”‚‹–­’™g”‘¥–’‘—–œ•–‘”˜•‘˜’”Š•”•šŽ›™”Š™””–˜—ž’”—‹‰Ž‰“–”“””˜s›”… ””””“‘”“Š”‹—œ”’Ž™š‘ š”•”“ž””“”‹™…–Œ‘”Ÿ‘–Š˜ œ”›–‰•“”†“‰¡””œ”””“™z¡”’””’’™˜””­—‘”ž“”–”““›Ÿ¥„‹‘”¡Ž†”””›™¢ƒœ˜“œ’—Ž——“‘—‘–™—’–œ‘›“Œ–’›ž˜š—˜“’Ž““““““’’“Ž­Ÿ‹Ÿ–š—Ÿ”’˜š™’•”—“”“’‘’›––’“—š“Ž•›™—’›Ž”—˜“™—ž’’ž˜“’“›–™‘’’““’’“›“Œ¡‘“›šŠ’¤’’˜’’˜’“• ‘‘™–•’““›’’‹–”š–“”˜—”–““““”—›’““›”˜“•”•———Ž“—“›š’š¦’œŽ•’““—’—œŽ“™˜’’˜™’Ž¥•“‘˜’‘𔓗““Ž’’Ÿ•–˜›˜’•ž’œš Ÿ—‘™œ“™¡™•’––š–—’˜—•—‘™–“™“–œ‘“‘“”Ž–Ž““’’—™™”•––¢’”–’•Š•“Ž—•“•–’šƒ’‡•’”’”–—–•˜”’–„˜˜˜™š“ž—Žš™—“›—™‘Ž–’¤’–˜“—”’“Ž’’’“——ˆ—™““’”’’’˜˜•›—“–——œ™”“““’“˜’’“——••““–•œ–•’“Œ˜”’œ“–š•Ž’”““‹’“”©’’¥–“’“’’Œ—œ”“˜˜œ“’“}•’™•’—’——‘‘•“—™š’••—˜™›”€“™“ˆ”˜‘”‘”‘”–“˜˜”˜”•‘’‹Œ’•‘“’“ž™”™““Š““””Š“‘Žž‘“››ž“—™›Š•”‹•““›Š—“𑒔ޒ”“‘“”š’—–”…”’“”ˆ•”’“•‘•“¡’†•–•˜’“–’Ÿ“•’•Š™––“”‰–§’“”™““”¢œ’‘ –“““–““”“”‘–’˜“‘˜ ”Š“““”––““—›œŽ”–“””š˜•““Ž“£”–‘Ž–––““•˜“–—Ž“”–““”‘–‘™”‰‘‹–‘‘š“’“Ž˜“““–Š˜“š–‘—“Š”“–••”–˜†’“–“œ›¦‘›˜•”“ž‚œž–—’”™Ÿ˜¨”—“”ˆŸ¢““‹““™˜¦›†¤§›Žš©œ’£Žˆ‘™‘“œŠ™–“ˆ› ©}•Ž “›¢““¦•“—›“¤’ž§Š”¡ƒ“‹žš“ž’‡•’—˜žš‡›“–˜¦–Ÿ“Ÿ’œ’“…–™Œ“–“’”‘’”žŸ¥“’–~—‰‘“”“˜Ÿ™§’“Ї€šŠ›”‡•’‘•“›•‡¢ž›—’˜’–“𗓉𖑓ދ“’‡Ÿ‘ …“’ŠŒ••Ÿ“·Œ’¦—˜…œ“••“‰ƒ™“¤¤’¤’‹œŽ“’˜™‘œŠš–œ”•–—“•‘™“‘’–‘”𤓑“–““–““’˜“œ˜“™‘¡‘™‘“““”™–’•š““’ŽŽ“”—Œ——”“›“’–’šš••’†”““™¤š“œŠ“•’“‘”“˜—““˜“”šŽˆ—•“•š•‘ˆ’”’••““”’ƒ“—’“”“˜“”“›“ž™“‘“˜”š—“““““‘•““–•”•‘›“•’‘˜Ž“‘“–’’‘“Ÿœ“’“’—“–”‰‘“•™“““’––”—““–™‹–•’•“™–“˜—œ“™˜˜–“‡Œ”“•”•‘£——•”•””Ÿ“•’•”¢˜˜”•™—”˜”™”š”’“”“–˜”Ž‘”—””–””˜—‘¡šŽŽ™˜—“”””–”š˜š”š”–¢“•”™“•œ’•”“‘œ˜œš”˜’˜š™”˜•—™”˜”Ÿ”“•—›•™—”•’›•“””˜•––“”——”šŠ””—””ž””“ž˜—’˜”””””•—”•™˜˜–”•˜‘””¡–”””˜›•””™ž“’–”‘š˜›–ž–”—•’™–’Ÿž›–•”“”›•”ž—‘“”˜š””˜›™’š’•”“’–™š—”˜”””‘• ›’˜œ—””’–”—™›œ””•”“—•”’—”‘•™“’˜›’–˜“š‘‘•“Ž”••”Ž“›“••““™““”Ÿ—š™”˜–Žš‘“•‰’“‘Ÿ™“”—“‘“˜™‹“—‘“–œ˜””†›–““–‹Œ–•“Œ‘”—–“˜“œ”“•”’–‹›––“–¥Š™†“‘“˜“““˜”Ž™‘““˜’š›’Š”•’Ÿ“–“›œ’›˜“”“•“–Ž’“”™—˜™”“›’—œ“‘•–›’“”“—“—“–›“š•‘”“”˜““œž““™™š“•“—›š’“”•“˜–˜–“’”—˜“ŽŒ™“”˜“‘’œ“–”™‘˜˜——’¤•”Ž––”“—’––•˜•—•”––”•’–™”””””“”–”›–•˜š•’”“†’•”—’””—•™”’‘™’˜›”§”–™”•—˜•“•˜”’““”™—”¤š’““—••”’‹’”–›™•–”“’š–”””˜”“•”””•©–”“–”•”—”›”•—”“”“—”—‘’—””””–—””’•›•™–”˜••”–““”——“’–“••Ž”•”•—”ˆ•¥—”™•””‘’’™˜œ˜”’—”“—‘–”Ÿ‘”ž™”Œ””™““”Ž‘œ””•–˜’’ž••“Ž£‘š—”‘ •¡”•‘Ÿ‘Ž“—•Ž’””‘•”œ‘™”“™““˜˜œ ’—“’““••“••˜••›—£“Ÿ™”““””Ž”›™””“™’š—‘œ“˜–˜•“”™˜¡’–“““–™œ—Š¢—“”Ž•“–š‰š›”š“Ÿ˜’‹’“š““ž““•š‡˜•’Œ’’“““–˜“¡—ž™‘“™š“’”•“““‘š˜–““’——“Ÿ¡•‘Š˜™“˜– ™•”›““Ÿ““œš“•—““˜žš›š¨œ“”˜›œš˜“•””’—‘’–Œˆ–˜“•—“œ–”‹’ž—–””““š˜‘–Ÿš•–””Ž™”–™š˜šš¡”˜˜“–”•–•—””ž””–“š˜’˜“—œš”™”—’”Ÿ–œ’””—›—””˜–¥–™“š””™˜™™’•—˜‘”Ž”‘’˜•–𔢓–™’•“””–”‘’””ž”Ž–—”—™Ÿ”’”–”“œ””–’†“—œ™”””™“™š““˜‘” ”—’˜‹‹¢˜”•”•™˜“”šš›–””’”••˜˜—””𓓔ޖ—œ”›”œ™”Œ˜˜”™–””‘š–”‘–Ž”“Ž•“™”–”–“”š’œŽœ™‘™—’””–—”›˜™˜Ž–›™”’–•šš•›•˜™˜–”˜”˜˜š—˜–œ•š—ž—”””˜›œ””˜””——›™™•——š‹•š•”––˜–š˜—“”š““•”’•–———”›žš–™”™’™™—“ž–‹œ“‘—‘”Œž™–š™”™””˜”–‘—˜‹“–‘š””—ž–š—”—””””›”x—˜‘–”””‘“™—“˜”––ˆ”—–’‘•œ•”””›•˜–“”‘‘‘–‘–”’”—”•“š”’™˜”—š’——–”—”˜””’š‘“””””•˜š——žš“’•’”™”𔕓“™”™“š“’•”—•œ”–œ›”•˜—›“”š£œ”“˜“•“”£¥“‰ ˜œ‘›„’—–žŸ”Žž›”””““—•™‹‘——‹ˆ“•~“”t˜— ‘•š“—‘‘š“•žk—‹™”›”’•“•¢—””g–•¢“¨˜¡–’“‰•˜˜”™™“ ’˜™—„ކ—™œ“¢¢–Œ“š““’““𙡖‹˜”““““šš“€Š“Ž“‘¦£‘””“Ÿ¡‘‘“”››“˜ˆœ”‘«• —™™“’”’š••”£ž”“””“”“‘–••“–““£š™š¡š‘”“Žš ˜—”©—”„Š™¦•‘—–“ŠpŠ““†Š}Œ“–”˜•–”˜–”™—“ ——••””“•’—”•”•—•–––”’––”•”–””––™•—™—•Ž•›””•“““•–œ—”™›–“”“–•’–“œ”—‘—–“–”“““–”””Ž˜’•”—”’™—“™–˜“”•’•–”””’—Ž•–”™—••—Ž”‘””Ÿ””𥔒›˜•””—”“””•–””“””””‘••”•”““š–””’”“˜—˜••“–“•—˜”‘“œ“–”˜”˜—”‘”–˜”“–Ž”–”””““’—˜œ”Š”—•–”–”––•˜——–—•”–“””–™•”•—––—˜™˜’“˜—{“–œššŽ •£¤’›™œ’””š—™›¥“Ÿ¥“šˆ –““’““™—’Œ¢Ÿž›”˜•“–”—“˜™… “›–•“œ•“¡˜Ž”Š¢˜˜•–š›•œ™“ššŒ‘œ¨–™“•’”Œž›˜“ ™–› Ÿ•–‘“¤¥‘𦠓““–—““–•—œ˜˜œ“”“ž“’™“”œ“Ÿ“•”žžš“”“›–™““”š•—•“–”ž›šœ¡“—‘”ˆœ¡‰Ž˜ ”“›“˜—“ž›¦’“›—““™šœ˜—‰“¡”¤•›™™”•—“š˜›•˜œ“˜“¡—Ž“™Ÿ™¡‰¢‘˜–“š—““ž”ŽŽ–›—–—””—–›—™–•Ž”˜—˜–”“˜™š—”“š““š—œ–’œ˜™œ¦”“”ˆž•”™”“•‘“˜™—•œ˜œ‰“œ¥›™—•’–“’–””Š”“’£”‘š“™”’•¥œ”–“‡—˜”’—–™•ž“–“•––•™—“““›““˜ š–‡“–“”“ž“š•“Œ•’˜“•”žŸ–¢“”“™Ÿ“™““˜–›’Š’“š•—œš”•“•’•–™”‘™—Ž“˜“™“™•¢ž“›”““–Ž“˜š£—”¤’–”›—™“˜””•–•£˜œ›”•“–’˜“———œŒ–˜•“˜…—–”œ——Ž““””‘Š’™•™—™’˜Ž“–”“’š””“““–‘Ž—‘™†™‘”“Ž–“‘’““‘™—“”–Ž›˜‘ž““”•–’—‘”˜’‰”™“œ“’‘–Ž˜˜•““”œ“Ž£‘Š™–“’––†Ž“˜“‘–““”Ÿ’–—•“““Ž“•Ž“‘—–”“”‘›—‘–“““•˜•—““’“™’–“š—••”“““š˜”˜‰›’™“˜“š“Œ•¡’“›”““’“—‘’¡Š“”›–•–”“’“š—–„•’˜—’“–ž““•š›—–œ“˜“Ž‘™“˜˜Š•“–’•˜“Ÿ—–ž•˜’—Ÿƒ”—“š–œ‘““–““––••£”’š—›”—’“•’•”–•“˜’’•“˜’›‘‰Ÿ œ“˜››‘••““œ”~”Ž—•—‘›“’œ“šš–““•’™’‘’“œ–™“–Ÿ„”˜™““’–““š‡†™Œ–“““š“˜”“”Ž”–“•‘‘š‘“““˜œ‘’““’”‰•——“’—•—“™“—’Œ™”—•š–““¢“šˆ“›”œŸ“Ÿ—“““ž•“™–™”¡‘—˜”˜“™—“•–œŽ›“œ–“——Ž“ššœ”——œ“–„‘ŽŽ’“Ž“œ‘’‘’˜”š—‘”‘”–““••œ‘““‹“’‘‘–˜”••’•œ›’˜›Ž“”˜‘“”‘–“•——–†—“’“•–”‹–””“šŽŽ’Ž‘ ”‘“‘“‹–”“—–—‘“Šš—”‘˜“–𔓕’ŽŽ£—’Œ’“•’“™“˜™ŽŒ•““““’œ’”””Œ“”š•˜–Œ““’š••”’“–•‡—Œš“Žžš’™“Ž‘Š•—œ˜š˜’“’’’•˜‚‘“‰”’’–“•”–¢’‘™”˜”““Ž”’’”‘–’œœ˜–’‘˜’’”’‰‘”Š’•œ‰ŽŸ–’“”“•š “”™“‘––””œŒ›–Ž˜™š“’š“““’“’–“š—šš™—•Ž‘“—Š–•˜ “—™’–“𛂒œ‘˜”““˜’’––’—†š™—“¢š•ž•ž˜“š“•——Ÿ–“Ÿ••”–’Ÿœ¡——“ž©”š˜œ“•’“•’“›——•“’“™’——’’›“—–“—˜¤}—Ÿ—“““•”™’“š’—’“›’š˜—•“—˜‘”–•†’˜“™“““— ›“¡ “’š›“—šŽ“™–›˜——“—Œ“”—“’‘”’˜˜’–„•“™šœ›‡£•›“˜“‹ž“•—‘’Žœ“—“•’™‘š˜‘‹’Š —“˜Ÿš™““““” ž™•—¢™’œ”–“–›—“˜’›“™˜“›“˜”œœ…“–™˜ŽŽœ“—•œ•—“–•ޤ–‰˜“šˆ’••—˜’“‹˜š’’š‹’—‘–“•’”–ž“‘““ž““™‡Š••‘˜““““––“—‘›˜ “––œŒ’Šœ“”““”ž–““”““Ÿ‘”™ž••𛓓”‘‘–¡Ž—”““š‘“–‹¥“’›““”¢–Ž™¡”’ –˜•˜‘˜“’““˜˜˜•””•Ž™—“’Ž“Ÿ•˜‰”‹¡™“””™““‘–™“’–™”ŠšŒ‡”–“™Œ•’—‘“‹„‘““““‘•–œ•’“š–›“¢š•”‹š“–†ž“𙔦‘Š’—“Œ“š™”œ˜Œ—•“œŽš£—š“—™•ŸŒ“ž‘œ’•œ•–Ž‘“˜——‘ †“˜“˜““¢¬‘ž˜““““—“‹Š“’š“—Ž“Ž’ž˜‘‘‘“”“”˜““ŒŸŠ‘š”“Ž˜‘™‘ˆ“™™”–˜—–™Š““”š“œ” ““˜““‰‰Ž’‘‹“‹˜‘–“¥š“Œ‘–™–—–œ“—†—“›–™žŽŽˆ—”˜š’“‘œ––™‘—ž”——›••• ˜—ž“š˜œ”š“œ™””’”“œššŒ¡š—•¡“—š“›—’”•—”—ž’“•“ŒŽ“™”’†’™˜”œ“’›–”¦•Œ“”Žž”™”šš ’”“Œ‘¦£‘œ™ˆœ•••”—”™˜™›”‘“””“” ‘Š”—¡’”””““‘—““ Ž—”˜—•›£š””“™–”™“”˜•›ž¡“”š›ŸŸ—”””’‘š˜Ÿž—¤—•“””œœ“—•¡““––““—‘• ’¦•”šœ’”œ”“”•–—–ž››˜“•œ“˜¢ ••“’˜“”’””’–™ˆ¡‘œ““š–——“—˜’›”Š”¥™›”“’““–—™Ÿ™Œ••¥˜’“›Ÿ—Žš¡“œ¢Ž““—‘“”“žš‘˜•Вޔޖv•”š“š˜ ˜™•–“—”—šƒŽ¡”“˜‘€›“”“’¤““š¥£Ž‰™“’““—“’’˜““’™¡ŠŸ‰“““’ ™”““”‘“™Ÿ”‘‘‹’•¡“–“ “–”—““„“𔓗˜—“Ž‹““•‘’•™Œ¥’‹”˜—‘“ ””ŽŽŽ—‘œŒ‡““–™“”™“Ÿ˜•‹“š•Œ–’“”””“ž—“ŒŽœ“ ”›‘…ž˜“‘¡‘““‘““›—Ž’¢“›˜”‘˜“—‘“žŒŽ”“Š˜”“¢“—Ž˜‘“•“‹”•”‘’œ™—““˜‡”’œ©“Ž”•š¡‘Ž“ˆ™–™‘™‘Ÿ–”›‘“Œ–‹•˜œ“““‘š““’Ž•“““–“œ“–œ’šŽ“œ›–›——“”“œ’“Ž““—Žš”‘“™•¡œ›“˜“”ˆ ”•“”“‘”“•—˜“¡““˜——–œ‹““›šŽ””“|•“”›—‘‰œœ–˜”“™¥Ž“‰•œ –‘‘‹”‘“‘œ—›“›–ž™—•”›–•™ –•–˜––˜–•”‘™•Ÿ””›””–˜œ™ž¡–—™Ž—™’”“ˆ™šš™Ž˜”œ˜‘˜”•— Ÿ”œ›’”‘œœ—”œš˜ž’š—” ’“’•‰œ”Ž—š˜”—š™”œ•™›™•’Œžž”—•¢–™”›”›™””¡ˆ••ŸŒ˜”–”™””˜”“••“‹”’‘Œ‘—’•”””›“•”””–‘•Œ•˜˜“™•”œ”•—–—™š–“”–”œ”Ž™š™”˜—”””•–š–”—–™˜–š”–™”™““žœ˜•–“”“–œ”œš”’”’™–“…˜¡””–”–‘Ž”“Š•˜Ÿš—˜””¥–’‹–ДР—™””•”“’”‹šŽ›™“–”™“”—œ—–’”˜˜ž“Ž›˜†˜–˜”Ž–•™—™–Ž’“˜”˜––Œ’–”—•§”••šš”’“‘””˜‘£Œ‹“‘‰‹‘”Ÿ“𓢓“™ž™˜žˆ–”—”’“‰’“œ”•”¨”–—‹‹—–””“™š“”›Ž“šž””––––—–˜”••”›–•›Ÿ‘”–“”˜’“Œ––”‘‘““’“”˜›”“•”•šœ˜—”’““™—›˜›™”˜’“—§˜“—”“’Š–žš““™’Ÿ‘šœ“•™‘ Ÿ’“˜˜‘š’•–“š’›˜••“˜¡™““‘““•—–˜œ‹›“§‘›“’£“•›“š“‹“™”£“˜““•š“˜”™˜šŸ›’˜ŽŒ”ž““ž™•™ž—“‡‘”›Ž—›”‘—’“™ •œ—š’—““““™Ž š“”¢““““–”““Ÿš’“‘”—‘™˜¢“““™’”““’•‘˜š“”œšžŸ›œ“‰’‘’ž©¡–šš“’“‘““¦›’”“˜š““———š”ž“š˜™œœ•“Œ–“ “ž™—˜—™”’“’Œ›“š›™šŸ•œš“”•“’™š™”—•™–—••˜™•–›”‘š•–™—¢™™”–‘”””””””–”’—œ™•œ“–”•”‘œ™–“”–”–””—”˜–˜’–”•””œ‘•›“•——•™›”¬•˜š˜”“—••š••”ž’–’•˜œ—‘™—”˜˜ —œŒ”–”—˜””–––”“›”“”•”•“”—š“–”’‘–•™Œ”•”—‘•™””˜’–‹•”•˜–•˜™’”“’–‹”•Œ–™•‘”‘”Ž“”–œ’”™—””“”‘—–›’”“”š•‘–—”˜–”—•–“™•¤š“”•‘”–—–›•”‘’“”–“Œ”——••“––œœ•“›˜”•™–˜‘™’˜™™”—Œ™š•”“””˜˜—›——›—–“—’”““”“•˜•œ”››””›–’•—•˜”••–”›”™•˜œœ•š’ž•¥“ ”–™‘™˜š™”—“•–”’–Ÿ““•””œ›—˜š—”‘””‘””—‘‹•“ž”””—”“””’•“™•”’—”—™•”•”™˜˜š””ž‘˜—”–œš• ›—”‘”““•“•š˜”˜”—•”“—”š™””–“’—•‘“•˜š—˜˜˜””•”•–—–™–’•˜””–‘””œšœœ’š’˜•“’“’‘‘“Ÿ–—›’•š•–Žš’‰˜–“’”“•–““–““•—¦””š–•Œ‘•““¡–“•›““–‘“–ˆž•““—––‘”–Ž“˜“‹“–”’–’š‘—“‘“‘‘™˜“ ”›’Ž•œ‹œ™“ž¢–Ž–™’‘“•”““—œ—Žž‘’’“œ“”“¢’˜–ž““‘ˆ•“™“““–•“Ž““–”™“–“Ÿ––––’™“”“›Ž˜ž™™‘““˜“–“›“•’“š–“““˜—”—š””›Œ–”—’“”œ”••– ˜‹¢““•Œ•““”Š”–š“¡—¤’¡•—šŸ›’žŸ˜Žœ‘–š˜˜œ”•™“ šš“““’›’™Ÿ›ž™Ž––’š—œ™”–™“œ˜›–“”˜£“ˆ–“—’˜››š–˜™••’ˆ•˜•”—“–“žŽ”—˜ ž“’Œ“Žš ˜¡—“¢¢’Ž¢’—’“’“¡Š™”ž’”“‘’–˜’Ÿ—Ÿ•œ““’œ›””““““žšž’“––£šž›“˜˜š™–š“’”Ÿ˜£ž–““—œ“œ›µ‘“–˜’’—‘””𢒒—–šŸ™š“‡–“œ•š¡œ™§“˜’“šŽ’ššš™˜š•—“¥””“‘™’–“‘”‘—Žž”˜”‘•’“”’ŒŒ•”—”“““‹–—˜‘’””’›—“”…—‘‘”““Ž‘“““•”•š““‘““•“•”™’–‘“Ž“˜—“–“Ž’–““˜““–”™’–œ’“žš“’™•‰™“š“‘”““ŒŒ—‘–““–““š““Œ‘•“Ž“’—’—–“•“”“ŽŽŽ”““™’”‘Œ–”™‘–—Œ“–•Ž—Žš‹™–Ž“““‘“Œ’”–“˜–“““˜–•‘›š“’”Ž““•“”Œ”––””“’”“”•”™‘””ž”˜˜ ”–””’‘‘“•””’“”¡–•”•“™””‘””•”•””“”””“Ž”–—›””Š•”—”•—“••‘””’•—””—™ž‘”‘”••–••›”œ—••”‰–’’–“”™”•—”—••••”’™š“•••‘”“‘””˜‡•“—”—”Œ˜””•œŽ–˜š””“”””‘”ˆ—•”•”–——–˜”””–“—”””—•ž˜ž””–”•›•–•”—š“˜••Ž•—”–”””•”Ž•””—–””™––•—””’‘”–™•””’•”š’“‘—’“˜—”“–”“•––Ž˜š–š“’‘v˜—–™”‚ª—”–‘”“”•’˜””•ˆ’’—”“ Š”‘““˜““”‘“‘˜ˆ¦’‘“”“¥‰š“•”““’†“—–€‘˜™›t“«’‰”’”“‘œ”˜“¨•š””˜‘•“Œ’–”–‘“˜”””““Š—–Ž“–”Œ—ºŠ’‡’“›““”|‡—•™“’“ “““š•••¡“‘’œ¢”¥ž““““–”““‘”{™Š“••–›—“…”•z”’”’””“Ÿ“““ –”“›““˜š–•”‡“¡“”š›—”“”Ž“ž’«˜’’Ž“—““—‘“–—“•†…“•™„•”“š–˜‘——”–•šœž—š˜”–œŽ•˜“Œ–™œ““˜““’š‘ŒžŠ”—‘‘‘ŠŸ“œ¨”›™–‘“š”›˜“““¢˜šš“›“““˜”•˜’”•˜“””•“Ÿ›Œœ‘š“—…”•–” ¡Ž˜“‘Œ–‘–Ÿ“’“š ““›š—Ÿ“”““•˜“𙓓™•‚¡œ˜“”“š˜—™““£š”“‡™™‘ž–›“—•™—š‘•”–‹“Ÿ“•“ˆœ{‘“‹““”“™•˜š”˜”’”–•““¢—“–™›“”™—’›“—˜Ž“šš•–•‘’“”¡™”•–—”•“””“˜”’›’”—”•˜––’”™‘–“”•—”–””—””——”—™‘•”•–“–“”™”––••š•”—™˜””›š••Ž—–’”𔕒˜–•”–•—””””’™˜‘šš”˜”“••—›“”’˜š—‘™”””œ””—–•”—”’”—‘””–—…•™˜”“”’”™—”›˜™”‘”˜”š‘™”–”•”•’–’””–—•š‘”“•–œ•˜””Ž™–––š•›––”•”˜“”›•’—”™™””š“’“–‘˜”˜•™–––”‘—””’—•”›œ –™”“˜””˜–•”ˆŸ—–”‘˜–“”˜”—••”—‘••”˜”š“—š›”———Œ™•”˜—˜—””“””™•“‘›–™˜••‘˜”–’—™–—“”•–•””–”Ÿ‘“–•Ÿ”˜‘——•”‘—”—™™”’•˜•‘™’›”––•™•š“˜”“™š—“–“˜“˜•—”’”—œ‘”—””‘””™•˜™™ž™”“”–“˜•“••”˜”–™•–•œ”””šš™“”•”š“ž™”—™—”˜˜•”–˜™–—–Š•—••”œ”–˜”•––•”š–””–™™“™‘™”“—“•–𔕓”˜–—––™•”–”””–—”–——š’˜˜”˜“””“—”””•”˜—”—™–“—•””’”Œ•”•Ÿ””““”””””””š””’”•’”‹”’Ž””Ž””—‘”˜””“Ž””›œ˜••””””“”“”Ÿ—””›“–“””’މ••”‘”‘•”––””“”’œ“—”šŽ“’“”š˜–——””””””””—– ˜”“””””•””™”˜•––ƒ”˜–‘𛕔”””˜–”‘””š—”“•’”•™˜Ÿ””˜””–““•—”š“Š””””””š•””œ™””—‡”’•””•—“—”—“”•”••”“ŸŸ›–”–Ÿ–”””•‘•”””—“’”›˜””’•š˜”–””›”›”–”“””“‘›””•˜œ”””””‘š”¡ž”–›—–” ””“”””–œ’””šš•”””Ÿ•”“””–œ•˜Ÿ”š•–””ˆ¡“•’”–”’–”–Ÿ›”ž“™Ž–’‘ –“Ž””••’•™—””””›””œ”•”“™”””–”“““–‘™—¢”’œ‹¤•”””–•“™“”••“‘’—”’“˜–™˜™”“”“’”˜ž”›”—”•”ž•”ŸŸ‘””“”””Œ”š˜•”•‘™š˜˜”˜•”•”•žš••—‘”•’–”¡š —›”•ž”œ—””¡™”•”“—˜–“›™–•𔓔𔔙”’šŸ””“š”””””“—Ÿ”•“›“–“™—“˜–““™”–—””••’”œ‘”–••”•”““ž–”••š˜”–™’—”›”—””’•™›ž“•”•–Ÿ–””“¤™•˜–”•›•›“”““““˜“”™•¢˜’“ž“””•“–š“•™”—“”››’”›—•””“—“•–“”—›“•”–””———›š™”“˜””’–Ÿš–”“•”Ž““œ–”“—›““™“”–˜Ž“””›•™”—•”“”””•••›¡˜Ÿ–“” –“”˜™”‘•”””Œ˜”˜“”“—”—–””‡•“™•”–Ž–‘Ž•˜ˆ“—”–••’””•””•ˆ”—–“•—¤•—‹”Š“”–—”“™””’•––•””–”‘•˜”–Œ•“”†’Ž”—𔤕“™•–“”—•Š‘”’™—“œ—”’—•”‰’”“”’—”””¯•“›“”“”–”˜””{‘ˆ–‰”•–‘——”””–”Ž“””‘•˜ˆ•—”–”–•–•”–‘““””™”••ˆ”‘”––”‘•‘’” “””‘ˆ™—”“˜”Œ••›•””™—””’”—“™Œ”•‘””“–˜˜€””–”™““•™š”•”•šœ”–ž–—˜–˜•˜”‘–•œ•œ””“——””–””––•˜•”™˜—•š“”—›•–•š•œ”——‘””Ÿœ”””••””–•—–Ÿ™”™™––”—–¡“——”™”“”•˜™˜›•”˜”œ–””•š—•”žœ•˜–’”–””—””—”›—••™”””–”•š”˜—™™””•š™››•”””–—”š””˜¡–•”—”–•—¡™˜—”˜•”–•™’›ž—‘”•”––””™™–”œœ””𙕖—‘•”—”–š›–”–•””–”—›››Ÿœ™”•“—”š™™›™•••”“•–”•–”“—•–•“”Ÿ•––•––—’š—–’˜•”––––””•””—˜••˜”‘˜–’•—œ”—¯–”———™”–—“””˜–„••’•’”™”—’–’—‹›—˜”•–”–˜™•˜”—•”•˜–˜–”˜•œ•—–•“œž—’”˜’“—–˜”’”’–””——œ—’––”””””“˜”œ–›——”––•˜—–”•”––”–””•——˜™˜”—–—“–—•””•–——–”—˜–’”–”–•””–——””–””——•”–’’•™•—–‘——”•—”‘š”š—˜˜™™˜”—”–”–——˜«—”“–“•“‘’‘“‹—Ž•“’–˜•›•“—Ž–•¦””‹—š““’“““›“Œ’–‘‘š’’“˜š•ŽšŽš“‘’“‘“‘Œ˜‘”–™“š’•‘–”‘–š’’”™žŽ’––“—’‘”’™™‘““’”šŠ•–ˆ“‘’‘––—““˜““—£Œ“Œ–—“”“‘“˜“ŸŽ™“–˜”Œ“…““““™“ž•““–˜’š¤“˜•œ•“’’˜˜˜ “”“–“’“’›“¡–˜—“—’““•˜™–™‘“”𥕒“‘””Œ”•“––Ž–“’ƒ•““‘˜”“”—”’•••š—”“•–—˜—”—––”—”—“˜””—–”˜—”•”——””“””—–•˜˜••˜—‘”˜’”’•–”——•–”—˜”””˜•—–—””””•—˜”“–”—“‘˜˜”•“’•—•™”’–•—˜˜“–”“•—•–•”—“”“•”•˜“——•”””•™””˜—œ˜“”˜”””–”–“””—’—“””–—•™•”•”——•–””“™”““–”–—––—™—”–•”’—–”š——”•”—””“——””˜–””•’”‘—™–””’˜”˜——”•—”•–”•—•“––””–‘˜”—˜™˜’•“••–•›’—™”–šš–”—”—•™––”•”–™™”š“”–•—š•”’•”˜•˜“˜—˜˜–’“™˜””œ”™••—”˜”–“”–”›—”––””˜–•’”›—š™™”•š—‘“•“””—™•–›—”œ”—–’–™–——˜”–—’𔕔œ”™˜””˜‹˜•™“˜”–”•”—””‰–’•Œ”—•–{š”š”””——™˜””•••™””•˜—˜–—•”˜—’˜›•“™–—’””””Ž””–œ”•˜””š‘—–˜—›•™˜•—™•™”˜””™™”™˜’“”“”•™”–——•’–š”—•“¡˜•“”“›šŸ”‘œ”‘••œ“•’’œ”š–””“’˜””””””𛓗Ÿ”“•™”˜Œ”“™”“˜–•š”ž˜’•”––Š–—”•””–”š”•š”Ž•—‘”•‰¡•–”™”‘•“”“šš“”‘“™••“‘“ž””¡‘–’‘””””¤””œ“—’“’Ÿ”””–”“˜”–”–“—”’”˜•š””””‘”•—”””—“’”•””Ž—”™šœ”’’“•˜—“—™ž”“”•””“™–•”™™””™¢•™••””––—ž™•”–”””’”•’’˜’•”“•”–›••™™“•–”™–™“™–“—–—–—˜“’–•••’š“–‘—–“™–”–”—”””–”“—˜˜™––œ“••™““•“ŽŽ–“™—”“˜‘”˜—•“”–”•™“—–•“”“™š“™“‘”–”𔕔‘“™—™”“–œ““• ”““‘”“˜”‘•ˆ“”“”“”˜—£™•œ””””˜“‘““‘•˜—””•š——“””“—•’““”˜˜Ž˜”™——™“™•““•“—“––›’”“Ž”˜–“Œ”–”“œ—““•Ž“‘™œš“•–˜š”—”˜–“š–˜–™™˜—•““”““–––˜“—•–”•’“”š“Ÿ’“”•““•––•—••–™˜—‘”Ž––””’””–’ •”ž••Ž—‡“”“’““—‘“”’‘•’””—“£—•”•—””•–”—™”’”–‰“•’™”‘”–’Ž˜•””’•‹”“”Ž”’Š–™”’“•š–”“”•””—‰›—”—”••”›”””•–’•Œ””’‘–™—”””˜‘“”””’‘’””˜••••–””•““”—“””˜”š”“˜”•”›“”•”””’‘˜—• ž”–”•‘”’””””–Ÿ–Ž’‘”’‘”•“—””‘—““˜ –•“•”•”–••••”–™•™—––”•—”••™••””“•••”•••”••”’••”•••”•“–•”•”—–•™•˜“—•••’𔕕”••”•••”—•”˜š“”•š”˜–•••”•–””•‘“›˜••““™“——•˜•˜••›˜•”–”•”••—•••—•””•–•••–••˜•“›”˜•””˜••••••”—••••”–•˜•–••••—••˜•’–•”•–š“’–•••••••””•••𙕕–›••”••••—•——˜”••”••—••””’–’–••–••••’“’œ•••”•–“š›”•–—˜œœ“‘˜–”•”——••”™•–“””™™š””•””–”˜™ž‘›”‘’’”“™˜œ•–‘–”™š”“”‘–••›˜œ”–œ–“’˜”–•˜˜•“–”Ž‘ž“—””‘š•–˜š“”’””’””•–“•–š”š›’˜¡—”ž””›””›Š––’œ”””””ž‘”˜–”‘œ””’’’‘–ž”””’’™˜””–‘’šš”˜•”’—™–”–”˜˜‘•˜–•’””ž”’“”™˜š—”—–””˜—’”˜˜’”›””š›––”š””––›•›–—”•”’—”•—–˜’–˜•Ÿ”•–­”—–”‘—””‘”Ž“”Ÿ”–”——••’¤–—””›”’””””••‘’•Žš•”ž–”–”–„—’”””‘”“”–•”‘˜ª—’””—•“›–“•”Ÿ’•–”ˆ˜š—˜”—”“““–––’”›—”•’›•šŸ‘–”¤”•”¤”––”””—‹–¤š•”˜”‡”•”„’—–™”›Š‡“–œ”•”””••””™‘ ””“–““”’•–””Ÿ”–™”•––’”•”’”’˜”‡•Ÿ‘”‘””––˜”Ÿ‘”˜——•””‹“”›“”˜–Œ––”—Ž˜”“•”—šž”“”¥•‘“”š’—”““”““´“““‘”““…“””“—““””™””“‘—”“—’““”“•”“{••““ž””““–“”’”ƒ‘Ž””™‘“–”““˜“““”“””˜“•“”Ž”•“—““””•”œ”””‘“•’’””””‰“—“—”Ž’””“˜’“”š“”’”’”ž“”‰“““£”””—˜“ˆ‘”””““‘“””•’š•–˜”Ÿ““““““”š”’™““’𔓔ޔ“—”™“’–”›’””“”Š”•“œ“–““““”“”•‹”“’–—“’“””“ž–”““”““”Ÿš””–˜•›—”•—”–™œ”’š™–˜•𔕕“—” ˜””“”™™•”•””™•——™˜’›–•”˜’””—––™–—™”™—“””š•“••••”•”™–”™”˜Ž—™™”•”“•—”˜”—•—•˜˜™˜”™•›“””–“’–”–”šš”–‘™”•””›””›–”˜•”˜”””””••”“–“——”““•˜›–•”•”™š”–””•˜–”“™”—˜˜›˜˜˜”•˜•—–™–”—––”””˜–”˜˜‘•”™™””›––“š“—””“——›˜˜”—””““‘—“”“˜“–”•‘—”—š•˜™–“š”˜•Ž’”””—“”“•“” •“–“•”””“—““™““”’”““”””””“œ’“”“””“‡”“—”• ”–“’’˜”“”•””œ‘“”’—”’“’—•“““–›”””–“œ“–’•”Ž“–—””“’”–˜ “˜””’”“—“”–“‘”’’”‘”””””•—””’”””””—””•”›™“—”””“–“•”””““‘“”””›“™”“””–”””•’”Œ™””“”›”““”•”’•”—”•”—›””–Ÿ”’”‹’”“—“”–““”–”“•–”“‘•™˜”“›“”“““•£—••“”—˜¥—“•“˜››—˜š“–˜•›““”””œ”“˜—”–”–œ•”“”˜““”–“–”–•“”•–“•“—‘——”–—œ”–—–“”•š‘™•—“““™–›”•–”•–”•“–“•–––”‘“——–’™–”–¡–”˜™’•’’˜”š™Ž“”“ž““•“”•‘•œ™’”—”˜“›™“—–”“”–•¡œšž›””””–”““”˜œ™˜•“”Ÿ˜“œ’•””—•𔕒ޙ˜”•“””—𔑓œ’””š””™–•œ’𔓔˜”——’•”“—“›™š“—““˜•–“”‘™“”••”š”œ“•˜”••’“”–“‘—š“—”¢’’—‘•™š–’˜“–“’—–““’““–•““”’””••’‘–“†”‘•–ž“•––”“Ÿ•“’™•’•“”’˜–•””’•™“‘“ˆœˆ›“™•™“˜““™““œ“•š–“—™—“˜™—“›œ‘Žœ“œ“Ž’“““–¡“–”“”“‘“™—“““•¦“˜—”›šš–“”““‘“““– –—”“”™’›“˜•“”˜•–•“ŽŽ˜•¦““•““Ž”‘“™““—’–••“ž“™—““š“—––œ“–™“’”Ž“’•––œ ˜š•ˆ”£‘˜—”–›–”š˜””š•­—‡—“˜•Ž—“˜™”–˜—””˜””˜–Œšš—•š–ž•š‘””‹™———™•”—˜””–™“‰—Š‘””•™ ——˜˜Œ•˜™”€”‘“›™™”›”™“™™––”—•›“”“›”‘Ÿ‘”•—u˜Œ—” ”Š•””—˜–˜ž›—”•”Ž”“””Ž––˜ž”’•’”™˜•”•”˜—›—”””–ž ˜”š“——˜˜–”Ÿ“˜–˜››™–””””˜Ÿ”˜—¢“”Ÿ–””••‘Ž˜™˜”’—˜———˜”™Ž”›”˜š›˜˜–•”–…ž”˜˜˜š™’¥’›”˜’•”™š”š—•œ–”“–˜••“š—š“”›“•—”••—’”””””˜‘•–•˜š—•”•”—”’“š•˜—”’”’””˜˜–”›•“—”—‘••™–”–—••—”Ž•‘•›”š”—“•“”œ˜Ž”“•˜””–š“™–”™•–˜•””””™””—”—’•˜˜”””–”“™”“—–š‹”–›—”œ•–”””‘’–™””•’•‘›˜”—–š˜”˜œ”–“—””ššœ“Ž”””•™”Ž™˜“”—š””—–•”–˜”‘’œ˜–˜“”””š‘—“™˜œ™“”–˜–””–™š”˜˜˜š”—“”š—”™œ–š“”–˜—“•—˜“—–™˜–––””—–—””“””–•Œ˜›Ž™“œ•Ž””š›š˜•˜•˜”›•“””–™‘’™–¢”“‘˜¢˜™•–•˜—•‹—”–“˜’“”Ÿ“‘™–š’”“”…“““’›’™š”𙓓𡓛”’™””™™˜––Ÿš““”“”›˜”––›–”–—’—˜•—”””•”‹—””•–¥“Ž‘”–—˜—•š˜”“” ›˜••‘”–•”–”—–”–˜”–•””™‹ ”•šŒ”“™—šš••”–”’–Ž•‘–—–—–”—’•”œš™•šœ”ž””§––•”œ•—’”””‰‘”¨”–”’•–”•”š•‘”“•”•””‘”””‘••™•”Ÿ’˜”•‰‘••Œ”••—””‹””––˜“”’–”‹•Ž•–•–”—“™–”˜•”˜”’“–”–•”¥”‰””•–••–’”Ž”’”ŽŒ”—””—”””˜Ÿ•™Ž•”–”š””Œ•Œ••”˜–“—‘”””•”—•””–‹‹–”•—“•’”••”Ž”’”””™–”¢”•”•˜”“•˜˜”œ’””’–”•‹“”“•–•””•”˜–––”’‰’”•§‘”••”–}”–•Œ”•”’”•–“ Ÿœ˜––’”••‘–˜•“–•–•““–•”—œ•–””–””•“Ž—–ž”–•’““•”””™––—•”•••“”••Œ’¡˜š””–Ÿ•—”•“–˜”––”“”“’•‘–”›”™–––•””‡”””’—“˜’™”•–Ž”§˜”𔑔”–—¬•—•–”“”ž”••”•”–Œ”””œ’••–”””•–š–”””•””š–”––•––•”–”¤Ž••š–••‘”œ”–—”—•—’”–•””•“–••šŠ“–”–––••”ž’”œ”ž–”•’–”“”•““”–———’—––™”—•—”˜•”””‘™–•”“••Ÿ——–”–’“–‘‹–˜”“”––•”’””–—˜˜–”–—Ž”—•”–…”•—–““”–—•””—–œŒ—•”“•‘’–”•—“–™”–”””‘‘’’“–”—–•–—’•”•–•–”—•”“””•“‹•‘‘”—”‘˜””˜˜•™—”“”‘”’–”•”––”––’•—”••”–••–”•—•’“—–•™”–•—–—”—–™•—™˜–—Ž””•—•”“—•˜”–•””“’””–”˜”’“–“––••šŽ”•“–•–“••”–––”—˜˜—Š“”–•“‹”š“¡™”—•”™Ÿ“’”š –‘›““ž“š—’—›””™™””‘””—•Ž—˜•›™™•˜–”–––•ž˜›”£˜”””•“™”’–”“Žž•›˜—“™””œ—‹š“›—””””•–”œ“”™’’–“‘”’Œ””ŸŸ•—˜”–”–¡””ž“—›šš”•”“““›““•–˜•”•—“’‘ž—””””˜‘›“”“–Ÿ’”—”’“—•š ”–’—›˜—‘˜œš”””™”š–””—‘””•’œ‘˜—””–Œ™™ š™”Ž””’˜ ”–’‘””—Ÿ”š•—˜ž™‘•”š•“‘’“”“•““““”“”“ “‘”—“•”“““”””˜““””””““•““–š““““—”•”–”“••”“••“”–•Ÿ•‘•—”™““––”–““•”“”‡”“˜’“Ž””›”’“””•””š•—•“•–“”›•“”•“‹“˜”•”‘’””“–—““™“”•”•”““”““““Ÿ”••–›–“•”””““™’””•”š–ž“””””–”““”›•–•“”›’•“””“”“—”•“—–”””””””•”“š””’“““’““”–‹”š’–—”––—•”””—–”““““——™–˜”•–••”•”“™–—š”•œš––’™•™™•š˜ˆš˜”—‘™–””””—“Œ™Ž˜œ›Œ“—”“‰•–—™“—”šš”“”œœŒ––›””œœ•™™žš”““›”™•””“’”›˜™•”‘’›Ÿ•˜–š›Œ•˜”–Ž˜¡›”–”“’””˜š—‘™—”””™”š—”•“œ”””Ž—¥ž”””—–“’””••“——“š˜š˜žš”Œ‘š™™š˜ššŽ””—“”¦›““”™””‘‹”•’šˆ”•›“˜™•”““”™”—‘•’•–’””’ž‘”–››’•’•–”“”𔕑“˜˜”“’’—”’•“””“•’—““•”’”ž’‘“”””“““’”–¤”’–’‘’“‘–’’“ ””’”•“””ŒŠ—”•‘“œœ”š’’‘‘–””’’’–—–™™”Ÿ“”“–”““”‘”§““”’•“•“•”‘—‘“šœ“˜“‘š“”’™–˜¢“”””—“ ““‘’“”¡” –‘—™””““’œ’“”“œ”Ÿ”š•“‘”•‘“™“š—“’–’“•“”” “–’“”“•““”—•”’Ÿ“šŽ•“’””’“ ”ž™›’“““”™“’’“–•“¢™ž”—•“—˜”“•”˜—–”“——’—”˜”—“–˜”“˜–”•“—˜•””””—••–™˜”™—’•––”•–•”——•–”–˜–””—•–‘••–••–•˜”•—“˜˜•˜˜”™”•”–•‘˜”•–•–˜——–”••”–••••”—’””––——™”’””—””˜–•—’”—”””–””–”•—”˜‘”••—”–—“••”——–—”••—––•–”–——™—˜—””•••——”’——‘”••—””•˜”—”—–””•‘”•˜•••˜”—–—–—•—””“–”™—––˜–””––—”—˜˜˜”˜’••”—”Ž‘’•”š›™™•••”””—”’”—•™••™“”””™ ”•””’”””˜”•”—•”’™‹”””‰œ’••””””—”“””•“››——”•“ž””–•”””•”–”•””“”””š•””•”’”•”””‘–”ž”Ÿ””•‹”˜”¤”˜”””Žœ”›–•”’”˜”ž””Ž”“””””“’‘”•š””””•“–””””—••””””””””••˜””•–””””œ””•”š”—–”””””””𕕦˜”–“••””””“—”š“™•“”•“•””‘‘™”•••••”™“”—’”‘“–ž‘™Ž—“”“•£–’™”„Ž”•––•””“““—™ŸŸ“¤›“–’“•‰ž•“›’”“š™””—Ž§Ž˜•™›“™–˜Ÿ”˜“””’–’–‰•”–“š˜™”“˜““’”“’‡š†”“Ž•›™“š“‘‘““™ž”–šš””“”Ÿ“›–“•“”’𔕠˜Ž“ž””“•˜™˜“”“˜¢•”Ÿ—••“”–”¥’šœ–“™”“•““”›—“’—œ˜“›—““—•‘•š“˜š‘›’•”£Ž”“‘‘Ÿ§Œ–‡““”¥“œ–—‘—˜•£”–‘•’•–”––˜—™”‘š• ˜–“—’’”Žˆ•–”Ž™–—””š””•’š• ””–’–“”’Œ˜••—‘œ”—™Ž–”—–©’’•””—š—˜’–š’–•”‡“–‘›š—™” “œ™––š–””˜‘”—”–“” Œ–Œ˜”–”’””””—Ÿ—”—”””Ÿ”•–”Ž•’•¨””ž¢”—’”””–•˜•””‘œ˜“š•”œ™•———–”›”‘”•–“™•”“”—”¡–Ÿ—”›™””–‘‰•–•š”›Ž•–œ—–””˜”‘–š™š——™•“”‘Ž””˜––˜”Ÿ”˜•”•”•”’•”•••–›”–™‘‘”“”•””•‘•“‘˜•••‘“••“””““——“–—’••“—”™“•”’˜”›”—˜••”š™ž”š••••––––œ˜””˜—–’”•“”–—“—•”–”•–“š•””–—••••—•—˜–”š–—•š“”•””’””’˜ ”•˜••””–”–™”—“Ÿ•–”˜––Œ•š–••”•“–“”•œš—••“•–••š”—–”™–—“‘’š™˜•”–•˜—”™––•”˜š””•‘–•‘“’•—–•™•—’•œ“”•“•—˜š–š–›”—˜—”—”••˜š••™””š–™•”Ž••–•””–•””—•’•Ž•–••–”Ÿ–•””””””•••–•”–•™•œ•”•“𔕖•”•••“”–•–”™‹”…”’•“••”•’••”•˜”“”••”–”Ÿ“Œ••–•””’”“””•“•”—”‡”–—•”’•”’”“””•žš”“––”””’”•”””•–”””—™•Œ•”””””œ•””•• •Ÿ””””••––•”—”’™”•š“••’”””𔕕𔓕””•”•—”” ••••–””—–””–š˜•“•”””—•”•–•—”—””—’Š”•–”‹•”™™––™˜—•––—ˆ’™‘—™™”™‘™–”””””——•’—‘—š••ž•”• –‘˜—•”˜—’””–”••”ƒŒ‰””‘˜Ÿ•””——’•™”š•ŽŠœ˜”—”œ”‡”™––˜”Ž“©””“’”””“†”—™–•Ž•“”‘””–Ÿ‘—Ÿ–”“”•”–””—‘——”“•¢–˜•”””—”“–””–—¥’”—”””—––—”œ”—“—–—•—˜”Œ””¢”—–•”–•””•’”˜•ŸŽ” “—•—“—”˜“”•—–••“‘””•‘˜”“˜”˜š””Žœ””š™—–—”Ž’‹˜”™•””—”—“•ޓ𒓉”–”—–š”””“”˜’Š”•“Š’Ÿ™““‹’“–•š”—š‘“”“˜ ””’Šœ”“Ž“•–˜’™”–•™”¥—¤•‘—–””“•š••™”””—›—–”“”—”•”–Ž‘“™“”—“””¤’—‘˜–“””‘“›–“›’š•™”•—Œ˜””“””“•™‘š“”’˜™–”…š”’˜“•”’”™‘–™ —‘•Ž“Œ”–œ“¨–…”‘•““’“’™—™”ƒ•–—•—–”š–”•˜‹¢”š–—–”’—™”š••”˜‘›Š•”–••˜–”•“”••–”˜•‘”–‘”’’›“Š’•”“’”—””””“’™“˜•••‘‘“˜™“–•””•–’—”–—›””“˜¬˜—“””””“‘““”—’¢‘”””˜–ž•›–’”™“”—‘—’”›“Š“’“𔓒”””˜š™‘””””•ž””•“–•“–”””—““™“”š’”™œš‘–“”””’”“•“”–“—“–””“‘”“˜”–”’“”“£™Ž”“’””’”›”˜–””˜”“˜œ”‘–˜“”“œš—•””–“•—’’˜”’™–”’’”–‘“‘–‘“—“–’“‘š—“”ž‘”“••‘Ž’”’“”“”’•”•˜“”“’““”“œ”••›“‘¤–“’ŽŽ–•–“’˜•’“—ˆ”•’“”•˜Ž‘•”˜•–”™”–“šœ’’’•”’’¡””’“‘•œ‘“’Ž˜•›”“‘‘•““Ž“”Ÿ““•’ˆ‹“’””““’“—”•“‘‘‘–Ž”““••“““‘˜Ž—“˜”“‘”™’—ޓЕ–Ž“•𔕓““”Œ“™”‹““˜™““‘”“™—“Ž—•“—™•”—–”’”‘›Ž–‘““’–“—•—–“Œ”•“”‘™–—“““”•’’“”“’˜’•“”›”“’””Ž“”““”•”“•œ”–š’••–’™‘“‘”•—’“‘’“”•’’“”‘“™•–—“Œ’–‘“—”˜“••“ˆ“–‘’’•”““›’•“”“““‘““’‘•–“”“‘’—”˜““““•““•ŒŒ–˜Œ’“”“—“—“Œ•’”›“‘‘—’”——“”“•“’““‘“’Ž—”–’“–’•‘“”‘––’‘“”Ž“’“”’“’““‘“”““““’•“’™™”•’’•“”“–””‘‘Œ–”‘“•’“““’”“’–––’“˜–•Ž•¡“•“••”•’”••””™””–”˜””””••––”””•—•”””•”—””‘””–”“™—˜”•™–•••”••”“—“’”—“”–••’–•””¡•””•””“—““••’”™””“”••Ž•—”–•’–›’Ž••‘‘”–•”••–••”™Ÿ”•””•••’””•𔗔𕔔’™•—–••””•š“”•”•˜–›”••””’””••›””š””›••”’”•••••˜”–”•—”••‘‘””˜—•”•”““””•‘“”’”–••”••”••™”••”””Ÿ•𖔔𖓗—•“••››˜”— “•”””—’™–”˜˜¡”–“•–”””””•š•’›•“––Ž”—”••”“–˜”œ”™—–””š˜•–••‘”•–””Ÿ•”•™”š””—“–›—““—”””“–——•””“œ“—”–––•š””˜œ–š•–”“””—””˜’•••“œ”””“”“ž”“š•”‘“š‡œ•””•”–’”•””– “““—”—”˜››˜—”•‘“•–••œœ› ”•””—”“™”—”–”””–—••–”™—–œ˜•—”•“”“˜”™™—š™™•”–Œ–”˜™˜˜ž˜“––“™”””“““–œ“˜’™™•‘•”•š—”•—™–—“˜–”““›““–’›™–”˜””˜’š–“”¢–œ•˜™—“›””’“’””—™Ž“š™’“–—™–’–”“––•™”—˜““‘–˜’—™’“š‘››““™“˜”™‘“œ™’•—–““”˜““–—–•—š“““—“—•“—œ“•š“••ž¦•”˜“““•’—–“““—”’šš“’”™Ž˜–™“”‘•—“–—Œ’˜Œ“‘“”–“Ÿ˜š™“—–““‘Ž•’–˜“œ”—•’™•“Žœ”“–š™œ‘“ž”““’ ”“™˜–˜—›—–•”˜‘•“•””‘Œš——’–“–“”“›–™“”š’”˜”œ•—””–”“•’—š™Ž™–”™”““”•‘œ“›”˜”š‘“”™”’”—˜›‰”–šš•”••’”—•”˜”‹••”’””•”——™‘”–”“™“”—‹š•’”™š––œŸ“““‘“””ŽŒ—•’““”’“–““‘—••”–‘—š’ž¢”””•’–’“”’˜“œ’”’‘””™š”•’–›ˆŽ””“”¡”—’“‘”˜š”–˜““•™”Œ‘—–•¢‘•”•›–”Ž•”–››’•”•“”›—˜“”—š—––•›•”—“““–—•—–˜—˜˜”“—–––••–””—•š—–”•’–—•”˜””–“——˜•——–’•˜“”“•—–—–‘—”—–”•”–”˜—••”••”–––”–•–™•——”“’“‘——•–”˜–”•˜——–”–”–“•”—˜–”””˜™”—“•”–”˜—””—–—––•—”•”š””•”––“–’”“”›Š—˜–”•”•–•—””“––“•—•–•——–––”–”–––—”˜—–•”•”––”•–––”––””–”–”—•’”™’–•———•—˜”–“—•˜–˜•“”–‘””———–’—“–—”•”š•”””•”ž˜“•”’—”œ••–”˜“•–œ’••”“’““””š””••—••–“•—Ÿ”•“”“—–••˜—””––•””—‘”—”•“””—”””–š•Š”•””’”Œ‘š••–”ž”’“•“•“”—‘”“•“–“”—‘””–”‘”Ž””””‘”””••ž•‘––”’”š””–””“–”””•›¤•™š”””•”“””“™˜”–•”š‘•”–˜—”™“’’”–œ”•˜‘”””•—”ž—•—”—•””’–”’š–”—“•’––””™”˜’——˜”“’‘”“–•”–—–—›˜–•””Ÿ”—“š•”Ž“‘œ•”“’•‘‘—”•““Ž’”‘•”—”œ’™“””””””›—•”š™–•”‘’”•““Ž•˜—”—–‘””••”•“—š”–‘””“–”““•“’•”™˜”–“•”™”’›˜”‘”’“›Ž”‘”—‘–”–˜”—™“”‘””—””˜ ‘•𙕔”—””—”’•”’˜””——’”™“”””““›–””’—˜‘“”—““˜•—””“–•‘•™–”—’”‘””—”œ˜”›”‘—””““‘“—••™˜“•”“–”••”•š–”˜—”’””“—”•“˜”“•”–˜”Œ‹’™•—”—•ž—œ—•“›–““—•”›—–˜˜ ˜š”–“”””””””˜‘’‘šš”–•™”Œ•””“˜™’˜”˜™‘””–’žš’™–””—–“’–•“•™’›š•™“š’˜˜˜˜”””“”“•—–””›““””•”˜™¢™¡—”—”—˜””—Ž•™–›”””›”’”˜˜”¢”’Œ‘—›”””””’—•””™Ž”””•“š’—œ–”‘‘˜Ž–“™›˜™”˜”’”” ˜“”“—””‘–—ŽŽ•Ž•‘––“”–””“”˜‘–›˜”’•“•”””’””—™œ‘——”Ž“““““–™™’–””˜˜”““”˜’•‰”•”–’–”—••‘””””“––’“›œ™“’’–•””œ“”“’’—”“–“”›–ž–‹”’–•••–“•’”””“š‘“’˜”––—’—–”’””“¡””“”•˜––”•’‘ž™“’““ž”””Ž¡’—ž‘”””š“’’“š“—•“”’’™˜”œ™””””•“””•œ––™””“š””““œ‘˜“–˜—˜’𔓔“™”‹“’‘”—™””‘—•š“’œ”•””•’””——”˜—™š”’–”—”’‘—”’’”•“’˜—ž”˜Ÿ”•”š”–•–”’”˜”œ“š–›•š•›š•—˜–””“šš•”–””™–”Ÿš•”ž–•”–›”–—••—™•–”š–›•”–š’–•”•–”•–˜•›š•›’——œ”ŸšŸ–™•—”–••›•™–›”˜š‹Ÿ”𔕔–””—“–”—•”•””™””™”‘™••š”””–”•—”“›™š”šš—˜™••”•”˜›•š””“—•™”›”–œ–“˜š™””–”™›—••••”•”–•”šš™””“˜””˜‘””—”””–”——•™š•”–”•––•——–“””Ÿ•”›˜›™”–••””‘—““””“”–—Ÿ•—”””•“”–—••™•“ ž•—”™’–””“””•”™”žŽ•”“—–˜”–—œ–”˜š—”–š—“”—˜œ›•˜š”›——™——˜–•–˜“˜–š—–——””•–—’˜™”—˜””“•˜—–““˜”–•›”™“”“˜˜””—£”—’—””•”˜“”“”––•›”––™’”•”””•–”•””—š—”š””—•˜“—’”‘™™”—“”•”•—”””—–”””›—”–—””•”˜”–ž•“•”“˜™•–”“—”‘–“ž˜•–’˜—”“–œ”—•–•‘—“‹“‘‘™“““—Ž¤š“Ž¡“——˜˜›—’˜‹•Ÿ”Ž˜—”“‘““’‘”—¥–’ž•“‘”“›••š˜—””“š’““˜š—’”™ž™”“–•”™–”–•Ž™“”’›ˆ’¤“š””’š•’ ”‘“—’Œ”‘“”“’™˜“žœ‘”ª“’“’Ž““•‘’š›’““Ÿ““’“Ž™”—”••”šš”““’Ž•œ“”›•“•›š”—’˜˜š–˜“–“œ“™”— ’‘“ž””‘“™›•““˜““•‘”’“‘•”‘™”’•–”‘”“¡—žœœ—–“‘‘™“—››Ÿ’”™–Ž•“––””•••””•™–••••”••–••”‘—”‰•–•”•–•••”•••—•”–••–•‰•”’•–Š•••••–••”•••˜•›”””•••••”•”–”•—•–•–“•”••”•••‘•––”•”–›”•••”•–••”–”””•”•••••–“™•””••••˜•–’•š•—•••—””Ž”•••••”•”–••––•–••••••›––”•”•”••—“—–•”•••””•˜––••š—•••™”••”•••›••™”••–•”•”•””•—–”˜•”Ÿ••••––••••”ž––”•—••”–•›Ÿ”–¢–––‘–”–•–”}–¤”–”––””•””•¢‘——––˜•Œ–—¡”Ÿ„••–—’¥”—•—””©¦“““””’’–—ª•••‘•–”•—”‘—”–”•”–––œ–”•–¡‘•”•ž—™“”œ”•–”—””“””–—£”˜˜–”””𔑤”Ÿ”¤•z”œ§•Ÿ˜•”•”•———””ž©—œ˜—”“”•¢––—””—–••—ž£•”””•“”˜––’”˜¥””’‰”••’””“¢–‘—–”•“•–ž•˜™¥¯™¦›”—®˜”–—–—¢’•–•””“œ—•‘“˜–š™”•“˜’“™’”–—•œ“–—ž•“”’˜–‘“”›““”“‘˜•–—“œ“”““ž•Ÿ”“”˜“”™‘’“–’—˜˜˜™“”˜”˜‘’–›–•“”‰–”š”š“•“š’˜•—“”¢”˜’’“™”–˜’—“—–“””•““˜˜“””–”›––“•”™“™•“””œ““‘•˜’ª””“’’”“”‘˜—––”–’“‘––•”˜”™™’”ŽŽ•–“”‘š“••žš“‘–““•›—“’’Ž”—“””’””›””˜——“ž’’”“•›˜“““—™š—”˜”Ž“™˜”ž—“˜•”™–”–•”•––˜’—‹‰––”Ž›“•””’””––˜–˜—•–ž’Œ–”“–˜–”—•”——–’”’“‰‘”™š–”’•–——“”‘˜•“’‘•“–”–’ž•‘–™–””•š””••’–”™”—”‘–•”“”“””˜Ž“”•Ž–”“””“‘”™––“–”‘’”œ—•”””–”™”””’’Ž“œ“”›”˜“”–“”‘–—š“–’™–”•”•Ž”‹””™”š•””’–Ž™“Ž””““”–”’‘•š’™‹‘˜”—••””š’”•—–•™–•œ’””“˜—”™“›—š•“›–””“––”Œ’˜¡–—”“•”™””‘””’““–•‘ –“‘•”’”’——˜••”™“‘””—”–•”‘”‘–”—™˜”•—”ž“–ŽŽ˜—“”˜•’•——™”™”—”˜•˜“•””˜”–•Ÿ”™”–›””•¥”˜œ™••”’”•–”—’––Œ”’“™—’”•”–”›š””’›‘š–”š–•–˜”—””•š‘–™›œ——Š”‘”” ”—˜””˜””‘‹—–———”Œ’—“–˜•”–”›•…—“”–’’”•‘’”𙑗”“—œ”›”š—•”™””‘•‘”˜”•¡•ž•”–•––’ž–””›–•””””•–™“—˜™••Ž“–—””™“—”””•š•””’¡›˜—•”””˜•–””—”ª•––”—’“’—”›—”“”š••–‘””——“––™•‘š–”‘“¡–’””™”˜–””•—œ–œ‘–”””””—“”“”“•—”•’“‰•—“”””–•—•””–‘•˜‘••—”•”••—”š—“–”•– ••’”””•–”–›–”œ“”””••”–“”””•–‘“•”””‘”—’“”’“•”“”˜’–”“•”–“’˜••”–’—•””‘“•–••”“•”–•˜•–’”—”–”Ž•””””˜”””™•”—”•–”•“”—˜‘’••–””•’“”—™“˜›’‘””Ž–””™”™”“””””§”‘“”’“•”•—˜•”””•”—“š•–““—’—–”–•Ÿ•œ”’”“–”””——•–’•”•”˜”š–”––™””—–•­”–—””””••””—•–”Œ••–””—•••”œ”’‘”•›’–•’”’””˜”š•Œ“””–””””•’“’’”˜—•–••””™š”‘’’’•˜™œ™˜”—•“”””••••“‘›”—˜™–—–”™˜–š”—”™š”¥–•••—–••‰”—”—•—””–””•šš–›•—–““–’”“€˜–˜—“™””–•””›–Ÿˆš—˜‘”““”˜™˜™–•—”‹•“ž–“–”–••—–•““”–“›–•—–“‘›””–˜“”›Ž”ž”š””–˜”–œœ–”””Ÿ””š”’š˜—”–—”–••”””—˜”””•œ›˜œ•”›•••–—–”˜”šœ•˜›™˜”””””˜”š—˜””š””—˜’‘˜˜‘””•”–“–•””—“–•–—–••“”•¡•”–—•—’“š™™””””—–””˜–˜—›”“˜–œ–’–“—•—•–’”“˜––””””——“–—˜•—–”“—””–•”——•™”˜—–””—–‡–”˜‘”–––™•––—––”Ž•’˜’š‹–”•–—•–—™•”•”•“””“•–—”–”œ˜„–›”œ”Ž—””˜Š˜•˜’˜””””—•”—•š•™”•“”–—”•”––——””“–•˜—–•˜––•–˜–”–””›”–£•–—•”””•’”ž—•›”––””–––”––—”˜˜–—–––””‰”––”™˜˜––“–”–—”——–—››––›”–“–””–”š––—–œ•”š•”•–——•›•”‘—“”•—•—””•””˜–—–—˜––”¡”’“”•›™—–•—™”˜™Ž””š˜––‘—˜š”–š–œš—••”“š˜”–‘™“•–“𔣔•™•š””˜“•””” œ–‘”™•–—”–””‘””– ™˜–‘—”””“”••”™”™”‘”“’—’•“”””˜”œ”””˜œ–’•’”‘—˜œ–—“”˜“—š•“ –––”’”•–”ž–š—”œ˜””˜Ž—“”——”™—“™™“—”œ–”—’›—™˜™˜œ”—›”•–•˜•—›˜””“›”””’“–’“”˜””“˜••••”•“•—–”“”–—””“””“š“–—”“™•”–•””š”””˜–”—˜‘””—”ž”‹•”—””“–”•–”—š–—””’–ž”›”œ”““–—™“•”—”œ›˜’‘…œ—ˆ””“”•š•–”•””›””—”Œ“•“œ”””–””˜”š˜™”›”™™”™”‘”””””•”–””‹–”—”—”––”œš˜”—””’——’’™Œ”””•“”˜˜•”Ž•””‘“”—›…’”•˜˜”“–””•””“™”•—–•‘—“”˜™“”—˜–šž”’”“”—“˜•™–”–””Ÿ”•˜—š”™”ž“–š“›•”“””•””“””˜–•š˜•˜›“”“”•Ž•”œ™“’”˜›˜””—”Ž•••”“”““˜“™˜•š›–›˜”’‘‘œ’Œ–”Œ“–˜˜œ’””•”˜’““”˜™ˆ–””•”˜•™”“””–””Ÿ•”š•‘”””𔓔”–™™ ”™‘˜˜™””””œ–•™””›’”“’”–šŸ’šž™”“”‘•™™¥œ—š™”•”œ””’™Ÿ–”–’””“‘”“˜“𔓕Ÿ’‘˜š”’•”–“’–•™’”–’”•–”š›Ÿ–™“•˜”–•˜“–•”“Ÿ’•–•”••••”–•’•‹”•’¤••””‘”•””’””””™“–“•”˜š”””™ž’–”•””’”“”••–—”’Ž”—“”•””–””••“›””Ž•”•”“–”’•–””–”ˆ””•–”–•”•–“”—“•””œ””•¢”›‘•”–”‘”Ž•”’”””’”””–”•Œ”””••••””””˜•Ž••›••””••”••–𔕢—•”š”Ž””–”’•“•”’•””•”¡••‘›““•••••””¡˜”’”Š••–“”””–Ž™””•”••–‰•›”“˜˜“›•••”•—””—™–””“”›“›—“œ˜–””•”—””•””˜’“—˜•”™™’”“—”‘˜””™˜•˜”•“˜•””—•“””–”•””•–“”›–š•›”›–ž“–—“’”“’•––•˜Ÿ”•˜“•“—š”’•–”””—’š••”•”““””“˜‹–•–•””””””“”––——œ”•’–’š••”””—˜–˜””“–––›”•˜”–”—””–›–•—–““”˜š”•”“–”™–”•”š–””—”•˜“–””–’—–•š˜”—–””–••–”“”–•”•”–”•“”™—–•”™•—“—•”–”•–”–“””•“’“•””˜“š—”——•••—•”•••””•˜—”——–•–•””””—•–“–––˜••–˜•”™—¢–•••••––•”˜””•š˜•–”‘˜Ž”—–•—•‘–••”–”–””“–•”˜–•’›•”“—–—–—”–”””””“–—–•”••”•–”••”“–—–‘•™’—”–””••”•—””•—–•—••••’•””—–•’••””•’”–—‘””•“””›•–•”–—””˜–””•“•”•™—–—”•“””•—”–“—œœ—˜”—Ÿ–”“–”™˜–••””ޔޓ‘˜”•”–˜¤””—¡•™“Ž”˜’†––¡“ ”•“–™””–””’—”Š ’˜”‘…•’Œ””•”™”””‘–ˆ””›–™”‘’‘“”—•Œ—™˜’›™˜•”–‘’‘™¨”œ”’”“— “”›“¥“—“–Ž‘œ¢‘”—š–•˜”–””Ÿ””——•‘•—œ”””•””’”™–ƒ”’“–Ž––”””’”•™””‘—˜–š”””“–ž’””““‹›‹¦ž€”“”‹—””••”“š””“®–™•—”˜‘’’Ž’”•—”˜’–˜–Ÿ‘œ’”—•–”Ž”‘ •Œ––““™••‘™“•Ž–™—””“‘‘‘••›Œ“𔑕—””“““–™–‘™˜•’š’“––—’’”•“š—Ž’“––¡”—’‘•”˜–”œ˜‘“Ž‘•”‘“Ž‘“”’”˜’”’˜˜‘“”’ž’”˜––”’“˜œ“•“–“–“”“”’§–Ž‘–””“•“ž–“’—’—““”•–—¥•”““Ž““““–”¡—’“Ž‘’’–“–’–‘’¡˜œ”–““𓦓”“’˜““’˜‘”›“”’“””Œ”“”˜””’––Ÿ”𙕔“’“”“‘•˜•“¡“ž’“Ž–“”˜’ ••“™“Ž‘•“˜”’”’••”“—Š’”“”““’”›“›—™™””ª–“—••‘˜“›“—™‘’“—””˜…”“‰“•”•”–”—’–˜›—”Ÿ‘˜š“““”––•”“‘“žŠ•‘˜ˆŽ•–š“•›‘”“‘“’“” ““˜Œƒ“––š“’“Ž“˜’“——‘ “Ž™‘•‡““““”“”““’—‘•›”š—˜•˜›Š““–”˜“”—”“——““’’“”–—“–—““‘–“—“š“‘––’’•˜“”•”•““•¢—˜‘—““’•–“˜˜•š•—’—’“•“š’“ ——”””””’›“’“”’Ÿ‘“’’”““Ÿ“’““—““’•““Ÿš”“—’œ““•š˜’’“Ÿ“““””’“”•Šš˜–•š“‘”“›”“˜“’’’’“˜”””—‘–““”›“•’“““’“—“•“˜““—”“’’™“Š™“–“’“““›’š’“”“”“”““’’”“›“”“—œ’‹™“““““ž’““—”œ•¢ž“›’’—“““““” –“’’˜”“–“““’¥“Š”›“›•““””’““œ•”Š•‘”•”’“™–”¡’ ’’‘š”–““‘–“’“”“’£œš”–Ÿ—™––”˜—›™Ÿž”‰¢”˜–––’–“ƒ•—’–¤”•”•”””—””••›•”™˜”–‹•–…”•u–•””š””—Œ”” œŒ“˜”‘”“˜•“¢”“”…–•”‘‘ƒš¥š˜”–”•–––’•”ž••˜—Š˜Œ”—“”¤œž•–”˜”’•””•“±––••”“”›”™”‹’•‰”’“•­››“”•”–•˜”””•£’“”•••œ”™—––”Ÿ••”–˜ ¡–ˆ”•”•œ”ž•¤”™˜””˜’”••”—”•‹–““•””“”›Š™–˜¡—šž“”–ˆ–”“••—‘–•“”‘“œ–”—•–’›˜“™‘Ž—–“––’””•––𔓗••””•”“’š–™”••“”’‘“šž””–•“•”•œ““”™™˜—–“””™–”—“”’˜’”¦˜Œ’• “š”’”—–•˜’—”˜”™–—Ž–š—”•šš•”’““““™“”—Ÿ•‘‘˜““””“˜”““—‘“ž”••“‘••”““™“‘–“”—˜’‘Ž”˜‘”••™˜”’—‘”’’”š“˜“–”•’“•—˜“–““˜””“•“””˜•”˜—’“”›””•’˜•”œšš™›“’Ž“““••–›””—‘“Ÿ•””›–“•Ž–—–’——“•“•›•–˜˜–—•“›•”“”“Ž“““——˜š™•›•”•““–“”‘˜š““‘“—’“š•—‰›˜™“•““Ž‘“”•‘••“•™•’•˜“““–•—˜”“•Ž–‘—”•˜•›•““™’” ‹“Œ“•”“““—Š“–˜“”“““—“•“‘›˜“•“–”“œ™““““’šš“““™Ž”œŽ”’•ššš™“Š””–”˜’–˜”“›“”“šš™–“•—““”š˜—•‹ž“–“™“š˜‘“ˆ—“–˜—–“••˜•˜““—™“˜˜œ—–•’‰”••œ•—““˜Ÿ–œ’”“–“–˜—“—””“–•–¦”’”•žš”””’”“”•”—˜œ˜••Ÿ•““™ ”•—š•”˜––““•‘Š”••“™œ— ’—••–“”“”¦“’—‘“•”—“”—œ–”•“’•œ•““•—›‘—“•“Ÿ”–›“˜“’’““˜Ÿ~•–—•“•”–“™—““‘•–“”’—““””“—••–“”’•¡•””œ••‘••˜“’”›–”‡–”•œ“””––“‹˜š˜“—“““’‘˜“˜ž•“›’”’•––”””’”•šŸ“–”‘‘“–•™“–—˜”—–––“““’’’“—˜–˜’•””–•”’”—”š•˜ž””“•›•“““•““”””””’–••““’“–•ž–“•—–“•—’’“™”¢–•¡Ÿ›“ •”“”–”“’”¡•’Ž”’’–“Ž’˜•˜”“”“š“•’”›—–˜“¡““ž”žŸ“œ“•““•“’“”’”“”“•“ š“Ž“’”Œ“˜œ”’›““““”™”““”š˜“’“”““”˜”••“”Ÿ™•”‰”“–‹“¡“•““”˜˜““—“““–™•“¡“š•””“•”“’š”—™——¡“•”••“‘—™“•”—”‡‘’“–”••”•’“›œšš“–™’”›”–—–•”’–“•‘”›™—””˜”“˜–•˜˜–—””™–“——•–—–žŽ”•™™“”‘˜”™›˜”šŸ˜—”˜””“–•””•–”•“”™”““Ÿ˜–—”–”˜›’—”•Ž’›’›”Œ›“•”“–““—“”šž›˜•—““”˜“Ÿ““—™””•”˜–˜’‘š””“œ–””“”™Ž”•”˜”¢”—”˜––”•š•—”—–•••’“—”—•“Œ•Ž›“”‘““•––™’Ÿ“–œ‘——’—”˜•”™—š•œ˜•’––“’–”“•–—–••ž›—”œ‘ž™”™œ–’™”“’—†—“™™’›”—™Ž•“”“”•š””™”“˜—ž‘Œš“™“—””“¡•›—™”—”™š˜•”—•˜•œ––”–››””œ—–Š”“””›—“‘‘’—””•—”‘–˜”–•’œ•ž”••—‘“”š‘Œ•–œ”•”—˜””™“œ––’”—”œ“™““˜™’—~”™“œ–”›Ÿ”””–š™”“”“—’š›’”’˜˜‘–˜”Œ•˜”˜˜‘——–ˆ”˜”Ÿ•“”“™”›•””•Ž”™šŽ”ž––“š˜—”œ ”š‘¡™”“Ÿ•””“˜—”™™–œž—œ‘”–’•”˜—”””“——”””˜”˜”œ”–”•˜”—š””””›™•””””˜˜”“š“”™—•”–“”˜ˆ“”œ•–™””˜”•”™—”–•””•”–”™”•—””›˜š”•’˜“•”ž”•””–˜Ÿ•””˜–“””’‘“””–ž•™––”“””””™“˜””™”””•””—”“˜œ—š”—’“–˜”””•”ž–”•””™–““”—””™–Ÿ™™›”–”••—‘”–˜˜”””˜“”ˆ—–””žš””š’”’œ””“›•šŸ˜—”–•””–””“˜“–”˜”•••”‘™”˜ƒ•”–“›“‰“˜“”–•“’•”’Ž•‘”“•—•””–’”™•˜–””‘””“–›•—Ÿ—’‡–›–”””—•—’™”˜’““”•–™‘˜›’”••”˜‘–‘–‘—“—“‘—›¥Œ™”’”‡“˜•”–’‘”Ž’Ž“•“œ”–™”˜’’¥ ”’“•š””“’“—š“”””““”””—’’”——Ž˜“”–”””“––œ””Š•——”’“–•’””–““––•”›ŠŽ’’”“”—–”Š”’•”‰”“”–™¡“’œž”•–••”—•”•Ž”™“œœ’“—“”•“š”™•—‘š‘Ÿ •—–••——••••”˜˜•“”•—•––”–”–—”˜•—•”—”–••••••”•š–”•—–“”˜”•••••—”–•—••”•–——•–•””•”•—•”–•—•––•”•”‘•–•”•“—•––•”••••”–••——“”™••––•–––••••–••””™••”••••”••”•’–”—•–•“‘”˜•••••–”—••–•”””•••••—•—–••–”•––”••–••”•—••“–”••™—••–”•”•–••””—•˜™••œ•••”””—“”˜—••–•—•˜–—•Š””••“––’’—›“—Ž••œ™“–—š““Ÿ•œ™˜Ÿ”’›””“•—”“”““›Š•™‘“—‘œ•“œŠ–™›–›“™•™’“ž–“¡™š’“—˜”›“›‘–œ’”’£‘›’š“’“œ•šš™•“‘•–‘—“—™”—™“˜™›“Ž““š““–†ˆ˜”𔓓‘“™•“•—ž–“’Ž•œ© “““““Ž˜““ŸŒ˜—š“šžŸ›–“‘—”˜ž’‹šž•“š“—’“™Ÿ”‘“™““•’““”–—•“ˆœ‘œ›š“•–”–•—”–’•–”“’™“œ›•šŸ—“”—˜”—›”•””›ž¡”œ•—••—”“”’˜““–¢””•˜—”””””‘š“˜™”“𕓔𖔕ޔ”•˜”£”–˜•”˜œ’”Ž••””””“•™”•—–•“”—“ ”›•”•’•—˜˜š—”•˜œ™œ˜–—”” ¢–––“”•””–””š–ª•””•”•”“¡”›¡”””’–“œš”””””•š””˜œ“˜””””–—›–™ž”™•”•‘˜ž¢˜š“”””’’”›ž””˜””—’”™”“””š•Ÿ•š””–•”•–••››¡ ™“””—””š˜˜” ˜””’”•”‰”“•”–›™‘˜—““—”•’•••Š”–‘ •–”‘–•“””—”“––¢•—’ —•”‘“”–šš”•”–”•”“””—–•š–‘”“›–“””™”š“•””—”‘–“•”–”–•’•”””•”–‘”“Ž™’——””•—–”•”””’””””Žš•˜™””•”“”›•””••˜”•“–˜“–ž”””””—”””–—š•˜”” “”–•••”›”•“”••”–•™”™”•˜”“•‘—”™—””–™–•“‘’”ž••––””””˜”›”™˜”•”˜”—”–Š˜””–——Ž–——ž”ž”™‘–“—–¡”›”‰ž”’“™”™’Ž•š”š•”’““–““–Ž– ” œ’ž“Ÿ‘“”˜”—•œ““–’’“¤–¢”œ•–“™Ÿ—ž”˜“—š”‘œ“Ž‘©‘˜¢”œ“ž’”’š—˜”“ž“ ––“œ¤’—š—“œ˜“›““““Œ““™‚““Ÿ“”“š“œ“–‹”“”–šŽšœ™“““Ž“™œ““‘¡—–“š“’•’£—”‰“•”›“—˜‹˜“““•“Ÿ”Œ‘“žŸ““šžš“¤–’œ”’™•˜“’–“‘¥–­•–™–“Ž˜“™’–˜ˆ“š˜š”’š™––•”–—”•™™”™””™”•”””œ—•“¢”˜””•••””–”””›–••–•–“•—–”••——“”—˜”””’””˜“–›””•””——”™””—•“”•”‘”•Š˜™˜””–“™“—•–””›• “”–™š—ž’•”—™˜–“—”𔕕”””›œ”œ”•”•”‹”š™”“”˜““”•“””–—”””“•—•””––™””˜””““••”””˜––˜”•““”“”””’—””•”“•””•˜•–•“•”––“•—•””•”–—••—“˜’•””™””””•ž•‘–“™’†‘š“––Žž–“—˜—™’”™“—“—’€—””–•“›““‘““–š”—›œ•–•‡’“˜•˜”œ—–“—˜’“——šŽ™œ—¦“™‘•˜–“’”—•“–“’””‘˜“’›“Œ˜Ÿ•“”“‹•””–‡’œ“›š†—¡œ’˜“—““žš”•’—˜“““˜“‘‘“—šŽ“““š–‹““““™‘›–““’’”˜›”“˜™™š–‘•“““š™–›œ”“–“•““•• —“–““–‹˜™—£š“‘”‘•œŒ—“”˜’˜’œ•¡––“‘’—“•–˜œ‘›š”—’––“˜“ž—™—š–”’›‹‘•˜—™™—œ–•™””˜•Ž””•”“–‹žš›•›”›••“ˆ–—•–œœ”–—Ž’”š“‘•˜™”›œ–˜•—”•Ž—™”—¤Ž“—”•‘™ž™š“”ž’ “”“•¤“ž¤”˜™•—’“•“”’“”’“””‘—”“”—“Ÿ‘“–•—”‹‘™£•”””ŠŽ““”Š¡Ž”š•˜š“•“‘–™Ž—˜™“—”““™˜™””“““’•’‹–¢”“”—˜“•”Ž”“˜‘–™ž’–•˜‘“”“™“–•ž›œ”›—“”›“•”””’™Žž“—”“—“–”—““–‘—“–’”•›””””—”“•“š—™œ‘™”•’¦’“˜—”“•£›”–˜Ž”“›‘”“‹š–””’•š–”•—š˜“”•ŒŸ”•“–”“’—‘ ”˜‘”—’ ‘’“•˜”•“•”–—“–“”“””¡„•“”””””“˜““–”’•™”“’Š•™˜”“”“’ž‘“”œ˜”•””•—•˜”“•’–Ÿ˜˜—””˜““Š”“‘“œ•˜”‘™““–›’””œ£“’“•––—•”•”’“— ŽŒ‘’“–š“”˜š•–œš— •’’••š—•“““¢••”˜–•›•—•š–‘˜•–—š••”—”••••”˜š‘—–’‘˜š‰•™•”—¡’•–˜•”•˜—”””•˜‘•“”“–•””—”™—“™”’–“”™”Ž•“”“—•–“”𛑓•“•œ‘š“–”‘”“•˜’”—•’”’”•›”•›–˜““œ•••“”’˜”˜–˜š•”’›”˜“•••—•”𔕕”“˜’˜•‘”—”›˜˜•“”•”–š•’•›“”••–””–šŽ“•“•”’“–™™’’•–˜š•’—˜•–“•’–”—“–˜––˜•–™•”š˜™™•”’”‘”˜‘•–•””•˜¡–”•”Ž›–“•˜‘Ž–“Ž“Ÿ””’•š•”•””•™–”––”›”•˜”š“–•”’‘”‘›’””žœ›•”•”””““—•™””—‰–’”›™›Š—ž’–”—–“›–——””“œ•˜‘š——£–”™ž˜›—’”’””™””–‘••––”””™””›”™”†”––—œ’–—”•””š“š””ž•–•™•——‘ —“Ž”•–••––‘ ”—”•”–•”–‘‘—””””” £–”™Ž“”—›‘––”—’”“š“–—œ›¦š”•–˜”—‘˜”ˆŠ”˜”–™••”•’™–™˜”˜”•“•–””–š“–£•”•””‘””–””“‘•Ž”’™•’}•“‡”Še”—•“˜””‘ ””މ‚”•—•–”˜”˜Š’–®˜”‘”’‘’–“”•”|••—‘’““”“™”–’•’˜•—”˜¬’‘’”””•‘””“—ˆ•”˜“”””™”˜˜”…“‘“””’—v—š””””•””””““’“”“–“””“”…—™’”’Œ•“”œ”˜”’›”–’””Ÿ•””›™••”–’”˜’’”—““”–••™š–—‹…“ŒŽ””‹—”‘”“n–••–•”•”••••••••”–•”•”–•••••••••”•“•••••••••••”•”•••••—•”•••—•••••”••••••”•”•••••••••••”•‘••••”•””•—•••—”••••””••””•–•••—˜–••—“••”••••••••••••”••••••••“•”””•–••“•š“•••••••••••””••••••••”•••••”••••—””•”•••””•–•“••’“••––•—••••””••”•••••••”•””—••”•••”••••••š–•••”•𔕗•”‘’–ž•–”˜™””›––’˜˜••“™••”–™˜—•”•””š˜™“—•˜˜”¡“”•“—“–™–•”š•–”–—”•’–Ž”•™™‘–œ•—“–™“”œ—˜–•“”˜”™”˜™˜•”‘–—œ”—š–˜›‹”˜–—˜•™”•””•””™“—“™”””“”“—”“š•––”——ž–—œ—”•”˜—•””˜——“š˜••™”š˜—”’–”–™™”™˜’”“”š•”˜’•”•—””š–“•š‘”š–—–•˜””•”˜–›–£–™™—•””—”ž™ž—”˜˜”‘”™––“šš”“””œ–˜””š–—•”–“›’‘™“•–˜”“””˜”””””™—”š”””˜š•”•—””•””•›••”šœ–“”š”–•›”””””“˜”˜˜•›””˜”–—ŸŒ“–“™”“”••™——•”“”£›“•‘™•‘™“”œŽ–˜•–”–””–””˜•–”“˜”””“””””‘—Š˜™”—”›—˜•”•”’™•œ””–™•—”˜””•—˜–—’”•–“•šš›“šš‘”””—“”­—“–”•˜”””ޕޓ””––™‘––™””•”“’’•“š—•”—Ÿ•”›™—™“˜””•”›“–’”™”–“•–•”‘—–“‘“˜“–”’š”’•™”–˜‘””“””—œ’–˜˜˜˜›”“Ž’“““—˜–”›–‘“”“Ž“˜–œŽ”—”—‘”•””‰“’”•‘””—–““””Œ’–™–•’”–“Ÿ’“’’Ž–ž”›””Žœ”“““‘“”•Œ‘“’”””™“›““—–”ž”‘”•š›¡˜”””’‘–“”’˜’’“™”š‘”–““š“—“‘™“™””˜›“”—”•“”ž—“•”Ž–““”“¡œ••Ž˜‘”–—”•”ŒŽŒœ‘”‘“–Ž•”“”•”š———“–ªŒ˜’“—”†ž•˜”–˜’ä”w—‘–™–“ŠC”™”‹ ‘’””“””—“›¢‘–¦‘•–””ŽŸ’’ž˜”•ž™””™”‰CŸ—•’”‘~–Ÿ—˜“™”˜–“]•›Žš€›”•”Ÿ”™•™–”•“Ÿ”–‘’Ž’”——;™…‘”§”u—””‘˜«”Ÿ”“”“”•”••”~–”–®””•ˆ¦™™””””’”“””–™•—¥›”¯—–”•˜“”•–‹®”“Ÿ“•–ž””••” –™¢”©›””’–‰‘’Œ¤“Š–“•—“”‹‰”’—ˆŽ˜“—„˜“”—ª˜””’••‡• –•”•˜—“”•”•š•“š””•–’““•“’•–”’Ž”™”’”“’””–””’—š–•™’”““”•”•—•’““–•”””™””š—š••“•”•’“™—““““””””—”“™’™‘•”’”––••“” •™”—–•–š‘–””–™˜”†—”—”‘’””””˜“—’””””—”“””•’–”–”™—–Ž˜”””””’“–”””—–—˜“””••”˜”•“”––”™““œš›“™”“”’š”›”‘—”š–”””˜–“’‹—”––”•”’”œ‘”•”’›•™˜š™˜”“˜“”””–•–’–“—”—˜’•“ޔޖ™–”ž••œ•”——–—™••”••”‘‘••“”™”“•”••“œŠ”˜˜’•𓙢—œ—–”—”––•”“™’š”’˜š“•”™–•’–””“‰–”™™•–”—”—–•”š•”›˜š•”šš““˜—•“™’”–…˜“”“‘’“””–•••”“”›“•–“œ—›–—”˜••˜™””“••“•“”—–™š˜””—–š—”–”™› •—œ‘˜—–“’”•ޓ𕡛”œ™”“–ž•‘•–•”™˜—•˜—–”–‘“ˆ•Š›—”””™“‘¢˜“”•”–šš”Ž–“–”ŒŽ’’“Œ––‘’“‘’’š“Œ““”“”‘•”‘“—““’“““”“”‘’”••““”“•’“’˜˜•”“˜“““”“”“”’œŒ’‘•“˜“’”’’—’˜““““”“‘—“”“–””•”“““”™”“”›—”˜‘…“““‡“š˜“““”““”¬”“’›”“““’“‘““““’’›“““œ““’‘“”““’ž“““““ž•œ’“•’““““““˜•–—’“›™’“”“’“’›“”“˜™“–“““”–””“’“Ÿ‘“’’’““Š‘““”˜”’–“’“’š—“‘“”••—“˜”•••”›˜”•”•“¢”Ž¥–•‘•š”š•›˜“Ž—œ”“”–’”””””•“¢š•“ž–˜“••”“•“‘š“¡”—™™””£”•‘••“”“–ž”š˜”™šŽ™”š“™—”›”ž”‘”–œ˜›™”™”—–”––ž“™••”ž ••’—””“”—””–“—”’“”””““”—“••›‘”ŽŽ–“•™””””’””–“””ª“““””™•£•Ÿ“”š—“”—”“Ÿ•Ÿ”–”—“”™˜•”¢ž”“”’“™”“”””†š–šœ—”“•”•–“”œ—Ÿ–˜”•”—”˜™›ž••””””“’”“•”™˜™‘–’“ž–Œ‘š••’•˜“–›”—””‘””””““–ž—Š––”’‘•–š“–ª—““”’—“—‘”“™ ˜•””“”“—”—–•’†š•’“‰’—‘Ž”’”“•‘‘’˜“–“”’’—š”™’•“’‘›—“˜“•“•‘““•Ž¡—–“—“”“““Ž—“¦’›‘”–‘—”•œ•“““”Ž’“”—˜˜”•”•‘•™•••“”’–“‘•¢—˜“—“•“£–‘““™““”•š’–“””ŸŽ“—‘•”•””™‘–˜•“œ“‘—“’‹““’“‘‘˜“”˜—•”•Ÿ•—–•—š—–‘•”˜‘•••‘—’—”——’›—“•••–•••‘••–•˜—–˜—––”–™•”™˜–—–—•—–˜••–“œ˜˜”–“••–—–”—“––˜––•––’˜””•—••–”•–•—–•“•“–•–’“™”“—•”’˜––‘•–••—••–‘¤—™˜—•••™•–••–———›••“šŽ–—••••–”—–••••———••™•–”–˜—••—™“––›—’—“•–••˜•™—”’•––••”’–”•˜—•’”–”•—–••‘•™•—˜•’””•”••˜•––—–ž˜™•˜”œ’–”𔕔”Ÿš—”–œ–ž•¡”ž•›Ÿ”šœœ””‘ž˜”””””œ•“™“”¢ š”™™”˜•””›•—”œ™—•”–¤•”•–”•”ž•›•›œ•™˜”—••™•š”——”–Ÿ •‘”–’——’•›““—“”›˜—–—””—””—”” —”™””›””””””š”–˜—Ÿ“”•’–‡žŸ•”””›˜”””—˜••”””“˜žŸœ ¡”’””›Ÿ”£›—”””œ“”Ž “•”œœ””•Ž”™•””•˜Ÿ˜—œœ”“•””—•”–ŸŸ•“”–”“”›Ÿ™–™””’”‘”’˜”›‘••“œ“““—”–’“˜”’’‘’‘“’””–‘›””“””–‘“˜‘•—”’“‡“”’Œ“”˜–™”™–’””‘••‘œ•‘–”‘’’’š“š””•—“œ’¨’‘–’•””™–‡•Ÿ”””˜”–‘•‘““”œ•”’—“““–“”–ˆœ—”’•”“””““•”˜“Œ”““‘•”””™—’”””—•‹“˜””—˜•”’‘”””“—™•Ž•”–”™””œ“”’”š–”“•‹•““™›”Œ—•–—“—”“’”™’—•’“˜”—”’˜’”›–‘–š–œ–”•”—“’•”“’–—–””’•“•“‹“‘“š””—“•”˜’””“””“”“†“•”“”““”•”“”‘˜“”“””””“””’“““’‘“œ“–“™‘“”“‘“”“”–“’—••““”“’“”–“”–”’”’”“•““‘“”•–‘“ž’“—“‘”“”•ž›““ž“““”š““““—““’›”’”˜’”™”””““’‘““”’”’’•”’””“’“”•”ŸŽ“”—”“–“—”“›”’“‘Š”–””””•“•”™…”‘’’”•’””˜”’“”’”—’“““•—”“•””’–‘‘”•œ“—•”–’–•—”’’•˜–•–’•™“–““—“”‘˜––””˜””–“˜”˜™‘•–’˜’”’•–——•š–”––˜–”’”“–•š”—––•Ž–‘” ”—•”‘””’—““–”•”™“–•——”””•‘””˜•–‘•”“—Ž—‘œ””””–””—›™–’”–”•”™”š””’—••›”•–š‡•š””””˜–˜”””“’—‘––”•’—‘•–—”˜”•™––—’–‘”””–•”›–š–”˜”””–”‘’–Ÿ•”˜”••™––”›”™”––‘Ž‘’””™—˜””—––†—™“—”—‘“’•”’”–’’––•–œ‘“–—‘˜˜”™“”–Ž™™””“””“’Ž™›˜–˜“˜˜”“”™’”••™“”’“’”œ”•‘’“•‘••””••‘•›’š”’’”–’•”‹–™–””‘Œ›Ž••”’”Ž› ’”‹”““””š›–’˜”””–”‹—”Œ‰‘”””•…””””—š–””‘“•˜”Œ““ž“—”Ž”›‘”žŠ’–˜“”˜”˜”—–•”†‘””“’–š‰•Š••Ž““””œ••”š’˜“˜‘Œ”“˜—”˜—š“”•””’•’”—•“ž™œ•’’’“••””—•–™——𔓖‘””“””“•˜Ž”™¡–““˜‘””‘–•“’“•’””‘“’”–•“–˜›‘•”——‘–•‘““––’’“‘‘•›•™“•”‘’‘•˜“”•““““”—š“Šœ”“–•—§’“–“”¢”””’Žšœ¡™”””–“”•“’•–””—•’•Š™”””“’”—“”–“”—‘””•–š•““”“œŽ•–—“˜’”—”™”–•“”“““•œŸ•— ˜”–‘•‘—”“””¡’——’—Ž˜‘”””•”•“•—””›œ“œ“–“”–œ––œ”“›•Ÿ•‘•—–Ž–‘†–“”—”••””‘””•ž”–•™••Ÿ”–•”™‹•–––˜”—•Œ“”š˜¢’™•””‘–”—•š•”••”™“’”“’•”‘”•’”•œ•”–ŽšŽŽŽ –†š‘•”™““•œ—”“”•—””––•“’–”’”œ”‘˜”’—›•†”—š™—”–™””””•––””š–“‹˜•”˜“•›••–”‘‘’”–‘Ÿ–––”“””Œ”–›™”¤š””’Ž“•›””–›–—™–•”””›‘•–•žž‘–”•š™”––•••›œ•”—”œ˜’”“œœ–•“•˜“•™•””›’•œ’”—”›š•”””‹””••Ž–•Š˜–”˜—‘•”•Š–“”•™–”•—•“”˜•—–œ’•”•ž••—–•”€””“•Ž””§Ž•˜–”“•”“•’””””“”˜”–𙕙”—•””””£””Ÿ””•…Ÿ“Ÿ‘•”—”‰”“•””•“””•–”–˜™”””””••”””—˜’•˜”””••””•”’“”§—˜”–”—””Ž”Ÿ•‹™”‹•””••¡•”˜“”•“”‘”””“”£”—Ž™—–—–”•”’”••••š’š—”Œ”—‘“””•–™“–’”“““••’“•–““—•””—•“”””’””””𔕙—“”–”’“”’š˜“•“’“”“—““”“””šš’˜’”—”–“”•”˜“––”–“—”•—”–”™”•“••–””—”•–”““‘“——”“”›–›””“”–’”””‘–˜™“”“”—”“‘”•’“—”““›‹“•—”””•”””””’’˜“—••—–•’”“’”—”˜‘””–”•’–””””–”•’—’”‘“””“’—’•™“”–“•’””•”˜–•—“™›—•’•’””‘–”““”•”“—•˜”˜”Ÿ””••“˜—“””‘—•–”š•–™’—“—”’”•˜–••””””—’‘˜“‘––˜”“—–”•–””—’–”š”Ž””›‘•˜–•—’”˜–—•—›˜–”•””˜œˆ–“”–”š•–••——””ޕ𕔑™•‘›‘’”™Ž—”˜š”˜”–“”””•”•—––”•”–”––”’—•Ž”’™’—”™”•””˜•–””•˜™–˜—•‘–˜š™•””•‘—••™•˜˜Œ”””—–”—”’”˜”””Œ”–“—Ž”˜”•’••—•“—”••›”›••™““”•“”›—˜˜–˜˜•–”“””“‘“›”“’’’•–“’œ“’“˜“¡•“’Ž’’”“›“’“”””““”“’š“’—“š–“”––“““””“’”’”•‘—”˜˜™—“’˜’—““”“›•““”’”’—’““œ”š“—“”““—”“”””š–”›”””’“““’”›“’‘“”’”–“˜˜““–”’“›““•’—’Ÿ”””˜‘”‘””“““™’“”””š–—”–““”““’“’”˜™““˜˜“’““•”’™“““”–”™–“““’‘”’˜‰”™–’‘“““”–›”š’žŒš‘’’“”““‘‘“’’““•–œ˜—”•”š”š—””›‘œ””•š•––—”—•—–™‹•••”‘—˜—””“””—•œ’—›•˜™‘’¢”””•™˜•’””•˜•”””’”ž•—”•–•”—”–”˜•“”’•›‘”•”’”š”˜”””—•ž—“•“‘”˜™”••“˜‹™”š””š””˜”–“™Ž—”””—”˜–”™•––””“”–š””””•“œ–”””“–••ž”—“–––•™”“”™š“šŸ—–™”””•–”›™”“””•””–™’“™–•”•”••—•”–””””‘“𔓕’””””–””˜––˜˜™’ ””•“—”Ÿš›–•–“““”—“›“š”£Ž”‘£”˜”œ”•“”™”“•”˜™”œ”–•™‘—“““›•œ›˜—”𔓔•–Ž›™šžŒ“Ž˜™•––”™—’•–“§‘–’—”˜“”𔡖••––”ž—ž’“’•‘•”š”–•©˜””˜“™‰“”–†””œ•”“”—“–”“ž’—”Ÿ”’•Ÿ”Žœ”””•—˜—“”š–‘›‘“Ÿ”—•“•‘”——™›˜’‘—’—¥“›”˜›“—–œ™”–•”“•–’Ž™“˜˜”–˜—™”˜˜”™’ž–›’“˜••”““–”œ–––”™™—““””•’“•™—˜““””••“—•–•”•“•’˜–“”“––““‘“““”˜———”“•˜’“’“›”•”‘’“•“•‘“’“•˜•’’–“š•‘˜–“”™‘˜•“‘‰–“”™“—““–‘˜’‘“—“’“““–’•‘“””’š’“™“”‘““˜™“˜˜™›“”“”“Ž–“”“–•“’””Œ‘Œ–“““™“œ”““’“•›–“”–’š–—“•“ ““˜‘”’–•“˜““™“Œ˜Ÿ‘“—”““’‘™“—“Š“’—””–”“”‘“”š•—˜‘’“’’““‘•“”˜•—’•‘––“£•† ‘’œ•˜–˜”˜–‘š•’•“Œ˜”†‰“’•™“““•““•œ—“¨š’–—œ”“—œŽ‘’–“—–˜““–™Ž˜š ‰“”¡š”˜”›œ’Š““—„™ž“›‘—’–“•”“ž•—–‘—”•“•”“•›”“œ—“““”““™”¦”—•“’“¡“Ž˜“ž“™“‘“—“—˜”˜“““”‘£““’“’–˜“œŽ••’š“œ•–’’–œ–“˜““•“•”“›—¤™“™–““”šŒ•—‘’“œœŽ‘˜–““‹“”™•œ‘’Ÿ••“Ž–““‘——–š’Ÿ’”—••œ—”•••˜—•”™“—–˜”—”—”˜—”Ÿ—–”””˜˜”””””—“•𙕕™–‘•š–”“—•”——••”˜˜˜”””•’””•”“”••—•”™”˜“—™™”›˜–š•—”™””””—š™–•”“•”š”—‘•™”•””•’˜–•””””™””™””—”•™”””•”•””“™”–””•”””––•”•”——•—””–”–•˜”–˜˜”™™–”•–•••˜˜˜”—˜”””–•”“™”•”–”””–”•™™––”–”–————””•”•–”–™”‘˜•”•™—”˜™™™’–••–”¬••’’”— ’˜˜œ–––Ž•‘““•™š’¢‘–”˜•””’”””Œ•›”›—•’“•”’Œ •Ž–œ›”•–—•”—”²Ž–•“” ›”¦’“–•Ÿž””””—–’ž“”¢–“Œ—”›–”•—¦•–—¥–Œ’¡’”š¡‹“’¤”¤”•…””‘¤†š”’”˜””œ‹”•–”’ª”•–¢wššŒ”””‘ “””‘–£”””’’š’•Ž”––œŸ‘˜—”“¢”Ž”’œ”Ÿ’˜š”˜›””˜§–’Ž—œ“š•“˜•’”––”’“”– ’“™™•”•Œ˜”–•“˜–žœ’ž”’”¢—––“•—–˜’””“”–š•“•‘•š••š•””‘˜”•””¢””–’˜˜”“’••—“”•”” ˜š––˜•”––”“””–•™—”’”••–”—–œ–¡”•–””“‡š—””š”œ••“—–”›””•”Ÿ•“›’”•’”•ƒ•”™”“™””•¢œ–“‘””’”—”˜•”•••””“›Œ–™–”””–——•””””—“••”–––•“–•”œ•“š••”–•”Ž”’”–›”’” ˜”£•””““’”–˜–”™’–––˜•””¦”•‘–—˜•“›•“”’˜—”––•••—œ‘•“–‘–“Œ’™š†Ž“—–ŠŽ”–“—‘“”›”‘“Žœ‘Ž““”““”•š‘™šŒ””Ž““˜Ÿ›–“’š““•’’““‘›˜”›˜˜“–š”˜”“—”“”Ÿ—‰—“’““š’Ÿ–ˆ•’“““’““‘—‡•™Ž–““‘ •›–“˜“—‡““‘ž”•––‘“‘“˜“˜•“—•““——›’”™“““’›‹““–”˜•—•“••Ž‘““”’œ˜˜”Ž˜•“•“‘˜“ž“˜“Ž““•–”’•“”’“’“•“’œ“œ””“‘™‘”–“’™‘“Ž’‘–𙑓••‘’™“š’˜›—–“”–”‚–“–——›–––¢“‘”—™•”“‘““–’œ’—™Ÿš”›–„“˜¦—›•”’•“’–Ž““”™™œ’žš‘“•–——”—•ˆ–—”’šŸ˜”•”š“™‘œ“™—““˜’’‘”Ÿ’¡¢š“•™™” ˜“–“˜ž““š˜›œ“—“““—“˜““‘–‘™“””¡Š‘¡›““““™š““––““‰“•”˜••”“”––’–”—’™“œ“““–”›“›š““˜£˜•”œ‘“›”’šœ‘”“™”›––—œ“˜ —–“”‰—“’”–˜“—•šœ”–•ž”•—•’’–••”““–™••˜“˜™”–•œ–”•””“–••˜””—‘’—•‘˜˜™”˜’”’—’—–•“”””””“”••œ–‘’’••“‘—–”•–™™•–˜”–”–“•˜“—•”–•“–””˜”•œ’•––•’—•“•“’•—’Ž”—”–—””–™™˜–•“”””“”˜”–•’˜›”“’”›•”—••”–˜—”•’—–•“˜••–™•–“”—š“—˜™“””—™””•–˜”•”“”—”””’”“•—“••’”–‘š˜˜•›™”‘“’’–“’’”•”“–•”•–”—’™”““’•”“Œ‘”’”’–•“‹’’•‘˜’•™“–”›–•‘““Ž““’••‹š”’””Š‘“‘˜ŽŽ”•“”“’’“‰™œ“”““Œ—’“““—–˜¥’•”“““’’“Œ“—““Œ’Ž”’”Ž’˜”“•—••‘“““’““Œ™”“”–“‘“‹““˜“—“’œ“”—Ž—‘‘Ÿ“““”’‘““”““š—“‘—“”“’–“‘”–˜•“›“Žœ“ž”—‘““““••”•Š“‘‘–”’’“‘—”––“Œ—’“’˜“’‘‘–‘”’–š‘¡˜•˜“¥•“‰¤ž‘‘𤓓•ž’œ¤Œˆ§¢‘Œž‘Ÿ‘‘—†“”—•“”œ•›™¤•šž™•“©™‰“¥‰‹Œ‘Ž‘”ŸŽ•›†‘—©““˜œ‘ªšš‘¢‹š‹˜žœ‘‘›—‘–˜œ‡—•Œ’£‘Š™ŠŒœ‘šš¥˜’––‘•’‘šž‹ ‘‘Ÿ”«‘’‘‘¦œ ‘ާ”‘–š‘•©˜¤—˜“˜˜™‘¡™¢“¡™“‘š”¡Š•¢˜…›‘¡”Ž‹¬”•˜›‘Œ’——œ˜›•¦‘£ŠŠ—”–Ÿ“Ÿ’Œ™™‡«––ˆŽˆŒ•œ’““’—•t”‘–u“‘}a›“’“„ˆœ’’‹’’›ˆ•› ›‹“‰š’”ƒ~•™€–’˜¢‘‘’—™Œ²r‰ ’‡|“‡˜—‘”Œ ‘³’˜‹›¡„•’£‰~š˜–›™’{—Ÿ –žyœœ”|“˜‹œ§‘‘’Œ’’™ÿ”’¦’’³”Š’™”Œ”›““¡Š•Œ’’““”’•’’˜›žš®‹’¡—•—£’·––ƒŽŽ¿¡–’Š’—«“Ç“†‹’›“’‘’Šz£™y}’—˜“”’ēޓ‚›ž–‘”’ª¾‚’œ–—Œ’‡­‘’” ”‹’—–”–ž’‘›œ“žœ—˜‘œ“–’ ’—œ›’’‘“‘’›•“ž“ŽŒ™‘’žw™–“Žš’Œ”•‘’™—‡‡‘‘“œ’˜—‘–˜“‘Œ”™‹‘‘“œ†’ž•œ‘—”š’—š—“’{–—••™‘™”™ž“’šŽž“’“‘Œ‘’’”¢ž””£•‘‘’‰’–¡‘”Šž—‘™œ–‘“’’˜šš”‘’š˜Ÿ›©œ’šœ’™š‘˜‘–”œ–‹’ƒ›˜’”’’›‘‚•›“’™˜’‘˜“ž˜˜—’•§–‹’†Ž‘›Ÿ—ž¢–—›’Š—‘Ž‘”£š’‘—–Œ™¤‘”“š•‘’”’’™’ ¡‘©“•šš˜’‰Žž’’’ž‘‘’˜–› —‹¥ŽŸ“¤š‘‘™™œŽž¢š‘‘“’’˜š¬š˜š•«‘˜—¦–œ‘Ÿ—’‘’•“ž—–˜•“’‘¤¨˜“•’‘”—Œ™’ž¦š”—“•Žœˆz“‘œ‘”Ÿ‘‘™¤ž“¡—“‘‘’”‘£”‘“Ž—•™‘•–¨’¨’’’“œ™‘’”›¨Œ–”’–‘—•˜Ÿ‘ ™¨–”¢€••‘‰‘™–‘šž}’‘›‘‘“ž‡’”£’‘™›—•’²“’ŒŽ—™—œ‰–—‘––Ž‘žš– •®•Ÿ‘’§“¦›“’–›¢—‘’Œ†œˆ‰“Š’˜“›‘’Œ™’‘Ž‘‘Ÿ–£•“’žƒ–”‹‘ž›–Œ¡’Ž•‘’Ÿ•’‘”š‰”›‰–‘— •Ž˜“™Žœ¦˜‘“‘†ž“¢Ž›’”•‰”š™œ‘†ŽŠ–‹Š™‡~‘’¦ˆª“•‘“‘˜‘‘𓏩•’–‘Ž‘œ‘ŒŽ™Ÿœž‡‘”••‘‘‘¥‡™Œ‘‘›‰“•’’‘•ž”—ž‘‘Œ”‰¡–¹ž“˜ƒ‘‡‘¢—‘ª”˜‹‘ ‘¡Š’ޣГ‘™šš“ž–š‘Œƒ’—œœž‹™˜‘’›‘™‘¥‘œŸ›“‘“‘•š¥”‘šŽ”ž’“‘ž¢˜–’Žš˜”“¢–˜’’‘”’‘Š’’’™Œ””Œ–™›š••”’—¤––“—‘—•“Ž’”š’~’’’–•ª’“›‡™–‘¯‘¦“’˜‘–’‡“™™•–—’’’‹”–““œ¥Œ“˜—–œ¤{‘™’‘”‘‘’ž™š›–‘’‘Ž’Š“‘˜£™••‘‘Œ—™›Ž’“‘ž”˜“‘’›—ˆ‘œ•ˆ™•”“˜’‘š†›’«žš”’’”œ‘”ª†’—‘‘‘•••›Œ‘‹—––‰œ™’”’“™“¡Ÿ±Ÿ‘‰’›‘““’™£–¢˜Ÿ’’œ¢œ“‘™‘–¡š›—™’’™™˜•—••‘—†Ÿ’‘‘‘™™žœ’ž›‘Š–“š“›“•—š‘—”™•Ÿ––¥—’œ’—˜––˜–|œ”•¤”„–˜›•™‘‘–™–˜”—‘—œ±Ž‹‘Œ‘™Žšœ”¥‘†£›‘—œ£“®š—‘‘”‘‘ ’”›˜š‹†™Ž—’’‘–¡˜–‘˜¨˜‘’Ÿ‘ •‘–™–š‘®™››––¬—•ˆ‘“‘’¡•„˜‘“œ‘•£Ž•™’Œ›˜–˜š’‘›€’ —ž—’”‹“–€“‘•˜“—“—™©Ÿ‘‹‹¡œŒ““¡©Ž–¨”Š‘›—“ŽœŸ‘˜™Š›žš˜”“–¥“¤’›‡¨‘š“›—•“™œ”—“Œ–›•™–“•“–™Ž”–˜˜•Ÿ˜z{›‘œŽ““’™œœ—ž‘‹•¢•¡ ”ž­—ƒ£š’˜˜—™‘˜’Ž¡Œœ”Ž”•™Œ›š‘Гޙ”œœ“£‘„’•—•™˜–Œ‰——Œ••œ“Žš›‹™ Ž—¢šŸ›š ”“¢›š’ž”Ž—”’ —¢‰˜ˆ”Š‘£—¡‰Ÿ™—§’›–r’˜–“˜–‘š“œª™˜ž™£˜“—›Ÿ•¥“—“šŸ“’™’’›’–¦¡Ž’ ›Œžš’–“–š“““’š”’’¢—›˜™‡’›¤—”¥”••—‘’ž—•™“‘˜’ž‚”œŸž™’›—§˜”–š–˜™™•’™‡œ’–’‹’’—›ŽŽŒ—’”’˜’ ™’˜–•’’‘Œ­™““’—–’š“’–¢Ž•Œ“’‹žš™››–’”––•ƒ¦—’“ ’›š‹š’¦ž’’–’•¢‰‘’Ÿ”‘””’—Ÿ“Ž—™—¡•™©‘—’“‘’ žž•‘’“”Œ’˜•”•“’–˜““¡—’—Ÿ–’—•œ‘¡—¡Œœ¦’’Ÿ™’’“’“ž–š‰š˜–•¢Š‘˜’—‚™‘ ““œ’•˜–‘’ —Ÿ™—”•”“–”š–Ÿ’Ÿš›‘’”•˜¢“ ’•›•˜”™’’“ ¤——”˜—˜“—’ š šœ’˜’’—’’“œ™—š’”’’’”“”¢’˜ ™Ž’–œŠ‹ªž’“““”—™‘’–””š’•™–Ÿš™ž’šŸ–”“•›©¡ƒ“‘’—‘’’–¡”’•£’’˜’•“•–’’œ”Ž˜–’†“‘––•†ž™—›•’™”œ’Š“•žŸ“’“‘¡•¡“„¡©„——–’šŽ’’Ÿ‘œš‘u•Ÿ‘•‰”™‘‘‘““ƒœœ„–›˜‡’™‘‡‹”¡‘™Š‘Š‘•‘‘Ÿ¢‹••Ž•‘”•‰–¤˜—œ —–—•Š—’‘—¡Š—”œ”‘‹Ž“—‘°•—Œ‘Œ—„”z‰‘•”’‘‘𢔉–™‘“‘—‘Ž–›ˆ•ž‘›”žŽ˜™•’’‘˜ˆ“š‘–‰‘Ž‘‡–š™”•’‘Šš“’”—£¤Ÿ‘–‘Šš¦œ’‘ ‘—‰“‡”¶’‘’Œ—‘‘”‘‚›‘–‡™„š š© ‘’¦–‘”——†’–’—–¦œ ‘›£—““’“˜ŠŒ•’ˆ”—•‡”Ž‘”“¤ˆŽ“’—’’ž¢ž¥—„’¨••’šŠ›“•‘¡’’‡›’“ Š‘œ–šŠ“”’” ›Ž‘Š‘’‘‘’ž—ˆ‰™™š˜’ž¢œš™‹‹““„™œŽ——–™”—™“Œ”š—›Ÿ’“’’’“¡¢”ž¡’‘“Ÿ“›’“‘’•­†––““’’”šŽ’’œŽ “ž–’§™’‘†‘‘’–››¡Œˆ¨©•Š ’‹“”Ÿ’©‹“š’˜’’••—‘—–¬“˜ “—“˜Œ“š““’š™•ž “¡Ÿ’ž’‡†Ž˜‡£›ž’™”Œž’“–—–§–’”¥›“”‘’¦™ª”¤®“‘”š“““—“’˜œ•‰¦––¨š›ž˜“•“–•š–˜“’“››””™Ž”‘““˜š•Ÿ‹“¤‘§“ –Š‹”¦–™“Ÿœ’œœ¥’“—“£–—™——–œ““£• ’“•’“Œ““•›”–“— “““”’•œ’–ž’“•œ—¨”’“’š“•›““Ÿ™›™““—–¢œ›¡—“—””’§™“’¢ž““‘“Ž““£œ““˜“’žŒŽ¢“‰•”›•¨Ž›š“‡“•™œ™•¢›š›–“Ÿœœ“𥡬•“™‘¤‘–¦‘œ•˜—––˜˜’œ––žžŒ–•’Ž¥•Ž˜˜’’•‘¥‘‘“‘‘•ƒ¥–žŸ›“š•”œ–‘˜ž¡™•’“‘–™‘˜•šš’—t‘˜š•‘š–™œ¢•‘¶šŒ›—•‘‡‘¡”œ•¡‘²–›“›¢–šŸ“‘’–¢«‘‘‘’ž‘‘ž¯±š“‘‘Ž•‘š“‘“‘•‰¥¡’’‘‘‘£Ÿ—‘’‘˜—“•“’š›œ™¢š˜‘¡›””˜™›•œ—‘”‘ŽŸš‘˜™‘‘š˜‘¢§˜‘ž“Ž’˜––’€›‘•—–ž˜’˜—•‘†‰š‘šž•šŽ—œ—|‹‹ˆ“¨š•Œ’’€›†™œš—”˜˜„–Ž„’{–Œ”‘‘“‘‘—…›‰•‹˜‹”‘‹Ž‹ ”‘— ’¤‘’–¥•’–‘›ž™›‘‹¦–™‘¥–³ž{‹’ž‘¡˜›˜”š‘˜—ž•™’¿•ˆ‘‰}’“}¡˜Œ‘‘–w­—ž…‹‘–‘¤””¢† ˜”’—™ˆ®¡‘‘ ©—‘“‰–—…’”¥›•Ÿ•‘ŽŠ—¤’¤r†”•‘‘¥•‘ª•u’‘Ž•‘‘— ‘ž’žy’šš˜›žš˜‘¢‘¢™ª}¬‹™–‘«‡‘¥•’𛥑‘– ¯’•”’–’—Œ”’—”””•“—’™“‘Ÿ’‹‘–Ž™–’‘”‘’”’‘œ•’“•Ž“–•‘•˜™™Ž–‘”‘–š”–‘•†“—”’•—’š”—…–••‘˜”Ÿ—‘‘”“‘‘™‘––š–‘™˜ˆ”™Žž–‡‘“’“”–˜ž‘‘”‘‘‘“š—š’˜‘‘“Ž–‘™™™–›’••‹•’”’’“”’™™‘™“–”˜••“”–˜““‘–—œ—•›–—‘™‘”™’Ž˜‘‘‘’‘‘–—–’—Š”‘”˜“”–”•‘’‘‘–‘š˜‘•”–•‘‘™“‘˜”˜”™›’—•—ž­Œ›–’—‘ž’™ž“‹›•šŠ”•’“™Ž ˆ šˆ”–ž¡œˆ„œ™•‹§™’‰’•Š˜Ž•š’‰”™ •ˆˆŒŒ‰¡š™˜ŽŸš–ŽyŒŸ—ƒ”“™‡ ‘”“Œ–˜“”–•š¬™˜Žˆ”£˜’™œŽ›’—•‹“”˜ ’¡”››˜‘¡›‘’‡ž¢œ—’–šœš”‘—‘‘§ ™–”‰–¡–°ˆ˜œ‡ž••°Œ›’“œ”›Œœ‰Œ›–˜–š‹–™£“˜‡˜‹”‘•’Š‘ “–ˆŽ‘’“¢ž—’£’™Šš‘“š‡’„™‘’’š’‘”” Š§” ’¥—¢—‘• ¥Ÿ˜š”’–‹‘‘±˜Žš‰‹”’“ˆœ£˜‘˜›‡˜•¢’›•••¥‘˜Ÿ’©Œ‘«’†˜’´Ÿ¯“Ž •Š“””“ˆƒŒŠŽ‘˜‘’…‘‘‹­‚œ“Ÿ‘‘¥’”‘…ˆ‘¢‘’“‘¯œ—ž„“’’¤´•š‘’—§ª‘‘’¢¥•¨™£–‘’𖣩ˆ‡{“œ‘ƒ’š‘‘‹˜~¡’•ž’‘ ”“°—˜‘£…ž›”—’ž’ˆŒ›±—’š‘¨Žœ‘™”š™ŠˆŠ‹œ°”–‘”™“”œ˜™™†“œ‰ž•š–Ž•šŸ‘”˜’’Š”“”•”˜”š ‹“†‘›™‰ž“‘‹•šŒ •‹’£˜—•—œ’ŽšŽ––œ†” –‹›’¤Žž“œ•˜‚™Œ”˜––š ’‡–š¿¡ ””‘¢Š—ž—Ž’‘–—–œ–“‡•“—ŒžŸ–‘‘”–Š–š—Ÿœ‘“›§•˜•‘˜Ÿœ—’£¥•›œ’…”—ŠŒ“™£™š˜ŽŒ†œ‘–š•‘’–”ž—‹™„››™˜šŽ™œ•‰•™‘–ŠuŽ„“‘–’—ž™•‘¥ŸœŠœ”–—‘‘Ÿ—«‘”’•”•œ’‘’‘‘˜—“–›Š•™™—’›’”•’š’›’‘›‘”Š’‘Š”Žƒš¦‘›—•›™|™–Ž‘Ÿ•¤”Ž”’’—œ“š’Ÿ“š’©šŸ°”›•”Š—š’‘—˜”™•‘˜‘‘‘–¨‚—’’‘Š‘–”‘£’›”œ‘“•œ™‰š‘’‘’™ž‘’–Œ’”–¨‘™šœ‘¡Ž•‘‹‘—’¥–𙑕’’‘‘›žŠž‘‘’‘£š™”š”›‘ž‘‘•’’…–‘™‘™˜›Ž˜š—‘š‘ž—›–—’ ””Œ‹©’“£”œŸ˜’–‘’“‰ŒŸ–‹‡”’Œ˜œ¢‰‘™‡Œ¡’‘™“Ÿ•˜zˆŒš˜’–œ–•ˆŒ¬Ž’—ލ‹š‘†–”­š˜‘¡šz–ˆ“‘ІŒ•—–’“ •œ™—¢”•–”¨•—šŽ—Ž¦ž„­Ÿ’™˜‹•™“–˜€›‘‘“œ‡‹’“œ‘šŠ‘“™‡‰—’”©Ž—”‘š“˜¥Œ•“˜›Ž¢ Žž}—‹››”‘¢ž›—|Š„Œ‡‰–ˆ ‰•™’„••‘œ}‹˜š“‚”‘¤˜”ª•“‚Ÿ£‚ ‘©”‘ ‰¡–‘‘Š‘‘˜›Ÿ—¡£¦«•¤›‘—±”‹ —‘š˜™‹‘˜“°‘ŒŠ••’ Ž•™˜‘¥‹•ŽŽ™´¢œ™…Ÿ‘ªž„™ž¢Ž˜‘ƒ’‘œ–¢¢–©Œ’”§ ‘‘‘›‘‘’¸‹•‹¨¡‘”‘›‘›œŽŸŸ‘•›­zŒ¢—‘’‘ŽšŸ‘œ¢©šŸŸ’’Ž›¨˜•‘š™š¤¡‹˜Ÿ‘Œ‘–—¥¡£‘Š‘‘𬖥“’­Šš“—˜œ’Ž›¯Ÿ˜Œ’š‘–Ÿ‘§›¢¦Š•މ›‘£™‡Žšœ‘—š—¦žš“›Ž”‰•ž„—‘Ž”™—‘‘™—…˜‘Ž””ª|Œ™—•…’Š”œ‘¡¥–‘’™™›•”Œ‘‘‘Ÿ˜œš—žž™“ŠŽ›žŠ…Œˆ‘™’“‘ž–‘’”ž” •‘™Ÿ“¨¢˜ž””¡‘ž±•Ÿ‘‘”‘›£—–š‘šš˜•¢¤–‘’•œ”’‘œššŸ”‘˜Œ”𕤑˜›¡œŠ˜¦‰‘‘ ™ š©‹Œ˜‘—“𕢑Œ‘–•œŸš‘‘›žžŒ‹’•›‘–“šœž—‘¦˜—˜‘“‚”ˆ““š‘ŽŽ‘–œ›’˜ŒœŽ‰ž–’™£”˜’‘‹‘’––‘•Š”œ’އޑ”ƒ™—‘”“’™“”’’Œ˜™’™›’œ•˜‘’Ž“—‘¡—’Œ”Š’—™˜”Žš’ŠŒš”Œ‘‰‡œ“‹ˆ•’‘¢‘‘‰‘’”—ƒ—‘Œ‘“’’™™‘‘–‘Œ‘’˜†Š”“’’’¥¡Ž‘’•Žšœ‘•›œ…ˆ‰‘•Š™£“‡“§“–’Ÿ’••’ž¤’‘‘“”’–”‘—’™”™ˆ•’¨Ž‘“š‘ˆš’™˜‘‰‡‘‘Ž‘Œ“~‰› ‘¢“–’‘š–œœ˜‘•˜’¦›’ž’”„‘”••œ’“™—›’’’’’’›–š™™•«”š“‘›ŽŽ‘˜•’—’’¡Œ‘¢™¤”“ŒŽ„’•—™™—‹—šŽ’‘”•šŽ–˜ ’œ’™—š–œ’£”œ¥Ž˜›–£Ÿ’•—–”‡‘‘‘¥‘’Ÿ†¥”›œ‘’’ž’Œ¢‘”˜’“œ ” ’’’•¢Ž›‘’”ž’–”““žœ“›œ––’—’‰Ž’“•š –”’’™•‘Š˜Ž™’œ ‘‘–””˜–ž‘—ž‹š—‹–’ž˜’›˜š˜  ¥›œ–‘Ÿ‘•Ž–”•“’•˜±–”𔑗——’— ’¤˜’–’•–”¡•Ÿ’˜›œ’’’”’‘šŽš–‹¡›“–Š”’‘’Ž~™•”“™’›”—’“£’–•™’’˜˜•–™’œ’‘ŽŽ–‹š•™’’”˜—”“™•’ƒ–––šŸ‘•›‹›“Ÿ’›£©‘’’’’‘’“’‹”š–˜’‘‘˜’Ž¢‘ŒŸ†“Š’Ž•‰‰™”‘’“‘’”–™’’Š›—š—“›“’‹”—£’¡š‘™€¡”–’•’’›‘„”¢™’¢˜’‘‘›•—›’™Ž™‘–ž“’†’–œ ˜‹–”ˆ‘›•¥’“‘”‡”š–‘•”™™’˜““”‘¢˜ “‘ˆ–“—™“°‘Š’™Žœ‘‘’’‘–¥ŠŽœ†˜ Œ˜’¢’––‘—’”—Ž’Ž–˜˜™v‘‘“‡—–‘“•‰‘§ž””Š„ˆ’•‘›˜‡Ž•›’’‘“˜–‘“Œ£›”˜”‘•‘˜‘’Š‘‘’”{„”š‘’‘“¢—‘’˜œŠ‘š•›˜‚£‘‘‘‘“——’’›‡š¡™œ’™”‘‘‡‡“‘’”•¡’˜—›•‘‘‘•›–š‘’‰‘‘•Š››Ž§¡‘›‘–”Ž’…”’•™–™•”§›’›‘Š“¡‘‘–Š–œš–›‘•“„“—Ÿ’‘†¢¨•Ÿ¤‹˜˜– £”¦Š¡¡‘‘œ›‘‘—‘‘•˜Ž…¨‹‹£˜•ŽŸ‘˜«˜ž”–“‘——‘“›‘–“™•™‘—••…ŸŒš•—“•‘¨š‡’˜¢’—‘”ˆ˜˜œ“œ‘™“‘˜‘“’“𥖗’Ÿ¦Š›––‘‘Œ¦‘‘—• ‰‡¨‘‘Ž“—™‘“¦Ž¢”‘˜––¥£“—’’‘—œ’Ÿ‘¡‹•𑆔–šŸ¡§‘œ£œž‰‘™‘‡Œ’› ‘‘’‘˜‘£Œ‘–‹¦™™¤•’w¤‘£—~Ÿ–ž›˜‘•˜œ‘ž˜¢™‘ˆ¡˜‹®‰¡’˜•‘™ž”•˜’”‹“Ÿ‘“—•ˆŽŽž–›‹Š¥š†œ–••Ž‘‘ƒ™š ‘œ–¤ •§¤š‘””Ÿ™‘”Œ’•Ž”¡•„šŒ¤¥“ˆš‘¤Œ—˜¢¢“—¤šž›‘•‘•“—–˜š’™ŽŸ­’¢ž’‹‘–ž™•‘”™›ª£‘‘‘Š•”‡“¯–šŸ”ŸŽ‰•’¢–›“œŽ–ž‘’”Ÿ‘‡‘±Ÿ ¡Œ–¢‡žš“—“—˜Œ‘}“‘£œ—Žˆ›Ž—š˜Ž”–•“œ§ž’•”›“˜“–—“Ž—’Š’‘ž•’–’––’“–˜—“™‘–’’•’’•˜“™–‹•’Œ”’Ÿ™™–›’™’ž•’ž §‘›••“’““Ÿœ—–‘ˆž™‘’‰˜’™“¢“œš›‘‘ ‘’§”’Œ’•˜Š—†–“—‘‘‹Œ’›’’’˜˜ ••”š’”’˜“–—’‘’Ž–“•’“”“““’™˜”Ž’““™š“’‚’–™““ž’“˜˜••˜™–’‘’¥–’‘‡”’›“’—†–Šˆ‘•“•–•ž–…™“›–“’’’—˜£•Œ¡™’¢‘”’ž“š“¡—’’–®“ªŸŽ––‹”Œ˜¢Šž£—“––Š™–‘‘›„‘‘šœ©‘“‘˜™¨¤Ž–š–‹Šš™¡‡‘¢š¤‰”—™’ˆšž¥˜’‘ž‰“‡†š“¡“š£¦œœ’˜•…’œ•›“‹ ‘›™…”—”™—ŒŽž’Œ‡©›‚ž‘”–£˜Œ”™™Ž‹’˜ŽŒ–—š¥‘œš‹…ƒ“‘‘‘› —¤‘އƒš•¨“š–‰š–›Š˜…£’™š¥˜Œ‘•Ž–—u¢–‹—¡ž˜£ƒ³ŒŸ•ž¤“‘¥—Žšˆ“’†‹‘šŠœ–•”Ž–‰’ž ’™Œ‹•¢‘“ŠŒ“š™’ŠŸ—ž¢ŽŽ•~—““““¡ª“’–“’—‘–•‡Ž’Š˜‘–”’—œœ£—’ž˜“’ƒ «‹Š“˜’”’’”ž“¡›“š’™——¢”‘މ“—’˜–“¢”’†“Œ’‘’†‹”‹Œ’› „¦’¤’„’Œ’’žˆ‚œ‚’“‘’š’‘—’š˜Ÿ‘ ’”š ³šƒ›’“’¢¡’“‘‘ Ÿ’š“–••¤’“’…”–›¬ŒŸ•’˜’œ’’Ÿ›’£’Ž’’¡’ŽŸ£œ“¥¤¡—“Œ’Œ’š—š’šš’“š’—’“‹˜Ÿ•Ÿœ’——¢‘“’’˜”“”ššœ˜™Ž’•‘œš’’™˜’’Œ’“’‘“‹˜•˜“š’’ž’˜‚•Š—•‘—’Ž”œ“’›‹‘›‘•Š“‘–’Œ—Ž’•••’••’”˜’’“‹™—–™™““œ˜™˜‘š™’‘’”–Œ–”‹’–““‘’“’š¡›™›’“““‘ž’–‘›—“”š•ˆž˜“““™˜—’’’—ž–’˜”š‘˜œ—’•™”—“‘“š—¡“‘“’’–’‹œ’’’ˆž”Š“’Š’˜““—’‹™“•”ˆŽ˜™”‘’“’‘•˜•›“‘‘Ÿ›¨”œ–“‘—œ•™’ž¢”¢•–“’›™™—Ž’“”Ÿ¤‘‘˜‘‘˜ž“–¡‘‹˜•ž–‘œ‰ž“ ‰””’‘™—“‘˜žœ’“’‘• ‰˜“™š’˜™™’‘„™”š’—˜‘™ƒ–’’¢˜™’ ›§‡–¡”‘Ÿ—‘——ž›‘›‘œ‘’š˜˜‘¦’’¥‘› ‘ “¢‘†‘œ£–Š—’’“’›“™š’š—”˜Ž§‘—‘––¨ŽŸ’šœ“”‚¤›®”™—‘–’‘‘§–˜‘–›‘‘—˜’ž¡ —’œ¦—“—Ž’Œ™‘Ÿ— ”’ ™‘ˆ£Ž‘™‘˜¢ž˜—‘š™—“’™š—ž‡›˜Ž–›Ž“š‘‘—”¥Œ’—•‹“’’‘‘˜–¨”—••𣓥˜‘”𒑤™‘¤œ”‘˜‘£’—™•’’›” ™‘¢“Ÿ–‘–‘“—‚”‘‰’‘’‘‘‘•žŸ‰‘˜™˜—•–ž’œ¨‰—‘ž–ˆžž‘Ÿ‘˜Š‘‘š¥”Ÿ˜Œ‘“‘‘‘”“‘‡—ž•’œ˜¡¢š£–’’‘’‡”ˆ’›˜‘‘““’š‘˜–‰™—‘”—’£™Œ‘–’‘Œ’¦—‘˜š”‘ŽŽ‘‘›„œ‡”Ÿ’Ž”–“˜“–’’‘šŒ’˜¢”›‰†™‘•§‘©£¡˜µš“™‘™˜ˆ€”‘–Œ™œ—‹Ž–™•Œ‘—œ“‹•‘Ž’§“‹’‘›‘’›’ ˜–¢¦Œ˜‘˜—™œŽ‘˜–ŽŽ‘Š‘‘‹Œ’–Š‘Žš”––”‘“Ÿ‹‘{ŒŸ€‘|”’¡¤¢”™˜–†‘“𙄑“š…“«‹‹’“ŽŽ“|‘‰‘‡‘’›€–މ’‘š’“‘Š‘’˜’””•¡›¢˜’‘’—‡˜‘’¤€•ˆœ‹’’”ž–Œ’š‘”–ˆ›£¡Ž ”ƒ‘—‘—‘’—’𛑕Œ‘‘‘}Ž‘‘¤›‘›Š˜“ˆ’˜’‰““šŸ˜“˜›˜…—‘“š¨‘›œ™ˆ‘œ¢•‘‰ŽšŸš“˜ž¡¦¢’›•‘—“Š–Š‹š†q™¥’‹¥“—’’’‘–œ›Šž›—“’‰‘–€–…™ŸŒ™’¦˜Ž”’Œšu˜¨–“†’Š“’œ•Ž•“œ’‘Ÿ“ˆš—“’…‘˜•Š“Ÿ˜’Š›‘˜ŽŒŒ”’¥’Ÿ¤§Ÿ‘”‘’§‘’‚¬‘¦‘‘’›‘˜›‘Ž”‹•’‘‹†œ”Œ’‘’’Š––‘’Ÿ˜‹•“™ˆ•—œŸ’‘‰›‘‘œ–¢Ž‘’Ž–’“y‰’“’‘š”Ž‘™–’…“¤£–“’§‘‘˜•Žˆ”˜‘š‘˜‘—’‘”Ž—…›–”©’›Ž»˜›•š—‘«”—‘›—Ž©””š“š•‹¨“’¢Š—’’’‘‘’„¡£œŸ¡•™ž•Ÿ™‘’Ž—•›’˜œ‘‹ˆŒ“–š–…’œ–”‹Ž•œ”™“‘—ˆ¨š‘””’“™’š”œ‘‘•—}¥œž‘‘˜œ—‘™—¢‘—‘’¨‘‘š¤Œ”¡˜™‘”’‰‘Œ‹‘’•Ž—‘’“‘™ŠŽ‘’‘”‡¥‘‘’‘ŽŽ–œ™“—›“”œ’›–’¢·š–‘‹’–™‘Š’˜’‘˜’‘Œ”–’Ÿ¤¢‘…”Ž˜›•’‘¢–˜˜¡“‘šŽ•‘…š‘š—–¢›œž‘—œ•œ¢‘–“•–œ‘£š‘–’“‘’™œ™¡”‘›Ÿ’––›’‘“‘‘œ”’“˜™‘–Ÿ–“™‘•™›”œš™‘˜Ÿ•‘“§•™˜›’’žŽœ”™‘›—˜•‘‘©žŠˆ™“•’Ž•‘Œ—›—‘•¡¥• Ž£‰ž”‘Ÿ¤œžª‚‘™‘‘‘‘‘­•›“ ‘’‘•‘–”‘— ˜–‘ •†“œ•”’’‘“„˜œ‘’˜Ž™œœ‘‹„œ””ž‘—œ“‘£ •£…‘–‘”•‘˜šš‹‘ ˜‘‘—“•™˜†…’”œ–ž•’“Ž’‘–•›†”Ÿ¤’—‘€ºŠ‘™›’—ާ›‘“’“‹“™œ“˜™™›ž‘‘£—“——Žœ–œ›œ¡˜’“ޙ𒒑‘•–”“ž˜”œ™ž—“•‘™ˆ•–𛓒—–Œ‘—‘šŽ¡’‘Œš•–™ŸŸ››‘”žŸ–•—‘•’–›”‘˜|™“– š‹š˜‘™¥ž…‘‘‘£‘‘˜‘—™ §’’’‘“’‘Ž›—”¢’—˜ž’“—’’‘”’ž‘’’™›–– ’šŽ—¢—‘“–—‘“› ¡•Ÿš’‹’ŽŸ‘Œ¡¤‘œ‘‘—¢™’¨›’Œ™’žœ’•’’‘—”œ‘™œ”‘£—‘š—Ÿƒ’˜‘ š•Ÿš’š‹  ›˜ ‘‘™Ž–‡™”†££‘‘˜•’’‘’’‘œ’’‘–—š‘““˜‘™‹–“—Ч‘›‘‘—–‘—’‘’  –ž””’‹—–¢˜—ˆ’›š”š‘š›““£—‘ž’–ˆŽ—œ“Ÿ™˜§™‘Ž™‘š¡ šŽ’•‘‘š‘›—•š›•Ž™ž¦›‘’’‘ާ‘›¤–›Š”£—£Ž¡ž‘š–‰œŽ’š››¡‘”‘”“‘™•¡•‘šž‘––™š–Ž‘œ’Ÿ›ž—‘ŠŒ’”™™””™•™›‘Ц‹‘‘‘œˆ•𑙇¢Ž•§”‹’Šˆœ§‘‚šš•Œ’“’—Ž›“›—’“ƒ—Œ’’”’’–žŽ†™••”‘ž‹‘Š›œš‰•ž§‘‘†’—‘”§‰–ŽŸ™¢’ ™“šªˆ‘š’—‹Ÿ‘Ž–£¦“°™“š‹…”›•’¯¤‡—–žŠ•–’¯£š›”‚’‘‘•˜‘‘Š›|œ—•’‘‘Š’–‘› Ž—ª’ˆ‡…Ž™„’“’‹Ÿ›£’ŠŸ—“Š¢”ŒŒ™Œ–‘–œ›œ”Œy–‘—’•’—–’d‹¦‘‘¡˜’‘•­Ÿ‘“Ÿ‘…«ŸŸ£›’p‹‘ˆŒ‰ ›œ}¨«ž‘Š}™‘‘†ˆ‰•—›’Š’š«‘šš“’‘’“ ’—™•”““”’šŒž˜—•“‘•˜Ž’’‘’˜›¡”–•˜‘˜‘–’œš”‘“–’Ÿ’™‘’’›ž–•Ÿ“—‡’—“›‘’””𒧤‡“¤‘““†š•™’–ž’˜”•œ›“œ˜Š——“Ÿ¥’›”’•’““’’‹ˆ™Ÿ–Œ™’“’˜’‘’”¡™—•’¡¢—˜œ’’‘”›–—‘’•¡Ž›“–’”•‹‘”𒗛ޛ”–ŸŽ“¤’“’Ž’“•›’›Ÿ’’ œŽ’›“–œ™™£•“‡”“‘šœ›Ÿ‘¤›’™“’“‘™–“›–œ“”“ªš”—””•“•–‘“‘˜›•œ‘”–™ —”š}’—“˜›™’““’——™˜’¢“’Ÿ˜–—“™† ——šŽŽ“””Ÿ•“”š·•–œ š’›—›£œ™Ÿ–—”“w–‹‡ˆ—”“‹™™–‘™“•—¡˜‘•˜Ž•‘˜¯’‘‘˜ —“ž“”‡““—›‘•¡œ’“““›’¦™“’—•™Œ“œ—…}–—™““’žžŒ•““Ÿ”¡ Œ““••™—’™“Ÿ˜ ž™›…–š–’“›Š’“™š•“““–’œ“•ž•‹’—™˜“Ž“–‰š˜—Ÿ”™“”’¤“——••‰“—œ‘“–ŒŽ–š’—’“›•‘‘“œƒ•••“–§‘‘€—š‘”˜’‘‘‘›•“š–“—žŒš ‘ž›™™ž‘’‘“–œ’‘œƒ–™–Ž’šœ›”œœš™‘Ÿ˜¤˜™›‘—”˜˜““’Œ—œ—›‡¢ž—•‘’™”Ÿ”’“‘“‘’”››•‘“‘‘–’“–‘Ÿ””–‘˜‘™Š•“’’‘’—‘•Ž˜ ’˜’˜˜˜—œ‘Œ˜•’š”—„˜–™‘”’œŽ’’™¦–‘‘Ž‘˜§“ Ÿ‡‘—’• “™™’¥œ’š“š’—•—‘˜–‘’—™‘‘”’‘Ž’’Ž‘“‘Œˆ”——’‘‰–œ•‰”’’•’…“•’‘“•”’‘‘’’–Š“‘‹—™‹—’Š’Œ™’›’˜”•“’‘‘Ž‹–’‰˜“‰“‘›—•“‘‡•”™‘™Ž–“‰Ž–”—˜’›‘‘•–šˆ˜“•˜‡Ž“’’•‘’‘•““˜‘“’“Œ‘Ž“Œ™“’••’™‘’’’‘šŽ”‘’Œ’——”˜’ŽŒ‘“–•’‡…‘•™ˆ‡Œ——’’‘š“’’‘Œ’Ž’‘‘›‘›’‹“‘‰š›“—’–““ޤƒ—ŽŽ‰‘’”‘š—•›—•’’˜••‘”“Ÿ–’žŽ”‘•œ’œœœš–œ——Џ“‘’’¨Œ”’’”’‘šŽ›¥•œ›’–˜’”®ˆŽœ”‘’“ —•’œ“Œ™¢†’š“˜•™ž’•Š‘‘‘‘˜Ž›‰’£’—™œ’ ——–’“—”™”•ª›˜˜œ’™Œ«’v’‘‘—“‘’”{l—œ‘”’”’‘’‘—œŒ’’‘‹²”­Ÿ’“’”˜”‘’›‹‘˜˜‘“™ ž——’’‹—‹Ÿ‘Ÿ•¯œ–“’’š›’‰—~œ’–“’‘˜œŽ“¦‘‹Š–“˜–’’‘Š’¢“—‡Ÿ’’—•’†‰ ’˜–¡—œš›¤š’˜•¡—Œ‘——“˜™Œ“•£”šŽ—š˜•“Ÿ¥’““’“’˜’’‘™— •ž”Žš˜– ”’’|™ž”š˜Ž’’’š”’™ §Œ—›™’œŽž©—•¢Œ™–’•¢Ÿ¡—Œ’‘˜œ¢’›„˜’¡–™ž—› ¡‰‹˜“—’–Š‹’™’’’’‘š‘˜•’“’““”˜’››’ž’œ—“¢Œ”““’–‘—¤’’‘ž›Ÿ˜ “š˜Œ•ˆ‰’›”“£ž•Ž¢”Ž’›’š˜’‡•›ž’”“’’˜œ•”‘žœ’šœ–”Žœ’’–’‘—Ž›¥Ÿœ”¬—’‘¦’£•™™’„—™”‘’˜’’ž —‹˜’–Ž–“„”˜‘›’ Ž•’’’‘‘“–‚ ”“‹—£‘’—“Œ“—Œ—’’’‡’’‘•–‘‘˜™‡’’˜•Ž–’ˆš‘€’’Œ‹“‹Ž…’•———‹‘Œ’›œŽŠ†‡Žœ’‘‘š’Š‘‘š‘‘–dŒ—‘“‘‘’š‘’™‘•”“’’• ’—Ÿ’’‘Ž…‹Ž‘’Љ•š’¡‘ŒŒ”’”‰—‹˜›—†‘’”Š‘ˆ’†˜’Ž‘‘‘‹”‹•‚™’•ˆŒŠ‘’‡’ Ššš„’™“’’‘Ž‘™‘‘’“‹‘Ž” ‡’šš£•“”™‘Š•‘œŒ—‘”–‹šžš”—¥——’–•’’’‘’—”—…™—•˜£™•‘ž‹œ‘˜™™”‘“‹Š‘‘“ˆš–“˜’””˜’‘† •’Ÿ•¥–’––’”˜••‰’””’““†¤Ÿ–œ•™ ‘“™š— Š‘¡‘–—‘’‘–˜œ“‘‘•’’›‘‘——¦’𙕆“™•’’’˜’•‘’›Œš›•‘’—“•—’“™Ÿ™˜ŒŠ”——¹’‘’›”‘Š‘˜’™—’‘•¥š”“¨–“‡‘—“•—™’”—’“–‰™‹’“””™‘“›’’”“™š„“’“£“Ž˜“”™˜˜–Œ–‘‹—˜Šœ’š–Œ˜Ž•“”’—’•“™“’‘’’”›”—œ—’˜’¤—’’ž›˜“”’’Œ’’œš‘œŽ™™’šŸŽ‘ž•˜‡˜’“’›’Š™™’£Ž˜—–™‹’’“—˜“‘–’ž¡”–“’•Œ’›’–œ’’”’˜––˜’‘’—“–£’š“–š‹’•œš•—˜›“’’˜š¢š’“Žš’š“”™™“ž’œ’‘–‘˜“¢¤—”’”’•“’ ›‚£’Œš’’ž“œš’ž™š–›Ž’Œš“ž•™š–“™›‘’‹‡˜’—›’–œ‰’•›—•“œš—ž‘˜“–‹˜œ—“˜‘œ”“ƒ†“Ž •–“’•“’˜›šŸ˜Ž–œ’–𒛇ž‘™“’’Ÿ™•’’Œ——–“™˜“›šš˜“›–™‘“Š•ž—‡›Ž“”™  •‘™‘’“›››™š”𢓙“œ˜Š˜“™’”“’’—˜‘šŽ“–’”“˜–’–ž‘Ÿ“–—š±–—’’“’“¡ž—’“¤„—•”•””¢–‘›“™ •˜–˜–“’““Ž’œ‹“‡—š’’‰’’˜—’Ž•›ž’–—“—˜—–“œ““ž•—šš˜”Žš’£‘Š’—•’ˆ•žž˜–“žš—•œ¢”‹¤¦š“—¡š–šœ——‘•¡¥“”•œŸ““““—œ¤Ž¢š—˜«–“œš’¤™–”“š—––“™Ÿ˜‹”š“•‹š—›™—–”œ™“–’Œ“”“–“—‘•¡žšž““˜•˜›‘Ž•”“¢Œ ›–“—“™““¥¤¬™”˜ “’“•“Žœ’˜”œ˜“•–‘ ‘‹“““žœœš’“¤–œŽ˜¡“–•Ÿ¥œšŸ“”žŸš˜™¢³¥¡—“Ž“š›“ž£’’“¢œ““–——¥ ““’˜•Ÿ¢˜“¢”“Œ˜‹™šž¢ ”š“–ž’“—žœ˜—•Œ˜’™Ž›››”•››ž§’“¥–ˆ›•š—šˆ˜”–™¥’›Œ–’’›‘‘˜œ™žŽ—›™šŸ˜Ÿ‘‘˜‹ –œ˜š‘•–‘’‘Ÿ ’•›ƒ‘–›Ÿ›¡œ”•‚”Ž•‘“–~›œš›’¦‘Œ•Ÿš–•‘‘—Ž•ž™Œ‘‘›¤Ÿ“®Š‘Œ‘’–‘‘–˜–š‰¡’’‘‘‘–¢‘›’™›’—•¥š™–’’“‘ •𔑒œ £œ‘‘™•–¤•™ž’“”ž”“‘€ž¤–•‘˜’›•‘{š£˜‘¤š‘‘™š”„›£’¬Ž˜›¢›—’—˜’’”£ œ¦—¨˜™‘Œ“›‘—•”‚Ž‘›’ž•’’‘˜‘ž•”’˜Ž›’“‘••–œ˜ž“”›“’’“–•—“Ž˜™Ÿ˜”—–’•™‘’–‘œ’•—’“𔓕„“’”’’™˜™–•š——“©£œ–š“—©‘˜—‘œ–“›‘•“›’Ž‘”–“”›˜Œ›¢’—’’’“”¢‘™–ž’““’”–™’–˜•œ’’“–›¤—””““–œ–ˆ’“—™¢”–›”•ž˜’”•’šœ’ š™–¡ž”“ ™“‘’˜““•”’’–”™“‘’––›–––“”˜““•™“’’—•’‰§’˜—˜˜–œ’Ž‘“’Œ¢” ¡›Œ”Ÿ’—–›–——‡Œ“Š‘˜“’‹—Ÿ›‘’—‘‘—˜§¡›­“ž‡ˆ”¢’‘›š£˜“Ž›’ž™Š™‘—¢œ—¡™™‡‘œœ –›”’‘œŸ’±—‹Ž•™’–’šš˜ž˜•Œ‘’¥˜“‡ŠŒ¢‘˜’¥™‘”‘—‘‘‰¼™¢™‘’¢‘‘š‘–••‘’˜™—ž’‘Œ‘’‘šš”‘’–œœ‘‹•‘¨š“˜˜Ÿœ‘§’‘Ÿ’‹¢œ’’„‘–’›”‘¥š™Ÿ‘” ‘‘‘Ž™•˜–ž’œ–¡–™•’¤‹’“••¥˜˜“œ™‘ ˆ‘™š”—›¢‘•™ŸŽ¡“‘““Œˆ™•‘““š‰”–”˜—‘Ž“•£‘Ž’“‘‘‘‘•£‘œŽ‹“‘”Œ‘𑦓••™•‘—’’™˜¤“•™–›’““—–™‘Œ•Œ˜Ž—’•—–••¥•‘’’–™”‘š’|•—˜“˜–ž“—“•“™Œš’Ÿ‘‘œ‘‘Ž”¦š–‰‘“’’—œ‘•ž˜ŽŸ’›–”’‘–›“•‘‘“˜›¡‘—Œ‹‘’ ‘‘”Ÿ—‹™Ž“’•’š—’”™‘“˜’‘œ–š”–‘ž–˜‘‘Œ‘Œ›Œ‘–“š—‘’•‘’’—‘•‘ª˜’‹“œ”—™š”“— •–Ž™—–’™šž’“˜”ž’’‘‘š–Œ¢’–—’Š“›™‘›•–—›š•‘œ’•”‘’£¤‘›—”’š–Ž Ÿ”›ž“›˜’‰”™Š•ŒŒ’Œ˜ššœ–‘•™Ž“”š‹›‘—œ“–œ™‰‘‘š‘’œ‘‘“‘–šš¡’“’‘‘¡‘‘“—’‹‘™¡‘‘œ‰ž’’‘š•“Ÿ‘’šŽš˜šž‘“”“•—”•‘ ”› ž””¡›šƒ‘š’—˜‘—•Œ™‘’•‘‘•ˆœ™–¤˜’“•™œ•‘›’ƒŠ’—Ÿ–”“££žŸ”‘…™œ‘ —˜‹™¢˜¡’”ˆ’ž™’“”—’”’Ž—…™™š‘–œœ’–’‘––’’—’‘™•—ŸŸ—ž•§˜—’”›“–•‘’‘”–”’ŽŽ‘“‘–Ž’‘˜”—’™“›œ’–‘Љ–œ”›’ ”–‘›ž”’‹•—‹Ž‘’—ˆ’‘’’’—’‘˜’”’š’’š™˜–’’–’˜Š‘˜•’œ¨’’Žœ’—‘’’‘’Ÿ’™‘’˜Œ˜Ž‘˜’”•—‘—˜’’—••’”‘’š’“’–‘Ž˜Ÿ•’’“’’‘ŒŠ˜‘Ž’˜š•–š’˜’‘™‘—•’’“ŠŠ’—››£›““‘›‰œ““››–˜œ”‘˜‰¢‘ŽŒš˜–•Ž—’˜’‘‰‘‘“‘¡¦—””¥’™–‘––£Œ‘–˜Ž‘™š”‘”‘‘›š|’˜š‘˜“’‘“•—•¤•¥Š—’–˜›•’”‘Ÿš˜˜™””Ÿ“’›–°‰‘”‘‘‘Ž¢‘‘šŽ™‘‘”‘Œ‰‘ˆ˜Œ“‘’•™•š‡’’‘Œ‰ž–‘‘•“”’Œ“’š‡‘Œ•“‘™™š˜’’¡Ÿ‘‘“‘†‘“ˆ‘§•‘˜’‘‘’’ —–¡Ž”‘’•’™Ž“š’ŸœŒ’›”‘”£‘““™™œ‘š“‘”’“‰“—’šz‹š™Œ–”•‘™—–— ›”’›ˆ”—‘‘—‘‘’’‹‘”’Ž‘‘’Š‹•—€¦•’‰’’‘¢…§™›”¢š˜†œŠŒ’‘“—š‘‚‘…‰–©“ ‘’މžŽŒ‘‘¦’“”“™˜„‹’‰˜“”–‹‘Ž‘ˆ‘‘†š™”«–‘’‘𙓑’‘˜‘“˜™‡ˆ ‘’‘•ˆŽŠ’Œžš“ž””•ŸŠ„‘”Œ˜‹š€‘‘˜¡’ƒ—‘€Ž¢•‘•—‘‘•Œ•‘‰—’”Ž“ŠˆŽ’ ›—ž””–‘”‘‘~ž™‘…‡Ÿ’‘¡œ˜’¥Ÿ¤Œ§‰”†›‹œ›ž˜Œ›šŠ™Ž‰†œ’’’—•’ˆœ’‘”‘‘’— —’ •™¦®–‘”‘”Ž¢ž‘œ•‘Š¥—Еޒ¥†›ŽƒŸ‘Ž•¡Ÿ‘‘’›““Žš‘𦗡‘ª™¦˜Œ—¡˜˜t™•‘–¡|žˆ•‘’‘’’‘‘𥍕В–‘’‘‘•˜‘ “‘’‘•—¦ˆ˜ž‹‘’‘œŽŸŠ‘’”™–›§‘”– ™‘œ–‘—“›£› ›‘‘œ‘¦˜•š‘’Ÿ‘‘Žž›œ¬‘Š˜Œ‡¡‘”’«’‘’¤ŒŸœ•–ŠŽ‘“„¢‘“˜”“•¢˜œ‘”š‚‘”—‘”““’—›‘›˜š–—¡˜–…ž–’–‘™›’’“’’–™“˜›’ ”—‘œŸ‘—‹‘’™Š“—’Ž– ’’™Ž—‘Š–•“’˜–•‘‘“’˜–žœ¦‘‰˜–𗣕–“••’– –ž‘ƒ—¡“™•‘›¥“’‘Œ’˜†›‘’‘‘“‘‘˜•†š‘—’’’Œ‘’š‘˜“™š“’•~£’“‘’‘š¡’™‘’’—’›“¬‘›žœ‘’“Š—’š’““‘‘’‘‰Ž‘›™—›‘™‘‘–•”£“›‘›––—˜•’„‘œ’–™–•Œ””‘’–‘Ž—˜™—’—ˆ’œ†—Ž”šˆ”˜””’šŽ•—•šœ—Š“”‘’“•‘‹’’“’’œ‘’Ÿ‘ž‘Ÿ‘—’’—›’Œ•–’šš˜’š‹•‹˜š’”› ”’‰–“‰’ˆ‘‘’†‘•’›”•“š’” —Œ‰“›œ’—…–™’Œ’Ž’’“‘‚’Š’’’”“™™’˜——š—’“–™¦”“”’˜–‘’››‹”‘‘—›’—‘’•‘š™–Ž›š–’ ’˜‘Ÿ•‰•’”›’’‘ŠŽŒ™“œ˜™“”’™“”™œ„”‰™”’’‹™’œ” ’‰ ’Ÿ…’–•“•—“›“ˆš“”žœ–‘•›”‘Œ—›“‘’“’–’’™’’‘š—š‘›•–”Ÿ’“”‘œ’˜™–š“Œ’––Ž’Žšª•˜—–“’’˜—›’’š”ž“•’š•§‘–’“›’ ž›—”Œš’¥™—”œ†‹›””“‰™›™‡‘”‘•‘’’”“––’™‘“’’——‘••š••’Ÿ›™“‘–š’’’™œ˜‘’¢Œ›”–™‘–š”Ž—’’™™’˜—’œ‹•—’–’’’š—œ’”’‘•¤”Ž”…“’”—Š—•’“—’”—“œ¢“”’›’ƒšš’–’–š™Ž–••“Œ”‘–•“Ž”’•™’›•˜•Ž‘’‘–———‘˜“”‘’—“’’’’“™™•——™›–™•š˜’——‘”›–•’š‘•”“Ž™‘“”›’™š’—“™–‘“’’–”•““‘“– ””‘“’–”•”š˜‘•™“›“”‘‘’›’”’Ž–’’˜Ž’šŒ’’’—“™”’“•›–•’˜–•”“’’’–”•“’ž›“•”“•˜‹Œ”’›’”•Ÿ‘š’“’“Ÿ’’“‘•’˜’’•š•›“›™’‘”˜’–—“–“––Ž—™”Ž›’™ˆ›’ž˜–“•‘•™’Ž—’•––“”’‘™–‘œ’™”–Ž•’•™–™“˜Œ˜š“’•’’’’‘“Œ›™——–“Ž’•¯’–—Œ“’‘“’˜–”•›Š’’”“““•”•š‹™“š’š”® –žœ’›•’••—’”’’Ž–Œ˜Ž’Ž“Š˜ŠŒ’“’•“’’Ž“••›•‘“’–‘˜’™”’˜ ’–šž’—ž—’’’™š’š’’Œ—–˜™•“‡Ÿ˜š›–”’–‘“Œ—“˜‘’–Ÿ’”“—›’™›”’–™’’˜•š–‘’””’—”‘–’““’š˜›’˜š‡“š–’†’˜—’——•““™—‘˜’”‘•‘™–““—œ—’š••’œ¢—¨•““•’›”““‘“”š•’šŽ˜š››•™™“œ“’˜—‘‘“’—Ÿ–“––“Ž“”“Ž•–’“”˜Šž—’“‹›•ž—™“›ˆ—˜œ•”“š–˜Ÿ”—’™‘“”™˜—™“•“”—““˜ª‹–›››“”“Ž”•—“”˜—™ž“šš˜‹˜˜–”””š›“˜““¦•›•—š•”‘•˜”—“•••—š–—˜˜¤””“”—“‘›““•““ž ™ž“•“•—––•––“•—““œ‘•”””–““…—““š˜ œ’”—’—–¢”Ž‘––“™–—‘¡Š––’Ž”“”“‘¡š’š’’‘‘’”‘މ’˜–Ž•‘˜‘—‹™Žš›’–š’•’“ކ–“‘’—’“‘’‘š™’‘…—‹•”’“ ’‘™‘—¡•’†—™•›“ž˜‘–™‰—”¦‘‘‘’•ª™˜”“’“’˜‘ŒŒ‘’‘‘Ÿ’–™š”˜’’’—‘›‡‘’–“•–••‘‘”–’‘”‘•’š•—˜˜“˜›’Œ’“—’•‰Ÿ‹’Ž‘‘“”’“• ’‘™šŒ‘’”’ˆ‘”˜‘”˜‘Š–‘‹•ž’Ÿ˜“¦“ ˜–ž‹’›©Œ—’–“““™””“‘™Ž™“Œ“———’’“’“’™˜š“—œ“¡›’™—–’˜£—’¦˜Ž’—‰’–“–‘¤“¢š”Šš•“••‡’š“œ’–Ž•—’‘•˜ž’œ–’›–˜˜“’™•Ž’‘“œŽœ‘œœ’”’•š’’œº”Ž –’“’’’–“’“”—“–‘œ£’“““•˜“’“—”¤š¢”‘˜”Ž—’–’ޔ𕔕ž˜› “‡’¢’£”‰•’’’’“œ¢˜ ’–”‹•“–“®˜“’’˜§Œ›—Œ•’—–¡’›˜””‹¢™’’™‘„Ž•™“”“’”•’’•’˜‘‰’œŽ“ž‘’‘“—’’’’•›‰”–†š‘”Ž“Œ‘’“”“‹”’Ž˜’’’˜Žš—ž’Ž””š‘”•”•’”’š”ž›’ŒŽ’—“‘Œ’›’—“Ž“˜›‹–š”’’•‚™“’Ÿ’‘“’’“Ÿ¦–›’‘’’’˜Ž’ž˜™Ž›’’—‘}”ž’’’‘“’’“šŽ––’‰‹“Œ’‘ ’“¢”•‘’’’•ž’¥Ž‘†’Ÿ–’’‘‘šŽ— †’ޙޔ””’‹—’—“–‘•Ž‘ž’’’”—’‘•‘‘’™˜’—Œ”•‘‘”‰¢™’—£‹‰Œ‘•—’’“†“¥“”’‡’’•’’•š”—–“†’‡–’—Ž•‘‘ˆ¡’Š’‰’Ÿ’•–•›Œ’ž•’”›ˆ”Œª”“”’˜’‘—ª”Ÿ’—‹””–œ‰’‘ž›„¤’—“œ ••‘’Œ’’‰’’‰–¥–‘’’’—’“œ’Œ”•’ƒ“” ›‡¡Ž““’‰„šˆ’““ž“’—““•Œš•—Ž’›ˆ“˜‡‹œ‹ „’’†’’ŸŒ›š’𢒒’™‘…—¤’›Œ˜˜„‘‹“‹’“”˜•£’ž•ž™˜’‡¢Ÿ’„‰š†•œ’‘š“‚“’“’š–œ—š’‘••™’‘––Ž”“‘˜”’š–“š‘‘‘‘‘Œ‹“œ‘š”–“‘›‘“¥“—–’‘‘–šŽ’‘•’¢•𔑓ž’˜‘”Œ›–•™—‘”“Ÿ˜›”™‘œŒŽ”Ÿ™’˜‘œ’›˜‘“—”Œ“–‘‘”‘Ñ—‘Ž”‘‘™£’”‘¢˜‘‘‘ ‘”‘—Š‘•˜“™›‘›˜‘‘˜›–™‘’™ˆ—›˜•™˜œ“‘–Ž¡…™˜™’˜”˜‘™—‘š•—‘‘‘‘”’•””žƒ’™Ž™‘—–˜’‘›”¤”¢“‘š•‘ŒŽ–‘›˜œ›‘••Ÿ“œ•‘””’›‘›•”Ž‘˜”™‘œ’›–—’–”˜ –œ““Š—š““•“’˜•›—˜ž•—Ÿ’’—’–™Ž”“–˜’’ž‘¦•‡“•¡“˜˜š–’š–Ÿš“˜’•¡™œ”š“™™“•›—™’ž˜—–’œŠ“”“’‘ž¥‹’—’“’’“ ˜”—‘“’“–’’’–•ŽŸ‘“”–•…•“““’™š™–’“”—™¢“’˜—›”•“’™›Ÿ‰”–Ÿ’—“™™’‹œ¥’’”™’’“’’‘›‰“’•“š—™“˜š’Ÿ”žœŸ”Ž—’ˆš’—•™š“”™‹’‘’Š–—•™Œ˜•—˜’œœ’–›‘›—™’–’”•™“•’–™““’’™‹–˜›“™Ÿ“““’›™Š˜“Œ˜’••’™•’ž——•“—˜Ž˜›“•—“”’‘˜¦œ˜Ž›“œ–“•–››”’‡“œ‘‘–’¥”˜““’•˜ˆ”¡’’”’’–’’–‹Ÿ–•“”’“’’’‘–’—™›˜—’—˜——™““’–’•”’“ž‹Ž™—“’™—™™”’’”’’Ž“•¡œ—”’œ“š“’–˜’’˜˜’’š‘’”•”Ž“”’˜˜—“š“’ššŒ™˜’“œ’”Œ•’˜•—™™—‘œ”‘“ˆ’Œ’ž”šŒ“‘™”Ÿ¨™––›‹¦•›“ŒŒ’’§’ž‘‘•’‘‘šŠ¡•’š›œ–‘ž™••™Ÿ‘˜™–“‘ƒ•¢Œ –£‘ž˜•–š’‘”–…‘—¤Ÿš}–ˆ’¤™–¦”Œ™š‘¸™‚™•’›€’§•›“’Œ’yš‘›‘–‘‘’©“Ž•‘‘‘“’˜¢‘š”›’”˜‹ …¢’’‘‘’¨•“‘’—Œš—”ž“‘ž“„Ž”¤‘—”•™‘Ž•ŽŒ•—‘›‘ž’‘Œu—‘‘‘‘–™•—Ÿ‹“—˜ˆ —œ’­”’—–“‰š›Œ™‘¦“•‘–š‰œœ—–Š’’—ž–œ“¡‹¡„”œ˜ž£––˜™”——ž––—’›•™˜’“““’™‘•–œš“–”‹”’”†‘”“™“˜‡–‹’›Ž•Œš™‘“˜Ÿ™Š•—“–˜š‘˜’šžŸ“•˜–Š’†“•˜‰‘š’‘“›‘—Ž’¤—‘–‘™ž–•ž’’–’“’’~›™˜ŒŽ’”’’’Œ’–‘𔓗–š•›š’“’”£”™’“•’„™˜’“˜Ÿ“‘“š’‘•ŠŠœ’‹’Ž’œ’œ“–’’œ™’™—’’ •”—’‘–ž››–“Š”’©šŸ—‰’Ž•™—’”—“’˜Ž–‰Œ“•¢‹‘–”žˆ•˜’Š”‡˜œ’’¡™’™š”“˜’šš‹¦˜—’‹”™˜’’‘‘˜–˜Š¢‰Š•–Œ‘œ‘œ““˜’˜Œ’–š•’’š‘˜•–‘”’™‰•“–“•’˜›‘’‰›Œ”Ž–ˆ–’‘’‘œ’žš–’Žš™Ž–––Ÿ’—’•›–x’’™’‘–’‘œ¦—“’’’Œ‘˜‘•‘𔓑›™‰˜”’™’“‘šŠ‹˜’’ž‘—™‘—‘’’–‘š•’’™‹ž–———ž˜’•’•‘œ–“–’“”’‘š™™ ˜”’’ž”™˜Š˜’‘ˆ …ŠŸš˜š’ž•’•œ–›“š“Ž”“˜”Š—‘‘•˜Ž™”Š–“™•“œ––™•š˜›’š‘“š“•’““–’“”•“˜”—–™—‰˜•”““ˆ’–‘š™š“’š‘“—””œ•˜“™—”––“˜¨›““’•š•š’•™“Š‘”™”•˜““ª–”–“”•ž–™™’•š’‘ š“•“’’““ŽœŠ•––”“““““š“•”™˜‘“˜™ˆ“˜–“”“”““•““”œ’›—’–”—˜—““‹˜—•™’…”“˜“•”“˜•“–š““—œš”˜™“’—’˜•–”“–’𙓕““’•““Ž‘š“˜“––˜˜“–Ž’‘Ž“”˜‰•ž•–’–‹˜—𙔉”‘““Ž’’’’’’š“‘”ž›—Œ•’‘’†‘Š”’˜¡••’’›˜’’’Ž˜Ž—“‹“™šŒ’’˜¨Œ•Žš’’Š’Ž˜’¢’’—’‘Ž‘“š“’“’œžˆ–’’Š’‘•’’™‚ ™Ž”—’‘’›’Ž’š•”›’Š““¥˜’’’˜‘’Œ’’’‡”œŽ‘’Ž••——’’Œ’Œ“¦›–š›’›’—˜’œ’”“’œ—’’—•’Ž““““•‹—š‘—’’š—ž‘œ”‡–Ž’’Ž•’‘”“•¡”Ÿ•’›‹y–™–•“–›™œ™‘—›—”¡›‰˜š…•™’›¬’’›’’›——¢¥‹ ¤™–‘¤™’š…——‰˜’—˜š’˜˜Š™–~’–Ÿ¢•Žš’“¤–—’‘–˜‘‘˜”“’”›“ž¡”’œ—œ™‘‘Œ©œ™”‘‘•£„–¯’š’‘š’’™†–Ÿ–‘•’’’™’š›’•–›‘’˜–™¥›’’’šŽš”‘’š˜†˜–“’•‰’›šœ›’‘’”’˜š–ž”š’–’—’’—›˜’•ž’’˜œ“”±˜’—•“™‘œ’“’’ ˜§”Ÿ˜”Œ”’†•’•™£™ˆ•™›˜“”––’“–•””™“ž—Ž…’–”‘•”“‘–¦’”“”’““““’••–‘““–“‘’–‘“••’’’”–š“’’Œ““›’š™”•”““””•‘’’Šš“‘““Ž™“”’–“”˜’–“›“€Ž›‰’‹”–…–’”“–œž’”’“““•’“““‡Œ––’“““‘“•’’–˜”‘“”’›€•–““’“•Ž’“‘š‘’’“‘Ž”œ’•““‘’–’‘“‘–•”““““”“™““•Ÿ““—•˜”“•“•›’•˜‘‘“’“””š‘’––‘’““˜““–’–’¢•’”‘˜“’›’’›˜‘›Œ•—’—‹Ÿ‹‘”ˆž’•“—’‘”‘–˜’ª–‡•Ž˜Ž•——‘šŠŒ“‹˜ž‘–ž‰‘ž¡Œ’ŒŒ”’’‹ž“Ÿ›‘•š ‘‘©šŸ™’’’”¤›˜”™•‘Œ™›œž’• ˆž’¢š’—‘‘’“‘‘–‘‘—‘’‘Œ’“‘•š—–Ÿ¡•t”Ÿ•’’‘‘—Ž–’– “š“•Ž˜•™Š“‘‘š’‘–‰™’ ˆœ‘‘ž”‘š‘ž‘¢¤‘‘›­”‘“”‘“š ›•˜’”›’‘‘‘¨œ“ ¥Ÿ‘œ’˜‘Ÿ€’–”™™¤—••”–™š•””•‘”Œ”“–•Ž–•™š–—”œ—“•””–””•Ÿ”“ž•”Œ–™•”𙕔›“”“’™””’ž˜’’™•” ™“‘”“•– •”–”™”Ÿ––“”Žš”•”‘•”——™”š——–”•–•“”›—¢“”‘”’–””•š••œ””“”›”’”‘—•–”•”Ÿ‘—Ž’””””–Ÿ”””’’•œ˜”œ“–””””˜—œ‹––’ž’–‘”–”“š”””ª™”•‘””’”’‘–™›”˜’—‘“••”•””Ÿ’ž“’’˜•’”’š™””“”•“’“˜’’–£‘Ÿ‘“™”“Œ“““™’•“’’–––ž˜Ž›–›“’Ž›““’’’“—Š›‘”™“Ž“•’œŠ“Ÿ”•’““Ÿ‘’¢——”¡’’‘““š–”””“œŽ™’§¢©¦š“––‘˜•’ˆ ’Ž “¬’ª’šª†ž“’”–—š’’œ’’’’“ˆ •—“’“““’’š’›žž’žš‘–““’‘›•˜’“𣕗œ˜’“”˜—˜“’‘£•’¢‘ŽƒŽ˜ž’’“˜–’˜˜’’Ž—’’ž¡’™Ž|–’Œ’›–•––“šŒ“›˜Ž™Š–„¢›’¢™’œ’›˜‘š˜—’•ˆ•Ž–”•—Œ—š““š’˜Œ”–•‘’•™˜Ž“Œ£’™“““’“——˜ ’™–˜‘’š–“˜“‘™’–’“—”•““’Ššœ““™“˜”•‘“—“ž˜˜‰‘’”“–›š›•˜’“ˆžš™›“Ž”’œ–““™ˆ¢“—’‘›““™›“”““““’œ‘’‘••–”“•Œ­Ž–•“““’—•“’“ž‘•––›’“˜•”ŽŽ”“Ž˜“•œ˜”š“’“™™“ “„‘“““—šŸ˜•š“–”™‘•“¡”“™˜“‹‘’•Œ›“™Œ•“”˜—•”–Ÿ“›‘‹˜¦™‘’™‘Š—ž‘œ“„•“–“š˜œ”˜’—™’’’’’™™šš’‘˜•˜–‘˜Ž–••‘›’“–•’‘—¦˜™””™“’’™“’˜ž”𑥤›¡‘¡Ž’Ÿ‘’‘•“—•’Ž–¡¡‘𑓍œ›“•›¡‡‡‘–‘”™‘’Ž˜‘™˜—’‘’—’ —‘ š¢’ž’œ•”“œ““’Š‹†—‘’ šž“˜“¡‘‘–‘’’£—Ž’“Ÿ¢–¡’–’Ž”’¨–™š’Ž›‘’ž¡•Ÿ•˜—“–£ž™—”’ž””ޣޓ›Ž–•™Ÿ‘ƒ”Ÿ’’–—›’—’¤’–šž•›š’›”—œ“š’’“š¡›‘˜——š™’š“”¤•““‘““—Š‘¤Œ›“””‹”’“‡•–™œ—š“—–’“•ŸŸ“ššš”˜˜•˜ ž”•˜–‰“’¡—’–•‘““›š•œ˜‘™•’‘“’™”š•¥”™”¢˜—”ƒ’¢’˜˜’’—„¤‘š˜““’•“› ’‹’•˜¢””˜Œ†œ¢œ”““’ ˜š““—““˜–”™š”–“› ’’—œŒ¬”“œ“š“š˜““šŒ“–•“’žŽ“”“Š’˜—• ˜Ÿ“‰–•‹›™™’–œ•’¤š’’œˆš–œ˜’›•˜•—‘ ”Ÿ•œ’—–¨˜‘š’“¢™’“Ž’’Ž—•“’›’’•“›¤•™‘’“™”¥›’¢›–›Ÿ—’”™’“š—š‘‘‹“”Ÿ•”›’’Еޒ’œ•˜›“™”“£”›šœ’˜˜’±šŽš‘œ•¡Ž“Ž’’š¡”“t’—’•–’’”œ‘˜š”‘’’Ž’”•’•™“£’–š ©ˆ¦•“’’™›–’’–™—–˜š“—’•’”™’–Ÿš›—‘”“›’‹’Ÿš’‘—š’”˜’’˜‘–••‘‘Œ”›•–“’’™”›Œ©“ž —’›¡—’™”—’– ‘”’Ÿ—{•Ÿ•’™’–›’›““š“™”—••’š”‘‚š“Ž‹–š’’–’’“𓦓”•š™Ž“£–’š‹–’“˜’•žž”’œ•…’•””—’“™•”‘œ•šŠ›”–’œ›‘–”–’—…“—¤•–’’£œ’—Ž‘ŸŒŸ’’—›—ƒš’•’‘’’”ŽŠ•‘Ž™’’’˜’“—’‘‘“—‘’™–˜›•›’’“’—˜”›’’•”˜“˜“˜–•—›˜“’‘™•’™˜’–’’‘’˜”’ªŸ—’˜›’’œ›š—ƒ’™˜™–˜•’Ÿ”’–”˜Ž£‘›–ž’”£‡’›˜Ÿ—œš’’•““’˜–“”™‰››’˜£š›š•––—•šœš¨ž—“™”¡Ÿ’““’’›””†¢’˜¡“”–”’•’™—’˜’™•“•¡••——™’š˜˜›““••”’™’ˆ“‘˜™Ž›’—|’’Ÿ—š’˜“—‘•—™Ž™—š’“›–©Ÿ’’“˜’’š”šž›’“’–’˜•’’›‘“™’’–•„–š’’‘—••š’’˜œ Ž”–”‘–•–”—’›‘—’•Ж𓣓𓓔’Œ—–’’—›’’–”›¤œ™“‘––’‘™’‘ˆ“””Ÿ–—’•’•ŒŽ’š‘œ“““œ”••™–™“•™–—–’™”–”™˜™–›•™š˜–”–—’””™•—””•””˜”—–”™•“œ—•”˜”•’—–𛕗”š™™””—“—–™˜˜“”•š™—•›”—•—–•”™––™•’”›”˜”™™””™–”—––š”˜—’˜™‘—”˜‘•—“œ”™””™””˜—œ—™“•”–”””š˜”š•˜šš”–”–”” ˜”””šš•™””–––˜•—”˜››–˜™”˜––—š˜™’“›š”˜”ž–”™˜’˜”——””“”•–•–’•—“›•›œ˜”•”•—–•›’•“”–”›––”š˜••”œš”™’“‹ž’–Œ‘’–ˆ¹Š†“Œ‘”–••£›“Œœ“•’—†‹“’“’–†Ž‚‘šˆ¡š’„’’’𑑍—Œ’›¨˜˜’ˆ¤–¡•²“˜†Ž˜›’•““—…’“’𛉒Ÿ“ž§Ž“‘‡Ÿ—’ ƒ“’¥˜”Œ‘›“™Œ–Ÿ~’¥’˜–’’•¤’‘™«’•’“š›’Š˜†–Ÿ““–Œ‡‘§”““’’œ™–’’Ž“¦š””‡ˆ•„ Ÿ’Ž—ŸŒ‘œ…«¢“”’’’‘ž”’š’’ŠŒ—…Œ…Ž’„ƒ•˜—š—’¡””—‘ˆ‡¨ŒŒš‰Ž’°–’–•Ÿ’®•–’•• —“•‘˜–“—‘™’—”˜¢™“”—‘•’–Ž’™˜“’š‘’‘™ž¦––˜˜“”•’’’’””—•’™‘“’’Ž•’“•˜Œ“’’•“•™’˜Ž’‘•’ “”––•‹’—Œ™™’“•™’–’œœ”˜˜“˜’––—“}˜’’’’–’’˜‰Ž—•“•’’’–’—˜‘›“š“œ’”–•™“—’“’•¤—–‘’Ž”ž›“žš‘“‘š’˜•‘›”“š›Œ—’™’”˜’•™—’“‘’‘’–“˜ œ“’•‘“—Ÿ‘“ˆ’›“šŽš’••’’™š“’˜–˜Ž˜›Ÿ ‘𔉒˜˜ž“™’“˜–‘™™••–”˜¢’š‘–Š‘Ž’‘š‘’•œˆ—‘Ž–‚˜–˜’˜—œ˜Žš ‘Ž”’’ª˜¬‘‹“•œ’™™ž“”—“‘‘ˆ™›—™›–˜’›“•˜’—Ÿ“‘›™˜’šŸœŸ•—Œ“š‘‘œ‘”‘’Œ‘‘‹ž‰•”Ž‘’‘˜’Ž‘¡”¢™‡’œ›–…¤’•’’’”—™’‘š§ ™—“𔬗Œ‘“•™˜—˜’ –“’–‘’•‘”’œ›‘‘¥’‘™›— •‘‘£ ––•’“’—’•¤Ÿœ–›œ  ›‘—‘•“–‘Ÿ•š’™’“–“‘••’œ–’‘——–—•–’˜—’‘““’•––’’–’‘•”˜˜š—“•“•“‘’¥’—™—š˜’–›“’’œ’–“œ•“’–‘—“”™–™—•˜’’˜”¦•”“”ž’ŒŽœ“ž™œ“’£Ÿ•‘žŒ—›š”’–“—ž§‘“‘“Œ’’™˜y–•‘”’”’“‘–“‘™”•˜˜’“’œ™˜˜’’‘š™—‘’““’–•œ’”–š›š”˜’’›™ž¢š™‘‘‘’™–’¡˜˜—’™—’’’”–”˜ˆ›’•”–’—˜—’ž˜’”™˜œ˜”œ‘—’–œ’–˜›Ÿ››••’”™–”­”•’“‹–“‘˜¢Ÿ™—–“‹˜˜ “’““•Ÿ©”“““’˜”ª ˜®˜”“¦’‘ˆ“—›“Ÿˆ “’‰š’•…”“•“”•¦’‰ •­ž™¢’¬¯™‘Œ•r“‰–ž˜‡ž’œ‘”‘’‘•†•”“—••–™’–’•“’’¡‰Š–”Š’”“–’•Œ’˜˜“Ÿ£“—”“Ž–Š™““’” •¦’““ˆ‘ —˜”–Ÿ’™Ž’ˆ””«š—’Ÿ’’’œ“’›’™’Ž’’¤¢’–Ÿ––“š•—¤š¢“ª’’™–”—˜ˆ†‡˜–’{Œ›’­œ§Š„ˆ’˜“‘•“‹“˜’–””š˜˜‘—Ÿ•Ÿ”‘—’“˜™œ•˜’“’›œ’’’’’˜—–˜š™š“‘›‘’š–’”–š’“•–’—™—Ž››š‘’’—™™—‘™š•‘›‘‹šš‘’Ÿ”’‘–—–”–’œ‘—Œ“‘“‘’˜š’—œ”“‘ƒ‘˜‘’’”“ –›—–’’’—’š˜‘”œ™’¦’—˜–™™ˆ˜“’’•‘’œ‘’™Ÿ˜‘—¡’œ””˜‘’•–—˜’š˜•–•’“’•‘“–…—’•˜’’™š”˜•’’›˜–‘”’¡’••’’–”š˜››’w’’•—‘˜–’——•“–•‘“••“’—”¡”–”–˜™”˜•••š“˜’‘˜“•”””’—””•““––“™“˜“”›š”–š“˜•–’™™—”–š˜““™šš”‘‘š”—’–™Ÿ˜“›“˜”–“—–‘”—‘’˜”š‘ž—“–“—˜’’“˜™˜–’“™™“˜…›“–““˜““–Ÿ—“˜™”“”—“™š“•˜••š“–—›™“˜–””“šž•™“”–™ ˜——“–™–—–—•“šš”™š”›”–—”“””˜˜“–˜“™“˜–““šœ“”––’”˜Ž•š—œ—”Œ““’”’“›•Ÿ˜“‘˜š“™™–™•™—’ššŒ‚Ž•”’››–•”‘•–”““˜›—’•‘•‘•—‘”‘—”– ””—¥•‘Š—–‘—‘’–Ž‘‘–’°’žš‘š•–“““”Ž”œ—”‘‹“˜“‹”¢•Ž–‘’——‘›‘–”‹™—Œ˜™–¡’˜’–‘–‘£‘‘—Œ¯‘“•‘‘¥‘•‘™–’Ž˜’Ž¡—“”Ž‘’‘’“”‘›‘””‘¤—“–“”–‘Ÿ–‘‘šžš–Ÿ‘“‘“‘‘›”•Ÿ‘ž›‘–‹’——››‘Ÿ’”š””‘˜’’’•” ‘““¤“‘Š–—‘‹‘’™–‡“œ“†“–šž”’–•Œ—’‘•’”•“–”‘”‘˜•Š–•“–‰›“““”“’”‘šš“–˜”““’š˜“•–“Ž”’“”’•™““”›“—•–˜‡–™—–ž“‘“œœ”§•““œŒ™˜’”“š‘’‘”ž—•‹–”Œ‘˜—Ÿ’“““™““”¡š—›“““Ž“˜“••”–˜“Ž‘‘““—”““”Œ––”“— ——•”““•”’“¢™•”–›–•“”“”˜’•“¬’“””““••“¤”“”’‘“Ÿ‘•“›“”•™•˜™’‹†”“…Ÿ“‘“™“š‹™™’—™–”–’˜’——˜‘œ•›Œ‘•—’–“™›’˜Ž’’’’‘—’•–•’”•—˜’–‘“™•’™˜–š’œ—“’™‘’•’‘§’–’”’™˜“—•’˜–‘•’¦‰Ž’•’™š—“›’–œŸ’—–œ™–™—“›—žŒ‘›‘’Ž‘’•› •—”’’’”‘™—‘™––š—’–••š—˜’’‘“ ’“‘’Ÿ—”•’“—ž—–”’’—“”¢“™˜›“’•’𒬓Ÿ•’šš‘‘’‘“—“”’”•ž’’™™’š’”•——™•––‘‘ –‘™™™–“›”“’›•¢œ”‰’ŸšœŽŽ’™Œ“š˜“‘š’”ŽŠ’— ”“’™’“‘Œ•’‘‘”’š’™Œ–“•’’“›˜’”Œ••¨““Š“ –—Œ–“Œ›˜ŽŠ‘”–”‘ž˜’—›—’’’‰›’’––Œ—”’’£ˆŠŸ‘–’“™’’‘™ ’™’’’˜“˜’’–ˆ™’“–™•†‹¦š“““‘•–‹’’˜“’“–—•—Ž‘‘’“–’›œŽ’š’›“•’™¤’“’†Œ’’“’’Œ—•“Ž›“’“‹‘’ž““ £ˆšŽ’‰‰—’“”’““’“‘—Ÿ™›““–“”“™’“•™–””•–“—“““—˜”••‘Ž“”Ÿ—““““”˜˜˜•š˜‘”•’•œ—““Ž“‘—˜™‘“œ•˜˜“Š—“”•“œ”•Žž“‘›’•”™–’“¤””‘…–‡”Œ—˜’“•›“œ˜”“”™—••–™”‘••–Œ““•““›““ –™’•“““““““—–“—––Ž““Ž˜•”’“““—›”‘““•‰“™’—“–’•ŽŽ“™“˜›˜–”œ–•”–““•“›—‹–“•–““—˜”–˜Ÿž“Œ˜‰——”˜”““’‘”–—–‹’“™—“™›˜Œ˜˜•”’”–¥Žš„‘›‘†‹£’‘—˜µŠ‹–‡•ŠšŽ’Ž„’’’‘’‘—›Š›˜•œ•’”–”“Œ“¡’‰’Œ’¢’•—’’ƒ’‘ŽŽ—Œ—‘¥’¤–ˆ”“˜“‘ˆ—•œŠ•›’¹’£•Ž˜‘}’™“Ž›‰—¡‹‘š’“‹’’‹¡›–™‘’’—‘™Ž’Ž›œ‘’›¡˜™“’‘”™“‰’’™¨š„’’–›’—Š’‘š™š™‰¯–‹Ž£‘‰’ˆ–‘¨Ž˜”’•ž’’˜—•žœ’™’’Œš‘–Œ’­’ŽŒ’›™ˆš™’š‹‘†Œ†vŠ”Œ¡”›••‘™•”–••’•™”—•˜”˜”™”‘—“’•˜•””’•š™””’””—™”˜“˜’••’••’”˜”—”–—šš”˜˜”’”•–—••–””˜–—””𔓔—“””™—¤•“—““”“˜—˜’”˜—”™•’•”––›”•–””—™˜‘—”•””–””—› —”‘•”””–”›”—”™”“”–˜•“–’”””—™—–””–˜’–“—””›•—–”š”’—“””“›–“™“”“”š””™˜š–”š™””™•–—š”’œ‘˜š“–”™”—˜“˜˜•™—–™””“–”–““‘’“••‘“¢ ™•“–”Ÿ‘Œ šš”•–“–œ­š˜‘–˜’’““‘‘’‘‘““‘‘›šœ˜›•¡¨‘Ÿ¤š”—–¦Š‘”• ’‘‘– ‹—––’ž‘•™”–Žœ–Œ‘Ž ˆ Ÿ’—’‘›Œ“™˜ˆ—‘–§†ž’©¤›¤–™ž‘•””¡‘‘˜‘‘–˜†”—›•‘’‘”’𙑖”–œ¡’›’¤”ˆ–•’’‘œš””‘’Š£—™‘›–—‹–𛑖¢—žœ“™•™£’‘’™˜’’˜™‘‘‘‘——ª›šœ’’•›—Ž™•’‘—ŸŽš™š˜—•‘£©œ‘•š›œ’•˜’‘“•““’•‘”Ž•—Œ“’“˜’š“š’™‘˜”•˜Š“”‹žŒ““’“’œ––˜Ž˜‘™š“‘–’›—“—Œ”š““•”—“˜˜š“›–•‘—›—˜•’‘’—Œ“‘šŒš•™“Ž•”“œ–“––•‘’˜¦™™˜’›•ŽŽœ’“’“‘“’‘—•—”˜“’’“”’˜’’’––––’œ˜—’Ž ”““’˜›““™“–™•“”‘‘’——“–‘•˜––—™•’’“›‘’• •“—’’“˜˜‹™›“’–š‘–™“‘‘’Žž˜šœšŸ—š“ ”Ÿ’—‘’—š”›’™˜“¡š’•˜•š•••”™˜”“Ž˜•™”˜›•“–“–™“’““’›š— œ•œ˜–”ž’”—‘›‘”’“›–’••„–¡—•‡’‘ž•••˜‘– ž’š–’™“›’Ž–’žš”•’˜‘—Œ“’“Š“‘’—• §’’Ž’’›’’™–•˜‘‘˜“’’”’•‰’œ‘—’–—˜š—š““’’—”——‘’˜”ˆ–‘š“’–š“——‘’‘”ˆ”˜›¢—•Ž’’’”•’“Œ’™–’’““šœ–•’“˜›‘•™—“˜’˜œ›”•”•™–’š˜‘’’˜œ—‘˜––’™–‡“œ™“•–˜’š™’“–™™—’™™’™›“”œ–’“’’’’šœ—‹š›šš”•”™’™™—š‘‘™’—’˜’’“›‹“–•“˜’—˜—›‘”‘–™”’Œ˜„•”“‘“’—Ž‘–’ž”’‘œ‹›”œ“Ÿ™’”ŸŒ“—œ’“’¤’’™—­™”™”’“’ž’”œ’•”–•‘’—˜—™œš““’’–š•’’¡’—–’’›—–˜—œ’™—™š—¡™˜›’’’–˜’•’‘’’—’’™Š”›™Ÿ“’’’—›ž”—’…–“™˜••Œ›™ž—›’””’’”’’”š“–œ‘’–—•’”˜Ž›Š•“—–‘šššš˜–‘‘““’™Ÿš’’‘‘’’—•••‹Ž˜™˜™•’’”—‘“—’“”’’›¬‘’•˜Ÿ’œ”˜›•—“’𛑒”—›ˆ—‘•‘‘š‘‘•–“‘‘{”š•’‘‘—˜ž˜¢”““—›‘œ‘”‘‘’•—•ž •’’’’’¦œ‘Ž’——ž‘•”‹–Ž›’’’˜Œ“‘’‘œ¥Ž›”“”“›™—–‘ž—žž•„”“›’œ’‘“‘’›•–’š’‘•“–‹–šŒ“Œ“Ž‘˜“’’…‘‘“”†’–˜’”‘ˆš”‘”“•’’™•¥’¢–µ—¢™“£œ¡Ž˜¢’žŸ˜˜––˜“›—Ÿ™–¥œ’“–––““”’‘™–™¡Ž•ž–™”—’ž’—“–›•¢’›—™‘’¡œ…”Ÿ•‘†“‡›˜”™‘—žŸŸš’ œ˜–š›˜“•—•••˜¤›’†•—˜‘—‘œœ’¥”“ŸŸ”™¡“‘œ’”—’’žw¬˜›“›’“’˜’’Ÿ‘‘•š„’œš§xžš¡“’’š•’™’’”¡‘¢˜’“£–˜ ™¡™’’–—›’•¡™¬’“šœ‘‘˜¬Œ’§’‘›” “ “’˜ž˜šš’𓤠¢”–™˜£ž›’œŽ‘’›œš—Š¡Ÿ—ž’§œ”š““‹“”•˜“—”’–’”˜Œš„˜—¢š›’“–‹•’’‘’—¨ £¢ž“†š’’—Š’–™’›’˜•‘Ž’£•ƒ’–››“ ›–“š’—Œ–››’˜’¢ž ’y—™™™•’Œ”¨Œ“”¡Ž“™¡“”•”—Ȥ’‘‘“’’’–’•—”’“’”’–Œ’”•˜’–—‡™›šŽ““’š •‘’™ž’Œž“˜–œŒ’˜œˆš™’™œ˜’•’™Œ’—™’”’˜£’‘–“— Œ† ”Šš›‘•‘—’„Œ’“–¦œ“Ÿ”ž˜’’–’›œ ŸŸŠ”›’˜••–”–“šŒ’‘•–ƒ˜•Š”’’™‘”¥’’””‘›’’•’’‘˜ž–œš–˜›’Ÿ˜’”—Ž“˜Ž‘‹’‹ž•’™•›“˜“‹“••ŒŒ—•—›”˜•’’™–’ŸŽ“’—–••›Š’Š“˜””“–…œ•’ˆ‘š˜ƒ›‘‘’––‘’•‡y•Ž‘’’’’”’‘™’•š‘™–‘ŸŽ‡œ“““—”˜—‘’“Šš”Ÿ”•––‹Š’•–“œ”—’’”’’•’–”—’ŒŽ’‘”˜Žœ“™’”•Ž‘”‘’™–’›”–‘Œ•™™˜‘‡’•‘“•–—ž‡‘š˜“•¢‘’•’•–ˆ‘˜Š–”–•‘”™˜š•”–’“”š‘““Ž“““™Žƒ—‘™›•”•“””š–Ÿ‹™Œ“ˆ™–“–™—•™—“˜”•˜Œ™Œ˜‹“™”Œ¡Œ‘š“š•”•–”Žˆ“𛕒˜ …Š”•”Œ“””¤—’Ÿ’—˜’“‘«„–”˜‹’•““œ”’Š”˜”“˜“’š˜ž˜“““˜˜˜’“˜ŒŸ—””˜–“Ž”’†™™—œš’““’“›”’‘‹–™“ŠŒ’“˜•𗖙ޒ•—˜Š”“‘š“˜—‘’–‘Œ•’–‹¦“Œ‘’“”•”¡’“ˆ†–™‘”•™›’””–”‘—‘’Œ˜ŒŒ—™ŽŽ’‘“‘“’›’’–—”—‰—ˆ˜–š‘’›£˜˜‘Ž•’›™Ž’’Œ‘•˜¡˜˜”“—™™šœ••‹”˜“Š’‰—˜œŸŽ‘Ž’˜š”””‹’’š“Ž˜™•’œ“–“š’•’’’’¢™‘‘“Œ’‘’›’—˜’œ”¡–’“–’¡Ž¡•““’’ –‹’’›‘š‹‰’‘˜‰‰›’—”–“‹ ž“”Š’”’›“’˜Œ›’’™“’’‹‹–‰”•Ž’›“’–’’”—’”™•–¡‘™’ž’Œˆ‰œ’“‘’’œŽ‘’‘“…•Œ’™•—ƒ—Œ••˜¡‘“|™”’”‘’‘•‘’˜˜—•“—’’”Ÿ’™•‘˜™‰”•’„“’ž’ˆ‹‘’’”–––‹‹œ“‘Ž˜’–“– “š‰“‘—˜“Ž’v¤––‘™‹—›—”ˆ‚’›š’Ž’“’‘‹Ÿ‹˜™‘“’“ž’›Œ›˜•’™˜––—•“’’’™™“‰‘’Ÿ™™”—––’œ—•˜’“š•“‘Œ›’’’’’’–ž’’˜–“˜•”‘œ›–—•’‹””œ–›Œ—šŠ—•’Ž““’‡Ž‘—ž‘•””“˜›š“”˜˜˜˜””“˜”£”•”’˜—Š–”‹•“”‘š’™””•””•–šœ—“™“Š“–‘”˜ƒ——–™š˜”™–Œ’”•œ”—”“”––ššš˜—š‹—™”¢—‹—‰˜’”Œ”—™“•–—”Ÿ’—’”“–ƒ”–•–’’”˜—”œ”“•””™–˜”™•–”•”–”•‘”•˜’’”‘˜””’“”””˜–˜””›••Ž“‹”•–›˜›”—‘——™’—˜™’”‘”˜•”•••“”¡—””‘‰””™žš”—“™”—™”›“™Ž—•Ÿšœ›™™”–”š˜—“”™–™’’Š›”’šž•—’•“Ÿ‘˜›˜š˜”§‰“¥”˜“’––“’Ž’’”‘”—’šŽ’–¨••’’Œ¥ž˜——œ”’˜—“’•‘³“Š›˜¢’–’˜ “œ“Š‘—““› ™–‹’—“Ÿ—™•š–˜’«‘•“™Ž¤™™‹š’“‰Ÿ’—›’Ÿ’˜‹’’”›Ž“ž—”’•’’’›”’‘™–¨’”’›”£““’™£••’“““¥–““˜˜›”——›’˜‘›£“”™˜”–’—’š“’‘š¦œ’™”’’‹ŽŸŠ“›“”’“”–˜—“‡’‘—ž”••”’œŸ•’š“š‘“˜Œ’››‰“œ‘‘”“–—“’”¢’‘Œ˜Œˆ›“”Œ•™’––‘’’’—‘‘Ÿ›‡“œ•‰ž‘—‘–Š’’’–’™“––’ŽŒ‘•‘’šŽŒ“Ÿ”Ž‘¢–†˜–”Ž’˜Œ‘“™’”š’”’£”‘••‹œ’Œ—’–—‘œ‘Œ‘Ž›‘‘™ˆ™ ˜’’’—‘—š‘˜•‘‘’“˜®‘—’’‘‘”‘‘‘’Œ–›—‘›’ŒŽ•”™’𛕓‘’ šŒ••‘”’“‘ŸŒ™’’‘‘‹‘––”’š”›“”“Ž’‡Ž’“—•š––•’‘Š˜‘“”‘“˜•“–—ª•“–•”’‘Œ““”’’Ž–”•’”–š“’†”‹“”•–—““““‘•”‘š‘•›–”••“—˜’’”“’“’š”“Ž˜…“•”Œ““–“‘•”˜›™–›“˜›š‘”•‘””’“’‘–”–“’’”“’——™™–““—•›š“™“”–“”–’˜˜’˜“•“Ž“—•“™•–•Ž“˜—”‘ˆ•“”“˜•˜““”Ž•œ“”“‘“’‘˜–’“–•”–‘•š“–“““’–’“𔓓˜™”———“”‘™’———•“˜‰“”˜‘‘”“”‘•”“Œ–“–”’”’••’—“”ž›Š™“˜•ž “’”˜˜”š¡š—– ›•¥¨–“™š–œ““–”“™–‰‹–ˆ–š–˜™—“š™•˜–™ –“˜—”‘“”—‘—‘™’¦“£Ÿ•œ–™’™Š›“˜”£š–™™‘š˜“›ŠŽ–“—›š“ ”’˜“œ›••š›”–¡’›’“¢“”‘““™˜Ž’–¡œ“““‘“ž˜“•’˜‘“—“•”•™””“–•’š“““•—žŽ’”Žš—”š—”“Ž™›Ž•™ˆ•—™“—“—”“’˜‹“——““™–›§—¡‘““™“‘”™”””“Ÿšœ–š™™™”˜““Œ˜“œ˜•–‘ž••Œ“”‘Š–’’–”–•ž’˜ šŸ–“š“–‘š˜‘˜”˜“’–˜‘“““’’—”•””–˜š–ž’—’ •””™”™’œ•š’’—˜’Œ——”’’—™‘›–••”˜’’˜¢‘•‘’“‹–š–˜“››”‘““•’””’¡›—–’•’’Ÿ’“™‹–”’š’“’“’“ ’‘–šš•’——“’—”•’’’—˜™“’“œœŸ˜”“˜—‘šš˜œ’”•”—”Ž–—œ£’‘“—“’‹™–—’”—’’›“Ÿ”–’”™—ž—˜•““’—š˜”‘˜”š”ž’’Ž‘’™š•”ƒ›’—”’™’¡“¢›‘˜——œ™œ’—™™¥™™–”…™›‘’–“’™œ–š’’‘’‘–šœŸš›œ““‘–”‘•‹“‘š›—’š›—–’”‘œš”‰’›˜–š”›‘”—™“‘‘–•𛕓’’‚–™˜›–‘——œ’‘š•”˜’ ™–‡¢‘‘‘’£‘’¡˜˜””œ™‘“’™‘•˜‘™——–œ’”œ–…˜¡“’“’’Ÿ”—‘’™Ž”˜–’¢œ”•˜“”’˜—‘—𲙓£’”’”™‘’—Ÿ’–’‘‘™–—ž¡©’š”˜—–™’’™’œ–˜›œ—‹”–‘‘•˜‘˜–˜Ž•”—¢¢’–™‘Œ’“˜“˜–“—’”š˜“•”–•‘“”‘ŒŽ“‘—”“’’“’’““’Ÿ˜Œ•““Ž‘™–’”ž“•“••’’“–‘’˜’’“”••Ž’’™”™–‘•‘’”—Ž‘“’”’‹‘—“‘˜’“Š“•Ž”‘‘•––™’’™””Ž”’’•’“–’’‹…“˜”—’“’•’˜“’”–’—’–˜›‘”‘›’“’’‰‘•’’••“”—˜’”‹“™š‘’“’”›”’™’“’‘–’˜––•’‘–’’–›“‘‘”’’•‘Ž•“‘“‘’’™’›—“™‘“’˜Ž’š—™˜‚•›˜””™¢’”—•”””“˜”“•–”‘“”“›“——”–“˜“”•”“’““’‘–‘””•“’’•—›“———–“—“‘›“—®•’”’“—–“””“•“›’’““›•Œ““–‘’“™‘‘“–“•–“Š—‹–•𙑕™‘”’““’‘š“”“’™““”––““—““’“‘“’”“’”“’“”–”‡—‘’““•”””““–••‘•““•“—’“•“™™”“’š••’‘“”””Œ“š““•‘““•Ž––—”š“”Ž”••”’“˜—’–“”—“š“™–’“’™“““’“’”•“’—•…‘”‘’•’‘—‹‘œ‡–““‘‘•“—”š•““•›ˆ““’Œ’’’™“”šš•›“’•“’’£““’—•’—•‹•—“‘‹’‘’‘“’¢Ÿ”’ ™ˆ™‘†’Ž’›’‹‘”’™”š”˜š‡——™•“ŽŽ—— œ’’“š’’”‘Œ’••Ÿ’“’’™’ Ž›–”“””•œ”›‘“’“‘š™’’’Ž’‘•’“–‘”œ™’„—˜‹——…›œ’‘’‘’’˜œw’’…•’’›ž˜“Œ}“’œ›••”“¦‘“—’Œ’’Š˜„”–’£–‘’ž”š‹—Ž“Ž’““•¡ˆ˜˜“š•“•“‘•’—““ƒ—•Ž–€ŽŽ’Š¢•“’’™’‘‘›”™˜›“‹•ާ›’”™™Œ‘›™’¢Ÿ›’’ŒŠ‡–˜›‘™‘••—œŒš“‰“‹˜Š’ s‘”Œ™”’•Œ ”˜•˜’›“¡••–“›’“’–ˆŒ«’’’’ ’’Ÿ¢§Ž’—•’“’–‘š—’ †žŒ™’“ޤ‹ž”’’’”›–’‘’›ž—”—‘”‘–‡’’™’‘•—™’Ÿ†“‘‘’›”’ž“|“’”‹’’ˆŽ–—•™œ’‘˜”’•‘’›”’“𓒢𑅙’¡ž”’™Ž’–Ÿ“™”•—˜•”‘”•”””’’“—‘”œ“–””“–—“”¢”‘”“–““”“”””’™’•““”“’™““™“—”••’“–’”–”—””“’œ’”•–Ž”””“•–••’›˜“’“™˜”–™”””˜Ž–˜“““•”“•–™‘—œ•›”–•””‘•”‘–“—””•““•›”‘—“–“””‘”–™“—“™“”–”Ž—“•–”””‘•“‘””™•—•“•”—”‘”•”““˜”˜’˜‘’•™””“’•“˜•’””‘““”“—“”””•—”“’“‘”•’”•˜•’“—˜’—“’œ”“•””’š•–””“™“™”•™”•””œš–“‘™–™™•š”œ”•›“–™˜”“•—š““”““™š”™ž””›–œ”›™“—›””œ––—”˜š•““›™”˜•”Ž“••˜•—›“˜—››“–•’˜•˜•™”““•˜˜œ™–“••–“”‘™™–’”“—–”•–œ“–“”““œšŒ™•”˜“”””“”““™œ“—–“–––£š—•“”“™š•›“”—˜”™”—”•™›˜™•“—•””˜’˜ž•—“””—““’˜””“˜““—••›¡–”‘–—•––𔕕“•–”‘›œ˜”™““•‘–“˜›š›ž˜••’“’”•””“—˜—“š˜“–˜•¤’•—““•””•£“˜“•—‘’”“”“““””””™•”“Ÿ•‘•“˜˜˜“”“”š“••Ž’“œ—’“””–‘“”––—™•“““——’“š–‹’˜–”™“—‰•–•”˜““°’™’’’”””–—–“™˜•”𔓖““—““–”‘’——””““˜“””“•–—’–“•”—˜˜™•””“””–‘““™™—’–’’š”—œ“—”“•”—”—‘“—›”‘“”“•–“‘’•–“–š““—–•‘’–““˜“–––—’””“–“–˜”™˜›š™““›–“““”””–•–•“˜Ž••–•“•”–š–’“š•“”–•”“•“•””œ’˜”””––”“”““”˜”•ž“•™“—•“˜“˜–”“•—’”–•—””“–•”“•“”“”–––˜–””–”—‘“˜•‘•’“”””œ”š——•“œ“•”“•’“•š•”’–”––“–““–““™—‘‘—•˜“““•“•–““”˜’”“”••¢™–””“–˜”–“”˜‘”‘”•“•’–“–—–“”••’–““–“Ž“””—–“––”““•“““”‘–•“•””•”‘—’’“”–‘“–•”–“•™—™˜“”™•“˜˜›–“”•’“›˜–“˜š“•””–˜™“ž—˜’—”••—“™–“œ–™“”•™•““”““– •–˜””˜“š’•š“›—““”•–š“”–š’“˜›‘““•”“••“”›•“–“›”•“—œ“–“›“–“”’”›•š—–“–™™Ÿ“–”•š””“šš–˜•“““““•““•œ”–’”š“““•“•š“š–Ÿ”“œ“‘—••“““”—”˜““š˜“˜•”“”™•—™•—““—”•“˜—“—••“•“’““——”“•˜““š¡”•–—•“”Ÿ—›••–“’’“”›–”•¡™žœ“’𔓕”—–“–•••“•Š’”—™“–•–”•“‹—•‘”•””””‘–••˜š“”–•—””“““•Ž•–•—–•—›“˜““˜˜–”—•–”““–“”™£”—•—•”––••œ”––”—˜“Š——”šž”—”–••˜•—“”ŽŽ’“—“œ––”–˜‘˜•–“—“•”“”“’‹–˜•“”“”•”••“‹’”—“”™—––˜•••”•’––”“‘–•—–—••‘–¡•–—““Ž––•”’˜š—˜”•”—”’“•˜•“—™““—Ž•”••””—•—œ™—•”“’•–••—–Ÿ›Ÿœ˜““˜˜“”•——‹“–•“”™œ“•–˜”•”•š—”™˜’˜•˜”™•™—”œ–™””•˜—”””””˜˜”œ˜””˜˜“•˜š”™™””˜›”œ”˜—›”””•“•”•”••—•ž™”™•š•–”œ›˜˜”•”–””””›——šš”—–žŸ“š••Ÿ•™•”œž•—”‘”•””–””—”“—””˜”””•”•”—Ÿ™™Ž”šš•”™•”””˜š”š””˜ž”œ”˜”•™—œ™˜™””˜””˜˜”“›˜–”•”—•”•™’•”˜””š–•—•””–——œ™›—”–”””œ”•š™š›œš”•š—”š™š—”™””“”šš˜•’•”™–—•–‘“ “——“—“•™“›—•ž˜–””—“”””•””——–’—––•–š”‘š”—“••˜•–˜””•”””™—’–•–•–”•–”•’•–—™—˜“––‘˜“—––””–—œ”””–”™™™˜’—–“––—–”—–——””“–““•”””–Œ–—”•””””””—“Ž™”–”˜”—›š—–”””•––”””’™“š•–”—›”””—”””™••˜”˜˜–•”•”“–”Ž“”•”•—””—––š”˜—””•—”“––””•”˜˜—”“–‘š–”•—•”’••—¥—–—”“–™—“”““““’—““™˜”•™“•“’“–“‘’•”””›•”““““——“…”“’˜‹’Ž”“˜’“’˜Š•”“”•““‘“””““”“““’–”“—ŽŽ“Ž•›–“•“–”•Œ“’‘—–“‹›£—•”“”Ž““”™•”•““‘““““–”—“‘“”“““”““—“’œ“š“–™”š‘”“““”—““““™’˜”™”’˜”‘™Š–“”›““ŽŸ—“›”““““•“š““““”’““•œ“™™‘‘“’›””Ž’”‹“““š““‹œ›•—“’š’“‘‹”ˆŽ“”‘”𔕕——”–•––••”–——˜–•–”–•˜–•–—–”“•——”””””–“”•—••—•˜”–—”–••––•“”—–—””•””–”••—”•–––••”–“•–—”š–•””“”–”–••˜––•—”–—’—“—˜••˜”•”””•–•””—””–””–˜“––”—”””””•—””––“””—–›––•”””–˜•—””˜—•”“—•”˜•˜–——”–—•”–•’——––”””–•”–”””––””–•—––•”“•–•——–””””•–•”–”˜•••”””–”–•••‘”•”””˜–”—™”–”–•š˜”—˜–•”•‘–““™–•›••”•••—”””““•˜–’•“–”“}”—’”“œ“”•”••”–”™””œ”Ž””–•–”––••’“““˜”“”›—•˜’™”Ž”Œ••’”•™”¡”˜š™”Šš–”šœ••–”—””—””–Ž““•–”””—”–“”––’—“•‘š‚™•–””“”™”—“”‘““œ•’“”˜“œ’“•””ž•”—’’“—“š“–”“•“Ÿ””–”–—””ž›•›–”—”–˜’”š“–””““–––•––‘›–’”“–”–””€œ•—”“™‘›”œ“•”•š—›“›˜›—™”–”—–˜”“™“”’•›š““•““›˜•—š•••™•“”š“—‘––˜•™“›–›”“•—˜•“”•’“”•—–™™””‘™—•“›—‘š–‘”’”—›–˜“–𗓇”—•’”š’˜––•’œœ•—’•“–“”““œœ‘˜–•œ“”””“–›“˜š™–™”—•™•˜••“““˜—•—““”—–š•—””˜•”–—Ÿ“–˜”—”–“•˜ ““”—–“—˜—”“˜““•’”“•–““™–™–›˜“–™“•–•’‘—šš”–“‘Ÿ•“–˜•’”™—””“™•“”’š’–••’’Ž“‘•–•“•˜’–‘”–˜“•””š““”““—–•˜–••‘”œ”“•““–•“—–••“•”’“–Ÿ”–••™“••“”›”“˜š˜ž“𔡖–”—“—š”–—–”“““”˜“–“š””“”“••𔑓”“““““”“Ž›“•–“““•“”‘“›š–“‘“˜••–•“”””“—˜•›““Ž”•”••“˜š–“–”““’••™”—•”‘’“•“—““‘š–“—•““˜ž”—•œ”“—™—›–•š“Ž˜“•™–•™œ•”¡™“’’““—“—•—•”–”“•–’“••“””’•‘““‘‘Ž”–•‘•“’“œ’””‘””““““Ž‘“˜“’“”—“•“““““–”““’”—““‘—”•––•–”•”“”“”—”‘•“𔑓’”“”“’•’––”“——–“•”–”’–•““”–“•“““”–““’•šŽ““”“”“““”‘“’•–“‘’Ž–“”“’“—““’‘”–•“””Œ‘’”“‘•“—’”‘‘˜“–“““”•’•“‘“““”—’š““”“’•’“‘“—•”“’““œ“˜˜–•“”™”“—”–“”•”•—”””’•••••”–•–••ž“•”•“”””•š””•••”“•••••“’•”•••““••””•”•”•“•—••”“•••“‘”•••–•••”••”•’”–•’”—•””•”•”••’••””——• •”–”•”•—–˜•–—˜•””••••”•••”–”’••••••”••š•–“”“”•“••––•••••“™•“••–•”’••”••”–”“–•”–••“”“”•“”•••“••“””••“–•”—“•‘’””•–””–••’••›•••••”“•–””••‘”•”••”“˜•••”““““˜›””““——™”–›˜––“˜”—’—™“—š•””“”œ”””””™““”œ””›”•“””•–““——’˜”œ•–””‘“”•”““–”““–”•˜”–••›œ”›–š—”—”–””Ž“—‘—›”š–™”–•’‘”—“”™””—–“””””””œ˜•—““¡”””•““””œ•—•—”“””•‘””””‘–”—””’›“–”—”“™•”š›””“˜“”‘—•œ“𛓔”’”””š•“”––””–Œ“—™”””“š˜•˜”•”””•”’‘‘”••””‘“’”™—”—”•”””““‘™•”””••–•–““˜”𔕔•—”‹••™•œ”••“’””•”“”‘”“–••–“ž•”’”“”––•””Œ”””““”•”«“’••’“”•“–—””•šŒ•–”™“ŒŒ˜˜••”—”–’•–‹””¢”’”™‘˜”‘˜—•”Œ””˜˜“—”•”““”–’•—••”””™“”“‰”Š–•“•™—›™•–“”“•””•”””“‘•””•––•—”“˜’••”•“—”““””“•““•˜•”˜“”“”–“•—”–—ŽŽ–””’’••Ž”–•–––›•”•ž”“•••–{‰•••”˜’–•’”–•––𙓛œ”˜–”””•“•“•—“–”“˜”•””•”“–—•–•–•“–Ÿ”“–“˜ ”•”“–™””–”“š”›”‘••””•”’•™–”——˜—–””˜™™•œ–˜”ž“–––—™“” ’š’•“™›Ÿ•“š—••”•”™“”“”‘••—••””””“–’“›—œ–‹”™›—™™•””“˜“•˜“”—™”‘•–”–“—˜˜“’”•”•””—–•™”˜“””•“““”‘““ž™”“–™”“’™–”’˜–“––””••“–”—–š—›ž˜š““𔓗––™ ˜–•‘”˜™—•š–”–•••–˜”—˜šš—•—”––˜–•œ—””•”˜˜””•””–•”—˜—”š–˜•˜—”–•–•˜–––”—––“”˜•˜”••••”•–—––˜”˜’——™”ž˜““–˜•–”•“–˜˜——š”™–™•”–•”••–””––”•“–”–””˜””™˜–˜•”–”””–““•”•––—•”–”—š—••”””™›–—””—–––•š””š–˜———”•š••™——––•š”””—–”™—–””——””˜”–›™“•”–•˜–—š–”•’”•–•–•–™™•—”“š•”–˜•–”—–•–“››•’’““””“’’“˜“”š“’’““”š’“““‘““”‘”““’““’™”““’“‘’’“’˜“š‘“‘“““•“’“–““™”‹“”“””“•“’“™““ˆ—“”“š——”““““”“”ž’’“’“—šš›”˜“’˜—””•’““””“‘””““““Ž””“”’“““’”“–““–’’Ž“—“š’‘““““””””““™—˜”’“”Ÿ“–‘’’“‘“’•’Œ••’—““““’“‹‘–”“Ž”““—•“œ“”–“’•“’”“““•’“”—“’’•™˜“”—“““’’’”˜“”““˜™”•—•“•—•‘’—“š•—“”•”““–”””˜—”•”•–”“”““–––•“™–““•–˜“—–—“•—“˜“˜•””“›–”“••–“–“˜—–•”“‘™•–””–“›”˜•–”‘‘“–“’“—“Ÿ–“•”—“‘”‘˜”•”–—œ‘“—““’““•”“•–˜“““”•“•š“•”–”—”˜˜”‹˜””“”“•˜–““”–›š•••”˜š••’–•“”—™–™“œ–˜“•“˜–“Ž’–““”𓓙𖛓’““”–•˜”“—”•“”•–”š˜’™—“‘š˜“••”’–™“”˜’™š”‘••““““‘“—“—–˜’‘’•““š”’”“˜“““–“’’’’•—’”“‘““”’“Ÿ“š•“”’™’’””““œ•—’““““‘’“•’š‘‘Ž–’’’—™š‘š’˜“–’—”“”““Š˜–—‘˜–’š—›“”–’““•’“’“’“’’‘Ÿ”“”‘’““•““˜’–”•Œ‘˜—˜š––“““’“•’‘’“›œ“–“‘“’™‘š’•—““›“‘”‘”–“’“““’’”‘’“–“’˜”“š’“”’•“”˜’”‘“”“”“˜“””š•œ™“’œ’’‘’””Ž”’”“”š˜›””š”–––•œž“––“–•••–•–•š–“””–˜˜””•”“—š••–––—– ”—“”œ¤••˜––𔕕’””Ÿ–¡•–•–•”–—–•—••—•š•˜”™˜˜—”••””—––––œ–”ˆ–¢—–˜Ÿ•‹šœ•”ž–”–”–“˜“”•“”•’“—•••”””•”––“ž™›–‡”––”ž™––”””˜•–—””™ž”––˜”•–•¡••—”š˜–•–•š—œ•—”•”—™“›•“–”Ÿ””›š•–—–•”•œ–˜›–—”••”–’–•——˜Ÿ˜ž““–”––•••š—••“”¢™“™š”•”•˜––“•“–”•“™•™’ ™”“˜”••˜•”“”““—–™—•–˜‘”‘Ÿ“—”•”—˜•—““𣓓–›—”—••”••••–›“˜“˜•™““œ““•”˜”•Š•”•˜–•“ŸŠ›“”“¡”˜•“œ™“–™•““““““••–™”•–”““–“”•“Ÿ™–“›˜•“–•””“–’•–“”‘••ž–•“•“—“”—˜“••”—“˜˜–“•”™”“’˜–•“–•““—™”˜•™–”–‘™™•˜•”“’””˜––‘™–™›•“” –“•–𙕛•——“•—•“¤””—”•˜“š“”–––””˜•”•––••˜““•—–˜““”““”œ–ž›•˜™•›“›—“’™”“”š™—“››•”“›•›—•˜“••›–’š•˜ˆ’™“”Œ––™•š“˜–••Ÿ•—™““—•š“š™•–›Ž““–“•••›“–“”—““›™’›•™˜“““”“–““–’‘—›““‘™–’—“““š—•‘“““›—•˜”“”————›•“”––•—–œ””—•“”“™™“¡˜‘•“š•““”Œ–™™”™“–—‘——˜“••“—“—”•”•“’’“—––“šœ˜™•™™——”››•’•“–•–’“’”šŠ•––”˜”˜—‘”š”””“—“”””•”””•“—••”•’”‘““–¡–––—–•”“”’””™š¬”˜••“””•”–˜—”•š—“˜”“–›”–™”—”•–Œ”“™•”™‘‘š‘•’––””‹””•–“š““““””“¦–˜”””””—”•‘“™“””›—”‘——”””•—•—“”“••–””•’••˜“”“‘•—•“”˜–‘”””••“••“””•—”“‘•“•””“ “”—•–”••”–”••˜£›—”“Ÿ•”–‘””£–—”•”›•“•–›”•••–ž “š˜–“•™”’•”—”•–š””––›””•””–” –””––š”Ÿ”””’••–š–Ÿ”œ™”””•›™”••””••š•˜›”——–—š”––ž™–••”””•™˜’Ÿ•”˜•—•“••š˜•”ž¢”›–””–””˜””••Ž••”–””””””š”“˜”—”˜—“˜›•”””‘™•™””•’•›”–™•–”—™”••”•—•‹ž•™•”•”˜””˜—•”˜™””œš••—•”–‘“ Ÿœ—”“””•”••¡””˜””–‘•”š––’‘š••˜”•–™–˜•”“•”—”””–—“—–••“••“–”—”•”””–”””“””•–––••–••—•—•”—•””••’”–••””•““•”•”•”–”••“–’••”’”˜”•™””“””••”–”—’•”–••“––™“‘’–””—•”“”˜”•—””••’”—•—”””””•–”—•–•˜”•——”“––”””•”•–””—•–•“—”““•’—•—”–––•“–šš•–—”””––””–’””‘”””’˜—””“””“––‘”–””—“””’‘––““““•”•—˜”—–••“’”“•“—“™“ ˜”””•™žŸ“—œ›––“›”’”™“’™™”“”š›””•”“—š•—˜•”™•—”•Ž“––””—œ”˜“ ˜’”“˜–•““”•”“”•š”–œ”˜—•˜™“–•‘•–˜“–”’”––•›œ“’“¡˜˜—–••”””›œ“˜”•“•““ž““’’—””™“““–“”–“—–——’”˜•‹–—˜•””“—›”™“”•™••”—”•–˜™—šž”“””•™—›˜—›™“•“›•“Ÿš•“ ›““•‘”–™–’”•˜™™›™˜”–”””–””•”• –˜“•˜”“šš–•’™“”•”–“•””•”””“”˜•”•““’””””’”“”•Ž“–””•””””“”““˜•”•••””—”—‘“—•“““•””–””””•™•••–•—”–”””—””“–˜•“”‘—“—“š“””“”•“••’’”œ”˜”’—’–•›—”“””””“”˜”””””•”™““”””””’”–’“–“˜“š”˜˜‘•”””””“’”““”–’••“•””””–”“””’•••”•—•””””“””“”•”’•”—’””™ •’”–•”“—“—•“”””•”•“’–•™–˜šš”’”•””•””Œ‘””•”™™“–•”•”•™–œ”šœ›œ”™”™“–—•š•””–˜›”””””˜“•››””šœ’“™˜” ’“”œ”™”™–›””𛢕‘••’””•œ“˜”šš—˜˜”š™Ž’–“›”–‘•œ™–šš”Œ•–˜“•–•›—Ÿ•”˜–˜—•—””“””””˜“—””›“””“””¡“Ž˜›œŒ”™š–š’–”””žœ“š“”œ“—–›•–ž—›—ž”’””•™”Š“š˜•“•”›“”‘š”•”š˜””›‡”š˜“•”“ ™›•Ÿ–”’–”• •“’œ¤›™š”’œ“”šœ™—š•••“™““•‘“•””™•“ž•’”‘•‘“˜‘‘Ž“¡˜””•“”““““Ž”•”–”–“Œ—”“˜™’’“—”—“‘•Ž”“›š‡”™•””““”“›‘”“Ž™”˜“—•šž’”—“’“›’“‘‘“’•’“’•˜•“•œ—’—•““““““Œ•‡’”“”“”“““’“—‘—’“–•–‘“’””““•–”“““›‘Ž”’”“œ’—”–Œ“•”’•Œ•™—š“”““–“ˆ’š““”™““—Ÿ””‹™•“‘•‘–•“”˜”“–•”‘Ÿš““ œ“•Ž““—–—˜’“–•”™–‘••–”———–—•”•––••——”–•——–”—˜”•”–•”””””•“”•–••˜–•••–”–’˜”•–––”•––“”–•’”“••–”•˜–—•–”—“•––”˜•—•–—”—”—”••––—–”–—‘”“—––•–”•”•—••—–”–”””””–˜“••–•”””–”•—”“••—””•—™•—–•”””–––•””———”••”•––—–—•”“–—”˜•“”—–•”•”––””–“””––””–“•–•““”–•–––•–”—””—–˜•–•••••”–’˜”–•–•–—––“”š“”•—””–—–˜˜””“›“——•™•š””–•”—””•–••””•””—˜•—™””›–“•œ””•”••–˜—”””˜”””š•ž”•–••”—–›—•–”•œ˜œ˜”—•“•œ”—“••˜˜””™“›•“”•–•”—”–•—“•”•””—””—“˜›•–—”””—”—”Ÿ—–™’””•“”š–”””š“”–””™–•’”•”—–™œ˜›“”•”–•–•œ™›–’”–”—””–—‘•”›”””•—”š“–”•”—•™–™””””–“˜—™™–””’—–”•˜˜œ–••–“™—”𔓔•••𤓋˜‘š’”š”“Ž”“”’—“•““•“““”•’”–’š“˜“‘˜––𔓛—‰““š•—””’””–š—Žœ”“›‘’“““Œž–“•”•”š’•••“–‘›•˜™’Ž”“𙕑—““•““•““—‘˜””••“”“‘“—”“–‰““““Œ’Œ‘”š•“”“‘™’’““Ÿ˜““”•”••““˜”—”’‘›“”˜“““›’“‘–•”“¡š““ŽŒ•“˜”“•Œ’¡––“”–””‘••¡‘’““‡”“•——•••š”šŽ•”“”“““””“ž“•—““•’•”––““Š”’”“”–•”””“”•—”—“”•“–‹““–““š“””˜•ž“—–”“—”“–”•””—•—”—–••¢™•”“™“™œ•””–”™—”–””¢—“Ž’Œ•••Ž˜š¤š“”œ—•–˜“’“““““”š®–“••“”“™”•—“œ“˜”””˜¢˜’•””””–“–“”““š˜”••”“•”š•••“‘—”•“”£—”Ž”““—””¢”Ÿ–“Ÿœ“““˜“‘”–”“™’•—œ”–“‘”’”š•——š™Ÿ’’“’–•“–””–Œ›”•“”””˜•’’”–”””—™”š—“••’•’–“‘”“‘—””–’””•””Ž’•’”–“’”•••”—“””—“–”•“–•”•”—”–•”—”•”“•—““””’’”––—”•˜•“”•”–˜‘”—”–Œ˜“˜™˜™—š””™•—‘”–”–””‘””˜”––’”””•”••”Œ‘—’“”““’“‘˜•”””’•–•””š—–”—”“••‘–•“”–˜–••Žš•“–”•”•—”“‘””•“””•••“—“””“”••–’”™–”–•–’˜”––•™”—›•”–’‘‘‘—••”””’•™”•••—ž“”•š—”•••”¢•“ž”™š”•–•“””•”””Œ”’ ••ž˜–”“”“•”š™—””—’’“”–‘–“˜–•’”––•—’”œ–‹š”—“—ˆ•¢•”˜‘”•“¡’””–“’••”•ž”šœ•”š˜•”–—”–”””””—ˆŽ••›”””’”–”˜Š˜“”“’“—”–”””““–ž””’’•”––”•—š’š™–”–”••“›“’”•”•”–š˜•”š–””””œ•”•‰¢’Ž™•”˜””–‘––•˜—›–‘”–’—”–𙥗•—•–”š”–”’𔕕””Ÿ˜“œ–œ“•“”˜”’š“–‘—”””˜˜””””“˜œ”–œ•”˜–“”””Ÿ˜””˜–”—”˜–””›–•••”‘”••˜•𗔖𛓕“’›˜“““””””’••“˜š–“–‘ •–•’Œ“—¡•”œœ••”–“”““‘“”˜ŠŽ–”””””“”•‘“œ™Ž’”™•“˜˜•””””“’•™“”˜–”“”–”•’”—’’“™–”••”•–¡‘””””•””ž””•”Ÿ›““˜¥••’”””””“˜”–’“•’””˜˜¡”œ“””•“’—”™œ™•””“™‘“—‘“””“—–™”œš˜“–””•‘•”’“—”“”›˜”“”““’›•š™”’˜•—“˜”“˜‘““”˜”‘“š–”“““—œ”•””–“•“™–——“—•‘—”“‘–œ””“–“–’”›˜˜™“—•’™’”•™”˜””’’•“–“•“““““–””—’•–“““”“•š“”’”˜’””•“‘˜“””“˜›“—““Ÿ˜–”™“”—””˜”™“”“••˜•™’•’““”˜”“¡˜”““’‘““——”•–“””–™–—•”—”““›••˜˜–••™“’““˜›˜›‹•”””𔋔𔔔’”“––“˜–•”—•–”–‘œ“”‘••”““•˜””””“•—”™˜’”“•“•—”•’’”˜—”˜“–˜—”“–—‹•’•”•”•”–’—˜–”–™™•”œ–”›•—”—•‘˜”š”•˜—””—“™”™“”—˜””—š—˜““”‘”“š“”—‘‘™‘’—””““”•š“™––•“”—–•˜””•“˜˜””“““—”’“““›˜“—–˜”’š’’–– •”“”““˜’”™——–““™”“—•“‘•”“”•™“™••—”’˜””˜““–™–”™•”“•’”—–™–—˜’”’““™Ž“𙓕”“”–˜“—”—”š“–“š’–—“•—””••˜”““““› “˜–””š”˜“‘•“—”“’™–“›“˜™”““—›•”“”“—“”“–“›–“—•™˜“–œ—”™““”’“™——–“š“—”“–“›œ”—’“——”ž––“’““—““™“ ›’“›“”“•“’›“Ÿ›˜™—“œš“”—˜““““—›”›““›–’”•–“”Ÿš™˜›—“‘˜““—˜˜•”—š““““““š•˜•“–˜““š‘”•š‡•“”œœ›™™”“•ž•“––Ÿ–š“’›’“—––™˜“–”””—“™””“”—–œ”––‘—“–”’“•—“‰–“”“•™›””“””–š”šš““—””˜“”•“”“˜””—”›–”””•”¢”–”””•””—”›”•Ÿ–˜—”Ž•“—““”“”‘”“”–—š””’˜‘”“•˜“”••“—•–”–””””¤•““™”””–””•“’™“”••““•‘””””–”–””’•”•”˜•”•–––—™””•“”“–œ–”•’”””–’”¤˜‘””––”””“”›’”””˜’—›––””““”•””““—•’”•˜””–™–’‹˜””–••”••”–•”””•š—•–›”‘•”••””‘””Œ•›••”””•••••”™•••”•”•Ž”•—•–¢”•”•”••••–••š“•”””••”””•˜••”™‘•”••’“”“•–•’–”—””–••˜–˜–›–’”˜–™”•—’–•–“•“••••••’”•”•••••š••–••™”ƒ•••™š—••••••••””•™™•”•”••••›•–•••••”•”™’•ˆ••••“••••“–••‘””””••™•••”••””•—•••–š›”–•”›”•••••”‘”••”—–Ž”—“”–”••–”“–›–———””™–™•”˜š™”””––”“”””•”•“–“•—•’”•˜“–““™–”–”“”š“”–”Œ–•••’”•–’“˜”“•—–•–“˜˜“š”–”•”“‘•˜•–™š”™š˜—“š“—”“–””•›–™–““”””–“”•‘’–•“š“””•”•œ“’š“–˜””•–‡š”—”””˜•••“”•š’“–—“•—”—™”•“•š””•”—™–›”–“‘–”Š—”•“•™““˜–•œ–“’”˜—–š—“•”•““–œ–““”•“—•“•œ•”•””•–••–“•–¥“˜–““”“””’“™•“–—“’’˜’š•’‘——““””–“““““•˜•–““”•’š’——“—š”’—”•““‘’–”““›†”Œ”“Œ“””‘”œ“”•Š–“•“—š—š’š“–””““˜””—“‡’•š˜——“—•𔓕–”˜‘”“•““•““”‘›””“™“““’“•˜“–••›”˜•’£“””“““””“˜““”’”œ”™•”–‘‘––•“•–“–”––˜’”•“““““•˜”““““—•“˜–”“’›•—‘“““Ž“”–”“•™™™œ˜““‘“–”—•¢””“—”’“™“œ–””“”›––“•––––”™“š“˜™“Ž—•”“––“””“””—–“‘™”“˜—™“’—”•—“”˜˜“””™–””””“’•˜”””“”˜”˜•”““”“’”œ–‡’”““˜””“–’–“˜”Ž‘‘“—•”˜—””˜••”“š””“” ””™“™’”“š”””’”“—“•—’—™””“¨“–””””“’“–“”’““–““”•”–“•—”•˜“”–™’‘–•—”””•“”–“”””•””’”“–˜“””’™–”š•”’“””’““”–•–’”š™””•™•—˜™“”•”™—•”•–”“”“–”“”””—•–”••–”š–”•–””•”–—”””””•’••—••—•‘•˜–””‘•”—–”•”––˜”””–“–”””˜”–••–•–•–—–––”“–“–––”””“””–––”–”•–“–’˜’•—••“”•—”–“•””””–””–™”••––”””””••”’•””—”–”—•—””””––––”””“—˜•—•”—•“–•–”——••••”–••–”””•–”–––•”’“””˜–•—–—””–“•–“––”—””“”••˜—“—–”””’•”••••˜–•”—””•’”“–”•”••“”™••‘“••”–•š•“¥”’””””””””””•’”•”“”•–™”–•””“”“•–“”””›””‘–Ž””””•””••””””•™š“”””˜’›“’”””–”•—““••”–Ž™“—–‘—‘—•”““•••“””””“”””‹”’“””””•””–”—•˜••”•—‘˜•”””””••“”””“’’›”•””•”””••”—”“••““–””””••”•‘””•“””š›”’””””“›”˜—–””•””•—”’•“’“••””“”••”•˜™”•””š–““‘–”•—“˜•””–“•’–“–•™“”“•“–”–”–””””””˜˜–’–•••—”••”™––“’š˜™”—””””—˜”–•—”—•”–™•”•‘šŽ””Ž™¡˜”˜”‘”••”“””˜“”“”𔓓“—–’š—”œ•“•–—”’””•””•—ˆ”’˜–”””•”–—”“—••˜”œš–˜–‘””””’•š””‘–——–˜”–”‘”–”–”’“˜–•““’–“•””””•”š–™–”Ž—””—©—’’˜”•™—•“•˜””•””•–—™˜š•™–”“––”—‘–’”–••š“›› ’—“••“˜‘““ž•––—““–™”œ–”˜—’””””𔓓“”™“—–•”•’™—”’™“œŠ”•𙕒“˜–›“”’—“••–“”“—”•—•˜—•”–”™™“–’“‘”–‹–™“’”š“”•‹‘™—“›•ž—“‘Ž•–“‘“•“”““”–—”••—“””’”–““’™›– “š”˜™•”“”˜““™”“œ‘—“––•–“˜Ž‘•–“’™”—™•‘‘™—ž”•”˜’“•“•“™‘““•“•—”•—“”œ”•Ž™—“–•”˜”“—’ •“™“’˜•“™––‘”‘••”“™’“˜–“•”““—›’•–—”“’”“’™”™“““”–““““““”˜–”–“•““™’“–š““’š’š“š’““”˜”•˜•”–““”–“˜•”™•––“”•“–“›“””Œ•—‘’™“š’‘”‘–‘””““œ™•–”˜“•““—““”•œ“•“–“““”“’š“’—š˜—““•–—”’•““““–—““•˜“–š“’–““‘—š““‘””š‘ž—“–’“““˜–“š•“““’—““–”’‘Ž’““‘›™˜š”“—““–“”’”“•–˜˜“’˜”“œ—–’‘˜•””“•—‰•“–“——•”“””™“™•—•”––•™’”œ“’”•–˜””“•””–“—”“–˜“—•–’™””––”•––””“”š“”’–’“”––—”–••–˜””—•–”””¢—Ÿ—’•””•–—™“””˜”¡š“›“—••™–™–”“•–“•–”–””“””“›“——•”““”•”——”“–——”—“–œ‘“•“””———””—“”š——”˜˜“’““–”•™–—š“’”’’—”•”––”’“——”““””•š–”•–˜“•’–””˜—”•ž“—•—”–”–“—•””–””–“““•”——•“˜”““•“—–••“‘’–—’ —••••—“’•–•—““““˜““•““”Œ•’”•“””–“—”“Ž••–“—”“–—““—”‘”’—–›“˜–’”––“—˜–—˜“›“¤““–”˜“œ—–š——“¨–——•–’š™–™””“•š”—“•““‹““”—Ž–”“”“““”“”’“š‘”’£“‘˜—’–“““›—––“““–””–˜“•–™˜™“Ž“”—”•—˜š˜—–š“”“”•“•˜—“œ˜“““•“••–“•˜‘”’”–“˜–“–”••œ•”˜——“”Ÿ•“•””˜Œ–•‘”˜“—“š”””“¦››“žš™—“—”™’–Ÿ”•˜”“•š›””“”“–œ”–Ÿ””Ÿš•“¤™““ ”“šš”—“˜˜””•𔆓”’”•“””—˜”›”——•”˜˜”š“›““”—‘”™™›•—“™˜–Ÿ“™•…—•“”—˜“”“““”¦“““œ•“”““”•“•›“Ÿ™ššš””’•š—”””“—•”“”““•—•œ”•”˜‘™™ž“”–“•˜žœ——œŽ”“””’“ž›“”“’”““–—“˜ ›’”•šœ™——”Ž“””™–•™˜›ž˜““‘¤““›ž˜š“˜••“”™˜‘””””•”””–••”–•”””••”“’•”Ž”—•”•””•••”•”“””””••””””“”—•”•”““•””••”•“”””•”••••”••••”“•••”•–—“–””••“”—”•“•••—‘˜”—“•••š•–””–”–••”•”””•””–”••”••”•–”””••—””••“’—”””•••”—••••œ••“•”””˜•—”””””—•”””“–•”“••”””•””–•”–“•”•’•–””“””••”•””•–—••—•“”•™™•™••˜•”•”””Ž“”••“’›•••—“–—•–˜š“¡––•”””•—‘•–œ•˜”•––•“””““•¤–”–˜–•”—•˜˜“™›–•••–œ”–””““ ˜””•–•—“••”˜•“””–””“¡š“‘“•”’“•’–œ”•˜˜“‘— ¡“™––¢“ž–“˜™“–˜”“—““–““•š—”–™–“”“˜“–¢“œ™ “…”šž”—™••“”“”—–•“”—¢˜›•–“–›•–•”—“””˜•“”£•‰““””—“¢•”””– ““—›—£•˜•““ ”ž’–•”––“• •––›š˜“•˜˜“•”•”ž–”–“˜—“”˜˜“••”––“›—–’™”š” •”˜”Ÿ›™”“’’–”“•““˜••šŸ–’š˜Ÿ“™“”œ””™–š“œ›‘”“š“••••””•›•›š”—˜™“—“—•›” ”•“•œ›™–’“””™’“–’Ÿ–“™”“›™”–”•“’““›““œ———•““““˜“”–“–”’™œ“˜“‘˜™Ÿ•“”“˜••–“”‘›–••“”–žœ”š¡–“’••–š–•›˜š›“”“™–“›š“•“”˜““˜˜”—’”“•—˜–“–œ”““““”“•››š™œ•“••“žšŸ››œ•“—“˜—’”’›“—––—”“˜”•†—•’”–•–“•™š—”•••™““”““›œ••“˜•”””—“–ž–“™••œ“”•’““–›’–‘—–—“––—–œ–“•“”˜›“™™““”•“•”“Ž••–•›““Œ•š’“—”𔕓—“—–š—™’“”“”““’– —••““““–“”—“šœ˜”’“››–Žœ›”“““•”•’““•š”™“”“•š•”“”•“’”—“““—™•“•“™”“•“‘”“˜˜““•–•”””““›–›“’š““”–˜•••Ÿ—𙓑“”“–‘—“—”––”“”’˜””•”“—‘“–“œ””“”–—Ž’“¡”“””•‘˜”“•””“‹•›—••”˜”˜’”’–”“—•’””–‘•””𔕔••”–•’•˜––˜““™™“™š——˜”””—˜•——”–—”Ÿ““•”’–™•’Š””“‘”˜”‘“–““““”“›•––•—”””—”••“••‘”›”––“••”””’”–™””—˜“•™••™•”–—“—“•••’œœ—“””””‘–””•••”‘”””””•”“Ž“”—““˜—••”—““”’•–™™Ž‘š‘“”•”š”™••’•”•”–˜›”˜””––•’”•”•“”›”••’”–“•”ž••”’–••“””““”–“”–“”•“’“•”“–˜—”–”•“””•–””˜—–••“’””•”–—””“”“••”•–•–•—”œ“•“”•–•”——•”—™”’œŒ””“‘“•””›””—””•š—”˜”•”””‘”–•““–“”—”—•‘„˜—–”””•”””“”—–—””•”“””˜•––”•˜•–“•™–—”–“’””˜“‘••””š–”””Œ–•––’”““””›•“”’•“–““‘”˜˜”••”––“”’•”•—–—“–”™•”•“””“•–“•”›”“™”••”•“˜“””•”“””“”””“”“˜””’”•“•˜””›”›˜”“””’•”“”˜•”•›˜”””•””“–’”œ”•””—’“”—˜•“•“•””“••–””––”——™–’–’’••˜“”˜–””‘’”’”””””“—”•’””””–””–”•”˜”™”™•”§’”•”””•”•”“”™”’𔕔”“””•••”–˜””“”••”•™”””“–”‘”•”——””–˜”‘“”‘””™”š—–“”•“””“•‘”˜Ÿœ›š”•ž–”“““”™””•“›••–”“•–•”•”““›”˜—••“˜”••“ •”“’••”““–““—˜••••”••¨“–““–—–•–•˜“””‘”“™“ž••”•‘“•••–™•”–•’”–“•‘“•˜–”“š•–™””˜’“ž‘–•‘‘™”“˜•”••—•“‘“š““•““”—œ–—“—“””’“–š“”“”–‹“’˜—Š—”•”””••–˜““•š•”—”••””••”“›•–”–••˜”˜““““”““•–•“—˜““””•––”“““•”Ž”–“““”•””“•œ˜™–““‘„““—•””¥—–“˜”– –––—“——˜–˜›”•—–”–—–”–š‘–••––”“–•–””•””–š•–––•—•—”•‘”™•—–––”—”—••””š•–•–—–“”“–•—”–•–”˜•–”›˜”•—••”““–™••˜–”œ™š›“–••‘—˜”š•˜••–“™“”•””–‘š•˜•—”””š”——“””™••”˜—˜”–•—”””––”–“”š˜–˜“—”—š•—•—–”•™––•”™—•••”•”•–”–”•”™—”“š——œ––•”–˜––˜–•”••”–—•––”——•™“””•“•—”•’›••—“”‘”’”””•”•š˜š“˜“”˜“””””—’’•—“’”“–’–”““““‘•’–•—••’”˜‘“•——•–—’˜“˜–”“”–£••–—“”–’–––””›˜•““ˆ“š”’•“”•—“•“™˜“•’œ‘“‘™“Ž–—•“˜—••–“—““™““š–‘–––“““–“”’““œŽ—“”’•Ž——“”“•––•““”•—”™““““–—•”•“”“—”””›š”—““•“–•“™–™”“›•“““—•–•˜‘””›’—˜–•“’–”˜•–•š—–›–š“““˜“”–‘”˜—–”“’¡“™—”•”””™’’š‘—˜“™—š–œš•š››”–•˜˜”“”““˜ž–”“—˜—“”“š“•˜”•˜˜š”“–•›”“”–š•“––™“—•—”•–”™‘™—š“˜”™—š•™“”••˜•—‘›“š‘•“›—–¢˜Ž’“’•™”“”““™““•œ’š”—˜“”“““–—“•—˜››“œ™›“”–™“““™š˜•““—”–™™—“•—–‘—š˜“”›•—™š”–’˜““–“•˜’—–›˜“˜”““—œ–˜˜••”™—š•—–™““’”–š˜—‘•—™™“”Ÿ˜“––“™”’™–’“——œ”š–“––—›”““‘“—–•”—•›’™–•˜™›”–••’”“•”“”–”—”–—•˜˜•š“•—–•–˜”“””˜™““•˜•””–””–––—œ•”˜––—˜“ž”•–—”™”š–•––”“–˜Ž”’––’–š•“”“••™”“˜“”˜““——™š—˜˜”“”˜“•–“–˜œ “˜–—“—”–””“š•••“”—“–”˜“”˜•™“—˜”—˜••›”™™”˜—“•”—–“––—“˜““““•—•—“˜’ž•“š—”””“–‘—™“š•–œ–“’ —“—–—˜œ“——–”—”•”•™”–”“™Ÿ—””›˜––•”•–•“™”Œ›”•—š—””“””“’“”ž––Ÿ“Ž•›–”••”˜—’—”™“–””™›””–•–”••—•™””˜š‘œ””“™–•™••”‹’––Ÿ˜’””Ÿ”š”—”‘’’••”“š”œ˜–”•””“””›™‚˜•”›”””–””˜”˜–’•””“‘‘–˜”””””˜–—˜””˜—•––˜””—˜˜š™”–”••˜”ž˜™‘”•”•”š—•”‘—””–•”š’’”•–—˜™œ•”•””•”””—””—š˜”–™•”“˜›™Œ••—“–˜–”“•“•”•““•“’“˜’”“””•š’”•–““–••““”““•Ž”–”–”’•™”’›“’“•“–•••“”“™”““’•”“”•”“••••–””•˜•“–“œ•’––’•““”Š••“–™“¡”“”“—–•––•”“•””–“–“–““’“““˜•’•””“““–“”˜““•’•”’”’•Š’””“”“–™–’’“““’—”—‘”–’”‘“—“–™••—’–—““˜““““•“”’˜–“–”““•”—”—”“–”—”˜•“”•“•—•“”’‘““’“”˜•““““‘‘••“•”˜˜š––“”–—–•“””’•“•“—•”•–•“•š•””•˜”’””•””””•–”–•“”œ•””””‘–”’”–—”•–”””––’“––—””––”•˜–“”““•””œ””™”•””—’–••”“–”—•—“˜˜—˜•˜—”••–•”•”—””””””˜˜”–•””””–”–™”Œ”“–•“”•––––•”””“•’”””–”•••“—–•“•–•”•––•”“•••””•”“•””•—–”“–””“’–”“”•”—“••“•“”“””–••–••™“–“”–•–””••”–“••””š“””—”––•šŸ•”š¡“˜•’”œ•”˜”’™””–•–””•””–•Œž””—–‘”‘“”’š•”›–˜”‘™’””¤š””•••””•–•ž’“””›š–”Ÿ’—Ž”›”š””––––ž”””¡–¤“““•’•œ•”–›•š’”“•”“ž””—•Ž˜•”›”””•“–•“œ¢–ƒ”–“•Œ ’–”””˜“”–””““‘”š“–——¡•’”’””‘›•–¤–”””Ž•”›—•”“¢”””™•’™–—”–•—“”“–”–•”••••”¢š¢Ÿ–”•Ž•”‘—•Ÿ•“—•”“š—™“š–””““š——“šššŠ›”™”—’••“”•”””’š˜”“”““𩔔𔓕™”““”“¡™““™•”•“˜‘”“œ˜—””“”’“•“œ”œ—“’•”“”šŽš”’“˜””‘“š–™”““‹“ ™”””Šš”œ““™•–““”““““Ÿ““Ÿ–™–’”˜””“•““ “Ÿ–œ•ˆ“žŸ•‘“–““““˜•“—““œ™”š””“”””—“š““‘“”‘“š˜“—“““œ““–”‘”“–—““›ª“—›”“•ž”˜’’™””•““›•“’Ÿœ™›“’’’“–—“••’””““˜””’’““’“”•“•—“˜’“”™“‘”‘•’”””‘•”““““•—”–•”“’Ž”“•’“˜˜‘“—”’‘“—–‹““–™ž“’”“˜”““’“œ”“•™–˜™“’•¡’‘“–”‘’”™––‘’“¥•¡Š•˜–ˆ–““–˜–”“‘““Œ““–œ“—’“›“““•“’’“”’—“—š”™•Ž“”““–˜’•““›–’‹“˜““š–™š”‹“‘—““—”›“–“•“““““¡”“““‘—““—Ÿ“”””““™•”—“’“””’””™•˜”𓑉’“˜“”—“•“”˜’”””””””“”—˜””—“”“”“‘‘”““‘‘œ””’”‘””“““–™”‘‹’•‰—¢“’–“––“’““š”–™“”“–—“”“”“•”•“‘”š•”˜“”“–”‘”—“—”“’“•›“”‘œ”“”——š¡’““™••–••”•“”‘“”“—¬“””“”—““™“˜•˜Ž—”“˜™•™š”””“‘•“””š”–”–””Ž‘—”Ž—”™’”’Ž™™”™™–““”“•“š’‘““˜š”“‘‰••‘˜’”“š’›•‘”Š”“”’””“šŸ™—˜””˜’“‘‘”“”—““”–—–’“—–™š‘“•™––•—”•˜”–­”““”•”•““•““•™•—“••”–˜”™Œ“‘¡™”•——š“”—““›š‘–•–•””•––•—–”•—”““œ–’•š“–—“™‘–œ–“——“¦•™Ž‘ž”‘œ•“š––“‘“š“”—“”•’š–—•–“““—“”–“”™”––”“’•¢”–•”””•––•““Žœ“•”™“–—•“–—–”“’••—–£••——”””––“¤–𕓗𔓙˜•––’–“”“—˜—•“˜’“——–•—š˜Ÿ™•“’Š•“••••‡—–••“——–“”–””““””“—˜—Ž˜“˜”™‘–“‹–‘”“••—””“”“—˜–’—”“”™–’—“™’“”–—•–“”˜™“”œ•‘”’••”•”™“—–”––™–•“—™‘–’’“›”‘ •”–™—”“…•™š“–“—›’›•“––˜‘”““‘“““““”””–’“–“““”“••“•—™™”˜”’„˜š”””“—•””““—™’𔑓•—–•——•“‘–’•’–“˜•””“š’“˜•Ž•“—˜““™—”˜“”˜“•˜—˜‘’˜”•”””œ””“š˜—”™“’—’“˜––˜”Ÿ”–“”•’Ÿ”œ””“““›’“Ÿ“’“—””“–“•’““˜”““•””““““ “—“““”—•“˜”“”•““’–“–”‘•—““”•’•’“““”““•”–”“”–š’“’•Ÿ•”””•‘““—•–‘“š–”š”•’”Ÿ–•““”˜˜œ”““““”š““—™ž˜“’˜””””““—“™—™—Ÿ”˜—˜––•“”““•–““”˜’“˜“”“”Ž–——™š””‘’”’™¡–˜ ““”“”“š˜š”“—““‘““”™•””• •’•™“”–’““–““‘”›••””””’““”—–™•““““–”””Ž™”•””“––“•›—”•”™”™”›—”“––”””–—”””““›”™–””–˜‹”š“•Œ””—–•˜“–™™”“˜“”˜•”””–•˜•—™”›˜™™“–Ÿ–“”›“”•——––“––”–“•“ž—–•”“—•’š—““““““““•“—“””““““•‘“™š’™—“˜–œ™ ”””“”–•‘“””œ•–”—”•˜™––˜““˜••”˜–’–™–““”“™”“’•”“Ÿ““”–”‘’”–”“•–—–™””““••”•’“•˜–“”š•“™”™š›•••“–•’”žš“”””˜—š“”˜˜”™”™“š‘™™“‘™›”“’™š”“”““šž”›Ÿ’”š˜’“–—“—‘’“˜”›“›™““œš”“”“’““”ž“–›“šœ™š˜“™œ™“’™”œ”‘““˜™›˜”“’‘”š“”‹—¢‘—•””˜•–”’“““““ž’—““š“““”“•œ“š“”š“š•›™•“““—•“–“”œ™’™’•“•š›™›—“Ž‘”“œ™““—™“”“œ”“œš’”“™š““Ÿ–”–—Ž”“”˜œ›”œ”’”””™”“˜—›“™–“‘ ““ ›žš‹œ““”“•—•”˜—“•”“‘’”“•”˜™•—”™–”“”’•”““’•™““”’“™’•ž••“”˜–“˜–“•••”———“““•˜““™™•“––•‘“–•–”›–“˜‘–•˜“”œš—”•–““–˜”•”•“’š’“““”š‘””•“•“–•“•“’š“““˜œ—”“–“““““•—“™š™˜“–™”Ž“–”“”“–›•›’““œ”•““”™“˜—“‘“•—•—–“˜”–•”’”“™““““””“•–““– •’˜’•“–™—”™–˜“•”’”•••–—““—“’“”“›•–”“’•”““˜–“•™”–“•”œ•“™˜Š–••”’–—”’~”Ÿ“’•——““”“”—˜’–“““’—“’•š“••”•–”˜““”ž“”–››‘”–•™“’–˜•›”’•Œ–“““’•ŽŸ“˜‘”“—•–”’””“ˆ˜–•–—“š— •”™›‘”‘˜“—“’–““””•——’’“”“›”•š“–—“—Š“™š”“š•—““””š’“““˜•“œ“””“–”—“”—“™–”—–”˜—š”””•“›““š’•““—’““™¤”“˜”’““’”˜–•–“‘“•˜””œ‘˜›–“Œ•“–””’’”•”””˜™“””™”•”•””—”’“™š—•˜”•“œ˜”’—””••™˜”””””•”‘•””–•”””›”–•”™”••”“”“”’˜•”••”–”••••––”–••“˜”˜˜–—‘•“—””••–”——›”˜œŠ•”›•“™”‘••”˜”•’””•”“˜””••’—””–”””•””•”Ž–”–œ”•—–——••”””˜š“˜””˜’”•”–”•™”˜–”™””ž”•”—Ž–•––”•””””‹—“•”—”””•‰•š™–•”•“”˜—˜–””–””˜””“—––••”“š””’”“”•”•”“—™–“š›”••”™™—“•™’›“š”›•“Ÿ“š™”””¡š”““““™•Ÿ–”¢š“”›–“—˜•“–›•–“Ÿ›•”“š•’“’•••””• •”š“œŽ“›œ“š™˜Ž”œ’˜”˜‘•œŸ’›“•–žž“•’™˜–”•“˜”—–˜“”““–““”“˜•”™”““•““—“Œ™œ““—’’œ•™•“”“”•š““’›•š”™”•š—”šœ›““–”•›œ‘š˜“”“š““–›“”“–—““—Ÿ•“™“•“”Œœ”˜™”•””•–”•›•˜’—–“––”“¡Ž“••–”˜”’–”–”•”—””—”““••“—“–“–“•—’“•”–•”•””•””“”•—”•–•“‘”••”–”••”–—•”–“”””“˜”•–•—”–—”•••”•””“””˜•“’˜•–’”•••”’““–”“““˜”••––˜•“”••—“—•””””“””’—”““–””””–””–”””””‘”•–™–’˜—”””“”–•””•“”•””””“”“’”–”””•“•“––“”””””•—”›”••”•”””””––”•””™”•—“•””–“”•”˜––•–™—””•œ•”–””’’”–”“™Ÿ–“œ—”“““ž•—“™“™œ™”˜“™‘™˜“ž˜””””—™”““““•Ÿ“šœ“”™’—“˜“ž“““š“•“˜™™”“—Ÿ ”‘”“““•“–“›™”••š˜–“–œƒ›”““””–““œ•••™“•šš™“ž–Žš•““•˜•—”–“”“”¡“““¥—“““”““““Ÿ“”˜˜“›“ Ÿ–•——”””“𛓗““š–“š“–““–———““œ’”š–•™–—˜“““•““‘›—•“–™““™““ž—“““•¢“—˜””˜“”˜””’œ¡“œ—“’’“—›œ”“œ“••“——š“–“•——““““”–‘•“’•”—“š’”“•—•”““”“““›—‘”š—”—•”–“˜‘™•””‘–“•”•“—–š”–”˜”“––”˜–“’‘•—”““ž˜™•—’‘“™”–—˜“˜““£œ“••’™—”–”‘”–•“˜“˜““““——–‘˜–—“““™“–œ“–”˜’™“–ž˜ –—•””““—˜’““–˜™”—”’–”‘’•“”“—–—˜š™”“‘“•“–“˜”œ™“‘™““–™•–•—“—–™‘“‘“˜“–••–˜‘˜’˜•“’–™“•““œ“––“”’“”•–””•”––™“˜˜”—““•”—’˜“™•””“•’”““”““–”–˜—–——–ž•˜““—›•“””“—“”•‘”“˜–Ž“˜“””“”””•–“’–‰’–•“’—”›–—•–“——•“•——•“–’•“–“”š’’–”“š—•“•—“–““™“““’“—––“““•“””“”•”–œ“‘’••”••“““‘”˜–“”•š—“—•“–’•—•˜‘“•‘–••˜“–––œ“•“”™“‘””“–““˜•”’”—““”Ž˜•˜•””—“–••••‘”“—˜“—“–“———˜ž™••™“›ž’“š””“”›”—“››˜Ž™”–”–”ž•”•މ”“’˜›”““““˜Ÿ“œœ““›–‘“’œ“œŸ““•—”—“›—𔓕—£””“““•”–“•œ”˜š ’”“šžž’Œ““”‘™”š’—š™“•Ž•¢•™•‹ž¡““Ÿš–’”“““““—““›““’š“”“š““˜“©›–”šœš•’”“””—“™““—“’ “˜”’–••—”““‘–’“”™¤˜™’›“““”““£—’”“–š““œ¥“›””“““œ™–”—”””“•š•“™• ˜š“Ž£‘“œ™œ”•Ÿ“•“–’’”•˜“••••“˜“•”–›–“””—”•”œ—’““”––““”““—˜”•–••”•’”“””•’•“—•”—“•—““˜•™“”””““•””•—””–•“•™““–••–’”–“”‘”—••š•“œ“—“•”•”˜—•“™”‘™“”“”““—““–’“–•”–““”–“”˜““•““’“•˜”—••”””“–˜••’“•™•“”—”–˜”—•••“–‘•“•”–š–•’“”“”–“”™•“’—““•”––—”“–””•˜•–”“”“”–”•––••””““”•“””•–——””•” ™“Ÿœ””“” ¤“– š–™”Ÿ“˜“˜ž“—œ”“•œš””“““™“šŸ”“Ÿ“ ›““ž”“˜˜“ “Ÿ™”“‘’”Ž”””’”›”•”™˜ ˜“—”¢“” ”šƒ“—Ÿž¦˜“¡žœ™’š”ž–˜œ””£ ”œ•—““““““ž‘˜œ“““””—““—“ œ™œ–”•™›”¢š”””“šš“š“”˜Ÿ”š””•šžŸŸœš”’˜““—£ ’ž¢•“””›’“œ™““¢ ““–•“‘œ’‘”””– ›œ”‘”””œ””™œ–œ•š“’’’“šŸŸœ£“”““–œ””™˜“—••œ“•””š––œ•š•˜“•˜••˜‘”•”–œ”””““œ”œ™–”—˜•“›–“——”“š”—–“—‘““œ˜—•”•“””–•™••›”˜•››œ“š—”œ•“–›”“‘“•š›š”“Ÿ ›“•”•𔑕“”–𔑓“““›““ž–¤˜“”š“““•“””“Ÿš›•Ž“˜˜”“œ““””“š•”™“”’œ”–”•”—š›™““’”“—›™˜š˜““””™”“š˜•”“˜““™””˜™œ•“” ”™œ”™”””“•—–”œ–™•˜—“‘‘’“šœœ˜•œ•–‘“˜”’“”””‘’—“–”—–—”–”’’••”Ž’”••—””””““•ž––••–‘•”””“˜–””“–”—“›’””““’’”˜•”“”–”—•‘–”““›““–˜’”“””””“”˜•˜”“™’˜”“’•—––“–“–“–’•–“”““““–“Ÿ””•”””“”“–”“¡‘™‘’“™—“š‘”•””““”“““”˜“”™“’”–••–’•“””””•˜‘Ž’”™“””—”“˜”””“Ž•““—Ÿ•™–—”•š’“•—”‘“””•“——“•’•“””““˜–””–˜”•–”—˜–•––”“”–˜““”š“”’˜•–”•”’••”””•”–••””””–—•—”••”—–”••”™˜•–•–•‘”•–”””’—•“––“”——”••–“–“”””—•–“““””’“”–••Ž•”‘–“’–”–—”•––•’••š—”•”••””•’“••”–”””””•””’”™•“”–“–›••”””–”•˜””›‘”•’—”“”•’–”–”•–••–•–’–“”•”••”“•’””””””–””•”””™”““••”•‘””””—•”œ••™””›–”—–•”–“”””š‘•˜Ÿ”•“•˜™–“——œœ•””—–—˜”“™š”’”— ””•””—™•”“•”’œ””–•”—˜”•œ–”•””—”””–œ–•’••”””–•”›””›—œ”˜”¥œŸ“•›••”’š–“•–•š”ˆ”˜¡“š–”œ˜Ÿ“•œ›–”“””””ž””—Ž”—”“˜”””•”•›”œ™˜–ˆ”—–’˜‘•”””™š–œ“”–”•Ÿ”š””š—™˜•˜”–”••™—š˜—”•”š•”’“–•”—•””œ–“ ’’”—˜š˜š˜”’“”•Ÿ–•’œž£˜”’‘–”™”••‘™–”•”¤š“–‘”•””–‘˜“’”‘Ÿ“““”“™•ˆ”””•’“””””“’Œ—•“•—”“™”••“›s””’–”𔕓™””˜–”“•”–”•”••—–““–˜“““•–“”Ž””’“—––‘˜•”š–…“’”ˆ•–“–ž“—•“’””•””–”‘”•”””””“•˜”’•‘””‘š‘˜‘”“””“•–’””œ‘”••““““™’”‘””›–“•‘Š–“™”””“•””‘‘”””“—†•™’’–”’šŽ—”“””–‘”–Œ•”—œ••’”““””–•”‘Š›—•”•“”•”•••••••””•–”•˜•••••––•”™•“•••••••••••–”•–”••”••••••˜•••••”••••••“•–”••••”•••–••”•”–••””–•–••”•••”•”•••–•˜””•””••–••••””••”••–••••”–”••––•••••••“•˜“–•˜”•••—”•–•••••••••““••–•”•”•”••”••••–••—–“••”•••••˜•–••””••••–••••••–••”•••”•••••••••••–••–•••–••–•••–”˜˜˜•”””–•••–˜“—––‘––™•˜—™–•™”˜””•–•””•”“–“–’–••–š“”—”———•—š–™”–”—””—”˜”—––•”•–˜–––“•–—’‘”––¢“••”—”•š–˜‘•–˜”’˜”š”›–”–—š–”™••“•””–””–”””“’“—•˜”””•”–™””’˜—””•—”••›–””“•––”””˜––—•””””•—–—›”–———˜—––——”•”š–”–˜••””˜””——–—“”””•”——”–•”›’”–•––’—”•”–”•“–”š•–•’—–••“•œ˜””˜“•–•—–—”œ˜˜’–”’”˜–™˜”œ•“”•”–™”””””˜˜”˜––”–™’•”—”˜–—•—™”•”—˜œ”“•”””••”””••––••š’–•—”˜œ™““™”—”•—•š”–—›”‘¥“›•–Ÿ•Ÿ•“™˜”—••“—””“””“–”“—•—”””•“•”“’ž””•”™••™—•””””™•˜””•”–ž•™”–™”•••””––—––˜”“•””•”––”¥•–•”—’”“š—•˜–•”””—–—“˜—””’””›”•™–œœ˜™”• •”˜—•˜––•”•“•’—•”•””™”™“›™š–—“˜••••š•’˜•””œ—”“”““˜Ÿ•™—•š•’“•™“Ÿ””™”“–“›——““••ž”“••–“””—–••””–𔕓†œ¡”““””–•š•™—”“–šœ˜“›–‘™––”“˜–••”—““““˜““›—“••𔓓–“•œ“™š›”›“¢•™›“•“”“——“™““š•–—•™”•—•”˜–š“”˜”•˜—’——›“•“••“›••–““–““™™•–™–“–—˜•––”‘–“”š“•”•›””–“”¡““”™’•–—•••” —”•˜˜“–—•—𔕉™––”›“Œ‘•¦–›””•’—””•””›š˜œ’••™°””œ”Ä•“™—•£”˜š‚““©£«˜™–•—“——™–®š”•‚˜•˜”¡’ ’•œ•—”­”•š–“ –””” –ž•¡—”¥”—“¤Šœš–’”š”–˜””–ž¯™”–•”””“”—™”›˜—}”•¢˜›”””””••—“”•©”““›“—›—¢”––”¡˜–“–“¢œ¢–Œ““”›‘”””–”›¤””’–™“—”•–˜”˜š”›•“•‘–”›¤¦¢ª˜”–‘””™’•‘×”••”•›’“‘“””””““—””””•“”””–—”“Ÿ“’”””””””“””“›”””’”””–”“–”™Ž“’”””˜””“•””™™Š”“””””””“”—”“”š“””–™™˜’•”””•””™”•‘“”“™™•š–“—‘š””•˜“”–’”“””‘”””’”“’”””””•””˜”œ—™“Œ”™””•“’”“”””“””“”——“›””””˜”••”“”™”’“”–•””’“”””•”–”’“”’–””™¢”™“’•””œ“–•““”•”“”—””“”™˜š›””˜“”•”””Œ•”•”“š™ž”“•“•””’–Ÿ“›–˜š”’•“•””–’œ–’“’“”–’’“““••”’“–“”—Œ“•‘“’œ””˜••š“•””“–”“““”“•””•’•”––—”–“”•”“–—”•“™”—““™—“˜œ–—˜›’•›””œ••“•“•“’’““• ™•””““““‘““‘“•——–•“’Ž™˜’““““–™”•’“˜•”“–“•š•˜“”•“—™•”š–™—•••’““–•“—“˜•“––““–•”••—–“•“–”—–•“”–”•”“•””•ž—“––“””“””›”“•“—“–’”””••𔓖—”•””—”—’›–’––˜”’’–“”“”““—–””–•”–•”’”“””“•–’—“˜—–”“™•“–“””“”“—•”””“˜™––“Ž•™•”œ“™“™“•“–•–”“••‘”’›š‘˜”“˜™’–”•“•“’•““—‘Š–•“–“““”““”“•–’””“•’™•™““”“””••““”˜”“••“•“•”–˜•“““”””“’‘•—›“”“••“‘––”“—–““•“’’—”““‘–’““—”’’“”–””–’—”•“•Œ”“””–—–˜“”•“›•¢”‘™””””˜—˜“˜¢›‘˜•š“š”™˜“˜––”“–›—”“”””››•š–•“›™œ“’š“ –”“•˜”˜”˜™•””›™””””••””•œ” ˜“œ“–˜š“™œ—••‘’™””””›™˜——“|’›š“–”“˜•–”š—”—™“•““““–”•”’˜““”•“• “”›™”𠓉˜š•”””–˜“—“”  “›“–”•œ˜›˜š˜”•’“”••—ž–Ÿ”•”™““’˜””“žœ““™”¢•””””˜™–›˜”–‘“”£“”™žœš““•–“›˜››™””••”š•š“—””““—š“š›™–””’“•”“˜“™–”““™—””“””” “—™““š”“˜“™’”“™˜“™“š––””–——”“““””“˜”˜—””˜—˜•“™–“–“‘”‘“›—•–›“•šŸž“™”Ž—™“”˜™—š’–“’““˜“”™œ—“’™“”“•““›“™š–”œ—’›“”“”””—•“—“”𔕓𔓖”–˜–œ”˜“”™•ž’—™”““•““œš””“–™““–Ÿ“’š‘””•›—˜œ˜–”˜—”“™“”˜˜›š™œ“’ž”“•™••”‘“”“””—˜–”–”—•–•–””’“””—•–•˜””–—•—”•˜””””–••”’–•”•–”•–”“””““•–”–—””””—””––˜••˜——•–—”–•••–‘“”•”›“•—–—•””––—“”””•”—‘““–•–˜—”˜•”“—•–—”–”””””””–”––•”•”—•˜–”•’•˜•––—’•˜•”•””–•””“–•˜–••–••–•••””–––”””””•–•–”•–•–•”–”••”””•–‘“—•”–“•”˜••”––•———–••“’–”””••”•••”‹“——•““›™’”“““““‘““”•–•š’˜”——–•”š•‘““”˜””“•”“—˜—–“”•˜•–““›“–•“”—•–’““•™“““˜š””“•˜“•“™“—–••–š’–“˜–‘”–’’”•”•–˜”“•“Žœ›““—•”š–’•“•“Ž’“”““““–•”™••’“““”“–š“™—›š‘“™š––—–”““šœ””““š’––•”“˜’””•—“–š’˜—“‘—’’“’“˜–“˜“—–“—–““—˜•š—”—“——•–”—–“–’””𔕔–””™•“’™•“–‘•”–“”“›˜–’•”“”•“˜•™“š’Ž–““‘”’“‘“”‘““•“““”““•–—™’˜”’•’—–“—™–“’”™“–™””“–”’”•“–”“•”””–—”’•–’‘““•”˜”’’’“–“•“—›–“•œ˜“•“—“—–•“›–•“•˜““““—““—“Ÿ’”““““—““‘“š“™Ž•“”––”‘’““““Ž••”““”—•––’“–•“˜’Š“”˜••”••”“•“”““““–—”“™”““•“•’’“”œ“™‘”“”“““••–—•œ›—˜“‘““–“”•˜•”–“’‘•”–“••–š™”“•—•••˜•—•’––…•””““–”““•““™–””—•”•˜””–•“–’••–—•’“™™™”“™•©“•–•“––™–“—”“›”–”“’”••””—“ž‘–‘™”˜“““œ’’˜Œ“œ•““““•“–“’“’•““›˜–”””“““š“–˜““•—•”“–”І—š–“”“•”•”““˜•—–•“”””“”—–“—‘•––—šŽ˜™Ž“–“–•“•–•—“–—““–—•””—’“—™’—›“˜“˜•“•–––—•–’’˜“’ž•““–—•Œ–”••“–™–•””——•–˜™“•—–—••••”•‘••š–“““–––““•”“••–“—˜–•”œ•˜“•œ˜“—–•—“–”•“”‘ –•”•–“––”•‘••“–’–•”–““™——”“˜•–“””œ—“˜•š‘–”ž—ˆ˜••”—™™–™–“•“”—““—˜™•–––“”“•““““”‘•”’””˜œ”––““”“——™•““•”˜••”•“––••˜“•”—•–•𔕖›“““••“š–””“›—““’•—–˜”“••”’—•–“””“–•–––’•Ž”“˜•“”•””›˜•••”›’““—–”””“™–”š”–ŒŸ“’••’‘˜”™™””••š›””“””—š–‹˜•–“‘“š’“’•”“›Ž”•”•›“”’””“””•”•”•“•”•‘–™“”“”“’“—“•””•”ž¡—””– –•””•’’ž”””—“Ÿ—’“““”˜”” –’–œ”””–””““•’•”Œ”‘”—“”“”˜–•˜””‘•‘•”••—˜‘—””“•”¡˜•˜™Ž”“”•”¤™““”““””•Ž¡›–”“›’‘””””“•””’•”‘–¡Ÿ’”“‹””˜“™“””–™”ž”“•––“”””“’““”””—••”™“•””••™”””“•””””“–‘“œ”“•••“œ•“’’”““𔑔•—‘””›•“”””””””–••˜”™——”—”š”–‘•–”•””’“™š˜Ž˜”–—𛓖•œ’•”’—˜•“”“”Ž“”“”Œ˜””—”””•“••“‘Ž™Ÿ”•š”–˜™””””“˜’›“”’›•‘’–”•˜–™œ•”“š•“š—•“™““•”–“““š’“””—”“–•”’Ž’”•‘––“™”˜””“”•¡’”Žš“””––“ž•œ˜”“““”“˜“•”š“––—”œ”“™˜–™••”””“š•”“”›””–”–““•““•––••––”“™”–¡“Ÿ£––•”•—“—”Ÿ““”Š““•–“”•–”•¢–•”›œ•”“—œ“¢——•““’–™”•˜—“š™““š’“ž™•”›“•”–”“˜“’”““•‘““—•–“““˜”•ž“–Ÿ“›”Ÿ œ¤œ“—•””””—•’”œ”–¤––•–˜”™”•–“”š•—””’—›”œ”•“””“•‘—“”““œ™•–•‘“”—ž”••”““““–™––– ›š Ÿ“’œ•“—•”“£—••–“–”—––”“—–•’•“”•š““–••”•–“’•Š•˜”””“–”“•““”œ•™“•–•””™”“˜™•””–˜”“”˜™’“ •™”•—”‘”•—•–•–”“™˜”–“—“—•–—™”ƒ–™™•Š”“ ¡–“‘‹œ˜Šš–“’”•‘–“˜“”’“““˜•––•“”“˜“—–“𖛔ޓ›œŽ”˜•“”“—™–—“”–™””•”–˜••––“““‘–•’’–––““”“—–“••˜““”š““— –••‘–”’œ”’•–””“—”–“ ––œ—“””“–’–”ŽŠ˜••”—–˜””–”•”“˜•“”˜’•’””•–—”“•“–••”••”•”””””–—”–•“––—Ž”–”””“““–—•”””—•”””•¢•”•”˜”–“–””””—Ÿ•––””—•–”‘”–””–”•˜•”“”˜–”“–•–“‘•””‘••—’””“”””””•–•“•””””””•”””—”–””™—’‹“—•”””•“•–””–“””–•””–•••–•”‘”••—––’“•”•”••”˜•“””˜–””“–”“••”””•–•–—–”““”•–•“˜“••–—””˜•”•––—”••””’˜‹“•“””“•“•’“’”•—”•”•–‘™””Ж𔕖“–””””“”•“”“””—Ž“’œ””‹’”˜•””“”“”‘’£”••”–“””•“—’”–¡–“–”Ÿ——“•“’””“—”˜“’’›”›˜”˜•”’—™””””•”—”””“””””™–””’“””™“”–””—””–“š–•–””“˜–’‘””’“–”—“•—“’“•””–“•—“—•”“‹“•””””—““•”–’””“•š•”•”˜”–”–•”“•“”’•–’”Ž’•’”’©“”””“”„‘“•”“–“™”˜”“““”“–’““’“˜–”““•“‘•”Ž“˜”‘“–“““”““’”˜•’•”’“•—“”˜••‘””•“–”‘““““œ”””•““”•”•–“””’Ž•’“”›‘–˜””“’•’”—•‘“•”˜“•–—˜–›”“—”’•“”““—“““• –“”•“““”“––““”–—“’•–•–•”““““‘”—““’••˜”–““‘‘’••”“—•”–”•”••‘•““““”“—””“’—““‹“•–‘“”–‘’’”“‹•“”‘–”‘–˜“•‘“‘ž”“—”–˜›’•”‘”•’•”™™”••”–™˜”‘––“—”“”””–—””™˜””•™š”””””““–—••–’””‘–”™••”™––””™”–””“˜—”š••“”••“•—–”•”“”™”••’’”™”•”•”••’——””‘–•”’•‹‘•‘•”—–“™•””•“”œ””™“¢“”•›”””•“•–“–’’’”••••”•”””–”•˜“”•“•–•—”–””’––œ””–•–“””–”–“”””“””‘˜”•”’–””“Ž•’™‘–”•––™•”•”˜””•••–—™”—’”’––”’•““•–••–“˜•–”œž””“””˜˜“‘–˜•““œ’˜š”“›”“”Œ•”““““’”—‘”“‘𓙓ކ”“•˜”¡“’—’”“—˜£•œ“”•“”“–“˜”›š–™Ÿ“œš™—””—”–ž”“”Žšš”Ÿ“”š–›™—•˜˜’”˜˜–œ’“”““™““’Ÿ‘”“‘”””’”“““˜žŽ™’“——Ž–““““Ž•“•“”‡Ÿ’–“’“”•“’Ž™”“—““›–Ž–’𛓓“”““”—”“Ÿ›”“”›“•“ ’”“š™˜•›”Œ““•™“”’“‘Ÿ’”’™““•””˜™““““˜˜š’š—“””“”˜•“’–“––“““””––“”–˜”“’—–““’““•—”š””™“’”˜•““‘”“•““”“”•š’“•šš”’“”““’’’”“””“–”•–“Š˜ˆ™”ž’›““““•—™•“›—𔓗‘™”“—•–•“•““™““™‘‰”””™“““–““˜“’•“Œ“•—“’••““““–“–“““”•›•”“•“”“™”–“—””™˜”–—“““”“––””“”–““—ž”™™’“”˜•˜–•’“““•™“”‘••–š“““˜”“‘––—“”’”™š““œ˜“”’“”—“”˜”“˜”—””‘–“••”“‘›”””“”“—ž’“–’’™Ž”“••“¤’“‘–’œ“••’”“›œ”“”“’”“”š’˜””‘‘˜–“‹œ“–’”—”˜’’–—”œ—“››”“•“˜‘“”•”’••““”“”œ“”œ—¥–‘‘˜“”“‘“’“™“’“™”žŒ–Œ’””““—“˜“”œž’””‘˜Ž˜–™—”•–’‘“’––’Ÿ””””““•š““—”“›¨“’›’””™‘œ›••”“““”•’‘—•˜š˜“Ž…‘““’’“›˜’”’“–—™”—˜“••”–—–“–˜––˜”–”˜“––”š——““”˜—“””““—–”—–•”˜—””—•”–””–——•–”––•“”——’””••–“”•—•——“˜“•–˜“˜•—”•—”–”••–———•“–––““”••“•”””–—”˜–““•““–””——•˜—”–””””“”•“™•˜‘”–•”——–”””“—•–˜“”——””–™“•——————“––•”—–“——–—”””—•“”—˜””—˜“”—••—˜”–”””—•–˜—”“’””—••˜———˜—“’“—”—–——“•–””“Œ™§”“”•“Œ•’“••Œ”Ž“”˜‰“Ÿ“”–“”“””“”•‘•–‹Œ”Ž“’•–“Ž“–“––“””Œ”—”•—“••’•Š‘”“¦‘•“—™™£’›“˜”” •’’—–“ƒš“–š“•˜œ•””𔕔˜“”““•““’‰Ž•””““—”•Ž“ž›Žˆ¥“—›—‹–‘”””“Ž‘—”“”•“•—””“Ž“‰“”—••ŒŽ•”“Œž”““˜“›Œ˜•“’•”“¡¸””‘““–—‹’–‹“”‘”•••“œ|’˜“•’—“‘Ž“‹•–”—”œ•›””–“˜–—”‘˜“—–˜š””–•”•›•“••”“™”—””””“•Œ•™“˜”–••“–—“’‹–“–™•𔙕𔓔”–’”•—•”“––•—˜•˜¡™–™“•–“™”“•’”–——•–’Ÿ—”™“•”–”˜—’••—”™”‘–“—“““”•’”••“””””•“–—“‘•˜–‘”““Œ™–—””“——”˜“”•”œ•–”š˜–•“˜–”’–“—˜“—™”••“•”˜˜””•——”œ–”“–’“”••”––—™—š–”‘–“–“••œ–•””“˜“š—•”›¢–•–”™—–“™•”“’“•”—“˜“’”•““’—•“Ž““”“’’””“““•œ““—’”“”•”“•““Œ““‘““œ”˜—–””‘“•““””““˜““•”Ÿ––”Œ•œ”™”””•”“’’‘¡’”““Š˜•–“¡——‘’”›œ”’–”“““”—“””‘¬“““””””•“’’“–“•‘›””’“‘—›””””Ž”Œ“”•’””‘”““–‘”‘•’“’“”’•‘““”“’“‘—””˜“”“–ˆ“‰‘–•””’‘——•”“””“””“ž’’””“•‘”““‘”‘ “”“”ž“•”šœ“””“¢“™“—–•Œ™“›“‘›”˜™”•”–š””“““˜•›¢’•—‰”𙓖““™š•œ“œ™”“œ™•”Ž•“”“•“˜”™œ”–›”š—““™”“”™”Œ“’™˜š–“˜™——•Žœ“•”“™™—––’““““£““¡Ÿ’““– “”“—“•š“”–—•’“š™–‘Ÿ™”“”“’”•š“”–”˜”””•š›Ÿ™•”‘”•“‘™–œš”“““•““œ”“““““™Ž•™––“”›•™˜“œ””•”•œ””›™ ˜—•““›’“žš–¡“”””•“”•’—”–”–””“””–—”–”•••”’•• ”””“••˜””•””—’““–“––•œ•”•”•š””—”–’”““”””“——•‘•”˜”–•””–””––••–”œ”••”’–’”˜—”–“”“—””‘•”“˜•–›•””’’–””“”˜””’””•›‘”–”“”””“”•””•••”™”“••‹”“•”””–˜–—””“““’”˜”“–••••“”™”””–•–™–”š””””—”—•–”’’”””•“––•”””’”’••”™—”—“—‘”—–—”•”’”•”•••“˜‘•••”™“—””œ””““œš‘“–”–˜–”˜“’š“–šœ”“•”•””””“›’“•““•œ“’š“˜““œ—’’”–™›”””“•ˆ“”’””“—”–—”–š—”˜”˜˜Ž‘“–”›””‘“––˜š–”•“˜Ÿ“—•ˆœ™˜’”——•š‘’””“”—“”™Ž’–“’š”””““•“—Œ™—”™™‹—”””””Œ”™“”—‘“—“˜”“–˜™—™—”‘“““–žŸ›˜““””””Š˜’””™“”“–“š–‘“”“•š’”•™”””““”“šœ™“’”“œ””‘™•š‰›““”“¥“’—›“’’’†¢¬“‹ ”™“”’Ž“šž’•¢“’™Œ¡”“’““Ž—”œŸ““”’Ž’œ™’‘—”ž“œ—“”“—𙓗“’““”’“”˜”’”—š˜“–™“™’°’š“–|’•‡š˜““–™“¥‘¡™™Ž““¨£•ž›“’’’š’’‰¤Ž‘“•“““•““–’™ž“˜“››š˜—““”“‹‘“š’“•š“—“–“–𛓔•“‘™“‘™ –šŒŠ“““™’’ŸŽ†”“‘›“’›”’¤–“”“•¡ŸŽ›“Ž’’š’•—š—“œ›“ž—Ž“Ÿš”—’˜’“˜“Œž’ˆœ“““““º¥“‘—¡‰’“Ÿ‘•’¤™§““©‡˜“’’’“„Š”ž§‘“‰©’•’’ž””’—¥’œ“›’’“±ƒ’—“““““‹“ ‘“›‰›­’ž›Ž”•Óž“𔓢“š“œ}™Žš”¢¡”•¦¯‘œ’“’‘›““‘—^š•”™’““•“†“…ž‘›“’•˜¹Œ“““““’¨’“””•Š”““Ÿ”– ’•““˜Žyž–‰”“““–‘“uŽ¡““Ž‹“’ ž“ŽŽ¹““™§¢£¡”“‚‘“”“˜›°ž± “®†„“–—’ž”“’”¡”—•†“”””“““š˜˜“›œ•’ž“““”ˆ”“‘™”“”›•”““““˜¢”•–‘“——˜“›““˜”’˜Ž”•“‘™…”“ž“”“Ž“’•””“˜“—š”—“Ž‹“‡‘µˆ•Œ”›“˜Ž“’šž—“—˜¢–š“‘—“““Ž”–˜Œ“““’““™‘””‘“˜““”““”œ“•’œ—z””˜¡˜˜““”““ž“’““Ÿ“Œ“‘”“˜¡žš”—“”Žž˜Ÿ¡•”“”—‘“–™™“““œ”“Ž“˜ž•““ž›“’““•““—“”––ž˜˜”‹•“•“—”™’”•“ž“‚‘©—’’‘‘‘˜£’†Ÿ¡‘¡’”‘š‘‰œ“’Ž¥™’’‘‘’“š“ªŸ‘Ÿ”‘‘¬“’™’“›—”’¡–’’¡œ—‘›’“–’“’Ÿ’—¢™–•”’ž”’“”ž’•’“‰’ž£‡›’”•šœ”••––’’›‹’ ’•’’’‘—‘™—‘’•’’’”’’ž’–˜”›Š‘———‘ ’’“’œ®’¤’’•žŽ’™‘’¡—šœ˜¤’‹“’’›™›ƒœŽ‰’“’¢“’žž‘“’š’‘“¢’™ž–’’ŽŸ•𢖒ž‘’’—’‘œž¡›Ÿ”’ŸŽŽ’§Ÿ¡–‰Œ’’Œ‘’ «‘”¤’“‘‘¢¡’˜š¥}•‘•‘Ž›¸›”’’•œ©’‘‘“““’›‘‘–“‘”“’œŒ š“™’˜’œ’’”œ’“’“”““‘™‘˜“£Œž ’Ž™Ÿ”ž‘˜“––‘š‘–¤‘š¨{Š‘¥•Š““ž’”  ”œŠ ’”’‘˜‘‘”ž’’–‘’’‘“’™‘Œ š™’œ™‘s“’“’’Ÿ—’—’˜”Ž›’ “”£˜ž••¢’†Ÿ’’ –Š–––£“’’¥‘‚šˆ“’š“‘’©°‘ £˜”’’Ÿœ¢žš’ž–’‘ž’›Œ —’™„”‘—•’”ˆ¢’“•’™‰˜‘”’“’’“–™’˜žš”•’’–Œ‘ ™¦““‘”—“’’’“’•‘œ’’”šž’˜“’’–‘•˜’¢“‘™Ž““¦§œ’‰“‘“““’™’«““ Šš› “˜¢•”›’˜””žšž’¡“Œ‘¥”—œ•Ž”œ“•”›“£¢”’•’’Š’’‘Š˜““’““‘““¢’“˜ššŒ’•”›§ª“““’’ ”’‘““™¨•”“š””— ”›˜’“˜‹‰£š›Œ““’–’’Š™œ“’”¡“’¡Ÿ’™–•’“•—–¢— ““ˆ‘•’”“”£”‘™¦¡’‡‘¨’•‘™—“Š’“’¥•‘¡›’’‘‘£’¤˜ž›’—‘”Ž—›‘»™‹’Š™ž’’‘’’››“¢˜‘‘ž¤‘¦’›”‘••‘™’•”Œ“’¡–“•’‘›”’‘—’™“ ‰™•¤’ޤ˜••§’œ’›œ’œ Š’€” •šŸ ‹™’‘š˜”—Ÿ—’“’‘—’“››’‘—’’’“‘•’ŠŸ˜Ÿ›“š——‘Ž’““’—’¦’’…¥“œ’¥“”¡–ž–”’Š—’‘𙉇‰Ž¡“‘’š”’‹”“’œ›’’œ«‘ž ™““𥓖£–’Ÿ”’’Ÿ‘“ž‘‹™’‘’’ ž—œŒ’‘’‘œ£›‘‘– ¤‘Ÿ š‘š‘•™£—–’‘›¡’‘‘‘™”’“¡’£—žž†•¤’ž˜‘–‘¤”‹’‘‘…“•‘’“’“™‘Žšœ‹ž¡™‘–•œ’¥‘–’–|‘’™žž—‘„‡’–—¨‘‘žšš‘Ÿ‘‘£‘¡“”“£‘‘‘”‘‘ž—••‘Œ›—™’‘’’‘•˜‘‘‘“Š‘ž‘’•˜— ›”‘’‘•ž—“•›ž‘‘“”žœ‘’‘–‘ ¢“ “‘”˜—–š™›’™’‘”‘“““’’‘Œ‘œ ”™–¡‘’—“Šˆ‰““““““›Œ”“™£“ž“ “œ’˜–’Œ“†““•”˜”““““—˜““—’’˜’“ˆ‘“œ“’œš””“˜œ•”“ž›”›“““””“™“Ÿž““œ—‘“š—†ž’ˆ“¢“ˆ’š’–—“•Š –†’ˆ™–Ÿ““’Š•“ž““““–““›™–“’œ“““•““ž“¡“›Ž“”Œ•œ˜““““Ž“‘’“˜™“ ““’“˜• š“”‡“”–š‹Ÿ—“’““™““•ž““˜œ“’˜£“™“›”“•Ž “™‘“𔓒ž“”•œ™£–œ“—‰–“–™”˜Ÿ¢““”“’ Œ’‘“““’‘˜˜““š˜—–’™“œ“’™’—™™““–”Ž“’’’“œ–“‹““›•’š“˜‘‘œ’™““”‘““™”’’“‘‘“““•“˜”Žˆ•—“†—“š““–›“–‘–—•“” ˜š’£’“‹“•˜˜“˜”’“‘“‘“’’‘••—“”“’“’•”“›’––’“˜ž“ŸŸ˜’““”˜œ’’’˜’•”˜”“™—–—–™’™š“—™“ž›‹“““”“‘’’““š“’•‡“š“•“’“œ”’˜”“”—”“ “˜•”–“–˜—’Œ“œ™—’”“‘«‘Œ’‘‘§¡‘‹¯†¡‘™‘¤Žœ“c“ª’ˆ’“‘’’‘ž“–¢‘˜¢‘ „——’Ž’Žš¡“‘«©—’‹‘—’’’‘¹–‘™••’‹’ž•ž‘”†‘ž‘‰Œ™œŠŒ‘’”£’’‘†š•†¡‘šž’”¤’‘Ž‘‘ž‘‰”Ž¡‘’‘–‘‘©‘˜ž•™‡‘¤¦“£œ‘’“‘ž‘–‘’¥¡Žž‘‹’’“˜§ ™–‘•”‘Ž–”£·•ƒ‘‘’‘‘”›ž‘‘›‘–•‘Œ’‰•’‘™›†‘™’›”‘•‘‘š´©²ª•‘‰›œ‘œ•¡ž“‰‘’Œ’™Ž”’†—“”’’œ–’“”ž‘›”’’’‘’“’¤‰˜“““Œ•“’’””‹’’–‘’›’‘“—”‘’‘‹”’“Ž•““Œ–œ“™“’“”“‰“ž’‘‹‘‘‰Š“‹•ºŒš’”œ’—Š˜˜•“Ÿ™’š¡™Ÿ“•˜’‘•‰“•“–›“’–Žž„”’–’““’”“Ž’¢Œœ„š““‘•†ˆŒ’”““…—’˜““š“Ž’˜’“˜Š““™‘“–€• ¤ ”““’‘‘’£‘£”“™•““‡““‰““’’™“Ž‹“’•””“Ž—¡Ÿ¬š“Œ‹“ŽŽ‘š““•“——’“•““““’œ—“˜˜šŽ“‘“Ÿ’¤¡’Ž˜š“’”—Ž“““’“˜›“œ”“Ÿ™—“Žœ“ž“‘’‘š“””™“—””•‹“”š“’”“”“š“Š’›“››““ŸžŒ””¨“š“’“–‘›‘““’–—›”¡‘Š“£““™—”•¤•“““““““‘“•““˜“““”““““š•œ‘“—“Œ’™““““””“˜’“™“’‘“”’•‘”‘•š’“•’“‘¡•Љ••¨““”“’’”‘““•‘““œ¬“­‘–““’•¥‘•™””“–“‘Ž““’œ“¢†’“•˜”Ÿ’—’“—‘—–™’’‘‘•™”‘…˜§š‘›‘š ”{¡™’‘˜¢‘‘‘‘•ƒ“˜”‘›šŽ‘–•‘‡Ž—‘–‘—˜’’–Ÿ‘–’‹‘‘‘š‘˜– “ˆ¦ ‘£–’‘—–••§’¯š„’ ”“’Ž”’’™¥‘‘‘‘š‘‘•’“¡‘’œ‘’‘Œ‘‘‘‘™Šœƒ‘ˆ‡†–‘‘‘’‘¢ ‘™’ˆ™‘Œ’—“™œ¡¤™‘Œ˜’ ”š˜œ˜‘’‘‘•‘¤›‘‘r‘£Ÿ”‘˜ž™¢™’›’ ’’—™‰ž‹’‹œ‘›–œ›™“‘“’œ—}’Ÿ““’’š’•„š’›’š’–‰‘i‹Ž“‘•““’’“‘œ“´–‘’ŸŒ’©’›•‘‘Ч’’œ¡™““¡¤‹“š’‘”’“’«’›“—Žš•’¨™š”…’š“Œ’šžŒŒš’…Ÿ—¥œ™‚›–’’’„‘•¡’’’’˜’’““¼—’Œ“’“—’’’’—›”‘œ’”£‰ª’““‘š “˜’“›–“›’Ž‘“’”› ”“œ™’‹ ‰œ”’’’“®‘’“’•’’‡“’’–©’‘•™”“—˜•’™¡ž“¤“’‘’–¬¢˜Œ¢˜’ª•‘’ª˜Ÿ•š’“—“—•›“›š“”““˜œŸ“”£–Š˜“›“˜’”’“šŸ”“Ÿ˜•“““”ž“’—•’“š‘“ž”“•–’”––‘ “𛓓“›’¡“¡“‘˜•““˜“•š–š™–šœ“™—–’£“”–“ŽŸ ž•””›‘”•™ž–”“—ž¢“ž˜“”“’™““™Œ¦˜’”œ“““•“š“™›“˜”“–›“œ™“•””•“’œ’“’¢”•”š“–‘™™Ÿš˜“•’“’ “ šŸ””““”“”™œž““¡““–“™›˜’“””›š›š˜““š•“œ“•›’“¢•’“’˜Ž“•—“œ˜•’“–‘’—–‘™‘’–—‘Ÿ“¥ƒ™›œ§™Ž‘‘£—˜‘‘‘ž™’Ž–Ž–š‰‘•Ž¡’“‘–•™‘‘Ž‘‰‘‘ž‘‘‘š‘‘•’–—”Ž–„—“‘Ž¨š‘Ž—š‘Žœ—”‘¢”xš˜œ‘’•“’Ž…¤‘’‘‘›‘‘Ÿ™zŽŽ’Ž’‘‘’‘˜–š“— ˜“’€›“‘’’‘’£’‘—Ž‘‘“’’¢”“”Ÿ‘ˆ›‘Ž—””™›—œ‘‘‘›‘„’‘‘ž’‘›¡Ž’‘Ž‘—•–•‘‹›’š‘ŽŒ–Š‹“𑔤’Ž•‘Œ–‘’—“—”d’…”““’’›“““—˜’˜’ £’’ƒŽƒ“’‹›“’’’’˜–“•“’š™’›’–“’‘“š”’“’“””’”’Š“•““•’“’•“˜‘ –’˜“” ¢‰•“’•›“–•𔑓¨”—’•Œ“œ‘¡“‘–”’•Ž“”“’ˆ“““’™‘’“’““‘’“Œ’˜˜‰’›‰Œ ’˜“’“’š§’š‘“˜“’’‘“““˜™““’š’Ÿ™…”š‘’“““•–Ÿ““•“’˜¢’Ž’’“‹˜–“—œ“›’’•’’£“™¢˜“ ’†’˜‘” žž’’ž’‡”~‘“˜’’‘‘––‘’›‘¡‹˜’›‘ “ž‘Š¡œ’‘‘˜•“’’’’”–“Œ’‘—„‘Š˜’‰›‘¥—“’’“–Ÿ“’˜’•”’’’’‘“’’’’–—ššŸ’’–›’’›’¡“’¤‘›”˜˜’›—Ž–œ’©‰‘‘‘’ž˜•’’’‘–’’——”š‘œ’’’•’’œ‘—›†’”Ž‘ œ’““’™¡’›‘’‘–‘’™’“Ÿ›’ ¡’’–‘‘ ˜Ÿ˜•œ„’’’’‘‘Ÿ›—’’š’’•‘˜”‘’’’Œ¡˜’š—“‹•’’ž’’–…‡—’œ¥Ž’•›š““’’›’“•𒆙’“’’–™—’ ¤–“›‘›“œœ¡’Ÿ—•“’˜ž’’’‘“ž–’“•‘“˜¥‰’–’’˜—”‘ž”‘”’’ ’’—‘“‘“’˜“’“‘’•—“£™“˜“–°™’š’–’“™’—” “—““˜–“–™¢–Ž““š™––ˆ–“”’‘Š’’ŽŒ˜•“–’“’“““’’™£œ“’——“›¤’“““”’œ’š“”™“£“•˜š¡Œ“ˆ›““š©¡›’’““–’’‘š›’’™•’’™“›•–“‘‘ž™Ž“”š“œ‘“˜“““–š•œ“…”–’™’••’”’¢’|‘ª•““‘‘“Ÿš’ŠŸ˜¡›’ ‘—“•˜‘ޤ’‘•¢œ“‘’’‘••“¤’‘Ÿ•“‘¥’’¥Ž“™š“•’–›“’¤® “‰’’š’’‘¢’ž’”›“¤’š •Ž ’Ÿ“—‰‘œ¤œ‘›’ª™Ž‚“𖦓’“‹š‘•’‘’‘¡’‘Ÿ–œ¥‘’š’’’”’“§‘„›ˆ‘›¡‘˜ ’’“’¤ ’—‘’¨ž‘‰“–‘•š™«ž¢œ’–’“œ”ˆ££šš‘’’’z¢—’’™’‘ ‰‘ž¡¬“’•‘”¢¨—š’—š‘’¢‘’§˜£¦œ’‹Ž’’•› œ‰’’‡’Ž–‰‘‰Ÿ’’‘‘ ©—’—š™š’’’¢šœ‘€”©’‘Ÿ”“’‘‘‘’“˜ž‘‘žžŒ‘”™’™—‘•œ’—’›——“’“z’‡’’£‘“‘’’¢’ ƒš”“’šš‘«’”’’•’š’Ÿ’š’ƒ‹Š¯“œ“¯“ª’©§‘˜ †’’‘•’’ši‘Ž’ž’’’‘’£‘’—“–‘’”“—Ž’‘“‘š’Ÿ‘’‘—š’™”’˜š—ž’Š’‘”ž‰‡š”¡’’‘‘”™ž’’‡Œ’’¤‘Ž›”’’„œ—˜š–“z‘‘’’“œ •˜–’š’Ÿš£¢ƒ’’“”š“pŽ˜˜‘šž‘”Ÿ”š—˜‹“Žvœ‘˜Ÿ—‘‘—˜‘Ž—”œ‘—£Œ™œ’ŸŸ–•‘ž¢“‘‘™‘œŸ”–’ž™Ž™£Šœ“¢‘Œ£¡˜”–›£›žŸ‰›—‘‘££Ž˜‘™Ž™œŠ€–‘—‘‘‘©Šš‘›…¤¥°Ÿ›‘’‘›¡—ŽšŸž•‘›Œ™–—£™‘ž—†˜ Ž‘™Œ–Œ‡–¡ ž“…“’•™š•–™‘’Ž‘ ‘„¢š’Ÿ˜•ž“•˜”—Šš’”“‹Š‹’Ÿ–““““•Ÿœ“•£ŠŸ—“˜“¢“Œ™“‘ ”“–••””““”¦œ”š˜““—œ§““Дޛ•“–˜”¢“¡¤‰”“™’œ”š“•‘•““¤”œ™–‘”¤””——•¦“ž”›—’’¡šž“‡ª„•‡”¬‘›””œœ”¡“‘”“““–””œ‘ªž•“™”””—””‘“œ Ž•—”Œˆš™Ÿ¨””“”—““”ޤ•Œ”––”“˜—›Ž”ŸŒ““‘’“¦—¢–”””™“”˜•¬”“ £”“’ГБ“””’“—–•¢”›““Ž“”›”‘“–”“—Ž—“”—˜š““”’Ÿˆƒ’’“““’’š—’’––˜›“’›•‘‘”’“‘š‘““’’’–š“™›’‘’š”’ž˜’—–’‘•‘“œ’¢Œ“’¡ž€“’’š““’™’ž—“’œ—‘’‹“©œ“–’¤“’™’‘ šŠ’”˜š”Ž“œ“™’“™™••’’’’™’’˜“‰‘‘–’’’’’’’™”›—“”š‘ª”¢’““’›’š’“”œ‘’’‘“““—œœ•–“‘’“‘˜šŸ••’’’š’—•¡“’‘›’’•—’Ššœ”““š•™™‘š“ˆ”’’›’’¤¢•¢¡”’¡‹’”’›™¥–’“Š“•˜›‘™›““’’œ–𓛢ž•œ’“š‘–‘©››““¢‘“’‘’“¢˜“—”“’š›’“‘’•’”“›•ž“›““¢•‘’•“”’”“¥“šœ•™”‘•™’–œ“›‘“ ”œ—’™¡˜¢—“—“™¤“›˜˜œŽ““›•‘“’’–“’”’’žš”š•””““’“’¤’•—Љ“”š‰ž “‘“’˜š“’‘“’¥””–“œ™ ˜¡ž“™”““›““ —’““š“’™›—““¤£““—ƒ“›——’‘•™œ—œ“’”“˜“”›“•”Ž“–“–•ž–”™’“‘”‘“˜“™™”“““–›““™Ÿ˜”“˜“Œ˜““””““‹ž•”“””–›”˜—““ŒŽ““”“•””Ž•–”––’””‘˜”™“”Œ•”“Ž”’˜”•˜˜’“‘’•”˜”‰••™”•šš””—ŽŸ——’‘žŠŒ˜”–£Ÿ”˜‹““““”“–‰·‰•“˜“””˜””““™”•‘’”“š’—“”•””“‘”š””“Š““”””•–’”ŒŽ””“”‹¥”™‘Š•“””““­‘–””–—””œ‰“”–•”””–“’””Ž””’““•˜•¢–’”™“Œ”™˜•“Ÿ“”ž’›˜²’ž•““’’™™•““žš–’’𡤑ž¢œ“’𛋓’’“”—–“‰›’’—’’¡“š”’˜“’—“œ”¡““—“’“’‘”’’š“˜Ž–Ÿ’’’›–’™’ž“œ’œ˜˜•™“{œ—•˜Œ¢–Ž“–•”˜ ’‘’’™’“™Š–Ÿ’“ ’““‘““’˜—˜¥‰“˜–’¤œ“”””–”’–’“™™–ž““˜“—œœ£¢’’’“’›š…£”£—“““‹’“‰›““‘“’–†’—”“˜–¡–™œ•“”’”’¤’–†“Œ•œ“‘•–“š˜Ÿ’“‘‘ œœœ‘’‘“”‘’“Š™‘™‘™Ž†…š’šŒ“‘‘‘”¤’£‹‘Ž“Ÿ˜•‘ ž’Œ›“’‘œ‰’‘±¥“ˆ‘‘’’Ÿ‘£˜”•œ“–’}™¥–“‘¦“”ž˜¤–””‘œ™¬™––‘£ž•‘•“œŽŽ‘”‘‘Ž‘’‘•˜ž“’’‘”‘‘¡‘œ—›˜’™™£—‘‘“‘•‘”‘’Ÿ«”–‘—““œ•¥œ–’”–‘“ Š˜“œ—‘‘‘ž‘—”œ“‘Ž£‘‘›Ÿ’Ž•’“ž˜šš˜—’Œ”‘›‘’¡¡ŸŽ§Ÿ‘ž‘š‘›‹¡”Ÿ“‘’‡’––’˜’““’’‘™˜’Ž•’˜’’”“’–‘©‘“’‘”“’’’’’”Œ’˜–’’”Ž’—“’–œ“’š’”’˜™““–’™’”“’’‘““›’Ž—’‹™’—›””’œ’’œ“—•˜’“¡•ŽŽ‘“•“…—““•”’’‘’“’’“”—•“’“—““’’“’‹’‹ŽŽ’Ž‹š”Œš’’“’–•’”““’—’Œ“Œ’”’–“š“’’““”›‰•“’“’Ÿ“‘“Ÿ“’›•“’•’“”“”“™‘˜š–“˜”’“““—œ–‘’”š’š‘’™•™”›’””“Œ’¥“¥—“““’™’¥“‘››•¦“œ“‰‘”™“ ™Ž““Œœª”““““–—”ž”’“š•˜“œ‹“‹™’’•Ž“Ÿ“œ™“““’’“”—““’””“‘“Ž£“›š’¦’­””¦“–“t“’—Ÿœ“—„–”‹”°›‡Ž““ ”“›‘†’”““¢““œŽ¿—”’¡“““‘““—“¡‘ •‘“z‘““““™ž“£““‡˜‘‘”¥‘”˜¦››“ŒŒ““ˆ¢¢Š—™“““—”“šœ–”“š–““Žˆ“‘¤‡’“‘”—‘˜œ’”’’“š“’”˜““†“›•“¤–“““‘‘’››““’’ž›“’“’œ–“‘’’˜”’–Ž“’“•¤”“’““—““’“’…™£’‘““šž’œ““—“–•“”“‘ŽŠ“—“’œ““’’’™”–‡˜•—“𕤒”’“–’Œ‘¦¢“ªˆ’’•‰’Ž“•¥£• —‡“’’š’“–š‹—’’–“““‘““‰’›œ›«“’Œ”¥›Ž“””“—“˜““—Œ“”’˜““”•™“““™š“‘”“˜ –˜Ÿ“““˜‘“–“©““›““’™‡’Š•œ”“””–—™“}–“’Œ’“Ž””™Œ”“‰ž™’”“¡§’“Œ”™š”’“””””™“”•›˜‘™”œ”•š•”•››””–™’•””••—”•—””š—””œ‘•”—–”“”—˜•”ž—Ÿ””””“–””””š’–”–•–”’˜Ÿœ““”Ÿ•““–˜š›•”‡œ™”“˜’–𛓔–’””˜“•””””‘”””•™”””””••” ”“’—›’•˜¢–ŒŸ™”•”•™–””•”œ•˜”—–”—•Ÿžš”•œ””•˜’“œ›š•””‘”•”œ•””‘ž””˜’”œ”””””˜–›—”•”•˜–”›”“”™œ”““”—›”‘“—›–š””’’˜œ’ž‘‘’‘‘ Š‘‘©—–«¡‘š‘¥•È–’’’™¡‘‘‘’•›’•™’””—‘™Ÿ‘›•Ž“’’™¦’‘’‘”’‘“‘‘ƒ™Ž‘££™‘‘ŽŸŸˆ‘™‘Œ|‘ ”››œ’«—“›“–——’Šž““•„‹‘’£‘’¡‡œ•‘’¤’’““‘”‘¡ž•”’¡Œ–’‘‘’—œ™’’‹‘¡’¡’“—”“¡—ž‘‘Ÿ’‘…žŸœ—™’‘”“ž’’’˜‘‘˜¥‘ ¦’‘’’¨Œ•›•ޒ𙑒¢’’–˜Ž‘‘‰«‘”›”–œ¦‘““’›‘•‘–”’’‘‘˜™¡‘—Ž’˜‘އ‘—Žš’‹–™’’‘’‘𒦓‘‘•˜‘ž‘Ÿ™Œ£”’¡š‚“’¤¡Ÿ“’’’”’’‘ ‘Ÿ¡ ’œ•—‘š›Ÿ¢”™”‘Œ°’œŒ˜‰’ˆ”“•’ˆ“’’ –”“œ‘•‘‘Š‘‘’’Ž”‘‘‘’‘’‘‘™‘•“¢”–‘žž–¢™”’’“‘—{’‡‘’𦒒“’”Ž‘¡š’’—‘‘‘—‹š—‘‘‘’¢‘‘“™•’’›’‘ £‘€‹”’‘ž‘’–’Ž‘‘|‘˜œ–š¡’‰’¡‘¤š™”˜’“‘“™™‹“Œœ““““ ——“šš…š“˜“š“—˜’„“‘”’˜Ž—”““““ŸŸ“¡ ”’’ ”“•›“œ’“’Ÿš“š“Ÿœ“”“–›Ž”–““˜“”“¥“¡ ”˜—œ•“’™„—”ƒ“Ž”›«“›˜–¡”“Š–›Ÿ“”‹‹ ™“’ž—•š‘““““—““¡–£“’“““•““˜“š–£›…“›š”Ž ¢““““’”“‘“”¥’”–“““”™žœŒ™˜““—““ŸŸ ”¬—Œ“““£““£”ž““™–““š“’›’“”œ—š–™œ”˜““‹“”›ž£¢“š“œ–“ ›ŸŽ ““–’•Œ‡‘¢›’’‘‘œ¢¥’Ž¡–ž—’‘‘—˜‘ƒžœ’•œŸ’’‘’˜—’“¤’‘™’§‘–ž’¦Œ’™£’’¦›š’‘‘¥š“–’’’’‘š‘¥—”“˜Ž¢›’’œ‡”ž’•‘œ‘Ÿ—” œ’™‘—•Š™–œ’‘™›‘¡‘”‘‘’š’’¢•¯–”‘©’’’”’‘¡‘šžœ“’“• “’’’’˜’™’žž‘’“–•“˜“—𣠒¤™‘“‘‹’“˜¡¡’’’’‘“ŸŠ’’™˜’‘“ƒ‘•˜‰“’‘™’°š—’–‘ž’–¡¨˜ ¤’¡•‘™ž›—Ž“‘’—‘™—ª‘“¨’’‘‘Ÿ‰™’‹™”™¦‘“‘“‘’–—’‘”Œ±’‘‘‘’—“£Ž‘‘–”†‘¡‘‰“‘Ÿš’•’™“˜’’†¦ ’}’‘“’’‘‘¥’¥š‘¡’ž‹«“‘‡‘…’§˜’˜Ÿ›’Š˜‹ˆ””’”’’’•”Œ‚’‘’‘œ‘’¢€®”‘‘ž‘’’˜’’™‘«¤…’˜•šs’’’’™š‘§‘’ŽŽ’“’ž¡–˜•Š’žš’•¢›¶’–‘‘’’‘’šœ‰’’›–’‘•‘‹©”’’‘£Ÿ£˜›’Œ‘‘‘¡ž‘ŸŸ‹’uœŠ‘²—•†•‘’œ’–¢¥‘œ“““‘‘Ž–œ’™š¨–’–’˜‘—œ‘®œž“’‹š•“’’’’˜–’’–“‘œ‘¢’“Ž’˜“‘‘™”•š“’•““˜—„”‘’’’“’‘’”–“—‹–‘š“‘ž–“¡’š“˜…’””›–—’µ•ž•‘œ›‹Ÿ’š’““ž‘šŽ‘“•’“‘’’”~…•“‘—’“’’’’–’’•š–’šœ–™ž’““‘—Œ’“‘“–˜‘—“™“’Ž•’™“•“’”Šœ‰™“˜•’’“”’”˜”“’™’’–“’˜˜Œ”’“™š’•“““¢“’•’““œ“–™’~•’•™”“’“‘’¬•¤‘”’’‘‘‘—’—–––’‘“’¥š‘•—ž’˜’’‘‘’“’—™‘–“—‘œœ’˜u’—“”œ’“Ž¢“‘•ŸŸ’ˆ’‘–‘’‘†’ž’š•š˜˜’”ž¡’‘’”–‘Ž“š•š’•—’™‘£–™Š›’‘”¢’ž’•‘‘’’‰€•‘‘ž’’’“‘’Ÿ‘•—˜“•‘œŸ˜œ‹’’’’–’‘ ‘’‘–ž’Ÿ’”–”˜Ÿ‘”’Ÿ‘’”˜–£˜ ‘’’Œ’’›ƒ’’“˜’‘˜‘—•–•’‘£–›”–”’’‘‘’’‘–”›–¢•’Œª’˜•˜•‰’“”’Ÿ§ª‘ž–’’‘‘Ž£’Ÿ” Ž’˜’””‘–œ’‘Ž™’”’’’’”˜“œ—’‘—‘ž‘››’›‘‘–’‘œ’”–™“’˜˜ˆ“Œ’–”“‘ž’˜“‘•š’~—”‘•‘“”˜‘—›‘š•’¥–…‘œ’Žž•™’“™¦•˜¥Ž’’’’’—Ÿ˜‘‘‘“’’’“’ž‘—”¢˜–’™ ’›’“”’•š’’’¬›Š’Œ”™›ŸŽ™œ’‘¢’™•𛑓’’”“•¨“’ž˜’’•ˆ’••’’“”–¡ ’’““’œ’››£š—œ’Œ¨’˜˜—“‘“‘“”‘¢’ž ““’’“–«“Œ££~¡“ ’‘¡’¨ž“’Œ¬³”““”“Ÿ“•””’Ÿ’’˜Š’”Ÿ“ž”“¤š‘”“˜¤“““•““’”’ˆ§“£Ÿ™Ÿ¢“œš¨“’““““’™¤©›“e€——”‘ •£““”ž™“œ™—“•“”—““¡‹˜ˆ‘‘¡“““‘’“ ’›“ž–…“š¨‚œŠ“””“•“¥’“‘—“–’¢”•ŸŸ•£”§““ƒ’‘ާ”œŽ”““›””¡žu““˜–““¢‰’š¤ˆ”“’ž–ªŸŽ““£‘“’«’‘•–“‹’“‹š“£¢•—œ’“–“š—ž’”““’’”ž“˜˜•œ““‘’˜“’¤—”“’™–•““’““—“š‹’’’–’’Š“•˜’’•™“ž“™‘Ž““•¢Œ”’“““’”’‘“ž’’™‘ž“›“ ™•–“™’’“’œ“–Œ‘™œ“˜Ž“’“’’˜˜¤“’žŸ–™•’’“’“““Œ––˜“’™“““”’“ž’”—š“‘“™™–•˜““”’”™’š’“š’‘“•’“˜“””•›“’˜“”–’”’ž’““•““˜‘˜”“™““Ÿ§’Ž˜•“•šž – ˜“Œ—“’”’”••œ¡•“š–˜“›’“–’“”—––“œ›““““š–™“•” ™™”’“’𛓕˜”“žŸœ”“““”œ’Ž›““”–“œ•“¡’”” •Ž”›–““Œ—«”Ž““““”““’””˜™—œ“u›–‚“’”“˜’™š™––“¢™‘š”š•‡’œ•“•˜•››–“–””˜““¡—–“•“”“””“““˜”ž—‘”œ•š““”“ œ“’“”¦‹”•“˜••”œ”’•¡”ž–“•Ÿ•‘”™˜”““›”“””“›Œ“”𓔣’“–ž˜˜™›•”ŒŽ”“š“•Œœ–‹š“¡™“¡š–—“”Ÿ“‘›““›““““›˜“”˜„’”œ“š”˜“„𔓕𗔓““““˜“˜›•“£—““•š“•ž““—¡”š“š‘›”“•œ—•–““–””“¡“›–”œ“”™¡“”–”’“Ÿ”“œ“—š—™š“–Š•–“—™™“’—œ”˜žœ“““““““•˜Žš““•““““““—“™œ’𔓗’‘’”œ“””“˜œ”—“”——“š“•”•š—–‘ŸŸ”•““œ‘“‹—“—“““œ‘“’œ‹”“––““—š“˜œŽ””“œ¢™ž›”“–““ž““•›Œ™˜™“¡““““•˜š•““•’˜›“’‘’““’’“—”“’“—‰™’—“–’–‘”’““‘›–“’’’”——“•–’“—™•’—”““’”˜•“’—“Ž’“–Ž¡’”“““““š’Ž•”›‹•–”’˜””‘•–’–’—’’˜˜’““‡”—ž•ž™•ž™˜“’–’‘••“–“’’’“‰”•”““““‘”“‘“““™™’—’•Š”•’“’“•–’•‘“”–•‘”—•“–’˜š”’’’““–™“‰—–—’““˜““••—““Œ““’•˜“’“–•’”’–Ž“’›“—““—“”––”ŽŽ•“’…•’š•˜™‹”’”’’“•Š’‘›’’‘‘£—‘’–ž˜¥’›‘ž”ˆ˜‘‘’’’——˜“’’’’ž”’Ÿ ‘‘¡Š‘’‹’˜‘‘’’–¡“’’ž“Ž’‘š““‘š’žŸ“‘”””’‘‘””Ž’œ’œ’œšƒ’Ÿœ‘Œ•Ž““’’›”•‹˜’’‘–’’ž’§–‘ ’’’—“’›’’–’}“’–’•¤’““’–‘’š‘’Œ”‘•’˜’“˜œœ™–’“’Žœ“¤¢–““’“›“’™ž“’Ÿ‘’’”‹’”””““”™”–‘•“Œ’’Ž‘“‘ž–šš–’”‘“’š˜¤“‰‘‘“–“˜††“™›”“““œ–“”¤‹˜“““ž’‘—“¢Ž¤””…–˜““““”˜—•’“”•£œ“œ“•—•”’™•’””›“””¡™¡“”•›””“𓍛”¡š”“‘” †˜•“‘“˜ ’˜Ÿ’”¥˜¦Ÿ–“™š‹ˆ“”’œ““ ’”–””““–Ž¢‘•””“”“”””–“‘”Ž“’‰˜œ›—”””“—‰”–’””¢•›•š”“˜˜›…“—™”•™˜—ž¥šŽ“””™”“™›«”“¢œ”“’Œ“Š‘š–“—Žž”—“’“‰“–£š©¡•”‚…®“Ÿ•šš•“”“š‰“œž““’’˜™“•˜—¡’“š’•‘•¡’—¡£“’—”“““““œœ’Ÿ“’’œ’˜–’•–’’ž”“›“™Ÿ””“œš”’“’š’“’š“——’”˜’œ—“…—‡™“—“—“–¡‘™—–›““¡—•˜‘”“–•ˆ’”•œ–ž““’““ ““™Œ§•“’—“““•’“œ“™Ÿ™š “––•¢¤¡““““—Š“’’“’Ÿ’›’’“”• ”–›š“““’“š››ž¦Œ’’“›““𛇓“ ¢““•y’‡––”“’—šœ›‘—“‰’“š“’‘“ž”œ““— “˜Ÿ˜š ’““‘Šœ’ˆ˜““’’”“‘““’˜…‘“‘’’‘š—’ˆš“’˜“’““’’“‰“›’’–‘‡’™’‡’‘—‘“Ž“‡¡““…“¯“†“’‘““’‹“’•” •Œ“‰—¡’”“‹“‹–“‘‰—Ž’“jš‰—•ŽŽ–“’‘–•‘›“’’’›““‘Ž“”’”“““•“’’’ž“–—’–—”‹”‡““““•“ž‘“’‰”š’¡“”‹’‹’‹™“••’‘“œ’•Ž’ ’’“Œ’“““’“’Š“’’£’‘˜‡‘“”ˆ•›™‘“œš’“™’”’ˆ‹‘“¡““‘˜•‰Ž’“›“•’šŸ“““’šš“ŸŒ““”’—’¯œ”““•˜ ”“’“”™™“–”’“™“œŽ“”™’“˜“˜“—“”“˜™™”’“”ž””“““Ž˜“ž¡¡—˜“£¢—¡’•“’”““–—›™›“—Žš¤•’Š ”“”–˜“›žš““““š““˜—™‘’ž““““““˜“žœ› ž“š‘ŠœŽ“””“˜œ’Ÿ““—‘™“Ÿ•“—œšŸ™¢“…“”›£œ‹—”““—““™¢‹““›““¤¯“—Ÿ—•“‘ŸœžŸ¡•“—’”“ž“‘••”›—“Œ“ž›™•›¢’“–’’™š‘™—’“’’’™’ ™™‘’’““‘€–Œ’“”‘œ’‘‘‘’›Ÿ’—‘“‘Ž’Žœ’•’Ž˜“””’ž•‘’’”•˜‘”“”‹‘’’™’”Ÿ’˜˜“—“ž˜¡““Ž‘’‘’›“™ž’•–š¡—‹‘ š“’—““›“•’“š’’†«”””’’’’™‘“—’œ’“Š‘›œ”ž™’’‘’•¨’™’’–‘”›’•‘‘¤›–‘–˜’•‘“Žœ˜Ÿ“•Œ‘’’ ’’¢‘—’’—˜“‘“’›‡“’”š–”œ˜™’”“™“”•˜’š•’›œ’ž“’‹‚—““”“žœ‡“—¥““““Ÿ¦ž“–ž¥œš“›“•“— “˜¡¤”“¢£””“”“™”•ž““£š–“ Ÿ“™•““£š”–“ž—ž”“•Ÿ”““–””“—“™›”Ÿ•˜›¡“—­˜“–“’””’™šœ¢“ —”–£˜Ž‹›””˜ž‘¢–“’““˜““£œ‰““Ÿ“““”““š“šœŸš““š•‘¢‘“””“ ¡”¢“”Ÿ”“’”ž”–œ  š˜¡“‘ “’¡ž«ŸŸž””“š‘“Ÿœ”“˜—““˜“ ¬••”“œ™Ÿ Ÿž”œœ““ “”—›—Ÿ™š“–™““™›•”–”“”•‘˜Ÿ–“’’‘‘‰””‘¤”—‘’‘Ž–Ž|𒑇˜”“’’˜•‘Œ‘‘•–‘–’™•’’Ž’˜’Š•’’𙕓’“’’‘˜‘Ÿ”•‘š•‘‘˜‘–‘“‘—’—“—™‘’‹”£‹“‰šŠ™’’•’’Ž„‘”‘’Œ‘’“‹ˆ‡”’Ž’’’“’‘–‘ž——ŽŠ’—ž–˜’‘““’“’•‘’›Ÿ“›’”‘””—“Ž‘™’’ދЙ›™’’’–‘‘“”¥‘’ž¢’‘ŽŽ‘–”‚•‘’™Ž™‹‘’ž‘’¡’”šŸ š’Š”‘‘‘‘–Œ‘’‘”˜¢”–””””š™˜””“ž‡š”›”˜“–˜”Œœ£””™•˜•””•”›‘•“’“”•¢ˆ”•š”’”•”›š•œ”›–“””™“ž”‘””Ÿ”””œ””™•ž—˜š””’ ‘“š”˜•”¨””––œ™”ˆž——¢“—Ž‹”•ž–”ž™”–”•””–‘Ž”””””””””š”–˜˜¡”–••…¤”””””›š”•””™”–”•”œž—–™œ”𔕠Ÿ–™—£’•””¡’””˜’”””˜””˜‘”—š•”’–ž”˜›š”˜•”—”““”‹”””š”›™–™•œ””ž“–œŽ’¥˜’’’‘Š™§’š”—–“”’“‘’•‘«”•“‘‡“š““’’‘˜–“§š“‘œ‹£’ ’’œ˜’’““š—‘““š ‹”—’‘Š’“’’“™’ޔ𦒒Ÿ¢š‘¤’œ”’‘‘œ™——ž’“—•’’”™˜‰ˆ ’”•“–”ƒ’’’‘ž’’—¡•’’“’““’’’†’‘Ÿ›•˜’˜•–«’’“”’”’““šŸ“…’–’”—˜—žŒ’—’’žŽ”’’’’œ’’’•«”’Ÿœ’’š´’œ˜“—’™ž©›–“›“”’˜’–œ“—”¤ ’œ’’’ œ•˜‡“’’“›•ª“›“””““˜™”—•—š“›”’’•–“ޕ𔓕˜”””””•˜•‘’”‘šŠ“œ‘”’–““””“˜”’˜””¤ŽŸ””“““““™“™”—”˜’“”€‘Œ—š“ž””¢”šš™˜””š’˜——‘•–•”“›š––‘•”’””•”““›™“”“””•””¡””’‘œ—”˜“˜•™ž””””–ž“˜””‘ ”””ž”“•ž™‘”•’””—™›˜“”””ž••𗆓”—™””—•”‰“Ž’“‘’›Œ —””“‘““˜”“——’”Ž”˜‘“”——™–Œœ“”’™“†’žž’“‘‘ ›–’š˜œ’—’—ޔ𑕛¡“‘‘›¢““’’’˜•“œ›’‘˜˜•’£•’›‘‘œž“““™—“’— –”™’’’“’˜’š“ œšœ’•–’¡™’’“’š‘š•œ—•’©š™“•‘‰‡’’“š›” —™’“’’œ’’Ÿ”ž‘’¢’“““’’™’”˜–Ÿ’››™¤ ˆ’““’ž”’œ’““˜‘‘’ ““šš– •—“–œ’‘› ›¥š ”’’“•’š “’–™’’Ÿ¨’’¡—”““›™›—–ž“–’’’’™œ””šš’„’’¥š˜…š’“•’—œŒ‘”“’“’‘Œ‘’ŽŒ—Œ˜’—’”‘–”‘Žˆ“’‘•–“’’’’“”“˜š‘’š—’™’–Ž‘•‘’Œ’Œ›’’‡”–’”’’™“’’“’•“••””–’ˆ•‘’’˜“™Œ’•‘˜•Ž’Ž‹•–Ž–•““Š“›“’’’–’’’”’“•’’’’““’’•š–’– ‘Œ‰’’“”’‘ ’˜’’›†’Ž’—“’˜“Œ”•“’’š’‘—–‹‡’’’”’‰“‰“’’Œ’’“˜’Ž™•’“˜”˜––’“š–“’–’’Ž‘“‰–’”“Š’–“”•”“’““’“’ Ÿ’“‘‘—¡¢’•¥˜ ’˜’•–“‘²˜œ“‘“ŸŸ“’’’‘𙓙—’‘˜š—’˜Ž’Œ•‘›œ“¤’™—œ“’Ÿ˜ “ˆ’‘—‘“’—’“Ÿ‘›•œš—’š¥šŽ™’–’‘›‘—›˜–’‹Ž‘”—’‘–•‘œ¥• —’•’‘˜’’›‹™’‘ ’’’’’£’¥—˜–…‘‘Ž•~˜—’’’’›”’™’“† Ÿ’•‘˜š¢¢œŸ““’’“—¤˜˜‘’’—“’ž¢–“’¡¢“’™˜’—‰”“œ’Ÿ ˜™“‹‘’’–’‘›šž˜‘’’ˆ’œ—ž–•–’’“–œ’•Ž““’’Š’“’™•‡“•’™ž’†’‘“’‡˜““’“’”–”‘’’›“—’›’˜›’‘“”“‹Ž”“›–”•’’Ÿ““’Œ“’›–˜‘œ“…—}‹‘±“ “•’‹ ‹Š“ ”’v—‹“¤’‰•’“‘›”’‘“’’Œ’“ˆ–œ™’“““““–’“ˆ’‡—”š‡“—Ž”–Œ“““““…’š’““š’‘“Ÿ“–‹ŠŸŠ“˜‘’‘’¤‹Š‡’’“‹‘’“““•““’˜š’ž¤’“’›¡‰”“Ÿ““’—’“”’œ’š“€Š•“Œ˜ˆ¦š—’“Ÿ’œžš’”œ““’‘›¦§’™›Š‘“’‰‘žš‘‘š“‘’ Ÿ““’““””’ˆ’‘™’’›—’”™’‘Ÿ•’“¤›“’œ”Ž’’™““’Œ’••“”Œž”“’w’“Ÿ‘•’ˆ“‘•”ŒŒ‘¡ ’§¡›‡”›’Œ˜Šœ’’©®•ŸŽ†’’’’˜’’›˜‘’’™’’’”’’¢’—•‡’—”–‹¢‰’“““–¡’œ’“‘“š’ “”‹••–…§““›’“˜—•™—£œ’’“™’’ž•ž’’‘“’’ž¦’•𢓓”•™›¤œ•“†™’’¢’“–š…Ÿ’’“ƒ’—Š“ž’“š“—’Ž’““’’™“ƒ“‘—˜ªž’’¢’›•‘ƒš›“’…•˜““’“““”””–’’Ÿ–—’”ž’”–’‘–™“’“‘—’“’¤’‹“Ž““‹’“’œ’š—‘Ž–”Ÿ“­’¦“’𓢓”y‘œžš“ª—¢˜‘’”˜’Œ‹““‚•™—“”’’’“˜‰˜’˜““’“’“–’–Žž”““—”œš—’’“’œ¦’š’“‘Ÿ“’™’‘¡™žœŸŒ“Œ˜’”ž™‹†ž“–“““—‘“‘˜ ”“’ž“’Ž’ ›Œ•’’›™““’’’”’‘˜““•“•“œ“œ”Ž’“ˆ’šŸˆ’š““’’™Œ”“˜™˜‹œ’¢’ ‘›’ƒž’“’”Ÿ““’’“’«£”š˜’’ “’–˜“𢒑–™’¢“šž˜““žš‘“—““”“‘’®“›š––—•“—š“˜‘Œ“”‘¤’•ž˜ Ž“‹—£“•š“šŸ˜•“””““”Œ ’’“š’“’©£”“‘’““•“’¡’œ£›¢“™–—”›¥“”““––’’“™£—£’•”š–œ‘ž™“œš’‘£˜“Ššš˜“’“¡‘“˜•‘’“𤓒ž•’š””’–ž™¡˜“¤“‘’“˜“–”•ž””™“‘š’’œ•”˜¡’“’“›—ž’•™“’’’–”“’£—›™“–’¡‘œ“‘ •Ž“’Œ‘™’’’’’—’’¢˜‘‘–š›’›’–”’—ž“™““™œ“’˜žŽ”–’’•““’–’Ÿ™’ ‘œ—œ’žœ–•Ÿ’œ“•™‘Ÿ——“£’¥”“¡“——›’’’–™•œŸ’”’“”’’”š–’‘™’“’’’’’’–š›’˜˜”›’“’““’™£’ ’“Ž˜›’œ““™™“•—‘“’œ’“ ™˜’‘”“’’’—‘’‘––’’•—“’˜˜’”“—’“—›˜˜œ˜“—“’–’‘¢—œ“¥š’Œ “’ž™œž«š’’–“–—“˜›““““™—“ž•™Š““““’•œ’š–™““––“““““——“˜š’“›••“™“’Ÿ”’”™”•“’”“”’•’‘““š“““š“™”›’•—™“’“Žš“™“’“’—“—•—‘’“‹Œ”’••”–Ž’•”””••‘ š“’““–““”‹’“”“““’”““”•—–“–’”‘“’““““’“”—““”“•Ž”“”“–’Ž”•“’““Ÿ”Œ“’’“““›”“š–‹““™•““™˜“Ž‘˜”“”šœ“–•˜“‹“””””–’’’–—“š–“š™– ““”—”“‘‡“–˜”“““𙓛—“‘–“”“™“˜—“Ž•”“–“”””“““‘’“‘—’“˜”“––“–›”’–™“’“””””“”š†”““”“”“’“š“”’š“•‘““•‘–”–”—”‰“—”—“”™’Ž•–’Б𓔖˜—•‘˜”““’˜““–„“’“œ””“•“””“””’““’Œ™”›“””““–”š“”’’“’“’’’“—––—˜”““‘“’“Ÿ˜–—““”“““”˜”““‘•”“”•“š’—’“””–˜••”Š”“““””–ž–—š˜”šŽ“—•š“Ÿ˜““•”•—Ž”•’””””˜–”œ™•š™”•”œ•™™”•–””–˜‘•”””•—••“š””˜š˜”™—”š˜””•–”“”–—˜””—“’”’””•””–””””–™—””˜Ž•“—”˜••Š“•™ž’–”‘™œ™•—’“•Ž–”•””•–’Ÿ”””””””——Ž”’”›””””•”””˜˜•˜•—˜”’——”•••—˜”™•”–””˜”™••‘•’—–””•”“–š™˜™™Ÿ”””“””–™•””‘–””—ž””“”””—™‘––”š–•”›””˜•–“”—”™–˜”•˜˜š–””𓑤¤’˜“““’’—™›“‘——Ž˜“˜’•’žš’ˆ™“’—œ““““““––“‰•’’˜”—’“™“““‘˜““™“š˜—”“”‘•”“““–’“’“““‘”“‘•™•“‚“–”’ž“£“˜Ž’Ž˜š—“Š›˜Œ•¡“”œ›•“”––“˜‹—““““’““™”ž™“’›“““•’“–“–˜“›“˜—‘š‘““““›’’‘’“—™”’“–””’˜”žš˜“˜–’“’ž˜š—ž—’““”‘“™”—”“‘‘“““•’ œ’”“”•œ’—’–“”–’’ž“•“Ž•“‡”“—Žž•š’”–“š•—“–—““’’¢œ¡“šš¡“¦“¢““’”˜’’›—”’• ¦““’““™–“™˜’“˜¥“ž•“šŽ“’žž“š“¦š““•–”““’“”“ž“£’œœ›’“†“¢”’˜”“–““Ÿ™žŸ“••˜•—••œ™•““¡™’—–Š“”“”š““¡“‡œ‘’¢“““•’““˜‘››’“˜•‘Ž—˜““““£¤“““œ•“ž”£“”¢ •£˜¥“’““™¡’ž—¤’“““©““¡Š““š–““˜‘“™¢˜““”˜š•£“‘’“§“”œ˜”š•“™™‘“£™˜Šž““Ž“œ•‘’’œ““’““¦ “” –‰”“”’‘“•’“’¡“’š›”“’““–““š’’•—Œ’•“˜’“’—•’Ÿ“••–”“¡›¡“’““”““’–“–———Ž—˜““Š’ž‘ž“““‘’‘™—œ•“’–•Œ’™š“”Ÿ¢’™›˜“”“’˜““•“‡”’’““““““Ÿ’š“™“‹’•œ’›—“”““”‘’“’“— ”“™•’’•£–‘š“’‘’˜˜‘ ”–“’“™“’›˜‡“““ž““œ¤’––“““›’ž›•–“–—““™“”šž’–•—“‘•“”•—•–’“”“›˜¡’“““’’“’’£Ž„’“’š•Ÿ—’—œ“’”Ž”“’’“•””“—‘’••Œ’Œ˜’˜Š’’“‘’£“–˜’“’©˜ˆ“Ž’“‰““’–’›–“”›‘›™’•“‡Ž“Ÿ’ž““Š’’–—¥“wˆœ”Š’’š’’¡£”›‘“’’’“–—•‘’•“““’“’œ’ŽŸŠ”y“£Ÿ““““”„’Œ““©‘˜“–”’œ“©—š“‘‹’““ˆž™Œ’’“Œ‘“›–‘““•¤“’•“’ ‘”“““˜œ–““Œ—’“›“’‘ž™¥™“Œ’•’‹˜– ’¤’“’š–›’——“’’’›ž–’œ––›’”’™”œ—‘†—Ÿ“‘”š ”’’’“““”—œ’‘–š’’š˜’š–“‘™ž”•’™šš“’™š““˜’’““’•“–—•œ’Ÿš—“”˜Ÿž”¤’—“–‘˜˜›•™’…–“—‘™’ ’Š—’“›š•›”•’“’‘ž’’š“Šœ‘’š’“““’’’’™š—š“›––ž“˜’“”“—’ ’“––’š“š”’—˜š ——’’•’’ž‹š˜™™“’“ž’’ˆšš’’’—’’› ’š˜ž““‘•š—˜–›“””’’˜’‘’——’¦’Ÿ›œ™œ’“œ“—ž—’–—““’’“‘•“—‘™—“˜’–‘›‘’ “’“‘‘™”“’“’–’”ž’’˜Ÿ“’¢•“’’’’”’˜“’–›”“——‹”Œ““•““’ž“”›“£˜’›“–›žœ••’”“•¢’™š“•“Ÿ”œ‘š“‹Š—““‘”’ž‘‘““’’““‘š‘’“““’’“—’œ›—Ÿ’•—”‰™‘““”’š›’•’“‘™‘“¢“•˜”š–”•“Œ’‘žœ‘““šš’““œ’’”™›““‘–“’š–’‘š““•˜“˜Ÿ™“••’’˜’”œŽ’Œ˜““‹‡˜“š”–”“’’“‘“–’–”““’’™“‘“š™’™—“—’š’“•’”’š“’–“““““““˜—”–‘’’”™™’”““›—’’“—“““–š–”“–••””“““““’›“—˜”’––Ž‘““œ™˜“–“™“”’’™–•”–“›™œ”–’”š‡˜““”‹‘”“–“’““•““•’›’’“““““““˜“™–•“–’˜”™““““Ž”“”““•“š“—“••‘“•”‘“–—“’’–ššš™£“““™’“““Œ“““˜“““ž’›‘—”“““••–“””““œ’“—’—™Ÿ“•›“—”‘›‘““’“š…’—““’’–ž¡“ Ÿ˜’¬“œŽ‹’“›™““–Ÿš””’“” •”¨œ“’§–’¥”’”“”’œ•“š ™”“›”˜“—““•”’ª“–¡“˜Œ“˜“š’¯—•œ’£“œ©’žŸ•›š““’š–”——“˜‘“•—›’š–›“““”™““™¤¤‘““”““’”“£“˜›“¨•”“˜’˜™¬“”””¤’““Ÿœ““ ““¡œ¥š¢¦“™™“’ “£‰”””¤‘”™¡’““™š“’™‡’¡“””–“—𩤛“œ••“’“•ž–‘š™“š—œ“˜›ž›˜–“““•˜’–™““’’†™“”‹——“™““”—’’™™“’—’“““’“˜•”ž’’š’’•˜“–•‘’Ž““ “‘•”“˜””“’’”“’›“˜””——™‘ž“˜šœ›’ “‘“’’œ”Ž••“’’“–•’™šŽ““•–“–𔓓““•““Œœ—“’Š“““”““™“‘œ”Ÿ“˜™ •““““›’–“““’““””£‘œŽ›Ž“‘™“‘ž’’Œ“““““‘“”’’“‘““žŒ’—“”“”’–™šš˜–“‘’““—’’–—Š™“”ž”“˜–”““’‘˜Š‘œ™’’’’žœ™’•ž›Œš‘—’—‘šš‘–œ’‘“›™’’‘‘’˜–’Ž“”›‘•œ’œ‘‘š”’’’—›ž’’–•’—’““’’•’œ”“”‘–”’‹š•’‘—‘œ“–‘š•œ›’Žž‘˜”Œ—™’–““œœ‘šŽ’’‘’‘ ’’“—›‘“Ÿ’’’’”“œ’’Ÿ—’’š–“œ’’’“’ž‘‘–’’–”“ ’˜”“™™™›™›’’“—™™ œ’“’˜’”™“’•’‘™”’—Ÿ—‘’““—•”˜’Ž—““ž’’Ф˜ ˜š’˜™š’’š–š~›‘“‘“š˜†“˜““““–“˜š—“ž“–ŽŸ˜“š’’““‘š—”“““”˜—“˜”’“›˜‹“š™”—“’•˜”“““‘—“”—–“…”“˜“”“™“–š“š“›‹–“™–ž”“‹“Ž“’’“•—”““™Ž—‘—“˜–””’‘““““’““•“‰‘’”’““”’””œ““Œ–˜•“—˜’Œ—”““”“’—“—“”•–—•“•”“œ–™•’–“—”“—œˆ”–•””“–”“Žœˆ““•““œ‘“—“›’“••™–’–““˜“”‘””—’–”““““›“š•›Ž›”“”“’•’š“’’’œ’—š”Ÿ’œ’œ“”‘Ž›–“‘•–™“’’’’–’”•‘‘’¡’•’’œ‘‘‘šš’œ’š“’£ˆ““’’‰““’Ÿ’¤˜“‘‹œš•“—“ƒ™‘”’—“”““˜–”ž•’§˜™‘”’Ž˜˜’“Ÿœ•—Š’’’’¡’’Ÿ’¤Ÿ’Ÿ’’’“’’›’¡–œ—“’‘• ™“’““’ž˜’–’“—œ‘˜’‘‘”£šœš“–œ’’”’’›œœ—’’’œ’†™Œ’’™›’’’‘›”’““” ›–Ÿ“Š•“’–’’’¦ž›Ÿœ’˜’“’™–“’™Ÿ’“•“–›Œ’˜˜““’’•–š“ŒŸ›•“’’—œŸ’ƒ“›“’œ—š““““’›‘“˜œ“’¥‘“›™““’’”œ“œ“¡Ž’”“𖉔”“““”’¡“𛓕‘••‘“š–‹–‘‘’“”|“™”™š–“š›”ˆ—›Š‡†›““‘Œ”““““ž““‰ŸŽ‘’™““““’“˜“”™”—““•——‹šœ““”’œ“™’“š’Œ“•’–—”š•š›“•œ’’˜•—“˜’““›‘’•Ÿ““˜œ““—•’Ÿ˜‡•““‘‘›•š—“£•“’‘““––’—•—““™“¡™—‘—œ““•’œ —‘–‘’“’’•‘˜’–—„–‘™“˜œ•‘Ž–—““™’’‘’’’˜›’–”‘“—˜~’”š’˜‘•™“š’•“œ’“›”“‘‘“‘‘’’“™’“••‘œ””’‰š˜˜”’”“Š‘’˜”•’™“ˆ ˜”• Ž—˜•“’–—”–”’‘“”’’“˜•—‘”—’’’““’œ’•œ˜™†‘ž›}˜–’‘““˜–’’’’™™’˜’•‘’––š–™›’Ÿ“•”Ž”˜’’“’–‘“š‘’’–›’’›˜“ž–“‘“™–•“™”’ž”““œ““‘’•”–˜’”ž‘’••–•˜‘”’“›™’’Ž›““’’•–˜“–•š“™’•“˜‹ž–’Š‘““‘•™“’’’’›•”–š’““˜’‘˜“˜’‘š–”›“™•›““’–’“’““š’““™’•š’•’”•“¡š«œ’”“‘“‘›“—™œ™“–•“ž”™’“š–““‘ž¡‘”’’‘“’›““•”ƒ”’“—““’’““”“šž•’•“”“”•“’”“‘™“—‘“‘–“’™““˜’“‘–““’˜”’—“‘™’”““’‘—™““‘—““Ÿ—“”“•”“”““•’™“‚’“”“’•”˜—“š‹—“›”™’“œ“”•”–•œ”—˜”””””—”””“˜—”–”—”‘–”¥˜ž•”•••””””•˜•”“•”•—ž”•Ž”Œ•”•”•“”“””””•ž”“””–”•”””’—•—”––””“š••›•–”š–”’•˜–“”𔋔““ŸšŽš–”””œ”›˜‘”•”””””•’–˜••–”””–””‘”Ž—Š™œ•””˜€”””””–””•””‘”•–•”’™—˜•”””“””•šš’™›•”””–””—˜•”œ•””•“”‘—‘•””‘—›•—”™’””••’‘—–””•”–””–}“”•”“›Ÿ¥’˜Ÿ““’’’––’•š†™“—’ ’—œ’›–“’›™“““”“š’”¢š’’œœ‹’Ÿ•“–—““— “™“–•˜’“œ“”•“”•“”’˜“˜—”¢’”—Ÿ’š˜Œ‘”¥’œ“”¥“–˜›‘—“}Œ”¢•›’•ž’œ’•˜—•˜Ÿ’’”“”•“’”›”‘š’““•”“˜“—œŽŸŒ“˜‘‘”‘™’””“’œ“¡““Ž’›“›•“—––˜–™“’’’—¡•‹‘—”’“™’’ž˜““—–“’œŸ’“Ž–“’¤š–œœ“‘““™“Žš˜” •“Ž™‘“ žŸ¢–ž“”““•“v’•—““’’˜žœ“Ž™–š˜’ “—‘œ’—Ÿ“’““™”“““’–—“›Ÿ“’›š’›•’–ƒ’’—–’˜“˜™’““šš“–“’“”“““˜œ“–’Žš—“Ž“œŠ’›’œ”š—“™–š›–“œš›’•˜“™’–’“•–•’””‘“‘““œ““™‹¤š‘“”““““““›’•’œ›’‘’’¡™›“””’˜š’–““›ž’“˜‘”ššž–™•“™—“’˜ŸŽ™ ˜‹“““’“‘™‰““˜“’“ƒ““–‘’•–•¢•™“™‘““•“““œŸ•’–““˜“’š™—˜ˆ“’“’’”’‘•Ÿ’’‘‘—£–’ –••’‘ ™Ÿ‘´• “‘’œš’’’’‘˜˜“Ÿš‘‘˜ ’‘˜‹’–˜›’–’”𛓒˜“Œ“”’’‰‘“‘˜’”“‘ —™™˜’ž¡¥–ž’”“’Š‘œ——•œ’£™•¤“ž’” “ž’’›¤’¤„’’’’™’’‘Š„š‘’˜“’’”’’˜’Š¡šš’™–“t’•’’’’—Ž’˜’“’Ÿ”’™’’’•–—”“’—’‘œ—•Ÿœ˜¦‘’’“’‘˜˜™’’––’’¢›‘•”“““š–•——š“—Ž’’™’œ’“œš™’‹›’—–ž¡Œ“’’’“‘–‘’œ™““’“¡–™“•™”Œ “Ÿ“¡–’†•—“’••–””’““ š”§•““Œ¡‘“•˜“•’’œ“–“™ ™““šžœ”““”–“““ž“ž¢“–¡—””“  ¡‡“•“š”–’ œ—™–“ˆ’—©–”Ž˜¬––“” ˜’œ˜‰“”““–““–•¢š’“œ“““•““”“‘¢”œ”“›šŒžœ¢“””“™—“›“”™š”™“œ””œœ–˜œ““‘–˜ †“““ ’“¦œ•““¡““š“Š“”•“”™›–œ˜“–—“““”Ÿ¡¦¢˜“ ±–“Ÿ– •Œ””ˆ“™’•“›–““““¡‹—“—’˜£“ž““’žŽ’Ž““—œŸ“““““”™”£”“’‘œŽ“œ™“—““’œ—”˜“•“““š”›““•“”“™“’Ÿ“–ž’‡“Œ”¢“†“𔓗“™–˜”˜““›”••œ”„˜š‘““šš•——“”“’§““™Ÿ§“’’œ“““”““¢“ ’ “¢“š›–’Œš““““—“•““—•”œ“œ“•’›Ÿ“¦“”˜’“¥š–’’““¢““–‰“““““˜‘“ž¢˜““’šš˜“”—’“š““ ‘›–“™¨”“Ÿ—›”  ““ž’–’“™’’‘‘•’–’œ–šŒœ’š’œ’Ž‘•“Œ“‘‘››’’’’’•™“š’‘š›“’–—’¡“’‘’ “˜’”–’’—žŠ”–’’’’“‘ž’š˜‘ŸšŸŒš’›¥£›’™“’ˆ’š˜‘™ž’Б𓗔£“£’’š–•”––’’’’“’’““–œ‘‘–’“’”‘’š’–™ž›™’œ™•—Ž˜’’“’—¡’‘“›š“¢““”šŒ–—–•“›’“œ•“Š’¥’’’Ÿ‘’‘”™“’”“’’¡¬’ –Œ”’‘ž—ž™œ“˜’‘’¡’‘™—š•›¡’˜”“’–”•›’“””–˜“—•““““—›““œœ–œ—“˜“ž“˜ “˜œ˜”“˜ž˜””“””˜•”“£““¢–—“›”““š”“š••””™“”“™”””“”‘””“›“”””“”Ÿœ“‹™†™‘¤”¡”’{“”¢•˜“Ÿ”Ÿ”“‘—‘”“””’–’–ž¢””““™“”›¦ˆ—’“›”””““”“”—Œ˜—”•–˜š™“”””—™“˜“”–™”–”™•”“˜•ž›•””“””œŽ‘›•£”“”‘•”—˜Œ”“‘š““››“¤™˜””’‘™’““˜”š˜””¢”“š’””•“˜“–“𢛙““œ””–””˜“””””•‘–”—‘•’™”™”—”˜“”‘–’””••˜”””””–••›“•”’˜”•–”•“””™™•—”–š—•”™–—••””‘”””˜””š”–•˜•˜”—•–œ”•”š””•”–—“–—”‘˜™˜–—””˜‘””–‘”—”–”•””˜””•˜•™”””””””””•”—–—˜–”™•••”˜””•”™›”˜”””˜”˜”—”•™˜––˜™”––””˜•–””–˜”•”œ””’•”””—””–”•˜™•””•˜“˜œ—””’””•””š•’‘–•”𔓔™––“•˜””–“–ˆ’’š’“’’’ª›““ˆž‘‘™“š’§’™™’z—™“’•Ž“““’“œ“”’’’’¢’“ž“’’–§”‘“¥¡¤”“•’”“›“”…”“’˜“™—“•—’š‰“‡”ƒ‰“’“£“‘¢’”˜“˜˜“„Žžž—“‘›‹–“’›•“—˜—“”“‘•““™…—”’“ª“““”““š“‹’Œ™˜“šŸ•’” “””“’˜’—’“˜˜’¤“—””‰—” ¢›“’–“”Ž›Œ˜ª—”““–’“ •““˜”““‘’ŽŽ—“““Ž›“’˜“œŒ’’œ“‘ŸœšœŠ‘“›™•“››–£˜Ÿ““œ““”’’— ““’’•˜›’–›–Šœ“—’–‘”–’—˜—“’–—Ÿ““’““ œ”›’“’”–•’‘““––’‘˜”“›“˜™•““˜™š”™““˜““’œ“››’™’•š““–Ÿ˜”–“““•œ’˜“™–“ƒ”™•””“”““““›—•˜““““˜““˜“Ÿ•’’™““““““’šš•“˜˜–—œ’“““““œ“›’“–‘•“™“”Ÿ™˜™—“•–’“”—•›™–‘’’“™’“””š““››““¡™’‘—–”“” ”š™”œ“‘‘’’’’’›••™œ˜“›‘”“Ÿ“•‘”“““™’•›‚’–˜““’’‘–“›™’¡‘˜“–“’˜‘’““‘œ•’“’‘’™š’”’“•Œ’Ÿ”’”‘““““”•˜“““‘‰“–“˜“’“’’Ž˜˜‘ž’‹“•˜™‘“’’‘Ž’“”ž“““˜›“˜‘žœ†“‘š’•“™“’“‘™’’•–Ž˜“™’““’““”’˜›™˜Ž‘–•’‹›’’”“–š’’“™‘“˜’ž”’•”ŸŽ”’Œ““Ž¢‘˜˜–’““–’’•— ‘“’™“’™¤“–š ““›”Ž’•˜“––““˜–š‘—““‘’›–˜•Š—’“š’˜ž‹‘‡““’’‘“’’ž“˜•˜’‘’–‘Ÿ’‘‹•“‘—”™’’’‘‘“—’Ž˜‘‘–”’’œ’—™’‘›•“”’”‘š’’“’‰“‘’““’‘•’”‘“—•“–’•’”‘“‘–’•‘’™““–š’˜”˜’—“•œš˜’’’’”–“’“’’Š’’•“’’‘•’’’”‘’˜’•“˜”–‘•”“𙑒’“’˜™’“‘’š’›“—“’œ“’””’””’”˜“’”““’’’”’‘˜“’’’™•’•”Š”’‘˜“•‘“•“•‘’›“‘–—––’•’–“””¥–’“—’˜”—’’ž’“’’’”’“”Œ¬’’Œš’›˜’“’–“ ’’’’’‘Œ“•–’’£‘—’šˆ’Œˆ‘š“•“šŽŽ’’–“Š“’“’š’““œ’•‘¦—¤’°”’Œ‘™’„‘‹’™—’’œ“¬Š’—’’Ž‘†’““•‹’–‘’’’‘–’“•”’”Œ““’’’“…’ˆ•‰™š’Š„“·–“““““Ÿ“›’“‹•’“•’“ž“—Œ’‰’’““ª‘‡”“‘™’“’–““•“’“Œ’’—ˆ’›˜’”’‘‹“‹˜–›“•‘‘’‡“‘”‰’Œ™’†œ–’ –›Ž”’’”–’’¢’››““’’”——’“š œ“š’”“›‘š™™“’‘ ¢’’’’“˜’’–•‘‘™–—’œ™’–•’š˜””“•“™“’˜•ª“Ž’“–““’“’•™”œš“•œ’˜—œ”“¤’™“™’’˜—ž•¤“¥™’—“—™’”š’’“––‘™–’”’“™’’–šž›’‘œ’““’’’–’™˜—™“”””•‹’“““œ˜’£’“™“˜“£““˜–˜ž’—“™ž’•›¡˜–”š—“’“•‘‘•žŒ““œ•’’”Š’žˆ”“’”••›–˜“••”’—’’”™—œ•“’™•’˜š•›‘™’“‘”š•Š“Ž›”“““š—•”–›—’˜”—“ž“ ™“‰”—”“‘–—”””””—‘•–—”“—œ˜“””’““›™•“”••š””™‘•–””—””“•”¡–”›’š’•”•š‘”“”–”“š“œ“›š””—š™”˜“——‘œ”“œœ“”•””””–””•’’’“”˜”””•””™”˜””•”˜–•”˜’””””˜™”›””–”š”–””˜—š˜•“”•”“—šŽ”Ÿ––”””–“”‹—š””™—””œ–“š”›”””—˜’™˜”‘”””““”š œ¡œš”˜•”™˜•›•—””š’œ„‘“˜’“’’››”’›•˜¥–‘”’—§—‘¢™‘’’’š–’‘‘’“—„“’˜’“—£‘˜—’———“’™’“™š’“•šv’”’’““’”’™‘“‘’Ÿ›•’ŸŸ£œ’˜’“‘’›””œ’¢œŽ‘—“–”Œ¢’”™¢”›†’“’“™’’”‘‰™’œ’’’”’˜’’™Œ“¢‘˜’š•’’“““™—’™‘’’˜œ’˜““–•–š•˜’Œ¡’š“Œ™“𤓒’’‘’—–“’™™’‘ ¤’“•“’“Ÿ›˜—’‘Ÿ’’ž“™•™–’–Š’’–—šœ ‘“•”†‘—“šž””“”›™”‘𙓕”˜”‘”‘œ“›˜—”“Ÿ“”“““—‘”š“”ž”–”œ‹“‹™““—”’”“—“””‘‘”•””–“””›”ˆ–•™¡˜¡”—•“”Ÿ”™”–Ž“‘š›—’”›’’‹–‘”’‘—””“’•“—“‘”“””Ÿ””™•‘˜’”‘”””–“”””“Ž—–”“€–”“””–”“—“”Š—“’“–”•—•—””””—‹””™—“““™“””˜”“—–””˜”””–•”’Ÿ“•””””—“—”••“”—““–„Ž‘”Ž–””—™™Ž””•“•ž™’–œ““’’–œœ’•œœ“““œ’Ÿ‘–¤’}¢¡“’™”–““’““œ–“•’’ ›–’’›’”’’žœ“š“ž“˜““˜—•””’’˜”“’œ’œ””›˜™™ž“Œ—Œš“Ÿ“›““™’—”•™“Ÿ›—˜–Ÿ’’“—’“œ˜”™’‘’“‘’“•‡‘›‘’™“““”“’™’˜›–Ÿ˜“—“”›¡”““““—›“—’“•š“’”““œœš—¡—“’’¢˜”™›¡‘“’“˜‘’‘—‡““š—“’’—•˜‘“”•¤›—š““Ž““œ’“’””˜˜“Ž”•’˜™•™›œ’“—“š˜‘‘™™““’’•š“š›–Œ˜’£’™‘™Ÿ’Œ“–”“•œ—””““”œ•’ŸŸ’“œš’“Ÿ–’™•‘’—”œ“™’“’ž”‹“˜“’˜”“’ “”ž•“‘™•’“†“’–”œ“›““ ’––›™“œ‡”™““š““œ—‘‰“’–“’š““— —–”’˜““’“”“˜’—–™š””•‘••£““””“–’™’”™›”•’œ–”‘—•—›Ÿ“’š’“”œ˜ ™–”““£’”—›…““žŸ““˜Ÿ’Ž“—’”•𙕗˜“—’“Ž’”™š”šŽ—“““œœœ–˜ ““–”—”–”—š””””•š”™›šžš”™”—”™š”£š–”””™•””””›–•˜–””™˜””š™”˜‘””™™•”ž—˜””œš˜•”””‘•”” ”—œ•™”˜›”•˜˜•“–”“””™”›—›šœ”™™Ÿ™“š–•Œ—””œš“›™Ž”””””””›œ”›’”—””””””—”’ž—–’”—”•œ–”••”œ”š””™›”“”˜”•ž—š—”—›”“š—“”ž˜ž”””ž””’™–””šœ””™˜”›ž›•””——˜ššž”“—””—”•™—–˜—”–—”œ˜˜”’˜””““ž¢¯“Ž“’’’œ”“˜—–‹”“’”“Ÿ““…™’““‘™“”“’“”’•“‹”“’”‹–’Ž–’š‹‘˜‘”““”“—“’š°”’“’œ””’Œ““”›˜¤’Œ•ŠŽ “¢“’’’“˜—’€Žš‰“‘‘–œ“’’š’–‘Ž“’““Œ“’“™‘™“š’“’”’“”’—’”Œ‡”•“‘‘—‰“””””““”““”š•’™‘”–š›”’“–œ’•’‡“’’›”’‘‰’’‹••‘“˜’’›’©“š“Žš˜™•”“€•“ž’‘˜“Ÿ•—™“†±Š’ˆ•Ž–““•—–••™”••”•‘–›•––•™–•˜”’”–“”””••””——••••””“”›””””•–•›–”—•””•••˜•–˜”••™˜’•“•••••”˜•”™•““—””•–š••š•—••“•–™•—˜•—–•–•—”™™’˜••˜™•—”•”•”•••””–––”””•••””•˜”–”—“˜”••”–“™•••”•œ••••˜™•–•—””—•š•”—•“–”””“—™˜”•””•š•”••›••˜—•”˜”””•””••–”–—”•’”••š••›˜———˜•””••–”—’”•••”“—Šz’™““’’›‘“š›˜’’›’¦‘–œ‘˜ “’”™“““’’’˜Ž”–™‘’œ Ž’—”’‘’‘’œ˜’’“•˜™““–““’‘Ž’’’—’”“œ˜–™•“‰‘“š“ž”—¢‘œœŸ–“š™—˜•””ž‹“™’“——”—…’’’’““™“›’›“““•’“š’–™’¢‘“–‘•‰£’“““’ž’™’“›™“”“—‘”™œ¢Ÿ›–“••’ž”˜ ž’’“—’’›““”›“’˜‘’•”‘““” ’—”œ“ˆ””“•“”œŸ™›““š™™’ššž —’“–”—–‘“•“”“““—Ž“”—œ‘‘œ”™“—“–“žŽ”“‘ž”””““–“•””““™‘“Ž˜”œ–“““““”˜–œ””˜•–”“”‘“”“—”™—“’•—’‹”‹–‘•Ž“™”“†“”’–”™™™”’’•–Ž™““š•–‘Š””““””–‘•”“˜””””“”œ“”–“”š–’™•𔓔”™—“–“””•“¤“’“”‘”œ’™”•‘““•‘‘š—•““”˜“”•—›“”›˜””””“šŽ‘’”“˜–”‘“—”‹““Ÿ“’•š™ “—”—“š”—–˜•’š“”‘“”¥“˜•““’’˜š“š•˜—“‘’Ž’™’ª•–“’”˜š“““““‘–“—““’‘’›““•“›•““•“”–“•‘š““”–”””“““”’•“’•”“–˜••“‘–––•œ“Ž“”ˆ“–““•œ“¤œ•‘š•‘”“˜“”—”•™“““•““•““”‘¢š”’–“““”““˜“š”œ””“•–“…‘’“”““™š“•’“–—“–“˜””˜–—”›““™’•–Ž˜“’£“’“™’“Œ”•““––““––’œ™Š”““˜”—™š’“˜““˜“”Ž•““—š“˜“”‘’Š“‘““““˜‘’“™““’’’—˜’––˜‘“™’’’™“‘™–›“‘—•’““’’’“›“•”‘‘š‘—’š˜’”—’‘’—“›“•’•“’—œŒ“Ž’’—““’™’™•’‘”™“•’”œ–“—’–“–—“–““š“’’š‘‘“š””‘˜œ’’˜™–”’’’’“’’”¤“˜‘‘”““’“’’’›“Ÿš–“•–“‘˜˜’““’•’™’“›–’’’’”—–’˜™“–’“›’•——“œ’’’™‘’—”Ž“’˜˜’’š™’“—Œ”“”™™›–™“™–’’˜’“œ—š™™’““‘’˜“’”–˜’“”“”˜’“˜“’’’““’’”—“š“—’œ’“’’}—š“’š—”“’“’š“š’‘“™”’˜’’’Š“’”™”•“–𔓓—œ¢”—’’“““’›“œ—“œ¥—™’š–˜•‘•“œ“–’—œ”œœ“˜—‹š–•—œ’’““–ž–’’—’’’““•’’’‘“““˜“’’–˜Šš’š•ˆŸ’“““’š’—’“˜—‘™’™”“ž—˜•›Ž“—™’”›“’“—˜—’““š’Ÿ’ƒ““¤–“’““’š™—““’”—““šœ“ ”“’˜’‘˜Ž“˜”“¦–’˜’“—‡’’‘“šŸ–’ ¢“’’’—ŸŸ“œ›š™‘“›’›“£ ’§¡¤“’›™›“”’’’——’Ÿž‘’¤Ž’—›’–“‘’šœ““š—Ÿ“’›¢‹”—“‘””“’•’—’›’™ž©’–œ•¨’Ÿ”’—‘š™—Ÿ“œŽ¥“Ÿ‘˜ž˜““š£”›ŽŒ“‘“’ž’“••Œœ‘’¡“““‘““š’¥š’“™’’œ•““•“—œ“ž”““ “•‘” ™žš¦›“‘ž’˜“¨™˜™“““’”“’›†““œŸ“’¡’£›•“”‘–ž¥ž¢˜“‰””’ž’‘››Ÿ£—“š“™—™œ‘›““—“ ¤‹’’““’’™“¤“››™†™“—’”’›™’‹”˜“’•˜”“’““˜—“›‘’’–˜‘’•š“¡’‘•Ÿ“š“¡”œ““¢–”““’”“’““  ”œ‘ž”•“‰¦‘“–““‘’’œ“—£•“’—”—‘œ’Ÿ¡Œ¬’’£˜“™ŽŒ“”“’Š““——§’’ “““•”’¤“˜•¢”›“ž›™†¡‘“””“•›“¤’“ž‘““™“’œœ’•›œ“›“‘•˜Œš•š“““™““œ›}“““““¥¤’—‘‹““”¤™¨šš–“‘“’“›’“–¦ ›“™š“¤˜“‰“ž’”—’’—‘™“’’’‘‘•”’™š•“‘“’“𗤓““’“•“’‘‘’‘™““‘’™–œ‘•–’•‘‘‘›Ž“’’¥’’’–’›’“•’“’‘‘•‘˜šš’”‘–”–¡‘”“”–’—“Ÿ’“’‹™™Š’“›•‡œ’“‘‘‘•‡“‘‘’’™’’–ˆ¥“’—’’’”“’œ’”‘—”˜’–’ —‹’““’˜˜’™‘’–‘œ“’“˜••ž‘Œ™’“Œœ’”’š’’’’‘‘‘š’’’‘’’’—–’’›•’–—‘‘•‘‘’‘’‘—’”‡•––“’£˜’“””‡’‘“““Ž™—“–““““šŸ˜“‹’™“˜”™“›’”›“’š ”“Ž—‘””“””˜˜“Šœ“’–›““˜“’’““š‘”›“•™•““–¡””““’””“–“““”’”””†‘“’£”£”“”—œ˜†“•Ÿ’˜‘œ•““”››–’”•“•““—““•˜œ”’”“““—““–“•’‘›•”˜’—Ÿš“”””˜–“”“”–—”˜“Ž”“˜Ÿ™—˜™”“–““œ ™Œ™•“““™“”“–”“Ž“““™ž“•™˜””““¡–‘•™”‹““–““‘ŸŽ•”“™–”“”™˜œ˜œ“”–““‘•’”‰““’’“Ž™“ŒŸŽ¡“Ÿ’’’–’œ“‡“’“š–““’’’œ•”“’•“™’Ž”“˜•’‘“Œ“•“š™”“–Š’”—““Š““’Ÿ“Œš“Šœ–“Œ“‹”“Ÿ“‚“‘–›ž”“… ‡“”Ž˜’–“’˜•Œœ˜“’““‘“’™‡—Ž“’™“““•’“—’”‘Ÿ›’™’ •š“““’–—“’“˜“‘›”˜“’““š••“‘’‚•‰‘˜—’““›“’‡”““žš““Š’—Ž”’“˜“”Ž““’Ž’“¡““””’™ˆ—“—–““•—˜¡“”–”ž—”–’””””‘˜—”¢¡Š—”–”™“˜–”Š”Ÿ”•ŽŒ•””””—š•–˜””˜––”˜›”–˜“”’Œ””Œ—””¡”–””””“”•”—”•Š–•‘”‹–Ž––™”ž”’Š“™—‰”Œ›¡’•’—™™‘¢”“™›“’‘•”•””–””“›—–“•’””””””™”œ˜š˜•””•™›—””•””””””œ¤’–•““”‘“œ˜—–””‘”“”‘¢œ”””“”’“›””¢””•¢”“•–•”“œ––’•’””“”™”’–”š›˜—”“‘””Œ”—˜«–””””—Ž’”›””””–—–”›—•‘•”˜”˜”’™”š••””•”˜””””•––•𛓔›–‘”–“”–“””•˜”“”𔑔”•—˜”’”•”•””™”—˜”š‘—š”—’™”“”“”•”™“˜“•”‹”’•‘•‹––””–••””””•””˜™˜”’”—”””–”””’”—–“•’’š“•”•”•–”“›””••—”•”š›–“˜‘”™’””™˜˜”›““•””—•”™•‰””›•””—”‘˜—””“–——•—™”–““”’”“œšš›™˜”’š•”ž™˜—›””””“•œ’•“’’’Œ‘š“ ’’‘—“•’”’Ž’›’“’“”““’’’™™“š“’Œ•’—”’’ž“‘˜’”š““—’”“œ—•“š“‘“““’™’•™”’‡˜—–“ˆ“‹•”’’“‘‘—™“–“Ÿ—–•–“–Ÿˆ™“’•—‘˜–˜“•““‰’“”–•‘’“““•“’‘“–œ›“Ÿ“š˜™™›š““•“šœ’Ž’“œ•–”’’’“—š”’––““’‘™’—Ž›‘Ž““““““ž““–œ“’—¤’Ž––”“––”‘›”“’‘’’›’“œ˜‘“›œ“–”’“‘–›”’““’ž–’™˜“’’’¢ž˜’™˜–™”“—’Ÿ“’›¤“‘”—‘““’’“•“–‘‘ššŸ’’”’ž‘‘–Ÿ“™“œš‘”’œ—“”’’’“’’““š”“œ•“–˜“–‹œ” “œ’™‘‘ž™›˜Ž’ž–š’‘”—“’˜’’£š’˜–’‘’’—’“›•‘‘’““’“’œ’‘–’ž”“›š•šŸ”’““““•’ ’“¡™’‘“–”“˜›œœ™“—’‘  šŸ “’“–‘’–™“’•–“’˜“’–’““•¨”•š˜“’š’’–ž›™™“”–’šš˜¡’’’˜”–™“”–š””””“––”–•š›˜”˜”””˜—”™”””’˜š”””””“–••š””žš”–™””””•–”””•“›•”˜•£”•””’”•”””‘˜”š™–™¡”›–’—“›”™”˜”™—›—™”—–Œ•”–“–™—””‘‘“–˜—”“””–””™—’™“”š”””—””“”˜‘™˜“”–—–“•””•”™–”””—’“•”–”•—œ››•”•˜””—˜œ““˜”””’””™šˆ””˜–””•–”—•”“™—–™˜—”•–”•˜””•™—–•””¢‘”˜––˜”””•“”•–Š”“•””””‘”š™™˜ž”¢”Ÿ“””‰š’””’˜—”””””œ”•š˜””¢ ”›–””“””•ž•–”™›˜””œ“’”’””–”””ž”’”ž˜™˜˜”‘•¢’“–”œ”“Š”™››’–”¥•––˜’’—’Žœ”•Š“”š—”’”””””˜ Š””™”””—””””™•—£‹”—”’š™””””›œ”””›š”“”—”•›š œ‘”—”“ ¢“‹–Ÿ”””›“”–’””—œ””™š”–˜‘•””š’”˜ž”§™””™””œ™”–”–”›” ›œ˜˜”””“–•ˆ“›“““’’—”Ÿ“¡˜—“•“—’—‘”•’’•–“’“’’“““““˜˜“‘“’”•Š“•–“™•’’“™”“œ™—““™—’“’““”“”’˜“›š’™”š—”“››”‘‘˜“”“Ž–“œ–”œš“™–œž–™™˜’™““¢š”•–”“‘“’”““”›˜”‘’˜”““““’š“š–ž™‘“˜•¦˜—““”“•š’”’“œ“š“˜’“•—–™““œ’“š•š‘’˜—“’“”’“¤˜‘““•˜““ž•“œ‘‘””œ˜™˜™•““‘’“•“•™“ž›˜ž“¨’“œ™–™– ’“”“™”™’–¢““’’¤™’”¤™²“Ÿ’¡‘’¡’ ¢“’’››““’“’ž—“žž’’›—’•™’™•’‘š”˜“ŸŸ‘““ œ”’’’’““’ ’  ’™•‹œ›“–™•’ž“›““Œ‘›š¢™““µ”‘“•¦‘‘“”¡Ÿ”˜”“’’“›’“¡Ÿ™˜’’Ÿ“““”’’—’•š‘—ž“”——Ÿžš“““’˜œ’ ““šœ“’“““š£œœ¡˜“›’’’œš™§§›•“’““’™›¡““Ÿž“’”’”œž”““”žš™•Ÿ“‰™“’”’“¥ž©ž—“Ÿ”’Ÿš¢œ’“’“’“–”˜““—“”““–””“£””’š“”“—•𔓙’”“”’˜””“””–—“›˜““•˜•“š—“”•”“™”””“’”š””—•™“‘““•“”“‘”•—–——”“™–—˜’““””›“•”–’’“’“š”—“—˜“—“”•“”’““““““–““’š“”“—“““•”“”“˜š”–”˜””š””““””–Ž’—““•“—˜”™–““•˜˜”‘““—“”’——“—‘›“““•““œ––““•“““™”“–”—”“”—““•”““–””’““—˜–”•—“‘¢‘“œ˜—––“”•”’—”˜š”•””˜™–”“™—”˜”•”•—”–”—–˜””–™—•””•”—“”–›“”—••”˜–”œ”“–•••””–˜””‘˜˜”“””””””“”•–••™•˜•”•œ˜”—””••””’–š˜’”’‘•’›”““”•” “™“Œ”•””œ””˜‘™“”š”””“””””›œ“•–”‘’’Œ—˜””””—˜”™””’’•’”••””™”˜–›”‘’”““–œœ—•”””•””™™—””˜˜”””“”™–”””“•š™—–”•””–””——™—””—›”—–™–’“””““š‡w“›““’’œš’“™˜—“—“–“‘‘™’›™Ÿ“’•—’”““““•–’‘’’œ˜•“œ•’˜”‘‘˜ž“–“˜“”“–ž‘”ˆ“’•“”’—“œ”“–‘—˜’“©˜•—”“Œ“”’“𙕑‘“Ž’›“‘Š“”•˜˜““–œ”˜••“““”““•—ˆ—’’“““”’“£““–“›£“——“‹ ›““”“—˜’™““•”‘“”““’––˜œœ“Ž˜““š–‘›žŸ“““’’“•Ž““‹˜“’š˜“‰•“““—–ž“—™“‹”“““’™›”™”“Ÿ““—ž“–•““‘’—“‡’Ÿ’’’’•˜¥’˜––•˜’’‰‹Š–‘•“Œ“‘š›’’’‘’™§’žœ‘’–“•’Ÿ‘’ ’Ž”—’Ÿ’©ŸŒ”’˜”—’”’’’‘’’£’¡‘Ž›”’”••‹•’›’’œ›™’–‘¦–Š‘””’•’“ž“ˆ–’“‘š’‘ž›•“’“’’’‘’™’˜Š¤–’šžŽ¢¡’‘’’–£’•‘“§š’’”““ž›’‘•œ’•Š’‘—–—…—”‘’’§“˜–„‘’™‘’’•–’”œ–“’›™—Ÿ“—“™“‘“ ’‘Ÿ™Ÿ‘‘ ’™†’’  •“¢™’“–”•”’”•–””””•”’””“•“•”•”•”“•”•”””•••”””””••”••”””–‘”•–””’•“•–”’”–•••”““’””””””””•””–”•”•”””““•’•–”•”–“”•••’•”–”–”–‘”––•”•“’”•••”•””•””•’–•””•””””””–”•‘“•”••”“”••””•”•–”–””•‘••”•””“•’•––””“”””•––”–‘””•–””˜•“•”•’””““”’•”“”•”•‘”–•”””“”•””•–”“’””•”””–••”˜“”•”””›•”•™””””˜˜•”—™™•š”›”œ“™™””™™”””˜š”””””™›•™›””™™””•š”•˜””œ˜••”—™—””š–••”””•”””™”˜š”š••™š”Ÿ”ž‘••”›”•—”™˜œ–—”‘›œš”š””˜”’”””’”––”””””˜””š–”›””˜””””””–”™˜–›””˜—•Ÿ›•””•”œ›”™””˜™”””—”•›˜™™•”•—”“šœ›•›–“”””›””œ™••”š˜””–””˜™”—””–™”–—›”””””•”•—™––˜–”–•–”›™šš›“”””””•—””˜””“”––””––š—”—“™“–˜“š•””“˜—•””””—–”•—”“—™Ž“••”“•’“š—“•”•–”””–•”””““”””˜”––”——•˜˜”•’Ž‘’•”–”“–“—–˜”—”‡––“”–“–™‘•””–•“˜˜’”“”“•””–Ÿ“˜“”˜”””””“—”—”™‘”•“”••””””™™”˜””–•“•”—“”˜—•˜˜š”””””›˜”•—–“”””˜““”––””–•””˜–””™–””“’›—•™˜”–˜””™”’–™‘––•”•••”––——”•””””—”“—”””““”•””———’–”””•“˜•“œ——””“—•“””“”“—”•–””–”˜“•˜”˜•““––”“””•—””—˜“”“””“”””•”˜•“••—–“”•–“˜“–”–“•‹“˜–—’˜””—––”–”••—””““’–•–””””“”””—’˜””•“”””””˜”™–––“–•–”•””””›š”•””˜–“˜”•””—•–—•—”•–”’š“”“–•˜”””—“““”–””’•””•™”™—“•”•——•”––”˜”“”𔓖˜–“˜˜”•‘””••––“’”””””——”˜–””““—•˜“™––—˜”—“—“˜–“ž–•”““——””””“–š”––”“”–”“”—“™—““–•“–”—–˜””–”’”“””Œ””“•”•˜“—”š•–”—˜•—“•”–””“™•–—–””––™“˜””˜”–“”˜••—”•“”““–””—’•–”“™“””””“˜“–•™•“”˜˜“’••”””“—–”•“”—–“™”–””š—–—••””—“”•˜•”–——““”–““”—“””“–””š›“š–•””“™–—–’–”’“”—”“•–•–—˜”“š’”–—–•”˜””””˜…”—–””“”“•–”œ”•‡–”–“•“›•“——–”“”——•””””••“•”””•—“–š”™›““–—’•”–—›””—š“”’”“••”“—”—–——•—–”•š—–‘—”™•”™“”˜•”–”‚˜–˜”›’ž“””•””™“’”‘”’””””—˜—’“•”””•–”˜”›˜—–“›——•”—”•••—““•“”›““”—“”•–———™””›““–š—”˜–”””˜“”—Ž“”—–””𙓖—’‘•’›—š—˜•””›’”›“’–™›˜—›”“¦•”––•–“—“”“”™œ˜””–””””–•””˜—˜›—”—”˜”œ˜”••””“•—•”””•–“”•–””–—“”•›”˜’•”™˜••”–•œ””–—–”“””“”””•”˜–“—”𖕔𙕒•”•”•–”š•—”š”˜˜—”œ–•š“””•••“––’”•”””””••’•””—””””””𔓖”–”•™˜–˜—–””••˜™”˜””˜••š”–•”™—•——–””œ”•š˜”“——›”””–”””–˜””—–””™””–••”–—•˜”—–”•‘•”˜”•–••—˜–”•Ÿ•”˜–––”–””“”˜œ”“•–””””•”•”””™ž•“–”—’›—“’˜•”””••“““’“–“””•””•–š“•™“–Ž”’—–——”•––””–•–”“”“””•”–”—•••š––”“—–”•–”–“•“š•••˜”¤œ——”›–“—“•”“”–“—••”–””•”””‘˜—’”•””””““˜”‘–”—˜“˜—––˜—”“””—˜””“”——””•‘”š–”–—–”“›”•š–˜“•——“””•”“–•””•—”“—–”™–”•””“—•”–—”•““”–”“•••—•”•’“”••••‘•”””“–—’“““””““˜•–“—•”””—“–““˜“¡–””““–”””“““–›”‹˜“““—““–“›•“’—‘’—““—””“–“–”“““‘”““’“—”“““•””“‡™—–––“™“““™”™’““œš’’•““–”œ““•™“”“’“’““œ““˜˜“•’“–““”””“–“’–š˜“™›•ž“•“””““”“”““˜’”“•’“˜–“—“•“’”““•œ”’˜˜‹“““”’“”•““•“““–“Ÿ˜’‘”•—™•’“•”’’““ ““˜œ——›“’š’“–“™Ž‘“”“””•–”–—””””–——”—˜–•—”˜”—•˜—”™—–”””˜—”””””—••––””—–•”–˜”—“””——•–”˜—˜””–––”•””””””—”•—”–—˜––”—˜”—”–”—””””––—˜—”Ž–——•–”•–“”””—–”—••””””–””—“”—””—””””””—”––˜—“”—˜“——–””••˜–”—””––•˜•—””–—˜——˜”•–””——”•˜——”””—””“—”””—˜””—•”˜—–”””——˜˜——”•““”™””–—–––—”•˜•”—–––”˜””•”™¢Œ”——””””˜˜ž”¡š—“–”–”–’¡–”ˆ•“”””—•”””““– •˜—””•—‘”—Ÿ”›““•—“Ÿ”˜—¢””£šœ•””“““””˜”——’•—ž–“”’Ÿ•œ”””“”Œ”¢—•˜–”¬œ¡¤”Ÿ’—¢•™”“ŸŸ”–•“”’”’–””˜”——’”—””””“”œ”žžš–—“¡œ‘Š˜”“““•š“–“”œž“¢””‘•¤–Ÿ––˜”“”“™–––›——“””—”“ž—••””ž””Ÿ¢”¥––””“œ•˜–——””““”Ÿ”“—žš–œ”•¦””˜–˜•‡ ””””›˜ž”•—””“””––”™—–™•”•”““š•“£”•””“—–””“””––”••””•‘–””œ“›••”—”•—”••›””•›œ”””•’”””“”›•”“–˜•””’š˜š•–””•”–”˜–•–™”„™—’”––••–˜”•——“–“•”•””•””•“—–•”–””””””™”—™˜’š”šš–š–”””””—•”–“”˜–•œ”••”–”–”––”•ž”””””–—”š”””““””•™•”˜—””˜—”•––”“–™“š•—””••”–”••—›˜œ™””œ•””•••“•””•”˜™‰”‘””””””””’•˜–”“”–“•’”’–“”“““˜””””””–”™‘”“••”“”’•”””•”˜”•—”””˜—‘••””“”””””–—”—•™—˜”•’›˜––”–”•”•’“™–”›™˜–”“••—””—••™•”””””Ž””‘—’—”““””””””•”—“–”•”—–•›˜’””””–•””””˜”–”””•˜—••”‘””•””—”™”•”‘”””˜””–’–””‘—””–𔑗’””••“•”—””””“•””𗔔𔔖„“”™“•”™™””””•””–””““›”’””˜’Žš”–“š“˜“‘”—”““”˜”””””“•“™•““–™””𔕓““•™“”–š–””—–•••”“•””““”–—”›•‘•–”™“–”—”™”“““—™›‘”‹““–”‘“•’’•“”•Ž—–˜–”“”””””–™–“”“™””””“”“”Ž”•—”–”“˜’”””””—”›“”——“‘”•””“—–›—‘”“‘““‘™•——Ž”“”–“”’œ“””““”””‘“Š•””“–•””“—”•””“”ž•˜•—””–˜“”œ˜™›•“””••••••••••••••••–•“••••••–••“•••••••••••–•••••••••“••••••–••••••••••••”–••••––•••••••••–••••–•–”•••••••”•••••Ž”•”••”•••••–••••••••••••••“•••••••••–•–•–•–•“••––”•••••–•”••••”••–•••••••••••••••••••••”–•••••••–••••••––•–••••––•–•••••–•••••••”•••••—••••••”••••””’“”š—””””™——””—•›˜”•”™”–“”•™—”””•™””””””“”–˜””•–—”–™”—”””™™“–”—–š””’š–•“”””””–”œ˜”–•’™—” –•””•”—””Ž”™••–š”š•””•”—’”””•––˜•“””””š””š–’š””›””””””˜”•˜”˜˜”“’”›”””””š—”˜””˜–”•”˜””™••—™˜”•𔕖–“”•—˜””””””Ž˜”””•’”””ˆ”—™“’”•’–š–™—””‘””—””’˜š•š–”“ ””——”•”””””””™—””•””””–”–”˜–“Ž•”–”—–—–”™–˜””••”•”””•–™”•–””––”•—”–œ••––”˜”••—””š—”“”•“•””–”š••–”˜––”™š‘–”–”–•“•””––“‘”‡––•‘Ž”™”™””–—”–––”“”••””•‘“–””–”””–•”•”š›”˜‹”š˜—”™•””••–“”•””“˜“—”••••––—–”•’”•”–Ž“™–•””•””™–•””“š””™•”˜•”“•–——”–•”•””–”•š›œ˜”—¤•”––——•˜”””””š‘“”•””““•‘•”œ™––•”““˜–‘“Ÿ•’”“”“—””“”“”™“—“’“’—’“‘›“™““——”—”•–š””›˜•”“”“•””“•”›•”˜“š•—”›™˜ž“’”•”“•“›–””›”›™Ÿ”œ’“š“œ””–”–”–“”“””’””“‘–—““”””””“”š“›šš—’”›™“˜“””•”™•”•””–›”Ÿ“”””š”˜–”“”•™““œ“Ÿ‘™•›”””˜“”œ””””“™””™Ÿ“¢“”•””›—–“–—”–“”“›””•š—•šš”“—””˜”•”œ–””””˜—””˜™””””——˜”——›—˜”—”—”˜˜”›™˜””“™™”””””—–•–—””™˜˜”——”—•””™˜”—”—–•””—˜•”–””’”””—”˜—•š”—–š”–˜˜•“™•—”•‘”˜—˜–š”š——”•••’””—””—˜“—•–”•””—””˜——˜””˜””””””–”–˜–˜–”—–””˜•””•”™œ”š””˜—””•™””™–˜˜˜™”–—”•š˜•––——”””—””“˜”””–—””˜˜”—™•”””•š—˜š˜•••””˜””•˜™——˜”—”•”——–˜•—””•“••–’“”“””“’“•”””—˜“““”’’”““•“““•”“”“’’‘““—’”“’”’“•“’•“––•”“••“““”“”““–“””“““”””“–”‘“”“”“—•›•”’““’“”“˜’’”™”¢—”–““—”–“–”“”“““–•”•”“““““–”“”•’“”“’”“•“•“”’•‘–•“˜’’””“““—“”‘”˜””””’’”˜””’“’“‘–”—’“”“’”“”””“’‘’–””””““•–”“””–“””““”““”“•“”•””“’—“–—””“““““’’’”””˜”“˜–””““‘•˜”—––•“•““’›—“˜˜—”“”—˜””“””——”–•”“”•‘“—™““˜““•–“™”™–›””™“””‘““”””“™““—”•“—˜—”Ž—˜›š“–”’–“–•–•˜”—–šœ“˜’‘š’””–—’™•‘”’““•””–“’–’“•”””““”–“šš’•—”˜•“’—“”””””˜”•“”‘š“š”—“”——“•––”’˜“’—–›”’—™”””˜““Ÿ•”””–™”“•—“š˜’•”•—–•••—””””“𔕗’‘—•”‘œ•”––••™™“”’““™‰“”•“”““““”““”—”–“““”“™““Š•’“””˜”“““’”••“““’”“•““š”–‘”’””“•“““—““–™““”“““”–“™’’”˜“•“™—š–“’““““”“˜“’”•“…”–˜’–””š“””“”“•”–“’““”“““‹’–”””““““”“˜““™“–Ž“—”–Ž“’““““–•”–““’–“›””““›“–““˜““˜”’““““•““”“”““‘“•“““–““––”–“”“’‘”™“•”“••“”›”’’˜““š•““““““““Œ”“”””œ˜’”——””””–—”š—“—”˜”—“–˜”›—•”””˜—”””””—™•—–””˜—“”—˜”™ž””——””˜—•”” ——”•””””””˜”™˜•—•™——”•—–—’—”˜””“”˜—˜œ–”š• ›•—“”–“œ””™”–•–”“””–””—•——””—””””””˜”¡››˜Š”™•”›–””””——“—””šž”™”—””š— —˜˜””–””˜˜—•—•”””˜””š˜’””—ž””™˜”˜—–•”“›˜˜™˜—”•”””—””—››Ÿ˜š”–›•”————™””–””™š”–•””““–——”“–••™”˜“—““–“¤”–”“”•—”””””–“”——”“•—–“–•””—”“š•”•”——–””—™•””””’””“•”—š”–“˜—•”••“”—”˜”””“—–™–””–š–””˜””—–””˜—”–––””””–””—™•˜”“•””””””™”—“——”••––—•””””š˜””””–•”˜”•””˜˜–—––”–™””–™”•˜˜Ž”””™”””˜“””•—””—’”“—–”””‘–—––•”“”””“””–—‘–—””––•”–˜——”—””–“——•“š—”“““”𛓔𙔖”›“–“——“Œš–”“•š™”““““—š”—›”“ž•–“𙓛™““˜›”š“š—‘”“œœ””““—“”“ž“š˜”˜“–™œ“‘–“˜•›“””›“šš•š–“–•š•’•””—”“”—•”–™—““““˜““š™š““”“”“”““™“•““–“—”“§—–““”“›—“—“”œœ“–“”““š—œ•œ™“•–“’ž“‘š•–“““œ“““–””“˜š““™”“™˜’•“–—˜š›—™”•““–“””›™—™™“–““˜˜–™”—“”•”’“‘•””““–‘‘”—Ž•†•“˜”˜‘””“•–“”“”“•””“““••”•–““–•†“‘—••¢‘’˜—“–”“•—””—˜“””’””””•”––—•šš”—”™˜–’•“—”•“™““’•”…’›”šŽ“ž—””‘Ž‘•–’”‘“’•”“”•”–’”•”””•””—”™•›–Ž“›˜“’–”•““•™”–“”•—“•”•’”™–’•˜•”“™”Ž“•–•‘•‡“””–’“””“””’•””—Ÿ”Ž“”“”‘˜”—”–•””›””œ”’•–”Ž™”“’“”–”–•˜““”•”—•””“•””””’™›”“——”””–”•””””••—”””’™”””””•’”™–””’–•”••”˜˜””˜—•”š™””•—“•”””•”””™”˜™••”—˜•”•›˜“˜”–””–”–“’ž™”’˜•”’•“—”•””œ”—–“””””–””•”““”””””””””˜”—˜•“™””š–”˜—””•””˜””””•™•’”—••™—’’–•”•””“™•–”—•𔔔𔔔““”””™””˜’”••”•”•’”™—•—”””””˜”•š—•”—•”–•”˜””“”™””“””•š”——””””™˜—”™˜•‘™”–”–””—”—•˜”””—–•””””–™•—–””•˜””—–”–›””––•””—–•””””•”“””””””•”“˜•–“––“”–””—“—”–”“˜”•–𔕔•š™–•“•˜‘•””˜•“—•“””””—””—–’••”™””””””–”™•˜–—”——“••–””””–•”˜””–”•—”—••“˜’™–˜””“”•”™–—–˜˜”•”—“”•˜“””••””“™”‘–“•””——’•—•••”””–”•—–•””–”———”™———›”””•“—œ““š“”““”—•“˜™›“–“–“–”ž—’Ÿš””““šœ“““““š™””–““——“”˜“š’’“™“•“–“›”“˜˜““““”–“““—“••’˜‘˜•›”š›—–•’“”””•“™“”•œ“‘˜—•“œ—’”“–”“——˜—˜“““”“““”‘™““–““““’“•“–¢’—™“𔑑˜“““”“š›“˜““˜–“˜”—“”˜•–••›“”œ“”™–‘‘—–•“““›““”•‘““˜–““›•“œ™””“•˜™š”™™”–”“˜“’•˜—š˜›““““˜•”•”—“”•”—˜’”•“””“”””–”•‘••”•”“–••“’”—”“”••””””””˜“•–““••“”—•”——““”•“””—”•””’˜•”“””””””–”••••’––“”’•˜˜•“”•”‘’”–••”“”•”•““’“”—‘•””“”•••“”’”“”””–“‘•““•””””””“”š”™•™”—•”‘“””””””•””””—‘“””–””••’•”•”’””“–•›“’–˜”””–““–‘””‘””•–””•’”””™”–•”•”””“”˜”“•—˜•˜™”“”’”–––•”“”””•˜””š—””””š˜”—š‘—”•”–“˜”“˜•’”””“–”””””–—”•“”“•™—”–˜”š–”“—•”™””–š””—˜—”“”””””•”š””–”›“””šŸ—”“”•”•””˜–”šœ”˜™—”˜”•œ•ž””˜˜”—”–””””™””–œ•“”“™””””””›”–•ž–’”™›”…™‘””””—”•””˜˜•œ”˜””š“–•—•””˜”•–•š–•–›””””””™•—””•˜””ž””Ÿ˜“’””Ÿ”œ“š””•˜””ž”“‘–š™—™””›“”••““’œ”””“”˜“””“““‘”–“›˜•Œ““““”““’–”““’—”“““”˜“—”““““”“”›”˜’““˜“—””•˜”“˜Ž”’““•”““•“›”“•’š””“Ÿ•ž‘“”“””’’“™”’•—“‡™œ–“›‘•–”“˜“’••““‘“”Œ““‘““”’“””““”““™“”•™‘‘“™–’’˜‘“””“•”””“”™“•”•””›”›••‘”“ž“™™’™‘–“““˜““˜““““‘š““™•“™‘—””–’™“–”••““•“”𖕛𓕙““š’•’•–“”’”—–”•–””””–••”•–—’•”—”–”––”––””“––•””””•••••””—–“”––”–”””•—”–”•—–””––••”””••””—”––•—–—––”’–––•–”—”•””–—––•”“—•••–”“•’–””•–”—–•””””•””••“–””•””””””–”•–”——”––•”–—””””——”–””——”•”•””—–•–––””–”“˜–“’–—•”””—””“–’””––””——”•–“”””“––—––•••”•–”•˜–”•––”–”•”––––•–””””›’“”——””””˜˜š”“™—••”—”—“——””—š””“—–”””””–””–•”“œ•–”œ•”—•”””™”™”˜–•””–›˜•“””•”””š”š•”˜–—˜™”˜•”›”š”™””’”•˜—š™”›–”‹”‘••“˜””—œ•—”’””””–””••“—””˜”””•””•”šš˜—™””•””–•””””˜—”—””—–”’”—””••™–›—”•—””™““•˜—œ”””—“”—”””˜™””–š”™™•—””•˜š™™˜”—•””™””›—•š™™”’••”—–•˜’™””““™™–“™š““““—š“˜Œ•“˜“”“•–“˜–““‘™š”““’“˜–“˜—““™’‹“——“˜•”’–”›“š••”“œ™”“““•“”“š“˜–“˜“™˜œ“‹–›—”•“˜““–“–—–™“‘™Œ“””“•”—“’›š’˜–”“”“’•“”—‘˜‘“œ”“““”“š“˜–””“””•ˆ–•““””•œ’™’“— ’•””””›–š›˜““”“”—‘’”˜˜™“““š““–™˜”“œ““™˜“˜“”••–™˜š”“•““𓔛𑛛𓓔“––™‘™“”“”›‘“•–”””“•—™”‘—•Ž•“–”–••“”𔓒••••“””–’”•”””••“““—”•“““˜”›”˜–”“šœ“”•”””•””—”ž–”–——••“’š™—™“—•–œ“—••—”“˜’••”•–š–š””›˜˜•’““’“”•””•›•”‘”–””“•””š““˜•”‰•“•“›—•””•”•“””””‘œ——””•“™”œ•—•””•”•••š“œ–Ž”””—“”••˜””–›”””—”‹””•”˜’•œ–”–”””””—”—• ›œš””“••”—•”–˜“”“”˜š”–—””””–—˜””˜”’–”–”””‘•”Ž”˜””–•—”””””””•——””––—”—“””•”””—•—”˜–‘•”˜–—”””””•””–”—˜”––”–•”’’”‘•–”•”•›”•––––”˜˜–”•””•™””—–““”•””””–””—–‘””–”””•””˜”–’˜””’•”——””””“–”˜””–—”””•••––˜–—–”–‘””“—•—™–””””—””•–”””–—”””‘”••—•””—–•–••”–•”””””—˜˜–”“”—œ•”™–—•—•””•”•—”Œ—”””””””š–š•””–””Ÿ”™—˜””“–”•””””•”‘ž””—–””•”””™˜”“”•“ ””“”•””””•””’”—“”™”•”•”™š‘”•™”˜”•””š‘š–”˜‰ •Ÿ”“Ÿ•˜””—•–“’”””””””’–•‘””™””””””™”—’™’”™—””˜—””•”–””˜””•”š”—”•—––™™””—””—œ”’—””””“””™–“”””‘””•—”›“‘”””ž—Œ™””•”””—”””™•“—””•£–”—š—œ™–””“”œ––””™””””˜š™”›¡™•–”˜”š”›š”—––””•š—”””””™š•—œ””˜™—”›”ž•””™˜•—”™—””›™’••””•”•”—”™“—”——–”š˜–’”•”••”š•˜›˜”–”™–”•••˜•¡””›œ“•˜•””””•””——•–””˜””””””ž”™Ÿ˜”‹”›š”–›—””””—“”–””šš” ”—”•–•˜––—”•–”•—–—•Ÿ––”””–””š˜•””œ””˜›”›“••””š”˜–•—”•“””””“› £˜™”– •”•˜˜˜•™””””‘Ž™”–‘””””––˜”–š•œ•”””–“’”“™”””“”—“”””•”•“”—–”“•–—””•”•–”””—”•”–•“”””›”””•“”””˜”””•–•’”’”•““–’“”–••‘”•—”–˜”¢’˜™”‘˜”’•˜”•˜˜’’•””–”•“”””•”–•“•””””””””–•’—”’•—”˜””””—™”“””—–•‘“—–“’“–”•—”””——“’”—”š”””–””—”“”””“””’–”••“””“—’•–””•”•”””““•“•–”“–“”•—•˜—“”””’•—•’“‘“”““’“—Žš£—’““—›’’—•Ž“”“•”’“’‘““•‘““‘“’”˜“’›“˜–“‘–—“’“’’—’““’“““–’““–“”“‘”–’”“—”™‘’“”’’“ž’’‘™“˜›’–””š’’””‘“”””“““‘’“““•”™“”•’““’““”“•‘•—Ÿ’™˜”Ÿ’“’““˜’–’“˜“”“””“““’—“‘˜”“›“–’—’““—’“‘’“’““’•›“—•”•’‘”—•’––“”–“”™”’˜–™—““”““–“““•“’”“”–ž”™™””““”™•“’ž˜›”–““š—“•œ•”“”–™”“”““š““—““–™—“Žš”š“““œ˜“˜”•˜™””—™‘”’”“•””“—”œ•“—•›˜›“Ÿ›–”š”›””‘”œ–—™ž”š˜¥“œ”– ”š““˜—•™”•“”““š””™•’š”“š”””””“š”›˜š›““›™’—˜““”“™¡“š””œ•“œ”–““ž˜˜˜˜™”“—“”™——”——š““”—““•”•””˜•”“š˜“›˜’•””˜œ™˜—š””—“”ž””‘›—œœ”“™“”–•–—”˜“”””“”““—˜”””“””•”’“˜˜”•”‘•••“”‘”“”˜›”””““–’”——““–””””””–•““—””‘”•“˜”“•–”’””•“””•”“—“–’–•–“•—–””“““““”–“•”™”•”Ž““”“’—’–””‘””–•’”“”“•””–““’”˜””””“”””••˜”—“”—“Œ‘’”””“—™”™“”•’“”˜“•—“•“˜”“•”“’”–’‘’˜“””–““š—”””˜”“–’””˜“•“••‘˜–˜”””•“”™””’”•”“•””•””–•”“’””“”–š”””•”•”””“••›˜–”•””•”•—””—”’•••••”””•••™•”””•”•‘””š•š’“”•••””•”™••—•””•••••••”—•””“–””••˜•”‘“””•’˜•—””–••‘—–œ”˜•œ“™•••–•”•””“”•””””“”•”••””””•”™”˜˜™”‡•™™’”–”••••••””•”š˜”™•”••–•—”••”•••”•”š”™”“••”••”™””””•””••••”•”“œ”•”••”––••š•””—œ—•—”•ž””•””””””••”˜–“”——””””–—•””–™•—”—”—“–—”’—˜””•–—•”””•–“””–•”––•”––”˜•—•——”–”–––””——™••”•’•””•”—–––•˜––”‘–˜–“š”—•—•”–•˜•˜””•–”•––•‘“””•–—”——˜””””–””–———””˜””””•”—”•—”—˜•——–“—•””””—˜”˜•”——š–•˜–•–––™——”•˜”˜–—”––˜™”””•””“˜“•”•—””˜—”•–”””™”—–—––””––”•”™•—••—•”˜–—”—–––——””•”’’•”›–””””–•“”š—’”—”–”–”—˜“””˜”““––”””““•–“–˜““˜–“””˜”–™““”“”’”“™›””’–”•”””’””“–”——””‘–˜“”›—••”˜”™”“Ž”——™“‘”–“™“•”“›’™”””•˜˜•“”“””š””—“”“”™””””””•”—–š–•”–•”˜’˜””•”•””•”””’“—”•””‘—“˜™•”“’”““™›”˜–•“””’“”˜—–””’“””“’”’–‘–”•›“”••“””’”“—””“—š›˜–””œ“”•–˜˜™‘””“”’‘””š–””””—–”•—””˜”™”™”˜™”“•–””•—•””””””–””™””—™–”“˜”“–””˜—”’”–˜›””—•••”””””””“””˜”–”•”“”–””—”˜””“”–•˜‘“”“••š”š•’˜•—””—–””—•””””ž””˜”’–””™””””””—”“•”™”–“”˜•™””””˜–”˜””•””˜”–”””˜˜›—™””•”••œ”˜˜”””•””’š’””•–””“””˜˜•””””™••˜•”“‘””–””“•”—–“”–œ•”–˜˜—––”””””•˜”˜˜””””—˜•”•–—–—”˜”—”™˜”˜——”””˜˜”””””–”•—˜””˜—””˜—”••”“˜—•””™——”””—•••””””””—”–˜”–•—˜–”“–——”˜”—”•””——˜––”•–””•••”••”””–—“—•–””””˜””™””—””˜””””””•”••”––”—••”–—””””—–”—”””•”—”—”••—”˜—˜”–—””–˜–—–—˜”””—”””˜”””–•””˜–””˜—•””–––˜—˜”•””””””–—••—•”–•–”———–’—””–“•˜˜““”“””““’”›—š“““””’™““›“””””””“““””“““”’”’”“““–”—’”’””“’“““›“”’“””““““”“““’”™“““•——œ’““”’˜“–““•—”’—™’˜‘”—‘•”•’“”•“”“”””“””‘“”””““””’•””“›”˜“–”–—“’““”””“—“”““•“™””•”—“’“’”““˜”’–““““˜“”“““”“”““‘‘““—š”˜””””“š“•”•“”–—””š”’“•Ž“–““—““““”““˜“”””—˜”‘–””””˜”•”œ˜“™–•™”š“——”•””““”””””””˜˜”—””“”™–”›”—–””•—“˜”–—˜””™“’•“””””””“”˜˜”—”™•–”—˜£‘”•”—””’”–•–š—”š”˜ ”—”™›•›””š•”—”–”””””””•“•”“˜””””””–”˜—˜–›”š˜”œ›–””””•””—””’™“š”–”“—––˜–“”“–””—˜”˜——”””””””›–›””˜™””–™””•”””˜–””“–”••””—””•–œš™—””¢“”˜–˜˜“š””•”’œ”“˜””””—’‘”–’—”™”’”–”–’“Œ–‘”“””š”””””˜™”–“”“’™•”“””•‘•“𔕓”””—”””›”“””’“””–”˜–”–•—“””–™—•Ž”””””••‘“™”“””˜•”••”––”“•—•””•””’””––•••“•””””“”•”š”˜•™”••“”•””“““˜–”“””•’”š”–””˜“’’””“–”•”•–”••›”“”–“”˜“™•””‘””–—”˜™•”””›‘–•—”“““”•”“’–”””””–“”–““š””•”–”–”˜–””“”•šœ”˜—˜”•”•”””“˜“–•ž”“”–˜”””””“–”™—”“—•–”––”˜“““•›”š”›•–””˜—””””””””“–”˜—”™”–˜•”˜—‘’ ”“”“”“™••—™”““—˜•˜•’š’—””œ›“—“””“””•””•’˜•““˜””””””š“–”š˜›”—˜“•—”””””–•”—””™™“’”—””––••˜™”’–””™–—–•˜”””˜“”›˜‘””––””™•““”’–”“•˜™˜—•””””””“”’™˜–——”“¡•”›™–˜–—“””•–•“•––•”””•––•––•––•—”—”–•”“—–•”“•–••”•”–”•—–””––•••–”“”””––•—••––••—•–•–••”••”—••—”—–•˜˜•“”›—”—•˜••“”•—–—••˜•••–••š•“”•”––”˜–”••••–•••••˜•”•••••”””•——•—••••”“—–•”•”—–•••••–””•–••———–˜••••”•–––––––”••—””•–š••——•””“”•–—”•••—”–˜—•˜•””•••—•”––”•••”•–•–—–••”””“•”“”””““’•””—–•”–”•””“™““’••”“••–””””””‘”Œ’”“”•””•””–’”“”‘••”‘–—””˜–“”•”””””“•”—‘””“™“•””—š™”™”™””•““—–”—”’™–“””“•–—Ÿ”””“”˜••”“”””””•—•“”“””””“”””™’•“”“‘””–’””””•—”“””•˜”™”–•”””—˜“‘”“•””••Œ–—–Ÿ”””•“”Ž‘–””‘”””˜ “›—””””™”••’•”“”“”˜“”——““—™”—””’’‘––“””””˜š˜”žŸ””““œ–—“Ÿ•›•œ”““š’œ”“¦š˜”“”™ž””””“œŸ”›“”“•–“š˜“–™““›“˜”–šŸ“”—Ÿ—”’“”’””“˜”žš•ž” —›“ ž•›”•”””•“”š›–—”Ž›Ÿ—“›•’œ–ž“”–˜–ž•”“”“”™“”›—›”“™””””””“Ÿ””™–™˜“”””Ÿœ”™“”š–” “—””›™š˜˜š””š“”š›——–šœ““”›““š˜‘”“š–““Ÿœ“ž¢’“””¢™Ÿ›œ”““”“ ””•›—š ™“’ž‘“š˜——•–“”“•”“••••••••••–•”•””••••••“••••••••••••••••••••••••”••”•••–••••••••”••••–••••••••••••”•”••••’•••“•••••–••••–”•‘“•“•’”••”•••––•••–••••••••••••••••••••••–––•–•••—“•••••–•••”••••••••”•••••••••“•–”•••••––•••••••••••••••••”••“–”–•••••••“••••”•••••–•••••••••––•••“—”‹”˜—””“”•™—”œš—–˜”—”–“•–“ —›”””——•””””—š”––””––•”˜””•—““—–”™”—–“””š•””“”“””””–”——’•”™˜–“š–—–—™”—•”Ž“˜—™—š”ž“™š”—™–•–—”•˜›“˜•””“”•–”•˜–”—’”˜”””“””—”™š˜–˜“•”•”œ•””””˜™”—•”–™š“”–””˜—™™—˜””•””—•˜š˜”“””–”“•˜”’”™œ””–””“˜”•”•™–———–”““•”•”—–˜—˜——”•••”—––––“”•”˜˜Œ“•–””““—”˜“š”˜‘—”•“–“”“’˜—”“’”–””“““•˜”–˜”“•“’“–š“—Ž“’•˜“š”˜—š”“–™‹”““””“”“–”˜–’”“›—”“¡˜˜œ’—“˜”““™”•™™”–™“š“•“›“–””˜™’–˜““’““•“”–˜“–’“š””””““˜“œ—˜–“™•”“•””“•”—š“—“””–’™”–’”˜—•™˜”“š““˜“““– “””—““š”””‘—”“˜—““–‘“”—™˜™•™—”•—““˜“”™™˜•œ—”•˜’“š•–”˜œ“”””—˜”–”””““’••“”’–˜•””“–“••““––”““›•””””“—–“›•”“—–”“™™”—”””–—”—””––””’™•”’””””“𔕔”—˜–˜–””š—“•™”–”’‘“—™”—–”œ™”–”˜••’”“””•—™•“””””“”“•“𔓒”””””“”“•™˜™š”™š”—š”””“™””•“”™””•“™”““”‘”•—”“š“”š”“””•““”™“”•‘”””““””—˜“‘”““”••˜—˜˜—”•“””–””™•˜‘—™”’š“”–•˜—˜”“”“•—•˜”’™””””•—”—˜–”—”–”˜–’™”–˜œ””””˜••””•–’•–˜””—–“”™”•–”••—•–˜”—–”•”•˜•”•”•”•””•”š••—–˜š—”–”›•”›”–•–•”–•˜›—”’˜—˜•–”–“••”•šœ“š—””•””””•–––—•”š””•”•”–”—–—•˜””“–’š’”–••—•”—””—–”‘•™–”™™˜™˜’”•˜”––—‘˜™˜”•”””””—”•”—–””š–”–•–•“—•–›–˜”––•”“””—š—™›—”••”˜––˜—˜””•””˜—“––””””•”–”•’—–“–”•”˜•”–’””•––””“”“”˜””–””–”””˜”—›““—•••”••—””˜––“–””““•”•””–“”“—••”‘–—’•”–”“‘”••–˜””™’”•“’™“’””•••–˜”“””—””—”“–’”—”””“””–”•–•”“™—–’””””“–—“–””•—’𔕔”–•–––—”“˜”““–˜–••š“””–”“›—’””‘–””–™”•—””””–••˜••”’–””˜””“—–‘––”—œ‘””•••”˜””—”—•’”–”””””–••”œ“•––”–”–——•”–•”””•””””””•••••“”•–“”•–”—““–••–”••˜””•—‘””””•“””””˜–“•”˜••”——’””•”—”“””˜••–””“•™›”˜”–’–”“—”‘—–””’”“–””••’•“”–”””•“”•”—š—•œ”˜•“™—•”””“–””•””—•”–”•“”˜–•———”•›””“–““•––””””“”’–“”””–””–˜”•”•”“˜•—•˜””•”“”’””•–˜•˜™”—œ–””••–”˜””””•““”—–””””——–”‘›–˜–”–”–”–—”œ––””•––”””””–˜••–””–•””–”””™““—••™”—–’””™•“”–””””””•”——”••“–•”’“™“–”–””•”“–—š””“’™•““’””””˜š”–•”””””˜””—“––“”˜””””””™”•–‘•’”“—”›”””•”–•”–””š•””—”•—–•—–—”–”“•—”–™–—”””•”””—”””™””–•”—–––”“”–—•–•”””””•””•˜’–•’”–„””––––¥˜””—”—›””––””””–—š”•˜š•—”—”—–˜—“’–—”””–—“““’“––•—–“”—–•”•˜”™”–’–—•™”—–˜”“™˜“””””’“””–”™—’——™——“–š•”’—”—“•““˜––˜™” •š•™”“œ‘š”“š˜“––”“•”“•””––—””—””””“”š”——•—’”™˜“’™•”’““—š”–“”˜™”—”—’”˜–——˜•”“–”–˜—–”––˜“””–““š—“•”—˜“”™—”›–•”“””–˜•––”•““”™”“•—˜›™™””š–”——––Žš“”–“˜•“—–““““˜™•“›‘™Œ—”–“”“’•“˜—”““—˜“““““•””–““—•“š–“œ–““™™“““˜•’”“‘™š”‘“’”“•“–“—–“”˜––““——’’“‘”“Ž“—–•“–“–—•””•’”™“”“”••“—““““™““š›™“““š“”“””“™“™“”•“™›“Ž“”“””“–œ“—““ž‘’”•’“–•–—“œ“•–““•–˜˜“˜”“““˜““’˜‘”“‘“““˜–“™‘““’œ–—™—–”“”““œ“‘–™›‘—““š““˜—–‘‘’“”””›˜˜“—˜”””“•–—””——’““—“™”•˜“™—œ”“•–’”““““–””—•”“•–™“–—”•”“”—•˜”•”•””—™˜”’””‘“”“–”š—“–”’––”’–“‘—™””””–””•–”””¦˜•—•––œš–˜““˜˜“••Ž””””•”””¢—–•“—””””“”•”™“›•“˜™“’™˜””””‘š”—“”˜˜’“”””””–————”•’”“œ—”›™˜–““”•”“”—˜””–˜”“•—“”•—”””œ•–™–”““”˜”“”š™˜˜”“••”—•—•”•””““˜˜¥“—“””““•––“•–”Ž•“–“˜“—•“¡—–”“’–’”““““—•”••”“–—““–“•—’“––•–”•–˜““˜—’”““”’“”“–”™•“–——˜—“•–˜”—”˜”•ž“”——•““‰™•’””“–“’•”“••“—”“”•“–•““•˜—•“–”””””“—“š“š““—˜’‘–•“””“—–“”“”—™•”“•”–——–˜–“”˜“•™““”•–˜“””–““•›”“˜—”“••“˜”•””‘‘š•–—•”–’“”˜“‘–”’”œ—“’—”“•––˜“”””“”•š—””•””””––•”›’œ–˜”—”˜”š—””œ–””•›˜”””””—–”—”“›”””•˜”˜•””š˜”•”˜•™””“–“•”””•”””˜”–•”™–˜™œ”››š•–”—””‘”šš—””––—””™•”””—””””›˜–”•””””š••š””™”””•””™”˜—–š›”—”•‘–”””””œœ”˜””›“”’”—””›˜•™šš”“–””œ•Ž˜˜•”””•”””˜””””’””™˜”ž™”“””˜š™–™˜”””””›”•—”—˜™”– •”•—–˜’””•”––””——””””•——”•––”•”–”–“—–”“–—”””–•”””””—••–—””––””–—”•”•”––•—”—–—””–—˜””””•”””—”––”•˜–––””–•””—”–”•˜”–––——”˜••—”–•”––•””—˜“–••””””–””—––•“”•””””””•”•–”••”•”••––””•”•˜”–””–••–”•””–––•——”•–””—–”•—–””””–””•–•””——””–“”•–”•”””––—˜–”—•””–”–––•—–•”•—•”•–––”–””””–•—”–•””””–•—”’–———”—”–”––””˜–•”––—•”•••—”••–””•—–”••”””–•—–––•——”””———•””•”••”–•–—”–•–˜—••“–•˜–•˜•–•”–•——–”š”—–•••”–””””–•“˜˜””–•••””–—”˜••—”•”•••–”•–”—•••”———–••••˜–”–”•“—–••—•”–™–˜˜—••””•–˜”•–˜–••”˜”””—•–•–˜”””””•—•–”–“˜•–—–•”••”••––—”•—””–”—•——–—•—•••“›™Ÿ“•˜””““”••””•šŽ™“–“™’˜–“››•”““•™”“”“”˜˜”–•””•—˜“”˜”—•“•›•“•”•–•“”—›””””””““•”œ–“—”›–›”™•”—–•”–”–Ž“˜––•›”Œœ—•“–’•–”˜””–“”›“–”““”•”””£•““˜””””•”™”›š–›™“˜˜™‹––”•””›š“˜“”—–”—“š””œ––˜—–”•™”“”–•”––—”””—““”•–””––“”™ž“˜›””›–›—•š˜”•”–”š”••š˜–—”–””—•••’•””””—“š”ž•””““—•™”––— ™”˜“–“š’“Ÿ—“”””–˜”””““—˜”š™”““–—“”œ”˜˜““š•“–”–™””˜š””“””‘“”“—”˜š““”™—•”˜—’”•””””™–—š˜”–š™–““”—••”“——–˜”•””””Ÿ””šŽ’œ““˜””””””—”™˜”—”™˜“¢’–”“”“œš”–“”–—“š”—““™—“——™”“–”•˜•™“—•–““”›““••””˜—”“–”—𔓔“——–š—•”•““”š”’“›–˜›–”“š’”•˜––”š“””“—˜“”””““•““Ÿ”—–“”’“–”œ‘“—”””“”‘—”””““”””’““’‘“Ž›“™–““˜–““”‘’š””–—””‘““—””“Ž”˜“”—•™“—“¢šŸŽ”•”’””””˜“‘ž“˜–ž“œ•”œ•œ“”“•—–”““”“”Œ“”›’–““•””””””““š–š”™”˜—••’“”””—™”˜“”›“‘‘”–““”“—–“””“˜“”›“““””—”“”“““˜”—”““’”“–˜“—’””•–•”’”“””𔓛”“•™š—š›”’ ’“•’“”‘‘“”“”“š‘“–’””““”—™” –‘”˜”—“•“”“Ÿ•””““–•””“”“˜œ”““’“Ž˜““Ž–”™˜““—‘”š”—š””“˜––”’””•”•“—”—˜•Œ™”‘”‰™“—’–“™”““”–•–‘”‘—žš’—”‘¡“š”“˜™”—•“”’““–“”™””““””””““”—“šœ“”“˜œ”™š—”“•““•”‘“”™š“–””””™•›–’–”’•”“˜—›™“””—’“™”””“™”“˜™“”’–”• “™™’•”””“”œ””š˜˜›”“˜’“‘“”“›–“”“”š•£”•–”””“—”—”š•–‹—”—”•”˜–”–“””“•˜””““•—›•••“”•—‹”—–”—’“’–•”˜”––””“™•§”“”“”•””–”•—‘–—œ––“”—”—’””–”““•••𙓇‘—˜”–“™Žš””—”’—“’”“”“–””—“•–’”—“”””””›““•Ž•™˜“•—””••••““–“”’™–™”˜•”›–˜—–•””•”–˜˜••—–•”“–“”›–’“”—™“”š˜”˜˜–“”‘”˜———”•’”𔓖•›”˜–”‘”“––••–›””““™˜š”•””““”•”“•””›•”““–‘–““ž”””””•””””““”–“—–”“’––““—”—““’“–”•”••š“”–••”’”“’“”“—”–•‘••—–”“˜–•𔓔–“””—••••“—š“›“–“–›”–““•“•“•‘“”“”’“””š•—“””“”””’”•“’”—˜™“˜š”˜“—““““˜™”’””™–‘—””’”™”•–””““—“”—”“’””™““”˜““’”•”“•“““–—“—“‘“”“”—”•–•””Ž““𔓖—•’š˜“’˜’“—–—–“•“”“”‘ž—”›—””““š—’”‘—‘™”–“˜“’“ ˜™”““–˜”””““—Ÿ”˜•”“—•Š““”š–““˜™”–”–—œ””•›‘•“””•””“˜”—•“—”¡–š”˜›“ž––“—”•’“˜˜”“™” –•“ž”’™–‘”“”’–š””””””›””›‹œ“”™””””““–”›šŸ™”žœ”‰”–“””“š•””“”•–“œ”–“”—•••š™”“ ”””’““”•—““”˜““–—””š—””˜¡“–œ’•”•Ÿ•œ˜˜˜””Œ““˜“”””•žš”“£“”—“˜•—’“”“”—”˜“Ž˜””““”›—”“Ÿ—”“”–“˜“˜—“Š˜—”““•™”””””•”’–““—˜“–”›Œ““—™”—”–•–””š•”’””—””“˜”˜•“˜‘–—™”—–š’“˜“™”“–“—“•–™”Œ—””“™‘’“š””™œ‘–•“”“””’””’•’—“”–””””””˜”Œ›‘—”••“š˜””•”˜““–””™“””–””–•›———””–”“›”ƒ”›—’”””™“”…–‘””™š””š–“ “”””“Ž˜™••˜”•“”“™““–—“™–™”•””˜––˜’˜””““˜œ‘“œ•””““–“𔕗‘–”•“—•š–“”˜””““–—””“““˜›”—œ”“––˜““š“˜•““–™”™”™šš”“–—Ž”““””“”“š“–˜•–•™›—“š“›”™“™““—“™–•—˜”™›–¡“ž’š’˜”“–˜•˜”’““““™“”™•’™““˜””””“”•“š™˜”“˜”“›•𔓔“˜–“•“”—–“•”—“”š˜“–™˜”’›““›•–““— ““”™“““••””–—”“–œ“—‘””’›™—––˜”•”““™““”•š’š›”“™’”™˜˜—˜š“”“”––•”˜–””””•—™”’™–’—”—”–”˜—”‘—š””’•™””””””“”œ–””•–“”˜–”—•””–—”™”–˜˜””šš–•“””–”””“”š™”˜•“–—”––š’”œ”˜”•–”˜•˜–˜”••—˜”“”•˜”””˜—–˜”“””””™”””–˜•””—””””””𔑗’—”•””“––””””•™”™”””ž”—”œ””—•˜™–—””—””—™••—˜’”””—””•˜–””’˜””•”–”’•””•˜–—˜””–•”“•””˜—›•›•””˜””š™˜˜•–””“”˜—””•””””–——”—™—‘•”—”•–––”–—”“”•–•”””••œ”•””””–“””—”——“”––“˜”–––””™—›”””“–”“”–”™–”–Œ—”–”—˜•˜‘””••”—”›•”™–””–œ”“—‘‘•’š”•š›”•–•”“”“–””––—’”””””•””™”›——”˜™•žœ””•••–—“”•”›˜”—”–””œ–š••–”•˜”’™——“š–“•””—“”–•‹“”•˜””™˜”–•”””““–˜—––”‘””˜”“•š—˜–˜”‘œ””–––••œ””•”˜˜—”••””””•”””’•–––”–””•–•”•”””•™•””””•”“•”•””•”œ””—”–••”•“•”””•–””•˜•”•””–••”•”—–•”””••”––‘–••”–”””•••”–”••–”—’•˜•“•””•”•——””””””••™“”•”–”””••”˜”‘•”•—•–—–š••””••–—”–””–••˜•–•”—••–•˜”•–””’•”•––˜”•”””””•™””••””–””˜–•””–“•—”—”•“–””™”–”—”•–•””—””“•””“””••“œ˜–“•𔓓“›™™“˜œš˜š”›““–Ÿ“‘š™”““œ˜”““““œ“•ž““¢›œ“™˜“š˜““™™”—“𙕔”œ•˜”‘“””“““œ”˜˜“›•–𙓛™–•™“›”•’“œœ–—“ “žž“˜•“–“˜“”˜•”˜•—“”“”•““›•“š•“˜“”””’“—“˜‘œ“˜””¦˜š““”“˜œ“š“”œ“š“™”“œ˜›››–““‘“”ŸžŽ‘ž˜•““”˜““–›š”“™˜““——“¡˜“““’’›“™—œ”–”“—““——ž˜—˜“•‘““šœž‘•“”“”—“””——””””••˜”š—––•—”””•—”’•™””–––•”””••–•––””˜–“”–•”—”””•–”–”—•”””–—•”•””–•””–”—–•–•˜•“””—“”•˜•••••”••––•”Œ’”–––”•˜˜˜”•—˜””–˜””””–”••“™•””–”••”•”™”••š–“•––”•——”•••–•”–””––––•••””–•–——”•“”“•—••——”•””—”•”—•””–—””—””“–”””•˜–—––•”••””•”••—™—–—”–—•”˜—–••—”””“•–“™š””““––““ž’š–””“™’š’“–˜“”“”š›””“““œ›”•””“‘š““–™“›”““ž–“““—›““•›“”““’˜“”“™“˜–’–•ž–—“Ÿž–“”“•““’”›˜”–˜”—š˜”“—”•™”–”“’––•”“”““—““™‘‘œ““™””“”““˜“—›œ˜˜“ž’–•’“””“›“—“”™”“””˜’”š”–•”˜”’ ”•™•—“–”“““”˜““–•””—”““ŸŸ“œ“”””Ÿ‘š™—™”•’““–””™˜–›š”’™’“•’•‘’““”““›—–“—˜””““–›˜“˜˜–œ”“““›‘˜•“”–™”“”–””““””—š”•˜”“”–’“•™“š’“–š“›”•–œ””˜›–“•”“–“““•”œ”“—™š–˜””›žš™”—””•“˜——˜˜”™˜™™”—“™™’œ”•™š”˜–”’”“–““–‘–˜“”˜“”““”“˜“˜™–˜‘”œ™¡—–““”“–˜“›””œ˜’˜”–””••™••—“‘˜“•œ–”˜™—•“““•“””•¢““™—“”šž“•”•’“‘–š™—™˜””Ž””›”‘•››™žš”’œ””—–—˜“—“”•”–”“˜—””““™”š”–œ“’—“–“—“—˜“’–𔓔”—””“““•š•™˜““˜–•“˜–”˜”““–—”™”™˜•””œ–”’””•””“•“—™”˜•™–”“•‘š“–“”˜“œ—™–”Ž“œ™”—“–‘‘”“š—“••””‘““™””˜’”•“”š”””““”š“”•”–Ž“–•”™•’”””“•“”–“”– ”—”–”•œ˜š™š””“—““”š••˜˜”“””•““˜š“””•š”“˜Š“ž–”•”“––˜˜•–”–“““˜“”––˜––—”—˜””š™˜™”™“”•“™•’“•—””““–•‘“—š‡š”•“–“œ•“˜”’””“˜š”“““”–™“•““”™•“š“›””“š–“‘“”•ž””™˜™”’““˜””“•“š•””“ž”“¡™œ™’“‘“”“œ“–’›“„——œ“™–”—‘ž“”–“–“–•““““•““™”‘”““—“”“”“““œ—™•‘“›˜˜“—’“”””™›“˜“”™””ž“””“ž”›–“–”“š“”—•’š”””“”–“”’––““””“  “”—’’”•—™•”˜”•˜““™”“›™—š™”›““˜••’––“”’“™–Ž“–—“““““—˜“–”˜™•“•“—’–•“——–““’•—”““’”•–“–•’““•–““˜”——‘’–—’˜“–––”’–™•”“““’•““•“™–’•”––˜“š˜˜–’˜“–’’“š“•˜›“ž••š“•“”˜“”’˜—‘˜•’“‘““•““•‘”˜‘“–““””””–“˜—•–“’™—” —““–””–™“—’“–—’—”–“”š–••–—“‘–“—•––”•””””–““–•‘““•˜““•’“’•“””‘–—–—˜—”•”‘“˜“–—™“š˜““œ““–”••›—“”“”šž˜“™””““”—œ“˜•žœ”–“—’•“’œ””““Ÿ”””“”œš“–•”“˜—–“™œ“›—“”œ™•›”š–—””—˜•”“””‘””“›”–—”œ”œ—ž“—™› ”˜“˜””““š˜— ”–™Ÿ—“š–‘›”””“™—–›””“”“”—““›œ“œ”“›“”””””™“žšœš–“˜œ—œ˜’“”””› “œ“”šš“”•”¡•™™–š”“š“–š—”’”—¥”“”›““˜–•””˜™“”œ˜“£¢‘””“›šœ››œ””’”“ “““—–“˜™”“–’”š–”–™š””““˜œ–“—™““““‘‘•“™–™Œ›”•“•“œ‘“””“’˜”““““•˜”™“”““–““—›“ž•““š–”“““–ž”“˜œ””““”Œ“”“–“˜—”˜“œ’˜“œœ›—•‘“–””Ž“›”•“ž“Žž–š“š”•˜“™““’•••“”““”““•””š““”“”“”“”˜“•˜™•”“œš”‘‘“””““›“”œ–”Ÿ”–“•œ“˜”’”“”Ÿ“”›”•””›“““š“““”“”“’”““žš“œš”““’œ’š—–™”••““›““—š™—œ“š“˜–”‘“•“”’“™œ“›˜““““˜•”“¢””™”›“™’œš“𙕔““˜›”““““™””˜”“—𙓑ž“œ—“’šš”““˜ ”“—‘–””“”“”“™“–›“˜“œš•“žšœ–”““–“•‹“•™–ž““¡•£“£•’™’™““—•–”““”““›““Ž“š““œ“”“”““–“š—›š˜“˜““–—““”“˜š“—“”›—“›”˜“”œ˜—œ™—“•ž“•ž›”’˜œ–“““š““š“”“”–““šœ“›™‘•““œ–”—•œ””““š“““––›““ž‘“œš™—”š“”””—’˜”–—•”””˜–—••˜•–˜”˜”—”’—”––—•”•——••”•”˜’•—•””–™˜”˜“”•’””–—•–”˜—“••––”••”•”••”—”–˜•—””–••‘•—‘”••—•“–”•—˜––•”•—’•“•–”•˜””—–”–˜–”•”•–”•—’”–”•—”••””•–”’––˜“””•“˜˜—••••––”—••——”””—••’˜—˜—˜•””””–™”–™””•”˜””‘˜“•”˜—””•””’––•”•–—•—˜–•”“•”•••—”–˜”–•—“–•™˜——•—”••”•–ƒ”•—”””””–—”—–—’š•–”–“—–”—˜•””—™•””””•—•—”””•–’”•˜•—’“”˜—”•••–˜•”–š–”•””—•””—”——”™•š•˜”—˜———”–”–‹”—––”•”ƒ—”—•–”œ•‘””–•”™•–”’”“””””Ž˜™“”–”””•”•š”––™š—”š›—™—•”•••š–”—”•˜––˜”—“•š—–•—˜”•˜”“•—˜”––’•””˜””—–’””“–””›’”–—–‘•“˜—™—––”“””˜”•–—––›–”•š–”™•—––””””••—•”˜–””””™”—”˜••ˆ–•””••˜“”Š“•••••–”””••–™”œ“•””–‘”›š”›•–””™“—”™–—””“—˜”“”•’•””—”˜™’˜™š•–”™›˜˜•‘”•’–”•˜”˜™”u”˜”•—Œ”–••”–˜—”˜–•”•”“•”•˜’–•””–””””•”˜”•˜•––˜›“™•“”•”•••”˜””˜”“—”˜••—••”••”•™”“–•—””––•”•–”•˜––””–•””›˜”•–•”˜“š˜™—”–”””—”—š“™™˜™”–ž–•™––“”–””••–•–•––••••––••––•––•••–•––•—––••–––•••••–••––••–––•––•••••––•••–•–•••––••••••••–•––•–”––••”•”–••••••••–––•–•••–•••–•••••••–•–•–••••–••–”––••–••••••••–––––•––•–••••••–••–••••”••–•••–•–––•––•••–•–––—••••••”––•••••••–•––•”•••••–––•••••–•”••••–••–—–•–––––•••–”˜••”—“””””™•—”™””’•”˜”–”•˜””“–•””–’••”””––•–˜””•—•”“˜”•–””––•–•—––•”•’”••””•”•”•””–”’”•””‘—‘•”–”—••—”•“••“”“”“™•–”–›•—”•™˜•“••””””—””•”–“””—••”””•–”””•–“”–•”–”œ•”•”“”•””••””“•””•“–“•–š•••””“—”“–—”•••”””—”””–•””•–”‘“””•”’–•”–“•–””””•”“•—•“•”˜•”•——––™””–”–•Ž”––””””–—–”—–˜š™”–”—”™—”š–—””“™š”””””—–•––””–š˜”•–”™•”“˜˜”•”—–˜””–“—””””“”””—””–”˜”˜–•””–š˜“–”—””ˆ”˜–˜–™””––˜•–”•”“œ””––“–—•””””•””–‘”—””˜””””””•”––——˜”—–”Ž–•””””™—”–””˜–”˜”˜•”˜––—––””–”””™”•–—”””˜””“—”””––””š›”—˜—””’–•–•–™”–‘“”™”’•—”•”—”–””—–––––””–“”™“š•““““”•“œ“˜šœ“•“œ’š’Žš’““’–˜“““““›“–””’”™““š“š•““›˜”–“’–š““š–™”’“”““”“˜“—–’˜“–›“˜™“™“•“—“”’“š™—”ž“¢—œ“—–•˜’‘“’’••š•’“•“””““••“ “’š““““““–“œ—œœŸ“›š•–“““”“žŸ“–““—˜’™”™”“ž“•™–•“’œ“–œ•“””›“““™““š–•”“˜–““—”“›“”“œš’”—›“•‘““š“‘’šš’™˜“’¡“™•“—•”“”“”‹•”•—””””“—˜”˜ž–}—”–”–“•”¡–—””’’š•”””•–š”—“””‘–‡”““”ް””š•”œ”˜–‹””˜—•—””’•””•”ž˜””—™–•”š’žœ’•”–”“œ”‘‘“›˜”‰¤š•‘’™Ÿ”•””ž———˜“”“””•””””””•”–””””•”—”¦ ˜’™”–—™†œ—”••”––•˜””„£•œ”™””˜–“––•”’Ž””–” ’š—Š•””˜•”œ•˜””•¢””“¤”“•””““—””—””™””𔓙™‰›Ÿ–”—Œ•”˜””“ª–””’”›˜™’“““””““‘–“›’–—•’““””–““ ”’“””””“’’’“”œ“““’”“”™““”“™‡”‘”””–“““•“”—”““”’”’“””“”“’”™””“•–“’‘““”“•“““‘–“—™–™’˜••˜‘–”•”””””““•”““““““’•••”““““”“™“‘”˜”‘“™•–’’““’”•–“”““š—’–“”““š“•”“““’™”’”“”“’“”’”““””“—“““”““š—”™”“•’‘™’”““”“”–“”—”’’’›’–˜“”’““”“““‰”’”””—™“”–”””“”˜š”˜”™‘”“–””–™—“—•””““––””“““–—””•“”––”“••”˜“’”–”’—”–•””“””””””•”““–”’–”–˜––“˜—˜””“–”–““–•–••””–’“˜–””‘—”•—˜”•”““““•””–“‘•‘””””“••”’“–—š•˜”–•—••””“•“•–””“”˜•“‘“•••––••••”“–”“–—–•”–™“””•“””•‘””“”””–˜”œ––””—–••–••”•“””˜“•••–”’™”“”•“”•••˜˜“””“™›‘“•–””““–”•“™“—“•“–“––•“™——”““––”““”“•˜”••““”•”““œ“™‘’“•—”—”™—›”“–•–”’“““””“—“—–“•›•—““š•š•“—“’–“™”“•˜“”™˜™’—ޙޙ”“˜•’–•’“‘““•““–’‘–‘“•“““•“”˜“˜—•”Ž“š˜–Ž––““””•˜”–“”–—‘œ”–“”˜•’”——”“—“’™““““—œ“”“—“““•’”“’–”“—›“›•“””“•––—•—”““““œ““•“”“š˜“–‘”“–•–”’™“”“”•—”–™””””””–”™”–™”•”“™•“ˆ—•”“•–˜”””””›–•–•””–›–““˜”—–““™™“–”–•™””•—“”””“—”“”›”™•“š“™–™”š˜˜““—”•””•”˜•””𔓔œ“™’“—‘–””””“—•˜”“”“”””””•˜“”—”””””“–”–š—š‘”—•“š•”””””™–”˜””—––œ”—””š•”•—•”•˜”“›””””••”””š””“”‘“”š”””™“”š–“’”‘—™˜•˜š”•–“”™”“•™—”˜˜”“¡””™••”–•””•“œ’‰“––””“““˜•“™’˜˜•“‘“•’™”“”•“““”™˜”““””•–””—““”˜œ“•—“ž‘”“˜—“““”•—“”““’”“”“’”““–”•””–‘–—‘””—•”‘•“””’—“œ•““š“‘•˜“——”“”𔕔–”—’—””“”•“”•““““•”““””“—“•“•™”•’“Ÿ’”“”””—˜“–””Ÿ‘•””š•”–“•“’˜““–”•𔓑””𔓔•““•“““““““˜”“—•“–”•””••••“•”””—”“’”ž”“›““›““•••–’““”“•—”•–••••••–™•“–—•••—••””–”‘–—••–•–•””””–“•––”•––‘•—”•–‘•”•—”™•—–”••š—‘•••”””••—•–—”–—•––•”••’“—•–••–”—••™–•œ”–™•”“––•–•”˜—”•––•••”•••••™–””•••••”•—•–••—”•”•––—•”””–˜”–••–𔕔•”•——š•—–••“••——”“——’”••—••˜–‘••–˜••–“•”••••”•—–˜—–•–—••–••–—š——••–•–•——––™”••”“–Œ”•™””“”•——”–”••”•“—“”—“Ž•—”””—–””“””——•––““•˜”“–””–””“—–”–”••—””–˜–”””“–””“˜”•”•–”˜”—”’—”—’˜”•””“”–••••”–•’”–•–••—””——“—’•”””“•””•Œ—˜““•“””“““•”—™•—’”˜•”•—–””””–™”—“”—•”–”˜””••–•––”“•””™—••––“”“”—””•–™””™”””™š””—˜”””––––™–”’””˜”“”•“—˜˜””–””••––•—””•”—””–™””“”–••“™“—‘–””“•“’““Ž–•”“•™”””““–˜”–’”“”•’“”•”˜–““—•”–”’–“””–—””•””•“”“•”˜•“–˜™’˜”›™˜‘•””•”“˜”•—’—–”—•˜™”—”•š•”““•“˜–”˜””““–””–“—‘““”””””““–”›•›’–”˜›““–““””“‘˜””“”––“—””“”š“—“”””˜“”“–••–”’““”–“”–“—””–”””—“•–’””ž“˜™‘—””’“”•””“–š”™—””Ÿ“”—’”““““”–“™œŽ“–—”“““›“œ“™˜—‹—“š“—’–˜“——’”“’——””“““šš””—’“•š“—˜“˜–““˜—”š“›š–”“˜—’“‘““”””“™“–𔕓𖖓𕙑“š”’“———ž’“‹™™’˜’–›””››“˜•‘“‘““™“”œ”–‘“—”““”“”—“œ™•”˜””–˜•“”•“——”–“”™˜“œ“”””™—š–——”’•“’—›•“™›‘”““˜““š—’”“•™““›œ“™˜”””””™œ•™“•”““š“”–•š–›“•–““–˜•–‘ž“”””˜—“——””““–”˜”™–—–˜“—“•’œ–“™—“”“”—˜””“”“–˜•“—““•••“–˜“™˜”’˜–”—”˜–™”“–—‘“’””•“”“–”•—““™˜–”™–”–“—”•”“—–—™™”š”˜—“–“”—“œ””–™”˜–””’““—”“™’˜—“”˜“””’“”•“—–˜”›“š™—™”•”“”“˜š“—””—•”˜”•””•—•˜—™““—”“•—™——˜Ÿ“”“–“”š˜–”“•˜““—œ“™˜“•”•—”™™•—”–•“”™”–•™™˜–›”™•““––••—˜””””𙓔˜”””””˜”˜”ž•™•“”—“”‘” —•”””›™”””””–“™™”“”–𔓙”›—””™—“™”•˜—•”™–•“””””””–”›˜”˜”›˜˜”œ’™••”—””†”šœ—–™”—œ—”•••œ•œ””“––”–”•””•””™˜’ž”“™””””””˜”˜› ™™”””—˜””””š”–””Ÿ–”—”›””™–˜——œ””—”””•ž•˜•””””—””ž–•”””˜””˜”™“•””Ÿ˜™”œ•”“•””Ÿ””“› šœ”““”•—˜–•“””””žœœ““›””“““’—“––“—””“š“—““Œ”’”““—š””””“–•”›“”““˜—“š—“š”““–œ“•”—•“””–œ“”“““—“”“˜”™™”•–“˜”š–’–”•“”””“—“••˜”•–š“–”“”’””—••—”’“““”Œ“““‘’˜”“—“”””“””“Œ—‘–—”˜–”›”””””“—””œ“”—–“˜“™“”•”“—””””›“•ž–—““””“””œ““™•“”””•”“š•“–“”’””–™—•—›”””“‘“”œ™—™•”“—””––““™“”“”’š‹“––””““•–•”•™“––“–“•‘––““••”““•–““““’–š•–•’“••“•˜“•š‘’•–”•”˜—–””˜’”””‘’“”“–“”—’–”—–•”™•Ž–•™“•““‘“š––˜””ª—™“–““–’—”‘™•’–—“”’”“•”“–˜–•““—””””“”““˜›••““—•“šž””“”’•–”•“”•—‘–“–‘”š•––—•”“•”‘”–—”—–“””•““—–’“”–˜”“•š“™–”•”’••“—••”•’’“—““”–“––”’Ž””—•••”“”•”˜™“•™””““–™™”—˜™•˜”œ“˜’š—“˜™—”“‘™›”””””˜”•–”“™™•“š–”š™”“™™”˜”˜˜”””œ”—•’“”“””“™”–™”˜”˜•š”–•¡“—”š•”“˜˜˜•š”™“™–”“–”•’›””˜””–•“”•“””””—’——”“—”””•““š”›–˜˜”—•”›–˜””””™™“›””›–“–”—•”›—š™™š””–“•——“•˜—•”””›“”•˜“””š˜””—‹“𔕔”š˜”—šš”—’”“—“”ž™œœ•—”’›“”™–•–“˜“””•—––•••••””—”“”•“•”–••”—–™•”’•–•””–••”•””•””–•””–—“”•˜”—’””•—”“”•–™•”“•–•”””•”•”—””••–—•”•”–—™“–”•–•”””—–•”•”–•‘•”˜•“—”˜•”““•—••”•”””””–•”–””–”•”•”••”“”•–“”—–•Ž‘••”•”–”••””˜“”–”•””••”•–••”–”•–”’••–—”””–””––”•”““•”••”—–••”•–••”–—•”•””˜”•—”•—•—•”š””••––””•”•™”’”••””””–˜•””––••”—”—“•—”•——•”–•••””””–‘••–””———”•—”˜’•”–—”•”––˜””•š’”•””•”•”—”™•”–“–––”‘˜•–•™•˜••”””–––•”—”‘“•””–••˜”•–™“•—–””””–””–—”—””–””•”””–”’›”——”—™”™—”••”––”–”•™“•‘”••””–—–˜–””•””˜—‘•˜—•”””–”•–’•”•”””—™”•–”••”˜˜—––•””””•””•›—›™—”–›””•–•—‘—”””“𙓕—””““–˜š“™˜–’”“–“˜’“š“’•ž”“‘—”””“““•™”›˜’“™—Š“”š“™•‘’“™”œ“˜•˜”“œ™“”‘““”“”“—“œ–“™––•–“šœ’’œ“—”’““™•˜š’“œš”Ÿ“˜‘’ Œ™““žš”••‘“’“““““””’–“•“““”““™“•›–™‘”š™—œ›—““”““–“—““šœ‘˜”—“”˜•š•˜˜”’—““˜™’”œ—‹“““–““˜˜”““›”“—–“’‘•”’–š”—™–”––““–“’”š š›˜“‘£”“™˜ššš™““’”••—”š˜””””••™”””•”•”””“”“–”—˜”””“˜˜”””””•””“”””””–”’•””•””•”••”—–•”””•”””””””””””•“”””•˜”˜–•—•™”•””’”““•——”“‘–”“””—”””——“™–•””””—””—˜––””™””””””””‘˜“–“”•–•’““”””””•”—”””“””–””•“••˜”•””•’–›—’–”””“””˜•–”””“””“‘”’™””””“–––––””’””—””’•—“–’”“™””“”’’“•””””™—”™™””””˜—𔓗˜•’”•”™–—œ“—™œ”“”•“”””””˜˜”˜•“”˜˜“”“—”˜”“”™”ž”———””š˜”“””•“•”–”˜””˜‘–˜™”’—‘—’›”˜”’“”—““™“”“—’“””””˜“›””šœ•˜—””“””š””•’’˜’”•””””””™”“š’›’”šš”’š˜””””“’”–””™ž”™”’”””—˜“š™”“–”“——“–𔓔””“”‘•””””œ””—””•“•”“œ—–›˜”””“”˜””“•–˜˜•”““””——™•˜”•”“•œŽ“šš““““–™•“œ”›Ž—“““–‘—•“Š—–““’˜˜”““““–›”’™“’””“”—“›–““™•“˜“–˜š”“–œ–”““–“““““–”“–•›—˜“–žŽœ”›“–“’’“›–••—“–˜›“•’‘Ÿœ““–™•—•–““““ž““š‘‘•’’˜“““”““˜“—˜––ˆ“œš““•”““”“”›“œ““––“œ“–““›••••—“’•““–—š’––—“““”’“š“™““”““œ¤“œ›’’“•š˜š–—–“•˜““ ““‘™—”™“‘š“““••–“““““—“–“–”””““—’”“¡–™£‘”•“–“–“¢”’”“’”’””“”““™“‘›““›‘–“›”𛓓’•”𔑗𔔙–’”‘““”“”“•“š’””“™––“§ šš•š“š”“’“ž––˜ž“¤—”¢“•“’œ””””—”•““““““œ““˜’’’“˜“”””“”˜“–—“””“—˜“£‘’“””“’›”—””’“›”–””›““•˜’““˜“”™–’’••ž““”““’•””““™“”˜›“›””””•‘’—™”’””“““ž“””ž•œ›“‘’“’•–›š™””’”——•”—™””””———”–˜™•˜”˜”™”—˜””˜˜”””™™”””””˜–•—–””˜™””–—”—•””™˜•—”———•”—˜•••””–”””˜”˜˜”™”——™”——™•”—”˜”•“”˜—˜˜˜””–——”—•••”–•”——“™••””””—””—––˜””˜””””””˜”•™–™“”——•”˜–””•”™˜”˜”•–—”—”˜”•˜˜—˜˜™”•—””˜˜•—˜˜–”””˜”””˜–””˜˜””˜—”˜™–••”–˜˜—™™•”•””˜””—˜–˜˜–”•—–”˜–——•˜””•”““•”š–”””””™—”š—˜“˜”•”–“¡””—””””–š•””•”˜”•˜””•——”–˜”˜“””•—•™”™š–””˜’••“”••”””›”’˜”•–šœ˜”›–žœ‘™”š••’”˜˜™•”•——–••”—““””˜™•™–”””””œ””›“˜“”™•””•“”””œ˜•”›”•“–••”””•”––””•”“™”˜”›•”™–•™˜•””‘”–•–š•˜•§”””˜””œ–—•””˜””˜””˜—•••••’”›’™””–•”œ”–˜—”•’š”–”–”˜——˜“›””•”“š—“••””““••˜”œ––•““–“•–˜–“œ•’”““•—””“””–”™”““–•“•™”—”“–™”™”š–œ””•—–”•””•””“™”—˜•˜”›–˜”›™’¡’•“”””•“™–’œ˜”–š“™”š•’š’’””›˜––“”’”“‘””•”˜•’””””””””™““›•ž”𕉛“””•”—–“”“””•”–”–””›–•“™•”–”“™“™–•–””””—“”‘•“””˜–””™•“‘•–”””œ–š–™–””•””–””˜˜‘–—”›•”˜–••Ÿž””•”“’“••””““”•—““•–’”””“”“•“˜”•”““”•””“““‘’”——”“”‘˜“‘—“œ““’•˜“𔕕“””˜¡‘”’““““”“–“Ÿ•“’•–’–“š–•Ÿ”•“•“““›–‘›‘“‘”“’’–’•”“™••”••““““–“”–‘•““—“”“”““š“Ž—–“›“•™”¥”””“”““•“–“”•œ“””•““‘š’•–“’—““”ŽŽ’˜‘š““””““”””“—”“𛓓–‘•”•“’Ÿ•–””—”““•““’œ–“Ÿš““‘’“•’”‘‘““”’“𙓗–“”““–•–““”–”𔕓•‘˜—“‹•—““’•›”““““•š“–›““˜‘™“—˜“›’’’˜•“•“›—””“•š™”‘““”“”“•“™˜’“•–˜’“ž˜˜–“•“•”•†“š“—”–“™—𔓔’’”’“”““•—––’“’““–““šš‘”‘“š“““”’“˜“–”˜“‘“˜™˜ž—‘““““–š“–““›–“““˜“”š—”—–”“”›“’‘–˜’”•’“““•““š––”“—““™Œ“•šŽ–“–™‘™“”˜”–Ž““–“”–•‘›˜“’’‘“œ—•”˜“”“””“””—””””•–“”™˜–“•”–”–•˜—”–•—•”••–••”””•”•”–””—–”——”•“•”—•”””””˜””••–•”””—”•”•”—•”–——–•”•••–””””•’˜”•––“•”‘–—“••’•““™•””•”––“””””””••”“•””–•””””••”———––”•”•‘—”””•”–—”•””•–”–”•””“––––•”•–””•–”•™–•”””•””•–—””•—””—˜”•–•••”˜”–•—••™”””””••–•——–”“—–•––••˜“”•””•›š““›””““–‘‘“–’”—””“œ’—•“‘™’”“”•–”””““›”˜•”““˜•“‘˜“’“““š•“•””––””‘˜“”’“”‘“”“—”˜™“—”™“›“•—”’•“”””“Ž””˜‘”…—–•“••’••”“‘’–˜’”““““–““˜—‘˜““•””””“““” ‘˜“––”šš””””“•Ž”–“”’‘“–“•“”’–”“”“”’š“““™‘“˜•““““”““•“–”“—–“““‘“˜‘•”•––”“–›””’”““”–••–‘”‘›“““””’•“”“jbvkJusg:}z`Z³nGcXFYb’1x{y% -SŽsˆ@X6kz¡T´p‰Y‹ušqDlUq…2s]crv/N>bƒvb†\Œ#D¹ª’9)BS†ZaOf@WiaUZ8‡[_Â`‘šqws‚yrkp|Šmv„FZum^a=FpJdF£Ê$H·_7Z”]‚BŒŠgy2bUf_›c_ixs:VjBTëJ9!"+O`f5)3Ôÿ6Xfnp¡2h( ›¸ 97ML>9Vƒ%R -l‡fE5')<7‘WSq:c¨i};NVQ*µsiMrHB;5W%]1Sd; VNGi4l+#c:`*jZAw•0as„D6a4^j!7ªc aq0=A#)[NZDX:N''£HVM!=PF$†š3^:?0/ÿT…]©\€\ 1$%#z=‡6OM0N=8I9ÓbQ",å#Oln‘LVÿ³@‡‡ŠŠˆCJ¨¸™3¾A% ˜: ‘™¯"…œ¤‹|AQ›c&½—VjA¢¤—1"Í%„Qq8£ÊHš±˜²¿†šMÁ.Ì<$A“cA=[Ĩ›„›:%S~¶JftO¥j<šI—Šß9𮓡t¡!—@>~”€ƒ¤*te?M(Ž˜FKŒ3ŒŸ¢|*@‘.ƒŽ@Q7–w8+ *œ“[Œ¬>[4g™~„q”_˜«v`’z/B†2'~¥Ÿš^9284‰l¨z*¹4P=?@†nj—“ È“{c†††††…†††††‡†††††††††††††‡†††††††‡†††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††Š}Š‹…{~†ƒ{š‡…ƒ—ƒ„„{†ŽˆŠ‡’’‡ƒ„Œ‰‘ŠŽŽ„ƒ‡}‹‹ˆ’Œ†‰•|’‡Ž˜|wˆ‡…’†‰„Ž…”‰•‹z‡wtwƒ”ŠŠ…”x|’…‰}ŒŽc‚‘‚“ƒ‘‹~…Œ‚ˆz{Ž’y‡~ƒƒ„…x‹š‡ƒ…‹€Š†ˆˆ‹u†}ƒ‚‰ˆ”‹„†—|{—‘”ŽŽ”ŒŠ‘‘Œ–„Ž~…‚ŽŽŽsŽŠ‹“‚‡~‰‡ŒŽ‹…“Ž„Œ†‰ˆŽy˜s‰‹d…•€Œ„Š‘ƒ†’xˆ…ˆx’£…€}“—–…’’€‘q –‘‹ƒ“„…Œƒ‚’{|†Ž€ƒsŠ‚ˆ’ƒŽ‡€…Š‘’‚Љ|†‡ˆr–‰Š„‹s‡‡‡ŒŠq€Œ‘‰xŒ‹ŽzŽr‡ˆƒ™†Š‡y‚‚„‡‡x‡‰‰~v‹†€„—ˆ™z–‡x{‰Ž€š‹~‹Œw‘„|Ž€…„„‡~ˆ‚€…‡›‹™yŒ“‰‰“mŒtyˆ†‹}Ž‘…‹šƒzƒ‡”‡†€~ІzŒ‰‘„’–†Œ†o’Ž‰Šƒ‰‚ƒ‘‹‚€€‹““y”†„˜ŒyŽr†}z—Š|ŠŒ~ƒ‰ˆˆ—‰~ˆ’‹…o‘‡Š”s‰x˜™uƒ¬yhˆ‹ƒxuˆ…ŒŠ†£€’}ƒ…‡ƒŠ~Љ~š‹ŽmŽ”‘„”‚…š~‘®Œ†ˆ‚ŽŒŽŠš¨ž”n‰‡ƒ•”j˜‡™³†x‹Ž|ŽŠ…‡ˆ™‹¥‰‘•{°†€€‰~„ޤ„{€”…œnƒu™–€Œl˜„}„Šr„‘~w•zŠ„ƒƒˆ‰o‡™~`Œ„Œ—™n‘ini£€ow‡k|x‡}–„ŒœˆŽt—¡™–€‘¦‰€w……sŒ¬tz•™†|Šj§˜t‡ˆy†“•ap€|q–~zŸ€`w€s]•y’y‘•|ƒƒ®œ™„sj›‡†††‡†…†††‡†‡†††††††…†††††‡†††††††††††††††††††††…†††…†††††††††††††††††††††††††…††††††††††††††††…††††††††††††††††††…†††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††‹ƒ‘vŒ’“ˆ—…Љ‡…‰Ž›…}“Š€ˆz‹Šˆ ‡Ž~y…•……Œ‡ˆ‹Ž{’˜„‹‘‘|ƒ™Šˆ‚ƒ‹†—Š…’‰•…{†•zšx{~t‹Œ‡Ž‘“x‰ˆ’Œ‚“•‡žŽy“ˆ“ˆƒ‘•‹xŠ•y‡€Œ“|‰x’ŽŽŽ‡ˆ~›yv}†›‚‡ŒŒŒˆŽ‡ƒ€‰Š†„…ˆŽ|†Žy—‹Š‹ }”Ž„‰š•–‹š‰€‡›€Ÿ~ˆ†•z™n‚‹|ˆ‹†ˆ‚ŽƒŒ‹†ˆ“…ƒˆ†‰†‰r€Ž“˜y„Šƒ–“ƒ‰Š€ŸŽ–Ž‹†…‘—}‘~s‰…‰’Œ”…Žƒ…~ŠŠ‹‘„…ŠŒ”y‰”ŒŽƒ“‡Œ|ІŒ“‡‹’€ˆ…˜m¡y~‹Œ‹†‰Ž‘ŽŒ~‡}ˆ‚Š‚”•}…‰xt˜ˆ””ˆ‡‹u„‡u‚–€‰‹…Š‹‡“”ˆŽ‹‹‹…ŒŒ†›ŠŽ‹‚|‰‡‹ˆŠŠŠ„zŽŽŽˆ…}ƒ…†ŒŠ‹‹—‡ŒŒ–‘‡™‹ŽŒ‰Ž‹…–Š‹ˆ‰•‘ŽŠ’q‹‹‹‰‹…‘ŽŽŒŽ‘‡Œ…“ކ‡‰n†•”“Œzˆy‘ƒ‹‹†…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††‡††††††††††††‡†††††††††††††††…††‡††††††††††††††††‡†††††††‡‡†‡††††‡†…††††††…‡…††††‡†††††††††††………††††††††††††††…†††††††††…†††††††‡†††††††‡†††††††††††††††††…†‡††…‡††††††††††††††††††††††††††…†††††††††††††††††‡††††††††††††††††††‡…†††††…††††††‡†††††‡†††††††††‡†††††††††††††‡†††††††††††††††††††‡††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††…††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††…††††‡††††††††††††††††…†††‡†††††††††††††††††††††††††††††††††††‡††††††††‘’„}”}–Šˆ„Šˆ‡~‘’’”w‡„qx†ŠŽ’…‹”‡ŒŽ‡Š‹Š†€€|‡Œ‰u‘— ƒŠˆ‰‹}‚…ŠŽ~Š”…”ŠŒ€‚’z•—|‡ˆ|˜€‡‹‰–މ‡‰ƒŽ‚€‡•”†‰~†˜ƒx†y–|v~–Œ†z’Œ~Œ‡†„”ŠŠ‡Œ|‡~‚˜~¢¢‰„„’Ÿv‰š‘¢ŒŠy…{‰”†‹˜ˆ‘ŠŒ”‰”‡”†—•Š€•„zƒ‹‰“˜†{†ƒŒ„›‡Š‚•Ž‹„ƒz‘v…—†€‰€‹†‡’’”t‹‹{…}qˆ‘›‘|‰|Šˆ‰„‘ˆy“ƒ„‰Š‹‡…‚†‘”ˆ–Š}ŠŽ~…‡‡‡ˆŽ‹’…‹v’w‰ŽŒŒŽ–€ƒ…‘™{‹‹žŠˆx€Œ†€~‹ˆƒ„’†ŽŒ€†‹‹šp—›w{‹ˆˆˆ˜—“†€‰€…„‰€“—Œ‘ˆ•…މ‡‹Š˜m‹‰Œn‹†‘†„„ˆœˆˆ–‰€ŒŒ‰ŽŒŠ€‰‚އ{‰Žˆ‹‡’Š‘‰‰Œ”Œ…†”“‰‘”‰Š‰›ˆ‰Š’ŽŠ€Ž‹”‰‡…ŽŒŒxŒr‹Œ‚‚‰ˆŽ“‰‹—Œ‡˜“o‚”‰„Ž‚u‡ˆ‰‹y›u‡ŠŠ“€€—‡‰Œ’ŠŽ‡ˆˆ‡€‚†‰Ž‹“—{˜v‹’ujŽŠ‘Œ‡~ŠˆvŠ—Œ…~‹ŸŒŽy‰œ€•†€‰’‰Œ‰šs˜™tŽŒ|€“‘‹““Š|z‰‰Š}’“‡†‘‡‰ŽŒ……“”Œr„‰}‹u†…“†Ž”„‡‹’ƒ‘ƒ’‹…Œ”€„”‡{‹ˆ€„‘‚’}‘‘••‰Œ‘‘‚‘Š˜Œ†ŒŠ‹Š‡…“‚‘‰’””‘‡“‡ŠŒŒ‘ˆ|‰’‹Šw‘m…Š‚‡‘Œ‡}‰‡Ž…‹Œ˜Š‰ˆ„‘•‹hŠ…‹ƒ‹…‡ŠŽ‡’††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‚…‰ŒƒŒ‹ŒŒ~—{{}|{ukz‡„•ˆ„Ž€|ŠŒ’v…‰{zzŠty‡Ž}“…ˆ‚Œ‡u‡”~—“„‡†”†„|Œ~“j~‚v¢‡†s„~‘”Œ‡Œ’r{‹†s—Ž¡‚‡ƒŽŒˆƒƒ„‚†Š|zƒ…tŠˆ†}‚‰‰‡“xƒ˜ˆ‰ƒ‘~„•zy‹‚w–‘„†–—ŒˆuŽ‚šˆ‚ƒˆ‘‘Œ‚Œ“Ž…‚x”€{Š…ˆw‡ˆ…’ŽŒ™‚ƒ…Œv‹„•}‡”‡{‡…‡~„‘†ˆ†‰Š€‰Ž†‹zvyy‡ƒ“~–|˜Ž“‹„‹ŒŠz”wމ}‹Š‚‚…‡Š“‰Ž‘‹~‚uˆ‡Œ‡‡˜„ƒ’‘z€—{Š•›‡ˆƒ€•{„~†‡‹’‡€’Œ…—‡‰Œ•t›–xˆ”ƒ‡„‰‹˜‰{ƒ}Œ‡ˆŽ–ˆ„‰ˆ’{Œ–‰l†‹‘gƒƒ‹…ЇŠ~–‰}Œ~œˆ†…€™“ƒ‚ŒŠƒ…‘‚’ŒŠ{“{‚Š—‡Žš‰Š‘Š‘Œ™††‹†—‘ˆ}˜Š„Ž•‰ŠŒˆ‡Ž‹Š’‹ƒ‹Š•tr”•ˆ…„“‚‹…–‹”‰Œˆ””€…‰ŽzoŒŽ‚‹‡z‹ˆ‚‡†‰……~‹—ŒƒŒ†~uˆ‰“Œ€‰ŽyŠˆ‚……Š‹ˆ†”Œ“‹•‚ƒŠˆ{™’‚’ŠxЉ”‡‹ˆ„{Ž…„‡u…ƒ„Ž…‡ƒ„|”|Ž™z€‰ˆ„މ†€„“‚‘ƒ††…‘†Œ“…ƒ‡ˆ‚ƒŒ~“†‰‡{‚…}“އŒ‘ƒŽvƒ’“‰ŒŽ…‰‹Š‘‰šˆ‹‹{€‰Œ€„‡ŠŽŽ†Šˆ’“Œ‰Žƒ}~Œ†‡‹‘ˆ‹•”ˆˆ•‹„‘—ŒŠŠ…‡Ž‹‡‘~‹‚ˆ’ˆŒ‰g‹‹††…–Œ…‘ˆˆ‰‡Œ‹ˆŽ‹‹s‡ƒŒxw’ŠŠ‰€€„”t}‡|tŠž‡|¤†—‡‘mŠ}x‰‡“‰Š‰yz‡wˆ‡q€†~t}‰›Œ„‘ŽŒšƒ‚„qŒsz‹š‡Ž†šc|ƒŒo|•œª}€£’’…‰‡ v‹‡…wŽvy~…„¦x}‹‹‰™€…{~‚„˜{ƒ“z€…‡u•€‚ozd}znŒª†–ŒŠŒ’‚žŒoƒ„Ž~œˆ‡«c’†u~x~f¤k–~‘Š|g|†k{}Š“zh‰€w††Œ‰‰ŠxŽsŽz{Œr|‰‚y…ƒ—Œ„£ª‡†‡…y§ˆ„‘mŸŒ‚€‚‰‰w|‘yƒˆw•}j‡’Š~ƒ“‹•‚ˆˆ‡Š„ˆzŽŽŒ•‹…‰‘‚t€ˆ„„‡ŒŽˆ‹Ž“‰Š…pƒ|‰…ˆ„†{‹‘œˆˆ†yŠt}‚Ž…Œ„„“‚Žˆ„…Ž€~‘s–y‰‰Ž‚‚ƒŠ…Œ’‡ƒŒ“Œ†’–ˆŽ–„ˆ“~Ї‚~Š‚uˆ„x‡†ƒŒŒˆ~‹‘‰Ž‹…‹…Œ”‚¢Ž„†Š“€’‰ŽŽ‹“ˆ…†“Š‘‡…Ž‹‰†Š‚†Š‘‰’„‰‘ƒ‰ŽƒŽ‹‡“‡‰ƒ“‡‡ˆ–—ƒ‰…m’’Œ‰„Љ„ŒˆŒ“‹ŠŒ•‰’…{ЇoŒ…„Œ‹‚‡‰Š†††‡…††††††„†††‡††††††††††††††††††…††‡†††††††‡†††††††…†††††††††††…†…†††††††††…‡†††††††††††††††††‡††…††…††††††††††…†††††††††††‡†††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‹“‚}‡ˆŠ„‡ˆŠ|‰‹“‹’ƒ“€‚…‡Š‘…“Š„|{’†Œ‰‚‚‰ƒ|“¥‡‹}„‚‰‹‹…‚‡†„‘‚‘•o”™xЉˆ„ˆ‡…„…ˆ‚Š‹‹‰Ž—“€™ƒ†“‚‹z~†‘”‡u…Šx‰‹“Œ‰Š•ƒŒŽ‹…‹ƒ†‹žŒ‡€Ž„€ŒŠŠ…‰ˆ’„‚ŒŒŽŒ•†„‡ˆŒŽ–’††Šƒˆ†‰’Œˆ”’ŒŽ‰Œ‡Š‹‘†‡ŒoŒ—’Œ…„‹†ŠŽ‹Œ‰‡ŽŒ†ˆp…Žˆ‘…Œ…ŽŠ†Œ††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††’‰ƒ—ŽŠ‘ˆƒ†|Œ~ŠŽ‰•Œ‰€|‰Œ~‹‡ŒŠŽ‘Іx„Ž‹|ˆ‡ŠŽ}‘”œ‹ˆ‹Œ€˜‰…„’ƒˆ†‹•€…‹x‰ŽŠ‡‡t”œx‰Ž‡|…„Œ‡‡‡‡€‹‹‚•˜„‰…—ˆŒw~‹…s‚‘‚ˆx†’{„…‡ˆŽ†“‰’ˆ‚ˆ‡ƒ…¡“Š‚ŒŒ‰’ˆ‹ŠŠ‡‡ŒŒv••ŒŒ’ƒxŒŽŒˆƒ†‘‰ŠŠ„ƒˆ„˜Ž‹‡†‚•‹‘Š•‡’„ˆq“’Š}„ˆŽ‰‰’Œ‹ˆŽŒ††…ŠoŠ•”zŒ|Ž‘”‡‰„ƒ‰†‡ƒ}…‡Œ‹††ˆ‡}‹‡‡‡ƒ‡„†‰………††ˆ…ƒƒ}††„‡‰„†…‡…ˆ†ˆŽ‡‰†Šƒ†z{‚‡†ˆ„„І†‰‰Š‡…ˆ…†‰‚ˆˆ††ƒ…„ŒŽ…‡ƒ†‚††Š€…†ƒ‡ƒ…ƒ‚†ƒ…†††Š†…ˆˆ†„‡††Š††‰†‡„†…ˆ‚…‡„ˆŒ…†‡Š†‡‡‚…‰……ƒ…††‚ƒ†‡€…ˆ„Œ†ˆ†…†ƒˆ†„†…‡„†ˆ‚†‡†††„†…†‰…Š…†…€Š†‰††‘†‚††ˆ…‚……Ї††„‰ƒ„…ˆˆ‡Š††‰…ƒ…„‹†Œ†…‹Š…€ƒˆ”y†€}”‘Œw‰ˆ‰|z”zw“x„~mƒzŠ“‘ކ…~~†—{“„š‡ˆv|}‰ˆt‘‚ކˆ†Œ‰r‚~„‹Š‡‚ކˆ‚gˆ”—…|mŠ‚‡…Š~ˆƒ‹ƒ‡’{v†ŽŒy’‰sˆ†}‘{Š‹z˜†|“›„}…‚ˆx…p’‰‚uw‰ŽŽŒŽ“Œ‹—vŠ~œ‹„Šƒ‚‹Š‰€s““Œ†}{}z‚†‚ˆ‹~Œ‚“’}“’x~“‰ƒ††Ž‘‹‹•…‰Œr”˜…‡“•r|Љ˜•€—†…‰“ˆ‰~’ŽŒˆ€—ˆ|x‡ˆ‹‰ˆ~‘’€Œˆ‚‹‰ŠŽ‡…’‰}‡Ž’’Œ‘|„‚ƒ†‚‰’ŠŽ„‡†Œ‘†„ƒŒ‹†‰…~‹’}¢‹Œ~Š„ŠŠŠ”„…Š‚€ŒŒ‹œu“™z‘“ކ†Œ‘’‡†‹‚‰ƒŠ„‘™€ƒ–ƒ”~}~‡–‡t…Š€‰x~‘„ƒ†‚‘‡‘Ї‡„Š‹†Š‹‹~†„‚€ˆˆƒ„†Š”}}ŽƒƒˆŽ‚‘Š‘‡ˆŽŽ‘‚ƒ“†Ž—–‹…‘‘‰„”†‰‡mŽ’•‡ˆ„ˆŒ‘ˆ‹’‚‹q“ŠˆŠ€Ž{†‹‰†…††ˆ…†††‡†ˆ†††…‡††…†††††‡†††††††‡†††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††…І’™h“Ž“q—˜‘›½ržƒ“•„Ž„v€„’vy–ok«zhŒšr„’‹}„—ƒ˜“t‡™‡Œ{…¯”v‘{k’|~¦˜~Ÿo–»tU„œ~€ž‘}†ˆÂ‘Y„“jŠ€š€¥‰ª}’ž€Šm†Ž{Œ’ª”|o–z—o“sŽ‚„‰…ƒ€’ˆŒln“}‚tƒ{†¦˜š®ª|‘s„Udzž{‡€Š¨a­Ž¬›y“‰„©‚‰–Pq™€s‰–›šŒ‰_z|‘‡€”Šx„}|x‹‡€Œx€l•‡…£qŽ‚{’‘œq†™ŠŠ•~Š›}¡~šprs‹€ŒŒ€‰–…‡Š}…Œ‚‡Š‘‰™†Œƒ‹†‰ƒˆ†Œ†‘…‘“‘}‰‡‘…”‹~‘|ŠŒ›Œ‡ˆ„{‘‹‰‚†ˆƒŠ™†‰Š’ƒˆšw• w‚ІˆŒ„‡„Œ†‰€‡†“†”ƒ„…ˆ†•ƒ„†Ž“Œvƒ•yx‹€ŠŽ|…‹”ˆ‘‹‹Šˆ†‹•„Ÿ‰ŠˆІ†ˆˆŠ‚ˆ†Š’އ}ˆ…ƒŠ‰’ˆ‹“”ŠŽŒ‰“‡‡Ž“ŠŒŽ‡„‰ŽŒ”‹ƒ‹’Œ‰ƒˆn’‘Œ€Šˆ‘†‰Ž‹Š‹‹‡ŽŒ‰‰’„Šˆo‡ŽŒ‰‹€Œ}’…{”‡„”Œ‰‰‰‡‘˜ˆ™Šv…‡€€‰Š†‚‚Ž……’„‡ŠŽ{‰—ŠŽ•€„ˆ“œ‡›ˆƒŒ†œŒ‰Œ€‡‰‹Ž•†•pŒ˜v€ˆ‹…Ž…‰¦”Ž€t†€Œ~Ž€™™~…„{“‘ŠŒƒŒ‹—Œq†‡Œm‹|Œ“Š}†•Ž“yŽ„…š‹ˆ”‚‚„|—‹“Œ|ƒ–‡Œ•‘‹Œ‘Ž•“‡”˜ŠŒ˜‘ˆŽŒ•‘†‹š“…•‡Œ‹ƒŒ‰šŒ†•{ŒlŽŽŒt…†…•ˆ”Ž”‚Œ…‘‹v„‹vx’‘…•Š}‘wŒ…›ƒ†††‡†††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††ˆ†ƒ‡††††‡†……††‡††††‡††‡††††††††„†…††††††††††…†††††ˆ†††††††††…†„††††††††††††…††‡††††…†††††††††…††††††††††††††‡†…†††††‡†††††…†††††††††††††††††††††‡†…†††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††ˆ†††††††††††††…†††††††††††††‡‡‰Œ‰‚Ž‹‡††y††‰ƒ„‹‰‡ŠŒ……ƒŽŒƒŒŒ„…Š‚‹……{†Žƒ‰ŒŽ„y„„ЉЄ‹…}ŠŠ‹„‘ˆ„ޑމ~–‹‚Ž~tЉ……{ƒ‹Œ…Œ„‡x…††…‰‡„ƒ’|Š„‡ˆ‹‰†…ˆ‹„‚……„Šˆ‘z…‡‹…‰‰†—†}ƒ…€…ƒ…‡‡‡†•‡€ˆˆ“™ˆ„†’†…†††‡‘w”…ƒ”}‡‰ˆ“‘Œ…v‰’|‹†Š„€Š†‡ˆŽ‡†‰†…„…v‘|—}‰„z†††‡„„|Š~ƒ„„xˆ…‚Œ†’z’…ˆ‰~……‘ŒŒzˆˆ†…‘ŽŽ†„‘‡‰—ŠŒ‘yƒ‡y‰ŽŒŽ‚Ž{“”Œˆ’~Ž‹…‘ˆ‚‡‹|™Š’ˆz„mz€‰†ˆ‰†Š‰”‡‘•q–yƒŽ„‡†„€Œ‘‰‚…’†–‡Š˜‰†’x€ƒˆ‹r„ˆ†Šx‰‹ŠŽŠy‰ŠŽ‘Ї‡‹‘†ž†‡€‹ˆƒ…ˆŒ‘І†‰Ž‚†Š†‡ˆ’’”Š‘‘ŠŽ‡”ŒŒ“ˆ‡”“‹Š…‰‹…„†‡„‹‰‘‹“p‡—‘ƒ‹’Œ‹…ŠˆŒˆ“‰„‡†p€“‰Ž‹‚x‰‰Œ~Œ}z¢˜…‰Ž~Œ˜w•‰“Œ‚Œ”j‚І€~†Ž‹š‡‘mŽЇ‡‰…Šu‡•œ‹‰Š€x†~€Ž{ƒ‚„Œˆ€ˆ€‡…™rˆy‚Š„†…Œ‹’˜’Žˆ€†ŽŒƒ•}”‹yƒ˜u‘“‰…†ˆwЉ‚‡x‡Ž‰‘ЉŒŒ–”„„Š‚Œ•’Ž›ˆ–†|‡‹Œ„‡Šˆx‹’…‹‹‡†‘“„Œ‡„ІЄЉ“Œ…‰ƒšˆ„‡‡“‘‹‹‚™‘Œ…‹‰”“ŽŠ…‘hŽ‹—‡‹“„‹‹’‡™Š“‰ŽŠ‰o’‡Ž‡…Ž}‡t„€„†„††…І‡†„‡ƒ†…†„…††‡‡†††††††…†††‡‡††††††††††…††††‡ˆ†‡†††††††††…†„†…†††…††††††‡††…„††‡††††††††‡†‰††…††‡††††††††††„††††‡††††††‡†††††††††††††††††††††††…††††††…†††††††††††††††††††‡†††††††††††††††††…††‡††††‡††††††…††††††ˆ†††††††††††‡…†‡†‡†††††††††‡†††††††††††††††‡†‡†††††††††††††††††††ˆ†††…†††††††††††††††††††††††‡†††††††††††…†††††††††††††††‡‡†††††††††††††††††††††…†††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††ˆ†……‰†††††††…†…‡††…†††††‡†††††††‡†††††††††††††‡†††…†††††††††††††‡†„††††††††††††††††††††††††††‡†‡††‡††††…††††††††ˆ†††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††‡††††††††††††††††ˆƒ††††††…†‡†…ƒ††…††‰††Š†…†…†††‡ˆ††‡†‡†††††‡†‡††‡‡††††††…‡†††††„†…††††……†‡†…‰†††‰…†…††††††††††‰††…††‡††††††††††ƒ††…†‡…„††††„†‡†††††††…†††††††††††††…†††…††…††††††‡††…†††††††††††††††††‡††††…††††††††…†††††††††††††††††…†††††††††††††††‡†††††††…†…†††…††††…†††††…†††„†††„†‡†…††ƒ†††‡††††††††„†††‡‡††…†††††††…†„†††‡†††††††††††‡…†…††††††††††‡††…†††‡†‡††††††‡†…††…††‡†„††††††‡††††…†‡†„††††…†††††††…†††††††††††††††…†††††††††††††‡††††††††††††‡††††††††††††††‡††††††††††††††††††‡†…†††‡†††††††††††ˆ†††‡†††††††††††††††††††††††“‚…‡‘‡„‹ˆˆ”Œˆ‹Ž–…Ž‚{ƒ‡†‚‰’ŽŒŽ’‹ƒƒ|Œ•††Šƒ‹ˆˆ|ž‹Œ‹‘†‚Š‚††”‰…‰‡…†‘Œˆ‰–t’›y‰ŒŽ†…ˆzŒˆŒ‡Š‚‘‘‚Œ‚‚”…w‚ƒŽŽˆv||„w†‡ƒŠˆ„Œ‘‰‰‡‹…‘† …„„‡‡…y…‰‹„Œ†|{’ˆ„‚ƒŒƒ‹†‹ˆ“–‹“Œ‹Š’……‡—ŠŒ“ŠŠŠ‰‚‘ŒŒ‰‘‹ŠƒŠn–’Œ…ˆƒŒŠ‹’”‡‡ˆ’Š‹Œ‘p““’‡’}Šˆ…Š˜‹ˆ…|ДЋv”’|„‡‰~}Ž™…}|{ƒˆˆ–„†€Œ—†ƒŒ…‹†‹{oƒ„™…†v‘‘ˆ}xŽn’†Œ‘‰~šˆ„‚‹’“…ˆ…}‡€u™—…ƒ†|‘…Œ„|‰to”Ž‹y•~„‡‹Š’‹‚†„Œ‘‡v†~„‘Œz†“‡‡„Œ|„Š„•Šƒ—Œ‰ŽŠˆ„‹r|Žtu’—‘…„ˆœr‹‚˜‹‘ƒŠƒŠ–“ŽŠŒ’ŒˆŒ”˜™“‘šˆ}’~Œ„Œw‹ƒ‹Š“Žˆ‰„}Šu…ˆnŒ“~{‘|–…‘‹‰‹ƒ„sz‰xЇˆx{’‰‡Ž‡†‹…„„ˆ…‡……‡‚‡‚†‹…††‰…‡ˆ…†€‡…†…†††…„†‡ƒ††‡††‡‡‚‡‰…‡…‡†ˆ†††††…†‡‡†††‡‰…†††‡‡†††‰‡…ˆ…€‡††‡†„…‡††…ƒ†ˆ††…††ˆ………ˆ††…ˆ††Œ‡……†‡‡††‡…†††…††††‡…†…†…††‡‡†‡†‡†€†ƒ†††…‡‡†‡‡†…ˆ†ˆ††‡…ƒ…††‡‡…………††‡††‡†…†‡†‡†‡……‡†…†‡………†††„…†…††††††‡‰„‡…‡†‡……‡††‡††††…††††„††…‡‡††‡…†††††…………yƒ‹Š—Šˆ‹ˆ‰Œ}”Ž”…„–’€m‰†tˆ‡–ŽˆŠ}t€‘‚v…ކ‰t˜—†’“„‚‰—†•u~‰Œ…Œ†‘‡˜Šs~–|‹…x~‹‚‚’Š‘‚‚“„~•š{‹Œ~Š‚’€‘‹‹Š‡vЉˆ„yƒ™’|vЂЖƒŽ‰ˆ‹’‰‹œ’„“Ž€u‚–~„‰‘{ƒƒ‘“ˆ†“‰‡‹–‚~†Ž‘Œ”}ˆ‰•‘–ƒ‹•‹‘•‡„˜–¨‡›|Ž–„”…’l†‘ˆ‹ƒ‰ŠˆŠ‹Ž‡‰‘€Š‘–€•ˆ‹ƒq˜€——y“‚–…ˆ„ƒ~…}‰‹‡Š„††…ˆ•Œˆ}‘Œƒˆ…‚‡|‹†……‡Œ•Œ‚„‰Ž„…‰‹€’‘‘¢ŠŽ~|Ž}ˆ}ƒ‘Ž€’ˆŒ€‹‹‰ž‘x™s„ˆ‡‡‡”ŒŒ~ˆ‰†€’–„“š€‡™}|„‡’‘u’Šxˆ‹Š‚ŠŠ‰~”ˆ‰ŒŒyŒ‰†‘‹œ‹…{ƒ‚‚ˆ’‹ˆ{…‰s|‘Ї“‚‚€Ž„”„‰’‹‡‰|Ž‘}ˆ“‰‘‰‰‘‡‰’Ž–…‹…ІoމЉ”Œ‘‡‹‹Ž˜‚“”‘ˆŽŽ‹…’†q‹‡Ž†ŠƒŽuˆŒ‰†Œ‡†„‡…‡†‡‡ƒ††ˆŠ…††‡‡†ˆ‡†………‡†‡†…………ˆ…ƒ‡†„ƒ††ˆ„ˆ†……††‡†‡†…‡‡†‡ˆ…ˆ†‡Š‡†„„‡‡…†…†‡……†„…†††…ˆ†‡†‡‡†…ˆ†‡…††……†…‡††ˆ…††Š„……†††‡††††††‡………„†…„‡‡ˆ†ˆ‡…†…†…ˆ„‡…ˆ††…‡……„††ˆ…‡††…ƒ†„…††„‰†‡†…ˆ†„‡ˆ‡…†…††ƒ‡ˆ…‡…‡‡‡†ˆ…‡………††‡†„†††††‡†ƒˆ†‡…†‡„‡…†…††‡†††‡…ˆ‡†„‡‡‡‡„ˆˆ‡…†‡„……‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††‡††…††††††††††††††††††††††††††††††††††††††††…†††††††††…†††††††††…†††††††††††††††††Ž…~ˆ„‹‡‹ŠƒŠ}ŠŒ‘‹•Ž}’‚…‡‰‚‚Œ…Ž„’†Ž”†}‡ŽŒ‚•Œ€Š|•ž‡“Œ‰‡€}„…“ƒ„މ€“ˆ†’”vˆ›{ƒŒ‹„Œ…‹’ƒ€‹ƒˆŒ‚Žš…ƒž‚”†„ˆ‰’•Žr…ˆx€“Œ€Š‰€Žˆ‡“ƒ‰…‡‡‡œ’†‡‚v”ˆˆ|Ž‹‚‡Š‰ˆ‘“‘•”‚‹…~‹‡—‹‘ˆ‘’ˆŽ‡‡š‹‘ˆ“’Ž•’‡‘ŠˆŽŽŠ•Š€‚ކ‡o—€…‰†€‡…•ˆ–ƒ–ŒŽˆ†}q~”’‰‰…‘zˆ†Œ’ƒ‹Š‘“‘‹‡Œ‰‹‹ˆŽŠ‰–’{ˆ€vw†‹~Š’ŽŽ‰”Ž‘ˆ„|ŽŽ‡ƒˆƒ…‹Œz’¢ŒŠŠ…ƒ‹€~‹…~ˆ€‰~Š…‹~ˆ‹†€•o“Ÿx‰Ž•ˆƒ…ˆ‹…ŠŽ…ˆŠƒ“–|Œ‰Š“zt‡}Œu†‚‡x‡ŠІނ’Šˆ†‰ˆŠ’Š£‹‹‹…Œˆ‰…Š{Š{‹Ž‡„ŽŒ‘Œ‰ˆ‰…—Ž‘Œ‰ˆ†‘‹Š…’‹ˆ’Ї‡”ŠŽ‡“”–‡Ž‹ŠqŽ€‚‡‘ƒŒˆŽŒ‰†˜’ˆ„’…oŒŽŒ‰Ž{Š‚Šˆ‘‘’™ˆ‚f‹‡‡…}†}‹w—†‘Š™ˆœ{ƒ™ˆ|•Œ’‚z“—n|Ž’}{ˆ†‹…Œ„‚‹‹ƒˆƒ†ˆ„h††Š‹r†‚y‡…™†‰ ‘{|‡ }„ˆ›˜„„ˆ™“š‹…ƒš‚|ŒŒt‚†qŽqŽl˜›‡”£y|~ƒt…“§‘xz‹ƒ…r€‚€ƒyzy–unƒ‚”…€‚~‰…”‰t˜u‘vŒ~Š[’’sz„€sxšŠŒ}{w‡†‹ŒŒ}Z‘p˜“€Œz€v~tr‡š€{|ˆw•ƒ}Žxy•„­o’…„€ ~Œ‹˜‡‡…x˜Žxmˆ{ž††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‹†”r~‚ˆŒŽ–“ˆ†u‘‰Š—Œ‹”‚wˆˆ€‡Œ‰‡‘†…ŠŒ‚ˆ‹{‹Œx•Ž¢‡Šœ‹……‰ˆ“xˆŒ–~‰‰‹‡‚†˜z‰”w~Œ‰‡€†Š•‘ˆ†{ˆ„ƒŽ‹†Ž†”‰Ž˜™‹•‡Ž–Šx‰’Œy‚‹‡‰z™zˆ“–€‡”¤‡ˆ”‡„›wŒ‰‡w‰¢y|Œ‹ˆ€ˆ’…Št€Œˆ´‰“ˆ–œ”u‰ž“‰Žwƒ˜™˜–•~‘…“—Œs‚—Šƒ’|މˆŠŒ‰‘t{œˆ‚І…ˆˆ“Ž™wƒ—”‰†~z”tš•yŒ„‰z}‡ƒˆ–w‰€ˆ’•Žƒ‡Š}|}Œƒy’{‡{t}ˆ‘‘Œ‡…|‘—ƒ‚’І~~ˆˆƒ‚‘‚“ˆ…„|‹„u‰†„…Œˆ†Žˆ~Šx‰Š’ƒ}s‘…‡‰‡†~Œ‹Ž‹‘’~}Œ‰‘|‹~…Ž’ˆ‘~Š|†}’ƒ‹”‹‹”…{}‹vŽŠ’t{†ˆ‹ŽŒx„‰ˆ ƒŠ‹‹„Š}~ƒ‘’Œ„‡ƒw|~‡Š†ˆ‹ƒ{•Ž…“–w|‡‡‘‚Š…Œˆ†„‘„‡z„vƒ‰“t‚ЇˆŒƒ™š”ŠŽ‹ˆŒ‰‚‡‡‹…“‚~s‹‹ŒŠ‚„xm”„ކ‡†††††††††…†…†ˆ††††††…††…††††††††…††††††††††…†…†††††…†††††††††††‡††††††††††††‡†††‡††‡††††††‡†…†ˆ††…††††‡††††††††…†††††††††††††††††††††††††††††††††‡††††††††††††††††††††‡†††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††Ž‹„|z†™“‰€‡…ƒyŽ‚x‚‘€pw‚‡Š‰ˆŠ€ƒ„•ˆŽ‰•ˆ„‡~y“‡‘’…‹ƒƒŠ‹r‡ŠŽ‰‰xzŒ†‡Š„‚’…‡v{|{…zŠˆ…‡„•~Šx‰‰€‡ŠŠ€‘Œ‰Š‹Ž„Ž~|ƒ‚†…ˆ‹‘‡„|ˆ„‹‰|ƒŒ‹‰Ž‡€Œ”s€Š…‹‹Š‰{…‡‡š‡‡‡…“†‘‰ˆ}‹‹Š‰‹‰ˆ„~ˆ‰Ž™‹‚‹}ƒ†€‘‹Œ…Š‚‹‚ˆ†‡‹‰‡‰wŠ‹}†Ž’ŽŒŠ‚Œ…†…‘Œ‚€|…Šz†‹„ˆr’‰„’ŠŽ–Šw’ƒˆ•‘t†Š}ƒŒ‚‚€Š’“†ƒ†…~‰†…ˆƒ…zŽ…wƒŒ„‚†Šy‰„Ž‚…‚‚Œsƒ‰xtƒ›’‹‡–§…˜‘€ŒpŒ‚}‰•–„‚“Œzz }˜|ƒŠ‡ž†‰ƒ‹ƒx€“‘}€”†‰‹‹…‚{”Žw{‘ƒ{„‰tˆŒ¯‡ŠŠ ŽoŒ~‡i‚‚z’„‹¥™ƒvtork…‡†‹Œ™mu~ƒ€˜‰k‹…š™›Ÿl”T€z§ƒ…€}}‰…±…‘„›†Œ|~]‹“u¨…‰q†p²£‚”Šs™‡}‚‰~‹xˆˆ’ˆ‘^|Œw~‚|š›‡Ž†Ž„Œ†‡†Š†……††ƒ††‰…†ˆ††Ž†…‡……†…†‡††…„ˆ‡†…††Ž……†††ˆ†……††‡„††‡‡„†‚†‚…†…………‡‡………†‰‡‹…†Š†…††…†††…‡‚‡††††ƒ†ƒ……†††††††††††††ƒ†‡†‡‡„‡†…†††‡‡„…‡†††‡……†ƒ†……†††††…††…†††††††…‰…‡…††…†Š…†††…†…††…‡†††ˆ†‡†††‡…†††„††††††……‡††††‚†††‡††……†…†‰……†„††††…††††…††‡††††††……†††‰†‰ƒŠ…‡†‰†…†††„„††‡††ˆ†††…‡††…†††‰††††††‡†††ˆ†‡††ˆ‡†…†‡††…†††‡††††‚†††††††‡†…†††‡‰…†‡†‡††…†ˆ†‡‡‰††‡††…†„††††††††„††††††…††††…†…†††††„††††…††††††††††‡††††††…††††††‡††††…†††‡†††‡†††††††‡††‡††††††††††††††…†††††††††……††…††††††††††††…††„†††††††††ˆ†††††††††††††‹‰„Œƒœˆ˜‡‰‡~Š‹~ŒŽ†‹…Š€sŠ„‡€‹‡‹‘Œ‚yŒ‡ƒ†Š‹Žy‹’Šƒ…Š|І‡ˆ€„–ЄЂ‡ƒƒ•u˜¡x……މЅ‹Œ’–‡‚‰‡Œ‡•†Š{ƒ–€Œ}„…Š‹…uŠvŠyŠ„‹€Ž€Œ‡’Œ~€„˜†Žˆ}†Ž†ŒŠ‡‹}‘‰Š‰ƒŠ’†“‡y†ƒŒ…‰Š‰•ŠŽ‰…‹•ˆƒŽ‹‰’މ‹•މŒ„‘˜ˆŠ‰i’‘††Š“‡‡“‰‹‹Œ†Š‰”‹„‰‹oˆ‰Ž‰xŠs‘Š“‹€’†~†•‡ƒŠˆ…ˆ‚ƒ’ˆ˜ƒŠ{{Œˆ|€Œ‹†›…Œƒˆ‡‰‹‘…ˆyŽ“—”†’“ŒŽ‹…‡‹•„vŠƒ†”„ˆx’n‡ y†ˆ‚ˆ…‹‰’ˆ‰ƒ„ŠŠ€”™†‹Š‚u–Ž{”‹‹ŒŠt†Š‡‹xŽ”€‡‹Œ†}‹›‹†ˆ‡‹…Žšˆˆ”~‡‘ˆ‹†ŽŠŠ‰ˆ‹‡‘•”Ž‚€‰†‡Œ‰…ˆŠ”Ž‹ˆŠ…Œ‡•‘ŽŒ””‡’‹‹Š‹ŽŒ‹ƒƒ‰‹–†‘tˆ‰‰‡Š‰’’‹‘‰…ކ‘ˆ…‰ŒŠ‰‹o‹Ž†‰{zˆ††„†Š‰€†……ˆ†…‡‡†ˆŠ†…‡……‰††…†‡…††„‰‡†ƒ††††………†Œ………†‡‹†ƒ†…‡…‡…†ˆŠƒ‡…ƒ‡…‡……‡…‡‡‡††„ˆ†…ˆ††‡†††……Œˆ‚ˆ†‡…†„†ƒ‡„†‡…††…‚„ˆ…†‰‡Š†……†…†‡‡…‡…‡‡…ˆ†‡……‡‡…‡„‡ˆƒ‡‰‡…„†ˆ†ƒ……†ˆˆ„‡ƒ‡‡…Š…„…†ˆ……‡…††…†‡„‡……†‡†‡††ˆ†…†‰„…„†‰†‡„…†††‚ˆˆ„†‡……‡…‡………†……‡…‡†……„††…††††…‡†……ˆ………†„††‡„€‘~‰€‹•‚”xŠ‘„އˆ}†„€‘ˆ‹ˆ‹’”|~ƒ{y‘‰“‚~…Œ‰{Œ—Œ‹Žƒ ˆŠ–z‰Ž‘‡Ž„ˆ•Œ‹˜x•’s‘‰t|Œ„—†y{މŒ~ƒ‚†ŠŒŽŒ……‘y~‹…w…‹Š”›…‚‡„„‰Ž†“‰Ž‡‘’Œ‘Œ‚†Ž}ІŒ”Œ††•ˆz‹”‘–”‰“‡ŒŽ›‹”ŽŽŠ‡Ž”Ž…‘‰Ž’Ž€‹–Š…Ž’‹€ŽŒ‰z˜qƒ‡ˆz‹…}ˆŽ†‰“††„†“€‘ŽpЇˆ‘ˆ‰–•…І†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Š‡”wˆ‚‘‚‘ˆ‡ˆ†“–”’„Š…|‡†„}‡‰‘‘’‚Ž‘—tx…‰’„‰…ƒ‰Ž}‹•š‹“•‰€Œ‹…„v–‹…š‡y‹‚†‘‡„ƒšw’œy†Ž„Š‚’ƒ–…‹ˆ…€…ƒ—‹Ž…~—|}‹Ž†x„„„y‰ƒ†‘Žˆ‹‡‘ŠŽ†’ˆ„‡ˆ‘š„Š’}‰‚~‹Š„ˆƒˆ†„…Ž’‰Šˆ‰‹€ŽŽ„‡Š‰ŽŒˆŒ†“’‘‰Ž†‹Œ‡ƒ†‹‹†ƒŽs…‹‹‚‰Œ’Œ‰Ž‹‹–‡‰Š–…Ž“q‹’Š€Œw†‚‡ˆˆ†‰†‚‡‹„‰‹†ˆ’–Œ‹ƒy…ˆˆƒƒŠŽŠŠ‡‹’‰‚†€Š–…~‰ƒŒ…yŽ“ž„‰‹}Œ€‚‰‡ˆ‰~ˆ‘ˆŠŠ††‹‚|Ž•w‘—zˆ‚’‚Š„‹ŠŒ‰Œ‰„’‘‡†‰‰–{}†Šx‚†y‡‰Šˆ‹Ž€‰ˆ‹‹‹‡ƒŠ‹›‹œ„‚}‚Œ†‹‰•~•…“ŒŠ{ŠŽŒƒ™‰…‹‹ŠŽˆ‹ƒŽŠ‰Š•ˆ†Ž‰‰Œ‰Ž„•†‰ˆ‡–‡‰‘’Š‹z”r…Œ€ˆ‡‡„‡Ž‘‹‡ŽŠ“‡ƒ‘ˆ‰p‘‹Œ‹~€‡ŽŒƒŠŒˆ”s†€—”“€ƒ‰‹ƒ}Ž~w}Ž‚Š}m}~‘‚‹‰†€‚•|ކ“€‰{‹u–‹…’ކ‰„‘‹s‰…ŠŽ~|‚Ž€z~h‡‹“‡„Œk†‰ƒˆuŠ…Ž{‚‰‡’y|ŠŒw‹’Š{ˆz…‘~’€…z‰x‡””ˆŒŽ‹‰‚~t•‡‡•i}ДІ‘†•{‡‡Ž†‰ˆ…Œ‰†w†“‘‹z{wŠ…ŒŠƒ‡”Œ†Žn{†…‚‡y‡ƒ‘‚†„Ї’m—‚ƒ™{…˜”p‚Œ‹‹™‘Ž„{‹“І„Œ”’~}—€y}—†‚’z‹x™x”“‡†††††‡†††††††††††††††‡†††††††††††††††††††…††††††…†††††††††††††††…††††††††††‡†…††††‡†††††…††††††††††††††††††††††††††‡††††††††††‡†††††‡††††…†††††††††††††††††††††††…†††‡††††††‡†††††††††††††…††††††††††††††††‡†††††††††††††††††††††‡††††††††††††††††††††††††††…††††††„†††††††ˆ†††‡…†††††††††††††††††‡†…††††††††††‡†††…†…†††††††††††††…†††††††††…††††††††††††††††…†††††††††‡††††††††„††††††…††††…††††††††††††††††††††††††††††††††††††††††††…†††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡‘……ˆ†”|„Ž‚‹Œ€‰‘’‡Š‰}ˆŽ}‘zŽŠ‹Œ“‰€Ž‘’†‹‘…Œ˜ƒ}ƒƒŠŠw–Ÿ†‡Œ†{‹”‚•‚‹…Ž…””‚y”’ƒ„’u›“t‘‰}€ˆ€‡•Œ‘‡w~’Š€“”Š}Ž•‘Ž…Œ‰x„‘’‘w‚Œ“Œxƒ‡‹‚Ž„~••Ž’†–‚ŽŽŒ•‡Žƒ‡‹Ž•‹‹‘Ž’”‰ƒ…––™‰ˆŠ“‰Š—“„‹•‡‰•„”{†Œ“‡†’ŒŒŽ‚œŠ‘‚ˆ™k™l‹“‡v“’‹€z„“‘ŽŒŒƒŠŠŒˆŽ†t…‡‡„І…Šš‘‹Ž•uŒ‰z”›‰€‚{†ŒŠ~މ†‹„‚Žy}ˆ‘…‡…‰•“…’…‘’ƒŠ‹‰†„‘’Œ…€’…‹‰‘•Ž—ƒ‚ˆŒ‹•–’†‰‘Š|‡‹p–”x‰z‚…‹w†“Š”…}€ƒ‡|ŽŽr…‚‚u™”›ŒˆŽ‹€’ŠŽ…“Š…‹Šƒ—{•€Ž—‹‘•€’ƒ”ˆŒŽ||Œ’‡™žz”ŠŒ‚ˆˆ‘‘‹„„•ŽŒ›Œ”‘‹Ž—ˆ„Š‘€“‘‚‚…‰‹‹Œ}‰Ž‡|›s}s†ˆ“ІŒ’€†‰‰…„†‚††Œ„wx”˜’‹Ž|‰ŠŽŒ‹|†‹¨nŒ‡›ˆ‚~†”y‘~…†’›zƒ„ƒ{‰„…‚}‚Š–•޵ޒ|ƒ†‰ƒŠ}€‰p‹‰—‹„އw™Œu s{Дލ„­|’n“Œk|†‡’~z…}q‚—‹“…¦„t‰~œw™„ˆ„l’}sŠ‹~œw†–ˆz‡‹˜Š›‚u¥‹ss}jƒe›{‰~s‹j…”†›¢…µŠ‡›£Ž„›ƒ‘¨ž­‹†©\ŽzŽ‘kfh€œt†~„gnƒs€t‘“ŒeŸ†€‡‡™…’o‚y‘…‚sˆzž‹€{”Žˆ|z€w‰”mŒ}¤‰\q˜ƒ}˜s–БІ‡††††††††††††††††††††…††‡†††††††††††††…†††††††††††††††††…†††††††††††††††††††††††‡†††††††††††††††…††††††††‡†††††††††††††‡†††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††‡†††††††††††††††††††††††††…†ƒ…‡ƒˆ…І€‚‰‚€„~—ƒ‡‹…€}…ˆ‡†ƒ…‚‹ˆ„z…ˆ‹…‹w…„ˆ‰Š–‹„‘„‚ƒ’x„‰š‡~‡Š”ƒ…•†‘‹‡‹“‡…‚‹‡€‚ƒzƒ‹zŠŒ“„Š…u}‰ŒŒ—œ•ƒ‚€•‹…‚„ˆŒ„„ˆ|„…ƒŠ‹‘…‡ƒ|‰„‹Ž…qŠ‚‹Œ—„މƒ“‡…{|„’t}”†v|~x‚ƒ„ŠƒŽ‘w—t‹s~Ÿvx‰œŽˆ‹‘–‰{‚œs“}„‹—ˆ‘Š€‚‚†Š{‡…†|‹‚|ˆ’‡—€ˆ†…t„š}Œ……|‹‹›–†††‡†††††††…†††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…‡†‹…ƒ†††‰†ƒ†„‡‚ˆ††‡…†‡†…‹†…†„††…†ˆ†‡‡…††‡†††‰†„†††‡†…††††…†††…„†…†‹†††…††††‡†Š††…‡††‡…†††††‡†‡‡‡††‡††…†„†††††††††††…†‡†††††‡ˆ†…†††††„…‡††…††††††††…†‡††…††‡†††††††‡††††‰†††††††‡††††††…†††‡…†‡‡††…†††…†††††††…††††††††……††…††‡†††††††…†…†…††…††††‡†††††…††††…†††‡‹†…މބ‘…І|ƒƒ€„Œˆ‚“†{ƒƒ‰Œ‡‰‡€‚ƒ†‰ƒ…ކ}„ˆŒ„…‘†ˆ|{ŠŽ‡‡Šˆ‚†„j‡…‹ƒˆzu‰‚Ž‚ƒ˜‰‘‡‘x‡Š„zЄГ€•ŠzŠˆˆŽŽ„’„ƒŽ‚r††…ŒŒ}„‚ƒ“•€……’‚uƒ—†„~‡‰‹r…}s…ˆuvŒ~›ƒŒ•ƒ‹™…‹‡”l‡~Š“q”˜Œ~“‘“„ŽŠ‘¨|ƒ‹}}“Šœ„ˆ‚€z”‰‡–‰‡ˆ„‹}„~‰nˆŒ…o–xyŽ„x‰—…•Žƒ‚wƒ‹i†…†ƒw…•†……‡…‰†††††…‡†††„†††‡†…‡†ƒ…†…„†‡†‡†††††††††…†……„†‡ˆˆ…††‡…††††‡†…††„…††††††‡†…‡††‡…†…‡†‡…†…†‡†ˆ‡††††††‡†„††…†††‡†„…†††‡‡…††††ƒ†††††…†………††……††††††‡††……†††††…††††††ˆ††††††††††††ˆ†††††††‡†††††…††‡††…††††††‡††††††‡††††…ˆ††††††††……†ˆ†††…††††††††††††††††††††††††††‰…„‡††‡†…††…‰††††††‡††‡†††…††††††…††††††††ˆ†……†…‡†††††††††††…†…†††††…††††‡††…‡†‡††‡††††††††††…‡††††††…††††††††……††††‡„††‡‡††…†††††‡†‡†††††‡††…††…††††††††††††‡††‡†‡††‡†††‡†††‡…†††††††††…†††‡…††††‡†††††‡†…††††…††…††††††††…†††…†††††††††††††††‡‡†…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Ž‰Ž‡’‘ˆˆ‡Š~ˆŠ‘‹˜Ž“‘€~‡†ˆ†’“ˆ‘Œ‘—ƒwŽ•…ŒˆŠŠ~‰žŠ‰”„‚‚„Š}Š…†“†Œ„ƒ€Œ…€Œ”tœy‹ˆ‰‹‰}Ž€†‘‡{‘}‘”€{Œˆ”ƒ“vˆ‰‘“s€ŠŠwŒ‡ˆ†‡‹Ž‘‡Œ—‰’Žˆ›Œ„І‡‚…Œˆx}‘}Љ‰‹’‚‰~„ˆ‡†Œ‰‡”‘’–’ŒŒ—Šˆ“Œ‰”–‘ƒ‚‹‹ŠŒ‘ˆˆ“‰„”‡r‰†…ˆ„‹‰‹”ˆˆˆ“Žp—„ƒŒ„…ŠŠ†††‡†††††‡†…†††††††††††††ˆ††††…†††‡††††††††††‡†‡†††‡†‡††††††††‡††††‡††††††††††…†††††††††††††††††††††††…†††††††††††††††††‡†††††††††‡††††††…††††††††††‡†††††††††††††††††††††††††††‡†††††††††††††††‡††††††††††††††††††††…††…†††††…††††††††††††††††††††…††††††††††††“ƒ„‘€™–‡~ys†‹†vŽ‹†Š’x‚…|{ˆŽŒ…‘Š‘Œ„‹‰’Œšƒ€ŒŠ‹…‹ˆŠ‘–ބЕކ…ƒš›ˆœƒ€‹‹‰””Žƒ“މ†|Œuš•x‘|~‚‰{‡ŠŽ‘…y}•‚†~ƒ‚ws~~—œ‹˜…‡†Ž‡}‡‰‰…•’…‚Š‘v‰œ‰ƒ‡Š–‘‹ˆ…|‹‰Ÿ€–˜‚“Šˆ“„ƒz‰™…Š”‹‡…y‘”’Ч‰…’Š‚‚Œ‡‹‘Œ€ˆ‚ˆƒ‡–€…„‚Š”ƒs‘Žwlƒ†–„’“’€–Šˆ‡ƒˆ‹…‹†{~œ”ŽŠw~Ž—ˆˆŽŒ…{†‹‘†‹‹Š‹”•Ž’‹Š”’vŽ€‰“†–Œ’Ž}wxŽ”„‚ƒŒ‡…wŒ“ Š‰€‰†€ˆ~‡Šƒ“‚Œˆ„€ƒ•r‰˜|‹„‚ŠŠƒ‹‘‰…Œ†…ŽŒˆƒ˜ˆ•…”}‹}ŒŒ‹‰ƒx‚‹‹ˆx‹Œ‹‡‘ƒ‹…ŽŠŒ„…ŠˆŽ™‰‘†€„ˆ‰€‡Ž‹ˆ…ˆŠˆ„„‰…’Ž…‰…‡‡ŒŒ‹†”‡Ž€†ƒ“‹‰ŒŽŠ’ŽŒˆ„•އˆ•Œ‰Š‚p‡‹Œˆ„ІЋŒ‹ŒŽ„‘…‘„Œ‡‹ˆq“‹‘Ž‚Š~ˆ‹‚ˆ†Œ…††‹„†‡‹†‡‡„…€‚†…‡ˆ†ˆ‡†€††„‡‡„‰††‡‡††ˆ†…†‰„„†‡ˆ‰…‰…ˆƒ‡ˆ††††…†„~……„…‡††‡„ˆ‡†ˆˆ†…†‡„†††††…††…†ˆ††ˆ…}…‡††…††‡‡‡†„†‰‡‚†‡††ƒ†††„……†……†……„††…‡…‡††††„…………†…„†††ˆ†„‡††ƒ†ƒ…†„†ˆ††Œ††…‡†…‡………‡……†††……††…ƒ†……††…†‡†††…††„‡Š…†……†ƒ†……„†ˆ…‡‡…‡†††„††…†‰††‡ˆ††…†††„††‘ƒ‹‰†‘Š“ŽˆŠ…Š}˜Šˆ•“y’|x‹‰‹Š‡”‹‘Œ{‹€…‡ŒŒˆ‘s‹Ž™Ž‘Š}„‡‘s„†‘…’‡ƒ’„…”sƒ›|‹‘ƒ‹ˆŒ’‚Š„„Œ‰„‘šz„ƒ…~•Ž‚•‡‰‰‹vŒŠŒ„x„“Š€ˆŒˆ‡–—‰ŽŽ‹ŒŽ›‘††‡ˆŒŠ†‚‹“„…“”…†‹‰‹Œ‰ˆ†‡‘‘ˆ‚‹ŠŽ˜‰ŠƒŽ‹ˆ‘’ˆŒˆ‹’‘Žˆ‰Ž‘ˆ‰‹sŠŠ†„…–ˆ‡‹‘Š‹‘‰ŽŒ‹…ˆo‹‘‹ŽŽzŠu‹ŽƒŒ…‹‹Ž‰‰‡•„Œ†€›‘ƒ‹‡“ƒ„s‰ƒ„˜~……‘“‚ŽŒ–}‚“ˆˆ‡€‹’Š‡Šˆ…•Œt„v˜y†lƒ‡ƒŒŒƒx‰{o‚u{rŽ~…‚‹Š–†‘}z€€ˆ‡|™€††˜ˆx‰wš‰‡‰‰†‡w|„…p“‹—‚ˆiŠ…}yŒƒ€Š|„—‰ ˆ…{ГЋ•€šœ–ŽŽ‚Žˆy‹…{Žw™…¥’wvts„|އ†Œ‘‘’„€„•ˆ€~|–jy‹|yŒw‡ŽƒŽv”v†}†ƒv„Œž{€x‚ˆ„ˆ™‰’‚~|Œ•ˆ}{‰Š„†}v‚z†s…~‡ˆ‹‰…‡”‚…Œˆ…‰‚}w‡‹„…}Œ‚…Œ‰w„…ž…€†‰†‡~‡ƒ‹–‡‰„Œu‡†{™‰‰{ˆ~ŠŽ‡ˆœ’wzЉ~ŒŽ…ƒ†‰‹’„‘€…Œ„ˆzy~ƒ‚…‘„‰‡‹‹}†s‘ŒŠ‘‰†‘Šˆ”‚‹wx“„’Ž“€…Œ““{”Їˆˆ„ЂД}‡“Œ‡‹Œ†‚††Ž’†‚Š„Ž{‹Œ‚•ŠŠŽyŒ‹‡‰†Šƒ‘ƒŒŒ†‡~…‰„t‹‚†Œz{ŽƒŒ~‡‚‘ƒ…‰Ž‡†ƒˆˆ‡’‹“Œ™Ž„‘ЇЅЇŒˆŠ‹‡”‚†ƒ‹’†‡†‰Š~Œž‹ƒ‡†‚ˆŠ‰‚…ˆ‰†‡Ž€–˜wŽt€ŽŠ‡‚Š…”‡‹…‹†˜{ƒ‘‰‡—{Œz‚†‹“w…Žx‹†‡ˆ‚Œ‡‘ˆŽ‰ƒ…ŠŠ‘‹œƒŽ†~Š€Šƒ†Œ€ƒ…€†Žˆ‹‡ˆŽŠ‰†“…‡‡Œ‘•‹††Œ‘ˆ‡ˆŽ’†‹Š†Š€‰q‰„‹…’‹’‰ŒŠ‘’…Ž‹ˆ‹qŽŠˆˆ‹†Ž{ŠŠˆ‡”vy–€”„‡‰}ƒ‘ˆƒ‘‰—€’’€‰Œ‡ˆz‰‚Œˆ–w’•”‚|~ˆ‘†”‹ˆ’Œv„ŽšŒ„}“‰‹ˆ~‰ˆ‹˜Ž†‚€‘‚’•vŽ z†ˆ†‰ˆ…„‘•‰ƒˆ…‹”‚Ž–y‰~€˜ˆ‡Œ‰Ž‹v‹•‹xƒ˜ˆˆ‡‚“ŒŽŒ•‡ˆ‘‡…‡Œ“ˆš‰‘}„‹‰Œˆ‡ƒ…š‡‡{’“‹‘‡~‡‘ˆ’…•Š€”‘ˆ‹…’‹–ƒˆ†“‹Š‹Œ„‹’‘’†‘‚Œm‘”‹‚‰…’‡‡„’‰‰‘‹Š‹’Œ’oˆŽ‘€ŠzŽŠ–†††ˆ†††††††‡†††„…††††††††‡†††…†††††††‡†††††††‡†…†††‡†††††††††††††…†…††††††††††††††‡†††††††††††‡†…††††††††††††††††…†††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Š‡‚‡”vy–vt„Ž}›…‚Œj‹}z€¢…Œ‚‰y—‰’u˜u™v‰Š}ƒ‡”“z—”ƒ}gky‘}¢~…–‡”…„†‹€ŽŒ~u‘{}}}„tˆ‡ŠŒ†‚ˆ€ƒ‰•z‹šq”{z“‘‘•‰ª„y~uˆ€w|Šƒ|œŽi†…š’€…q¥ŒxŒŸ†m|sާ‰”‘˜¢|n•|”€{›}wvŽŠ”“•—‘s‰™ž¦‰f„„€¨–Š|ˆ–‡Ž‰’ކ•ƒ„ˆ’o–{•ƒ…ˆ—˜œŒ˜‚{•Œ•‹yt’‘…“•~Žv“~‹~xމ€z‹••ˆy…‰‡„†‘|y€Š€m‡‰‹ƒ…†€‚}”†‚€†ƒ~€Œ‹€‹‹ˆ„…ƒv~“ˆ“ŽŠ‚‡Žˆ„†‹‚•‹ŒuŽyŠ‚~”ƒ‰‹ƒ„†“•x€ŒŒu‰Œ~†„†z‘Œ’„‡‰Œ‹ƒ|‰z‡„…ŽŒ‹‡ŠŽ~sŒŠ…’|І€†~Ž–vz‘…—‹…‘ƒŽŠ„‰‡–‹†Š…‡ˆŠ’ŒŠˆ‰‹ƒ‰•…~ˆƒ~„~…—‰‚„އ‰z‹ƒ’’Ž†ŠŒs„Šˆ†Š‹•”‡‰„‹‡Š„Ž‹‹ˆ‡€ˆ€~|‰„Œ|‘vŽƒ‰Ž„‰~•m}x¡€œŽƒ€“…ˆg“€ƒ‘YzŠuh€Œ’Š„‡…‘’‹‰~”‹d‹yŒ‚•z‰ƒlœ…’‹’……€|ˆŠv«„†g}rP‘o|Œ†“e‰‹b‘˜‹k”wx”‹pˆ€z’˜ˆŽ›‘›…”ƒ‡ƒ}€~y{€ˆ}…“|’˜š}œœ„}|uƒ”ˆ˜•‡…‡ž€’‡’„v‚‚„ƒ’€‡‰ˆŠy˜s‘|‹ˆ‹ ™ˆsx}‡”’Œ…‚—†x•‘ˆz_…‘”“€“¢i˜ˆ‚ z{‹~„z—…vw˜†“‹w˜€†šw—”ƒƒƒ…„|~Œˆ”‡ˆwŠ™vxšŠ‚„v„ˆŒ–”ƒŽ“{†‚”{Ž€™‰|€|„›†’‹zŽ‹ˆrŠŒ~Žˆ‰Ž…sqzŽ‘r‘’—“†€“xŽ{ŽŽ‡†‡n“‡ŠsrŠuƒ‡‡„ˆ“š¡Œˆ‡•Ž”€Œ}Œ‘†’ƒx”‹Œq•j~Ž{Š{‘™‹}‹Ž“t”“ˆw™–|x~‘qv†“‹„slŠŽ‡”‰‰™Œ–˜”€ƒ€v~•“ˆ‚†Š~s“x‰u}„|˜“|~ˆ‹™”x™›|‰Ÿ~ƒƒ{“ˆ|‚}Œšk†–”vˆ€€n’k˜…’…‹Œ}„‰‡‡}‡‚„}‡††‰…†Œ†„Ž…†ƒ€„‡ƒŠˆ†„‰…†‡€ƒ…„Žˆ……††Š…‰†ˆ‚†‡Ž†‡Š’…†‡„‡Š‰Š…‡ˆ†„ƒ‰…ˆˆ‡…ˆ‡†ˆ‡ˆ†ˆ†‡‹…{†}ˆ†……††‹ˆ‡†…‰†‹‡ˆ„‡Ž„†…„‚ƒ„~†‰†Œ…Љ‡…‚„…‚‚„„ƒ‡…ƒ‚‹†ƒ‡‡†Š‡…‚ˆ‚ˆ„†‡‰„†…†…†‡‡‚…‡ˆ††Š„Š„……‰„†ˆƒ‡†ƒ‰Œ‡ˆˆ†„„…€Š„‡††…ƒ„ˆ‚„‡Š††Œ………†‡†‡ƒ†”‡‡„‡ƒ‚……‚„€Š‡u–‰w„”†˜v•–’’‡€v‡…|‡Šˆƒˆo’y“oŒ‘|}“ˆŒƒ•‹‰Œ•…Šœ‡„}”ž’}’˜Š‹†Šv“•†‹šnˆ›v†Š†‚ƒ¤“™†o‡‚Š”–˜|–’‚‡‰~•’•ŠxŽŒt„}‹œ‰‰„–ˆ‘“…œ‰‹Š”“‡Ÿ‡Š‰ˆ‹’†~ŠŒ‡”{—’†Š“‰ƒŠ•“ŽŠ‰Œˆ€†•‰“€‚‘žˆ’Œ‰‘ˆˆ‹„˜~˜•m‹ŽšˆŠ‹ˆ‚‚Š‹“ˆ‘ˆ’Š™‘……q{ŒŒ„’Šˆ‰†‰‚‘І†‡††††††††††††††††††††††††††††††‡†††††††…†††††††‡††††††††††††‡†††……††††††‡†††††‡††††††††††††††…†††††††††††††††††††††††††††‡†††††…†‡†‡†††††††…††††††…††††††††††‡†††††…††…†††††…††††††††††††††††††††††††††††††††††††…††††††††††††‡†††††‡…††‡††††‡…††††††††††††‡††‡†‚…†‰’…Ž}ˆ‘‡”‡š‡Š’ƒŒŽ‡‰„‘†‹Š‹‚Œ’†ŒŽ~Ž›†ˆ‹‚€’¡†Žˆ}Ž€‹€’ƒ‡…ˆ‡‚Ї…‹Ž}š’p—›xŒ†€Œƒ~‚Œ‘‚ˆ‘‡‚‹’‘‡•ƒ–‹‰’‹z}”–v„‘ˆ‡y†‘‹…–‹ŒŠŽ‘ƒ~‰’‰ ‹‹ƒ}’І“‚…Ž€”–‚‰ŽŒ‘›~|‰…‡‹ˆŒˆ••‘€Ž‚‹ƒŽ‘…’…’Œƒ…Š„˜‡ˆ‰“‹s”“x‘‹‰}ŒŒˆŠ‚ŽŽŠ…‹Œ‡Œ’†n‚ŽŒ„Š’Ž•†‡†ˆ†ˆ‡††††‡††††…††††††‡†‡†††…†††ˆˆ…†ˆ†††††††††‡††‡‡†„†‡††…††††††††‡†††††††††„‡†††…††††‡††††††„†ˆ††‡††‡††††††††††ƒ††…‡†……††††ˆ†††††…†‡†††††††††††††††††…†…††…†††††††††††„†††††††…†††††††‡††…††††††††††…††††…††††††††††††…†††††††††††…†††††††††††††‡†††††††††††††ˆ—†„Œ~ˆƒ}‡‡‰‡€‡y‡„ƒƒŠ€ƒ€Š†Œ‚‡…‡€‹ƒƒxŠ…ŠŠ„††Š‹‡†‚ˆ‰ƒ†‰…„†…ƒ}…ƒ…ƒŒ‡ˆ‹‚‰Ž‘ƒŠ~ƒˆ™‡ŠŠ‰†ˆŒ‚ˆ„‰}†‹„Š‚…†„ЋЀˆ‡Š‡zˆˆŠ†ƒ„‚„‡‹ƒ‰‡‡‚…uŸ‚„v†…z”„€…~Š…‰Šƒ„‰“…„†}~‰†‚~ƒ‹v…ˆƒƒ†…€zЇ‡ŠŒ—…„…xˆ~–„•„€ƒˆˆ}Œƒˆ…‰„އ‰„‰‡…„€‡‘›vˆ†‰‡„–†Š‰Œ†“ƒ‹†{‰Ž†Ž…ƒ†k…pŽŠ“|Ž‘’‚‰“wƒwƒˆ€Šq‹|‰„€{”Œ‘‹“š…wˆƒt‰‰™…“z’”ƒ„z‘†s‰–„މw‰ƒˆŒŠyrŠŠƒ}…YŒp”’‡€€ŽŸ¸‘•š|—–Œˆ{€}wpƒžo—‡Š~—‰|‰„„Œwƒ~’Œq€£†eƒŒ¤‡|vŒƒ…‡zš‘–Œw”yz“ˆr™}€œ•‚t—oŠ‚šy’m•–†”‰“’tƒ‘ž§š¯’~{{u‘ƒ‚zˆ{|xŠœ›xƒ“……w…o}ƒ‹yœh’Œou}“Ž‹{œ‚„r˜‹˜{€‹x‚˜‡‡†††‡††††‡††††††‡†††‡…†††‡†…††††††…‡††‡†††††††††‡†…‡††††††ˆ††‡†††††…†‡††‡†‡‡†††„††‡††‡†‡††††‡†‡†„†‡…†††††ˆ†‡…††‡††…†‡‡††††…‡††…†††…†…††††‡‡ˆ†‡††††‡‡†††††‡†††††ˆ‡†††††„†††††ˆ……‡††…‡‡†††‡…††‡††††‡‡††‡……††………†‡††……†††‡††ˆ†„††…†…††††††…†…††‡†††††…††‡††††ˆ†…‡†…ˆ††ƒ‡’“ŠƒˆˆŒ‡ƒp„‚‡‡‰„w{‚ŒŒ…‡ŒŠ†Ž‹–ˆˆƒ‰ˆ€‰Œ†}Ž‹ˆ‡xˆ•ˆŠ„„€ˆ‡ˆ„…Œ„†Œˆw‹xމx‚zˆˆŠ†Š‹}ƒŠŽ‡~‰’‡„‚•ˆˆˆˆ‚…‰‡}†ŠˆŽ‡‡‹‰ˆ…{‡‡‘|‹z…‘†•‹‘‚Ž†Ž‹ŠŽ‡ˆ–‹‰ƒ†ˆ’…ƒ†|††ŠŒ‰Ž…‡‹y…Š’‰‹Š‡‹ŠŒ‹……Ž‹~”„ˆ‰‚Ž€mŒ‡‹ŽŒ”Œ‰ƒŒ’…‡Ž‹ƒ‡ˆ†ƒŽ‡ˆ„x˜ƒŽ‡†“„ˆ€„€ˆŒ‡Š‡‰€…ŒˆšŽ†Ž“†y…‡…ƒŒ†‡ˆ‘Š”‹‰‹‰”‡‰Œ‰Šv”‹Ÿ‡ŒŒ‚„Š…‚x}‡ƒ‚Ž„“‘‡‡‚‚“u‹–}ƒ††‡ƒ‰‘……І€‘…”zy‘Ž”{‘•‘u†–‹y…Š€yƒ‰Žˆˆ•“„„ˆ•‡˜‰Šˆ‚xŒ—€ˆŒ‹•z”‹‡‰‡“}‘˜Œ¡““ƒ‡‰“ŠŽ€ˆ†›‘ŠŠ…‡“Š‘‰€ƒ“Š„”‹ˆˆ’ƒ‰uŠ™‚ˆ‡†€y‹‡–…„•…‚v‡rЉ“›z‹‰‹„ˆˆ“ŽŒ„‹…„‹…‡’ƒ‰‰†’“•Œ”…€}‡‚ŒˆˆŠ‡Œ‹•…Ž~Œ€€‡‡„ˆŠ{‘¡‰‹ŠŒ{r…{‡…‹ƒ‹z„„Š„…–”u–vŠ–š†{„†”‚ƒ„‹…ˆ’†‘™~‹™„Š—‹…‚‘’…t†’Žw…†‹ƒ‚‰ŽŒ“ƒŒˆš…‰Œ‰„¡Ž}}…ˆ‹††„’…Žƒƒ~‹’‹“‡‡ŒŠ„Žˆ„†Žˆ€‡’„}…‰”…Š“‡Š’ˆŒ‰‹‘‹‰Œ‹‚‰p•“Š„Žƒ…ˆŽ”’ŠŽ‘މ…‹†p‰„ˆƒƒ‡‹‰’‚‡~Žˆ•€…”z‰†Œ•Š‘‹‡…„ŠŽŠ‹†•“€x†Žw{‡Œ˜“ƒ|Ž‚x†’šŒŽ‡{}…‹Š•z’Š…Š‚Šˆ‘…Š‘{˜y‘‹u‹“|Žt“Œ‘†}‡„‰–}ƒ„’}ƒˆ‹xyˆ‚nŽƒ‘”‡~ƒ‰‹“‚“Ž˜˜x’}|‹Œ–‚‚‰‚”ˆšŽ‹Š‡‘…•ƒŠš‹˜Š„Ž‘”}††ˆ•‹‚“‰„‰Ž„ŠŽ‹y}”vƒ‚‰|ŒŒŒŒŒ…”‘‡“މ‰•ˆ•g™ˆ‡€|…‹ƒ”Œqˆ…„„„‚|‡“Šz‰Ž‡ŠvŽ„ƒ‰yŠ„s}ˆ…ƒŠ„~…y—‡…ˆ‡{Ž‘†‡‹yŒŽ††‹~x‡Š†“yˆ‡‘Œ‚zpˆ†•Š|w‘{‹•ˆ‡ˆy‹Š…ƒžˆ—ƒ†Š‘€‘”€Ž}~‚’ƒ…—„ˆz‘‡z€ŽŒ‰‹“†‹p‹“™ˆ…‚}†‹‘’‰š~ŽŽx†Œ‘……‡ˆŒ’‡‰•‚Œ’Š„ƒƒm†Ž„Œ…ˆ‡‰’€ƒ†ˆ†‘‰‚ƒ‡•‰ˆŠˆ—†ˆv‹€‹˜‡}nŠŒ‹‚•˜†Œ‚‡‡|”‡‘‡†‘‚x‡………wm’’І††††‡†††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Œ©‡•jjy‚š§‹št°„›™~•{{¤~–‚‚‡z|™—r…‹…n‰„~{vn†“•sŠw„‹…’€~xdŽ€g]všzb™iryur˜¡—y…¢­l”r’¤Z~ŠŒw{z†q}oe|q˜u•|€’y{Ž…†•˜‘Œ¡yh¬kpªŽ~‰‚^{tut›~¡v–sŽ‹ƒv£i“–z¨eƒº[•†„zƒ…}•o Š‹ƒ“|}|v¦lvƒ‘†fe~qŽœtu…–ˆœ¥w£iwŒv}}‚“~¤‡•š€‚¤jžŒŠ‹e£‘~˜œ˜ƒ‹|‡‡‡‚k¤}—w…‚£ŽŠƒˆŒŒ‚y‹~‚‡}q…‰Š’‰Š…ƒ…’Ž„„‰g†x—Šˆƒ‚ŽˆŒ‹|‡u„އ‡›|p}†r‘{Ž‚‘’|€’v“ˆ}‡}‡ˆˆ…ƒ–‚‡†‚މ‚Š™uƒ„‡|‚yŒ‡ŒŽ†‚Š~††‰€–r‚ˆˆ‘…ž‹‹wŒˆ‡„…‹Œ”Š„…~…‘‰€z‰ˆ‡…ƒ‰”‡‹•‘ƒ’xkŒ‡†ŽŠˆ€Ž‰~ƒ‰ƒ“v…–‰„ˆv‰Œ‡{””‚‹€ˆ‘†„‰†Ž„”‰…|ƒs”}”|‰–Ž‚‡ŒŽ…‹ˆ…|””‰‰Ž“‰†…ŒŠ†{€Ž‚‹’Š{Œ•‘•‡‰}|•~{|£†„v’•†ŽŠ”Š‚““„x†u˜Ž†’Š€“—„—…“rœ•|‰†Œ|‡|x”–Ž}Œ˜‡„~Œz•y‹‡wƒ‹’‰mw‡‡ƒ‚wŠ€wƒ‰”’}ƒ›˜‚‚œ‹‘Žty|„o‰‰‘€¤‰y‰…œ‡”›Ž£”‰š™qžƒŸ‰yŽŠzŒª“{‚‹ƒ™„Ž…uw‡„„}•–’Ž~ˆŒ|‹p™um†‹‹rŒˆŽŽ’‘ŽŽ‹ˆ…g…‡Š|‚€Œ•‚‹‚€‘‡…}„}‹™•z„š‹…u™€v„“wƒ|oŠy‰Ž‘€z„–”’}ŒŠ‘„~}}~‹{—‘‹ƒ…zl‚Ÿ‚™Š„•|‰zƒŠŠ„‰…‹ƒ„Ÿ‡}r†Ž{•‰™w€šŒ‰}Ž—~‡~„ˆ—Œ™€wzŠŒ„€~…އ‰€‹zu~Žš„Šuž–†…‚”“}„•‡œˆ‰”›€‘Ї„‰–—}Їpƒ•“‡„“˜Œ‡—~„‘‚€ˆŒ‹}“Žv{ŽŒ‰€–’ƒuŽ“¥„‡{kƒ‚ŠŒ‹‘šˆ˜‹„‘Š„‹–’Šzƒšy~~ƒœu‰m”›—w‡‡ˆ†„‡ˆˆŠ‡ƒ†‡‹‡‰„‡Š†„…ˆˆˆƒ†‚†‡Š††ˆ…Œ…ƒˆ†ƒ€‡†Šˆ‡†ŠŒ‹Š†‡†…ƒ†‰‰…Ž…ƒ{|‡ˆƒ‰Ž‹‰…„ˆ†‰‡…†ƒ†„~ƒ€‹ŒŒ€‡‰…†ˆˆŠ‰‡ˆ†‹†ˆ‡†Œ†‡ˆŠ…‰„‰ƒŠ‡‚}€„ƒƒ‡|‚ŠŠ‡‹€ŒˆŠ‚‡…†‹ˆ„~}‡z„Ž…‡‹‚†‡ˆ„‚‚‡†‡‹‹‡ˆ‹…‚Œ††‡‰ƒˆˆ‡†…„ˆ„Š‹ƒ‘‡…ƒŠ‚Šˆˆ‰†}‡ƒˆ„‹€ƒˆƒ‚‡‡„‡‘ƒ†€„‹Œˆƒƒ‡ˆˆƒ‰ˆ‡…„Š„†˜ˆ—„ƒ›•“}‹Œƒ}{’~z†Œ~|€o‹€ˆ”‡Ž’І€Œ”z‡{††{~Š”…{{’ŒŒ‰„‹ƒq„˜„–ˆˆ‹ˆŠy‰p‹ƒ†‘‚’w‰€ŒŠƒ{ŒŽ•‚‹—|€“‡}ˆ–‹•s†…y‘„€‰††…’€„€ˆ}|y†‘‘‡’rˆ–‘‰ˆŠ˜|Ž˜w‚•‰Œ‚†ˆ‘Šˆ•ƒ€ˆ†’€„…}ˆ‹ƒŽ‰Ž’‘—xƒ‘„l’އŒŠ}–“…„Žˆ‹†lˆ„ˆ¥ˆˆŠo††Œ…ƒ˜…”‰ƒ‡‹†‹‘’Œ‰Ž‰‚ƒz”„ƒŠ‚q‹j‘—ˆ‚†–„Žˆ~‡…€‡‡†Š…—vކ…Šˆ†„ŠŒ‰Œ‰‰…„ƒ‰‰„„‰ˆ„—‘ƒˆ‹†‡Œ„„‰€…ƒ‹}ˆƒ‰{}ƒ…}“‹Žˆ““ƒ‹ˆŽ‹…•‰‡…‚„ƒ}|‰†Œ……†„ƒŠ‡zƒŠŒ~‹€……†ˆŽv‰…‚ƒ‡‡–†‚‚Š‚ˆŠ…„~‹…‡w„…ƒŒ‹ƒyz‹~Œ„‡…ƒ‡‡„~ƒ’‹†‚Ž”‚ˆ‹‹‚ƒŠ~ŠŠŒ†Ž‚‰ˆ~…„ƒ€ƒ}‡ƒ†ƒ€yw„}†‡ƒˆŠ‚€ƒ|…vƒ€†|ˆŠƒŒ…’€…††ŠŠˆ—„‰†ƒ‹‰ƒw†’€”…‹‚†‚„‡yކޑŒ}ƒ…‚„y„އ‚ƒ˜€z{xŠŒƒ†‡‚‘|‘Ћއ®‚‡š‹…v‘‹wz„‰‡Ux–‘›£‹~~ˆ|•“}}~w‹z‡v‘„Œ…„†”“~š–Œ–ˆƒŠ€Žˆ…‹•zwˆ‘‹u–‹—ƒƒˆ”’—•‘ƒ…¥”ŒŒ”ˆŒƒ”…“Šƒ‡z„uy•…‚~€–¢‹r‚q¢†‘€…}€’„„®|›™œŠŽŒ}…‘—zz‚•‰“Љ~•…”ƒˆŒ~nr•t¢‚ƒ“x‹™‡‹|v‚†už‹…†Ž‚¨€‰¢•„~…{–”¡}…‚…†„~}q‚…}|zp‹Œ‰™…‘zƒ…†•zvŽƒ~yˆ‚}vމ„•‹|m‰{r{›Š—“}‹‘Š€–{†”‘މˆ„‹yŠ€šyq’…vŽ’‡t|‡—y“Ž{ƒŠ…’ˆ’~~ŠƒxˆŒ‚‚‚U–Šˆs’–†’ˆ‰‘’}u‰”±‡™“€˜†©…Žx–…‘‘z‚‚y„Ž‹‰‹‘Žœ„Ššt…‰‹¨|ŒyŽ€‹†€˜†–€|Œ†‚›€Žšut~‚~–’}‰„‰‹†„‡‡’‹y}o~v„…‚†u’”€Š–Š•‹xˆ„‹ŠzŠ~Ž‚Šˆ††‹~Œˆ}‰Œy‚‡“„…Œ‹†Œˆ“}zŠ‚„œ–‡‹†‘Š{‰€€ƒ’Œ‰ž}’Ž”z{˜Œ‰“‹†‡‡‡p‡Ž‘‰‹}xˆ‡„ˆ†}‡~‚‡‚…˜Ž…‡’•|…ŒŒ›~‹‚wŽ”~ƒž~w}‡…|„ƒ•˜…}†~zš~”‰„‰˜‡”x—Œy‰ŠŒŒ‡}‡‡}Œm{“‡†”‹w‹Šˆ‰”‘|€Žx’˜~†€‡€…ˆ}h~ƒ„}…ЇˆŠƒz‡‚|{†”‹|Œ{—…{Œ€‡Š¡€}{{ˆz“‰•“‹‚…vŠƒ”‘‹…v¢Œ‡rv|‚…|“x||’…ˆ|g‡}“•Ž}ˆoŒ‡Ž‰„}•ƒŠ›“’„–•Œ—Š‚y‡“|}s…’’‹‹‰ƒ“‰z}‘„qˆl~zxˆ‘~q€“ˆ†tŒ‘}ˆ~u€’†œ‹‰„€‹sz}—‚zŒ„ˆŒ|z‹…’ƒ…•›”‰p”{‰„y~„Š‹Žx‹‘“s’}¥‡ŒŽ€ƒ“™‘œ‰Œ€Œ}š„”ƒ}‰x‹’ŒŽƒ‰ƒ›‚ŽŠ“„†“”†Œz’ƒ}”ƒ‚‚Žv˜‡‚“žy}‹†˜{y|~o|ˆzˆ’nˆr•–†“†}†††‡†††††††††††‡†††††††††‡†††††††††††††††††††††††††††††††††††…††††††‡††††…††…†††‡†††††††††††††††††††††††††††††††‡††‡†††††††…††††‡††…†††††††††††††††††††††††‡†††…†††††‡…††††††††††…†††‡‡†††††††††‡†††††††††††‡‡†††…†††††…††††‡†††††‡†††…‡††…†††…†‡†††…††††††††††‡†…‡Šƒ‹†‡…‚‡†…††‡†‡„‡‡Š‡†„‡††††…†„‹††…‡†††‡†‡‡†††‡††…„††††‡Š‡†‡‡†‰…‚†…ˆ‡†††ˆ‡†…ˆ‰‡†ƒˆ‡‡…††‡‡†Š‰††„†…‡…‰†ˆˆ‡……ˆ†‡…‡††„‚†…††ƒ…„††„……„†……‡„…ˆ†‡…††‡†††‡…‡†††……†ˆˆ‡††…‡…„††„‡……………††„ˆ‡„„†ˆ„†…ˆ………‡††‡‡‡†‡„†…‡†…†††‡„„†…‡„††„„‡‡†ˆ…††ˆ…†††‡…†…†‰†„…ƒ†……‡†……††……‡…ŽˆŽ|’|“’†’‡…Ž‹Ž˜•Ž‹zƒ†€€{‹Ž‰ˆ‹“’}ŽyŠ“r|ދދx~…wˆ—›‹ŽŒ€}•˜…†–‚ˆŠ–‰Œ‰{Š•‡’‹˜s–˜yŠŽ‚”‰••„~~Ž€ƒ€˜–—ˆ€†’Œ‰„ˆ’„u…‚Œs…‰ˆƒ•š…Š‰‘†Šƒ‹‹‹ˆ‹”™ƒ’’€ˆ‘…„„†ƒ†}”Ž€„‚”—Œ•Ž‘‘ˆ‹’”…‰Ž‹“„‡„ކ“Š“†–‰}“†ˆ‡†€”Œ„|žp~…ˆƒŠŽˆŒ‚˜Ž‘‹’ŠŽ”Šˆ…›ƒ“iŒ~€†~†„Œ…€ŽŽvšt‚{ˆ„‹‚ˆ““’‰‚ŒŒ|‹{…Š„’Š–|‰q‡–wŠ™Žˆ‹‘zŠy‘•y„–~Ž}}“Žˆ”wŒ‰Ž’Œ‹‰Šˆ“ŠŠŠ™r—u„~Œy˜—”‰ˆ|t…‰‡–€}€‡“‡z”‘l‘‹h‡‰‘‘Œ†ˆˆ‹‰Ž‡—Ž…˜“ƒ—‚Œœ‹€‹—Љ‡‹uŽ„˜“”•ޕޔ†œ‹’•ŠŽ“‚—•Œ‹ˆ’‹Žƒ”“‹|†™Š€š€”r~†€†‰“Š}€•‹ŽŽ–‘Œ€ƒˆz—‹i…‘w‰…ƒ‰ˆ‘‹”Š…€…~Š…‡ˆ‡††}‚І…†ˆ€„†††‡†‚ˆ†…„…ƒ„‡†‡†……Š„‡ƒˆ…„‡‡ƒˆ„„ƒ‰‹†„‰‡…†‡‡‰†‹Šˆ‡ƒ……††ƒˆ†ˆ…‰†…ƒ‰ˆˆ‡‡†„ƒƒ†„……‡…††„„‡†ƒ…‡‡ƒ†…‰‡‚†††…‚‡†…ƒ†ˆ…‡‚„‡„………ˆ……„ˆˆ„†……ˆ…„„Œˆ‰ƒ‰ƒˆ‰„„†‰†‚‡ƒ„„Œ‰„†…†Š†‡‡ˆ†~„‡‚„Šƒ‡ƒ…‰ƒ‚…†‡‚‰„†‡ƒŒŠˆƒ††……†…†„ƒˆ‹…ˆƒ†Œƒ†ˆ‹…‡„‡‚ЉЅ‡†„ˆˆ„…Š~Œ†‘ˆ–ˆ‰ˆƒ‰…‹‘ˆžŽ‡Œƒy…‰ˆƒ…‰–…ŽŽ‹„ˆ‰‘…ŽŠ„‡‰w‹„‰މˆŒ‚Š…‡‘ƒ„z‘‚މƒ‡˜vФz‚ƒŒ€ˆƒˆ’‘–‰‡ˆˆ’„‘™}ƒ„‰‚•zŽ‚‹„ŒŽ‰uŠ“wxŠ—‰Œv’Œ‡™‘†‰–„¡ŠŒ‡ˆˆŠŠ†ƒ†„„Š‚‹’•‹‰‚މ‰‰‡†““‰†ŠˆŽ–„„‡ˆŒŒ‹†‰‰Œˆ‹‰ˆ™ŒƒŠpŽŠ‡†ƒ‡ˆŠ‡Š‘‹…‹•”Š……oŠŒ†‹†t€Š†~ˆ†ƒ|‹ŽŠ•Œ~yŽˆ„‘‡‚އ‹„•„€ƒˆ€‚Š€’ƒ…ƒ|z‡„†‰‡—~ƒ†‡‰ˆ‰†„ƒ‚†„„}€Ž˜ƒny‰ƒŒ†‰…Š†Šˆ–ŠŒv…’‹—ˆŒ‚yŽŠ‚‹t’z†Š€y†…€††‡vˆ†˜…|Œ‡€|v‚™~Šˆ€‡‹{„’†ˆ~‡‚†‚‘|„‡Š‰†pŠŸ‚‡•†‰“ˆi‡ŒŠ‚€…“‡Ž|“z‚‹‹’{ˆ‚Љ€…ƒ’†ƒ‡‹‡všƒ€zs‚•Œ…–sŽ~‘l†„Ї}Œ{ƒŽ€šŒˆ†„}‡‚u‘ˆ}™u–ŒŽ’…|“‰ˆ††ˆ{s‹~‡…„‡ˆ†Œ€‚ƒƒ…‡‡Œ†„‡‹‰“z’ƒ†~Žšƒ‰‹Šƒƒ‘‰Š‚~Šy‡ƒ„{’€‰‚q„”„—‹Ž€ƒ~†„ˆ„™ƒƒ~‰ƒ‡‚ˆ‘~‹Šƒ~‹‡ˆ«Žv„…’Š‹ˆ’‘‚…uk…€‚’ˆ…j{†ˆ„‰’šŒ|{™|…¡ˆˆƒŒŒš„w‡Ž¡z‘’‰s{І€v¡Y}†‹sŠ„y€†Œ€™yˆxys’…ˆ•Œ‡|„Ž}o„|Œ~‡q‰‡ƒp‘ˆ|¤ƒŠ…’t˜„‘ˆ„u‚”‘Š…•’††ˆrˆ¢yy„uЇ¢™†††††‡†††††††††††††††††††ˆ†††…†††††††††††††††‡†…†††††‡†††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††‡‹…„~…†ˆ‡ˆ€ˆ…Œ…‰††Š†…†‡…Œ„…ˆ‡Š‡ƒ„„…‰‡…‡Šˆ…†‰ŠŠ…†„‡Ž‡ƒƒ†…„‰…†………„ˆ†…‚„‰‡‡‚„†††‡‹……‹†‡…ˆ†‡†ƒ†‡†‡…„ƒ††……|„‡†‹„ˆ†‚…‰„†‡†††Š‡†††ˆ†ˆˆ‰ˆˆ‡††ƒ††Œ……††……‰‚††„†‰‡…„ŠŒ†ˆ~†…‚ˆ…€‚ˆ…‹‚‰†‡†‰‰ƒ†ˆ…‡……ˆ‹‰…„‡‡ˆ…І‚†ƒ‡…‡ƒ……††…ˆˆ…‚„„„ˆˆƒ‡ƒƒŠˆ†Œ………‚Š‹†ˆ…‡…„ˆ‰‰…‡‡‚‰†‡‚†††††‡†††††††††…†††††††††‡†††††††††††††††††††††††††††††††††††††††††…†††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††‡†Šˆ‚†††‰†ˆ†††‚‡†††††‡††Œ†…†††††‰ˆ†…††††††††††‡††‡‰†…††††…††††††‡†‡†††††††††„‹††…‡†††††††††‡†‡†„††‡††…†‡††††††††…††††‡†‡††††††††††††††‡††††††††…††…†…††††††…†††††…†††††ƒ†††…†††‡†††††††‡††…††††††…†††…†††††††††††††††††„†††††…†††††‡†††††††††††…†‡†††††††††††††‹†|Š‘‡Š‘„ˆˆ’“”‡yˆŽ~ƒ„ƒ‰‹‹Š‘…†Š’ƒ‡†„„‚Šƒ’“€wˆ‹}„Œ…|‡ˆ†‰•†Œw™~”˜w€ƒs“‡ƒˆ–”–’qŽ}}ƒ€‡””𣀂˜‘™Œ‹‰•„w…•€˜y“‹{¢“‡v”‘‡‚‹‰v‹r‘žp¥“Œ{xƒ‘ ƒˆ’ Š’{‡”ŠsŽ‹‹|‰}ztˆ’•–s—‘‘ŸŽ‡ž†”Œ|‹¦ŽŽ‹…x›‚˜{‡‘‘‹†}šo}ˆ‹‚‹|–‰}š™“~…ŽŠ„ŒŒ†Šqz“š„|…w”ƒ˜††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…‰†††††††…†††††…††…††††††…††††…††…†††††††††‡†††††‡†‡†††††††…†††…†††††††††††††‡†††…††††††††‡††††‡††††…††††††††‡††††††‡††††††††††††††††††††††††††‡†…†††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††††††††“‡‡‰‰ŽŒŒ‚Šƒ‡Œ–’“†…{‚‡†ƒ†ˆ‘‹‡”Œ‘‘}zˆ’††‚‰Œ‹u‹‘Ÿ‡‰‡}‚„†ˆ‡ƒ›‡„‘Ž„ˆ†zŒ˜y›{†€~‘‡ˆ‹‚“ŽˆŠŠ‚ŒŽ‡Ž”Œ†‘ƒ~š‡€‰‡„w’ˆ”y‡†Œ‹‚ŠŽ•„ˆ–ˆ…Š–~ŸŒŒƒ{‚“‘…†Œ“Ž™€Š‹zŠˆ…”ˆ‡†t•†”„˜‡€‘…“‰…˜ˆ‘ƒŠ‘—‘Œ‚‰…ˆ“Œ‰…‚†}’p…€~‡ˆˆ“‹‰•Љ”…ˆ…€Š‚pŒ”‹•‹~‚‹‰~ƒ„—uƒ{‚}i{u~|v…€}…¡…†œˆˆƒ—ˆ…Žž–qz|}Š—„„¨”Œ›†“‡™……€~n†š|†ˆo€|€n{Ž’˜ˆyzx”ƒŠzˆƒ…Ž‹Œ‚†’†‰†ƒƒŒŠxˆ—}Žz‹’¡|„†††š†zˆ€Ÿƒ{ˆŽ†‡€r|ˆty}{ž‚|„ˆ|‹‚€ƒ…{pƒ¨t€‘“Œ…††~|„Їv”‡~œ•{„vy’‘’’Œ“‰yŠ„˜‡~”€•‡‡‹ƒ†uŒl…xy†|}ŠŽ~’y‚ƒ‰~’™†„ˆx–ˆ„††“”˜„€—y’‹r‘Ÿ”‘vŒt†˜…ƒƒŽŒ‚˜r¦•kŒŽ‘‡x…Ž~yŒš}™ˆs†{ŽŠ‚‘€‚rŒ„—І¹‚—¿–‡tŽž¼”¦vjt‚©cƒ•ƒ’x•ixˆŠz„žŒ‘u‡tƒ–Š~’yx›{‚”´‹–e|„ˆ’ƒ€Ž|zƒp“±¦Zo˜~‰{¡†Š—„œ”h›o’r†„~”ƒ£Ž…‘•É„«ƒ„n€‘˜ƒ{’i²œ¦™z–Šx–¨Žœ˜x¤’|ˆ’n›r|q›™zŒl‹ Œ¢hŽƒœ‘’L‡…‘j£–~ ‚šzz‘Š}qpdu‡‰~–†ŠŽ“†~¢ƒŽ†‚zˆˆ•„‡ˆˆ‰‰€‚ŠŒŠ˜ŒŽ~†‹„„††ˆ‘‰†‘”‹„i…‚„‰ˆ‹{‡Š›Œ‚‹ˆ{˜ˆ‰}‰‡“…ˆ‰†ƒŠŒ~Ž–u—u„‰†ƒ‚ƒŒŒŒ„’“ˆ”…‰Šˆ”ƒx„‹‘Œux}‚€‹€‚—ޔЉˆˆŠ¢„ ŠŒ…}ˆ…ƒ„ŠŒ‡€˜„‰ˆ„“–Œ‹„~…‰‡Š‰€Œ“–‰“‹‹•…Œ‰•Š‹’ˆ‹Œˆ‡…ŽŒŠŒŒ‚‡ˆp‘“‰ƒ†‹…‡Žˆ”††††‘ŽoŽ“…†Œ‚Š‚“‡‰†ˆ‡„‡††Œ†……‰…‡…‡‰††‰„†„‡†‡„ˆ†…‡„†…ˆ‡ˆ‡„……†Œˆ‚†ˆˆŠˆ…„„…†„Їˆˆ„…†ƒ…ˆˆ†„‡†„†„އ††ˆ‡…ˆ……‡ˆ†„……ˆˆˆ…ˆ‡…ƒ„…„†…ƒˆ…„…†ƒ†ˆ‡ˆ†‡„„ƒ††„……†……„…Šˆ†‰„„†…‰„††ƒˆ‡ˆˆˆ…‰…„…†‰„І„„†ˆ‡‡‡††ƒ„†…„‡Šˆ…„………ˆ‡„‡ˆˆ‡…‡……Љ„„„…‡†…ƒƒ‚„…†‰„ˆˆ…‡††ƒ†ƒ„„„‰†…†ˆ†‡…†„І‡‹ˆ†…†…†ˆˆ†Š„†ƒ‰‡†…†‡…‡‡‡„†…†††‡††„‡†††††‡†††…†††††††‡…‡„‡‡†††…†††……†††…†††††‡†‡†††…‡‡†ˆ††‡……‡†‡†††‡†…†††‡……‡†…††††…††††††…†‡††…†……†‡†††…†…‡…†††…††††…††…††‡…††††…††…ˆ…†ˆ†…†…††……‡†‡†ˆ††††…††‡††††„‡†††‡†‡†††……‡‡††††††††‡†…††‡†‡††††……†‡…‡†††‡‡†††††…†††…†…‡††††††††††……†††††…††‡††‚‰~…€†€‡……~†Œ‚”‹—‹}Ž„}Š‹‚~‡“„†‡“…Œ“‰‚”Œ‰‚†„ƒ‡Œ}‹œŠŽ‹Šz~…€•ŒŽ‘…’€~”ˆŽ”‡ƒ…•w›v‡‰ƒ€†Šš‹ŽŠ‰„‰Œ‹‰Žš‘“}y—|‡‹€‚‘~t†“„‡wŒ‹‘‡†ŽŠ‘‚”‰ˆ‡‚ “‰†|‰Œ„‡”‡Œ…††‡€‰˜Š“Šy’‹Œ‡ŽŽ‰‚„”‡‡Ž…ƒ”‚†‚‰‘Œ‚Š–‹Œ’Œ‹‹†ŽŽŽ†€l’‹Š‹‘‹‰Žˆ‹—އ‰ŒŽ‹Œ‡‚†ˆ„pˆ‘މ‰€’……†…†‡†‡†††…†ˆ†††††††…†††††ƒ†††††††‡„†††††††††††……†††…†††††††††††††‡†…††††††††††††††††††††††††††‡††††‡††††…††††††††††††††††††††‡†††††††††††††††††††††††…††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††…†‡†††ˆ†††††††††††††††††††††††††††††††‡†††…†††††††††††††††„††††††††††††††††††††††††††…†‡††††††††††††††‡†…†††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…‡ˆŠ……‡……‡††‡„І†‡…ˆ‡‚††ƒƒ‡†Š……†‡ƒ……ˆ†…‡‹‡„‡„ƒ†ˆ„ˆƒ……†…†………ˆŒ‡†„…†ƒ‰„‰‹‡…††‰ˆ‡…ƒ††‚ƒƒƒ‰‹ƒ‹ˆ‡„ˆ……Ї‰†‰†€…ˆ‰ƒ…‰…„…†‰…†ƒ……‰„Œˆ…††…‚……‹„‘††Œ‹„Š„…‡ˆ††‡…z‹Œ‡„‡††…І‰Š‡‰Š„„‡‹Œ„††€‡‰‚‡†„„†‚…‡ƒ…ƒŠ‡‰‚†Š…‡Š‰‡‹‡‰…‚†„|†ˆ…†ƒƒ…ˆˆ„{ƒ‚‰ˆ‰‹Œ†ˆŠ†…€†‡‡„ƒ†‡†ˆŽ‡…І†…‡‡‡…††„†ƒ‡……ƒ…††††‡†‡†……‡…†††††††………†…‡†…†‡…„†††‡……†‡…††††‡†„‡†„…††……††‰†…‡††‰…†††„†…†††‡†††‚††…†††††††…††††‡ƒ††………‡††††…†††‡††…††………………††††††‡†…‡††††††…†††††…‡†††††††……†††ˆ†††‡†††‡†††…†…‡ˆ‡‡††††††††‡‡†††‡†‡†‡……†††…†…††††……†‡…††…‡††††††††††††……†††††††…††††…†††††††††††††††††††††††††††††‡††††††††††…‡††††‡††††††‡…†††††……†‡††††††††††††††††††††††††…††…†††††††††††††††‡……‡††††††††‡††††††††††…††††…††††‡†††††††††‡†††††‡‡††‡†††‡†††‡……††††††††‡…††…†††…††…†††††††…†††††††††††‡†…††‡†††††††‡†…†††††††…†††††††††…††‡††‡†ƒƒˆ“’š…‚‚y‹y’‰ˆŠ€ˆu‰~І†„“‹ˆ›‰†‰‹ƒŽŠ††ˆ“‘ƒ‚ƒƒ{ˆ†‘€‚†ˆ‡’Œ–…‹‚Šy–Žx“}w€‰Ž‰{yz€‹ƒŠŽ†ˆ‹Ž€†‹€Šˆ†‰|„‹††Ž…Ž–‘ˆ}ƒˆwˆ†‰–‹…–ŒŒ€{Љ“ˆ•ˆ„‹•w‰‚“”•‰‹ƒ‚‡“„–œ‰˜ŽŽ–™‚‹‰ž…”€ˆ‰Š†‰‰ˆ‡}ƒ‹Š}—j‰‡w†‹–„ˆ“ƒŒƒ‘‰Š‹‡‹‹‚„‚•}w}†“{|Šw”yŒ•€€††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††“Œƒ…‰–ƒ~ŒŒ~€xœ‚•ƒ€x€‰˜“Šœ‹…ˆ—™„‚Švƒˆƒly‡ŒŒq“”ކˆƒz‘€•Œ‡ˆ“„…„ƒŠ•Œ‡›{‰{‘‹†€‚‘z‰—‰•osމu“Ž”u}ƒ‘q“‡‹~ŠŠ{v„‚‚‡ˆ‰‰’‘–†ˆŠxŽ”ˆ†“}—˜‘ŽƒŠ„’sw“…|“…‘‘Šž‡‡xˆŒ‘’{—”˜‡ŽŠœ|†‰†Œ™Ž‰„”xˆ•Ž|†|”‹œŒ˜††Ž~yrƒŠ‹…ƒ„‰‘“‰†¢ƒŸ‚~{Œ‚|w€…l•zˆŽv…‡†‰šz}•{Œ…‹‹ŽˆŠˆ„—ˆˆ‹‹‰’Ž‚…†vz‰‹†…„ŠŽ‡‘‚‘ˆ‹†‹zŽŽƒ…Œ‘Ž€ŠŽ—††Š…{ˆƒŽ†~…Ž‘—Œ‡…‹’‘’Œ„‘f˜~‰ކ…ƒ†”‹‘†|‘†‹‘Ž|ˆx{’‰‹ƒ€ŒŠŒx~Šz…h„—wŠˆŠ~…€œ‘“›†–‰“{†Žˆz„€„{”‰‰{“†}‚›Œ…Œ‰‚‡Ž’‹Šž„‘–ކ‹”Š‚Œƒ‡†•‘ŽŽ‹“…‚‘‘‰‹Œ”—‹‘‰”k”ƒwƒ“‚šˆŠ‚Š„Ž‹…kŠ–„šŒ›{‡Œ‘ƒ˜…’„‚‡}‡ˆ˜ƒ†„sŽŠ‰‹Šw{’Œyx„—‘†‹•ˆ„†‰š…„’†„‡~p‚ƒ‚zˆ“†‚ŽŒ‘w”•‰š’‡t|ŠŒ}”ˆ‹“‡ˆ~~€u }yŒy†‹‰Ž—rvŒˆwЇ‡ˆ’‘‹Ž‚ŒŠŒx|}€{„‘ˆ‹†‹•…‹„‡€‚Š‹‘—ЅއƒŒ‡vxŽ‹|•Œ‰€‘—w”z‘ƒŽˆ‚‚‘’„Œ“‡‘‚‘‰~Œ–†q…‹‘ŠŠt–…ƒ—}‡}Š‹„‡{‘Š€‡}‡„“ŒŠ”ƒŒ…ƒ„‚ˆ†q}‡wŠ}t‹–y‘šs…Љ†‰‚Œ•ˆ‰†‡‰x…‰ˆ–‚ŽŽ}‹~…‹…“ˆŠ‘“’’‹xŠŒŽ‚Œ‰|’‡ŒˆŽ“|‘„Іƒ…ŠŠ‘ƒƒˆ‰ˆ‹Ž…†ƒ—u“šx†’Žƒ‹ˆˆˆ†ƒ‡†‚‹Ž“†‘—„{†“„ŒrƒƒŒu€‡‰x‰~ˆ‰‡Œ~ŽŽŽ–……‰†Š—„ ‰‡€Š‰‹…ŽŒ‹“Œ‹ˆ„•‘€††‰‡ˆ‰…‘˜‰‡ˆŒ”‹ˆŠŒ‰’ŠŒ‡’”‹Œ…Œ‡Šq‘†‡“Œ‰‘‹‹Œ‘‹Ž‡ˆŒŠo‰‘ŒŒ‰}“ˆŽ‹’‰‹„Žx“—}”ˆƒ”Œ‘w‚v„ƒy˜”}‹ƒjŽ„y|ŽltˆŒp|{‡}ƒ|Ž~“x€‡˜‡’†„rŒ…|…m’Šw•™‹{”g€Šˆ‡†›œ‚„²z€{s˜{‘‚‘yŒ—“Š„|€r†…™…ˆgv…–™q‡…„qƒ”„…w•~™‚¢„m”muu„‚Rމ‚|z{y”\y‡‹|on‹†›crˆ‰l™št˜re–™…ž…u‚l˜mŒy‡s‹{­vwi•¬|s‘¡­Ž‰¦s‚‡}‡”‰“‰—pƒ˜u‹”†€ˆ\Ž„rŒ†ˆ…‡…„†††‡†ˆ†‡†‡„†††††‡††Š†††…†††‡††††††…††‡†††…††‡‡†††‡††…††††††‚†„††††††††††‡††‡‡†††††††††††††††††††‡†…††††††‡†„††††‡†ˆ††††„†††††††„†…†††††††††††††„††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††……†††††††††††††††‡†††††††††††††††††††††††††††…{–—˜‰€…ƒŠ‹}ˆŽx|Ž‹}‚p€}‹Œ}Š•€†ˆ‹Š„yw‰ˆŒŠˆ}އ‘Žr‰ŒŠ’“‚x‚‰†Šƒ†‹Š–Š‹Žx‡€•‚€Š‰‡‚…‹™y‘ŒŠx‹†‰‰{“Žˆ‚†Œ‹†w…ƒˆ‹‡‡ˆ„‹u‹Œ…›wˆˆ‹†‡‹}Š–n„‹ƒ‰‹”‚‘‹Šx†…—Œ‡‚‡‰„‰ŽŠ‰ˆŽ‹‡Œ‹‡Ž“ƒ~Œ‹†‡ƒ†‹Ž…{‡‹‡y‡‹“†…‡”r„‰}‹…•ބІ‹Œ‰ŒŽ‡„€ƒƒˆ{„ŒŠyŠtŽwŒˆŠŠ‰~}|–†„ˆ‚ƒŠ|”ކv}‘z‚t€‡‡‹‡Ž‰}}‡†’‡†‹„‡z}ŽŠƒ‚‰‹u‰‡Ž‰‘ƒiˆ‹‚‚Ž‹™Œ‰|Ž„’|ƒƒ‚{†‰Œ}‰Œ{†‹ˆ‹z†‰ƒˆ‹‘‹Š’ƒˆ…€x…~†ƒ‹‹‡ˆ~‡u‡w‹wŒ…ƒ|‚†‰”q††…Œ‹Œ‰Ž•vƒ•Љˆƒ’‡‘’Œ“”‰ˆ’“‹‚Ž‹‰‚z‡…‹‹„wŒ‡€”v‹}‰ƒ‘‚‰Žv‰ŒŠrŠ‘}Œƒ‹{އ†•‹ˆ{€‚„„u}Œ„€‰m”p™tˆ‰Š‹}‰‚ˆŒŒz‰†€ƒ…„‰…††ˆˆŒŠ}…Œ†„v‹ƒ‡ˆ‹…ˆŠ•‡…‰ˆ‡„…Œv‡†€‹›ˆƒ…ƒ‹|€ˆ‹†}ˆ‚…Šˆ††‹‡†Š‰‚}†‘‘†x„’…ƒ~Ž„}…Žtˆ‰†…Ї|…Ž‹‰yŒŠ‹ˆ~„‰ˆ€‡“{ƒƒŠz…}‹”yŠˆz†ƒ€†„}‡Š‡{†‚‹‚†‰z‰…‘Ž}}…„††‡‘xˆ“ŒŠ…‘z‡„„„Œ…ˆ€ƒ„…Š„†‡…ƒ~‡Š‹ˆ……ˆ€‰yŠŠ…†„–‡…u‹„„…‡~‰‰…ˆˆ‡†w’‹œ‚•‡tŒŽ‰„p†}„a|”€›…j}r‘t‘›ƒw•†us”yz–‹ˆ|€b{s‘ŽŒŒyŠ‚œ¢…Ÿ{ˆŸš†b²’žÄ‡]Œtƒm—±y}¡Ÿ”’™¦¦›§ˆz|v}x޹Ѐ“€Œ‘[}‚sŒv‚ˆxjs†}NvŒŠ˜‹‚z£p…§”y…}…€‚v£~zj‘¢œH™Wz…‚uz•`w„¢`•~rzvt‘|o–x†ˆ—w‡¦¤›ŠŒy“t‚|}’ŽœX~r†m„›‚vŒŠ‡s‚‹‰Ž“§’r}‹¡—t™švƒšŽ„ow€pÉŸ‡—„‘‘‡’‘Œ‰‰†Œ’†‘Œ”‰‹‘†Ž†…€ˆ†•ˆ‘~…”€…‰“‚—„€Œ…‘yŒ£Œ‚†Š„ˆ„‹~‰Œ‹Œ‚„‚“…Œˆ—r‘–zއ‰„Š„‘…†€ˆ“ƒ†–‹~€‰~“‡Œ†ƒ“†s}ŽŒiƒ’ƒ†~ŽŒ‹‹}Œ†’…‹‡œ‡ŽŽ}„…Œƒ˜“”‡†Œ‡}…””‘›Œ‘ˆˆ……œ…–•‘Š‘‰‡‘“~Ž‹”…Œ“ˆ’ŽŒ‘‹”Ї‚’h”•ƒuˆ…–‚–ŽŠ•ކ‹‰‘Œƒ‡j†‰ƒ‰…}Ž€‹‘Š‚’‡„…|™†‡‰„‰‹k“†’Š“†Š†‹}‡„‚‡‹•ŽŽ‘•„ƒ|‡Ž„€†…ŒŒ‹„œ‹›ˆžŽˆˆ…‘†…‰“ˆ‚š†‘‹}{†”˜u”v~‡€~—‚‡‹ˆ„ˆ‰‚˜‚…ˆ›‚†£ŠŒŽ|ˆn…’“Žv}ˆ€Ž{‚‹‚ƒs|…Œ‡—‘•|‚Š‚€šŸ“{Š›•‡ƒ…–Œ{v•€•wˆ|Š‹—‚…„ކІ‘š‚‘„„“…‰Šµ’‡›x—‹“އ’’ƒš~Šƒ‹ˆŽ††y“‚”r‰–ŒŽo›y†‚‰•‚–‡…‹’ŠŒ{xˆŒrˆ‚‰£…‡«‹†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‚†ƒƒŠ…††…†††„‡‚…††‡‡††††~†‡†…‡††„‰†††‡††††…††…††††ˆ††††††‡†‡††…†…†ƒ††‡††††ˆ†„……†ˆ…††‡†…††††‡†ˆ‡†††††††††††…†††‡†††…††‡†††††††††††††…†‡††…††††††††‡†††††…††††††††††††††„†††††††‡†††††††††††††…†††††††††††ˆ†††††††††††††‡††††‡††††…††…††††††††††††††††††††††††††‡‚†…„††††††…†††ƒ†††‡††††††††…†‡††‡†‡††††††††††‡††‡††ˆ†††††††‡……†„……††††††††‡††‡‡†…†††††††††‡†‡†ˆ‡†‡††††…†ˆ††††††……†…‡†‡ˆ††††‡†††††††‡†‡‡††††††††††ˆ††††††††…………††……††††„†‡††‡††‡†††…†††††††††…††…††††††††‡†††…†††‡†††††‡†††††††††††‡…††††††††††‡†‡‡†††††††‡…††††ƒ†††‚†††„‡ˆ†††…„†††‡††††ƒ†††††††ˆ††…††††††††††„†††‡†…††…††††††…†‚†††††††††‡††††††‡††‡……††††‡††‡ƒ†††††‡†„††…†††‡†…†††††‡ƒ††††††††††††††††††††††††††‡†…†††††††††††††‡††††…†††††††‡†††††††††††††††††††††††††…†††††††††††††‡†††††††††††‡†††††††††††††††††††††††††††Œ„‡ƒ‹•…‡…ˆ‘†…~‹ˆˆ“ƒŒ~€‡‚Ž…‹•’Š}‚~Œ„†‹yŠ‹šŒƒ‹‡{~‚‡€…‹‡—…ˆ††…‡{†’v—™t‡‘„‡…ˆ‚‹ŠŒ“ˆ‚‡•†•Š‹‡”‚ˆw‚Š‹ŽvŒˆˆy‹‚‡Š‡‹Ž“Œ‘‘ˆƒ‘‹œŠŒˆŒ‘ˆŠŒ‡Œ†™}ˆ‡†ŠŠ“‘‹„ƒ†‹‚‡…Š€Œ–ŽŒ„†‰”„Гޒˆ‰ˆ“ƒ†ŒŽŠŠ|‰…Žr’”Šˆ…‡•‹“‹ˆ‘‘‹…‘ˆ‘Œ~–ŒŒoŒŒƒŠ‰€Ž|‡Œ‹Ž‰†|†ŸŽ™…}…‘Œ~|‡’…ƒŠ‹w‚‘‡ˆ{ŽŠ‰ž‘•ˆx_…‰Œv—‘Žš’‚€‰“ˆ„„‹|Œ‚‡„~}z‹ˆŠƒxŒƒŒ”{{zŽ–€‹ƒt„z‚›zŠ„‹Š‘ˆ‡“‰‡€€˜Œƒ†‰‚‰~}~‰†‘‚Œ†˜”‰l‘€Œ|‰•”ƒŸ‚‹ƒ…‚’“’‚€ƒŒ€“™ŒŠšƒŒŒ‚~{އ‹‡‘‡‹ŒŽ‡‚‹’’‡„‹•‚‡Œ–‘ˆxŠŠ…‘k—‘y‚„Žš{‰„Ž}“‹ˆ’†›ˆ‹tއŒƒ’x‘ƒ–’ŠŠ‡‡†‡††††‡‡‡†‡…‡……††††…†††ˆ†…†‡†††…‡††…†ˆ…††††ˆ‡…†…†……‡…†…††ˆ††‰„†…‡‡††…†…†††‡†„…†…†††††„††…†……†„†‰††…††††…†ƒ††††‡‡……††‡‡‡††‡ˆ…ˆ…„‡‡††„††††…ˆ‡‡††‡…‡†……†††…†††……ˆ‡†…‡††„…††…‡…†‡†‡…†ˆ†††††††‡‡†…‡†‡†‡‡†‡†……†††…„„‡…††††ˆ‡†††………†‡…†††…„ˆ†††‡‡„ˆ††……†‡‡„‡‡‡††‡……‡…‚‡„{Œ€”ƒ„Œ‡ƒŠr“Œ”|‰‘}r|‰„€‹Š‰Š—‡ŠŒ”wŠŠ„Їއˆ‹yŠ˜™Œ•ŒŽyŒ†Šˆ€ˆ’Šˆƒ‡–†…•…€}“u‹–wŠ…ˆ‚ƒ…‘•„ƒ†‰‰ˆ‹†‘—Š™Žyt™…ŽŽ‹†Š…t‡†‰xƒ‘‚Œ‘‰˜‘‹’ˆ‰€‹Žƒš‹†‚„Š˜ˆŠ‹‹•‹‰•’y‰‘‹Žƒ{‚ˆŽŠˆŠ~’‡€„†ƒŠŽ‹˜Šˆ“…‘‰“‰‚‹ˆˆ“‘Œ—m‰•Žˆˆ’††‘ŠŠŠ‹‰ƒ‘‰„Žpz•ŽŽ{‹~މŒŒ†ˆ†ˆƒ‡†††„†††‡†Š‚†††††‡††‰……†…†††ˆ‰††‡†††††††‡†ˆ††‡††…†‡††…‡†††‡†‚†„†††††††‡†„‡††„ˆ††††‡††††‡†„†ˆ††„††††…††††††††‚†††††…„††††††††††††…†…††††††††††††††††††††…††††††‡††††…†††††††‡††††††††††††††…††††††…†††††††††††††††††„†††††††††††…†††…†††††††††‡†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‰……‚–’€…ƒyŠ|…u‰ƒz}˜‡€u|€„‰Š‹–†‡…’•‡‡‡‡†‰{w‡‘…}Œ„„Іt‹‡‰ŠŠ|cv„šv‡“Œ‹{x‘x‹ƒ}Œ‰€€‰…‹ƒ„~Š•~ƒ•Ž‹|Œ|ˆŠ…“‹‹yy‡‰„‘ozzŒ†Œ€‘‹Œ„†‚‡Œ—€‘€ƒ•ŽxŒ“u|Š…Š‹’|„„ƒŒ‡…•‰ƒ…}Œ‹‰Š‘…‚ˆ†‘Œ™ƒ{‹„~‚xƒˆ—‡†–ˆ•‚‘‚Š‹…†ƒ€Œ‹†vˆ›‰…‚‹‰‹†ˆ‘‡ƒŠƒ}Ž„xŒˆ‡†w‡s˜pŒˆ‹‰ˆ‹‰Š”|•~„Žƒ‡“‘ˆŽ‹s‰‰~Ž„‹ŠŠŒ„Œ|’yˆŒ…„ŒŠ™…~ƒŒ‡y“’š†‰Š~Œ–‹—„‘…Œ†Ž•v‘Œ…Ž•x•rŽŠ}…‰~„‘•†t|ŒŒ‹‘‘’‡‹‹ŒŽw‡Ž’z…Šm„ƒˆ†‹”ˆ†Œ„}~–…€ŽŒ™‹Žƒ„}“Љ‰ˆ‘†““~‡„™šŠ”’ŽŽŽ‹¡–†Œ“Š~™ƒ”€~ˆ“•‹Œƒ‡—‹‡Œ„Ÿ†‚‡‡Œ™n˜i’Š~“’‡€|ƒ”‘“ˆŒ’~“ˆ‰€wƒ‹‚Œ…ˆš‚‰„”„ƒ„‚†‡†Ž‡}„‚…ˆ††‚††‰……ˆ…††„………‹‰††ƒ……ˆ††††’†ˆ†††††Œ…‡…‡†…†‡Š†…}‡‚††…ˆ………†ƒ‰…†ˆˆ„„…ˆ†‡„†‡‡††‰…„…†ˆ…‡…†‡„…‡†…‡‡‡‡†……†‡~†…†…€‡…†„…†……†ˆ„…‚‡†ˆ†††ˆ†……‡†…†…††…‡‡ƒ††…‡†††‡……„†…††‰†………„…†ƒ„††ˆ††‡††…†…††…‡…††„…‡…„††………„‡†…‡†…„……†…‡Š†„†‚„…†‡…††††††‡†……„…†‚…†ˆ†Žn…ˆ ”…‚Œ‰~ƒ‹ƒ‚‡’{…€ryp‰ŒŒˆ‡Š—І…„…zŠ}’†“‰†…ŠpŽƒŠ††„…„‰†wŽˆ‚„Šo“‚‡‰yŒ…Ž~~ˆ{w…ŠzŒvˆ…†Šƒ‰”x‹~‘{‰€‰…‡††ˆ‹‚Œq’ŽƒxŠŽŠ‹Žˆ•‹xˆˆ‰†“‡Ž‡•ƒtŒ‹”Š„uƒ‰‚‰†Ž‹’wŠƒ‹‹‚ˆ‹Š“‰ŽƒŽ‡ƒ‡€{‘~™}v›pƒ…ƒ‹Ž„Ž’…‘’…‹“‹‘€‡ˆ~vއ†’‡z‰…•‰„†‡†‡‰‚†††††ˆ††……‡††††††††‡††††††††ƒ††‡††……†‡††‡…†‡††††††††…††††…†††Š†††††††††‡ˆ††„‡††‡††††††††……„†††††††‡††‡†††††…††††††‡††‡†‡††††††††††††††††††††††††††††…†††††††††††…††††††††††…††††††††††††††‡††‡†‡††††††††††††††…†††††††††††††††…†††††††††††††ˆ†††††††††††‡†ˆŠyƒ‡~†šŒŽ‹“|Š…—Œ}‡Žm‚€…‡†‹‰ˆ‹’’ny‘‰ˆ‚y‘˜‹’†‚{‡~†ˆ‡‡‡{…€|•“Œ“‡}”{…“{Ž”–x{…‡ŒŽ•Œ‰ˆ„ŽŒˆ“ކ’qŒ‰‹‡“‹„uŽ‹††yˆŽˆŠ›{†”Œ’†‚Œ–‰›‹‡}„ŠŠƒ‰’rŒ‰ƒ”…ƒŒ‹Œ‡ˆ“‰€˜•Іw„‹Š•}}†‡ˆ’‹Š‰‘’‹‰‹–™„‡ŠjŒ–‰†‚Ž„‚‰ˆŸŽˆŒ‡•‘‰Ž‘‰s††“”“Ž{…wІŒ†‡…Œ~†††‡‡…††€„††ˆ‡‡‰†…ˆ†……ƒ‡……‹‡…††…†…††…†……‚††‡ˆ†‡†‡„†…††††…‡x†~…††………†‡†‡††ˆŒ†…І†††††ˆ†††€…†„‡†Š…‡††††…††ˆ††††‡††††††€†‡†††…†††ƒ……„…††‡†……†‚…„…………††…†††††…‰††††‡††…††††‰†††††††‡††‡…†…‡††„†††ƒ†††‚††……†††††…†…††…††††…††……†‹‡…†‡†††††††…†‡…†††††††…†…††ˆ‡ˆ††Œ†‡†…†‡†††††…†‡‡…††††……‡†‰†…††…‰……‡†ƒ‰„‡…ˆ‡†ƒ†„†‡„‡…ƒ‡‰‡‡‰„ˆ…††‡………‰…„…‰…†…‡†…‡ˆ‡‡†ƒ‰„†…………‡‰‡†„†…†‡†…„„ˆ„†‡ˆƒ†…††ˆ‡†‰†‡‡Š…‡„‡ƒ†‡ƒ†‡…††‡„†…††‡‡ˆ…†‡…ˆˆ„ˆ„†‡††Š„ƒ††……†„‡†‰ƒ„††ˆ…†Šˆ†‡ˆƒˆ†‡‰‡„‡ˆ‡Š‡…‡…ƒ…‚…†„…†„„ˆ…‡†‡†ƒˆƒ„ƒ†…‚„‡……†…†ˆ††„Š‚ˆ…††Š„…‰‰†††Œ…„‡†ˆ~u†˜‘˜ƒˆ†{Œ‹uЉ‡Œ†„ˆ{x€‡’‡ŠŒƒ„Š”ŽŽ‚z}…Žu†Ž~”“‡rŽŒˆ‡‡ˆu•ˆˆˆ‹Š‚ˆŠ‘‹{ƒ‚‡ˆ|‚t˜vŒˆ|„ƒ‰{„•|}€Ž‚ˆ|‡”Ž…‰‰‚…†„yƒŠ‹‚Žˆ‹Š—{†ˆŠƒŽ‹Šˆ›Š‘‹•‚‡‚Œ„’Œ‹ˆ‰¡‚ˆ{ˆŽ‡“‰|‚‘Š‹Œ’‡’‹Ž’‰ŽŒƒ€‚Œ‹‰‚Š“’”„„Ї‡”p‘ŽŒƒˆ‰”‰†Œ…Ž…’Œ~‘„ˆ•Šuš„‰”z”‡•‘…‚†‰‚ƒ‡Š‰’…ˆŠ†‡ˆ…ˆ‘•’ŽŠ‘“†‡‰€‰“‹Ž“‰Šƒ…Œ’…ƒŠŠŒzŽŒ¥Œ‹Š€’…Œz~‡„†Œ…†‡‚ˆ…‡—q˜x„‰‰ˆ„Œ…Œ‚ˆ†…‹‰Ž„™ˆƒƒƒ•„‹v‰„†‰wŠˆxއ‡ˆŠˆŠ”Œ‰Œ…ЉŒ˜‡„Ї‚ƒŒŠ’ˆŠŒˆ€‡’‘†“‹‚„…‹ŠŠŽ’†•Ž‹ƒŠ‹Œ”ˆ‹ˆŽ‡Š’‹Ž‰‹ŒŠ•Œˆ‰‚nŒ„†„‘‡ˆ“‡…ŠƒŽŒˆ‡ŽŽpЇ“‚Ž‹‰†Ž‰ƒ†‰”€‡ˆ…ˆƒ‘‘ކˆŒƒˆ“€Š}‹‰”‘ƒ‹‘”|‚Œ„Š”‹‰‡‹Œv—ŒŽˆŠ}„‰Œ‘‘{†‰•ƒ’†Œ€‡‹”m¢•wŽ‚ˆ€ŠŠŠ‰…‚}‹Žˆ€‘–•v‘’’Œ~’t}Œ‰l„ˆ•Š€‹ˆ„›‹Š”ˆ‚Œ‹˜‡‹…~–Œ„˜ˆŽ‰—…‘Š“•–›Œ…ƒƒ“Š…ŽŽ’|Ž–‹‹Žƒ“|„|‰‡ŽŽˆ“ŠŒ„œ‡Ž“‹p˜w‹“ŠuŠ‘‡w‚“{Љ”„Œ‚…„‡j‡†…‡†€‚‹Œ”‰‘ބЄ…†‹“‚‚Šƒ’Š—‹z“„‚‚‰€‚Œ’„„‡ŽŒŒ–ƒŠ’|‘}~†‡‚ƒ‰z“ ‡ŠŠzŠr„|•ŒŽ‚Šz€‰†‹’~Š•qŠ˜wŠ”˜}‚ƒ”…ˆ†‰†‡”ŒŽ‡ˆ–u‡„|”“‚tˆ‘„xƒ†ƒŽˆ’‚Œ‹Š‘…š€†Šˆ…¤’Œ{„‹ˆ†ƒ„Ї„’‡‡Š””…„“‡ŠŽ…‰‡Ž|†•ƒ‚‡‰‰…’‡ˆ“ˆ‹‡‘‹‰Œˆ€‹p–•ˆ‰…ƒ‹ŠŒ—ŠŒŒ‡€Š‡|p†Š‡Š‚~Ž…„ˆ‰€…†€“‚‡‡ƒ‰|Љ•Š˜†“ƒ†Š‹€ƒŽˆŽ‰–‰Ž”}€ŒŒ•‹ƒŒŽ€•Žžˆ‘ކ‚‹‹ŠŒŒŒ—‰~ˆ……ˆƒŒ”szˆ‚‡Œ„‡‚“Œ‡†ŽŽ™‰€“ˆ}“†‹{†…Ž•Œwƒ’„x“ŠˆŠ…“‡Š”‰Œ‹‰‚ˆ…Œ‹›‹‹Š€€Œ‰€‘Šˆˆ…Œˆ†“‰–††„ŒŒŽˆ“„”Šˆ’‡ƒ‡”Ž’ˆ“”‡ˆ‹„’vŠq‘•ˆ}‹ŒŒŠ…މ†ŠŠ‘…‰Š‹‰†ˆ…p‹’ƒ„ŽŠ„„Š‘z‰š‡†‘„w‰‰‰š‹‚ˆw‚‘~†”‘‡’’Œ”}‡ŽŠ‰•‘„ƒ‰‘š‡ŒŽ~†„‡…‡Š…Ї“Œ‹ˆŒ“…„‡šr”¢w|‰…~”€…‹Š–‚ƒ‡„Žˆ‘–ŠœŠ€yzˆ‹—ŽŽt‚„wxˆ””x‰v‹–‘’|‰˜ƒž…{}‹Œ‚€†Œ‚Œ|•Œƒ’‡‰•ŒŽ‚…‚€“‰‹–—•“’˜ƒˆ•˜‘•‹ŽŠ••Œ‡‰’‡Š‚‚‰–Ž‹—m€‹†Š‘”‰‹Œ‡ŠŠ‚Œ”ƒ•Œ„”ƒo}‘Ž–wŠ~”y’‚”‰††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…“‰‹v‡†…ƒˆz„†‰††††‰‰Š‘†…}ˆŠƒ†‰†‰„‡}„‰‚‡††–‹‡–†‹ŠŠ‰…„vŠ~ŠŽ„…‰‘ŠˆŒŒ‹ŒŠˆŒ…‰‹…†…†Š~ˆˆ…„І†‰ƒ‚ƒˆ‡~ŒˆŠ„€„ˆ…‘“Œ€†Œ…‘€ƒˆ€ˆƒ}†|}ކŒz„‡‡‹‰€ƒ…ŒŒƒ‹ƒ‡Œ|…Š—ˆ‚ƒ„v…‡…}y‰ƒ‡މƒ‹‚u†ƒ†Š‚ƒŽƒ„އ’}ˆ‰€€…‰‡yv†‹†…„ˆŒ„†ƒ†|„ƒ‡‘ŒˆŒ‰‰Ž…‡†ˆ€‘ŠŠ{†„Œ‰Š•‰…t‰…†‰~‹„•~ˆ†‡‡Œz’|z‹p|„’‡…Œƒ€‡ˆ‰Šw€†€|{Ž‚Œ‰}‡ˆŽvˆ›…”|…ˆ†‡sŠsЇ•ˆƒŽrŠ…~‰ƒ†‹…‹‡††—~‚‹‘ŽzŒŽƒ„v𔇄†‡w†…{‚…„…†–|‚”‹z‚‰‚‡„–mz‰‹‹“•…‰Žvw’‰Ž€“ŠŒŽŠ~‚|‹Š„€ƒ}‰‚€„އ‡‡ƒ”zŽ~r‹}Ž…†‹ˆ…‰‚Ž€‰„“t“ƒ–ƒ‰ŽŠs‘‰‡‹€™•‹‘~ƒ‰Œƒ„‹ƒˆˆ‰”€ƒwŠ‚‰‹r„“•z††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…”†ƒ„…‡†Œ†……‚‚††‰„…‡……†…‡‡‡†…ˆ†‰†„†‰„…†††ƒ‡‡†‹†ƒ†††‡„„†…ˆ……†~†…„‹ƒ…†ˆ††Š‡†‚‹…†Š†‡„†‡…†††‡ˆ…†Š†……†€††††††…‡……‡†‡‡‡€†‡††}†„‡„„ˆ†~„ˆ‡†ƒ††‡…‡„ƒ†……ˆ†„††‡†…†…†‡„†‡„„†„‰………‡††………‡†…‡†…‰††‰†††‡ˆˆ„†…ˆ…‡††…†ƒ†††‡‰…………‡„†ƒ……†ˆ„†‡†‡‰‡ˆ‡ƒ„‡…††ˆ††…ˆ††‡‡†‡†‡…†„†††Ž‡|Š•‘‰‰r‰†‘ŽxŠv|„†Š‹ƒš‘Š”‰ˆx‚‡“ŒŽz„’Œ‚‘…’†‹‰l‹‰ˆ…}ˆŠŽˆ~t”y’–x–ЇŒ‹‚‘wŠ‚†‹Š•ƒŒ•ˆ‚‚‘~˜‚i•ˆ„|Š“€{†‹‹~w’“Ž˜ƒ…ŠŒ†š–~‰Š„ˆ—‚{Š„‡š‹ˆ~Ž‘šŽŒˆ€€y‚ŒŽƒŠŠ‚‡’–‡…“…“š‰Ž“ˆ€’‡†‰Šƒ€Œ…„†ƒ“އp‹”…ƒˆ€™•…Œ”‰ˆ‘…Ї†‰Š’’‘uЇ…x‘t‚‹Ž‘—‚‘•‡‡†‘’€Ž†—‘ŒŽ{“…}†‚ƒ”Љˆ‡šŠ‡‹„y{‚‚~„x’¥‰†}…z†Œ„ƒŽ‚y‰ˆŒ††ŒˆŽ›vŒ˜x‘…‹ŒŠ‚ˆˆˆŠ‹Œ†šˆ‚–‚‰—x{ƒ„‹~w†Œ†„x€ŠƒŒ’‰‰Ž„ŽŠ•|ŠˆŠŽ„£}}ˆˆ‡‘‡ˆ†„“}€‘‘’ˆƒ‹Š†Œ†“†Ž}ŠŽ’|‚~’‡Š‡‰†•ޔВ‘z‡ˆqˆ”†‹Ž~~”’Š‘Œ‘‡ˆ„ˆƒpŠŒ”ƒ‹’{‘‹‡‡…”ŠŽŸ‹”Š”„–‡Œ~‘„‘€‡~‚ŽŽŒŒŽ—ˆ¡Š„•††…ˆshz}‹„}€‚”„w‡}”}ƒg{yƒ†x”…™™—už†‹}Ž—Š„ˆŒ‚†…•”tq„“„}…ŽŒ‡’ƒ‰‹Š–™‡‰ƒŒ€Ž’ŽŽ~w‘ˆ‡„ƒœn›{†‘i”¨Œ’†Œ‚…z–…Š˜’š‚u¡rƒ‚}}{ƒ|™‘g‹‘~”v—ƒ‹Œ‹‡˜†Œ|ˆ‡…ƒv†”¡ˆ€„‡‚‚‰{šˆy|‚œ†|ˆ}¨‰„¥…Žr‚Œ“t‡„ƒyrŸq­Ši‹\Œv‹…x‡t~Œ’Іwz‡‰ˆŠ””“„„i‡ŒŽx‹ˆ™…~‡Œqn‹ˆŽ—‰{’„‰—…~‘‰{†‡Œ—¦†•y„†”£…‘Œ„ˆˆ‰•pzŒ„‡”•‘Žv“‚ˆˆƒ“Œƒƒ~r‘‰‰›„†€v‰ˆv…{•€•—†˜ƒ†Œˆ}šˆ‹ƒ“x‡“‡„ƒŒ˜†•Œš‰}އ‘‘‘ކ{Œ„›~Œ“Š¡‚„ŠŠ‹‚p”‡Š…‹‹‡™{‰‰“‰–‰…‡Ž‚މŽi•|“†~Š•ˆ’‹€}††ƒŒuŒ{†„•‚‡Šƒ‰Ž€‹‚†–Ž‚‹€…Œ……‹–Š‹Œ„‰Ž{|‹†–‘‹‚‰Œ“’‚‘‰‚Œ“Ž~Ž‘ …Ї‚ƒ‘ƒ‚†”‰‰}„‘‰‰“Œ{‘ˆ†‡“’p¤•w‰ƒ‘‡‹ƒ˜‡†ƒ†}“‡ƒ}“•‹Œ‡ƒ•ˆ~}‡•‹q|Š…qˆ…‹€‹ˆƒ‰ƒ€Œ”Œ”„‰›‰…ƒˆŒ‡†”“’u”‡}€Š–Œ—ˆŠ†„•’‰™ŠŠŒ‰“”€ƒ‹„~ƒ”•ƒ‹‘‡‰‰’‰•‰–„”x“p‘–„v‰’Ž‚‰–Œ“…›‹‰‘Ž–‡€‰‰†u†…‹ˆ€Œq‹‰‹…‰Œ‚‹‘‡†„…‹‹Ž‘Š˜‘~‰Š„€ˆŠ~Š‘ŒŠ‡ŽŽŠ…†‡Œ’…‘†|„‡Ž{ŽŸŒ‹ˆƒˆ†ˆŽŒ†ˆ“„€…†‚‰„ƒ~™ržx…‰ŒˆŒ‹“ŽŒ„ˆƒ†‰™Š~Š€–{‰z„†’–„wƒŽ}xŠ‹}Šƒ‘„ŽŽ’‰‰ƒˆ‰†¢†‰’€‰“‹ˆˆŒ†‰ƒˆŒ‹„‰“‘‘„‚މ‘‰ŒŽ‰”’ŒŒŒ‹‘ˆƒ„މ‘ŽŽ‹‹‰‹Ž‘†‹‰Ž‹ˆqŒŽyŒŠ†…”‰‰‹ˆ‰‹ŠˆŒ‰ˆ‡‰p†‰„Œ€Œ‘…‰ŠŽŽx‚u™Œw|Œ‚‘tzˆ‡•{r–Œ}‰ ‰{„‰ˆx”pŠƒ”†}‚‹€Œ†‚€Ž‰€r‹Ž‰ˆm…‰‡…toƒ|€ž†j––}‹ Ž{€r•|„zˆx|w—w‰”t{ˆ–™‚s›€‰ƒ{{£ˆy}’’’ŠšŒ{n–xz€z|–އ“ŠŠ‡”w‰ž}œ“|Žz|qŒm}•”’}‚|…‡iˆ…~‰„–ƒ‘š“”•œ’q{uˆ›ŠŽvŠsŒ†ŽzŒƒz}œyx‚Œ›†yŽ‘•t‰†Ž}z™‹‰††™•|wƒ‹{•‹’—`ƒ†…†‡‚‰…††‡†‡†††‡„††…†††‡†ˆ…†……††††‡†††‡††‡††††…††‡ˆ‰†††††††‡†††††…†…†††††††‡†…‡††‡†…†††‡…†…†‡††‡‰†††††‡††††…†††‡†ƒ††…†‡†…††††„†††††††…††††…††††††††‡†‡††††††…††††††‡††††…†††††††ˆ††††††††††‡††††††††…†…†††††††††††††…†††††††††‡†††…††…††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††‡†††††††††††††††††††‡††††††††††††††††††††††††††††…††††††††††‡†††††††‡††††††††††††††††††††‡††††…†‡†††††††††††††††††††…†††††††‡†††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡ˆ‰}v—‘š‡ƒ”Œ”‰‹—‰‹’|x}‡‰~‚†˜“‡•‘Œ…x€“€ˆˆŠ‡{‹ŒŸ‹Š†~‡†‰x…|…ŒŠ‚‡…‚…Ž‚”mŽšv„І‹„ƒ‹ˆ…~Ž‹•’‚‰’‰…–€’v“‹†Š•x€‰ŠŠx‡„ˆ„Žƒx”•‘ˆŒ•€Ž†–“š’Ž‘‡€Š„އv’€†ŠŒŠŽ†‡„ƒ††‘…Œ‹’’‘‰‚‹™š‘‘‹„—“…ƒŽ‘ŒŒŠ…ޓކ—…p‹‰‹†‡‰ŒŽŒ‹‹…–‰ˆ†“–‘o–‹‘‹}Š‚‡‡‰Œˆ†‡‡‡ƒ…‡‡„†††‡Š„……†…ˆ„ˆ†ˆƒ‰‡ˆ…‡…„‡…‡†…†‡……ˆ†…†…†„…ˆ††‡†…†ˆ‡‡†‡†ˆˆ„†‡ƒƒ„†‚‡‡ƒ…††††…„‡††ˆ‡‡……ˆˆ‡††ˆ†„ƒ‰†……ˆ…Šˆ†ˆ…‚‰ˆˆ†„‡ˆ‡ˆ…ƒ†ˆ„ˆ††ƒƒ‰†ˆ„†…†…†‡…Љˆˆ‡ˆ……‡†ˆ…‰‡„‡‚…………ƒ…‡ˆ†‚‡„ˆ†ˆƒƒ‡„„ˆŠˆ‰ƒ‡‡‰‰ˆˆ‡‡…†‰‡Š†‹†…Š„‡‰‡†…†‡†‹‚ƒ‡†Š„„…‡ˆ‡†…„††„††ˆˆ†‡†‰‚…‰…ˆˆƒ„†…††„€ƒ†‡†‡†‡††††††††††…††††††††‰†…†…†††††††…†††††††‡†…†††‡†††‡†††††††††„†…††††††††††††††‡††…††††††††‡†‡††‡††††…††††††‡†„†††††††††††…†…†††††…††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††…†††…†††††††††††††††††††††††††…†††††††††††††‡†††††††††††††‰‰…‹š„y‹”“‘„•‡‘†”ƒŽ”Œ†Œ~Œ˜Ž€„„ˆlŠsZ‚z~~ƒ~Œ—„ˆ‘|—‚…˜‚qŠz‚‡„Š‹¤ŒŠy‰|™…ˆy|‡‹j}ž’zs™’}ˆŠ~ŠwzŠ‹vŒ‚”}ˆ€‹ƒ{rŒ„yŽs‹}‹n™§Ž{¨…ª„c{©Œv‹“‘”†”y…m{}‹Œ‡›žƒƒ’މ~}n…™š•’pƒƒ‰…Œ‘…}’Ž ¢…–‹…’|{n•€……€‹‚†Žš€“Š”Š€ŠŒ‘w€z|y›d‚Žd{x‰œyŽ‹Š|ˆ€‚‰Œ…„€„‰”ŽwŽ’{€‰ƒ~†’Œˆ‡‘ŠŽ’ŠˆŠŒ…„„…„‡Œx‘‘ Š“ŽŽ€…}…†‰‰‹…‘Œˆ†’‡†“r‰šy„Œ„‡ƒ‡‹—ˆŠ†ˆ‡ŠŒˆš‡‡™‚ƒ”€‡€…‡“”t†Œˆ‡x†Š‡ƒƒˆ“Žˆ†’ˆˆ‡ˆŠ‡ŸŒŒ~‚‹ƒ…‰Š†…ƒŠƒ…‰Ž”‡„Œ…‰Šˆ‹‹’ŒŠ‚ƒ‘ˆ€ˆŽˆ“‘…ŠŽˆ…’ˆŒ‰…Œo‹‘‘Їއˆ‹Š‹ŽŽŒ‰ŽŒˆ„Šƒp†ŽŒŽ†‹ƒŒ‡„Š€—ˆ¤„}‹ƒŽ‰|~…ƒ‡¦“Š}’‹~{”}‡€‹šŒ—|…„ƒle”ІœŠ‚¥z†—ƒ‘ˆŠŽ€]‰Ž’ƒ†ƒ˜}¨WŽVo››º…v’•Š}j}’€x{ˆˆ‚zŒ~ws—‹x”…s‘’¥¡†„y††m‹…‡—‘y]’‘“‘‰‡b†z˜–‡ŽqŒŠ™’v |‡vƒŠ‚rƒ}~—‹yŽ|…_ކ\‹‹™z•‹kr}‰œ`Žƒ †€¯“c …Œƒ˜€u‰i’¢ƒ…t˜t•}„j|’˜‡…ƒŒ„‹ |–sps…rŠ˜…„«†Ž†‹ƒ‡…‡†‰†„†††„††ˆ††‡††ƒ†††…††…‚ˆ†‡……†‡††††ˆ†ˆ…††††ˆ††…†…†††‡††ƒ††…†…††††…†ˆ…‡††ˆ…††…†††††…†…‡ˆ††…††…†‚††††…†‡‡††††††…ƒ††††ƒ†„†††††„††††…††††††††„†…†††‡†††††††††‡††††„†††ˆ†††††††††††‡††††††††††††ˆ††††…†††††††††…†††††††††††††…†‡‡††…†††††††††ˆ†††††††††††‡††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††}}}ƒ‰…Œƒ‰ŒŠ‘Ž”ŒŽ–yz|‘‘ƒ™“—ˆ~txŠ“€€}}˜”|ƒ“ŸŒ‡}”—„p…‡Žš†v•‰†‚ƒŒ†”x™}xŠŠ€„‚‹}‚’މ€ˆlˆ|ƒŽ‹ˆ‰Ž‘yy‘’rƒ“|…€†Š™ˆ†‡„†Ž”†‘ŒŠ„ŠmŒ“ˆŒŒ…ŒŸ…wˆ–…ˆ—{ƒ”’ˆ”ƒ–’Œ’•‹†|‡ŠŒŠ–‘Œˆ†ŠŽ‘ŽŠ€¥Š‡zv““Žwƒ‹‘‰Š‹‡‡’ˆŒŠŠŠ‹“ˆˆ‹o•ˆ†~Œ™†‘…Œ‰Š‹}ˆ„’}|…‹†Ž’‰Š}Šˆ{Œ€‹‰ŒŽŒ‚އ‹Š…Œ„Œ–Œ‚ˆ…‹ˆ}Ž“›‡‰ˆ~ŠŠ‰–‘…‰‹‹ˆ…‘“‚‡’”v˜“x‘…€|‹}ˆ““Šxz‹ŽŠ€’‘Œ‡Š†Ž†‹|ˆ‘’‰w”†‰o‹‰†…Œ‰|‹‹Š†Ž‡™‹‚ŽŠ…–‰‹‚~„‚ˆ•‹‘Š”€ƒƒ”‘—‘Œ‹Ž—†’‰Š‡‡…‘„ƒˆ‘‘‡†”ŒˆŒŠ˜‹Š‹”o˜l‰~މ…†Ž“„‘‹ˆˆ†‡„‡l‚†‰„ކ‰–”Љ†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††‡††††††††††††††††‡††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††‡†…†‡†††††„†††‡††††††…††‡†††††††††††††††††††††††††††‡†††††††††††††…††††††††††††††††††††††††††…†ˆ††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††Šx’’•Œˆ|ˆ“‰‡„}…ŒŒw‚zŠˆŠ‰‰‘Š‚ŽŠˆˆŠ†Šƒ|‹ŒŠ}‹’ŒˆŒ‡w‡‹ŠŠy…‰ŒŒŒƒ‰ƒ†“ŒˆŽsŽx”Ї~Š„ŠŽˆ‹“}}Œ‹‰Ž‚€‡‡ƒ•†‰…ˆˆˆ{}ƒŠŠ{„…‰„Œ…ƒŒ‘‡‰‘““ˆ”|˜xw•‚‰Ž“„‡ˆ‘Šz‰”‘‡‡‹’‰‰“–Ž„‹”Š…†|‡‰“•Š‹‹ˆ‹z‹…Ž˜’†„“rБЇ‹‹’‰€Š„‘ŒŠˆŽ‡‹‰ƒŒ“ƒxˆŒ„…|’wŽ’ˆ†‡ƒ—•…}n€˜”’‚€‰tŒow|Ž“…ƒb‰oŠ€–€€ˆˆ€‚…Œ†t‹xœ‰qƒy› ”…~‘Œ‹‚‘s{–‡zŸs`•†}˜‚ƒ‘–~Ÿ†Š…zuxsšŒ†}Œ|rˆ„‹kŠ…”†v‰“l˜–ˆ˜‹¡y‰‹ƒ™‚z‚’ВЉ}ƒŠƒ†‡tŽ„†¥šˆŠ¡ŽwxŒ‰“cmŠug“€–‡“ˆƒm ~ˆ{Œ”u•“Š”‰†¥‡‡|™ŽŽ‰ŒŒ’€ƒu”uƒˆw{‘{„y‚’Ž€Šz||ˆ|“‰ƒu‹“‰˜…‡‹Ž…ƒ|ƒwsƒœ…”s‘nˆz|ƒ~††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‚‘y‡}’’ywŠ“Šzxˆ‘zŠy~}kŽt…’“šŽ‰~†}™‰‰…~x}q‘…›ŽxŒ…ƒŽ‘Š…mŠ{‰€n’…Œš†p{e„Œzm”x§x{‡œ“sˆ…Œ‚{ˆxŒˆŽw¤‹}•‘ƒ†ƒ˜“}žzš€†v•€…‡u†„ˆ„z€ƒ‰Š€“‡ˆŒ”u‰“ˆ”n˜‰„Œ‡‹ˆ‘„‹y‚v‹Œ”€„‹‘„•~Š‚…‹‰w‰Žu‚{›Žˆ§‚¡ƒ‹ƒ‘…“Ї~˜o„ŒžŒœ‘z|…†„«Š‚Œ‰x’rsƒŠ~}y’s¢—…††…”‡Ž|‘…†z‡Œ‹”ކ’zއ„‡ŠŒ‹‡•‘‘ˆƒ{€“ˆŠ‡ˆy†›‡„ˆ‹|Œu„†Œ…ƒ’ˆ‡‰Ž‹ˆ‰|Š™v‘Ÿw|‡’Ї†Š‡Š‘ˆ‡€‘…‹•‚„”‡‡–{Œ„ŠŽw„‰†Šx‡‰“’{‹{Ž”‚ŒŒ‹ˆ›}£ŠŒ…}Š‘~…‰”|’„Ž„„…†’Љ„€ƒŽŒ‰™Ž•”ŒŠ–™…І‹‡‹“‰Œ„‰’“‘Ž…Œ•‰††Žm‹“‹ˆ„…‘……ŽŠŠ”ˆ„’•Œ‰ŒzЇoŽ‘’Œ„‘€Œs•ƒ‡Œ‘”Š€„ˆ†~Šƒ‚‚g€Š‡‹…‡Œˆ…†€}“І’‹ŒŽ—‰~€|xކˆ”¨‘€“‚‰’„ˆŽˆ|w‡‚w…‰†’’tŠp‚j~Љ…µŠ~“ˆ€Œ†€‰tqŠ–…‚‹‰†}z…‘Œ†}{jŒ£–‚–„€ƒ…ƒ‚‡ˆnm‘ƒz„„ƒ‹r|ކŽ‹‘ހГ”ž}‚…™™q‚y†–f…~›||…™t‘xŒ˜qŒ‰Œ……zƒˆ‚‡|”Œ‹mƒ‰… x€z‡žž™…‘—‰~‹†Ž‚ƒ‘qi–‘‘‡˜ƒ‘’€‹ƒyœw‚‰‹wx¤¤‡‰‡€‡„†‰…„ˆ†„ˆ††…‡……‰†„‹†„‡‚†ˆ…„‡„……ˆ‡‡…ˆ„†‰ˆ†…‡‰‰†††„„…†‰…ˆˆ†…††„„ˆˆ…ˆ‡…ˆ…‰„‰‚†‡†‰‰‡†„†…ƒ‹…„…†††‡‰…}†‚‚…‚‡…‰„…ˆ…††„††ƒˆƒ†…ˆ†‚†ˆ††…„†„†‡‡…‡‡‚†‰……€‚…ƒ„ˆ…‹†‡†‰„‚ƒ……†……†‡‡………†‡ˆ‡ƒ„‰ƒˆ‡†‡†…€‡Š…‡†„„†……ƒ‡‡„„‡ˆ‡ˆˆˆ†………„„…‡…„…‚‡†‡‰ƒ‡…‡†„ˆ†…„‚Œˆ„‡ˆ…ƒ…†………†…†…††„‰†††…†‡†…†……††††††††…†††††††……††…†††††††…†‡†††††‡†††††††††††…†„†††††††‡†††††‡‡†††††††††††‡†‡††‡††††…††††††††‡††††††‡††††„†††††††††††††††††††††‡†…††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††††††††‡†††††††††††‡†††††††††††††‡††††††††††††††ž…‰‡ˆ…‰…‡y†~‡€††‰ƒŠ‡…„ƒ‡†ƒˆ…ˆ‚ˆŠ‡‚„††‡€‡…‡‹‹†…†‡…ЇЇƒ…„††††ˆ‰ˆ…†…‚€„…‹‡‹ƒ†…„„………ƒ……†‚‡…„Œ…†††‡‡…}†„‡ˆˆˆ‡‰•ˆ‡…„„Š‚‡ˆ††‹†ƒ…†…†v„‹ˆ…„‡ˆ‰‡…†ƒ‡ƒ†‡†ƒ†…ƒƒ‚Œ‚†ˆ†‡‡†‡…†…ˆ‡‡‡Š…†ˆ„……‡…„‡ƒ†‰…‰…††‡ƒŒ‹†ƒˆ‚‡‡„……‡„‡„ƒ…„„ƒ…ˆ†„„†…†…ƒˆ‡‡„Š‚‡ƒ†„…†„ˆ‡‡††††…†ˆ†„‚†ˆš‡u‚Ž–‡‡„€ŒŒŠ”ƒz€–€‚s{„‰‘“ƒ‹‘}ˆ‹‰šƒ{ƒ€…q‰Œ‡w‰‘‡ƒ‹r‹ˆ•š’‚x‹–…‚…‹’ŠŠ…Š{v§Ž†}†}އ†‹‘—su“‹†r•ŒŠ‹€€•Œ”‡ˆ‰Š{v†ƒz‹ƒƒ‡…y‡‡}ŒŽ•šˆ|Œ†s„y•ƒ‹†™”›u——‘ˆ‰ˆ’‘“Œ‚‹Ž†‘‡ˆ‡Š„•ŠŒƒ{†„“…‹t’‰‘…yˆ‰™’~€|‡‰ŒŠˆz‡Œ“‡ˆ”yƒ‹‹‹ˆ†……ƒlw€‹{‹{ˆ‰t‹zx““{€ˆ…‹€‹Œ–‡‚ކŒ|‡ŒŽŒ˜Ž…ŒŠ}Žƒƒ‰††’‰‘Š’~w–†ƒŒ„’~‹‹šŒŒ‹’{–’’}„€‰“€‹ŽŒ†ƒ˜x—™vŠ‘‰†ˆ…ˆ…‹‹ƒ}ƒ‚‹€’†“–†Š€•ˆ‘uˆ‰‘”v„”~‹xˆŒ}ˆ‹„ˆ†‘‘Ž’“‹Œ„‡Š™ƒœ‰‰…ƒ‹†…‰ˆŠˆ‘•ŠŒŽ‚”ŒŽ“Œ€~†‰ŒƒŠˆ‘ˆƒ—‹ˆŽŽˆ–•Š‹‘Š‹“’„‡”Š—‹†‰Ž…ŒuŠz‰‡„ˆ•Ž‹‡‰‰‰‡…‘‹‹‘o„“’Ž‹‹||‘‰•”‘|†Š˜…€„s†‘†„ˆ€ŠŽˆx‹‡‡‡ˆ–‘’y‘‡“ƒŽ…‰‡……‰‘†‘Š‚’‡‹|~އ€‚ŽŽŒŒ‡…“†€‘m•”z‰~„–|‡†ŽŽ™„yy…ŽŒ|‚‚‚‚”ˆ”“ŠŒŒ~}‹…ŒvŠ”‹‡Œ‚…z–‰Œ’ŽŽ†Š”…‘uˆ‹Š“•ƒ‹†‹Œ~†—Šƒ~‚•Ž‘•މ˜Œ™‰ƒŒ’ˆ†‰‘ВІ‹‡‹ˆŽ††z‘…’Œ‚–uŒ‹†‡Œ’Œ‘…’…“‰„‰…‰‰Šƒ…‘ƒu~Ž}“}‡ˆ|‚Žz‹~y„–‡‡•ˆ‰‡‡…’Œ™†Š”v‹Š†‡›Œ‡zv†‘†“†‡‰ˆ‡z’›Š†Žƒ“‰ƒ††Œƒ…‚Œˆ‘ƒŽ‚~Ž–uŽ›x‡…{ˆŒ~‰Œ„Žƒ…‰‚–‘}”‡‰•ˆŽ‹‹w‹ƒŒx‘’‰Ž‰“…’ނЄ„‘‘†žƒŽ‰‚ˆ“‘€ƒ‡Ž†…Œ‡”’‹—‹’ˆƒˆ‡Œ†Œ‰•“Œ†Šˆ•”†ˆ“ŒŠŒ†’†‰“ˆƒ•‹Ž†|Žp‰Œ’‚ˆŠ‰’€€“Š…ŽŠ‰Œ‹Ž‹ˆ†•ˆmŒ“ƒ†ƒ†‹‘‚‰‚‘„‚‹‘•ˆƒ‹ƒ‡ƒ|‹†‹š|Ž|‘†‡……Ž‹‘–Ž”ƒq‡ŒŽ†“„ŒŽ|‘›ˆŒ‚‹Š”€zx‰Š’€‡„—‘ƒ‚„•wŽ¢z†ƒŠ€‡‚……Œ”“€‚‹……Ž›‚…|’~Ž…‰“u…ƒ€x‡•ŽŠŒ{Œ—Š“”‚‰†Š•œ‡‡Œ~}Œ‚…’‘‹‹†‹ŒˆŒƒ„~‹‰Ž‰ˆŒ•“ŠŽˆ‚ˆ’‘މŒ‘‰ˆ…•™‡†„Œ”‘„”p„~‚‚”•Œ€Œ‡‡•‘‹Ž‹~o„’—…‹}p’“Œ‘ˆ‡ŠƒŠ‘ˆ‡‰†‡’……Ž’‹”’ŽŒ„}{ˆ…†ˆŒ‡Š‘‹‰‚‚’†‰‡‹ˆ‹zŠ‘œŠŽ†}—††‚€†ˆ‡‰’ˆ…ˆˆ€…‘‹‚…”pžw‡Š…‡‹ƒ‡‚ˆŠ~‹Š„’”…І„‚˜ˆz‹„ˆ‹w€ŽŒŠx‰z‚‰‹Š‰Š”‰Œ‘Žˆ„†”‹ŸˆŽƒˆ’…Œƒ‡Ž‡€‡ˆ†ˆ|‘“Œ‹Ž„‚…‡Œ…ІƒŒ“‘ˆŒŒ”ŠŽ†›‰‹‘Ї‹ŠŒ‚ŒŒ‹ŽŠ‡Œ‡‹s‹„†…‘‰Œ”‹‹‡‘‡‹‰Š‹”pŒ”‹ŒŽ}‰}‹ˆ‰’††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††ˆ‰uŠ}ƒˆ‡‹‹Ž‹Žy„v|‹†ƒ‹Š‰…ƒžŠŒ‹‹‡‡—††‡’’zŽ…œ‰Ž}„ˆ‚‹ŠŠ…§’ŽŒ’„‘o~v{˜†Š”’Ž}’v{‹v‘„s’ƒˆ‘…|ql’ƒ‡†ŠŒ„…‘Ž˜o†‚‚Œƒ”Š’‹ƒŒ’„yƒm‘{Ši¼ulˆ“sŽ£“„}‡yzv¢”ltgzoŽs_s|–›p‰`–m…š„«•Š¨—|y±„“m‹”–…›‹~•y™‘u{„‰–{‚q„}yŒ¡‡{ˆ’{d‹t~”Œƒv… yg‚™Œ‹Œˆy…}v§†~†Œy‹w|~…„‹‘…‰‡ŒŒŒŽˆƒ~‚‡„ˆ}†ŠƒŽ‰…„€††ˆŠ–…‰†ƒŒ}„‰ƒŽ’†Ž…Ž„Š†Šˆ–ƒ„‰……‰€ˆ~‹‰}~{‡Œ„‰~‰„Œ†Œ†‡~ˆŽ„†~‹ŽŽ‡ŠŠ“‰Š‹…‰…‹„‚|Š~‡‡ˆ‡ˆ€Š‚~†‡‰Š‹Š„‚‰†…€‚ƒ~…ІЄŒ…†Š‰‹‚…Š…‰ƒ…‰ƒ‰ƒƒ†„‚ˆŠs}…}ƒŒ“Žƒ‚„…ƒ†ƒ™’Œ€‰ƒŽŽˆ}“|†Ї€‡…Œ‘…†‘ƒ}…Œ‚ˆ‰ŠŠƒˆ†„ˆ‘€Œ…‡†‰„|„†ˆ†‰‡Œ†††‡†‰††‡‹‚††…††ˆ‡†Š…‡†ƒ…††‡‡†††……†ˆ†††ˆ†ˆ‡†ˆƒ†‚†‡…††‡†††‡†‰†‚†…†††…†††„ƒ‡‡‡‡††††‡††††ˆ††‡ˆ††Š††ˆ†‡††…††…ˆ††††‡†…ƒ†††‡†††‡††††††„…†……†††††††‰…††…††††……††…†…‰††††„††††…††ƒ†††††††ˆ††‡…†……††††………††‡†…†††††††††…††ƒ††‡†‡††††††…†††„††††…†††……†…†††††††††††††††…††††††††††††††††…††††‡†††††…†††…†††…†‡†††…††††‡††‡††……††††††‡††††††‡†††††††††††††…†…†††…†††‡††††‡†…†††…††††††‡††††††‡†‡…†††††††††………††††††‡††‡†††‡†‡††††††…‡†…†…†…††…††††‡………††††‡†††‡†…‡††‡†‡††‡†††‡††‡‡†‡‡…††…†‡‡††††‡††††‡††…†††††…††…†††…†††‡†…†††…††††‰ƒ~u‘•ŠŒŒw‹†ƒw‡‹„}lƒ‹‹ˆ‘ŒŒŠ„†‘y–ƒ†‰’ЇzŠ‹ˆ‹—Š‚…Š‚x‰q‰yˆ†‹yƒ’Œ‹‚€‡‹’ƒv{”~š…}ˆ…xˆ~„|‚Ž‹~zŽŒ’|‹ƒ‹Š‰„yŠƒ‡„ƒœ‚zŒ†„„‰}“•…y‡u•‰…‡„ŽŽ‡“‚ˆ•|‘‡vŽˆ˜Ž†ˆ—‹Œ˜}‘‹‰„††ƒ•ˆŽ™‹‹‘–€†‡ˆ~z‚’…Œ…’„–†‹‘„‹Ž‡„w–r€‹‹|“•†{ˆ„Œ€–މˆˆ{Šxy†ƒŠz„’–‹…††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††…††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††‡†††††††††††††††††††††…†††††††††††††††††††††††††††††††††…™……І„‰†‘†ƒ…€††††„†††…„††………‡„ˆ„††ƒ„…‡‡‡††‡†ˆ†……‰†Ž†Š†„…„†‡†„ˆ„…††……†††††……††Œ€†…ˆ„‡†ˆ††††‚†‡††…††‡…†…‡††…‡…“‡‡†…„‡††‡††‰‡‚‡†„……}†ˆ‡††‡†††††††}…†…†…††††††‡…„‰††ˆˆ††…Š…†…ˆ„…††‡…‡……‡†…†‡‰……„††ˆ‡…††„††……††…††††„ƒ†‡„…‡…‡…‡†…‡ˆ‡…†…†††††††…†‡…††‡„†‡‡‡…‡†Œ…xŠ‚„‹†ˆ‰‡‰|•Œ’Š’‘†t~Œ†ˆ‡‹Œ‘‚ƒ‰†„{Žƒ•Šƒ†{“”›‡—˜‹‡ˆ„‘r…ˆ†~ˆƒ†Š…‚{Љw„}…‚€y…†…ˆ‹…„Œ‹‰‰”—…{‘’’—€‡‹’y‡‹‹‡{…‘”}xŠ–…‚Œ•„Œ†’–€‰‹¢~…€†‘}…‚y€ŠŽŽ‡}Ї ’ƒ‹”šoŽ–Œ‡€|‚•‘Š£Œ|†‘‚‡†™Ž‰‡„…‰Œ‘އ“z{Š•†ˆ…‡†‰ˆ‹”‰|‡•‹xŒ‡„x˜†Š‰{ކ„„‰‰‘~…†„–˜……}……|~ˆ„ˆŒ†‰}|„Žˆ‰‘•”„„‡’“{‰Œ‰‡„„‡~„•’†Š„„|€¥Ž€~‡ŽŽ‘”Œƒ‰’€Žl“v‹„‰‘‡Š’Œ„~z‘‡ˆ‘€…‰‚˜‹Œ™‡‡Š‘Œ{~‰Ž’}Љ‡Š‘„‚™z’ƒ‘Ž“Œ‹‹‘–†ŽŠŠ˜Œ•Žƒ‹ŒŠŠ‰€‡“‰Œ“Œƒ…|–ŽŽŠ}“•—‡‰“Œˆ˜“†‡Š‡Š‰‡‰†…ˆ‡ƒœyŠŽ…x†ˆ‘•‹’…‡‡ŒŽ‚‘„|‚‹‡wŠ“ˆ†Š}ˆoŽŒ‡‹’‚‚|•‘~ƒ‡…s–‹–Œˆ{yyŠŒ‹„’‹~ˆ…‰˜Œ„•‚€‚u…„ކ‚‰™…ƒ’Žu‹Ž”¥€‡›‰›ŒŒ‡†{Œ€š„s™ˆt{†~ˆ‡ˆ‹}}™‡‰x”ŠŽy‰v–“‡œw‚€|€‰……Œ…‚‹”ˆw†‡†‡Œ”……€Ž…z‡ƒ~vŠ…žŽ—w›‡Ž—•„‚ˆ™‰‘}Š’–‚ƒuŽ…ŠŠ–†‚ˆŒˆ{‡‘–‰Œ{’•ƒŽ‹‘‡Š……Œ|€‡‰}mˆ—˜‰“–~Ž†ŠˆŽƒ†‰{{„€Œ€…‘‰‹ˆw™Œ‘Ž›…{k€‚tˆ‚“ˆ†~…‹{yv•އ‡ˆ†ˆ~šˆŠ™€|ƒ”ˆƒ~˜•…”‡€˜ˆ‚‡–†w{Œ›Ž”žŠŠ’…u€{Œw~Š–{{•‰„}’ƒm‚ŠŽ‡”€}Œs€{ƒ{€‰‘‹‹‡…ޔޕމ¡™˜‚‹‘’€Ž…Š‹w…•Š•›…|†‚z£Œ’™”Žˆ “‰’z‹~–•Љ‡‡…‰‚Šˆ}ŒŒŽ˜Š’ˆ–““„‡q ~ƒ€m„Œ{•…”Œ–Ž|‹Šwƒ|‡wƒ’‡q‡€Ž‘†ˆŽwƒ‘€ˆšˆ~‚{Œ„…“‡ƒ‰‹{|„tu…•ˆˆ|Љˆ~“ƒ”ŠŽ}Œƒ†€†‘–‡‰Ž…ˆ{”œ—‰£ƒ…ŠŠ†Œ”…Ž~‘“~v‘‰|x{}‰z„•Š˜Žzx}Žˆ‰x‘Žw‡{‚y™˜™‰„ŠŠ‹~’†’€…‘‚‚’ˆ€w–~”’‡™…‘Š€•‡ˆ‡|Ž„–‰˜–„—‘š‰‹†‡•‡‡‹‘…‰‚š—”Š ‘uŽƒšŠˆˆ‘Œ‹—Œ’}„yŠˆ‹Œ‚††‡ˆš~›p|s‰€“‡ƒŒ‘•}“Œ„‹‡ˆ€|…‰{‚zƒ‹“ˆ“zŒŽŠ’„‰{„””†ˆ}Œˆˆ‚Ž}{‚|p{…‡“‡ŠƒŠ}—‚†…{‰ƒ‚rŽ•‰}‹‹‡„‹ŒuŽ•Œ€w|ˆ‘‡ˆ“‰……„ˆ|‘zŒ€w–‡~{~†ƒˆ…‡’u}”‹t‰„†‰‡“•ŽŠ…މ‡”|{……ƒˆŠ‡‰…“‰…‰Š~‡‚•…Œ’ŒŠ‚ІŒv{‹Œ‹~ކ’ƒ…Š“‡…‹ƒ…‚Š~’‹„‹‘ƒš‚ŠŒ„‚Ž}“Œ‘Ž~‘€‰…Œ†‹ˆ‹Œ‚…‡|…‡ˆ‘‰ˆ‚ˆ…‡‹„Žƒ€†ˆxŠ…‹}…ŒŠŽ~‹y‘‰‡‹‰Ž††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††~…Œ’ˆˆ{‡–‡…o‡‹Š‹ƒ†v†„„„„ˆƒ‡ŠŒ‹ƒŠŽ†‚†ˆˆ~Ž‚‰‰‚’ƒ‰Š‰Ž‚”†’Š€‡†Ž}‘Ž~†Œ‡ƒ~€‚Ž…~“c~„ƒ“Œžކ„~uŽ–…›¢‘|‡ƒ…‰‹‰“‚€‹v‰‚‹…‰q~ƒˆ‘ŠŒ‘‰Œ„“Ž…‚•†ŸŒŠƒ|‡‚‹ †‚„wzw{—ƒ~‰†`‰“…„›—ƒ‰Šy „r|¦†‹€‡“…yhŒ†‘Žf•ˆ}qŠ”‰Œ‚’mšx‡„‡z‡‘‰‰††œ•Š…~…“ˆ„„t›‰‰¤‚•„ˆ˜‹”’{}†yy{tu’‡trk†—Š~†}ƒ‹˜žuz‚q{wŽ„k‰x–•r—šw’o‹“²‡t¢Š’jnmŽ„ ’Ÿz“t†‰™aw—ˆŸ‚~Œ„˜rv©‰”k¸¢‚Š„a“‹€¡†Œoƒ‰…l††•„…ˆŒqƒ„z–‘Œ‘Lv•r~‚ww}Š®€u…‘oŽ”‡©†…”†Œ•|…Škޥޒ”}yŽw“‡|€^f‚‚q…‚q”…Ÿ…z°˜–ˆ…‘rŽ–wž™…~–~‰‘”²{‡rƒˆ‘––—~„†l€r•wvž|{eŒ †™„’Œ…ˆˆ‘„ŽŠ‡‰€‡‚‡†ˆˆŒz‰ƒq‚“ŒŒ‚ŒˆŒƒ‡ˆ€‰z‡{v†Žˆ‚‘ˆˆ„ŠƒŽ‚††Œ†€ƒ…ˆ…‚‹y‚„ƒ…‰…„‰|†ƒŽ‰ˆˆ‹…‹…„„ƒ|Œ‰‰rw‹‡‰†Š„…ƒŠŒ€„‹Œ‹Ž‚|‚‹ˆ„ŒŠˆˆ{†ˆ‚‰Žƒ‘„‘…’ˆ…ƒŒƒ†‰‰{‡vŒ„ˆ…Šx†‰‘{Œ‚ŒŒ€Ž‘’‰”‡Š‡†“Šˆ…ƒ‹ŽŽ…‰‚……ˆ†‡~…†‡€‹Ž†††‡‡Ž‹Ž‚†‡‡ˆ†‰ˆ‹Š…ƒˆ„…ƒƒˆ†††††ˆ†††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‹‡‹{†–……ˆ‡‰Žx™“’‚‘‚yx‰y„ˆ…™”Š…~’|ƒŠƒŠy‘”œ‘|’‡ˆx†‰‹†‹ƒz‰’‡‹“|†}”q‡–wŒ“|†’Ž{†„„‰‡ƒ”™ˆ’y˜‚އ”‰…ˆ„x…Œ”ƒx‰Œ„‡˜…‚…—ˆŒ‰ƒŽŠ‹’™‹„…ˆ‡‹…‡ŠŒ‚‹…Œ•’ˆŽ†ƒ‰„Œ‰‚ˆ‡’Š…ˆ~‰•ޓމ•‹‡‰‰’’”‰…“ˆ‰ƒ’q‰ˆ‹‡‰Š‘Ž•Œ“„…‘€Œ‹p‘Š–…‡{~‡Ž~‚†‹’zЂЋ„‡‘‹†‰†‡’‘“…„ˆ‰Ž„Œ‹Ž’ކ…ŠŽ‡…‡„‹x‘ ‰‘‰~‡ƒ†ˆxˆ†•‚‚‘ˆ†‡†‡‹–x‘y†‡Ž„‡‹‘ŒŠˆ„ŠŠ†€‘–„‚ƒ‡–x‚„‘‰v†Œ‹ˆy†‹ˆŠŠ†‰†˜‰‰ˆŒ‰ˆˆŽ‹œŠ‹}†’ˆ|„Œ‹ˆŽ‡…{‰‘ŽŒŽ‰‰†ˆŽ†ŽŠŠŽ‹„„‰‹‘‡††‹’ŠŒ‡‰Œ˜‡„‹†„‚Žq†ˆŠˆ‹Ž‰Œ‘„–†ŠŠ†ƒ‹ŠqˆŽ‰‡‚yˆŒ‰ŠŠŠ‡…’‡Š†‡„‡“‹”Š}Ž’|ˆ„„Œ‹†‹‘‡„††Ž„x…ˆŒ‡Žx™Ž¢ŠŒ‘…~‹~‡ˆŽŒŠ…‘€‡‹Œ‚ˆ‚ŒšsŒ—z„††††‡‘†Š†€Žˆ~˜™‚ˆ—ˆ…“zŽx‡‰’‹t€‘‰y…’‰‚z‡„„“ŒŠŒŒ‰†‰ˆ†’š‡Œ€€Š}‰ŽŠ„~ކ|†‘Œˆ’‹Š„ŠŠ‹†Š…‹‰ˆ…‘‹’‰†Ž‚‘‰‡’”†‘†Žƒ‘€ŠpŽ‹…Œ…ŠŠ†’ŠŽŒŒ‰ˆŠŽ‡qŽ‹‹Œˆ„‡‰‰Š‡„Œƒ‹w…ˆ††Žˆ}‰‡’Ž’‡–u…‰€„‡‡‹“„ŒŒ„„Œ‘‰ƒŽˆ|Œ|ŽŸŠ‹}zŠ€‚ކЉŠ|†Š†…†‰”‘uœw‡–Ž{„‰Œ“†€ŽŠ„ŠŽŒ„’™|€”…•€‹x}~Ž“‘t…Ž‘„y……Œˆ‘ބދŒ‹‘}‡Š…Ž¡‘Œ‚~ˆ‘†Š…“‡Œ„}‚•}}”“‰”’„…‹Œ‹…”‹Œ…“‰ˆ‰‚•އ’‰‘‹‰—ˆ…‹‹˜Œ‡ŠˆŽƒ‰tŒ‚‹Œ‰††Š’‘”“‹‰‡ŠŽ‰p‚‘Ž…ŠƒŒ~Ž‘{‚„lŠ…‘w‘“€xƒ…ˆ}’}ŽŒŸŽ‚ƒ…‡„Ž‚„’‚“wƒz¡m‰†}ˆ„ŒuˆŽ|€{£Œu•–z€t‚ކv£ƒ|…އ‚Œ•‘wŸžƒ‚{‚ˆ}™’€–‡v—‹„—}ƒŽŽz†s‚„uz„v–‡v‡p‚‚‚•Œ„œŽƒ‰Ž‰k„‹dƒ½w‰‡‚€’|oƒ[€ˆ€uœ¢|rŒ{~Š{—…ަ‰™Žb’Žƒr˜‚•uv|„Š•…„…—„Œ„{‰“‹€‡„€v‹}™Œž‡z”Š€ˆ‘yŽš……j†…Šœ˜yŒxd‚y†—Œ†„•€}–~‡’}™ŽŠ…‘Š‹€‡|ˆŠ‰–wˆ‡“†‘ƒ‰ˆ‹‚ŒƒƒŠv‰’Ž’Ž‹y…‡‡‰’–|†ŽŽŠŒ~„„˜yŽ˜y“—|‘r‹ˆ’€’Љ›‡|‹‡‰…Ž¡}……‡’zŒuƒ†“އy|‹ŠŽw††Š–‰‡ƒŠš‹‡†{‘“‘—w””v“z‹…“Œ€™Œ€„ˆŒ˜Œ–‹‰„‹ˆ„‹“†ƒŒ™Œƒ”‰‚‹Š‚†–Š™Œ’•‡ŽŠ}Љ•‹yƒtyƒŽ…“ŽŒ•ŠŠŽ‰Ž‘…ˆŠ—…›Že”’…‚|’€‹ŽŠr†‡†ˆ…††††††„†…†…†††‡††††††††††††††‡††††††††††††††††ˆ†…†††††††††††„†…††††††††††…††††††‡††††††††‡†„†††††††††††††††††††††††…††††‡†††††††…††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††……††††††††††††††††‡†††††††††††††††††‡††††††††††…††††††††††††‡†††††††‡†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‰‡Š€„Ї‡ƒ‚…ƒ‡†„†‡†‰…‰ƒˆ„’‰‰…‡……††€‚„Œ~ˆ…Œ†•ƒ‰…‡‡Œ†„~…|‡…€}{…ƒ‹ŽˆˆŒŠ‹‹ƒ‚‚‹†ˆ‰Œ†v~„ƒu‡ˆ„‹ˆ††„„ƒ†‰œ™ŠvŽ…ˆŒ†‡‚ˆŽ„‡€~„…ˆ|„ˆ~‡ƒ‡‹…‡Œ~†††„…’……‡x}}™‡|x†„ˆsz„Œ‚‚Ž}‡€’‰ŠŽl‹ƒ„ˆ‹’vƒs…‰…{އ‹|‘…„„}‡Ž{„š…y“…†{—¢ƒ‘†•uy‡”ŽŽ‚›„„††‰Ž„‡‚w‚“y†††‡††††††††††‡‡††‡†††††††††††††††††‡†††††††††††‡††††††††‡†††††††‡†††††††…†…†††‡††††‡…†††††††‡††††††††††††††‡†††††††††…††††‡†‡†††††‡††††††††…†††††‡††‡††††…†‡†††…††††††††††††…††††††††‡††††……†††‡†‡††††††††††…†…††‡††††……††††††‡…†††…††‡‡††††††††††‡…†…‡††‡†‡†††ˆ‘‚|€Š“Œƒ…|uyƒzŒƒŒ‹…}w„{z†}…‡ˆ„z‰…ŒŒˆƒ}Œ˜„Š}ˆ{–~„“Љy |–‹‰Šv~•€‘‰~„Іx𑄇€z…‰„‹‰Šx†…‰…}‰‰‡ŠŠ‰‚“‰Œ†~’vw‚w„ˆ•‡‹{€ƒ†‰”q†‰–~ƒˆŠ‡ˆ~|}Ç‹wˆ’•ƒzv„‰‰’}Ї„{ƒq‰‹Š“xtˆ‚ƒŠŽ’‚‰Ž‰ˆ‹ŠŒ‚}wŒŒ|y†Œ‰ŠŠ€†ƒx‚š‡Œƒ’†€„Žz•ˆ{z}~‹ˆŽŒvŒi|’…ˆŽy~šŠƒ‡…Œ{Ž|‡€Ž‹}ƒ„z›‰†ˆ‚ˆ‰‚…†’І‹s‰Œ‡w‘ŠŠ„€{…yxŽŠˆŒŽŠŒ’’{‡…ŠŽ‡…‚‚~‘ˆŒ’xƒ…†‡€’~‰‚…x{š~’ŠŽŽtˆ‡ŠˆyŠ’‰|“yv}Š‚‚‡~‚y‡vŠzŠ|„˜š€„‰‘ƒ‡‘„~ˆ†š~ŽŽ‹Ž}‰“އ†„~…‰}{}‚ŒˆwЄދ~—r‰’‰“’Œ~‚Ž„‹„}€~…ˆ‡ƒ‰ˆ‡ƒ†‹‰|‰€‹…‡ˆx–}†€Ž’…|Š€Š{‚„z†ŽŽ’r„“|i¥­ut’ƒ”„vt‰š“Ž”Œ—ˆ‘šŠŽk‚ŒŠŽz‹ŒŽy‹…uˆƒ €Ž™šj„¢o‹ŠŒ‰‹‘«¡™ƒ–šs’v‡š‹ª w“©š•€m’ƒ‡“‰¤tº“~‰›y†ƒ~~|}‰›‰|{Š©€mƒV¤Ž|€ˆg–ˆŠ˜†–”ŠŸ‚Œ‘€‚“‰vu–pj‰Š ¬†’ymv…ž€}ˆ‰pŽ—Ÿ„šŠ—|†ŠyˆŠ€„˜Œx†u”‘•†ƒ‘™‰p‹k§›‰yކІ§|‚x„y‡€Š™—ozmt“€ˆ„†s™”~™Ÿ …rpŽ‚—f„ƒ……ˆƒˆ„†ŠˆˆŠ‡†„ˆ‰ˆ‘‹†‡Œ‚ŠŒ…€†ƒ‚‚…Ž‚‰ƒ•…†‹t‰Š‰…ƒˆˆŠ‡‰Ž„†ˆˆ‡‰†Š‰…}‰}Љ…€‡Œ„‰‚‰ƒ‰ˆ‚€†††ƒ‰ƒ‹‡‰ŠŽ‡ƒ†ƒ…”ˆˆ’ƒ„„€††„†Š„‰‰ƒ€‹ŒŽ†“ˆŽ€‡v‰ƒŠ‘‡‰‹|ˆ‚‚‚‹Š‰{„ŽŒŠ}Œw‘‚…ˆŒ‡{އ•y‘ƒŽˆŠ‡ƒ}‰„„‚y„Ž’ƒ„ˆŠ‹…‚ˆ’„ƒ‰’{…‰Š‚Љ…‹†‡†€‰ƒŠŒƒˆzˆ†‡€…„z{Š|ƒ…‹†‡‹‡ƒ€€ˆuˆ‚pŠ“•€ƒ˜y†‰v‡€ˆž…Љt{ Žw„~‘“¡y–‘‘cŽˆ“‰˜ƒ‰Œ„‡’Œˆ‘ƒŒw˜ƒˆ}Š˜‹‹‹{‘‰ƒŠ—……z‘uŽ”zv…ƒ~Š…~ƒˆ…‡•‚މ†š†‘Š‚›‰Œvˆˆ’‰„|wvš’ŒŒz›“€“–‚š†}‹„ˆz†‰†‘Ž‘‚ŒŽŒŒƒ}’‰‡ˆ‰“…’€•Ž“†•‰‡“‘‹”‹“”…€‡ƒ‹‚€‰”…‘p‡“Ž|Œ‘‡|”†Š‰’ˆŒ‹„ƒŒ‰’oމšˆ‚x™„ƒŸŽ…Ž~ƒ““ŠŒ‚‰’ŠˆŽ‘‰Š~t‹‡~†Ž”„•‡’“‡Œ€ŽŠ’‰ƒŒŽ‚Љ‹ŽzyŽ…‹xЇޓˆ†‘ƒƒ}‰–t’–€ƒ„†‹Ž‹‹Œ€‡‰‡‚ˆ†•‘‚…†{z“•”—–Œ‚~‰v‰|‚‹v‚ކŒƒ†ƒ††‡†Œ“†ƒ”‹“‡‚„‘Š„ˆ‹Œˆ‹†††Ž„ŒŠ†…“|Ћމ“Œ‘ˆ˜†…~œŽŒ‡Œˆˆˆˆw‰Š‰ŽŒxŒ‹ˆ‚‘†Ž’…‰‰””‰˜‚ˆt‹“ƒš˜rˆz”Š‹ŠŠ…‰„‡†ˆ‡‡††Šˆ†…„„‡†††‡‡ˆ†…†…ˆ…‰ˆˆ‡‰†††…††„‡…„‡…†„†‡ˆ…††‡†€‰…‡‰‰††„…„†‰‰ˆ†Š‚‹‡†ˆ†}‡‡‡‡‡…„‡…ˆ‰‡‡ˆ‡€…‡…ˆ…†‡„††…††ˆ‰ˆŒŠ††‰†…††„‰…††…‡†}ƒ††…†Š‡‡Š‡††…€††…„„‡‰Š‚ƒ†…‹Œˆˆƒˆ…‚„†…†ƒ‘y…‡Š‹†‰‹…†…‹…Œ‰‡†‡zŠˆ†ƒŒ‡‰……ˆ‚†ŠŒ†……ƒ…‚ˆ†‚’„ˆ……ƒ„†‡‹‹†„†‚ˆ…ƒƒ„ƒˆ„‰†„ІŒ„…„†‰„„‡‡‚Œˆ”Ž‹‡‚‰”}„Ž‘‹††™‘•uŠ‘†„ƒŠ…ކ†ˆ€•ƒŠŠ…Ž”‡z„’‡‡‚ŽŒ“‡‚Ž‰ŽŒ—Žˆ‡ˆ†‡“ŠŽ‰‹’’‘’…ŽsŠ€ˆ…Žx‹Ž‘‚‚wƒ‚‹‘‚‰|’‡–‹‹Š‡‰‡‘Š…‚‹„Œu…Œ‡‹Š“xއ‰|—€•‹Ž“†’‘}Œ‡‡’”‚“Ž„„ƒ—‹—‹–„Гޔ‹“†Š†ˆ‰‹Š‰Š•ˆ€†“„„“‡Œ‹•ކ‰–€†‰‰‹…y‘’–Žˆ‡‰}„ˆ•„y’|Љ‚‰Š€Œˆ„…ˆˆ—…““…‚ˆ„|‹ˆ•‰‹’Œ™Ž‘•‹‘‚…ƒ’Œ}„Ž…Žƒ‰‚‘‘~Žƒwy‰ƒz‚•‹‘Œx‹‹x“‡x‰ŒŠ†~†~މ…†”‡‰ˆ”u‚…Ž}Žˆ…‰ƒˆˆ€ŽˆŽŽ‹Œ‡ˆŠ€††ŽˆƒƒŽzˆ†’˜Ž~‹‘–„”ƒ‰Œ‰Œ„†“y”˜‰“…‚z‘‘ƒe’ˆ˜€†‰’”Œ|——“˜‡‡“Š‹‘’ƒw{‚š”„y‘ƒ’“–Š„—‹’‡ˆ’„„Ž~Œz’”ŠŽ…’Œ‘…ˆŠ“Œ•‹‚ŸŠ‰†{Œˆr‡‹ŠŽ‘††v‰‘ƒ‹‹„€“€—‰Š‚‰™Œ’|{t‚‰‹‡ƒ†‚‚…˜“ŒŒˆzwŒ‡ŒˆŒ–Ž~‹…‰‡•‘†‚Ž“ƒ‡‰”Œ“…–މ…Š{…‹|ƒ|‰•z‚‡ˆ„†“ˆ‡†|•ƒ{‹…ŽŠŽ‘„‹€ƒŒyˆ”І”vŒŠ’‚˜†‘ˆ‘‘‚‘‹†ŒŒ“”ƒwŠŠ—‰‰‡‡˜„˜w†˜‹™ƒˆ‹’„‹–އ‹‚~‚ˆƒ‡˜¢ˆ‡–‡‹‚‚‹ˆ‚‘‚Œ€‚„•…ކˆŠ—Š™€†u{’’†•|ˆ‡‰‡‚‡‰“‹š|‚|„ˆ•“Œ‹†‚†ŠŽ|‹†‹’”x…~}p‡Š‡z“‹‰Š‘‹†~‚Šy†Šˆz‰‘ŽŠƒ|‹„}Œ†……‰ƒ}~Œ€‘‘|ƒn’t›š}”ˆ‡ŽŽ„Œ…›†‰ŠŽŠŒ–—‰Šƒƒ“‚‰xˆ€ƒ‚{}w‹‡~Ž„}Š‚~ˆ‚{‹ƒ‘†”‡¢…ŒˆŠ”Š…†‰…’|‹ŒˆŠ–Š…Šx–ŒŽ“……“—„‹‹Ž‡‰…Œˆ“ŠˆŒ~‘‚Š…{‹ŽŠˆ‰u€Š{„‘„…†ˆ’†Œˆ•‹‘|†’‡Œr‘‰v}”ˆ€”ƒt~„ƒ†’‡‰…‰ƒ†|Šƒ‡‘“n…~}zƒ‰ƒ…••“€Ž…–‹žމƒ‹yއ‡‘—†“…ˆ‚jtŠt„…w„‹„‡–Œ†‹}Ž‘„{†—w£“{„‘Œ~ŒŽ„‡—wމ‚‹‚‹‘†Š…ˆ•ŽˆŠ‘‡…Œk~‰z’vˆŽ‡ŠŒ}‚ŠƒŽ‰‰‡}•ƒ‹“‹–‚‹}Œ•‹“„††•‰‘…‚Ž”ƒ‘‡zŒ‰}“}…ƒ„”ŠŒ’–‹†‰—~Œ‡Ž‘Œ‡‘ƒˆ›Šˆ‡Š‰„„€rˆˆ‹‹ˆ”Œ„‘“—ޔВŒ“˜Œm~‘…ŠƒŽu†iˆ‘Œ€~’pƒ‡’…|˜‚Œ‹š…~ƒ‹Žˆ‹}y…‰‹‰‹‘‡€˜{“‰“zƒŽƒˆŠ|ˆƒŒ’ƒ“Œ…Šˆv‹‡z‹‹Œ„ŽŒ{~”‚…–yšŠu‹ˆ{y’†ˆ‡€ˆ„Š…ˆ}Š‹Š‘Šˆ…’Š~‹p‚Š}Š{‰{Œ…}€‘…І…y{‘…Ž“‘‹Œ“z}Žˆ€Š‡Ž‰„™‹‡ƒ™’„†Ž’†Ž„ŒŒ‘ˆ‘ŠŒ”‹‰…‹„Š„Ž™Žƒ–„‰~‹ƒ„ˆ‹†„o€…‚ŽŽ€‹…€˜…ŽŒ…‰™†‹ˆh„„‹ŽƒrŠ}Š“„ކ„†……††…‡‡‡††…††…††‡†‡†††…‡‡††„†…‡†ˆƒ†ˆ†‡†††‡…‡††††††††…†ˆ†…‡…ˆ…†…†††…††…‡ˆ…„‡†ˆ‰††…†……‡……ˆ…„…†„‡††††…††††ˆ…ˆ‡‰†‡†††‡†‡‡††‡†‡†ˆ†…†…‡†‡ˆˆ‡„†‡ˆ†……‡†‡†„…‡‡ˆ…„„…†ˆ†………††……††††…‡…†‡‡‡†‡………†‡„‡‡‡‡ˆ‡ˆ†‡‡……‡‡…††‡†„‡„††‡†ˆ††…†‡ƒ‡……†††‡‡††…ˆ†……ˆ‡†‡ˆ…‡„†‡‡ˆ††„†…‡‡††‡Ž“u~Œ‡ƒy…ƒŒ†“‹€{~w…Žƒ†‹ƒpz‰‘€ƒ{|‹ƒ|‡ŽsŒŽ}‡tŠ|vt—†˜„‹¡ƒ‹Ž|‡~‚‡}o‹Š†‚†Švuz…Š€Šxˆ—ƒ„€yr€„‡…Œwž…ƒ~ˆ˜Š„…‚}|…„‡‰~u„†{…‰Š†~Œz€‡~š’‹~€‹ˆ€ƒ“”‰|‘~ˆ‡vŒ†Ÿ|•wˆ|r‚ª˜™‡Œ‰”}}ˆ†}‹‚š~Œ‰ƒ|€~€y‡x„€Ž{ˆ„‚Š}zn…{ƒ€‰{}~‰ƒ‰‘ƒzuw}Œƒ€–‹w“Š‚Š{†Œ…w i‹„ˆ‹†‰†”{ƒ…ˆ’„€xx†‡š‹††…‹Œ™ˆ“|„‘}‰“†‘“…’ŠƒuŠ}€z…”Ž‹ŠŒ‡‹z…zz’zœ†zŽ–w†Š€†‡ˆ|‹ŠŠ‚‹’‡ŠŒ„Ž}ŠŠ…‰‚‹i„†Œ‡mƒŒŽ„„|„„Œ‡€‰…‚Š“…Žƒ‚Žˆ”Œ~•‹Œ~ŠŠ‹Ž˜‚’‹|•‚‘ƒˆ‹†…†•’†Œ|Š…ƒŒŠŽ‹“Ž †“ƒ–ˆ|†’ˆ‹‹€‰tŽŒ‡„…ƒŽŽ‚•‘˜…‚Š—‚Š‘}qƒ‹ƒŽ‡Šv‹qˆ‚Љˆ‚|‚‰Œƒ‘ЉƒŠŠŽˆ‰Œˆ~““Œ‡Š“|Ž•‘†ŠŠŠ„’“††Š‰€ˆ‚ƒ‰‹†ˆ‹ˆŠ…t…‚‚ŽŽ”Š€ˆŽ†‡‚‡–Œ‘„‰ˆ‹•‡…‚wŽ„’‡Š‹„„†‚‡ŒŒ’ Ž‚“†‡{”ƒŠ‡†zˆƒ‹š”„ƒ‘ŽŽ•‰Œ~’Œ’ŽŠ‡‚„Š€‘…Œ•‰ƒ†ŠŠ~‚‘~‰Š•ˆ”މ–€”—„‰‹ˆˆ„‰†ˆ„Ž‹yŽ„…†Š†’‰vŒ‚‡‹ƒ‹Œ…Œ‹Š‡Š’†ŽŠ‘~‰‡‹—†w‘|ˆ…‹……Ž€w‚ƒx…‰Œ«mšˆ’}”r–¡†…z‡ˆ™™iŠˆ|Šˆwˆˆ|hny”Š„‹‡gz ƒˆˆg„t“Œ¡Œ‚”‹r‚ƒˆyˆ¢©†˜†Œ¡ŠŠ•w”xŒtŸ‚vˆsŒ°y †ƒ”y”u€nªŽœœŠz’Š™j£›žpŽŽŸŽzˆc©ŸyŽž”‚§¸Š†£²g}…t€Š™Œ¢€‘…¢~¢‡E‡yˆ˜v”ŠŠ6‰«‚zµy”†™xŠ’‘ˆvƒp“„nšx°”£s‚¤s¬{–qt­}n‹{”zƒ¡{…€u}ˆ€„€‡Œ{v„ŽŠ’‡ˆŽŠ‘ˆŠu‘ˆŒˆ~ŠŠwuЇ‚…‘ŒƒŒ”‘‹Œ{t”„Œ~’†Š‰ƒ„ˆŽ‰Šƒƒ|……Š‚‰…‡Š~‡ƒ†|z„wŠ~‹‡‘}…‡…ˆ‰’ˆ•‡†‹‘‹‹’‹…–‘…‘ƒŒ”„‡z„y‚‚†xˆ‡ˆŽŽ‡tˆ‚†‘ƒ~—ƒ–„—‘‡…•Š–‘ƒ‹‘…Œ’‹ƒ‹‹‡‹‚ŠŽƒ†‹…ƒˆ’Œ‡•‹„…‘’‰’‰‚“ŠƒŒŒˆ†z‰”˜…}ƒ‡ŽxŽ’„Š„ˆ…ˆ‹†’Œ‰ˆ—Š”~Љ‡lŠƒˆt…‰Š‹…“‡~„{…‡~†Œ†y‡††Š…‡”…„‰Š„†‰…ˆ…ˆ„‚‡‡‡„‚‰‰~i‰‡“…‡…ˆŽ‰Š‰Š…‰Š€‰‡„Šˆ”ƒ‚{‰Š‰‰‹Š†Š„‡€}ˆƒ‰Šˆˆƒ†Ž†ƒ‰Ž‰„ˆ„€‹‡…‡„…~ŽŠ„Ђދƒ‘{‰Š|€”ƒŠƒ†„Šˆ€‚‡‹‰~ˆŒŠƒ‹…‚}†}z}ˆŽ…‰Ž‡~ŠŽ‡{’І„Œ|…™ƒ‰w|‹”†•’ƒyŽŠ™†Š—‰€‰„…wŽ„Œƒ…ŒŒ“„—‰Š‚}ˆ„€y‹ˆ~Œ…………Ž€‚z‰‡„‡„‡‰{ˆx…’zv‹ŽŠƒ‘ˆŒˆ„xŠ…ˆŠz’‹t‡ƒ€‘’˜“ƒŽ“’‡w“ŠŒ‚“ƒ‡Ž……Šˆ}‚ƒƒƒŒ‰‹ƒˆƒ…}€“zz‡‘pŸ“|ŠˆˆˆŒ†‰‡…ˆˆ†Ž‡‹ŽŒ…“†€‘‚‚‘ŒŠ€ƒ|€‹Œ}Šˆ”•‰‹†x‡‹‚}‹†Š’Œ›}ˆˆ…„ˆ…Œ†–‹ŒŒ‹„‚‘‡|‡‰ƒŒ“‘œ‰‘އ†ƒ‚‡–‰“‘†Š„ŠˆŒ|†‡ŽŒ‡‚qˆ–Œ…€”‚„ƒŠ„‹‰‹ŽŒ‹’ŠŽ‰o†“ŒŒ|Œ†‰’‡ƒˆ‹†‰…~‰‹‚Œ„ŽŠ‰‡‡‰‹††Š‹Š†Œ†‹……’…ƒˆŠ€„‰‰ƒ‰‡‘‡ŠŠ„†Œ‡ƒ}ˆ‡ˆŽŽ‡„ˆ‚€‹Ž‡Š‹z‚‹Œˆ‡€‰…ŠŠ„}‹†‡†ˆ†Œ‹‚…”Š‹†‘…‡ŠˆŽ‹†ˆˆŠ…Œ‡‡†~‡Œ~‹Œ†Š”Š‹‚†ˆŒ‘…‘€Œ‰}…‰‚……Œ…„ˆ—„†‰‰‡‰‰Ž‹‹Œ‹‘‹‚ˆŽ‡‰Š}‰Œ~‡”‰‰‹‰ˆ…Œ‹‚‹‹Œ„„‡…~ƒŒƒŽtƒ’„†ƒ‡††„„…—Š€‚‰†‡’އ‹……‰‚Œ…€†‚އy’‰ŒŒ†‰‚—€Šˆ‡ˆ‘Ž‹‹‹Š’‹’„‰†‘„މ‰‡ƒ“…ˆ‹Œ‰‡ŽŠŠƒŠ|‹Œ‚›Œ{—Œ„{‰‡‡Š‡Š‡…Œ‰ˆ„—†„ƒ{”‰€ƒ‡~€€‡~Š…‰‚†‚‚…ˆ‹ƒ„Š’•…ƒ‘‡…’†•ˆ…„‘•‘‹‰‰‹•ˆ‹‘€“€‰ˆŠŒ’€‡“Žƒ’‹††Ž„Š‚œ‹‰Ž–€ŽŠ{Œ‹’‰††v“ˆ|€‹Œ‘‘އŒ““ˆ‰‹…Œyš†’–Šu†Ž‹”‡x†‹†ƒ„€ŠŠŒ~„ŠŠ~‹ŠŒƒ’€Šš†ˆ‡zuކ†ˆŠƒ‰k€…Œ‹€…ŽŠy{ˆ–ЉŒŠ“k†ƒŒ‚Œ‹‡Šˆˆ™‰ˆ‰Š‚„‡ƒ‹‹ƒ…‰€‚†‚‰‰ƒˆ‡|‡”}–{‰€ŽŠ„€ˆ‡ƒ‚}ƒ‰Œv‡€ŽŽŒtŒˆ‡žƒˆ‰x‹‡‚ƒ‹{‘w‚‡‰‘‰ˆšƒ‘Š‹‡Žˆ–Š”„ƒ‰‰‰Š†ˆƒŒ‚Š‚“ƒ…„ˆŒ{…‹€‚‡Š‡‹ŒŒz|•Š…Š€…‚Œ“zŽ|„Šˆ…~z“ˆ~ƒ’Œ„‚‹††}ƒƒ†€{‰~…€~”€Œƒ€€Œ~uŒƒŒŽƒ‰wt‡~„Ї‚}ˆ‹~‡”ˆŠ„|‹tv€’‹{‹ŒsŠ‚‚†ƒ‡‘ƒssƒ„ˆŠ|‹Šw‹…•‰‚|Š„‡‹‡}”r•…‰ˆ}„Ž„‰Ž‚}Œ‚q}‰‰‚ˆ}~Ž~†…‰zy„Žy‰Žƒ…z†{–…‰”–Œ‚††„{ƒv‹ƒ†…zЇ€w{ŽyŠ…‹’„„ƒŒvŽ—…„‡„Œˆˆ‹ˆ‡„…‹qŒn€Šƒ‡‡’{‡‰“Ž~…‡–zˆ}„„z•‰ŠŒ‚…xƒy”‡‡…|}y{‡‹€xŒƒ~Ž„Œ†‡€ŽŒyŽ…Šw†{ˆ‚‰Š‘˜‘”~†‰“Œ˜†Š‡‰…‘€‚”…‹“‘ŒŠŽz}ƒ~z–‹Œ—Ї‰Œ{€‚€™vž‘}…‘’†‹ŠŠ~‹ŠŒ‹‡‚…•…‚‘‚ˆ‹ŽŽ†ˆ{ƒ‚|}‹„’ƒ…‚ƒ…ˆ‹‡‚“ˆ“†šƒŽŒ}‹Œ„†…Š“ƒ†…ˆ•…ކ…‡ƒ‹ŽzŒ’ˆŽ•‚Žˆ’ƒ‰š…‘’‹‘‚ЀІ’ƒƒpŽŽ‡††”„“‹Š’ˆŽ’Š›Œ‹q–‰‰ŒwŽxŠŒ‰›ˆ†„„‰~€‹†‹“ЄЉ†Œ•~„‹†™ŒŽ„Œ… ŠŒ€Œ‡‰‡‡‚Œ}‹„‹‡’Љ‡”…†Œˆ‰…††‚ˆƒ{ˆ‚‹Œ{Žv†„Œ~†’„}‚ŒŽƒƒ‡†‰‰…†‹ˆ‚wІ†‡ŒŠˆ‡‘‰€‰„‹ƒ~†“yy‰‹„ˆƒ‰‚‡‘—ƒ|‡’‰…‰Š‘‘†‹‹ˆŽ~}Œ…Ї„€Š…‰„ˆx‰‹„އ“ˆ…Žƒ’‰ƒ†‰Š‰„~‰•‹ˆ‹~‡†„‚„zŠ‚“Œ‚zy‹~…€‚Š…|‡‡‹†{…y~Љƒ…†‡Œ‰ˆ‰Ž“‘v…˜¨r}‚†h{{z„°|‘‡Ÿ‡†Ž€–gtsŽl„…p‰Äs€‘qŠ…e‘Dbtƒƒ†Š‰@‰“„›Y€qo lU¥œa˜ˆ™x§ ˆ‹Œw„†šŸl€‰trD~ŸnŽ”ˆ³y–ŸyŠ—„u—‹‰’†vy‡ªt…W|{|€qxŸ‹•›r‹‚“ƒˆwˆŠŒŒ‡yLŽsv¤uŸ«­G~ƒƒm„g‰¶ƒ”–f‰ƒ’…q…hg„ljµŸd–uœ˜g‹a˜œyy…“|~¢s€Ž…œdšŽ†}yˆn}£˜€ƒ}ŠŒvœx‘€‘Šyež˜§“†v{x‰ƒ…†€‰‡’‡ƒ‡Œƒ~…‹”Œ‹Š€~‰‰”‰‘~ƒ”’‚ˆ”Œ‹Œ—…Œ…Ž‹ˆ†‡ƒ€‡ŽŠ‚~އ“’‡‰‹‹€~†—}•”|†ˆ‡ˆ‰…ˆ™„…‰‰‡„”Œƒ‹‡ŠŠ’Ž‹’‹‰Š‡‰{’w‹‰‡‰„Œ‹‡Š’‹ˆ‡“‰—„”}‹„””‹ŽŠ†ˆŠ‚‹‰‰’‹Ž‹‡‹€‹…”}†”Œ•’€’ބޔŒ†˜‚ˆŒŠ‹‰{ŒƒŒ…Œ…Š…uŽ“‹€‰‚”…‰Œ‹‹ŒŒˆ‘‹‹ŽŠˆ‡Œt‹†“ˆŠw€ŠŒzu—„ƒ}”˜†ŒŠ†ˆ†Š†„”z~{{‚‹‰Šƒ‰’”Œƒœ…ˆ‹‹…‹•†‹‘𓋇‹€…vz’Љ|{„Ž‘†‰†|›•ˆ}‚‘{˜{…„‹wމ …’qŽŽ„’‘”ƒŠŠ„‘ˆ‰‰‚‡v„…yŽr†Žz†{‡}“‹Œ‘ƒŠ˜€ˆˆ˜|Š•{ˆ–Œ•‚ŠŒ’‘{y‡Œ˜•‡‡ŽŒ|ƒ”…›‹‡•“Ž˜‹‹†™{‹‚”‰”‰’…„—††ŽŒŽŒ’Š„n‹‚•†z’‘‡“‹ƒŒŒ‹‹‰“‡vŒŠˆyƒcŠž†††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‰“ŠŠŠ†ˆ‰€€€ˆ†ˆ“ŒŠ‰‹Œ}Ž’}‚’ˆ‹ˆˆ”ˆ˜…‡€…‰Š‰‚Œ~‡„}Œ€‚‹—†‘Š~‚‡“…ŠŽƒ„u†‹…„‹ˆŽ{†Š{މ‰‚ŽŒ…˜†r‹ƒƒˆ„Šˆ…’‹‚‹‹…‘†‰ƒ‰‚|Š’•‚†–„Š‹ˆŠ}ƒ–‹“ˆ†ƒŽ~‰ŠŠŽƒ‘•‰‡ŠŽ}Œ‚Šƒ‡}ƒ‰„Šv’ЇІ’ŽŒ…ˆƒ„”‘‹‘ƒ“†‰•…†}†‚•‹Ž‰~ƒŒ…‚†€†Žƒ‡„ˆƒ†‚ˆ‘†•‰އ‰ˆ†‹†‰‡‹Œ‡ˆ‰|€€‚‹„ŠŠx’”‡„p„Ž‹–—‘‡“ƒv”‚„ŒŠ’‰ƒ‹Œ††|’z}…ƒ‡Œ‡Š™†”‘•–Š’‰ˆ„Œ‹‰‘…ƒŠ†ŒŽz …˜–q„†Œ’}•’އ…„„‘ƒ€ŽŠ‚ŠŽ~Љ€†„Œ~~‹ƒtƒŒzƒ††•‹†„‡Ž…”~Žˆ‰†‰ˆ~Ž’Š~‰–‹Š’‡ŽŒ|ˆ‹”Š‹ŽšŒ”†Œˆ‰…Œ’‡‰“‹•‘™‰Œ˜–…ˆ‡‹ƒsހއ‰Š‘„‘ˆ•„‹‡Ž~Œ•†’~‡“ƒ„…£‡…„–~“Žr~ƒŒ‰“Š„~z’ˆ‰“Š{Œv†}…’’~~™”’…Š‚‘…Š‹œ…|‹Œ„†‡‰‰y€~r‰”‰•‰‹“ƒ‘’z’…ˆŠƒŠŽ„މ‰…‘Œ‘Œ„‰‹‰{“‰‘‰|oƒ”’x„‡’Šz‚tŽˆ…’‘Œ•†“‡‘‹’„‰‘†„|’Œ‡‘‰’‰‰ˆˆ‰†xƒ‹Œ‡’†…“„–œŒ‰‡”Š‹—ŒŠ“‰…„Œ€ƒ„‹ƒ’€†‹Š|‰‹’Ž”‡‡…ŒŒŽ‹†””‹ŠŠƒ‘Šmƒ—‰„„x“x…‰Š‘‰‚…zƒ›‚”‰ˆ–‡‘Ž”x–†‰‹‰‰wrŽ’‡}~‰Ž}”‹‹|u’†ˆˆ‚„ˆ‰~ˆ’‰‰‹yyƒˆ‹tz…‡ˆ~|q—z’ˆŠ~ŠŠˆ—ƒ‰‹‡Š‰Ž|™ˆw‚“†š›ŠvŒ|ˆŒt†‡‹”‰ƒrŒ’„ƒŽˆ„{œŒ˜™Ž’ГЇ’„“„†Šx‹™†Ž˜†„’Œ‰„މ‡‹Œ“‹‚‹‰‡Žšˆˆ‚“‹ˆ„Œƒ€Ž–„‹{‹‹˜ƒ‡„‹uŠ‹˜ˆ…–~’…Ž’‹Š™Š–€‰‡†‰j•‡ƒƒŽqŒ{†‹ƒˆ‡„†…‡‡†††…†††††…††††‡†††‡ƒ‡…††††……†‡††††††††‡„†…††††††…††††††††††„†…†††††††††‡††††…††‡††††††††††‡††††††‡††††††…††††††††††††††‡†††††††††††††††††††††‡†…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††ˆ††††††††††††††††††††††††††††††††††††††††††††‡†††††††††‡††††††††‡†††††††††††††††††††‡††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡~ƒ‹„ƒ‡‰‹Œ‹Œƒˆ††‡‘‡…‡Œ‰‹Œ„†Šˆ„„††ˆ„Œ‰‡‡Œƒ‚†…‰„‹†ˆ‰…‡…‰†††…ƒƒ€…‡‹„‹‰Š†‰…Š}…‰†ˆ„„Š„‚†‚‰‡‚ˆŽ‰‰ƒ†€ƒŠ€Š„Š„“‡Ž…Œˆƒ‰Š‰‚€‡~ˆŒ„‚‡‡‹wˆ{‹‹†Š“„„‰|„‹}‘”uƒ‚‰„u„|Їƒ‰‚‹…ŒƒŒ‚ƒŒ‰‡ŒƒŒ‡‰ŠŒ„‰ˆ…„Ї„‡‹x„‰~Šƒ‡‹…„†ƒ„‚†‰ŠˆŠy„†‹‡Š‰‹„‰„‡…•„‰‚‰€‚’}†…‡†‡‡†††††…†††……†††ˆ††…‰‡……††ˆ†„††„†††††…††‡„††††††††…†„†††‡††††…††††††††††††‡†††‡†††††††††††††ˆ†††…††ˆ††††††…†††††„†††„††††…†††††††ˆ†††††…††††‡††††††††††††††††††††††††††††††††††††††…††††††††††††…††††††††‡††…††††††††††††††††††††††††††††††††††††††††‡††††††…ƒ‡…‡…†‡†††‡†††…„†††ˆ††…‡†……††…†‡…†††††††‡††ˆ…†„††††††††„†††‡††††„†††††††††††…††††…††ˆ††††††††…†‡††††††‡††††††…†††††††††„††††††††††††††††††††††††††††…†‡†††††††††††‡†††††††††††††††††††††††††††††††††††††††††‡††††††††††‡††††††††††††††††††††††††††††††††…††††††•zŒŒ“’†Š‹Ž}‡Œ’†Ž‡|}Іޕ’„‹Ž’‘†‡„‘‡–…‹Š………Œ‹‡†|‹’†‰‰‚‡‰Šƒ‰‚†|„„“x“…Š”‰Š‹€‰‹Š‡†ƒŠˆ”ˆ€‰‹’‹‘™‰‹~‡w‚Šƒ‰w…‹†ˆ…ƒ‡„Љƒ“~Š’‰ˆ•‡’††ŽŒxŠ‹‰‹’„ކ€†Žˆ‡‚‡ˆƒŒ‘{ˆ‹‹–Œ‹˜‘’€Š”Š…€˜ŽŒ‹‹Ž‰Š€‚‰Œ~Œ‡—‡Ž…€†w”‘ˆ„ƒ”„‹‹’‘‰ˆŒ•ŠŠ•s™‰–ŽuŒŽŽ‹‹‰—lz‡ŽŠŒ{‡‰Ž„‡u}€‡…}k…€ŒŒ…uˆƒ„šŒs‡|‰}wŠ“‹†‰v‹‡||–~w’£ƒ„Šx~ˆ{‡‡…„ƒŒ’|‹„vvŽˆ~…‰|‰„€‘}x€ŠŠ‚†~‡zŽ”ŠŽ‘xtu”wn•†ƒŠx…z†‚€w‡z‹~‰Œ~†€…|}ƒ‚}…„…‹€{ЇŸ‚v†‹‚‚…‹‚‹‚‡|††™~ƒ„‡†…‰Žˆ‡Œx…‚‚€{~}Œ†~‰‚†}wzƒƒ†ˆz††ƒŽƒŒ†‚|€vˆ‚sŒ}„‰p{”‹‡ƒ‰ƒ~„ЉŒ•—ˆ‡‰’—”Œ—‡‘†v€ˆz…ˆ‹“š„ˆ…‚‰‚ŽŒƒ‡ƒŽ…‰Œ„€†–‡Ž‰‰–z‚€‘…‡„…†ˆŠ|ˆ‹‹Œ‡˜y†’i~ƒtŠ„ˆyƒ…‡“Œƒ’އ•ƒ‰Šƒ‘‡„‹‘‰u“Œˆ†‚„’š‡‘’†–Ž{ƒ†ŠŽ„–~Š…Œ“|ˆ‡iŽƒŽ€Œ–Ž‹qŽŽ”“‡—|ŠŽ‘•–‡†„‚‘ŸŒ€Ž™ˆ©ƒƒŒ•“Œ…¡‚|‘Ž‹zœ‰’‡†˜Š‹˜}Ž…‹“‘‡’Œ‰ž‰‚‚‡Žƒz‘}“…Ž•Š~†|‚–“˜‚–Š“n’‚…–ˆ‹Štk”~t‚‘’~š‚‘™by“Œ}‰ƒŽ†|ŠŒˆŽƒ~y…|’‡{…„Œ†…Š€’‹†€…ˆˆv€’|{†‡Œ‹‰“‚†‰}’€…€‘‹‘„ƒ†wŒ„ˆ†~ˆŠ†—wzŒ‹|Œ’o—“Ž””’‰~‰{‡–‚•Œ‰†‰‹ŠˆŽ“ˆ‘ƒ‡Š‘„†–Š{‘‰Ž‡|™‰…Ї‹’ŠŠ„Ž…zŒm„˜š–~•j†ŒŒŒy}•‰ˆ‚‰†”ˆ–„’†˜†”ˆ‹ršŠ”‘‘’tƒ€™‚‚~x|yƒ‘…‚ƒ„†{s‡†ˆ~•‰y†‹†ˆw˜’Š•~„‰•Ž“‚‡‘’‚‰…”†ƒ’”†‘‡ŠƒxwŠ€‹‡‹’‹”†ƒ‡ƒz’z¦”t†••……‘ŽŒŠŠ‰‰ŠŽ„ŒŽyŠ……•„‹†‹Œ†ˆŒv€†‹Š€‹‹‹Žvw{„€‰‰Š†‘™Ž‹š‰”„ƒ}‡ƒŽ„„‚‹‡˜„ˆŒ‰Š‡}Œ‰ˆz‹‹}ˆ’€‡’Œ‘–†Ž‘€‡”–‡†Š€‰…’}ƒ‚ŒŠ‡‚…n”‘€‡”„‹Š’’ƒŽ’Š…•‹””•˜s…™ˆŒ‡y”|Œ“†„Žq…}„Š¥‰…†‡…¡‹‘“˜ƒŒ|‹’‰Ž…‹‡–zƒ…ˆ‰”†ƒ—}‚Œ‰†ƒ……”ŠŒ”‡€Žˆwvˆ……~˜ƒ„…Œ‘¢Œ{”•ƒ‡tzމƒ}„„}“•ŽŽŽ{–‹…™|‡‰”ƒ‚•†”vŒ‹‘†˜’wŒ‚–„‡ƒ‰Ž†“u—‡‹‰~‡y|ˆ‹†’–Š—…‹Œ™ˆˆ“€Ž•…˜Žš“‹Ž˜‡—€•˜|‚u‘”‡ƒƒŽ”}“ŒŒˆ‹‘y–šŠ…Œ€y„‰…†›’…›€~•z‰…~‡™{‰Ž‘Œˆ’‰˜‘†Š‹~Љ“ˆ—Ž…Ž…“•„u~…Š„‹‡„…‰‹…‹u„Œ‰‡”š‹ƒ‹…Ž’}”‡ˆˆ‰…„‰‘†”ˆ‰‘p‰‚‰‹‚‡’–xpŠŽ‡Š‚•Š€™‹…}Šz‹“‘…Œ‚‹{•—Œ‹ˆ„š¥‰ƒ’ƒ}‘—„…‘…€“}‘‚‰x’†Ÿ––”Œ‰|’|Œ€ŽŠ’“o’„••„ˆ……Š“‘Ž‘ƒƒ‘“Ž¥‡ŠˆŠ•‹‘Ž“‚‹|•w’‚|Œ…šƒ“ˆ•ˆ›{¢ˆ“|–‘~‡„‰{{ŒŠŠ–Ž„ˆ¢~“„€{‰~„‹Ž†‹…„€y…‰‘Ž{•ˆxˆ‰…‘Š”~…™—‚ŠŠ…‡ˆ•‹‰Ž“…‘†ŽŒ{‰z‡|~‡ˆ‹•Š}‹‰ƒ–€{Ž{“’~‰’“…”ƒŠŠŒ‚Œˆ‡Ž”ˆŠ“‚‰•†„ŽƒŒ‹‘Žƒ‡t„y‘‡~ƒ‰Ž‰}‚ƒˆ’ŒŽŽŒ”‰‰‘‰˜‚Œ‰€Ž†……‹~ƒˆ“‹’’“‚‚Œ„|ŠŒŠ‡†•‘€‹“‘–‹„}ˆ™Š‹—”‹ŽŽŠ‹{ŽƒŒ‹„…r““‡~…”…‚’‡Š’†‹™‡”‘‘“‹p–Š”‘Š}“w”„”“„}Ž—”“Љˆz‘†ˆ‘‚ˆ‹~u‚Ž‘‰–’†‡’“’”‡‚’‰Ž…„Œˆƒ‰ŒŒ‘‡‡ˆ††~‰‰‡}Œ‰~Œ~‰‰{…˜‘v˜“€‰Š•Ž„ŠŠ‹‰‡ˆ”„„Ž„„ˆ•Œ~€ˆˆ‰yŽ{“ƒ†ƒ’u…t‹ŠyƒŠ„€‡~‘†††’„”…Œ”Šœ‹Ž‡–—’ŠŽ‚‡{€Œ‹ˆ‡‚„‰„Œ‘‘‚‰‘Œ•‘’”“‹€†’ŽŒ•ŽŠ‹‹“……†ˆ‹ˆvˆ“ŠˆˆŠ‡wŒƒ‚–„‹‘Š’ŽŒŽ†‰˜–‹‹‚s”‡Œ…sŒƒ‰ŒŠ˜‹‹‰™T‰Ž…z„e€’|Šˆv™N”ž‡†~‘‹‰Šq|q‡ƒŽ”‹€}ƒm†Žvˆ‚Ž„bkpŠ}d‹šg†ˆ€”ˆƒˆ‡‘ƒ”›–…‡Œ‹–††‚Œ‚n‹o†y”‡€šŠ‚„aˆ–“ˆ ’Œƒ……‚‰~pƒvbxˆ}‘€”’‘œˆŠƒŒw•‘–q™€˜ƒ€˜‹¨n’…Šl“Œzw‹€€u{ƒ„‡|{ƒ˜’† ˆ“ˆ‹w}|›Š–}Šƒ‚xŒ“~Œ›—†€‹…‚ˆ}‹€‚‘y£†’‹Žu|…ˆŠ˜qƒ…Ž|‘x‹{–Œƒvˆƒ‰ƒ†‡‡ˆ†€‰ˆ†…ˆ‡‡ˆ‡ƒ†ˆ‡‹Šˆ‡ƒ‰ˆ…ˆ‡‡…ˆ‡„‡†ƒ‡†„ƒ…‹‹„‡…ˆˆŒ‹ˆˆ{ˆˆ‚Š„€€‰…ƒ……|…„‡…Ž’ƒˆ€‰„…ˆ‰‚‰‡…‚ƒ‘…„ˆ„†‡‹†††„Ћކ€…†…ƒ…†ƒ‡ƒŠ„‡‰’ˆ~“‡†€Š‚ˆ‚ƒ’†ˆ‡}‹„y‰‰…Ї€…‰†Œ‡‰ˆŠ‡†‰‰‰ƒˆ‘„…‹†ŠŠ‡…‡‹‚„‰‹‡†ƒ†€Š‘…„„ˆŽ…ŽŒ…„…ƒ‚ˆ‰ˆ‹ˆƒ…‡„‹†‡‚‚Œ€‹ƒ…‰……~……„ˆ‹‡Žƒ‚‡Œ‡‚‚‹‰“އ‹Š†Š€•ˆˆ”{‹ŠyrŒŠv}ŠŒ‹€“…’ŒŽ‡~}ˆ€‚”‰‹xŽ‹‰ƒ‡u‡o|€|†˜†’„x™…‘‚z‰vŠ›w•Œ{…ŠƒšŽˆˆ™‰Œ†ˆ‘Ž˜€†’Ž’•tˆ…Š‹†‡uˆxŠ|‰„€–†q€•Ž‡ŽˆŠ{’ˆž”ˆŒs‹‹…‚Žƒ“œ†ƒŒŒ–Š”‰“ЇˆŒ’Šˆ’‰‘–‹–…‹†„‡’”ˆxކ‰ƒŠ…†„‘‡‚Šp†‰—ƒš‹t†Œ‹†ŽŒ‘‘‡ˆ‘‘…„q‹ŽŠ‡“‹v”zމ„’‚„„…’z‡€ˆ~‰Ž„‰„‚‘„€w‰‰‡‹ƒŒƒww}ŽŒŠ‰Œˆ‰„ž‹ˆ‡”€‡yv‰ŠˆˆŽ˜…‹‡~Œ‹ˆ•Іz„€‰ŽŠ‚”ˆˆ|zˆŠ‚Š…•‚Œ…‡€Ž}~‹‹ˆzš‹‚€‘’‹€n†Œ„‡‹ˆ—t}‹…w†‹‰‚Š‹Œ‰Š€ŒŒ~ŠŽ–ƒ‹”z}…w|Šƒ„‡ŒŠ‡|{……{„‡†ˆ‘’„‹t”{††ˆˆ‚†‹……}ƒƒ‰uŒp…y‘~‰†“’…„„ŒŒ‰’–~‡}Œ‚ŽŒƒ‰|‰y}„–‰~†‚‹yy‚x††††……†††††‡†††‡††…††††‡†‡†…†††††††††††††††††…††††††††††…†††…††††‡††††††††††††††††‡†††††††††††…††††…††††††††††††††††…†††…††††…†††††††‡†††††††††††††‡†…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††††††††ŠŽ{s€Š—…{Œzˆ‚€’ƒ‚††„oˆ„‡Ž€„„‚p€‡|Ž‹‚Ž|wƒ}yŒ‰…ˆ††ƒxŽ…††’€„‡‰‚ƒŽ}Š“‡€‹‚v†‹‚y…‰…‰~ƒƒˆŠƒ‰|‹‚‘€„„wŠ†Žƒ{‰„ƒŠs}€‚„‡‰w‚‡Ž„€„ˆ†}—‚ˆsŒ‹|‡‹ƒˆ††…”‘…‡…z…‹…އ‰Ž‚‡|}…Œ…ƒ‡“ƒŒ~†x†€”ˆ…Œ„}ˆ†‘І‚€}…ƒ‹‡ƒƒ‚Œ„„€}‰|x‰ƒ’‹ƒŠ{†ŠŒ„{{ˆŠŽwˆˆw”}y{…‹”€d‚…|‰‹n†‡Ž”‹|‹m‹xŒ‰›€ŠŸv‹•xƒ“‹ƒ~}šw’…˜ƒƒ††…~t€ˆwd}Ž“€‰‚–¤‘‹…‡uމŒŠŽ„ˆ}އxˆˆ‚†}{¥v€|ƒ‰¢Œ¶~……‹‡~†ŒŽ—€|އ{„xƒ‘Œv~¢Ž~vƒe€ƒ|x‹Ž‡y𔋅}w|wƒun€vªxq‡‹v|}{iŽ}€‰„ˆ©Œ‡Šƒ€‚’kÒ‹~…rŠ„{“}ˆs–€†y‰~}Šˆ‡‚oŒ|‚€“—~…ˆ—œ‹’{tˆ{‹‹€šž›‘‚‡”xp”‡ƒ€ˆx‹ƒ‰—yˆŠ‡•””„ІІ‰‰ƒ’‹„Š„…„‹’„Œ†|x”Љ|…Š—Šƒˆ}i‚|Š„}Ї”‹“Ž“ˆ–‹’wƒ”އ‚|Š„‚‡††“‚Š‹‹•ƒˆ‚‡‹yЇ‹|ƒ“ŠqŠŒšŒ‘””w‡‹Œ‚•ƒ|†…ˆ…ƒˆ‘|•“‰‡‡„І”y|„‹’‰ŠŽ–Ž~Œ„Ž‹†‘’ŒŒŠ—ƒ}‰‹Ž•x~ƒ‡Š”—’އ‰Š–|†ˆ†‰w”“ƒ‰ƒ„†‹‰Š’ŽŽˆ–…‘|ƒŒŽ~ŽŠ‡•†•—xƒ†ŽƒŠˆƒ‡ŒŒw‰‰‰†Œ„‰Š‰€„‰†‰‘ˆŽ…ƒ“ˆ‹‡ŒŠ‡‹„~„’‰Œ†Š‹…‚‡ˆŽtƒ…z}}†ŒˆˆŒ„Šƒ„††…‹‡ˆƒ‡“…‚ƒ„}‡~…Ž‚Šˆ‹†‰‡…„p…„Œ„–‡‚€ŒŒ„€†ŽŒ{…ƒŒ‘€‰„…‰y‹Šo’„……‚‹™‹ƒ†‡€„‰z“Š—yz‡ŠŒˆŠŠ‘—€‘‡Š‰‰ˆ–ŽŽ|–~…„„ˆŽ†ŠƒŠ†ˆ|€~Ž’~„•‚–…†~ƒ…ƒŠ—„„x…‚‰Š‰ˆ{„Œ„‡} ˆƒˆ‡‡š€•‹‚‰’ˆ•Œ‰‹†xŠŠŠˆ‡‹…|~ŒŽ~ŠƒŠ”Š†x‚“†’‚‡„Œ‚ˆˆ‚ˆ‡‚ƒ”ˆ€„†”‘…†‚ˆŠ…‚”v”’|€ƒ‘ŠˆŒ‰ŽŠ‡Œ‡„‰Š„–‰{ƒ“ˆŽ‹‘Šˆ~‰|…~|Žz†ŽŠ•‰„…z‰‹€‡–“„š…Ž™…ƒŽ‡–’”‡Ž†‡…}“ŒŒ‰‰Ž‡Œ‡ƒ‘†Š‚‘{†Š•‹•“ˆ‹{•ŒŠ„•‰‡~‘‡‡†‹zޅއˆƒ’†tŽƒˆ…ƒ•ƒ††ŒŽ†Œ—Œ‘…І‡†w‹ƒ–†‹p’{…’‰ˆ~}Š“Œ„„‰Œ„x“‡‡•‰Œ…zzƒ‘Žz€‹Ž•~ž–Š…€Ž‘‰Œ‰“Š…Š‹‚‘…Žƒ‚Œ‘‰Œ…‡‡ŽŒ‹x‡‹Š‡“{ƒ‚Žy–…€‡‡‰Š‡’Œƒ‡‡€•ˆŒ†€x“ˆ€˜’‚€‚{‹zޅއƒ…‹‡{|Œ‰‹…“Œˆ‘‘ƒ—ŒŒŠ‡Œˆ„Š’Žˆ‹•ŽŽŠ„‡……‡Œ†”†…“Ž}‡‘‡‡–‹‹––Іˆ†Ž…‚‰vƒ€‹‰‰’„y‰‰‹‡†ƒ’“ŒŒˆŠŽ‰’‰ŠŠ‚‹Œt‘‡–Œ‹tŠ}‡Ž„ƒ‰…†{‡‰Œ„s‡‹ƒ˜ˆ‘‘‘Š„•‰Š‹’”Œ’•‘Œ‚–xˆz‚ƒ€sŽ|{Œ|‡‰—‰ŒŠ‹…’‹”…Žƒ‚}|‡h‹‘¡‹˜qˆ““„‘~‰‹‘…Œ~€†„}“Œ}”–‹‹“ŽŽ€ŠŠ‘ƒ|ˆ‘u…Ž‹ƒ„›„‡‚“‚ˆ‚ˆ’‘‹‹Ÿ“‡–ˆ‡‡‚Ž–g ž{„…‰–‰…†‡™‘…Ž•‰‘˜ŽŽ“‚‹w‰”•‰¥†Š‰ˆƒ•ˆ‹†ƒy““”‚‹{•w‚Š“r‡„“‘—‰…“£“ƒ€‚|”…‰sŽŒŠ‰‹‡}ˆ‹u~‹’‡€’ƒ‹}~ˆŒ†{yŒˆ‹‡ŽŠ‡‹‚…‘„…}Œƒ‡–…Š„–„ƒ„…Š‚v…ˆˆ‡Œ„„ˆ„‡‚”€‚’ƒu‹Šq{…„€’ƒƒ|„Œ~Œ€€ˆŒ…”ŽŒ~Œ’‡y‰x|’„y|‚ˆŽƒ…€„‘}‡xu‡Š‘’Œ…Š‹xv‰~Ž€ŽŒ”‹‚|•…“Ž|ŽŠŠ†Œ‘ŽŽ“Š|Ž•ˆ†ƒ…ˆˆ‘„„“~‚}Žˆ‚Š‚‘r~†~‹ƒ‘€‚‰…ˆ’‡~‚‹‚ŒŒ•ŒƒŒp‚‰‹Ž€’s„…ˆŒˆ††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†ŽwŒ‡’ƒ‰ŽŒr†ˆ’‡Œƒz|ŠŠƒzŽŒ–•y“•šz‰‹Œˆ‰‰Œ…Еޑ‰z„‹ƒ‡}•‹ˆ’‡tŽŒ€†”~}t—už•|‹Œ~ˆ‰“€Œ‘„Їˆ’~Š…Œ‹ŒŒ…}”ˆ’•ˆ„…zƒ…’…†–z‰…ŠŠ†ƒ„’ŠŒ“—‚’€Œ‡„‚Š„‰‡††Š„Š…Œ‹x…‹}Ž“‹ƒ—–†|‰”‡ˆ‘‰‚“—“Œ‹‡Ž†„Ž}ˆƒ…ŠŒ……ŒtŠŠ‰„‰‰“Œ‘Œ‰‹‘ŠŒ–„ކ›ŽŒ•qŠ“„Œt‹zˆ‡†Š‰ƒ€‰•—†ƒŒ€‹Œ€y………–‰‰‰†wuމ‡~ˆ†’‘†€Œ†m{“‹…”ŽŽ‚‚„“‡…w{†Š†Œ€ˆ~‰‰†‡†ˆ}Š~xsœ•|‰‡‹ˆ†‡…‰ŒŽˆƒ‘‹„ŽŠ’ŠŒ‰”‚Œƒ†’yƒ‚‡Œ~††ŠˆˆƒyŠ‹‰“}Š†Ž–Žœ†‘‚€Ž„І…†‘“‹Ž‹……ƒ“ƒ~’‹Š…Œˆ…Œ”‹Œ‘“ƒ„ދЇ”‰†”‰†‚~‚Œ„‹‰Œ‹~ˆqŽŒŠ„‡‘…‡‹Œ‹‡‹‹•‡’†Ž”p’’‡Ž‰wŒ’І•ˆ”‚‡–•„ƒ”~††x–…‹…€~x„Š|ƒ|tІЄzˆ~†ˆŽŠƒ•„~Š}x}—‘€‹r„}ˆ‹„ˆwr€”‘ŠƒŠˆ‹wwŽz…‹~‰Œ…†“{€~˜y„ˆ„zˆ‰‹‚~ކ|~”|s‚‹~{ŒŒ‹~ˆ†yŒ€Œt‹…Œ„{”Šu‰˜‘†ƒ~{~}‡Ž‚‚‡~ˆƒ…€~~~€Žˆ„“ŠŠƒ†vŽt‰”~‹ƒŠ|‚‡ƒvŒ…‹~ƒjŽ”~ˆ†‹ˆ„‚…†Š…~Š~‡y‹~™Š‹‡xy‡|ˆƒyy}€v”‹‘u…€‡€ƒ††ˆŠ†ˆ‰ƒxˆ‡…‰ƒŒ„ˆ‡„Šˆ………ƒˆŠ…‰}‚‡ƒ‹†ƒ†‡„‹‰ƒ‹†…Š„‡†‚†|‰ƒ‰‡zƒ‡††„‰Œ‚ƒ‡…ˆ‡…–…~ˆŠ…†‡}zŒ†}††ƒ‚‡‡ˆˆ‡ƒ‡‡‡”‚‹ˆ‹“‰‚‹Ž…‡Š‡Š…‹…ƒŒŠ‹„‚‡…ˆ‡“‰€‰‡‚„ˆ„ˆŠŒƒ€‚Šw„‹‚Љ‹„‰€‹…€v€ƒ†‹‡ŠŠˆ‹~‡€†ˆ‰‡‰…‘ˆ{‰‘…‡…‰Œƒ€~‡‡ˆ‹‹ˆ‡‘…‹ƒˆ}€‹ƒŒƒ„†ˆ|ŠŒ‡†Ž~†ˆŒŽ~†‰‡‚Œ‘†††…†††††††‡†††‡††‡††††…‡†††††‡†…††…†††††††††…†‡†††††††††††††††††††…†††††††††††††††††…††††††††††…††‡†††‡††††††††††††…†††…††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‹|‚Š’†„‚††Œr‘~Š€‰‡„q…“ƒ‰Ž‹ˆ‰…ŒŠ†z‡†‰‹‹‹Œ}‡ˆ}„|y†’„‡~‹Œt”ˆ‰wŠ€€ƒŒ‚–†u–‹‚{‰ŒyŠ€•ˆ{‡—‰˜‹‚…‘€“†}“vŠ‹|†Š‰‘}‡vŠ‹‘Œˆy’ˆˆ‘“‘‰}u—…§‹‹Š‡‹“†‡Š†”‰–†‚˜‡…‚‰‘†’ŠŒ”‹†„™‡}‘}Ž…•„Œ”‹ŒŒ„Œ’‹vŽn†‹ƒ„†”ƒ‰ƒ’Š‡Šˆ††‡Œ•ˆ”‡}wˆˆ‰‘‰Œwˆ†ŽŽ€…“u‘’“ˆ‡ƒz†Ž‡…‘‚ƒ„}|‚‹Œ–x‡‹†–ƒŒ~’zx‡~y‡Œ‘‹‹Ž‡€†}‡y}—ŽŒt“‰vŒ’’‰‹’…|†{ˆ†~‰…‡~‰€‡†‰„„†…‘…|”ƒ†u˜•’’‚Žuz{€}‡…ƒ„‰ƒˆ‚„}€Ž‚‹ˆ’‰u”އ‚„Š|uyŠŒ€|𖆂‡€‰{€‚Žw~vŽŠ‚–ЂБu‰™ŽŽ’ƒŒ„“¡Žz‚‡ƒ~€|‰–މ‘‚‹Žˆ~ŒŽŠŽ‡…€{€†Œ“€‡~„Œ}{’Š˜w€~…™Ž¡…L‘Œ•Ž‹‡‡v…Ž~ž…ˆ}dˆ‰Œ‹£r~‹‡‚tœ¯†xž¬q‡Ÿ¦yƒ‹Œtk‘–„˜pr“w˜~’ †~Š“š•ž•Œ„•„mŽ“ŽŽ…–šŒop†~Šƒ‚Š…„Œœ~  —€y‘‚„{Œ“”†‚„Ž’Ž‚•Ž~›¡Œ|–‰€šq’r˜‰†Œ…˜yu‰‹j”_†£‘‘–—€vukœ¨‡Žª™¢‹‘”¡£mˆ‘z“{…xyŒŠ©—‰‹rx€‘”˜Š†–€‡‰’v‚¡”}‰ˆyŽ•£†‡”Œ…~w‚І…‘”~u›ƒx—‘~‘˜†„…ƒˆƒ€…‰‡„Š‹††‡‰‰ƒ„‘…‡‰‚…‹„„}…{‚…Œˆ„…Œ…y‹‹‹~‚Œ‡Š‡Œ„Œ…Œ…‰†‚ˆ…}y‚’€ƒ‚‡‡Š…‡‹‹ƒ{„‰†‚‘†ƒ‹Œ€…‚…‚…‡‡…ˆ††ˆƒ‚€„‹}‹‚‹•Š…†“Š‚ˆ‡}•Šˆ‚€~‰Œ{‰ˆ‡”…„‰’†y’„‘„ˆƒi„ƒ……{††•‡‚Œ‚r˜xƒ…„p†•‚Šwz‰}Œ‰‚­‚x|oŠ…}–Œ•z†‚‰„–€ƒŒ}—„ˆ‹Ž€yz„…‰€…‹t‡‰y†…‚|‰“†Œ„—„{‡Š‡yŽ„‰|Š{†ˆ|‹€ˆŠ‘•ˆ†Š…†Šv‰‚‹†Œt„‹‰Š‚‡—‰‡‡“‰‹„ˆ˜ƒ’‡{‡‡˜–€Ž˜‡†ŽŒ¢€ˆŽ„‹‚‰‹r|xŒw†›”Žu…ˆ~ˆ‡“†­”Šˆˆ’—‚‡•‡…‘ˆ‹}†Œ†ŒŽ{›Š“—Œ•zІ}“‚Š‘‡ˆ„”w…›‹“|‡ŽŸ„y€Œ…‰‘‰ƒˆŠŠ”ŽŒ†„Ž’‚‘Œ|‘Š€”Œ““Œ‘Œˆ‡n…ž€‡zŽŽ‹”…‘“€‰…†‹ƒŒ|‰Š€‹™€†“|„ „‰—‡yЉ‰ˆ‰Ž€‹‡ŠŒˆ‡‹ŒŠŽƒ†Ž—Œ‡‡ƒ‹‰ƒ‰‰Œ†Ž‹…ˆ…ˆˆŠŠŠ{|„††ˆ—…‰‹‹–€ˆ„‹…†‡ˆ{ƒz~ŒŒ‹›ˆo‡•„{‰‘Ž}€†‹“‚Ž‹€ƒ‘…ŠŒƒƒ†€‘”{‚„„’’˜‰~‡„ƒ—ޅЉЉ”‡œ†ŠƒŒŒŠ“™~–‰“ƒ‘ˆ’†‰‰‹ŒŠ“Œˆ…–ŠŠœŽ€†™“”‘‹‡’ކ…•‡ˆŒŽ”ˆ‹†ˆŽ„”‚‘|“~„Š~xŒƒ|–Œ†ˆŠŒ}…‡|Œ‘ˆ…”Ž„“‚‰‡†„}‹Š‡–†Š‚Š“ˆ‰Šƒ“Š‹…ˆ†‰‚‰†‹†šŒŽ€‘w}ƒ€‡‰—…ˆ–”ŠŒ‚Œ†ƒŒ‡†€„‰Ž„Ÿ‹’u|Ž‹‚‡zŠ‹‰†‚„‚€‹~z†ˆ™Œƒ‰“Œ‡€‘Œy‚ŒŠˆ‘…t“ƒ‹—‹€‹ƒŒŒ’„™|‘“‡‡Ž‰vŠ‘…•ƒ•…„—‹‹Ž…•†—‹—‘Š”š†“•“‰‘…ƒ‰’“‰Œ„‘”ˆ€‡‹“Ž€Œ˜|…Ž˜{‹ƒ‘†~†‘†{—‰‘ƒ…—}ŒŽ€•ƒ‚ˆŽŽƒŒ—†ˆu‰…†ƒŽ‹ˆˆ‰z†‘…u’Ž‘¢‡tˆ§‹ŒŒ€™‡‡„sŒ~Љ}Âzq‚|”z”„|”‘Œ€‡†Œq{Œ}…“•a~^„€ž—q™–~‰ˆp¢ˆ‹~‡oz‡‚z–ˆŠ’q¦”Ž‹ ˜’”“s‰‰|›ƒƒ}˜‹w‹•šp‹‡u“‡i‰—{”€†Žvˆ›‹…y‰ƒq€•~˜”}†™‘¯ms…ˆ~“|¢Ž’†“‹–𒆮ƒŒ‡]”ˆ˜ƒ~yt‹–‡„¢–ƒ{‡x‰p|hy–‹‚nšj‚–|~‘‰~šŠ‚Šq˜“`“‰‚‘|£†…‡‡ˆ…†††‡†…††††„†††‡…†…‡……‡‡„†ˆ…†††††††‡††‡††‚†…†††……†„††…‡†††…‚†…†††††††††‡‡†††…††‡†††††††‡…†…†††…†‡…‡†††††…†††††††††……†††„†††††††…††††††…††††††††„†††††††††††††‡†††††††††…†††††††††‡…†††††††††††††††††††††††††††††††‡†††††††††††…‡†††††††††††…‡†††…††…††††††Š–‚„‰ƒˆƒ~‘Ž‹‰—’’‘ŒŒŠ’‚Œ‰‹Žˆ™‹’’”ƒŠuŒ~‰ŽŠ}…z“{„’~…ˆ‹Š‹ŒwŒ„ˆ‹ƒ…{ˆj„Ž‹ƒ ’™u˜—…Œ‹}‹ƒ‡ŠƒŠƒ”Švˆ–’–Œƒ‚Œ|x’”{ƒ…Œ‡ˆœ†‰‹…Œ“„‡}’ŒŽŒ‰ž€ŽŠŒŠ—‰”‰‚ˆ•~‡‘}‰‡x„ˆ”‡ˆ‚~І•‚ŒŒ–Œ‹‰•ŠŒŒ—‡~Œ‰‘‹”Ž‹ˆ‹ˆ†‡Œ~‹€Ž{‘‹›qƒ‹}~„‡—”“Ž—ˆ‰‚ƒƒŽz‰‹’ޖމ’–ƒŠŒ~‡‹†…’x’…‹“‘Œ€€„ŠŠƒŽ‡Š‹ˆ‡…ŠŒˆŒ…~xŒˆŠ˜Œ…Дމ•Œ‡††…”Œ†Š…ˆ‹‘“‰™~“‹Œnƒ…‚€y‘‘Œ|~‰‚ˆ‡‘‹Œƒ‡‡€Š…‰”‰~–…„u}Œ˜Œ…”–}ƒ†€˜ƒzŠ…ˆˆ‡•†ˆƒ„“Ž€•ˆ”yw„Š˜‚†…ˆ˜…“u•Œƒ‰ˆ›‚Œ•‹‹ˆ‘‰„•‡ƒ‰“”¤’Œ–”‡Ž†‚Œ„˜ˆŽ|‡„™€†ˆ„‚’€’p—‚›Ž‡ˆ ƒ‹ƒŒŒ‡ˆŒ”ˆ‰œ}†‹ˆˆ{…„›“ˆ•„‘‡yzІ‡˜‘x‹Œ††——‚Œ•“•ƒz‡‰—ˆ‘ˆ‡‰Ž‰Š~€‰z‚Œ‚Œ‡‡ŠŒ„†ƒƒ€{~‡v––‚‡ˆŠ|Š‹‚’‡‹ŒŠ€’‰||І’ƒ“~–‚…’uƒƒ’{‡Œ‹„‡z“…Œ…‹’vމ‹–—„Œ‡„ˆ…Žx“€‘„Ž–‘‡…~†…„„ŒŠ‰‘Єޖ‘‡–Ž‹˜†‚‘‰’’’„„‚ˆƒŒ|†…†‡{„v‘†‡{…—Ž}ŽŠ‰‹Ž“Œ‹Ž•Žp“•‹‘‡Š|‰‰ˆŽ‰Šƒvˆ{ˆ‡…†‡ˆŽ•œŒˆ‘‹”•}|{’‰‡Š‘Ž„‰‰†ŠŽ—ƒ‹‹‹sx‡„‘‘}…—‹‹ˆ‹Œw‹‹v‚†‰€Š“‡’ˆ‘‘˜ˆ“•{|‰•‹{ˆˆ’Œƒ‡ˆ‡†‡Œ‰Šx‘ˆ„Љ…‹”Š|†”ˆŒy‰—Œ›{™y’’{—„…‰Š‰“‘•‰Š‰†ƒ~‘‘‚’”†|‹‹‹‡…‰™“Ž‹‘‰‡•БЄ‹…šŒ˜ŽŒ„„‰‰Š„„ˆ‚Š‚}•z…˜ˆ‡‰‚…ˆŒ•‰„‘„ŒŒŽŠ~‘‰•‰~Š“–ŽŒ‰„›Ž‰ƒ˜…Ž…†ˆ—‡{w‡ŽˆŠ‹ˆ…‘„~€†‹˜ƒ„„‰ŠŽ‡‹Ž‰•}ˆ…ЇБ‹Œˆ€ƒƒƒŸ£Œ™w’ƒ“ˆ…–Ž„–„z•†}І|Œ€‰‚ƒ‹ŠŽ†‡€ƒ‹ˆ‡}‹‹…‚u~z“žŒ„Šx}Œ}…€€ˆ‡‡‚††‡„ˆ‰‡‡Ž}”†€†‰†Œ„~ކ¡ƒŒ’|•“}††„~Ž“~|‚ƒ‚{ŒŽ„Ÿ‰Œ‹‰zŠšŠ‡ŽƒŒŽ˜‘…~Š…™€€ˆ†zŒŠ‰‹‡•…vy†}‡Œ”‹ˆŒ„„}ƒ‹„“ƒ††…‡‚”†—wŽs€}•„ŠŠƒ{ƒ“‘ˆ„’Š‹s‡‡Š‹‘ŠuvŠ’}ƒ‰™“–‰’‘„ty“Ž‹ƒ‹~ˆ‹†ˆ”‘Ž‹ˆ…x„‰ƒ|ˆ‹‡Š‚„Š‚ƒ’}~y‘r•’ˆ‚‰Š‹ŠŠ„Ž…‡’Š„‰…€“†Ž€–“…~…{ƒƒ‰€ˆŒ‰“z‰‰Šy†”ŠŒ’–ˆ’††‰Ž€‰‹ŒŠ…Š‹Œ‡Œ‡Ž†„‹†‰‚Ž’‹‰Œ™…‡‘‹‡…ƒ”Œ…Š’ŽŠ‘Š€…‹Œvˆ‰’Œˆˆ€’rˆ‰Šƒ–†Œ‰Œ‰‘ˆŽ…’…”‘ŠŒp””‡Žu‰‡Ž‰‚ŽŒˆˆˆ‹‚…„‡„}ƒŒˆƒ‰‡„‡„ƒ„‚‰‡„…’„…‡ˆ†€‡‹‡†€„ŠŠ„‰„†Š’„ƒ‹‡…ƒ…}|ƒ…‚‡†‰„‹Š‰„‡‡‚‘„…ˆ‹‡ˆ…†‡‡…†ƒ‹‹‰‡ƒ…ƒŒŒ…~‰„ƒ…„ŒŠ‡„…„‰‡‹…„………‚‡…‰‚‰‹‡Š‚Ž†ŽŠ„†‰…~ˆŒ‡˜„ˆ†~‚†††Œ{ƒƒŽ‰y‡…‚y†ƒ‹„ƒ‡ˆ…††‰{‡†ƒ‡†ŠˆŒˆ€ˆ‡†Š……‡‡„Ž~†ˆ€Œ’„…‚ŒŒƒ…‹††…†Š‡Žƒ†Œ†Š‹ˆ†‹ˆ†€„ˆˆ‡ˆ‡‹‡Ž‡’ŠŠŽ”{š„‰‘‘„ˆ}~‘‘Š’€•‰–ŒŽ‘”„‘‰†‰‡‹Š{‰ŠƒŽ‡|‹‹ˆ‰qƒ…ŽŽ{„}|ˆ‘†“‚”‡‚Ž‹ˆˆzŠ…‹ŠŒ‹„‘zˆ‚ˆ‰ Œ}ˆvs‰z‡‹„‹~Š‚ˆ‘Šˆ’‡w–’’ޓІ‘‹ŽŒ…ƒ‹ƒ“–„’„„ЉЇБŒˆ‡’„ˆ‹Ž…™†‰…“‹ŠŠ„‰ˆŒ†‹w‹”‚ˆŠŒ‰y‹‹ˆ†‡ƒ•†‰Ž‘Š‘’‹‘†‚‰r‘ކ“‘ŽpŒv‡Ž„ŒŠ~Šv•ˆ‹“—†€‡ƒ™ƒ‚…~ˆ¶†}–ˆ“{~o“|ˆ~Œ†}“…ƒ†“Œ •€„‰‚Œ‡‡‹‰…‡{||˜xŸ~f‰£Œu„‰‹…‹˜uj‡‘}ˆ‰‚••€‚•„~€“{~{‡Š~€Œ„‚§‰s”…—„…Œˆ‰~‡Šx‹w’ƒ£™}‘lŠ‹†‹€ˆšqzr‡‰ƒwˆg„‡u‰Ž™“}f”†‹„‡‡zЉˆ‡{€‡s—~w„††‘v‹‘†€’}¤‚yŠŽ›}†ˆžŠŒwˆs‹x}†•„‰„ƒrˆ”‡‡y„Ÿ‰ˆu‘xˆ„“{u„—‡€‚~…‰‘‚‡„|‡€n‡‰Œ…‹„‚z…†–Ž…†‰w†‚€І‡‚z’€y}Ї…{ˆ‹„ˆ„†…‡‰w‰‡|wƒ‡ty€Š‹‡}’~Œ‘…Ї‰vŠ€Œ†ˆŒƒ†„Œ‰ކˆ‹ˆ‚z~…p|‚…ƒu„‹…{‰ˆ~‰Šzs‘Š…’ŒƒŠ‡‹„v„‰€Œˆ‡s——}~…†w…Œ„ŒŽ„}„ŒŠ{‰—ŠŽ‡Œƒ„‹Žƒˆxˆ€‰ˆŠ„~ˆ{Š…}†‰Š‚|~…ˆ€Š„ˆŽ~…|Šˆ‹ƒ|}|w‰‚‚Šƒ‰tŽ“‚…‰€‚{ˆ~€zŒ‘„ކЇƒrŒ…ˆ–†’†~ˆ‹Š†~’~‹‡”•‡…ˆ‰…’™ŒŽ†ˆŽŠ‘„ˆ„y†Œˆ‚ˆ…ˆ‹}†‹„‡†x~•|˜“wŽŽ‚†‰ˆ†ŽŠ‡‹†Šƒ”‡Š“ˆŒŽ‚’…‹€“ŽŠ…z…†Š}Œ„‹Š{ƒŠ‹†‰„‰’ˆŽ—Š™ˆŽ„~Œ‘ƒ…†‡‘ƒ‰‘‡‡ŠŠ…†„}‡‹‚Œ˜Ž†ˆ‚Ž–‰…‹“ˆ‘†‹‰Žƒˆ†Š‹‡ƒ†rŽ…†‡€˜ˆŽŠ‹•…‰ˆ’’–ŠŒqŠ”‰Žƒ‹xŽŽŠŒ{Љ€Ž{ކ‚†”Œ“„‹”Ž‚€‰ŒŽ„|‘€˜w—‘’„ŠŠŽŽ‹–‰ŒŒ‹Œ†Ž‹‹{~Š‹…v|‰‰Ž‘€ŽˆŽz…“~Œ“€Š…‡Šˆ‰…€‰—z~ˆŠ„‹•…Œzˆ~}„“•‘Žš’„{…~€€‘x‡ŽŽ‰…‡ˆŠ’‰ŠŠ†€ŽŽ“ŠŽ’‚‡Ž‹‹‰…‡†–™‰‡–‡•ƒŽŒ„ƒ“}‡“‹™|‰ˆ“‚—€†‡—І‚‹‹~‰…‹x’“‚’І‰s’„Š€–Љ…’‰Š•Œ“ŒŒ“ˆ€”qŽ’˜’•wŽ|Ž“€†††††‡†††††…†††…††††††††††…†††…†…††††††††††††††…†††††††††‡†††††††…††††††††‡…†††‡††‡†††…†††‡††††…†††††††…††††††††‡†…†‡†††††‡††‡††††††‡††††††††††…††††…††††††††††††…†††††…†††††††††††††††…††‡†…‡††††…††††††††††††††††††††…††…†††††††††††‡†…†‡‡†††††††…†††††††††…††ˆ}ƒ…y‘|Œwƒ{ªu£‹›Œ‡•††u”‘~Ž„y•‹Œ†•os–†„˜„Ž~…€‹‘€xœ‡‘‹–¯–‰v…•Š‚‘}’œŠƒ†Œ‘Љ‹|ˆ‹„|‚€y…l¬†y–m’‹uy|–‰~{s¤~g~«”‹Œ…eˆ„~—žŒo}†ˆ “Šg£‚ŠˆŽ‹{¥‚Žrª“ƒ‡^“‚ƒr™ƒ—œ—‘€¥Œ}›•yƒ…enš’ny‹µ£Ž®“Œ‡|†‚—™›«„†„†““”†ˆ”‘}š„†~‘¤˜|ŽŒ†‹Œ‰š¦r|‚ˆt‘¦}qu“€‰rnŽ{zŽ’wˆ‰€}„ˆ†‡“‚‡€‚„|w“ˆ„‹ƒŽ†‚s}†ƒy…€~‡‰Š‚‰Šƒ~Œu{ЉƒŠ„Ї‡‚‡ƒŽ‹~‰‚ˆ}ˆ†•‚†x…ˆƒ‰‹z‰Š€„uŽŠ…ƒŒ{Œƒ‡‚މ†‡‡Šx‹ˆ‚‰‚‡ƒyŒ‰‚†{…„ˆ‚‹Š‡}€‹‰…‡€ƒ‰ŒŒ‚€‰ŽˆxŒ†“Œ‡•ƒˆ~…m…ދމ…’ƒ…‡„{Š{†Žˆ…|~‰Š“ˆ„…„†€†r„€€†–‰‡‰‡‚†€‚‰‹‰‚„‹z„ƒ…~ƒ‡ŒŽ†Œx}†Ž†„x“Š‹zЂЇ†’z[‘{…‡†“‚~‡–‘…‹Œ†‹‰ƒ—“‚……{’šŠŠ„”Ÿbž‡‚§ƒ”|~q‰}{‘”—‡z¨w‰‡Š]žˆ„y‰HŠwމroœŽz|›q”œ•ašt~š|ˆ]œ{~‡‚Ž“‘—¢†„‡Š|•¥ƒwrwƒ¨‰˜‹’—Ÿ¡’xŒŽ~‹‹„~q†‘‘˜wƒ¥ŸŽˆ“~sm‰…‰…ˆœ‘‰Ž™‘…¢t„“„ˆ•’‚žzƒy”€–‰‰†‰zž‘„—~…”–ˆ€ž™}|†¡•†‰ƒ ƒš}›|‘„’“x‘‰x£{yŒ›t‹~‚p†Œ‡Š–Œ’|†uˆ‹Žzx}„v‹upˆˆ‡„‚us…Ž}‹y‰{ƒ‰sƒ—ƒ~q‘|zq†–pŠ‚Œ‡‘Ž„Ž~Š„uy…€‰’€…†xp‹Œ‹ŒŒ‘ˆŠv˜q‡ƒ—|’ŽƒŽ‹…Œx„€ƒ‚z‹vy|ˆ‚€z~ƒ…wu–‘‚{›{ŠŽxˆ‹}˜’}Ž‹‚{~{S‹‡x˜žœ}m‰}‹s€ƒ„‘І‚~Œ‹€ˆ{y•–†{‘‡‹‡•q†u†z€‚v…”“v™ŒzbŒ€€…yŒ‚†€fszx|†‚”Œ}y€zruˆlƒs‹ˆ|‚š~š†•‚~‰|……†‘„‰†’‰š†Ž‰Œ‹‘Š~‘“‹…šˆ—ƒ{‚‰†‚†ˆ‘”Œ–„™{ˆ‚ˆ‡~Ž•‹ƒ‡Ž™„‹Š„€†„‡ˆ•‹Œ“Œ’Œ…‰}‹††zˆŠ…{…†‹‚ˆ†ƒ~ŒŒ……ˆ‹Š‰„‘Œ„……š‚–Ž‹v†…Œ†‚ˆ†’ˆ…ƒ’‚…—І‚‹‡Œ…ŒƒŠ‹w€„…Š’Œ‚‚ŽˆŒ‰‡‹’އ‹–ˆ—ˆ‡Ž‰Œ‰ƒ~‹†ƒƒ…ˆŠƒ’‚€‰†‡‡…„‡Ž‹ˆŠŒ„Œ…ƒ‚…˜„ˆ—ƒ‡ŠŒ‹‡vŒ|l’~x€~‘Ž|”xˆx’‚‚œ‰`~{ˆ‹ŒŒz“€–x“’†‚‰ƒ‚Š’†„“‰ƒ‚ƒn|…l„Œ„ŽŠŠ„ƒuŒ”Ž~|˜v“†{Œ–‹wŒ‡~œ†™‹eŠ„‚†“Œ’„”‹‡‘ƒŽƒ›‡ˆ€‹y’s|€~tˆ„–•”…‰Š{•‹™’ˆ›Œ‹zŽˆ‰Œ‹‹‰‰œu™’ž…ˆ€…‡•ކ…Ž€•‘vˆ•‡‘ˆ‰ƒ”‹Š‰š’‚†††ˆ€‚ƒŒš‹ˆn„•›‹Š‹Ž‚|ˆŒŒ”‘ƒŠŒ’—‹Ž’puˆ‹…ˆ‘}†uŒ‡’…‡ˆˆ†‹†…‰Œˆ†‰ƒƒ…ˆ…‘ˆˆ‡†Ž‰†}†€†…ˆ…‚Š~’ƒ‰‚€…†‚ˆŒˆƒˆƒ†„Š€‡‰‰Œˆ…Œ‚‰€wŒŠ‡‡‚‰Œ‡†Œ„‹Š‚…Š…‰€…‡ƒ‚†‹ˆ}‰ŠŠœŽ‹ƒ€€†‰†ƒ†Š‹ˆ‚†‡„‡†„†Œ~‰w‰†„Œ‹{…‹‚„~ŠŠˆŒ‘‹…xŒn”~‡‰‘‡†ƒ€“|‚‡ƒ‰‡{…„ƒŠ~„~ކƒ„Š…‹„ˆ‘~„„‡†…ˆŒŠ‹w‚}’‘‰„ˆ~‘„‡{Š‹†‡…‹˜‚†‡t…€‰Ž€Œ……ˆƒ††ˆ‚{‚‡ƒŒ’Œƒ‹|††xt‰ƒ„˜ƒ|ŒˆuŒ”Œ„‡Œ’Œ‘…‹ŒŒ‚‚“ŽŠ‚œ•„‰‹‘ˆ‰‡w}‚„Š€„‰…Œ†‰‹ƒ‰‹||‰Žs¤‘{Š…‚‹„†‡‡‹Œ‡„Ž•ŠŽŠŒŠ{Œ~Ž…‡”{„…ˆ‹‹ˆ•‡Š{‰Š‡Š”|„ŒƒŒ”Šƒƒ€Ž•Š‹‘†Œ…‘€“—‰‘Œ€‚“rˆˆ‡†‹ˆ‹›“‚’˜‚…‚Œœ……‘‘†“—Š‹{„‘„ˆˆˆ“‹ƒŽtŒ’Œyˆ~”‡„}ŽŠ†‹ƒŠŠ…‰Š”•Šp‚’{†–”˜†…„…†ˆ†…†…†††††‡†††††††…‡†……††‡†…………††††…††††…†‡††††††††„††††††††‡†††††††††††‡††††…††…††††††††††‡††‡†††ˆ…†††††††††††…†††…††††ˆ†††††††‡††††††††††‡††††††††††††††††††††††††††††††††††††††…††††††…†††††††††††††††††…†††††††††††††††††††††††††††††††††‡†††††††††††††ŠŒ‰}—gŽƒ„†l‡†‡ŽŒ‹x_‹”w‹„”…‰‰‡y|u†™ŽŒ‘›`ŠˆžŠ„ƒ—–…nsŽ}€„‚”’|’‹ˆ‰£’Œ‹‘‹Œ›ˆ¤}‰€{•‚ކ”•vy‡ƒ„‹ƒ“‰‡Œ}‚‚†—Ž’…Š„u„‡žˆŽq—…އ‰|……}–…~“‡–„‹ƒ„‰‹„‘—Žvy…’†vˆ‰”‹‘~~—ŒŠ~†‹“•Ž…Œ…‰‘”‰•ŒŒŽ…wŒ‰”{†ŠŠ•€…‰„‡’–’‘™Œ‚Œ¢Œ‹ˆ}’‚u–’……ŠŒ‰y…Œš‡‹‚Ž€‚ƒŽ‡‰„†‘„ƒ”sƒ•…‰ˆ€}}‹–Œ™†w†…xŽ‚›†Œ†ƒ”‚„zމsŒœ’€…ˆx‡Š}‡‡Œ{q‡Š„ƒ€oŽl–€Š¥µŽ™ˆ‘‰Œ€ƒy€†Œƒp…z””…†š{—–yŠ‘’Œi{¦~k…y–Ž‹‚z‚‰†Ž”{–w——Œv“s|“~‚m£{‡ž•ƒ|ªrЉ„z‘mœ”‹ƒ•ˆˆ“u“š§ž®•€ƒzuŒ†|ƒzw~{Œ‰™šxƒ–‡„{ƒŒr}‘~x•ŽqwzŽ••€œ™‚r|‘Šž€Œ„u‹Œ‡€‡…‚‡ŠŽ‘‹“‚}’“‘‰žˆŒ‹w”Žˆ‡†ƒŒ„Šˆ”Ž…‡Š—‡€{•‡~Šˆ‡†Œ“‘„‹xy€‹‹ˆŽ—‚‘Š‘”‹™Š“Žu„”„„w‹}…€ˆŠ“‘ŽŽŒ„‘Ї–І‡Ž‘‰|ƒ’ƒuƒ„‚‚Šˆ‰‰‡š’y’…‚‹—v•’‘~‡‰„Šƒr‹‘‡„’ƒ‡Ž‘•“—‡˜‰‘…‹‘‡‘”Š…‡‡”ƒ‹†‚…’”‡‡‡‰‹Œ‰Ž‚ŒŒ†…z‘œ‘ƒ†}Ž~‡ˆ—~{ІŒƒƒ†‰‡ˆ‰“•ˆ…Œ‡‰†—’‰x|ˆƒŒˆ„‰„ˆ†ˆx‹‹‰‡Šx‹„‹Œ‡†‡z€‘ˆŽŠx‡Œ„ˆ‰†ŠƒŠ„‚…~‹ŒŒ‰ŠŒ‰‚†…ƒˆƒ‡‹ƒƒ‚…‰€‚‹„Œ„ƒ…ŠŒˆŠt~{Žƒ…Ž~…Ž„†|Œ‹ˆ•‚{Š”…‚‰Š Ž~‰Š‰‰€u…‚“Š‹ˆŒŽ†Ž‰€Š†ŒŽ‘ˆ……{…’…‰’‹ˆ‹†„…‡„‹‰‘ˆ…‚Œzˆ•ŠŒ‡’‰Š‹Š„}ŠŠ†Š}‡€‰„ƒ’ˆ‡‡{Šƒ‹†Œ‘ˆ†‰…„Š’‹‡€‡€ˆˆŽ‘‹~“‰Šx—‚„„ˆ“……‡€€”•…‹Ž…wxŒ††˜ˆˆŠxz‡‚‚Œ‡Œ‘…ƒ•Ž‚s„…‡”‘–Š~ˆ‹†ˆ‚…{…{…ƒ†Š•Œ†‚{Žs„Œw’—‹‹~‚Œ~„‰‰Žˆ‡Ž…’ˆ“€‹•‹”€Ž„‘‹ˆ†Œw‰ŒŒ~ŽŠ…“……y{‰„Œ‘ƒˆ…‹‘ˆž„Ї}‰Ž‰ˆ€“–…ˆ”“†‹†‘€†‹‰ˆ‰ˆxŽ“˜‡‰}†‰‡Ž‡‘‰•Šƒƒ‡‡Š{‹Ž€Œ’„Šu‰‹ˆ~|„’Š~€ˆ‹ˆ’‹‹Ž‘˜„‰q‹ŽŠŒŠ‡x‘‘Ž‹–’‹}Š~†ŒŽ‡Œ‡‰‹u‡‹Ž‰z‡z‚ƒ“ŽŽ„„‘‘‹€“…‡ƒ”‰ŠŽŒƒ‰’‰‰…‰r†{„v„†ˆ‘†‘ƒ‡…ŽŠ“€v…z˜z•–šƒyŒ†ŠŒ†Š‚‹‡Ž‡‘Œ“‹”ƒŽŒŽ‡€…z†…ƒ~ƒ‡‡€~~€Œ†…Š‹‰|•Œ“…žˆ|{…‹Œ‡‰Š‚“‡“„ƒ‹ˆ“„ˆˆ…‹Ž‡‚”Œˆ—‡‡…‚‡ˆ˜…‹’†‘‰‹†Œ“Œ’ޓЉ†ˆŠr‘ŒŠ„„”€ƒ‘•ˆ‹’Ž”‹’Š‹o‰”މ‹Šx‘‹Œ…ŠrŠ““”ˆƒƒ’‘’…Š‚‹’‹}xƒŠŠ‡‰‚’w‘†Œ~‹ˆˆ‹‚‹•{•Š„‘ˆ†‰…{t‹‰Š’Œ‹ˆŠ‡ƒ‚€q‚~˜‚™Œz„sŠ•†Œw€’ƒŽˆ„‘}‹ƒƒŒˆ|„Ž„™’Ž“Œ…~†t}’…Œu”„„˜’~}††„‡‡xwŠ‹•’’ˆ|y…‚‡{ˆ†“‘•””xƒˆˆ€ƒ‰Ž€{„‡›‰‘“‚~|‡‚ˆ“‰†ƒy…|•w‰€„†Žt|Žy{€}ˆ””ŒŠ‹ˆˆ–Œ…Œ‚ˆ—„ŠgŽŒŒ†Žq‰~Š}‰‹„††‹‰Šˆ…’yˆˆ€Œ†ˆ†‚І}Ž”Ž}ˆˆ‚—~Œ†€Ž‡€ Œ‹„‹Š~‹ƒz‹“ŠŽ„wˆ…‘†”}w‰‡|~Š€„ˆƒ‹‚Žƒ‰|ƒ™}š„“z“‘Š„’{}‰ˆŠ—zyŒ‹Ž€|ˆ‡„|Œ‹Œ ‡€‰‹‘ˆ‰…‘—™ŒŠ’‰„‹ˆ‰—‹ˆ™†‹†ƒ‰‹‰ˆƒ•|Œ‰‹…‡…†ƒ‹„Š‘Œ‰‘ƒƒŒ‡„‡‡„šŒqŒ…ˆ†‹…ŠŽ…ŠŒŠŒ…”‘†‡‰ƒ…‡›ƒ’‡‡{Š~ˆ–ˆ„•‰ŠŒzЉƒ~†††††††††††††††††††††††††…††††††††††††††††††††††††††††††…††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††“‘tupjwƒ~•u‰xj¬Š¡yžœ¤©…¼n …‰œ‹¬†nŒ‹†ƒ—ƒ‘“Y¢_~›‰x‹€Š~rœ•€b“‚„XhŸtzkq•’hq…sb±¢‚‘zš—ºd„c‹yn}|ˆi‘‰…Š{q‰bŠ{‡l}€š}„{³„‰”¢ãzŸ{‚¬i“®„•j”{s§”›j­u¦›ƒr¯‘hŒ‰œ‹i…»]„ˆ€˜ƒ„–kœ„˜ys‡}¥gx––Œgv›t…¦n‘p”‰‰‡®}£”k~v‡hŽŽš€‘“~›”‰š€¦†‹uŸ”•¼¬ƒsrˆ~“Œ¨‚€[ˆ•x|}™‘„ˆˆ†‡…†‚~„Š{†ƒ~†‡‰~އ‹€„…“ˆŽ€Š}ŽŒƒ‚‹‰‰…€~‚zyŠŠ†ŒŒz‰‹Œƒ†€‡Œ†~ƒˆ”‡}…Ž’~‚ƒŽˆ“ˆŽ’‡€‚Šœv‚•Žu„†…‡‘ƒ‰‚w€Žzˆ‹•…z‹‹…Š{Œ‹€˜—‘Š‚‰ŒŽ‚Œu‰Šœƒ‘‹ƒ…}‡™…Žƒ„ƒƒ…‹†‚~‰…ŠŒ†ˆ–„އu‘™‚„ˆˆŠ†ŠŽ„x‡†‡„Š„ƒŒ}–„‡‹‰ˆ‹Ž€‚‰Ž‰‡}ƒ„v†‰–Іƒx…{‘ƒ„”ˆŒ†„t—‹ƒˆ~›ƒƒŒƒŠ‚|~‰ŠŽ‘qŒƒ~†Š£‚|o|~„…†‘ˆŒz‡‚Œ„~„w‰‰x‡”ŽŽ„Œx”•‹ƒ„t|q‡©}ƒˆr|„…Š‘‰‰zŽŒƒƒ|w‰‚ošŒŠvЇ{w{–…ƒ‚š„‹|‰q‹ƒ™x—‹„ˆ{y–oz‘|˜ƒ††…‰ƒ~‘‚“’‰‹w€“‚xˆ‹‘p‹u’€­’†„‡{ƒŽ‹‰†—‘Šm‹ˆš‚—…zŠƒ‚›—Žzƒˆ‡z“ˆ~~””“~Ž¥’|ˆ“„Žw‡q€‚—~Ž‹–„Œ…}‹ƒŠ†€‰~Œ‰~„€ŽmŽ}„Œ‰—–xŒŒƒ„ƒ‚}Œ‚ˆ˜ƒ†…}‚o”ƒ‚„•ˆ…‚sŽ“Œ‡†xx“Œyƒž‰}‰†}|x€ŽŽ–‚ŸŠ„—…{z„‹‹{~Ž–Š”€‰ˆ‰Ž‰€‡‘€ˆ€wŠz‚‡|ˆ€ƒŠ†Œ‰¢|uz„›’x…ƒ›qŠŠ‰‘xx~‹‚˜‰t‰”•‚‡›‡‡’ž‡ˆžˆŒŒ~‹‚•‘ŠŠ‰~yˆ”„š‘wŠy~‰r‘t‹˜’†˜|€~ˆ‰”~y~€¡ƒˆ‡~…z†ˆ‡ƒ‘Š„Œ|}“†‘~‰|Šz “xy„‰‘}t…{šk…‰ˆŠƒŽˆ‡ˆ„…‡‹‹†„„††…™‡…‰‘‡†‡ˆ‹‡†‹„Œ‡…„€‡……‰Œ†‰‰Œ‹„‡††€†Š‡‹Œ„†€{†Š„‰’‘Ž‹†‚ˆ„„І‰ƒ‡„x€‹ŒŒ~ˆˆ‡‰‰†ˆ…‰‡††{ˆ†‡‹„ŒŠˆ…†ˆ…ƒˆ…€†‚…………‰‚ˆ†Š†‹€Ž†Šƒ‡…„Œ‰‚ƒy…ƒŠ‚„Šˆ…‚…‡‡…ŠŠ†…ŠŒ‚‚Šˆ‡‡‚„‰|ˆ†‡‘€ƒˆ„‡†‡‘‡„„•Š‹ˆ‰…‡‚Š„‰„‹ƒˆƒƒ‡‡ˆ‰”‚‡~Œ„Œ‡†ƒ‡ˆŠˆ…†‰†ƒƒƒ–‰z‚›Ž‹†„ˆ‚ƒƒ†ƒŽ‰~…ƒƒx˜†…Ž}‹‹‚‰“‹†„€‹Ž€‚—‰ˆ‡‹}|{ŒŠŠ‡‹“ŠŠ†zyƒ‰Šƒ{ƒ‘‘ˆ‡„Ž‹”€“˜…‡~“z‰~‰z‡‰Š‹‡ƒ™‰w‚‡‰†Š~‰vŠŠ€‰{‚ˆŠ“šˆŽ–‡‡”ˆzŠ˜š„‹‰ˆ†~Š–Š’„„†~y…’„‹‘…˜€’vƒ••‰‘‘‘…„”‹‰‹‰„‡‰€†~Œ‡Ž‰‘††ƒ†ˆ‰€€‰Š‹„y~Ž’ŒŠ‚…u‹‡’{†Š†ŠwŽw~…’u‘“ƒ‹“w€„ƒ†‹…€‡ŠŒvsˆ“‡v‰†Š‰†’x†’~„‚‘š|‰…c€Š‚€Œ}z„{“|i‹…ކo„ƒ|„‘†z“ŠŒ”šˆ—ŽŒ”‹‡†…Œƒ‚{y†ŠŠ€”’“ƒ‘ƒy‰“ŒˆŠ„Œ„„|”””‚†‚‚†|Žˆv‡Œ‡‰Ž…€“}•ƒŽ‡Œ““‚‘Žƒ|ŠŒŠ}z„ƒŠ„{v—’އޒ‘‰‘š‰‹ƒ‹…•…‹„Œ‹–‘ˆ€‹~’‚„x‘‹‚‡Œ{’ˆ‹†Œƒˆ“Š–„Ž•Žƒ‡‰‹|‡‚‚‡~„”…†‚‹…~’†‡ƒw„Œ…†ƒ‚y”Ž€ƒ‚‡Š…Š…€†Ž†…ˆ‡…Ž”‚”tƒ‚‹Ž~‘x}ˆŽ“…–ƒŠ~‡—‰}˜~“™|‡…}“Œl…•w‘Œ„Š„‰•Žy}ƒ~Š~…o”‚‰€Ž†•š‘§}ˆ‰’‰w’†“…‡†‹€•‰‹ŽŒ’‹~ ´Ž‡t‘›~ŽŠ„Œ‡„Ž“–¢‹q‡z“‹˜zŒŠŠ„ƒ˜”’‰…ƒ™p’ŒŒƒ‹u’‘|Š‹wš•˜ˆp‘{~hŠœ•„¡Š•Ÿ~Œ’–yˆw€z“ƒ¡„‹ƒ‹–”„{މ{w“x–Ž’{~‰“„€”…‰z{›‘‰…Œ~•€–€„‹|–}|k”ŒŒ…‰tuƒˆ‰€y‡pˆ…|{ †‚…˜|†yq|ІŒŒŽž‘‰™}w•‡‹Œwš‹†’‚‹ot„Œxw‚’rŽ…~Š}z‹‡Šw™‡ˆˆ†ˆ}‚…•wy|Šˆ‰|{†Škž’‰‚{Œ‡‡ŒŽ{’‘ŠŒ†‰w‹Šš}q—‰‚œˆhŒ‡†˜ƒƒ|rˆƒ„‘|†ˆ{†€v–k€“|”–‰ŽŠ‡”x…‡z‹‰vpqˆŒƒ–…‡Ž”ˆzv‘}‘~ƒy~‡v{†ƒ‹ƒ‹ˆsv†x‹…zŠ„{†{Šw£qšˆžpœ†Šƒf€ˆz–‰Ž‹x”Ž•ˆw‘{ ‡‘yƒŠƒ}…‚‰•ž|‘”•ˆ‡ˆ•ˆ„…}“ŒŽ†’qy•’š•ˆ‰ˆ“‘šs“ˆ–’‰‰wƒ…ŒŠ•ƒ“‡…Šv„‰‰Œ‚’‰“†‚‰ƒ‚Š˜•”†’Œ–~…‹~†w…‹~“v€‰‰‡‘‹y‘}‡„‡—Š•{‹‰ŠŒƒ|w‘ƒ}ˆŠˆ”ƒˆ~ƒ„–ŒŠ˜—Š‹‘‘…ˆ‚‡•vwƒˆ™™Œ“”†Ž†–ƒŽƒ‹„~ŠŒ‘€ˆŽ‹–†›{‚‰•އ–‹Š„Š€…—v˜’€†“……”‹”„ƒŽr£‡v{ym~|ƒŽ…~~€n‰~x”‡—…zŒŠ~‰…ƒŽ€…r‹…•…‡{•Šx{š~|„‹…}•}~‡Š’}œ~ƒ‹Ž‰‰†€v…†wvyˆ‚Šsu‡~~ŽƒŠ€~ƒŽ†Œ’„†…‘u}‹‰Œs„ŽŒv„Šy‚wŠ~{ŒvŒ‘}€’…}‡Œ‘{‡‡ž’tu‹‹qŒ}mxs„„…t‰‚”ˆ‡ˆ|u…ŒŒ˜ŽxŒ‡}Š—‡††št‰‰~†ƒ’•…‰Œs~Šˆ{Šƒ‘މss‡‰’‚‰o€}„•|’w“z‹†uy…~†‚Œ†‹”ŠŒŒ‘‘‹Ž’‚Š|‡‰Œ†‰ˆ‰‹‹Š„ŽŒ‡Œs†z…‘{‰‡—Ž‘•Š’}Œƒx„ޅІ‹…ƒ€ˆ‚Š…š„ŠpƒŽ‹‚‚y‰„zƒ„‹’‘}Šv˜…„‰‰‰„Œ…€‘’–‰…~Œ‘ˆ˜‘ˆ–‡}އƒ”z…‹Œ”Ž•‹ŠŠnŽ’Ž™‘Œ‘‡yŠŽˆš‡‰’‰ŽŒ‡‰—“‡‘’ŠŽ‡†™“…Š˜œ‹‚’‰‚•–}„˜Œ„“Žˆ‰…–„‚„†‹„ˆ€‚Ž~‰‡t’€‰‡’Ž‘‰Š’„ˆ„………‹†‡†…‡…†‡‡‰„††…ˆ‡†„Іˆ…†‡ˆ†ƒ‡†‡††††‡…††ˆƒ†††‡…†„…‡„„‡‡ˆ‡†…‡‡‹…ƒ†…†‡†‡†…‡ˆƒ††††‡†ƒ‡‡‡…†††ˆ†ˆ‡††…†…‡‹‡†ˆˆ‡…††‡…‡……†……ƒ…†††…„…†…„†„…‡†††††‡…‡…‡†ˆ…†††‡‡††††…†‡ˆ‡††…‡…„††„‡…………‡††„‡‡„……‡…„†ˆ………‡‡††‡‡†‡………†‡„†…†‡„„†††‡†††„‡‡†‡…‡‡†…††…‡…†…†‰†……„††…‡†…†‡‡…†ˆ†‚‰tŒ‰•ˆ€’€†Œ›ƒ’ƒ‹“|…||{zŠˆŽŠ’ˆƒ‹’Šš~…†‡ˆ{…yˆ‹’“‡‹”†u‡„‰‡’ˆŒŠ‰Œq‡—€ƒ†’x‹z‰{€‘‰‰€”ˆ„‡~Žt€†Œ˜††…„’ޅЉ‚m‹zwˆ‚‰Ž{ƒŽ„Œ“‰†yq“†‡”•”’™|“†…ŠŠ‘‹‰€ƒƒ“‰„…’‚Ž„‹—‰Ž‘‡|™ŽƒŠ†Š‰’Œ“އ˜y†Œz‹ˆzŽ‹šsˆƒ‹ŒŒ„—…‹’‰…Š—ƒ‘Ž¡‰Ž“j…‹Ž‡o„‡ŠˆŠ‰†{Šo‘€—Œƒ‹†—”‰•n†xxŠ€Š‰Ž’ŠŒŠ€’™xƒ”}Œx‹ˆŒŒ•„•‡~ˆ‘Šp~„~„‚Ї‹ˆ†‚Œ~†”‰‚‚”z–ƒx†•„|}‡Œ‚…Š}ƒw‡Œ~}‘Š€‡–‘|Šy‘{…g{ƒŠkŠˆˆv|…‰…tr†‰‰—ŒŠ‘…“n„Œƒ|„‡ˆŠŠ‰…y}•†”€z•Šƒ‰„‚‘ƒz’†ƒ•—Š‚‹y•‡‡Š“ŽŽƒ“ƒƒ‰Š~ˆ‚ƒ…s}‰‹Žˆ‘‚ˆ|Žˆ˜vŒ„Œ„‘Š’ew‹†wˆoŠs‰Ž†‰€€Œv„}|…ŠŒˆ|ƒŽ‡}–Œ€‰ŠŠw€tƒ}„}„Šˆˆ‹z‡‹ƒb†“–ŽƒŒƒƒ„މz‹Š‘|y…‹™x}‘‘Ž}}€Œ‰ª‡‚ˆ„„z‡‡–‘~‚Œ{‚—ˆ€‰’„y…q ‚’‰{‚…vŒs‘€›~”‹‡Š‡w„‹Ÿ†|‡sˆ’€ˆ{ŒŒ‹Œlˆ‰…x…~†xUŽn…ˆq›‹v”‚‡d¤‹—‚‰dqž~k{••|Ê•|…˜_Žˆ¡›„‚¤}œ’u†ˆ„†Œp†Ÿu ˜˜•Š…Ÿlw…‹ˆŠ~€™›v™w™sy•ˆk‘‹“…sp}‰€†ƒŒŒ•‘‡€‰ˆŠ{‘…ˆ™Œ††€{{‹Ž…€‚’Š„“‚“Œ„Ї‰‹•‚‹‹Ž€ˆˆ’ƒ‡€u‡‘‡…†‡ƒ‹ƒvŽ~Ž…”|Š™€|‚“‰ˆ„Œ™†Š††‰†•‡‘|€‚Ž„‘ƒ…‘‹‡}‰wŒ„‘|Š‡ŽŠv‡€“‹Ž‰…“ˆ’˜…•Œ‘‰ˆŒ‡ˆ‰„’Š…‡ŠˆŠ‰‹€‘Š“ˆ‡ˆ‡Ž–ŽˆŽ“Š–†‡…‘ŒŽ…‰‘‡ƒŠ‰†x‡‡ŠŒ……ˆvˆŒ‡…„€•Ї‘‰ŠŠ…•‘‹‹…Œ„‡t“ˆŠ‰t‹|“ˆŠƒŽ‘ƒ‡~•“”ŒŒ𩇠”w ˜ŸŽ‡Ž•‘Šl†™Ž‚xÌ|x™|˜~ˆ„¤|’s„’†ˆ‚l|…’Yn’Ÿ‹™„†wž{™v–~ˆ‡‹‰{±…u‡‹|~–†”’so|}‹p³…‘Љ}…’y›‚•’‘‹–ˆ„‚•‡”r’†“Ž}Šž˜nŒŠ‘‰‹›’z…Žƒ‹tu§€’žŠŒ¢{ˆ›£‹’˜Ÿ”„—”‹œ•£‚{w‡™œ‡s™”ŒœŽz„‘yq…‡|—x€Šg†‘„‹˜—Š’šƒ‰„‚Ž}•wi¢œ–„ˆ‰š€Œ–{…•†œ‘Šˆuˆˆ–Œ—‚…™|r“‰‚•‘”…ˆ‹‹‡„“kˆ‰‚‹Œ~ˆ›ˆ“ƒ{€”v‚‡e†ž’„¢“€‰™s–š”q’…‹Š•‚~€€…•ˆ•‰†‘s‡„‹“’…Š–¤~vŒ|ˆq~Ї˜ŒŒ„€~ˆ—••‹}u~Žz”’ŒŽˆ‹ˆ’Ž‹˜x…y”›w‹}…”’y†x•Šˆ…•„˜‰†“•‚†ƒ†”wz‰“‰˜“—”•‹}ŒˆŠ‡Œ‹ƒ‘~€‘}Ž™‡{†‹ƒ‰†‘ƒ•‹™„‘ “‹“„…{••‰†ƒ—‰‘¥˜††††‡††††††††††††††††††…††…†††…††††††††††††††††…†††††††††††††††††††…††††††††††††…††††††††††††††††††††††††††††‡††††††‡††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††……††††††††††††††††††††††…†††††††††††††††‡†††††††††††††††††††††Ž„ŠŒqˆŠ‰ŠŒuŠ’ˆ“މ“’“Žˆ†€‰’††Œy}ˆ‚‚ƒ’†Œ…us†‡ŒŒz„Š“~‹ˆ‘‡…‘‡w–~Œˆ}Š„„Œ‡‹˜–ž™Žˆ†ˆŽ•†—•vzƒ„€‹‰}އx…Œ‹†…‡Ž’”|Š‘‡•“|‹Š‘•…—Ž…‰z„”z–‹‘„Š…‰††”Œd‰‡›~‡‘Œ„“t˜”Š“–‰Œˆ‰Š‰€ŠŒ”ˆy}†˜——Œ–ˆŒ„†Š|Žy‡‘‘ˆ‰{‡‹Œ˜Ž„ŒŽŠˆ’‹Ž†~‹wŠŒ‡‹‘އ„††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡„†…†‚‡‡ˆˆ…††ˆƒ€ƒˆ………‡††‰ƒ‡‰…†~†„„‚…‰…††‡†‰‡…‚‚‰ˆ‡†…ˆ„…††‡‰†‡‹ƒˆ€„Šƒ…„‚‰‹‚ŠŠˆ…„„†‡†ƒ‹ƒŠˆ…ƒ‰‰ƒ„‰‰‰ˆ„‡‰‡‹†Š„„†‚އЄ‚Ї……†…„†ƒ‰‡…€€ƒ‰‹ƒ„ˆ‰‹…‘„…‡Œ‡ƒˆ„…Š„wŠ…Œƒ††…‰ˆ††‚†Œƒˆ{…Ž…€…ƒ‰‰‚œ‰‡~‹{Šˆˆ†€Ž‰ƒ†††‰Š‡ƒ‚‰‚‚ˆˆŒ„~†„…‡‚‚‹|…„ƒ‰‚€…‚‡†Š„‹„†Š†}~~y{•…–Œ“p~‰€yˆ‡‰—„‡ˆzu›‹}~‚”„•‚Š•s‚ŒŒ‹Ž”ˆŠ‹‘Š‚„u‹†‡ƒ‰—ˆ‰…ƒ‹…†’„Šs”y—™v}‹…Šˆ…¤‰‡‹Œˆ…’‰””‹•~‹‘‡Ž‚xއ‡ƒv…†|‰ŒŽx€t‘‡‘†‹{–•„ž†›‚‰€ˆˆ†wƒŽ‰‰ƒ‘†—‡†ˆ‘‹…‹ƒ“އ}Œ™Š‹Ž•‹Ž‡ˆ‘„‘ˆ „ˆ‹‚Œ†Š…‰Š†ƒ‹“—†ƒŒnœ‰“‚‚‹ŠŽ‘†‘ˆ“Œ€”Œ”q‰’”|“Ž“…‡“††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†‡…†††††…††††††††††††††††††…††††††††††‡†††††…†††††††††††††††††††…†††††††††††††††††††††††††††††††††††…††††††††††††††††‡††††††††††††…†††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††„~‡‹”…‰‹|ŒŒƒv††Š’Œ‘„xx‹„~‰™’…•†–‘|‚ŠŒ…˜‡ŒŽ‹‚‡’އ‡ˆw‰‡ƒ…„…‹‰ˆ‘‰‰‡~…‘€~j•uœ™z|…Šˆ†ŽƒŠ”„’‰‡Ž€‰Žˆ‰‰‡|˜ˆ‹ƒ“…‡w}ˆŒŠ€“†‰Œ†~{‡Œ}‰Š—‡œ‡›€…Šƒ„‚„‰‚•„‡‡ˆ‘ˆ€Œv„†‚ŽŽŠ†‹—ˆƒ‘‹ˆˆ‡„’ˆŠ„•‰ˆ†Šˆ‘xއ‡ƒ€…Šq‹‰€‚ˆ”‡„…‰Œ‘‡‰Ž”„“…Œ™Š–qŽ–ŒŽƒy‘Œƒ’~‚jŽi{‚x{‹Wyˆ–—…x ž~Ÿ“ƒ†®Œ¡–„‹x~~Š–’zŠ®l«‰€†‹”ˆn‰tœ}˜ˆ’†Qœwutisš…ž“zt§¥„ޱ„–•œ|‡~ŠŠŽ}xŠŒ‰Ž¯sˆ¥|…{Žx‚„Ž{…Šœ‘zˆwµ|¡‹~xœ“r‘{ŽƒŽoˆ‹{ªˆ“†“tƒr’mƒ”””ƒy—|Z‹…Šˆ|xi—’‰™Ž}¥‹u’zœœ¢ˆw’„ƒƒtrsŒn›ˆ‰‡‚˜usŽsT‰‹xŠr}”‰ƒ»¢‚—Š~š¡}‰˜{£€’†‘—’s~‚[•”j“‡ˆ›h~”ƒ¡„Œ~‘‡ªv‰vo¢s–vˆ—’\‰”sy’‡Ó‹‡™††‡‡„¦}†~‹‰©™’ª‡ˆˆŽt¨Œ”Žt†‹…z‡¤‡“”x‡mn‡œw†œ–”Žˆˆ~‚”€ŠŒl’ˆƒš«—š—Œœ…ƒ™wˆuœ…xŠŽŠŽqš–š|‰‹“§‚£ƒ¡†”q…‹‚…¤z†”š†~˜Šx‹–‡–wŒš–•”}’–†•‡†•˜y†Œ€—‚‰ˆ™Ž”–‚‘Š¡‹ŽzŒ„Žs‘‹’ˆ|’™‚–’}†„—y‘Š˜…Œ}‘¤ŽŽ‰|†|ž|‹‘Šƒww…ŠŽŠŠŠŽ†„y’‡Š”ˆ…‘„€‰Š‹…‰ˆ‘~މ••ƒ{ˆŽŠŠ€›ˆŒ‰‰„…‡ƒƒˆŒ‡€‰ŠŒŠ…†…‹~™•}’{€Š‡Šˆ…†‘Œ…‚Ž“’€ˆ†‘ƒ’‚˜‰…€‹v‘”w‹…‰}‚…‘‹‰Ž‘’ˆ„“‡Œš†ˆ‘ˆ€•ŠŒ‰‡ƒƒ€†ŽŒ‰‹Ž‹…ŒˆŠ€…‰‡„‹~Š˜•€“–‹•ˆ—ŽŽ…Žˆ‚…z‰‘‰ƒƒ€……yŽ“ƒ„ˆ•ˆ‡…’ГЋ†”‘ˆˆ‰€Žl”™ŠŽŠ†v“†ŠŽ‹{ˆ‡…y‡‡…„”ˆr—Žˆˆ›‹’‰oƒ‘ˆ„€…†Šu„‚~‹‚”…‰“‹q||—‰Š…‰Š„~}‹qƒ‚‹‹€…‘Œ„Š——–”ŠŠŠ“ŠŒ‡†Š“‰‚|„‹‘•|Œ‡†‹…ŽŒ~‡‹ƒ„ƒˆˆ‰‹„‡…‡Œw†“†‚¥‡„ƒ‰y’ŠŠˆ…~€‡ŒŠ“o‘œ}Š•ŒŠ‘˜‘™“•Œ‰‹‚Š‰Šˆ‡‘—}ˆ‰Ž“‹ˆ‰Ž—‹—ƒŽŒŒ†‰~…z”˜”‹†‚‰‘Ž”€Šƒˆ†€”…zŠ‚Šƒ„‘‹†€„•‰†”‹†…Š‹€†ŒŒz…‡¦‰™Ž“x—›zƒx‹…’ŽŽŽŽ‡™‚Š€ƒ’ŠŠ„†s†‚†™”¡ˆ„‹|…ˆ€„ˆŒŠ‡†€‰“—~†Š†•Š‹™vƒ‡„””‚ˆ‰‹œƒ|…ƒˆ†…„‘‰…|…ŠŽ’’‹„|އƒ„’šy‹‡‹ Œ…•†Ž‚’{Œ†‹Œv–}’‰Ž…‰›…“ ŽmŠ}‰…o‹“ƒ†˜uŠ‹œ”Œˆƒ’“„‘“‹Ž†–……’–‡€Œ†ˆŒ’}…‰s—~€x…„ˆ†ƒ–œŠ—Š—ˆ† …–˜ˆ†Š~“‹v‰Š’„‚|x€€††††ƒ‰Žr†‹‡~Œ‚wŒ’„|‹—Œ€““ƒ‰†’‰Žƒ—†‡Š…Œšˆ‘Š‹v†”„~‘Œ’‰†~‰Ž•zv’xš{‡†Šy…‡ˆ‹Ž™Œ‹‰ˆŒŒ‘—’…x”‰‡‘Œ‹y†ƒ†‰‰“ƒ}ˆˆŠ‹‡ˆ€•†Š•„›ŒŒˆ‹Œ…Š‘†Œˆ…„ŽŽ„„–Œˆ{“ŽŒ’‡ƒ‹—†€„‹ƒŽˆ‚‡—Œ{’‡‰‰Œ}‹†‰‰‚‡ŽpŒ‹‰‹……–†‰•‡†Ž‘‰‘„Œ…‡mŒ”Š”…ƒv†’‹…‡…††‡††††…†…†††‡…††…†††…†……†††††††††††††††††††……††††††††…†††‡†‡††††…††††††††††††††††††††††††††††‡††‡††††††††††††††…††††††††††‡†††††††…†††††††††††…†††…†…†††††††††††††††††††††††‡†††††††††††††††††††††††††††††††‡†††††††…‡†††††††††††††††††††††††††††††…†††††††††‡…ˆ‰†„‡†‰††…‡ˆˆƒ„‡‡…ˆ†ˆˆ‡‚‡‡…‡„……‡…†‡††‡‡„„‡†‡ƒ…ˆˆ†‡††…„„‡ˆˆˆˆ‡‡ˆ‚„…„…†„†‡††„‡ˆ‡‡„†‡…†…ˆ‡…ˆ††ˆ……†…†‡‡‡…ˆˆ„Ї…†…‰…„†‡…†…‰‰†…„І†ƒ‡‡ˆƒ‡ˆ‰…†‡‰ƒ…Šƒˆ†ˆ…Ї…†„………„ˆ†ƒ‡††…††‡ˆˆŠ‡‰ƒ‡‡‡†ˆ„…†ˆ„‰„„„Š„ˆ‰†…„‰‡‰‡†‰††‰††‰ˆ‰†„‰„„…ƒ††‡†……†„€ˆ†……ˆˆ…„„‡†…†„„„‡‡…†…‰††…„‡‡††††…††††††‡†††ˆ††††††††††…††††††††††††††††††††‡††††††††‡††††††††‡†„††††††††††††††…†††††††††††…†‡††††††‡††††††††††††…††††††††††††††††‡†††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††’~’€‰h‰ƒŒ›y„‰u𙇓‡£Šˆy„{“‹…‡‰ŒƒŒ}Ѝ‰Œ‰®xŠ…”’z‹†”•Œ—•Š…“–‹•zŠ“ˆ˜ˆŒŠ‹‡–ˆ†—‹Ž‘x}‹|‰Šzƒ’Œ†…‰†‡‰ˆƒ‘ŒˆyŠ{ŽˆŽŽˆ˜’…‡„–w†‰‹’”‰Ž{•‹z–„Ї{‡“…€–€Ž€‡“˜ƒ†–‰€ˆ‚’…ˆ–˜…ˆƒ}‚™Ž•‚…ŠŽ–ŒŽƒŽ‚˜•†„Œ‚Š„‡„…ˆ‹‚ˆyŒ‘…ƒ…‰Œ‰„“‡€„†Ž’™„z–wЉ†•˜ƒˆ…‘„Š’‘‚™†‡‡‡†ƒ…††‡†‚††………†‡†ˆ…†„‡„…‡‡…†ˆ………†††††ˆ††‰‡‡ƒ…†††……††††††‡†………†„†…†…†††‡†‡ˆ††…††††‡†††††††„†ƒ‡††…†‡„‡…†…††††‡†††ˆ†……†…†††††††††††‡††††††††††…†††††…ˆ†††††††††††††††…††††‡…†††††††††‡††††††††‡†††††††††††††††††††††††…‡††…††††…†‡†‡†…††††††††††††††…††…††††††Ž}~ˆ|“Іƒ‹ƒ’„“‘ƒ“{˜’„†„…’‹ŠŒŽ‡‚Œˆˆ‰‚‚Ž‹ƒot†x–xƒ˜‡ˆŠ’Œ}‰„‘‡•‹}…ŠŠ‹‚›‡”—n~ŒŽŽ‚Žƒ’|Ž€‡‹‰‹Œ|‰ˆ‹„„Œ‰‘†‚‰’Š…~œ~Š…š’„‹‹”‡–†ƒ†ƒƒŒ}‚›ƒŒ‡—††’„’›ŠVƒ‰”{{•‡Œ†Œhˆ‘’‹‡–„“’†“€”€“‹’“£‘Š’‹‰Š‡™„‰†ƒzˆ‰‚‚‰“†›ƒ‚‹Œ›†Ž¦‡‹‰w…™ƒzŽŽ‡„‹‡Š„pƒ”–‘†Ž‰ˆ‰”„ŽŒ†‚‰„„‡ƒq–‰ˆ‹‰‡‚}‡ŠˆŠ‹‹ƒ€‰„Ž‹‰„ƒ†„‚’………‡ˆ¢ˆˆ‚Š—ƒ…ƒ’‡ŠƒŒ‡‹†~ƒƒ{Œ„}t™‚†€•…ƒ†‰Ž‡ˆŠ„ˆ‡€Š†‰Ž‡ˆx†Š…Œ|~†“’…t„ˆŒ‡‰ƒ„‚‰{‹“‰††‘”ˆ’†‚‰Žƒ‹‡}ˆŒŽŽ…‹‰†|‡„…‹“—„}§‰‰‰ˆŠ•‡‰‰‘„ˆ…ˆ†y€…‹†‰ƒ|‡‰}ˆƒƒ‹‡‰ˆ†‹ƒ€‰{†ŒŒˆ…†‹}{…„|‹sŒ{z’ˆ††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…“z‡‹›‹„ˆ€ƒ‘˜ŠŒs}s‹ž‘rpw•…‘ ƒ‰r“„ˆ—‚zŠ˜s…|…–’Œ†tœ{ŠŒ‚|p…¤ƒ†š}ƒ’|w€‡yˆ†‚zx‰ƒ‡x–{‚‚”†Žuy…’vˆ…‚w‘€‰yu‹jxŠ„€ˆ‘xx›„Šˆx~gw€z}ƒŒˆŽ†‚—Ž‚vx~~~„‰}ŽˆœŸbrŽ}‘Œ†q†‹ƒg„‡Š“‡›Š„‚‰Œ€–žŒƒƒwŠkŠˆŠ{€r–{”zƒ‹|tp†Ž‚†ƒ€Ž}”•‰ˆ€‡Ž‚|ƒ„‡v”‚ytv}i‚‚…Љy„€„rxŒˆ„ƒ{‹‘‹Œ‹†…~Žˆ‹’‹€‡z€„‹‹’…‡‡Š€’‰‘†‚…Œ•Ž•ƒ‰ƒ†ˆ‡ŽŠ‹†„‹v€‚ˆŒŒ‹ƒ}އˆ…‡‡y‹Š„}‡”…†Š‹‚ˆŽ†‚†‡‰‰zƒ‰…|Œ†•€Š†}‹m€{€‰fŽ„ƒz‚w‰‰€Œ‘‚“ˆŠˆ‡Žˆ~‹†Œ‚†ˆˆ˜…‰„‚ŽŽ}yˆƒ‚’}ˆ–‡‘’…‹˜”‰”ƒ†‹••މ‡ˆ~„‡‹†ŒŠ‘‚s‹‡€}†‰ŽŒ‹ˆ†ˆ–‘‹…“‡„–r‹šŠ——‰sŒ|Љ“Œ‚’zxŸ‰}Œˆ~ŒŒ™Ž|‚|…‘~‚m‘„”Šˆ…‰wŠŠŠ‘†z‡|ƒ~w„‹‹xv€‘€‘s‘‘„“tn‰€‰‰ƒ‡ˆƒ”‚Œ|†‹urx‘†€y’wŠ‹ˆ‡vˆ’‰Š‚ƒ†vŽš‹~‚t~lsƒ}us‰‰‰‹„yy‹}„ˆ‹|Šz€r}‰†…x…‰ ››v{ƒ|…w‰’•„‹‘}‘–„„…ˆ’‡–„€uŠ}‘xŒh‚‹y‰ƒ‚ƒ†}‹zƒš…€x{‰ƒ††‚…~ˆ‚{€~†Š|n‚tqƒ|ƒ‹„Œn˜…w†‚~ˆŒ}„Š‘”Љˆ€~…‰“Š‚‹Š}Žˆ‹“‚‹“‰”€Œ•”’…Љˆ”…ŽŒ‹………‡Š‚‹‡Š‡‰|‹‹†ƒˆŠŒz}–“~І‡Ž‹Šƒ‹‡‡‡‰‹•Œ}ƒŠ’†„‘œˆ‡„‰y‚‰}ŠŠ…’‚‡~Žˆˆ”–†‡•†Œ”†”„‹…“ЉЅ†‚™‹Œ’’‘І‰Š„††ˆ‡’ƒ‹’—†’“‰ŠŒ•‰†‘‹‹ŠŒ„‹ŠŒ}ŽŒŒ‰‡ˆ††vŒ’†€ƒ†”‡‚„“Ž‹‹Š”‰‘Žƒ…rމŠw’ƒŒ’”‹ˆu˜ŒqlŠ~±u‰†o„……‡‡›—”‹s}~‹ps€…‰Œqƒ‹„{’…zn”–•„ƒŠ‰–Šo}u„¢„ˆ|Ž…‹qƒ„Œ€ˆŽx‘Œƒ¦i“}†‹y’ˆŒwus‚•†œx“Œ‡sw‘{“|~…š‘v˜ŠŽŠ‰ˆq˜c‹xx†“€¡•€„Š[‰–v d™‚ˆ„’‚‰…y¡™ŠšzŒ|…‡…|‚Tz‹z”…§—|~ƒq‰zyƒ–”‚…ƒ”Œ‹ƒŽ{~‹t‡€‹‚~~‹ˆƒ‹wyŠ}€”}}‡Œ–g~‡†„¤†…†…†ˆ†ˆ†††‡††††…††††††††ˆ……†…†††…††††††††††‡…†…††††††††„†††‡††††„†…†††††††††††††††††‡††††††††…†‡††‡…††ˆ††††††…†††††††††‡††††††††††††…†††††††††††††††…†††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††„††††††‰}~’Žˆƒ†}Œ„ˆ}†’€‚†„ƒ~sކ‚…‡ƒs}ŠŠ‘„t‹}xƒ€|‚…‡ˆ†}†{}ЇІЙ‰ˆ‰ƒކ‚ˆ€‰Œ„ކ˜†…ˆtv„…~Š}ˆ‹ƒ‹ƒƒz“…‹†ˆ‡|„…‰ƒuŽ‘‰†“„uvˆx„€ƒŠ‡~‹…€y‡……y’ˆ‰}Œ‚‰€u‡‹Š…|Š…†Žw‡“‹ŽŠ}Œ„„€zˆ|‡†ƒ‚…‹Š‰{„—Š€‹Œ†††‘Žƒƒ~…„„|ŠˆŠ…™…‰|‡…ƒ~{ƒˆ…ˆ„‚ƒt„€Š‰ƒy||Š„Œ‰‰ˆ‡r†z€˜†ŠŒyt€’‡ŠˆŒƒ…Š”…„||zrˆ‚…‰‰}o€‰ŠŠwŒ‹r†zŽ…Œˆ~z}…„‘ƒŒŽ‹…‹„}Š€‡•wŒ‚„‹’„„‘ss‹|„‰‡~„•~„‚~‡ˆ‹‰w…‰ƒv’‹…ƒys€ƒ{ƒ€ˆˆ‰}„•…ƒ…Šƒ{˜†‡‰ˆ†††…}q……„|Ž|†ƒ}”†‘ƒzŽ‚€†~Šm—ƒ‰”…ŽŽ†~‹‚„’І‰x„‰‘‚ˆ€yŒ‹†‡…Œƒ™Ž‚{Šˆ†|y‚Ž…„}w€€t„އrz}{‰}‡|v†…Žrˆ„yƒ›‰€‘ƒˆ\—‘Œ|ˆk…Œ™™‘Œ‘y†”„‡’‹|•“{ˆ„Œ‚–‡“—‰ŒŸj”ƒ‚~’Œ‰z‰~~‘‚›‘{‡‹„žz–€ˆ…Ž”˜„ˆ”u‹ˆ‡|…|Š…y“w€„„‘ƒ”’“y†‚~‘Š‰ŽŒo€‹‹fx‡“‰—w”„{ŽpwŒ~ŒŠ€‰†”“ŽŒ„|‰›™|h€‚‡¤’xƒ’—™…„}ˆŽ˜…y†ƒˆ™‹xˆŠŽ•¢Œ‰œ•ˆˆwšˆ€˜‚›„‰†Š‹‚ГГœ…‰‰“™‡“„‚‰}’x…}‹„€Œ˜}œ”‘€l†x†od~…ˆm™‘ŽxŒ}£Š{Šv„˜´€‘jˆŠ‰„‰esŸˆ‰~qxƒ–ˆ~‡}Šzk~ˆ…~ u~•°•ŸŽ|±rÇŠm‘Žwƒœy†~£’©š‰Š™˜s„™ƒqi~Šª¹|˜“ˆ‰ƒNq•“w™€mwsœv>•ƒŠŠ~™™u˜“o•‡·~a¨‰y‚ÅtŒ“ƒ“¢ygzœf‰Š•pq•a{ˆyŠŒŸk\ƒ…†‚†lŠp‘ƒ’À¹™”vuƒl‘Œ‚†š]~wˆl‚§}„f¦|œ„zŸ‘‘˜‹›’|f†™žpk‚œŒŠ‹¥}}‹fgw¹‹–ˆšŒ•‘•ˆ‰–†~„‰“ˆ…z‰‚ˆŠ‚˜‹Ž†~ƒšŠ‡ƒŽ‹ˆŽ”ƒ˜„’„’‰‰”ƒ†”{‰š„Š„Š†ŠŒ‰|s‰‘}xˆ’y˜ƒ}—ƒ‹„ˆ‰‚’‡z‹ˆ—ƒ”ˆŽp~•|–•ŽŠŒ„‰„r~‹€“q„ƒˆ|‰y‡‰…Ž“|}’‰Œ’ˆ}Œ’}…˜„„‹ˆ–’•„€ƒ‚Ž””‰ˆŽ„ˆ’}…†•’—‚ƒ’“„‚~އ“‘‚˜‚”Œx’”ŠŠˆƒ‹‰o‘•‚z|–†~”ˆ‰ˆˆˆŠ‹”„…‡u}ŽŠ‹Œs‰xˆ‹†Œ‘†€‚|¤–†ƒ†‡o‚ˆƒ—Œ•‰’x…Š…†|–—˜„Œ“‘‘Љe™—ŽƒŽ‹Œˆ•œ„ŠŒŒ†‰•„‰š•„‹Š”‘—„„“€…‚u›œz‚„„‰‹…Šy“ƒ|•‚…ˆ˜Š‚Ž’Š‚”‚x‚Ž”“w€ƒ’{‹Š‘„ƒ~xŒŒ‰Ž›r£†ƒ‡‹†ž|‰’‚ˆŽ”‡Œ“™Œ{ ‡‰”~Šz‹ƒ€‚Š„ž‘†‘Œž•šƒ„y–“‘”•—„Šuƒ”…}……Œ‹”Šs†”„ƒˆƒ‡“„–Œ~‰ˆ•}„”“‘™”p‰™Ž£‹ƒy…‹ˆˆ”’—|‘‚ƒ™‘Œ…wŠ•ŒŒ˜Š~’„‘™…s€„…Œ†Œ€“ˆŠ‚‡ˆ‹ŠttvŒŠ“…•™ƒ‚‹ƒŠ‘ŽŠ†„ƒ‡Š‰‰‘’•Šƒ„ˆŒ“|’‡Œ‹u‚€ˆŒ‹ƒ•–‘Žƒ€ƒŒ‰‰‚‰ˆzŒ‹†Žƒ†€†Ž˜„~†Ž‚‰…‹’…Š•Žƒ”†ƒˆ‚‡’ކ†Ž„’‹Š™“˜’w„‹•v€“‹~“‚‡ŽŒ™„“‰‰„Œ”‹’‡‰…•‚Œ„’Š„”›ˆˆ˜’’†‘††‰›{}ŽŒ‰‰Œ…’–‹ŸˆŽxŽ~–ˆ‡Ž}ˆ“ƒ…™…††Œ…’‚“’†ƒ†…ˆ‡†††‡†ƒ†††……†‡†ˆ††…‡€‡…†‡††…††ˆ†††††‡†††…†…††††††††…†††‡††††††ƒ†††††††††‡††††…††‡†††††††‡††…†††„†††‡††††††††††††††††††††††††††††…†††††††††††††††††ˆ††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††‡†††††††††††††††††††††††††††††††††‡†††††‡‚††‡††††††…†††…††††‡†……‡ƒ‡†††…††…†‡†††††††††††††††††‡††††††‡††††ƒ†…†††††††††‡†††††††‡††††††††‡††††‡†††…†††††††††…††…†††ˆ††††‡†††††††ˆ†††††††††††††ˆ†††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††‡††††††††††††††ƒˆ…‰ƒ†††††‡†††„„†††‡†††‡‚„…‡†„†ˆ…†‡†††††‡†††‡†ƒ††††††††…††…‡††††ƒ††††††††††††…††††††‡††††††††„†„††††††…††††††…†††††‡†††ƒ††††ˆ†††††††††††††††††††††††…†ˆ†††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††…††††††Œˆƒy~†”‘‹Œ‰Ž–…†s—„‹‹“‡|ƒ†Œ•‹ŒŒ„˜’‹yƒ“…Œ…—ЉŒ‚ƒ‡ƒ’‡‰‡Š…}…‡ƒ‰–މ†‚Œ‡{€Ž}Žz†‹—€Œˆ‹}…ކ•ˆ‡ƒ”Œ’Œ}“„ˆŽ‘‚…’†„~”u‚{’‹tŠˆŠŠ‹}|‰‰–‘š‡—Š‹Œ…œ‹‰€„ƒ›ŠŠŒ‰™„ŒˆŽŒ‡…†’……†€Ž“•Œ’•†ƒŠ•–Ž‘‘‹ˆ”…ƒ†Ž}…|„~y„‰ˆ“}ˆ€Ž˜ŠŒ…ˆŽŠ‡…”’Š‘„„ƒŽ†q”“†Ž‚ƒt•‚€Ž‹Ž‹x†›“…‡’z•ˆŠˆ”‹‡Œ€‹“’}•‘”Ž‹u‡‹…‚˜–Œ€†Œƒ†Š‡Žˆ„Ž‚}ˆ†‹˜‡z‡Šsrƒ“‰‰ˆ…{ˆ‰„‚„‹|…’|‰‰Žˆ˜…‡•ŠŒ’ˆ„•‚~…’‘€’Œ•™†~މ…ž‡•’‹–‘†މޑ†ƒ‘’‘‘Š˜—€ŠŒ‡||’ƒ„’ˆŠ‹€‹‘‘ˆ–ŒŠ„‡‰†~†‹“†„q–‹ŠŠ†Š“w‹“Š|Љ‰•ƒ|‘‡ˆˆƒ˜…‘Œ‡‰„„‘ŠŒŽ…z“‡Œƒ‡†Ž…‡„‹‹ŒŠ‘„‹‰|Š’‡”Œ‰{˜‹‡‚‰Š‘ŒŒ†~‡„ŠŽ–w„އ†‡‹–‰‡…މ‹Œ‘…}Ž|†|tŽˆƒ†‹””‘¡’Œ”u‹“†ƒ‹ˆƒ‚……‡”€“‹„•’…‰‹{ˆ„ˆ…‚€Œw‚•~’ª}~ŠŒzˆ”†‚ƒ’ƒ“’‰™tšˆ‡x‰ƒ‡…‡“Ž€š•w}|}Ž“„Ž‹™Š‹Ž–Œ‰–€€˜‘|Œˆˆ”Œ‹‡ˆ|‰‹”‰ˆ‹‹Šz‚x ~ž{{ˆ‘ƒŽƒˆŸ£Šš‘ƒŒƒˆ„“…‰wŠ„ŠŒ…”…‚}€ƒŽ‡‡’ˆŠ‚•ŒŠ‚‰†{w‚‘…‚Œƒ™“Œ‡Ž‹‘„Œ}ƒ†ŠŠ‚‹“‚yŽ…‹€{~ˆ”Œ”††…•‡†’yrƒ‘x†‘‹€…‡ˆŠ“|Œ†…‹†Œ”ŠœŽ|”Œ“š‰‰y}~‡{ŒŒ‹††‘Š‹ƒ~ŽŒ‚‘’‘›z“ˆŽ”†ŠŠ„…–Љ‰ŠŽ•Ž‘‰’–†Š‹†ˆƒ‡‘‚މ‹†z†ˆ…œŽ‰{‹ŽŠŽˆzŒ•‰Ž‹–x‹‰’Ž’ˆŽƒ—‘’‡‰…‡’–~„’x€–ˆ“–qŽy“І††……‡†‡†…†…†††ˆ…†…‡‡††„ˆ‡……††††„††„††††……††‡„†ˆ††††††…†„†††‡††‡†„†„††††††††††††††††††…†††††††„†‡††††††ˆ††††††††††††ƒ†††„††††…†††††††‡††††††††††‡††‡†‡†††††††††††††††††††††††††††††††††…††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††‡††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††p‚‰ˆ‚‹‚yˆ†€‚‰‰n“Žƒ„Œx„……Œ…„w‚|~‹‘ˆˆ…tŒˆ‚‡ˆ’’„‰„}„|Š‘„‰ŽŒ‡†Šv‚Œ†€‰{ŠŠ„~‹„ƒ€ˆ†z†‚„Œ‡€‡’w‡ˆŽ”‚rsv†‰›‘{ŒŒ~‰†ƒ€‹ˆƒŒˆ|‰†v‰‚•‹„•}~…‡Œ…ŒŽ‚„yz‡ƒ}y…‹~›ˆ}‰ƒ‰•~‹…‹€~ˆ{І‹šw”yŒ‡Œ|Œ„ƒŠz„ˆ~Žˆ|p†‹‰†‹‰„•‰~}€€‚~‡{{ƒŠ†~†Œ†‡sŸnt„Š…{†‡xzŽ…ކ„ŠŽr~††ƒ„w†…€‰‘‰…„’z‰Š•‰ƒ„‹‡„‹‹ŒŒŠƒ‘‹‹‡†x{ŠŒ‚Œ„‘Ž„w€ŠuŒŽ…~‚“„—†s‘‡|z‹Šu‰ƒ–…wŠ~†’•‰‡‹ˆ’…“‚ŽŽ€€Ž{„„sƒ†‹†€‹y‰‹”Ž‚€~‚“…‰Ž”•‘Œƒu”‰œŽŒ‡‡Œ‡‹’‚˜Œ˜‡Ž‹†ˆ’ˆŽ•Š‘{“…‘€x”‹„ŽŽˆˆ™„‡‚…„…‹‰—‰|‹jŽˆˆ‡‚ƒŽ†ƒ‰Œƒ……Š‘’—Šz‡€…’ŠŽw~‹ŠŠ‡Ž‚“ƒv„l†‡†ƒ‹r…ˆ¢˜“ˆ}••~€ˆ‡†™‰•Œ}Š…ƒ‡•€Œ‹ˆv’…’“}z”œ‡Œ‰r‰‹v†~Zƒ}ƒŠ„‡–Ž’…‰’‘–€–™|}Œˆ—Ž‚‚ˆŽ’‹ˆƒ‚Œ…ŒŠ‚‰…‹„†”„†„‰‹t…‘Š’l’‡“‘Ÿ‚|“‚’‚…‚ƒƒ†„ƒ•‡‰ƒ„ŽtŒŽywŽŒŽˆ‘…–“‰Š……ކš•”rŽŠ‘„Œ‡Œ†•‹†€v’‹z…„‰ˆs“{‡‰Žˆ‰}Œ‹ŠŽ–‘‹—‚›‡Š˜ƒ”“~†–—„Ž‘‹ˆŠ’‚“›‚˜Šv˜„|’ˆy…}Œ•Ž‹‚–ƒ{|u„ˆ–…‚‚zr‡‰ˆ‹ƒˆyІŠ|€‚Œ„z”ˆƒ––‹ƒ€‰Š‡‰„‡|}‡‡zŒ††zt†xˆ€ƒ‡‰‡‡“w„‹…ˆ„|ŽŽ‰…‚†Œ„‚‘vow‰ƒˆu†ƒp†|z‰…„€…‹{˜v€Ž…–‡u‘“€„‰ŠŠ‘x„މ‹†yƒˆ…‚w„z‚†w…|‚‚tl‡˜„Ї‰…‡‰‰}€ˆˆl””ƒ‰†…|‚ˆŽ‚…~‚†…—t‡yŒ‘‰Œ†ˆ‚„|¡†z†„‡yŠ…x§x‰‰ŒŽƒ“’“€‰Œ‡Ž—‡”‚Œ˜†t™‰…†ŠŠ“‹†Ž„}‚‘„šo”ˆ‘~‚œ…Ž|ˆŠ‘‹‡‹…‚†€Š…Œ|„‰šŠ’Ž‘vƒˆŽ”€Ž”„x‡‚„‚‘‚’Š‚‰Ž…“–‰Ž‰~‰€ˆ‘s‹’ƒ…š x}ŽzŽ”‰‡…”†‘އ–|“„„~‹ŽŽ”œŠ–’x“|r›‰‘”‡“•‘ЗކŒ’›‡|™Ÿ‡€…–‡‰ˆ‹‰‚”˜‰’Œ|z‘|–ƒv‡Ž~‹•Š•Žž…𣆒„Š~“…‘‰t„†ƒžŒ|t‹’‘„žŒŒ‹œm•‹†—w†{q–ˆz~…ˆƒ‹‰’Š‘vŒ€ˆ‘xˆ„~އ‡…Žx…}‚„{ƒˆ……ƒr”’‹}}’ƒ‡’‘—z‰‰ƒŒ•Œ Ž’‰‹Ž–ˆŠ{‰‰‡„{‰‹‰„‘‚v‘z€‰|‹…€‰y|‘‘‰˜‡Šƒ•‰Œš‚““ŠŒ†‰ˆ‰Ž€—‘•Š…ŠŒ‹‚Œˆ€‹Ž‡’‹‹ˆ•ƒ|ƒ™ƒƒŒŒŠ‰‰„‹‚Š“‰†Ž€ŒŒ”}ŒpŠ”‚‚•€ƒŽ‡‹‰–ŽŽ’•Œ‚Œ‡ƒtދޗqŠˆ–†…‚‹Š……‡‡…†††††ƒƒ…††ˆ†‡‡Š‚‡ƒ††€†‡„…ˆ††††…†‡…Œ„†€†…‡†„…‡…€‡‡‡ˆ†…‡†z†~‡†……†…†††…Œ‡††Œ……‹†…††…‡††…‡}†…†‡†‡‚…†…††‡…†‡††‡Š………††……††……‡…†…ˆ‡‡†ˆ†‡…‡‡‡‡†††……†Š‡††……††…ˆ†‡†‡††††††‡†…†‡ˆ†††…†…‡…††††…†‡‡††††…††††…†‡ˆ††…††‡†††…†††††††‡†…‡‡††††…†…†…††……†‡††††…†„‡††††††‡Š‡€}‡‹€•‡‚Š‘€œ‹”‘…’z}‘ŒŠ|†ˆŒˆ’‚„ˆ†‹“‹‹…z{ƒ‹‚‚‚‡–‰˜Ž€…’x~‘ˆ†ˆŒ€ƒ†Œ•’„œ‰‡Žx†ƒŒu‡Š’‚†‡ƒˆ’……Šˆ’‰ƒ€‡‰’ƒ„Š”Žq–˜˜ŠwŠŽ…•„sŠ”ˆ‰—z•Ž—„‰v‰™ŽUŽ…›„‡Ž‰—š¡ˆ’‰¨zŽŠŒ‘™”†ƒ|„œ‹„y›„“œ‰… Žšˆ–}—†ƒ‹•~“‚|’ƒ–‡ƒ~ƒŠ–†®‚‚yˆŒn‡ˆ‰‡‹†—‹Šˆ…y}ŒŒŠ‚ƒ†Š†ˆ†‡Šˆ…ЇŠy‹‰‡ƒ‚†v“‰Œ”‹„€‹‡…Šˆ‡‘Š}‡zƒ‰……}Œ‡‘‚…~†‡x‡‹ˆ‚{xƒŽ~€†{ˆˆ€‚‚‰ƒmŽ}ƒ‹ƒ‘ƒw‡†‹–Š‘¡yЀЅŒ‚–}Ž‹‘‘ˆuˆ‘{„’ˆˆ†ˆ…‰ˆ„{ŠŽ–ˆƒƒ|—ŒŒŠ‘Œ“ˆˆƒ‰ƒ‚„‰††€•„„†Œz‰’’ކƒŠˆ„‡{‡Ž…Ž~ˆw‹†‡‡}„ƒŒƒŠƒ‰Š‰’…ˆ‡‡Žˆ€‘„Ž„†‹{’‹€ŒŠt“‚‡‡ˆ‚€‡‹Œ“‡ˆŠ‡v†‰ŽŠ††y€†‡~‹˜“…Ž”‹†~†‘ŠŠ†’…Š‚ŠŒ“…‡‡xŒ‹…ˆ{~†€ŠŒ‹~†‡}‡€}†“r›”z†‡ŠŠˆ‹‹†‰Œ†‡‡…އ’†’ˆ‡Š‡}’‹}–Š…‰zŒŠ€Š‡Ž†ˆ|Œ‰Œ„Š“~Š‘”Ž•„‘„€‘‰†‡ˆ‹‘‰‘‚Š‹†Ž‘ƒ‚ŽŒ‡…z‰’Œ‰›ŠŒ”‹‹…Œ•Љˆ’†‹’ƒ’ƒ‰ƒŒ‹tŽŒ……‰‰q‹Œ‡…†{—…‡’ŒŠ…‹‡‹„†‘t’‹ˆ’wŽƒŠ‹‹~…Ž’’‹‡~Š‹ƒˆ…Œ‚ˆ‡‡‰tކŒ–Іˆˆ’’‰€~z‹…‹|“‘Œ”|”‹†‰z†xx€Œ~‰}މ”v–‰‘tŽŠwx’™x—‚‚{†zŠ|“‚†ƒ”ˆ“”z~“‹•ƒ–ˆ—ŒwŠs‚†•zŒ‘ŽЉ}‹‰ˆŒˆx“~‹‰‡‘}‰x‰§†††——’‰„…˜”‹’‚v”Œ|Š}‡‰’‚މ“Ž‹†…’‰z„Œ–’}”ˆ’—|‡‡v‰y‰‚|‡‘‘„†˜ƒ€‡˜ƒ‹†wl†Œ„‡‹ugƒ—ˆŒ{|…„„ŽŠ†‹‡†q…Љw†x…‰‘—ŒŒ‚Œ““†‰ˆ~“‡…–Ї‰Šƒ”ˆŒˆ†v~‡ƒv‘‹Ž“†‹‚|Œ€‹•}y‘y–{“”™{}Ђމ”Šˆ‰ˆ’”Œ”–˜‹~‘xЉ†~|ˆƒ„‡‡„“ˆ€†wŽŒˆŠŠ‡~”ˆ‹–†¡‰Ž‚€ŒŽ‰‹Œ~„‡‚”‘‰”‰‰†~•‰‰‘€‚ˆ•ŽŠ’І…„Žˆ‡ˆ•‰†’ƒŠ‰ˆ†ƒ‹‘Іƒ„s‹’‰‡‚“‚„’‹Œ”‰‹‡Ž‘Ž“ƒ†l‡ŒŽ‹‡wŽ|Ž…‡~ƒ‚€}—‘‹„ˆ}†‡zx‡„†—‹ˆŽ†w‹‘‹†“‚•‚”“•€|ŽŒ—‡ŠŽŠ’‹ŽŽˆ€Š‰‰ŒŒˆ~Œ…ƒ…‘z‘xž’|‚€ƒ€‹‹†ˆ‡•‡ˆ†ƒ‘Œ•„Ž‘ˆƒ’‰~‹‚ŽŒ‡ƒ‰}‚ƒˆ‹ˆˆƒƒ{‡…‘‡}’…‰‹˜€ŒŒ†‰„‹Š‹Ž~ŽŽ‘ƒŽ†{‡ˆ…Š‹ŽŒ™Ž‹‹‰}‰“‘“Š’‡‘ˆ„z‡‰‰Œˆ~‰r‘‘†}„ƒ“Œ†Ž‡ˆƒˆ“ŠŒŒ’‹ŠrŒ‘Œ™ˆŒ~Ž‚’„’ƒŒqy‹—šŒˆ™“xx‡ˆ†—ˆ‰ˆs†›‰‚Ž’•”€”ŠšŽ—x’…š}‹ˆŒ‹‹‘†Ž‘€‘‡~‹‰Š‡‰Ž‘Œ‹‰Œ‘|†…—u”•}‡†„š…ˆ‘ˆ”Œ‚‡‡ŒŒ“‘‹‡~‘ŠˆŽ‘Ž”Žr~‡—w‰…•“v~pƒŽ•”€”‚”ƒ“‰¡Œ‰”€‚ІނŒ‰•Œ‡•„†‰‹‡ˆw„‹~ƒ“ŽŽ¡’”ˆ“œ…ˆ–šŒ•’‹„……‰|…q†~‡‹‹Žu„‹…‡‰„“’‰ˆ‹‹ŠŠŠ„–‹…Ž{’tƒš}†t“tˆ‰“††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††ŽŒ•€j„„ŠŽ‘r‚‹ŠŽ•†‘¢’…y†“‰‰•…Žˆ|„}‰……’‹žv“‚˜—„’•…v™~‰ƒŠ…x‹†‘ˆ‚”Ž„†Ž‰Žš‹’’……‚•…‰„“’v‘ˆ‚’ŠŒŠŒ…‰‡ƒ–‘Žˆ…‰‚‰ƒŠ}‘ƒ}ˆ‚‹|’”Ž„†‚Œ‰‰‡‘”‡‰ƒŒŒu|Š‚{€‚‚p…“Œ‚ˆ„Š‚——ŽŒ‰Œ‹•–‡’ŽŽ‹’…Œˆ”„‚‰†ƒ“Š›‹†‡€Œz”€ˆƒ€Œ‡‹•ƒ„‘ˆ†€œ‹Šˆ†‡—ˆ„‚ކ„Œ‰‹Šš|€…˜Žƒ……„€‡Š€Ž†‘€}€‰€zŠ„‰ˆ{‡‰…r†ŒˆŠˆ€†|ˆŒ…„‚ˆ‰„†…y‰zxŠˆŒ‰…’‡ƒ‘Šˆ‰„€‡†…ˆ~ƒˆ‰‹r€ƒ…Љ’‰‡Œ‰„Š˜vŒƒŽ’t‚Ž€znš„……v~ކ‡Œ‹w„‚‰x‡‰€—•‡ƒ„މ†€‡…|‰Šœyƒ‘“~†…‚Œ•„Œˆ~…‡‡}ƒŠ‡‡„ކ‡‚ƒŒv”‰‚‡„„“’…}…‚ˆ}…{‡Š€‹†„†„Ž‹‚‡‡Ž†„…Ž€†}Œ‹‰‹}o{„‚’ƒ‰Œ„u“„}‡Œ†…†‚„‚‚ŽŒ…Ž~Š“—•˜Ž‘’‰™“€Š‹Œ†‰Š‰‡Ž‡‹…‹‹Œ~Šw„‰ˆ{ˆ‘›‹€}‹ŠŒ‹|„„€ˆƒ‰‘†Œ”Œ…™Š—p~ˆŠŽ}Ž‹‰—ˆ{„‚…„Ž…ŒŠ„ŠŠ‰‹‡}І…‰ˆ{ƒ‡–wˆ‘¡ƒ“‡‡~•‹†‡‡Œ‡Žy‘„‹~Žˆ‰–~‚’Š}ˆ‰—„’Ž˜™‹›€…ŒŒ‰~”™‘ˆ‡„‡‘Œˆ„Œ‰…—‹‹~†€’€z‘z€}‹„‹Œ†‹”‡”‰œ‹{Œ†ŽŽ~Ž‘‹|‰‘ЋІЄ}}~Ž…‹‡‹‚ˆ‘|Œ•‹‰’‡‰Š”‡ŒŽ…‡~ƒ‚‰‘ˆˆ‰ƒ•ƒkx†‹|{…‘~–ЂЖj‰„x‡zЇ‰†…œ}™Ÿ”‘€¢‰Š€‡…—„ƒ–€‡…‘–€‰Œ‚†•Ї‡š‡ƒ…‹…t…˜…pЇ…†–Љw‡•‰Œ—Ž‡Šˆ”{–Œ•Š‡ŠŠ€ƒr‡‘‘ˆ’Š’v|‰‹…ž‡’‰‡‹‘‰™ŽŽ“Œ…‹šŠ~Œ…™’‰|”{’’‡‰ˆ…‰…“w–¥ˆ‰}‹„‰ˆ–ŠŽ‚ˆ‹††ˆ‰‡Ž™‹‹Šˆ€ˆŒ•ˆŒˆ‡|‹‘‰Š‹Œz|•ŽŠ‹Œ†šŒŒ‰˜x™‹‡€–‹†€ŽŽŒ‹ˆŒ‹~˜‚’‹”}‹ˆrƒŠ‰Œ~‚„ŒŒ‡w€—“ƒ‰—€ƒ’‘ŽŽ’„ƒƒjŽ‚}‹‡ˆ“‡‰Š€’Š”…•yœŠw…“Šˆz”•’މ‹ˆ…x„އ™—‘‹Š‰“ކ}‹•–†ƒw…„‡…Š˜•Œ…ƒŒ…‹yƒ•€Œ‹‘‚ŒŠ“yˆ–“Š—šŽ”’”†ƒ…ˆŠ‹}Š{†€…€‡}މ…ƒ‰““ˆ†–‰Œ†‰†‰‹‘{‘Œ‘z”Šx€‡‚–}|”•ˆ‘†‡”t’†ˆŒ‹x†z…Œ…‚‘–‚…š‘ŒŒŒ†{”ˆ‚ƒz…‡‡€‰“Š‚…Žs}‚€€ˆ…€Š†‘€ˆ…}~‰—w˜‘{–‘‘”€‹‡‰‡‰ˆ‘‰Žˆ’„ƒ’…’|“‹‹~‚x…~Œ‡€ˆƒ•‹…~‹†‡ŠŠ“y˜‹–† Œ“~}‰‚ŠŠ‹ŽˆŽ“Œ†‡ˆ‰ŠwŽ’Š€™Œ™‹‹‰“‚™†‹‹‚Љ‰‘~Œ’‘‘Šx‰Št‰Œ‹‚„‚–|’”ŒŒ•ˆ’“”Œ…‰pŠ“ŽŠŽrr‘Ž‹Œ‚ˆŠŠ“™‘ƒˆŽŠ¡ƒ„v“œ…zrq…ˆ”v‚‡Œ‚wŸˆˆŽo|‰}„—xŒ‚‚n€‡‰•‹Šx’²’}Ÿ‰xuŠz‹v†‹‰˜‘ˆ‹‰„u~ƒ„Žƒ‘œ˜Š›n„€Š•t£™‚’†Šy›Š‰…”w}’•‹…†ƒy‡“•‰—“ƒ†ˆ™„”Ž‹Ž˜‡ˆ{u„sh‹vˆ„™–žru—‘„ˆˆ|}‘‘‰Š‰–ŒŠ’Š‘ƒ€“‰Œ˜˜‚€‘xˆŠŽ‰ebŒŒƒ|˜ƒŽv›ˆzŒ‚‡~”Ž‘†‡ ‡šŽw“šn¥•}‰–‚z‘†Ž~…†}eŒz}uˆ—wwЇ£‹Š—ŠŒ¢Œ†‡i…‘–vy~‰ŒŸƒ~~ˆ€k…†‘“{‡›†˜‹“•‚‚v‰‘¥…”~Œ„ƒ„‰‰€Œ}—ƒ{•}Žˆyr”|‡„•š—›s›…‹…˜›‹˜…ŠŽ†‹s~ˆ‰z…y–“€œ“†ˆ•‡ršŒ„Ž‹‚’Œ{ŒŒŽˆ|‘Œœ|†Ž“‰ˆŠ€˜–˜Ž†’†¦†—•Œ…†…ˆ–Ž€Œ•‚‡€|Š˜|ŒŽ›Ž‘ІŸŒƒƒ{‚j¡–†‹€‹‚•‡‘•ŒŽ~‰‹•€x‰Š|‹‘…‰‚}}އ„Œ…ƒ•z˜‹Š~Ž„{‹‡‡‰ŽŽˆzv{Ž‘†“‡”‹ŠŽŽ’…~s…’ŽŠ“†‹‘ŠŠzy’‹|„Œ~€†“†•‰Œoˆ€y‰Žt¤Žy‘…”…‡Œ„‹ˆŠ‚‹‚“‡„~ЂЅ“‡’†‡ƒ€…‘n|††Ž|ƒ’Š‹~ƒ€yˆ}‹„Š“€€—…†Œ™}‘‚˜‰—‰…Œ‘‘˜xˆ‡‚ˆŠ—‚tŠ€‡~’†ˆŒš‰„Š••„ˆ††…•’‡Ž‰šŽ‹žŒzŽ”…Š„‰tŽ~„‚“„‰’”…‡Š™„„’‘ƒy„’‰ˆŽvŒn‚Œ’†Š‹†{ˆ„”‘…’ˆ‹‰w‰‚‡”ƒˆx„Žˆ}•’ŽŠ”ކ‹ŠŒŠ‹•‡‹„Œ“†Œy„†Š‘‡Œ‘‰…|ˆ‘}~~–vœ—|††Ž†‰‹‰•‡ˆˆ†”„’Œ‡€‚’‹Ž‹‚†{‚|„’‚‰‡~ƒƒ{‘‰Ž|Šˆ–†Ÿ|‹“}””‰…‡‰Ž†ƒ†Ž‘‡‹‹‹…w‘Š”}ˆ”—ŽŒ’Œ†‹’‡„ˆ•Š’‰‘ƒŒƒ‡Š‹†‹‰ˆˆu‹‡yˆ–‡‚•‰‰‡‰Œˆ’‰Šˆ‹Ž…‰u†Žˆˆ…w‹‚‹ŠŽ„“‘y†n—Šy|g‡„ƒ‡y‡w”‹~މ…—‰‚„so~ˆ‚‡}†y”’ƒ„~ŒwŠ€}Œx˜|rl‹˜uˆ‚‹y„€t…|t}ˆ†‘‚“Œšu}†tz~x|‚vŠ‚u t“t˜wŸ‡‰†“Š…‰¢ƒyr†ˆˆƒ‚~ƒyz…‘~v—“•y—‰rpŠ‚€†‡„Ї¤“‚†}ˆ„zªmˆ††{—€Šm„~y’ƒ””„oro{Šv††’‰’‡†ˆtˆŽŒ}†‘…”q•‹‡‹†‚€……†|~|~Šz}Ž“‰Œy“’mqŽ|‡‚‡m†qƒŒ–h—|}v„v‚—r†‚†…‡‰†‡†††„†††ˆ……†††††„‡††…††‡††…†††††††‡††‡…††††††††‡†††††‡††‡†…†…†††††††…†‡‡†††…†††††††‡††‡…†‰†††…††ˆ†††…††…†‡†††††††…††††„†††††…†††††††††††††††††‡†††††††††††††‡†††††††††††††††††††…††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††”ƒ‰ƒ‡”ˆŠˆ}†„Œ€„Œ‰ˆ……ŠŽƒ…ƒ‰“…‰……‹€Œ‚‰…•–…Œ€ƒ…r†Š‚Œ•ˆŒ……“€Œ†Œ‡…‡”ƒŒ‹‰€‹†‹‡zx‡~‚†‚‡ˆ‰ƒr†ˆ‡‡†ˆ„€€‡~Ž‘z‰…Œ€”•‘†…“’‹”Šƒ‚ˆˆ‡……„ˆŠ…Š„…ƒ¢Š€‘–„‚‰†‹‡‰{‰„‡Ž—‡†•ˆ•‹ŠŽŠŠŒŠ‘˜”Ž{Љ„ŒŠ†ˆ~…—‘‹}Œƒ‰“{†™…xƒˆˆ‚zŽŒ…’’Zˆ{–‹‡zŒv‰‡‚{Ž“{„ˆŒŽœˆ~††††‡††††††…†††††††††††…†…††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††ƒ‰Šwwš•˜Œ…˜‹—‡tŽˆ‡–‰‘ŒyyŒ‹~ƒ„š—€˜‘ŽŠsƒ‘Œ‰„“„Œƒ„‡‰ŒŽˆ‡~…‹~}‡€ˆˆ€ƒ†…†Žx‚‘u–‘}ŒŒ‰†‰‚ˆ‰„’…„‹Œ„„—ˆ~ŠŠ„‡’„’}›‘|ƒ–u‚”tƒ‡‰„zt–ŠŠ‡Ž•wˆ”‘—““ƒ“…’‹…Œ‡v—‘ŠŠ†…‘‹‚„„Ї†’‰Š”‘†…Œš’“‹‘…‘‹‘€‰‹‹v‡ŽŠ†ŽƒŒwŠˆƒ–ŠŒ†Žˆ‰Šˆ”ƒŠ‰ŒŠ–o™‹Œ‡ŽtŠŠ„‰‰‰‹~‹ˆŽv‡‚~wŠžƒŽ˜”„tŒŽ†Œ…‡‡•|…‹‰€~’‹qŽ‹ˆ‘€ˆ”“†…‰sŠŽ†‹‚x†ƒŒ‹Šˆ““—“ŒŒ”yŽŠ•…Œ‚€€‡‡Š~ˆ‰˜ŽŽƒ{„†z‹ˆ‚…ŠŠv†’“„Ž‘€Š‡{“‰„‡‘€†ŠˆŠ“„‰~ƒ‡Ž–ˆ‡Š‡‹›€z”ˆ„’˜Š—‘™˜‡’‚ƒŠ‡Œ‚t„’–‡ŒŽŽ‹‡„‰ŒŠ€‘Œˆƒ†…„‘~ƒu††…}…‹ƒ•‘‹‚—‘‰‹“~ŽŒ††ž‡“ƒ‡ŽŒ…Ї‡…„‡…ˆˆ†‡†††‡††††…†‡†‡†††…†„†††††††††††††††††‡††…††††††††…††††††††…††††††††††††…†††‡†††††††††††…†‡††‡††††††††††…†††††††††…††††††††††††…†††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††‡†††††††††††††‘‹†ƒ„vŸ”s|—‘‘•„w–—zt„‘Ž‘’ƒ‰Š‚ž„…v‹~…­ƒt‹ˆw‰ˆ‰ƒƒ~z‘¸„Ÿ‰nt“š„o†}ŒwŽ„†n’Іz‰|”Š~””z‰‡|w›™}‰u‹„˜¢–Š•…„o{ˆžˆ„‘pšŒ–„‰Š€‰‡{“ƒˆŒ‡–—“‹Šy‹ŒtˆŽ}…†’Ššqs†™‡œ†ƒ†ŒuŒ‹‹……‰‹Œ~„—Œˆ“„y†Š‡‰š‰vjžt•…“|†—q†ŒƒŒ{”‡Œ˜†›„‰‰|Š‹{…Šu‹‡Ž‹ˆtЉ›ƒ†‹ŽŠy‡ŽŒ‰‘‹Š†ƒrƒ‡|‡u|‡|‰•“‘ˆ—ŽŒ’…Œƒ’‡‚Ž€“Œx‹ƒ‡‡‹‘‰„~ƒ‹ƒ…•~|x•’}ˆ‹Ž†‹†Œ‰‰ˆ†‘Š’†‰•ƒ|‘…Š…‘‘€}z†|ŽˆˆŠŠ’‡‚y‰‰Š†ŒŠ~ˆ•ˆŒˆœ‚}‹†‰€†Š‚‡‘‰ˆ‘‡‰’ˆ€Œ…‹€Ž’‡Š‹˜Š‡Œ„„’‡€ˆ“މ”Œ’†‡‡…Švˆ…”‰‡†ˆŒr‹Š‹„„•†ˆ‹‹‹‰ŒŒ‘†Š‰‚o‡ŽŠ“…†xzŒ„’Œ£„’€€˜”†‘n„„‹šŒ‘†ªŽŒy{’–€‡ŸŒˆ’‚‚zš†™Œ…w”Š“€…•š‰z‰iŠ’¦€‹‰…ƒ”ФƒŒt€‹{˜“”|•‹…€|wŽ‘€†‹‚v‚u„†‰uŸ“‡„…ŠyŠ¢—Š‚ˆ†˜ˆˆ”„”z—•„}›‰…ƒ“‘|„‹”‹Š’p’ƒ•œ‰Šˆ|‘‚‚‚„Œ«‡}‰‚„…‡ˆ”‘…Šš–Ÿ‹†ŠqpŒŠ“Š˜“—yx–†–}…’“ˆ‡€Ž„Ž’‚…†‡‰“{}‘Œš“€~†‡„‹„‰zˆu‰‰ˆ“…¡•‚…~‚Œˆ‚…‹‰ˆ‡‡’”ˆŽƒ…Œ…x‡ˆ‘ŠŠ‡‘‹Ž‰†‚…ŒŒˆ€†x‡…‰}‡—‡›Œˆ†™yŒ|…„†Ž}•{n‚’‘Š ‡’Ž|‚•›ˆ„{ˆ‡‡|Œƒ†ˆŒ„Ž}Šƒƒ‰–‹„†ƒ‹ƒ€yŒvƒ‰”Ž”…|‰‰ˆ’—Šy…Œ„Œˆ…”ŽŒ…’‚–zŒ’†}‹˜~…†—ˆ††ŒŽ…ƒ–˜Œ•‰˜‚‹~Œ’’“Œ‘ƒ“›ˆˆ‚’‰Œ‹Ž›z—˜ƒ‡„x€‹‘”‚„†ˆ›‡„‡†”~…ˆ‹Š‘†•ˆ“††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††“|{šŒ€–‚Ž~š‰z‹Œ†’|{ƒ•Ž„•Ÿ’“r“Œˆ‡€†‘‘‚™“Œ†‡ŒŠ•І–ŸƒŽ„…‘Œy€Š‹†Ž€vš€žˆ…y}‹†‹r‡’›€ˆ|ŠƒŠ~Šˆ{ƒ†…˜‘‡Ÿ’‡…}††p†…„}ˆŠ‹Šˆ…‰–“ŠŒ‡{އ€ˆƒ‰™Œ‘ŽšˆŽ•i‡•…‹|‡Š‘~l•‚†’–œw™‹’˜ˆŠˆ”{‹‰Œ”Ž—˜‹zˆ„™pƒ€šŠƒuŒw‰ƒ•„ƒ˜’•“‘ƒ|ˆ—Ž˜Ž’ˆo“Œ™…ƒ†’Žz’ŽwŒ„“Žƒ‰ˆˆŠz„Œ…ˆ‡{r‡…“‚…Œ‹‹„…Œ‚Š…Š‹‘Œ‡Š‡‹„•މŒ‰ŠuŒ˜‚‡“‚†€Š|Œz†‘~ƒ€‚”„zŽ…‚wˆ‹ƒ–zˆz•‡€’ƒƒŒ{”Š”‡‰‘†x„z~’†‹r†ŒŒŠ„}ƒn„Їˆz‡‡Š‹‹‘xމzwŒ…™Š’Š…Žˆ„‚ŽŠ•†‹‰Ž}ˆyŽ‹‰Ž’…“‰‚’Œ‹‚‰Š‘€€ˆ†Šˆ€Œ‰‚‚†Ž‘Žp‘oˆŽ…Šˆ‘ŠŠŽŒ’ˆƒˆŒ’‚ކ‚sŒ†Œ’„xƒƒ‹Š…Œ††††‡…†††††…††††††††††††††††††…††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††ˆ‡†††‡†…††…†††††††††…††††††††††…††††††††††…††††††††††††††††††††††††††…†††††††††††††††‡†††††…††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††ˆŒ{u‹”‹ˆ‚„‚ˆŒŽ‘ƒƒˆpˆvŽƒˆŒŽ†‡~ƒŒ‹ˆ„|z„}†vЉ‡‰~„~…‡Š€Š†‚Љ„…Ž‚ˆ…„~Š‚Œ}ˆ}€~ˆˆ†‹‡„ƒ{|Œ‚ЉІˆ†Ž|ŽˆŽ””…~€Šs~‡…~‚†ˆ‹„Š‚x‹ƒ”‰‚k•‹ƒ’“Œ‡€{‹‹‚Œ~ƒˆŽ”‹ƒ~†ƒ‰ƒŒ…†‹…‡‹Š‚ŠrŒ•‹ŒŽ……‚Œ—†‰„‹†‚†ŠŒŠŠ‹…†„€‡€}ŒŒŒˆ{‹„‹‚†ƒŒ‹„„‡€ˆ…vƒ…}‘…Žu“Ž|ˆŒ„‰‚{yy‹†}|~oƒ}•އ€…‰raŽ€u…{‡„“†‰~„‹¦Œ„‚˜wƒvlІ€~pš„yh}‘y†€‰~—uz“†…Œx•¡‚™~¤x…sl„ ‡ŽŽv}‘‰‡}vs~„ˆˆ……Œ†…Œ~І€…}Šyy‡‡…’v†€‹yy‚x‚yŸ†’|V—l’ˆ}‚|˜‘qnƒk—‹b{‚Ÿ¢‚f“ˆ~y‹ptv‰{Œ“o‚˜u|hˆ¡˜Ž†‚ŒŠ†Š‘w~v““~z€†‘–„y£‘Š{…zx€‰„}nt|€’nr{„•{~ƒ‚vŒ„vŠŠ‡ƒŠu„¢y•ˆŠ€„Š€‰‡†…”‹‘‡””Ž‹Œ–‚‚z‡†ŠŠ‡‰‹Ž–ˆ”‚‡Ž|Š…€w†‰€}†Š—‹Œyˆ–xƒ‚„Œ~…Œ‹ˆ|‚‹‰“„•…v†Žš‡ŒŽŒ„‰€…Ž‹„‹zŽ‹…‡‘‹ˆŽ†€€’ŽƒƒˆŒŽ‚”„ŒŠ‡•Œˆ’‡Š……“Œ‹Œ‹“‡‹†…Љˆ‡‹‰‡†’‹ŠŠŠ–•”ŠŽˆŒ˜†‡‡‡‡‘ˆŒˆˆƒ…‘…‰ˆŽ’ˆŠ‘‹v†„Š‹{–Ž„„ˆ…}’†Ž‚”ˆ‹‚†‡€‡‰……Œ‹’…ŒŒˆž‰…“Ž}Ž|ww…€„u~‹‰€…~…‰‚‡{z‚uœ}‡„†‚}pƒƒ{Ž‘†~އ„„y¡ŒŒ„‰xvu€Ž‰~ŽŽw†o„’„„mwŠw„„’”ƒ‚‰–€ˆ|„}ƒw‹{s–‚ƒx…Šˆ‹‘‚‰ˆ…›xvŒˆ€”ˆo‹oˆt†ƒ€”•v’š‚‚‡†Œƒ„˜‰y‡‘šŽŒ‘Š~€…€|Š’––Šˆsux‚Œ“Šu‡ˆŒ€q’h…‰Š“‰{zŠ}|‰Œ‰~Šˆ¤|‚d‡ŠŽ‡…„†‰zƒ—”xz‡Œw{„Šƒ‚Œ‡ˆ}{ƒ‚v€ƒŒ…}”ry††y‰ƒzzˆŽˆ’‰˜y’‰ƒ‡‰‹‘‹‡Ž‡y|™‹‚ƒƒŽ„’Š˜“…wy‰‰‘šŒ‡‚‡†‡ˆ„w‰„…~w‰„†…}‡‰‰|z–y‘—{„Œ“ƒŽŠŠ‹‰—”‡Š””Œ‰}‰‡‹ƒ’‰„€x‚|‘‹vŠ‡šŠ€„{’Œ‹ƒ’–~•„‘„—Š‚•ŠŒ|‰Œƒƒy”‹‹†”†‹Šx„…‚‡‘Œ‰“—„’“ŠŒ—’†ƒ…Ž„Ž}‡‘…‹v’…Ž€‰Ž…vŒŒ‡Šˆˆ•€€†‰†“–‹Œ‰†ƒ‹‰m’Ž…Žv‘v‘Š“œŠŠ€™ˆ‚ކ€z¡”“‡•”’މ€q˜ˆ‘†š€|…‘ƒ‡“‘Šku–xŒvޤ’„‰ƒ†„†u„‘‹ŠŽx†”x€Žˆˆ™Œ”–t~Œ…“€ŠˆŽ€†z‰z‚‡…‚œ•Š tƒ‘ƒ–wjƒ‹žyz” “w…“z€ Œ‰€’t‰ŽƒŒ~…Šv“™‚•‡‰™ˆ“ŠœŸƒ…„{„„o‹Œ‹€Œˆz‰‘uŒŒ“‘Œ‰˜’z‹‹‘Ž…•‹Ž†‚ˆ€v‚ˆŒ›’„y£~‹„”Œˆ“ˆŽ‚Ž‹Œ›—ЇГƒŽt‡€Ÿ“ˆ“v‡“{†ƒƒ€†Œ…„’ž‰Ž–Ž‹Œ„“ƒx|Œƒ}ˆ‘›™…ˆžvŽ…ŠŠˆ{y‘~‹}…‘ˆ—‹›‰r˜€ŠŽ…‡‰€…Šm‡‰ƒ•†ˆˆ‘t””£{‚z†ƒ”€u‰‰‡y““„‡¥ˆŒŽŒ‡ ‡‰ƒ’‘}‰Š‰w…{˜}†‰“Ž•‰†Š’–‹~… Š‹‚”’–w‡ˆŽ‹‘r˜‚Ž~†Œ‰–‘‡z…އ’}—Œ†’•ƒ}€Ž†ˆœƒ—‰’‡ˆŠ‹‚‰˜Ÿ‹y›…zŸ’™{|ˆ‘x…€‹…ŠŸŽ‰‹“’Žyvƒ‰ˆŠ‡”ˆ•‰ˆ…‡†‡‡‡†††††‡††……†††‡…††‡†††‡†…††††…††††…†‡††…††…††‡††††……†††‡ˆ…†…†…†††‡†ˆ†††‡†††…‡†……††……‡†…†‡†‡…†‡†‡†…††…†……ˆ†ˆ†††††‡††…†‡†„††…†‡‡„†‡‡†††††…ˆ‡†††‡†„…†‡…ˆ††††ˆ††‡…†…†……††…‡‡†††‡†††ˆ…††‡‡††‡„‡ƒ…‡…†ˆ†ˆ††‡…†ˆ††…‡†††……ˆ†„ˆ…†††…„†…‡‡†‡…††††‡†††††‡‡†‡†……††‡…‡‡‡‰«†~ˆ|ˆ…ˆ‰iˆŠ„Š’‰“z“}„‡‹€“‰†‰Š‡ŽzŒ‰‘’ˆ†˜|†‡‘“‡}‹ˆ’Œ…‚Ž€ˆ‹€…ˆˆŒƒ…ބޅ˜Ž“}‘{‘w|’~‹†Œ†‘ˆˆ‚ˆ‹ƒƒx‹‡ŠˆŠ‚”Žƒz|‘„v~‰˜›“‹oŒ‘ŠŽ–†v…ƒ‹Š˜‰”’‚†Ž~Ž—|‚v€Žu…”ˆŠŠ‡ˆ‰’‚•}Гޗ”•‰…‹”‡Ž‰ŒŒ“ ’Š€ƒ™‰„‰ˆ‚Œ‚‚—zŽ‹”€‡ƒ‡‹…šŠ|”†ˆŠ§ˆŽ‘}‘•…‰}Ž‹‹š{—Œ–~y~›‡z‰}ˆ‰Œœ’”w‚€‚„~ykˆ…‡–ˆˆ‹n…‘z’…m„ywƒ{w}’ˆ}sŒ|•€vt‹˜€‹—v‘xŒ„}xx†~‡Žw…spyƒ€†}†‹ƒ‡ƒ}r‡Ššˆx‡|ŒŠs“žŠ‹€}mtŠtw‚Ž|x‚|x‡Š€‰‚…szˆƒŒ…‰†…u‡x†…ƒŒƒŠ„•Œ•w‘{ƒ|}ˆ†’…ˆ„}ˆŠˆ‚„†“”ˆŠƒƒ…Š}‹y‰n{y‹€‡|€‰–{rz•‰‚z}„Š„ˆ~ƒ„‡|„ƒ‹ƒ‰xj„jƒy„ƒxŽo”|}„Œ}†ˆ‹†v‹Š“ކƒŠ€}†Œ•ˆ‹‰ƒ‚Љ’…ˆ•‰–Ž‘Žƒ‘žŠŽŒ‰“’އŒ‡ƒˆ†Ž‚‹“€|Œ…Š‘ƒ‰‚‘|~“•{–{‘ŠŠ‹ˆ‹‰„Ž…€ƒ‰ˆŽˆ”‹„‡“‰‘Œ–€Žˆ‚Ž„Š{‹…ƒ‹ƒ~‰‘†Š‘”–Ѕމ‹–„’‚ˆ„Š’‰†‡‹ˆ—‘ŠŒ‘Š“Œ„†…†}„‰‘}ˆ”ˆ‡–~•„‘‹”–Š…Ž”„މv‡‡”ŽŒˆwŠ’|‚Œƒ‹•‹†Š…’‰‡‡“—…Š‘z‡”‘t{’ˆ”Ž‚†{~’”ƒ†‰{Œƒ‚‹ˆ‡‡y‹ˆ‡††~ˆ”{‡‡‰…€†‹‚“†‡„‡’…†‡…‰w~’’‡ƒ€’„ˆ„‡ŽŒ}’†„‹}‡…€ƒ{~–‹†‡~}†‡Ž‹†Œ…€ƒ€”“‹‘‹’}~‰z€‡„‰pŠ„Œ‹‹…‚wƒˆ‰Œƒˆ…~ˆ‹Œƒ‰ˆ}w€€†”„€Š‘„–‘Š„‚Šz†{ކŒ–ŒŽŒv‹•Іƒ‚‡˜Š€Š‰‚…oz‚“‡ŒŠƒŠ…‚Œ’€‰Ž‚Œˆ‚„Žƒ……‚…v†‰|œy”€~‡…Ž…w‡w„˜˜ƒ–……ŒwŒ‡•‰x„yw“‹~„ˆ‘ž|•„t†Š‡†y•€„†‡Œˆ‰|t~{‰‘ƒ€ŽŒˆŠw†„މ„y‚‹“u–{„‡yƒ„†ˆ†‰‹†‡‡‰ŒƒŒ“’‹‡”€–†“‡}„{ƒŠ€‹€‰’Ž’Š€…‰’ƒŒŠq‡Ž‡”˜ˆ–ˆˆ~…•“ˆƒ‡‰•†Œ‘…•œ‡Š…“ˆx†|Œ„ŒŽ…Œ†šƒ’Š…†˜‹‚„‹‰‘”„ЉЇ„Œz„‹~†p‡ˆŒ€ƒ†‘’€†’‚‡‹‹ƒ“˜„mŒˆ‡Žvˆ„‘–„”ˆ…‡zƒŒ–“…’{‰…†{އ‹–Œ†Œ‡€‚˜‹‹ƒƒ’†–Œ—–…~ŠŒ‘ŒŽŠ…‰ƒ‘‰Š’€‰Œˆ„}{…Œ‡ƒ”‘‘|ƒ“|Œ—€Š…Œ…ˆ‡††‹”€‰‡Œˆ’‚}ˆˆ„ƒ“|‰ŠŠ{sƒuˆ’„‰ˆ€…‡’Œ––ˆ†‘†Œ‘ƒŽ€ƒŠŠ‡‹‹Ž‹•”Žˆ‹Š…‡„†z‚ŠŠŠ”ˆŒ“…‘’Ї‰’’‘Š’’‹…‰ˆ€‹s‹„‹‘ކs‰‡~‡”•Œ„އŒ~ˆ™Ž’~†€t‘™ŽŠsq“ŒŽŠˆ‚‰‹Ž‰Œ†‹‘ЉŒ‘‘Œ„€|ŠˆŠŽ‘€Š“Œ‹…‘Žˆ…”ŠŒ‰‡‚ˆŽˆ‰Š}}‡…†}‰‡ŠŒŽŠ…ƒˆ†}|Œ’{’•~‡Œ†Œ†ŒŽ‰wЇ‰ˆ‰ˆ”ƒ‘‚ƒ•’†™‰‚ˆw…ŒwŠŠ€†‰‰‚„‹ƒŠ‘ˆ~‘Œ‰—Œ”‚…ƒ”‰Œ†‡‡€”‡‰ˆŒˆ‹‡„Žˆ†…‡€‹’‰€‹–‘’‘ˆ•Œž‹ŒŒ„‰‹Š†‚…‹~ŽŠ‚ˆ†‡‡|ŽŠ…ƒƒ”ŠŒŽ“ˆŠŠ“‹ˆ‰‹“n–…rŒ†‰‹‰Š†††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††˜o”z‡zw‡ˆ›•’Ž”y•|„•Ž‚£—„Љž’’ƒ†”}Œƒ‘z‘ƒ¥„¡‰Ž‚‡‘œ…–ƒvf”zŒ’•‡’š“‹„–q}”‚„wŠ„qu•ˆ’‘…ЕЗ‡†€„”–z™”m‰––…v“€…˜‰v˜Œy…ˆš|Œ|‘•Žk‰‡pju—~kŒ‰šz˜‹yŒ„”Ÿu™s€„•„„’} ‰Ž‡’•ŒŠœy—‡ž‰|Š‚{‘‡x„‹qƒ†Šžx¤{~ƒ‡y‚ƒ†pˆˆ”‡“‹…˜‚}z—{•ˆ€ƒ–sžqŠ|€‰Œ‰‰ˆƒ†ƒ}‚“€‰€‘†Š‘…ˆ„ƒ„‰‚…˜‹…’…zŒ„‰œ}—…Ž~‡‡ˆ‹‘……’„ƒ’ƒpyy’‹zŠ|vŠŠtš„z€’ƒ‰‡ƒ’„ˆ}ˆŒ†œƒ††ŽŠ„”Š€‚…‚}†“ƒ‹†Ž•†€€€‹†{Їމ•tŠŒxvŒ’†…Ž‘‰“…†y|†ˆ†„x‹‚ƒ‰‘}‚†„ŒyaŒ‰{•‹‚ƒ€uƒt™£•{yŽ~‰„•xˆyvŒ„†‡š‡y‰Š–ƒ‰¢„‚„xŠ€…‹ˆ‰ˆ~ˆŒ†…’‡Š‚‚Œ‹~|Šˆ…ƒ…„Š……†††††††‰††‡†…††‚ˆ‡†…†‡ˆ†ˆ††…†††††‡…†‡„†‰†††††……†††††…†…‡†‹†††††††††…ˆ„‡†……††…††††††…‡‡†ˆ†…‰…††Š††††††‡‡††††‡†††„††††…†††††††‡††††††…†††‡††‡†‡††††††††††…††‡†††††††††††‡†††††††……††††…††††††††††††††††††…††††††††††††††††††††…††††††††††ˆ†…‡†††††„‡†††††Ž‹‡•‡}ЗЉ…‚—~Ž”‹‹›‘™s~†‡‰ˆ†„|Œ}ƒ‡‰zr‰Žƒ‰“š‹Љއ ”‰Œ‹‡‘…ƒ‹†‰‚ŠŒ˜‡“Œ‡Žr‹ˆ†‚“‘‘yn…“…‹€˜‡z ŠŠŒ‡~Ž”‹‹~‹†Œ~‰’u†‡††¤Š|‹†~Š•‡„Š•ˆ‘Œ‘}’}€Ž–”–’‰s›†—€‡‹™„”“s“‹‹Ž”‡†ƒŽ†‹‰‹‘ˆ€{˜‹„”‘ ‹ŠšˆŽ‰šƒ‹ˆ’‰„{”‚™‰~‹}‹™‡—“zœz”‡‹ƒ’‡ƒˆtw‹“…•“ˆ“™zˆ‰zwzŒŒŠŠ€ŠŠwŽˆ…ˆ€†„€t“‘Œ†‡„|sŠŠzމ††‡}ƒ“ŽŒ„‚Šzv’…„ˆ„…Œ{†€}‘‹wr‡ˆŠˆƒˆ‡’ˆ‚y‹ƒ…yˆx‚€€zŒŒƒ“ŒŽŒ~–‘†Ž‡zˆŠŽzz{˜‚{…‹„v‹t•Š…|‘ˆ€Œ‰††‚Šˆ‹‰nЇ‹€–Œ…‡‰„ˆŒ•ˆ–ƒ„v}x~|Ž…ŽŠ‹ˆˆ‚|ˆƒ‰—„†Šƒƒƒ†„ˆˆ|Šƒ„‡Ž|€q’‹Ž‚ˆƒƒ€ƒ—{†‘‰v‰ˆz†p•€‚x‰†{€Š‹{އx’Œ†‰„”ŠŒ‹{””ކ‚‚…”€‰ŽŽ‚Ž••~uˆ’ŽŠ‹‹‘„މ†‹‹—’“‰oƒŽŽƒ’•š‰{ޡޒ”Šƒ’ˆ…‹ƒ”Š’Œ–’Œ‹”nƒ‚y‡z–Ž“~~„‡Œ‚…†–ˆŒˆ…Ž…Žˆ‘Œ‡Žƒ‚ˆo„’ŽŠŒšŒyˆƒy–…x‹Œ’ˆ’—„–ŠŠƒ~–Žˆ•”™‚z•Œt‰Ÿ~Ž˜‹“ˆ“•„‰†ŒŽ”ŽŠ‰ŽŠ…„’ІŒ‘™Ž‹“€—††zŠ‘”ˆƒŽ~ˆw™}‚‡Š‡–ˆ•‚šl›z¥Ž”…Ÿ…Šƒ‘Š‹z‡…‡Ž‰‰Ÿ‡~©‰}}’ƒ…œ…†‡”†ŸŽ”•…‰™~‚}‡†‰–‹‘…—‘‰‚’‰Š…„”€„€ˆ‘ƒ‚„¡†”€Ž{•‡mtƒŠ€{wŒ†ˆ…’„”o™y‡’w˜’v…ˆ†‡ˆ†~‹Œ„l‘yŒ‰˜‰™…“|~t‹Œ‡‘„†t—’–z‘‚’‡„–‡†›”˜“ƒ}‡“…~‡…•†„}›˜†„’~‡•žŒ‡¡•“ˆŸŒ‹Ÿ{ˆ’‹|‡ŠvŠž–Š‚„‚‘‘…„‚ƒŠ‘y’žœt€Šˆ|‡ŽŒ™…ކ“‡–|ˆ‹ˆƒŠ“†ŒŒ›“›ˆˆŒ‡Ž‡‚ˆŒ}•Œ”‰Ž‰}pyŽ{{~’ˆ–‹‹‚v“”Šs„˜Œ„{–’ˆŒ~~Ž|~€‡€‡Š‚Œ„{{”‰•{|‚‹t‹š}žŠƒ{zˆˆ‡‘ƒ†Ž†‹’œŒ›Š~ˆ˜yއ“‡ˆvŠ}†y‹ˆŽŠˆ“…‚ŒšŠ|Ž‹†{Š–†Ž’Ž€‚‚’‹ƒ‡ˆ†‹‘†‹„’ˆ“‰„—Œ‚ƒ„Œ’‘‡…€’…—‘ƒŽx‹ƒ‘‡”Œ“‚…‚z…‰„ˆŽŠ‡‰”‹rŠŽŒ‰|‘†‰‹Ž“‹–‰“–Žˆq”‘Œ•w{†–€ƒƒ‰‡y‚•’…~}ˆŠ{ŒŒ‡„ŒŠ’†|x€‚›‹…Œ„††zuЀޒŒ•Ž‰ŠŒ€‚zyƒ–”†™…Œ’‹—‰€‹‹„x‘ˆ|”†z’„ƒ‹„…‡‡‹Œ‰……†‚ŒŒ‰Œƒ‚–މ…{‡w€ƒ…Œ…}Œ‰ƒ‚~}‡ƒ„”z’ˆ†Œ‹ˆ‹„{‚‹‡ˆ’„‘ƒ€‚‰‹‘z‡Ž~|މ‰–‡‡Š|šŠŽ†‘‚–•‚‹|•‚“…€†ƒ’І…‰Ž…Œˆ‚ƒ‡„Œ‰Ž†Ž‹…„{‡Ž‚“„†ŠŒt•‰ŒƒŒrn{“ˆ—{}ˆ–…|ˆx{‚~|ˆ‰mŠ‹†„Œƒsƒ‹w‘vxƒ„ˆˆ‰‚ƒˆ‹z•€€}ބР~Š„–†y‚‘˜Š‚‚…Œ‰‚u—„‰ƒ{€ƒ„ˆƒ€z†Œ…€ˆ{Œ~…ˆp™¤‡ˆˆxrƒ„€‹ƒ™’t}~‹…z†‚€zˆ–‡Œ€{‚ƒ‡‰pƒ{†Ž¬ƒ…’{˜‹‚Œ€|–v~†Š“„ˆˆ™‚ s€€~‡‰†‰ŠŠ‹€†ˆƒˆŽˆ}wŽu‚z˜x}Ž}‡z’’|v}…‡‹Ž¬‘‡Ž††€……}‹q~€xˆ{Ž|”‰‘q]ƒ|{‡‚wŽj¢†€o…‘™’{†‚‹ŒŒst‚l”‡€š„˜ˆx’‰yЇ}‡y’}‰‹’ˆˆ‰‘€|v”•~~v…~Œˆ’{‘“‰†w”…xއ{Ž}ˆ†€™€€vŒ€z‚”Ž‚…ƒ‡Œ‘’}ƒz”ry‡‰zƒŠ‰Œˆ‡Š‰‰k’s|Їzˆ‰‚ŠˆŒŽƒu…{­Œ~–Œ‘‹{”z{Š’{w|“‚…lŠŒ‹‚‡Ž†ˆ™’‡‚‰’Š‹’”“›„ކ…y‹a‹‚ˆ‡‚š‡‡†tw™€Ž¢†š’‹‡zƒ‰‹¡‡‰”}vzš‡’„•viŒ†z‹‡Šˆy†‰…ˆ|z~Œ|Œ”…‡|…€z|‚…‰…y‚„~Š’‡‰Œ~“…|ƒ‰€ˆ‹ŽŽ…€{ˆ‡š‘”Š˜sŽ„ƒŠ‚‹˜Ž‰Š……{~ƒ…‚ƒ|…}—„’‡}}‡‰‰|•‡†‹|v–”ŽƒŒty†~‡|ˆ‰ƒƒ‚‰€ƒ€‘„‡‘‰‹ƒ”†‰…†~ƒz„x‰˜‚‰’u–˜……‹‡‡Š~|z‘‚‚’‹‚•Š{„‰o„“•‘މ‚†Ž–‡u‚˜ˆ€|ƒ„ˆ‘‰–‰–„‚Œ‰ƒ|Œ€†ˆ†ƒŒŒ‰|„|ŠŠ€‹„ƒ‹†…‚‘}Œ‡…‚˜…„Žzz€‡•ˆ}„…}ˆ‚Šƒ~ƒ„€ƒ~y‰†…’‰‡‚vƒ‹…†~‰…}€‚{ŠŽŒ†|Šw‚Šƒ†~’ƒ‡Œ|‚vŠŠ‰‡ŒŠ‰…ŽƒŒ~…‡s{Šˆ‹|‚‚…ƒy‰ƒ‡{~Š‚‰‚|‹†‹„Žy|–|Š€zŒ‹Œ……Žˆ‰€‰ƒ€‹€Žyw‰ˆ‰~ƒˆŠˆ‹ˆpƒ‹ŒŽŽˆ˜„†vy‡…Œ…€‘†ˆ|…„‚Œ„‹„ˆƒ|•‡ˆ‘€’y‡|І„‚ŠŠˆ†„‚{z…†€~‚ˆƒ…‡†z……‡z‰}~†ˆ‡†‡|މ{’ˆz‚‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††ƒ„ˆˆz‡—ˆ…o‹ŠŠƒ†v†„ƒ„…ˆ‚ŒˆŒ‘Š‹ƒ‹†‚†ˆˆ~ƒ‘‰‰ƒ’‚ŠŠ‰‚“…‘‹€‡†Ž}‘}†Œ‹‚w€„~“c~„ƒ“Žž~ކ…~uŽ–†š¢‘|‡ƒ…Š‹€Š“„€‡u‰…‹†Šq€†}ƒˆŠŒ‘ŠŽ„“Œ…ƒ”†Ÿ‰ƒ|ˆ‚ŒŸ†ƒ„wzw{—ƒ~‰†^‰”‚…‚ƒ›—„‰‰y¡„r€}¦†Œ€‡Œ“…zhŒ†’€f•ˆ}q‹Š”~ŠŒƒ“mšw‡„‡zˆ‘‰ˆ‡†›”Š„~…“ˆ„ƒt›Š‰¤’ˆ…“™”~€}‚‹’€ˆ{€§|ugŽˆˆ‹~~}W~‚‰™xoz{‰ƒˆ¦|{•””r‹z{‘˜‚™«š‘‚”žŸ‰nxˆ…Š„x›‘ƒ‘jq‘ƒc|‹¤|Žs–ys‹y†zŒwŠiˆ‚l–ª{‹s~x‡”uy|‰|p†“Štƒ‰€‚’¯“x€mzW‚£›]lŽ”„‹~¤Žy€††Œ|•„…nŽ©}›‹„œ}…‰€q|„„ˆš…n““ƒ‰z~r}’ˆwSnŠ‹¥z’r}‹{tlƒˆ„Œ‹”h„y“€‹‡‚ŠudV€”Ÿz|zˆ|dw’ˆ‰˜ˆ‚—‹Š†‹„‰“ŒŽœ~’š„xv„ŒƒŸ‹™”‰Ž‡”ˆ„‹…‹|Š˜ƒ‰… ‹Œ“ˆ‚ˆˆv‡ˆ‰„‡ˆ€Š„ˆ†Ÿ‹‘›z{••Š‹‹‹‰Ž‡„€„Ž‹‹’“xq‘‘Œ”Ž‚Œ…†Ž’v…‹—’u‰Š…Œ‰…“‹‡”ˆƒ„‡‰‰„Š›‹’ŒŠ”—…‰|Œ•‰†Š‰‹†Š’ˆ™‡…Œxƒ‘–Œ“’‡‘‘‰ˆ‡Ž”‰ƒ‹’‡Œ¢‘І†‹‡‘„•‡‚ƒŠ’yˆ•‰‰…‘‰ˆˆ–‘Š“•‘‡†Œ”’ˆˆ‘|ˆ’Ї‹Ž‹’†‰‰††††‡††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††ˆ‡‰w}‘ˆ‘‰…ŒŒ’w•‡ŠŽˆ‡‹‹yyƒ’‰y†‰“”|œ‘ŽŒŒ‹‡‚•‰‡‚Œ…‹†ˆ‰‘‘Ž…zŒ‡~‰Œ‰……w‡Ž‡Œ”yyy‘{Ž}™xƒŒ”Œ‰yŒ…‡‹†”…˜t•Ž‹žŽ~y…‚•…€Ž„ƒ†‡œyy‰Š‰†‰†~š‘•““‡…‰‡ˆŒŠ…‡’Ž‘‘Š’Ž‚‹…‰‡„Ž”„†Š“Š}‹‰Œ•Œ‰•Š”„ˆ‚Ž‹ƒz„’’‹†Œƒ’vˆŽ‰ƒ’ˆ‘–Œ‘…†„”Š‹Žm•ˆŒ‹pŒ„†‹€ƒˆ‡†ƒ„‹†‹…‰u’ƒˆŒ}’ˆy~†Š‡|““‘“yЇ•“ˆˆ…€’ƒ„’‰‘І†x…„…xŽƒ‹’ƒ|Ž…‰€„x”yœ•{‹‘І‚ˆˆŒ‹‘‡‰ˆ…Œ€ƒŠ‰’€€Ž‹††Œw„ƒ‡‹„‡†‰y€‡ˆ…Šˆƒˆ––Ž˜‡ˆ~†„Ї„ƒ‰†Žˆˆ„Š€†‹~Š“Šˆ‹“‹ƒŽ‘ŒŠ’ƒƒŽ†‹’‹—ƒ‹†Š‰‘|Š…ˆ‰Š‚„Šq‰ŠŒ‰„ˆ”‚‡‹Œ†ŽŒ†‡‘”ŽqŠ“ŽˆŠwxŽ…ˆŠ„~†‘—’†‹‹…s‘‚…’‰ƒ‰w~‚І}ŒŠ’’~‘’މw„…‰€’ˆ†ŽŽƒ‰w†‚‡„‹…‡Ž‡††Š€Šƒ„Žy—”}ˆ‹Š„އЋ‰‹„„Š•ˆ‘‹~’Ž~‰„…‹w‚ƒŽŒŒ…†‡yz‡„‰‡Š“‘˜‰‘‹—މ|‰ŽŒ‡‰‹†“…•~ŽŒ‰‹Œމ†‚ŽŠ‚„…Š€‘Ž„Šˆ…•„ƒ‡“„‡”‹•…‹ˆŠ‰‹u‡’’‹Š‘€pŠ‘Šyƒ“‡‰‰‘ŽŽ‡ŒŽˆ”“ŽrŒŒ†x‰„ŽŠ‘‹‚s‡”‚‡Šˆ‹t’ƒ…’Œs…x‡‹„–”‰‘€‚†•ŠŽˆ“‡…˜’…“ƒˆ„„‡‚vˆ‚Š{„‘~†ˆ‡~Ї‰‘~…Ž~š“{——“…}‡†ˆŠ…‰ƒŒ‰Ž‘€ŒŽŒŒ‘v‹…ˆƒŽw‡zˆ~‰Œ…ˆ{‚‡‹’Œ‰‹„”ŽŠ•‹ž‡Ž}Ž’ŠŒŒŒ‰“‰’’”†Š‡x‡’‡~„”’†•†‰‰‚~Š—‡Ž“‹•’‡”‹ŽˆƒŠŠuŒ‡†„’ƒ†Š’ŠŽ†‹—‰“ŠŽ–’q‡•ˆ‹Œ…wu’Œ“Š}‘“‰…ˆ‡’‹Š‹w{Ž‚{’£…„„”ƒ‰–r‡Š†‡ƒŽr‚Š‚€u£‹u”|ˆ†…rŠˆ…„ƒ©‡€“Žˆœ‚…†ht‡‘¡€{ƒ…—…’‡ƒ‘†–…€ŒŠw€‹™‚}—‰“‰€‚‡…Žƒz…‰ƒŠh†{y…‡„œŒ‚ˆr‚y˜ŒŒ‰‚‚Š•‘lƒuuˆƒ‡“€ž†y€~…vn¡y€‹€…‡‹ˆ‹‚‡Œ…–~‘‚ŠŽ„€rˆ}„v|n‚‰z€–…ƒŒƒ‡ˆx‰„ƒ€‚…І“¤„‚m†‘Ÿ‹ƒƒƒl†Šˆ‡˜~y‡™œƒ|~‰”|“|~‡Ž‡‹~t„z„‹Ž…~‡‰’„‚‚ކ‰…‚–y‰ˆ}‹‰‘ˆuˆ‚……’’‚Œ’†{‚”Œ€~“rŽw‘z˜†}‰‹t‘ˆ”ƒ„‹“‡…‘{ƒ„‡“x‰Š~”‹r~ŽŠ…~u~Žˆ‹wІˆ‡–qˆŽ„‰Š‰suˆŽ‰“–“’ty‰ˆyƒŒ‡“Š‚‹ƒ†ˆ‹Šˆ…ƒ—ˆˆ–†}ŠwŠ…‹Š‹‰’ŽˆŒz„x|v“p†€Ž‹w~•y~€}”†”“—‡‡‰Œ“Ž~‡™‡f‹–Žˆ‹l‘ˆ…wŒŽƒ†…‚€’‘ƒ‡‹Œ’zŽ”ƒ’’š™„r“Œˆ‹‰“†‡Š‚‘‡‡|…”‘~pЇŽ|Š’•|Ž“ƒŽ’y†…†‹‚Œ—‘‘‡ŠŠ’’†šŒ’˜s†ŒŽ‘Ž’–|ƒ}ƒƒ‹Š“‹‹’’“†”˜ˆŠ€‘‚‡ˆ…x‘Œ„ƒ‰…z…u•‚‘Ž„˜}~™ˆƒ‰Š{‡‡…“˜jŒ—sz‡“Œ•„€”‘””Š‡Ž˜“z‡—ˆŠˆ™†Œ”’…Œ}‹|‡”™’|‰xŒ‹Ž…{ˆŒ~’Œ™y ‡‰Œ–‹Ž™‚‰Ž}›—‰’’‰ŽŠŒ‡Ž‰†ŒŽ‹‡„“…’‚Ž—‹‰Š‘ˆ“…qˆŽ€€„‹‚Ž’†‹€•‰ŠŠ‘†|ƒ’†‹ƒŠ‰—ˆŽŒ‰’‰Œƒ‘‰‰Œƒ‡‡…‰„|‡Œ‘–Œ•ˆŽŒoˆ•€xŒƒ}{ˆŠƒ’ˆ~‹•‚Ž”‡Œ‘Š„…ƒ‚€‘‹‰q‚‡ƒƒŠŸ‹{‰†y†˜Šƒˆ—‹•…Š|Œ•˜ƒ˜Ž¡ˆ}Œ…~“†‹“’ˆŠŽŽ†Ž”ˆ‡‡•›…ƒ‡„†”‡‹“‹‰ŒŽ‚‘‹‡’‡ˆ~œ†˜‚‡‡‚ƒ–‚’–w™z•„Ž|‚Œ„‡ƒ…„‡‹Ž‡”•‹~€ˆ„‹‰‰„ˆ‹†‹™ˆ——’’‰‘…v‹Š‡y„ƒŽ…Žxƒ}|‹Œ‡…y‹†‹–}~’˜„ˆ‹k‹—{ˆvv‰Ž„‰ŠŽ†œ…‡Ž˜~™‹”y€ˆ‡™”І‘†ˆ……‚‹}‘š•Љƒ”„ƒ„“ˆ~†‘•€‘Ž€‹£†‡‡•‘‘•†ŒŠ…„‚„’‰‹™††ˆ€…’˜Œk~ˆztŒ‘„z–’ŽŽ›‡†„‰“‘}…‚š“Š„•Дޒ‘‹‡ƒ˜Ž‰…Œ€Žƒš…Œ’…„Šƒ•‰‘‘ŒŒš•‰€«‡…„}•Š‚’‹‡‰‚„„†††‡††††††††††…††††††††††‡††…†‡†††††‡††…†††††‡‡†‡††††††††‡††††‡††††††††„†…†…†††‡††††††‡††††††‡††††††††††††††††††††††††…†‡††††††‡†††††‡††††††††††††‡†††††††††‡†††…††…††††††‡††…†††††††††††††……††††††††††††††††…†…†††††††…†††††††‡…††……††‡†††††††††††‡…†…†…†††††††yƒ~‚}…z€‡†–ˆ„Љ‚Š‹u‹x|}‚}y…~‚“…‰q…˜}ŠwyІ…€‰~uƒyyr……ƒ~{‚Ž{“ƒ‡€x„{…ˆ„•‚„Žq}}ˆ’Œ‡“|Ž“†‰€|wŠ{Ž„}€’…Œƒ„‚‹„zt†}}}’†‚|x‡‚…ƒy’ˆ……pƒ‘‚Ž‹€—wˆŠˆ‹}~r”…Švƒ•‰‚‹†z}xƒw~‚…~‚‡|p˜Ž…ˆ{ˆ†Žƒ‚…Œ„‰zy~•|y†…†އ|ž”†„†‹t‰‰ŒxŽ€ƒt†ŒŽƒ†Œ|vp‡uŽv‹{o‰…‚~‰‡Š†‚ƒ€ƒ‡‰‰“…‘–‹„‘„ˆ•~†ƒ‚€ƒ‰t‹“„Ž€‡}„“„r‰‡Š‡}€€‡}|†–‰Š”“‰‰ƒ“€ƒŒ‹†‡|z¡…x‡‹€†›{…Œ‰pyŽ}t„Œ‹y…ˆ’”Œ‡‡…Ž…x„‡ŒŒƒ‡—|{‰†}–‰Š€‰oŽ–“–ˆ‡’Š€“vƒ”©ƒ„…y‡•~’ˆ}Ž~ƒ…}†‰ˆ…‰‘‹}€Šˆ„™vƒ}ƒ“‰Œ¢‰Š~}‡}Љ”‰„š†ˆyˆˆ„Œ‡Žz~€Š–€~‚‡~‚މ‰€ƒ•p†–†‡€}™}‘{{Žy~Šš…‚{™‹œ|Ž|†…›s„z„’Г|z…‰””‚ˆŽ‚Š‹Žk¢|z~œ£}“•‘‘ˆ››¢”› z†¼•¨˜u…ˆk€ˆ{Œž”’z‘Œ_Š–‰…–”»‘‚–t–jx‘u–µ‰‹“Œ†‚‰ˆ•“~}Ž~™‘x•}…›”€…›z—’~¡‡ˆ™ˆzbŒ¥„}gpwv€‡ª\‘ƒq¡››”‰•x¨†Œ‚—{„¤‰p~~`z~¿‘o€yƒwˆ‹— ƒ–‘~†¬ƒ„—‘€“{¡‡‚‹™ˆ…_ˆŽŽ•Œ€ƒ•€ˆm—©—yjŒ¥ˆj‡ƒ||…‚ˆ‡†}‚‰‡ƒˆˆ‡‰‘…‚…‰…¢‰…†Š‚‹Œ„‰€‚„†‹„ˆˆ•ƒƒ†‰„€‰Šˆ‰‚‡‡‹„І…†Œ‰†‹ŒŽ…zŒ|}Š‘‡„~ˆƒ‚ƒƒˆ…„†††€†ˆ‡‰†Š‹†ƒƒ„ƒ“ˆˆ’‡†…‚}ƒ‡„‘ƒˆ†Š‹„€’†“‡Ž}Šw„„Š‘†Š|…x„‹ˆw|‰‡sŠv~Ž„†‘‡}‘‡•sއ‘ˆ…ˆƒ~Š…†{ƒ……•ˆ‰…‚‹Œ”‚Š€…‰ˆ‚‰ˆ€ˆ‚†„‡~ˆƒ‹|‡{Œ††€ƒ‘‚ytˆ…†Š~…‡…‚„~‹‡nˆŽ‡Š”x‰…‹†‹ˆŽ—ƒš‰†|‚ž’ˆ‚}ŒŒ“‚ z”Œ‰~ˆŠ„‘v‹ŠŠˆŽ€‡wŒ–“Š˜Ž~…™Œ›‘‰„Œ‹Œwˆ†’‡Ž~uƒ…ƒ‚‡‡„‡‰z‘‹‹|’ƒ¡Œ‡ŽŽŽ‡š‚z‡„‘€‚}„ˆ“|v}’’ˆœŽŒ“‚“ƒ„—•‘ˆˆ‘x†Ž‘އ‘Œ•’‹“ƒ…ŠyŠŽf…Š„ŒŽˆ”†v†‘˜|…•™€™’‡Š‰‰‚€‰o„ƒ‹‚’Љ‰›€‚…‡†‹ŽŽŠˆŠ…‘yŽ‘–Œ–ˆ‹u‰‰—…„‰Ž†|‰…„‹‰}…Ž„€–ˆ•ŠŠ–‰ƒ~‚~Œ‹”ˆ‘Ї†‰„”ƒƒƒ‰…„ŒŠz–ŠŠ‰‘‡x‡‡˜Š‘„‡‚ˆ|†˜”ˆ‹„~Œ‡€…‹‹‚‹zŒ‡‚„–Œ’†ƒ™–’€~~ƒ€Ž„ƒŒ…w‰‚w‹‰}‡šŽ~—ˆ“‹{•”†œ’Ž…Ž„|Œ‡’“}†ŠŠ}…~‘†}•‘ŒŒ„Ž{‡‰Ž”z‚Љž‹‰ˆ„”žŽ€Š€€{Š…ˆ†ŠŠŽ‚Œ—…ƒ„…š€†‹…Š‰Šœ‡v‚}ŒtŠ€ƒ‡|‹‰…ˆ…††ˆ‡‡††Šˆ†…†„‡…†††‡ˆ†††…ˆ†ˆˆˆ‡ˆ†††…†…„‡…„‡„‡ƒ†‡ˆ…††ˆ…€‰…†‰‰††„…„†‰‰ˆ†Šƒ‹‡………}‡…†‡‡…„‡…ˆ‰‡‡ˆ‡€…‡…ˆ…†‡„††…††ˆ‰ˆŒŠ††‰†…††„‰†††…‡†}‚…†…†Š†‡Š†‰†…††„„„‡‰ŒŠ‚ƒ……‹Œˆˆƒˆ…‚„†…†ƒy…†Š‹†‰‹…†…‹…Œ‰‡†‡zŠˆ†ƒŒ‡ˆ†…ˆ‚†ŠŒ†……ƒ…‚ˆ†‚’„ˆ……ƒ„†‡Š‹†„†‚ˆ…ƒƒ„ƒˆ„‰…„ІŒ„…„†‰„„‡‡‰xy‡“ˆ‰ŠxŒy‡‡¬‰Š€€†Ž‹{“ŠvЉŒƒ‘ˆ€Œ‚ˆ”Œ†„™‘—ƒz“ƒt‡ŠŒ–”‡†‰‰‡ˆŽ„‰‚†{‡˜r‡€„‹€ˆ’’ŒŠ‚‰v’Ž‹}‰‘{ŒŽ…—“„wއ’‡ˆ†‹€…ˆ‡™ŒŠŒ|zŠ{ƒŽ‡“Œ˜–†‹zŠ~x†……•ˆŒˆ„~…‡„”ˆ‡‘”’‰„‹Žˆ‘‡‹‰|……‰””†ƒ‡‰ƒ‚‰†…ƒŽ„”†…‡Ž‡€„t†–…‹’ƒ……‡˜ˆ€‹x‰–ƒ€Œ‹u‹ˆˆ…ƒŽ|Œ’…~y—}‡|‡•‹y•Єބ‘€€Ž“‡‰ŠŠ†‘Žz†•xƒ‘ƒ‚Ž’}ˆŠ‚|ŒŒŒˆ“‹‚‘wm‡}‘„Љƒ‰…|Œ‡}ƒ‰„†Š›jŠƒ…‹Œ‹†Œ…‡“˜‡ˆˆw‹zŠ}†—Šƒ…‘Ž“…‹„{ˆ—…ƒŽ…ƒ‹‘ˆ’‰Œ–‚~ƒ‹“‹‡’‡ˆvy–‰ns‡z‘…gŽŽu„‘Ž•‘—•‰˜“Œ”…’’Š–‚z‰‹ ‡t‰„ŽŠ‡‘…{Š–š‰ˆƒ‚‡vwŒŠ›ˆŠ‹›‹šx’’˜‹Œ‹“†•{†qŒ†r…—y}“‹‰’…ƒ†ƒ’…‰”‡x‡‘y{€ˆ–…ƒ‚rއƒƒŒ†‹•Š’”›“ƒ‚‡{ƒ|Š……›”ŒŒ‘‚sŽ„‘ˆœ}ŽŠƒ‚š‹uŒ‹y…y…Šˆsˆ~Œ”…›ŒŠv’‚„…ŽŽx„x•‘xˆ~w’Œy’ƒŽ~‹{Œ”–Šƒ}y’€„†Ž‡™Ž~’|‰‘~‰‚yƒ”“‹€p„’‹€‡‹„•‡žq‡ƒŽ“—~–s€…‰”މu…|„†€œ‰Šz‡Š’‚‹€‚Ї‘|{ƒ—ˆŒ„ŒŠŒwœ„{…y”Œ}|ˆƒƒŠ†‡‚}‰Œ“zŠ˜„vŒƒ‹ƒŒy‰‘‘s‰‘Œ‹‘ˆ„ˆƒpމŒzŽˆŽŒ‡”ІŒžt“‚–Ž‹‹‰‚‰„•ˆˆ„‹ˆ„~ŠŒƒ€†‰‰Š‹††•‹s†|•†„†‡…‡‰Œ˜”p‡’„†„‘‡šˆˆ„–†ˆ€}€€}‰{ŠŽ„„Ž“†}‹Ž~~ŸŒŠ€—€ˆˆ‡„”’“”‘y€zz„™Ž‡‰„€“ŠŠ‘rŽŒ™|†ƒ–‰†}‘ˆŠ””~ŽŽŒŠz‹‹‹Œ‚v‹|‹‘‹‘‚”…Žy{‹‰„“…’ŠŽ„‚…‡ˆ…–Šw…˜šq“’{ƒ˜„z‚t‡Œˆ‘ˆnˆ†…†ŒŽ’‰„Љ‚z|‡“‡„‹‹…ŠŠ‚’‰Žƒ–}”Œ‘‡Œ„{•„ŽxŽŒ…rŒ‘’‹‹ˆ‚~‰‚„‡|ˆr™Š‡z{އބŒ“z„†‚ŒŒ‡„‚ž’–Š˜“•”ŠŒ}Љƒ•j„Œ„~€p‘‰|‚—‚€€’‡Š‚‘‹Š‹“„t†„…–yޅމЂ{}Ž€‹~•q‘ŒŒˆŽ~‹“–‰‡‡Ž˜†‹„Ÿˆ‹‹ƒ‹}ˆ†Š‚„‹‡‡˜˜„…Œ…”‡…ˆ‘‰‰…‡Ž†‚ŠƒŽ†ƒvŒsy{ˆ‚†Œl„‡†ƒ€“y……Ž—ˆ–€…ƒrƒ“‹‡ƒˆ‡“€‚’‰’uy†Š‚އŒ‘„Œ}xŒ’ŽŒ‹{ˆ”ŠŽˆƒƒ„s‰u‘‹‰‰v……€ƒ™~ˆ‚xƒ€€‰„—}Ž…•‚‰Œˆ‰‹†’{~‹„‹‚{†v‘ƒ‹†|u–ƒ…•€v„‚„•‚|Ž––„‰Žƒ€‡„…Š‰Žˆ|t‘o’Š|„Ž‹„~Šz„ŒŠ‰Ž”„‹Š’‹‹w‹‹‘€€~€„Œ„‹Š‚€}…~Œy…Œ‰ƒ††{}Љ™‚…†Œ‚ˆ’†tŽq{~Šy‡ƒ†…†……†‡†‡†……‡†††‡‡†††…†…†‡……„ˆ…‡‡ˆ‚†‡†‡†‡†‡…‡††††††††……ˆ†„‡……†„††‡‡…‡†„†‰…„‡†ˆ‡†……‡†ƒ†…†ˆ†„„‡………†††…†††‡‡…‡‡‰†‡†‡‡‡†ˆ††‡‡†††ˆ……‡…‡††ˆ†‡„†‡‡………‡†‡‡„…‡‡‡…„„…†ˆ†…„…††…„††††…‡……‡‡ˆ‡ˆ……††‡„‡‡‡‡ˆ‡‰†‡‡„…‡†…††‡„…†„††‡†‰†‡…†‡ƒ†……†††‡‡‡†…ˆ†……ˆˆ†‡ˆ„†…†‡‡‰††…†…††„†ˆ€–ˆ•ކ~}w†€¦v~ˆ~€‰|x‡‰…ˆ‹u€‹zƒ†mzƒ…€‰€…˜}‹„s‰x†ƒ}‚u|}{}yŒ‚Œ‹…Œ†‚’~„‹‰…Œ‡ƒ‰nt{€‡…‚v„†‡€o‡{šm‚{}q~}w}†‡„…ws‚ˆƒ…†‚ˆu€€…˜}{†{…}‰‚y‰z†€ƒ~‡€¥—}„˜Šƒ…‚Š…–Œsˆ|ƒ{y}†™}ˆ††xsw|}Šƒ€ƒ†Œ‡y}|{~ˆƒ‰‡€}‚„‘„‹Š|†}ŒzŠˆ~ކ…w}‡†‹†x‹…}‡‹ˆ„wzuŒ‡…ˆ{†‹‹o‘p‰‚„‰ˆx…‰”€ˆ†Ž…ƒ‰…ƒy{‡…Š~ІŒ……¢|ƒ|~“’ƒ–€{ˆ‹€Œ•~‡y‚†Œ~„w†~„€y…Љƒ}‚Œ™ˆ…†…‹}„‚‡„€’ˆ˜~Œ„’ˆ‘“€Š†|‚‚€‹ƒŠvŽŒu„~‡†~}ˆ|ŽŽsƒ—yx’……˜‘‡‡”‡‘‰†‹Š}€€…”uˆŒ†ƒ‹vŒ˜Š‘uˆ††‡~vƒ†€‰ˆ‹‚ƒ…‹Ž‚Ž~’Ž”}ˆ‚ŠˆŽ‚„‚‚ƒ„“ƒ……‚ˆx‰’‘‹}€‰z…“yƒ~Š€…|ŒŒŠ{އ‚ˆ†‹‘‰ˆˆ}…‘‰ŠŽˆ‡‡‹Š…‰€‘‡†‰…‰…sŒŽƒƒ‡Šˆ…‡‡‚}Ž‚‹Šƒ”Œ“†‚ƒ†„yƒŒ’–‡„…ƒŽŒ‹ˆŠˆ†ƒ~–„}†‚‚ˆˆˆŒ‘˜‡‹Šƒ†‚~‹€~‰|†‡ƒ‹|~’‹ˆ‰—‡–‰‘†Š‰Š‘Ž‹•—…„‰„~~‘ŠŒ‰‹‰’„…‹Ž€…އ‰††‚€’‹’‘’‡Ž~‡†Š—„……‚ˆ™ƒz‹‰‹‹zŒ†‡‹‚…’‡ƒ‘†…Œ†—‡‚…“ƒ†‘ˆŽ}‰Œx“‚‚„ˆ‰…„‚–ˆ™ƒ‡‚‘~„‚‡’}|xŠ‹Žw{nƒ}…–ˆŽw‘Žƒ‰—‚}xy†Š|‰•Š‘‰Š€{}…—z—z…}‡¨œ}ˆ‡–‘‡ƒ‘Š—‚„‚‰€pŽˆy{Œ‹…‚ˆ’›‡z††w„•›‹’š„‰‘‚ƒ‚ˆy†y…•Ÿ~€‹Ž}›—–Œ~–£Œƒ‰rw}„„ltx‹Žƒˆ”z„‚qxƒŠ†£¢ƒs‰‡†‹Œ”“ƒ‹“€†ƒ¤Ž|¥~‹‹Œx{–‘|™t–„Š“‹‹‰}u‘|‹|o€—†Œˆ~Š~œupœ€…™‹ƒŸˆuzš‘’ƒ|„‹ƒ‹ƒ‰…}ŽŽŽŠ†–‡‡„‘‹‰ˆŽŒƒŽ’‹‡…‹€‘‰„‰†–‡‡{†‰‘Š’w~‹„€‚‡–•‚‹‹Ž…vy–”‹…„††“„…ˆ’„Š}‡’„Œ~ŒŠ‡Œ‰“………††…ŠŠŒz‰Œ†€Š‚|€†ƒ‚žŽŽ€š€‚ГЄ‰„‹‚„‘—ЇƒŒ„†‹ŒŠƒ”~ŽˆŒ„€…ˆ„‰ˆ‡ƒ‚“‹‰Š‘ƒyŠƒƒŽ€Œ‘”‘~†‘…‹‡††‹‹‡…€‰“Š…•”„{€‚Š€Œ•Š„†Žv‰Š‚…‚ˆ’~{x‰ˆ~…‰„†‹{‡ƒ‚„„À€…‰Š„†Œ‰Š‡‡……„‹…–ˆ‹‡…ƒ€‹ˆ’…Šƒ†Ž†Œ–’„Š˜ˆ„‰‰”„„”yŠˆz„ˆ…‡ƒ}‰‡ƒŠ‰‡‰„ƒ“ƒŒ‡‹…‚†xz‹‰†‰‰‚ŒŽ…€ƒ‡“}‰‰…|„‹}‡ƒ†‰€‘‚ŒŒŽ‹„uƒˆ…†{„‹}uxy‡‡Š‡“ˆŽŠu‹‚‚{…Ž…ˆr~ˆŒ“ŠƒŽ“‡ˆŽy…„œ„ЉŒ‹……w‚‡„„‹”–ŠŒƒ€m‰‚Š‹…††ƒz…„„}ކ€Œ~‡‚‹xƒyŽ–€sˆŠ’‰ˆŽŽ‹|Š‹’‡ƒ‰‡†˜~”Œ‘“‹Š“Ž‘‹†‡”†–‰ˆ†‘…Œ•‡{•‡‘Ž’†Š‰ƒ‹”ˆ’”˜‰†€ŒŠtŒ“Œ‘††ŠŽ‰Š“‚‚u‘ˆ“ƒ…‚ˆ†‘Ž‹z‚ŒŒ…‰y”„…~Їˆƒ{‰ˆ†…ž”…‚™{‹‘†…}™–Š‹„‡‰‡‰Š“‚‡ˆ„‹„€‹}ƒ•y‹„•„Œ‹‚‘„ŽŽŠ‰…Š–‘Š‚‹~…‰{~„}„ŠˆŒƒ‚ƒŒ|}}‹ˆŽ‹~}Š’†’|‘•—…‘€‡Ž…Š‹€Š”‘xŽ…Ž}ŠŠ‹‰‰ˆˆ‚ŽŒ…|ƒ€‡…‹ˆŠƒˆ‡Œ„Š„‹Ž’ŒŠƒ†‹Œ‰€ƒŽŠŠ|–Ž‹‹†Ž‹’ƒ„ˆw†…‚}Ž„‡‹ƒ†ƒ…‰~ˆ€‚„w‹…ˆŒ‰„…ˆƒ‹‰Š‡~Šˆ†ƒ‘€…“’Œ~Œ‡‰Œƒ…ޕދ††ˆŠ“Šƒˆƒ~‡~Œƒ‹‹Ž‹Š“‡‡~{‰’‡ŽŠ’€……~€†~‡ƒŠ†ˆƒ„‹‡‚‹‡Ž††‰“„„Ћކ‡†€…‡|„•‰‰Žˆ„ƒ„‰}†‰Ž‡‚†‹ƒƒŽŽy‹‚“……‚†ƒŠz‚…šˆ}}}†~†ŽŒ…‹˜ƒ‚€”‡‡‘~z‚wމˆƒ€…Šƒƒ€‹”}މŒŠ‚‘‰Œƒ•£‰‡‘{‰Ž…Œ†Š…}Š…~’ˆ„‹……Žˆ‰Ÿ„ˆ‹Œ‰zˆ‚ŒŠ†‡ˆ‡†ˆŽ•ƒˆz‡†€ŠŽŠ‡”€Œ„‹€€ˆ‰ˆ{‹‚‘Šv{‰‡ŠŽ|•†Œ„‚Ž‘Œ“~ˆ‡†ƒ‡‹Ž™”‚…‰Š‡†‰‚ŠyŒ“…ŽޕЂ‹‡Šƒ‡Ž’ˆ“‰}‡‡~‘Žˆ„Œˆ‘††ƒ‹‡…ƒ…‡”„zޔކ‚Œ‘†‰Œ‡ˆ’vЉЀ–‹~ŽŒ‚‰}Ž€r…~~}Öƒ†~šƒ”Ÿ‡†Š€}‘‹†‘Š~ƒ…¥}Œ…”Œˆš€”¤‰ŽxŽ…ŠŽ††ˆ’|~†z—†ˆ‰}†Œr~‰Œ…‚Œ‹‰‘—zŒŽƒ~‹l„u‘‘ƒ™†|‹††…‚{Š„ƒƒ’œ…kŒ†}ŠvŠˆ‚—ƒ…•w€{‡Š€„w}‚‘~y†xq~Š’Š–„€Œvˆ†…‹ƒ|ƒŠ‹Ž€“†‡„}‡‹‹‚Šwƒ‹ƒŒ‰ƒŒ†}sš‡‡‚‡ƒ€}™s’ƒ~ƒ„Œ•vw’Œ‰‹‹s‹‡‡}…Œ‡‡Œ•~}xƒ‡{‰‚ƒ”†€|“ˆ„mˆ{”€ˆvu„ƒ€‘…Žv~‚Œ‚|}€yzp„‰ƒzv„†€‡†€ˆ„„rˆ‘ˆŒuŒ„…ˆ†z~‘t}‚}•n…}ps|’’ކx…Œ{u‹‡„…˜„Ž~sˆŽƒ‚„’gˆŠ†‘ˆƒ†‚~„‰…~†§„~}„„žˆx‚™}y€z„ˆz‡Ž‡~‰†‘|ƒtˆ„ˆ„|‘}‰‹Š‡|‹€lŽ€†~š‰ƒ‚{ŽŒzƒ{u’~ƒuƒ†z‘…‡”|€‡€q‡‹w•„u†y•€yz“q‰’Š{†{‡ƒŒŽ„„‹€’Š‘††ˆˆ‚ƒˆ€‹”‘Šƒ„ˆŒŠœ€ˆ„‡ŒŒŽ‰zš‰‘|Ž‹…‰†t”ˆ“Œ˜ˆ‘Œ€„‰|ˆ˜•”‰‚{’Šˆ†Œ‘…†{†Œƒ‡†’‚‡•†˜”Ž‚„‰‚‚‚‹†“y‚€ˆˆ}ˆ~|‰ŠyœŒ‡|Ÿ€ˆ‘‰†Ž™‘”•‚‰~ˆ‡‰“}‡‹…ƒƒ‹‚‘„—wŒ’ŠŠ‡’|‰‹’“†‚ˆ”ˆ—‡‰Š€’‘‚}ŒƒˆŒ†ˆ€Œ‹…‹‰ˆ’‰Š„Œ‹“‘Ž‘šŒ„‹„Ž€‚‹Œ…‡’v†ŠŠ’—„Žƒ€Š…~‰Š‰‰€Š…ˆˆ‚˜‹‡•|…„†—‹Žƒ†‡¡‰x‘‹‰†ˆƒ‰ŽŠ†ˆ„‘‰ˆ—zƒ”‹‡‰€„Žˆ€}ƒy‰†‡ˆv‰x‚„„Œ„‰|„‘‹Ž‘…‡}„„ˆŒ}w‡„ˆ…‰Œ‚‹…„ˆŒƒ‚‡”‚}ˆˆŒ‰ƒƒ‰~œ‰w‡Š……„•ГЂ’}uˆ…ƒ‰‡Œy„Їz†ƒŠˆ†Ž‰ƒ‹€ŠŒ†…~†’‘ƒz„Ž€†‰‚ƒ…z†}‰‰~z|‹}ˆƒƒƒŒ„‹…Ї€Š‡zyƒˆˆ…‡…ƒƒ„Š}ŽŠw€†½””ŠŒ—Š~{v‹l¢€w„uy»p‰Y€s|y…v~…r•€…q{„’–Ž…•Œy™‹™†•”ª‰{˜xŠˆŽ™y{€}{{{{}n€}y…†Žv}k‹±wšr[‰†‡{ƒ‹’€‰y€“y“~ˆŒ~x…yz…~~Ž’}„‘n‘yƒ‹Žx‚„œ‘z‚€‚}it„{tˆ†u“€†Œ€|kw~tŒzxo{fpf€ƒs‚r—u–x‚|•‘‚}‚š|•ˆ~y‡{‡qˆƒŒˆ›xv†˜tyT{’|Œ‚„~†l‹•nw‚Žxzlrymw{~§ˆŠ†‡}€‰ˆŽ|†Œ†ƒ‰‡˜ˆ†…ŽŽŽ€Š‹ƒ…‹ŽŽ‡Œ‘ŽŽ†ˆ“‡’ŠŒ‹Œ„y“ƒ†Ž…‡{Š€ŒŒ‹„‡„‡yƒ˜”ˆ†ƒy‹‹‰††Š‹…€z‰ŽŒŠ‹‹…‰Š””†‹ŽŒ€€‡…€‰”‰‚ˆ†{ƒy‹‹†“›…|“€ŒŠ„~Š“’ŠŒ‹‹‚~ƒ‹ƒ’†‡Šˆ‚…Œƒˆ…“{ŽŽŒ‹…ˆ“|‘Ž‹‘”„‡ƒˆˆ˜ˆŠŒ…ŠŽ†„Žƒˆ€„‹Œ‹‰…ˆ„‹‡Š„}‹‹Š‚Ššˆ†„}ŠŒ‡”‡‡‘w’…ˆŽ‰‰„Ž„}†pŒŽ‰q„ƒƒ}‹Š‹ŽŠ‰„ˆ|„‚Œˆ‘„‘‘‰…ˆ‚‹Ž‹€”{‰“‡‘‡‘€•€~’Š’„}ŒŒ—ƒ‡qƒ„Šƒ‡}–Žˆƒz“—~‹‡Œ›ƒƒ†ƒ‡‰Š|Œ““”x•‰’ƒ…‡~’f†}„xw‡w’‡‡––†q‹ŠŒ–Œ}“’‰’’ˆ}‰Œux’‘†–‡„Œ}€‹ƒ‰ˆ’tŠ–|—ˆŒ˜w’‘Š’™wˆ{“ƒ‰Ž‘‹Œœ‘‡ŒŒ…„†……ŽŠy‡“Š¢”…€‰…‰‰—y|“†z†Š‡Œ‹™‡“€‰|†yz†‹††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Œ‡–ˆ‚Š„}†‡‰~‡Ž‚‹ŒŠw†ƒ•€‡ŒŽ‰‡ˆŠšŒ„…‹‹Šƒ‹Ž††ˆ„‘…‘Šzw…„Œx—vˆƒŠyxŽˆ†ˆƒx‹x‚†„‰–Œ•‡‡ŽŽ†›Žl‰|…‡†ƒ‰ŽƒŽ‘•ˆyˆŠ‡‹‚‰‚„•”„†”„ŠŠŠ†‹|ƒ•}€˜Š‚”ˆ€Žy‡Š~Œ|Ž—ŠŠˆ‰~‚~‹‚‰}†‡„u’‡„‰…Ž…‡‰‰~•ƒ’Ž„•‹†‡Ž€u‹‰‰ƒ…‚w†{€މ…ƒ‡…‹‡“†˜‹‡Œ~‹„…ˆ……………‰yy~€{Š”…‰ˆ—‰“oŠŽ‰‚‡~Š”±‹ƒƒƒ–ˆ‡‹”–u‚ƒ‘€‘†‡r‹Š‡›‘ŠŠ†‹‘–ˆŠ’x£‹œ›ž†€‡”€Ž„|†…tu—x›‹†t‘„˜™“—““‰w—€Ž|Š’w†‡z’Š—‹†Š‡˜‚„Œ}~„‘‚™‹†~…p‡„…Œ†Žˆ„‘–…}‘x„€‡‡‰‚Œ…ƒŒ†z••Œ“Ž~Ž}›zƒ—‘œ—ƒ~‹‡‰…—ˆ¡~‚‡††…™ŒŒ|‘›š‰‡‰Žƒy™p†‰Œ‚ŠŒ’…‰‘~”Ž•‰Žƒ“s’‹ˆt‹˜t‹•„€†©€ƒ‡’‡|‘ŠwŠ€ˆ††ˆ”…‹‹ƒ~‰‰„ˆ„~Ž„ƒ’Љˆ“‘Œ‚z‡Žƒ“‰ˆ†–ŒŒˆ‡{“‡Ž‘ŠŠ‚†„™†”‘†‚ƒ„…x€ƒ”™Žƒ„‰‹ŠŒ‹Œ‡~…‰“’ƒŠŽzˆ„”Ž˜’•‹„„‘…}…’}†•‹z|Žˆˆ}‘Ž}‰›Œ„€œ~Žƒ~–’”•ˆ€Š†”Œ‡‰’Šz‹‡ƒ†”ŽŽ—w“‚†ƒŽˆ‰„…‡‘„ŒŒ–Š…}‚†‘Š„ˆ‰‹†Žzˆ…€Œ‚‚ƒ‚ŽˆŒz}‹ŠŸ„‹ˆ‡ƒ‹‰‹ˆy…ˆŠw‘…‚‚Ž„ˆ‹€‹}ˆˆ“ƒŽ…€—Š“ŒŠž‚ƒ€‡”‰~†‡Šƒ™Ž‹„~”…ކ„ŒŒ‡„ˆŒw”…ŠŠŠŒr‚€—‰Ž‰†Žˆˆ†x„™›‰ˆ‚…‰‹Œ€††‡‡~™Š“}“‚‰€‰–†‡•„€Š’{„Š…|ˆˆ€Šx€•{›…‹~‡”Œˆy˜”ƒ–’‡‚‹Š|~–Š…€›€ˆ”„„›’‚•‚•Ž”‚{‰|‹†‚…“‰„˜‡ˆ|”€‹ƒ–Œ˜}ŠŠ’„ˆˆŽ“‹‹‡‹—Œ‡šŠ…zˆˆ…‹•Ž{|ˆŽu’…€Š†ƒ††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Œ‡…„Šˆ†Š‰ŠŽŠ†„€„……‡‡ƒ„…‡‰†ˆ‰ˆƒ‹‡•†‰Ž‡ˆ„‡„‚ˆ‡ŒŒ…‰Š‰„‡Š‡ˆƒ††‚…y†‡‹}‰‰‹„‡††€ˆƒ†ƒ…ƒ‚……ƒ†„ƒ†’‰…€…„†‡„‡’‡…Šˆ„‡‹…‡‰‘†‚†‚|ŒŒŽ‚†‡ˆwŒyŒŠ‹€„‘‚‡†‹z€€ŒŽ€r†„…‚r‰{‡…‘…ŒŽƒƒ‚†ƒˆˆ‡}‡ŠŠ‡‡„‰ˆ‡†‰…‡ˆŒv€„‰~ˆ…Ž„…†…‚‚‡‰ˆ€€z‰…‹†ˆˆ‰‚ƒƒ†ƒŽ–„…†‡‚…|ކ††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‘“‡|††‰‰’‹Œz‰‘Œ†‡…‡‰Ž€ŠŒ’ŽŠ‡ŽˆŒ”„‰Œˆ–Іˆ†{”‹~ƒ†~‡…’ˆƒ…ƒ‡w€—“‡„r……‡„Š‹…‹z•ˆ‘„ŠŒŽ~Œˆ†”ŽŠ†ˆ†|ŠŠ‹–€€ƒˆ†ƒ{‡Œ|œ’€™’ˆ€ƒ”‰—†Ž‹‘}‚ˆˆ‹–ˆ•ŠŒ{€†…„ˆŠˆ†’{’Œ‘…ˆ‰Œ{‰Žˆ‹‰“‰ŠŽˆˆ›ƒ~ˆ}Œ€x‘ˆ‹€†‘€Šƒƒˆ†Ž‰„…Œ”Œ‡{Œ’Œ„ކЗ‰‰‘uŒ”Іˆˆyzƒ…‡†w„}˜}‘}‚‘ƒ~‹†‚‚}}„ƒŒ~Žjv„ˆŠƒ~“|Šuz“ˆ€s„qvo‡…‰ˆ‰‚ˆ}€…“‰†|Š~Ž„ƒ†Šzzw‚„Šˆ‹s„|„tw–i‡„‘l}‰‹„zŒˆ}–‘€my’’ˆ…€‚…u€‹‚q}‰Ž‰‰Šw{‰‡†…tŽ~¨ˆ‹¥…}Žs€•‚Œ}€ƒyx€}Œ~€Œ}†‹‚u|~…Šˆ|pŠ’‰†‰|‘z„ƒ‰x”}ŠŒ‡z†„”‚……‡{†~–y€y‰vŒ‡s†}ŒŒs€}‘|‹…އtˆ†uƒxŠ|y“‡ˆ•‚—Ž{œ’‚€†Œ”_ˆz”‡Š€Ž{‹’Š}˜‡”…yŽˆ„ˆ†ušŠ‹‰‰Œ„ƒ”Œ†cŸj~—€ŠƒŠ˜z€‰v‚‹}„™f‰…}”›švˆŒ|†~x‰†„|™ˆ|š†z–‹„•‹oŠ{‘š†ŽŒ}z…Ÿªu~‘m‘ƒq‹}ƒ…‹|†‹‡…ˆtƒ‡c|~”‹|†b”¢–p{’†Œ˜˜q‘›‹‘yŽz•…¢~ˆ†Š‡Ž‚x~”“ …‡‰Œ•‘‰„œ€m“†…rŽ„•…„‹¢ˆŸo‰–“‡…Šƒ‘ˆ†r{ކz„Ÿ{‰’‚Žˆ•‰‰zˆ›–‘†Œ‰…”’|—ŒŽ‰‹ˆyq““ˆ}€‡’—„œ‡Š•“Šw}”Œ”y‚Œ’Œ‚ƒ††}Œ–…”ŒŒŽ‰…ŒŒ’šx‰•ŠˆuŒ„Ї’“„‚‚„~‰ƒˆ‰ˆ‹…œ„“}Œ€•~ˆ™~ˆ€‹ˆˆ‘‚y‰‡™~…ƒ~‰’ŒŸw{‹Ž~~Ÿ}…œ„•€””Œ”‡‡ˆw“‘“ƒŠŒ‘”„ˆŠ„Ž‘œx†’Œ{‹’ˆŽ|Œ‹x‹‰’™Ž‘Œƒ„Ž€†‹r‡r‚“™‹—Žƒ–~‰†ˆŒ}…Œƒ‰‹Š”…‹}—‰—‰—†Œ„Œšˆ‰‘Œs‰‡ƒƒz†‡ˆwzx‡ˆˆŽƒzˆ‡|‘Œ„€„’|‰ŒŽy•‘†…ƒŒŽ’ˆ‹–’–€ŒwŽŒ†ŽŽ‹‡x•“‡Ž”{ކ}ŽŠ’‹Œˆ”‚Ž’†z…y•‹šŒx{•™‡‰‰”І}ŽŒ“|‘†‡‹‘•„—Œ‰ŽŽŒ†…‹ˆ‹‚Š‹€Š}ŒŒ‰|wx„‚~‰œƒ‘ŒŽŠ„”‹‹Š‚ˆ‡|†“|Œ‡†Š‡‡„‡ŽŒvŒ”{ˆ’—‡Ž‡Žx•‰“”’‰‡“‘ƒˆŒƒŒ…ˆ„sŒ„„ˆ‡ˆ‹šƒŽ‰’Œ€†Œ˜•Œ‚—Œ}†Ž}—”‡”~‰Œ–y’‡|‚”{yžkw‹•‰}¨Œ†{˜ˆ˜‚Žj€|‰‡ˆŒˆŽ}Ž”w›q’‚‡†Œ›„€{—ƒ‰‘~‰Ž‹‡ˆˆ’ˆkrŽƒ†z€’‡œ{•“w‡‰Š”¤k‚Œ€‘‚„}v‰|ƒu‡w~|‹˜d™ƒ–˜“y}ˆ¢†‚‰””‹‚ƒƒ˜Žœix|€xƒ•…Œ“€†|‹šu„^j~‰„Ÿ¢‰vƒˆ”•y†šŽ‘–‹£Š“|‹•zœ€™ŽŽŽzt‘ˆƒˆ‡†…t•–z|ŒŠŠˆw…ˆ™‹|‡•…v„“Žš‹†ž|‡‰}”otz¡€Š»|ƒŒ•…|–Š}›†€•އˆ‡ˆ‰„‰Š}‡•zŠ€‰€„{}ŒŒ„‰Š„‡‚‚ŒŒ|…Ž…ƒŽš”ƒ‚‰ym‰y‹‚¡|…Œ…‘†€‹…Š‹yz‰m‹‚‚†…‹…‹‡›ƒ{ƒv‘ˆ„}”†‹†ƒš|‡Ž‹‹ƒŽyŒ}†““…ƒ‰‡…šŸƒ‡“q„|ƒ‹„’Š•…ˆ~ƒxv‰wš–•…‡x‰Š„yz‘†|˜—n“rš‹‹‰~ŽƒŠ—…”“‘Ї†‡|‘‰£†…y‚–‹“’Žƒ}ŠwŠx”‡{‘–‰‹Ž„“•Œ‰y¡ƒ–|Žƒ‹xŒ…{|‚‘|‹x‘ƒœ{ŽŒuƒv†„†ˆ„„‘‡€‹‹‰„€Š‰‰„Ž}‘‡’†‹Š’’І—Œ‘„Ž€‹Ž‹ŽŒ“ˆ}–‰ŠŠ†|Š„”Š•…І‡wƒŽŠ‘Œ…ƒ“Š~†ˆˆ†‰w†Š~“‰‰…‰Š›„”‹Š……ˆ†}‰‹}‡~Ž…‰…‡|‰Œƒ‹ŒŒ‹›‰†Šƒ…™Ž™‰…€‰ˆ’~ˆ‹‡ƒŽ‡}ƒ‰|•u…‰Š‡ˆ“~‡ŒŽŽ{‡‘ŠŠˆ‰Ž„u‡€Š‰ƒzŠ…ƒ‡ƒ’‰‡„ŒŒ„Œ„Œ’{Ž›‰‰Œ‹ˆŽ‚ˆŽ~Ž‹Ž{‘‚ˆˆƒŠœ„{Š˜‹ˆ“|Œ‰Žq‹ŠŠƒ„ˆ‚‹•}Ž‹‘Œ‡“މ”™ƒŽ…’ƒ„‘Š„‘…~“‹„ކyŠ|‰ƒ¤}ƒ…ކw„”—І€‚ŠŠŠ‘€’~™†’ƒˆ{‰“~Šz‡’‘”‰‰‹„Œ…ˆwŠ—{…~Ž}†xŒ‡†Žˆ}•}„’”“‘’†„ƒ…”ˆ“’‘~‚ƒ‚ˆ’„„™}ŒŠ…‡Šƒ‹•ƒ‰†|–†ƒ‘†€†Ž‚ˆ{†‘Š€‡ˆ‘†€ƒz{“‡ŽŒ{†Œ›‚ƒƒ˜–‚Šƒ……Œ…†Ž€ˆt‘Š‚‰†‰‹²˜z‹“Ÿ„…”r‹ˆƒ•”trk’šr€~ˆ‰ˆŽ‘€‚†‚‘•‚œ†‚{r‡ˆ”o…¨|}œ†“t“}‹Ë…€|²~}…„—„‚Œ‘ƒi…rqv„w‰|‚š¥­ƒyš‡ž‡l‰€€{tt–ˆ”Œ‚‘Œ~~{‚oŒys†„§‚‚ˆ”“p‹™€ƒ–•†€ˆ|‹ƒ|†Yl‹Ž~€s‹vl‡„‘u‹u˜€ƒ{™‚Šqv‚Œ„ŽŠvˆ|s…uw™ƒrui‘}–‘ƒ‹}~~Ž}†‰€Š‡‚‰whœ–‚†‹€uvƒ‚†‚†Œ‚œ…t§‹†˜ˆ†‰…Š€‰Š„††††ˆ†‰‚†ˆ†‹ˆ‡ˆ„‰‡…ˆ‡ˆ„†ˆ‘††„Œˆ‚‡‡ƒ‡†Œ„‡…ЉЋЉ{†…„Šƒ‰Ž…ˆƒ‡z„„†ƒ†‘‚ƒ€‡…†‰‰„ˆ‡…‚ƒ†‰‚†ˆ‹††ˆƒ‹‹Œ‡„…†„…†„…ƒ‹†‡Š’ˆ~~“††€Œ‚†‚‚’…Œˆ}Œ„w‡ˆ…Ї„‰†‰‚‡ˆ‡ˆ„†Šˆˆ…ˆ‚…}Š…‰‰Ž†…‡‹†„‰Šˆ†„…€Š†…ƒˆ‡Œ‹……‚„ƒ‡‹ŠŠ‡ƒ†‡„Ž„‡‚Œ~‹‚†Š€ƒ„|„„ƒ‡‡„ˆŽƒ‚†ˆŽ|{‡ˆ‰–„Ž–Š}‘Œˆ{‡‹s{„‹w~Ї“†’–ŽŽŽŠzˆ{ˆ‚ƒ†Š€‰Š‡†€|w†‚…ƒ‡œ†…”Šw‘‘zˆ{‘‡‰“~Œ’އˆ‰‹˜Š‘‚”‰‘‰–ŠŠ…“ƒ‹•…‰€”‹‰€~|…z†ˆ€•‹gx•“}Š˜ƒ‡|•‡‹—“’“žƒ‘}tƒ”‰…‡‚Š‘”Ž[†ˆŒxŽ‘Œ‹ŽŽ‹‡Œ’z}—‡“•ƒŠŽz‰z–“ƒ‚„Šƒ•‚ˆˆ…‘Š‹”ˆ}’’ƒ‘˜•‡„‡†‡‡vŒ‰ƒ„Žq•€~Œ‹‚„ƒ‚Œ‰‚{Œ‹~ˆƒ€…‰„}‰‡ˆ”w|…€”‰{u…Žƒ‹ƒˆˆ‚†€ˆ„||‚y|rŽ†ŽŒˆˆŒƒ}‚Š}‚‡}‚‰€}‹ˆtƒ‹€†|{‡›t~~—r‚z’uu{Ž}„‹{…‘|yЉ‡~vˆ‡‡Œ††qˆ‹ˆŠˆ~‡‡}€”ˆ€‚v}„‰}…Šz…‹„†ˆ…‚ˆ‹ˆ~‰Œ„•x„„‰ŒŒ‡……‘~†ˆ€y„……p‡„ˆ†œ‚‹{‡…~€ˆ…yz…Œ||n„‰„‚‹‹Œ‡€}mކˆ€{€{—„xuŽr†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††„…zŽ}Œ{xƒ}|ƒ‘…‰’…ƒ…w…|‹…wq…ˆ…‰‚Ž‚‚Œ†„zw€{xy”†ƒŠ‹‹ƒ{Ї‰Š‡ˆ…|†€‚Љ„‹|}|‘€–v‡˜ƒ†ƒzs…|‰‰o‡†|‘†‹{˜„|y…‚…‚†…†t…‹ˆyƒŠ‘Œvƒz‰†„‡ƒ……Š©}~‘Œƒ„~‡‰’ƒƒy„†~}‹—‚ˆ„†Š…€r€|{ˆsƒ~ˆ‡„ˆx‚ƒˆŽƒ‡‡}}~Œ‰€„†…‰…ŽxŽ|„…„}Š„‡…z‚~Œ~†Œ‰v††ƒ}}|ˆŸ‰™v†ˆ}‰…‡ˆ‚~‡tˆ{yŽˆƒ~—š‰Š†”›„’|Žœ{…–ˆœ‰o~Œƒƒ£¨ƒt‚…w„ƒ™]S‡~‹ƒ‹‚‚‡„‹~|Œt…w†‰}ƒ‚„‚––…‘€…|‡Ys†Œˆ†|†{|’u}„€~‰„Šˆƒ}†„’o‡qVvzxt…~x¥‡†€¢€‚€{}‡Œ…r_}„…ƒn“ƒ‚‡}t{‹‹~„wƒy€ƒ~}€†žˆ€†v]{€„V€€~n€t‚}†„i}x”Šƒƒ:w…‡„Žƒ|wz|t|„‚wŒs}‚~€–yu‡‡’|Œy‡’‰š‰‚€„‰}€†“‹‹~‹Š‰‰†‡‡›wŒ†”}Œ‹‚†ƒ„š‹—ˆ‹‘ˆ‘Š…o„†Œv}|ˆŽ›€‡‹…„Ž€‰”h€…‰Ž‹Š„‰‡Ž”„|ˆw‹uŽ„šˆ}‘‹’„‹{~‹™ˆ‚‡…Š‚†‹œ™˜…~ˆ|Œ€‚‡ˆ‡‰ŠˆzŽœvІjlŽŠˆŒvq‡•ƒw‡‹–•—~ˆ{™‰ˆ‘“‰–z“–}‹”…š|{zˆŠŒ‚‘’‡Œ|–›{ˆ†‡„|ŒwŠ—‰‰†’‘€‡t“”‘ŽŠŒŒˆƒŒw•~t†‘}ƒ¨{„†•‘ƒ’“–ƒŠŽ‘†ŠˆŒŽ‚w~ƒ€Œ›„†…|‚ŽŒ˜„‘†Š…Œ‰‚ƒ‡…ƒ…•‘ŽŠ‡Š†ˆ‡„š‡ƒ‡„sŒˆ‰ƒŒ………ˆ‚ЂЅ€„ƒx†~„“‡‰……ˆ„‰p‚€ˆ„˜‡‹€‡Ž†ƒ‹…†•Œ‚ˆ†…†x…‰r“…‹€‚ƒ…ƒ„|{€‚‚q{€…‚}Œ€Ž‹•‚‹‰€‡‹„‹‚Š‘Šx”†€…||Žƒ‡‡ˆ†€‚œzz†Ž}€„Ž–„†„…†Šƒ™…‹|…‹ŠŠŽx‚ˆ„…|žƒ…‡„ˆƒ“~‰‹…‚‚ˆ‚‡‡ˆzŠŠŠƒ“‘‰‡–‡ˆ‡‡Œ~‰‰ˆƒ‰‹ŒŠ‡‡‹‰“|‡‹ŽˆˆŠ‡{}‰†ˆ‹w|ޖЇ‹‹„z†Š”˜‰‚…}‡‹Ž…†ŒŽ„ƒ”ˆ€ˆ„Œ€‰‹„‘”ˆ‹‰ˆƒƒ†Š‰Žˆ‰€ƒŒƒ|‰Š~…šŽ…‘†Š‡y†‘”‚‰ˆ…z~’Šˆ’…‘|Œ‘…Љ‘’‹…‘€‘‘—„€†Š‡’…’†‘~“‡‹ƒ™€~ˆ|…”…‘‹‘‡‰ƒ‚Š‹Žƒƒ€ŠŒŽˆ‹™………‡š…ƒ‡|ŒvˆŒ…’˜|ˆ‘t˜~„‹„ŽŽ{Љ•‹†Œ‹~†‘‡|“‹ŽŒˆ‡ˆˆz„ˆŽz‹Œ•‡“‡‡‹ŽŽ‚’‡†Ž‡Œˆ‡‰{’ŽŽ–‰~‘ŒŽŽ—Љ†ˆ‰ŒrŽƒŽŽŠ‘…‡~„Žˆ‘Ž„‹|Š…’‚‡~…“’„‚Œ’‹ˆ‚‘ƒ‰y‡ŽƒzŽ’•€yŠŽ‹ƒœ†€…™€ŠŠ”—–ˆ…‘„‡‹ŠŠ““”ŠzˆŽ‚‰’„‰ˆ’|‘‹Žˆ‰Ž€ˆ‹‘†Ž†‡ˆŠ“ЉŒ‚Š€|†ˆ‹„Œ‰‚„‡ˆƒ‰|†’†ˆ€ƒŒ‡„ŒŽƒŠˆ–€ŒŽ‹Š{‹ŒŽtЇƒƒ†‹Œ‚Œ‘†‘‹oމ„Œ…€‚ŠŠ„ŒŒ‹–“˜˜‚Š“Šo‹xv‡€‘’Œ‡ƒŽ‘”~ŽŠl…šŽ’—š„‹ˆ~w„ˆcz‡„‡švŠ‚”‰’’ˆ‰‘™ƒt‹ƒ‰yŠ“v‰‰”‘ކ„Šˆ‚„Ž}…Š“‚“……„|€|‰Ž•““„™Œ|‰l‹‘œ‹e™‘w|އ—ŠŠ‘ƒ…ˆ•ˆ„—ˆ—˜˜ŠŠ”…Šz’Ž®Ž~†ˆˆŒŒ„”|‹ˆ’˜~Žy“w‹‡–y~Žyˆ–‰ˆ—–•‹ƒŸˆyˆ‰n—‡ŠnŒ“y~y‹Œ…ƒŒxt‡ƒ‘…„ƒ‰†‚…ˆ‹ˆ“…†……t‰†…Œ„‹€Š‚‚Œz{„‹‘ˆ‹‘ˆƒ„‡xy‡ˆŠ’“Žƒ††“‹‰€ƒ€‡…†u‹€…t†}†›{ˆ‚{‚xˆ}”|Šƒ‡‰z„†‹‡~Š„‰„Œ†t|Š…†ŠxˆtŠwˆ†‚j‘Š“Žywˆ†„ˆ—‡xˆ›{†ˆ•€‹xŒ€‰’……†ƒ{spŽˆ‰vˆ€„‡‹Œs‰’Œ|‰—‚ƒ‰‡Œ‚€‡ƒŒ~‚‚‚ƒ‹€…†…ƒ{ƒ‡‡w‚Š~Š…ƒ~}‰‹}…—ˆ†ˆ‰…„†sŠ}{z††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Œ‘wˆƒ’‰‡‰”€ŠŽ‡}‘‹”Œ‹ŠŠ‚}…ŠzŒ•—…”€ˆˆŽƒŠ‹‹Ž‹Œy™–‡‘މ‡w™‘šˆ™Ž„“‚Šˆu‡}˜Ž™’€Šˆ‰™‚†~‹Š’‡‚|‡’‘‹ƒ‰–ŒŒ‡Š‘‚‚}Š…“ˆz†”r{‘Šƒ‹†~¡€“„‰˜–“‘…„€Œ„†…ŠƒxŒŽ…‚’‚…‡yŽ•ˆ’†‡zƒ”“‰ˆ†’””—‰„†~”„ƒyЉ…‰„„І”†„„{‰‰‰‚ˆ†‡†”š|Š…•„”‰‡~ŠŠ‘sŠƒ€Œˆ‹…zІŒuŒŠ‰xЋЇšˆŠx™Ž‘ˆ„“„Œ†‰“‰ƒy’ˆ—‚‹Ž}‹ƒ‡zމ„xŽŽz„…‰…Š…‰‹”„ƒ†Ž†t‹‹‘‡˜€€ˆ‰‹‚……‡~•ŠŽ‚‡Š’~’”‰‰Š“}‹ŽŒ|€…‰y‡Œ{‹„ŒŒ‡‹…zŒŒƒ‚œ’}–„Ž„„•‰‘‹“„„„}‹—Šƒ‰„ƒ‘‹zˆ‹’…“‹„ŒŒŒ€Œ”‡‡…Ž’‰‚’•Œ‡އˆƒ„~‰|Œ‹ŒŒŒˆ€’’ƒ„‡Ž„Œ†‡“Œ†„Š™…†‹”†˜Œ|‡”u‹£Šˆˆ‚‰y‚’•€„z‰ƒ€}ŠŽ€Œ…ƒŒ‹‹‘}~‹z‹Š{x‡‡„Œ‚†Ž€~…{‚…‚ƒ{€}zx‡~‹|w„‡‡…Ї†‚‡ˆyˆ‡„‹wƒ’‚…‰‚Šz†–’{‚}‘p‚}}rˆˆŠ’sŒyˆ{…„Œ†u…‹~œ„“Œd‚Œ‡ˆ†…ˆ†‚‡ˆ†¦—„|}ŠŽ‚‰†‚Š‘ˆ…„„†‡„}†šˆ…„’z‚vˆzŒ…ƒ„ƒˆ{ƒ†‡ƒz‡‰yŒz„„–t{‡‡r}‚Œ„€yŽ’}zk‰‘ƒ…„–x{‡~xŠŽŠ|Œ‚p†}‰z|Žs…‡…‚…†‡Š†‰Šƒy‡ˆ„Š‚‹„ˆ‡†‰ˆ…†„ƒ‰‰ƒ‰}ƒ‡ƒ‹‡ƒ†‡ƒ‹ƒ‹†…Š„‡…†|ˆ„‰‡y„ˆ††„ˆ‹‚ƒ‡…ˆ…„—……ˆŠ…†‡}z‹†}††„‚‡‡ˆˆ‡„ˆˆˆ”‚Œˆ‹’ˆ‚ŒŽ…ˆŠˆŠ‡Œ…„ŠŠ„‚‡†‡‡’Œ‰ˆ‚„ˆ„ˆŠŒƒ€‚‰w„‹‚Šˆ‹„‰Œ…€u„†‹†‹Š‰‹~ˆ€†ˆ‰‡ˆ„‘‡{Š…‡…‰Œ‚€}‡‡ˆ‹‹†‡‘…‹ƒˆ~‹ƒŒƒ„†ˆ|‰Œ‡…Ž~…ˆ‚Œ~…‰‡‚Œ‘††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††„€t‹€†Ž…‚Šy•„Žq‰ˆŒˆ€‡uŽw“…€‡Š‰„„„—Œ‘}’„„„|Ž‹„€‘{y‰ˆƒŽŽ‡‹†‡‰Ž†…‚}‹†ˆwŒ†Š‚‰x‡‰ƒ‡‹€vuŒ•~Ž~ˆ™ˆ}™‹‚‹w‹ˆ…|w“‹xŒz‹z{yˆh„ˆŒš‡{p†Œ~‡’†ƒ’ˆ“o‡‹¨†‚ˆu…~ˆˆ‹‘…†}y„ŽwƒŒz‰ˆ…’x“}†Ž’‡‚“Œƒ‡‹‚‹‰Ž€‚„‡ƒ‚“‡‡Š€…Š~‡˜vƒ‚†‚Š‹“|ˆ‰{‹ƒ€ŠuŽ„€‚}Š{zƒwŒ‰ƒ‡}u‚ˆ|’‰‹‚•Š…{ŠŽ|„„’Œƒ†…‹~Šp‘‰‡ƒŠ‹}„y…~|…ŽŒ„ˆ—–ˆ’‚Œx†yˆ…ƒ†‡‰ˆŒ‰†€}Žy˜{ŠŒ‡…‚ˆyŒu‘‰”™{~Œy‹†“‰‰’•ˆ|}€—ˆ‰€ˆ€|Œ|ˆŠ‚‚“||ƒz—‘ˆІ£{~ŽŒƒ|Š‚}…†›Ž“•|‚…ƒ•Š˜Ž‚ˆŒzŠŒ}x—t~‹‡‚{Ї“˜’z‰ƒ‘‰‹„‰}†‘‡……ƒ‹†‰„t‡{~~†}‹†“Ÿƒ}w‰}„€hƒšu‰iu¤‹„…‘T‰xvŸv‡˜Švf{zˆ’x’›~Ž’u€–jq–„Œ“‘¨˜t—†††‘uŽ{ŒkŒoƒ†›¬Œ”‚vp…Œ\o¤s•†–ˆ‰…€ˆ†’Šk†r}yj–Žƒ„ƒ“ނމ„”Ÿš—Ž€x“•}Š Ž„†`‰vƒ‹y‚”’‡’t–Œ«lƒ‘qv‡z‰i{§eyx‰‘‰wŠY^’~Œ†…¢„€”™š–Œt€’~œ¥„‹Ž‚e_¤u””Œ€u”ˆ™‚u•Ž‚yz}zs§…v‹‡„w‘‡rx…­‹{~€ „œŠˆz„‚†Œ‘…‰ˆ‰ƒ€ƒ‚ˆƒ‘„‡‹†…‚„zŽ…‡ƒŠˆŒƒ‚ƒ”€ŽŒ…†‡Ž“Ž…Š…„~uƒ’~ˆ„„„‰~ƒ…„x„€‡…|‹„‚Š„…ƒŠš…‚ˆƒ†„‰‘‚‚‡†„€z†‚~‹€…š††…‹Š‰‡†‰„Šƒ€€†Œ{ˆ‰ƒ•yƒ…†ˆ‚‡‹}e‚~Šƒƒ†š†„•Œ‡m”ƒ………q†„‚„v}ƒwІ‚„…~‘p„†”†‚„ƒ‡~Ž“{†ƒ„†‹}…‡—‡…Œ‘‚…S{‚††~‡ˆ†sƒ‚{ƒ‡‰€|…ƒ†‘‡v‹†mŽ„†{†~z…‘|Žˆˆ–‰ƒ}‡…’Ї~sˆŽtlŒ‚Œ…}Ї„p†…ˆˆƒˆˆ›‰ƒs}‡s“‚–‚—’‰Šy«“‡ŠŒ}g}„†s{~„”–—Œ|Ž€~‡„”Œ©¤Ž‹Œ•’y‘‰{‰†„„‚‡‡†‹˜‹}|Œ}›Œ€‚‰~’z‡{}‚“z‹œ„“x‡Š–„}„‰†€–‡}€‰”ˆŠ“Œ—•Žu‡›ˆ}’ˆ‘…„€^Œ†›{‰}ŒŠˆ‡}‚‘‘‚„Ž‹…ˆ’„Š‚„‰‘ˆƒŽ˜|ŠŒs™‰‰‡u‚}‡‡„“‘†Œ„‚~ˆŒ‹„ŽŠŒ†wƒ‡‚€…Œœ‹‡‰ˆ‰‹•Žz‰‡’ˆŠ‚ƒ†ˆ‡zŸ—‚‹‘‘‡–‡ˆŒ•n“‡Œ˜‚Œ‰Šw…‡s|†z|Ž—tކ”‰‘~~„†‘†…ˆwˆ}‰–}~Ž”Œ‹‚„‹|‡ƒ‰“Ž„„„›•Žwy„{ޕГ’‡’€ƒ‰x…†€‡“˜…|‚І•“‹†‘€’ƒ…˜ˆ‘–„wŽ„”–›‘„Š•ƒ†‚ˆ€Ž†Š„„‰‹šŒ“ƒŒƒ€šwЇ“„w‡‰’‘†Ž€Ž„‹‚u‹ˆp~Š”|ˆy„Ž’€“„”|†‹‹‚Ÿ†Œƒˆ‡ˆ{}ƒ’…‰ŒŽ‰‰Œ’“Ž€€–~›…œ‚~”{ˆ”…–‹‘–˜iŠŒ„ŸŠ}‹‹•~Š‘ƒŠx‰…žw€…„„…ƒƒˆ‹‹Œ‹t‰‡Š}ˆ•xoˆ‰–š}€‰™‡x„‚Œ’ˆ|…‰“–˜mytˆ€‰‹†‘’–…†€ˆ—rƒr|‚‡’‡vxy‹ˆ‹““„€y›‡…˜‰›‚™~“†˜‰˜ŽŒŒ“m„ˆ†„’ƒ‹{‚˜’Œ‡†‰‘„ƒ…wx˜††›Œ}‡{˜Š™ƒˆ’Љ‹|u|‹š{›{‰…‘ƒ†‹‡Œ„}‡}ˆ‘€‡†ˆƒƒŒŠ‡†…„–‘†ŠŠ˜…Š„‹‹†Šz†ƒ‡‹{±Ž‹{‰…‹„“„|…†„†ƒŒyrˆŠƒ†ŠŽ…^‡ƒw–Ž~™’‡‡†uŽ{ƒ…Ž…}ˆŠ‹Ž’}yީЛ“Œ‡ˆ„Šž†‰ƒ””„ˆ‚ˆ‹|‹†Ž‡t€Š†Œ‰…„{—ƒ„{€Ž“’—w€}€|‰„–zŒ €oŠŠ€‰‡“ŠŽŠ‹}–Ž‘|Ž‹’ˆŽ‰m‚ƒƒ}~x}}‰Š‰‚Œ–}rƒ„~z€y“Ž€ˆŠx‘†’Œ{}Œ‰xŽ‚šŠ†‰€†…ƒ›”††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‰’€‹Œ…Ž‹t’’…Œ‹…‚‹wŽ…”Œˆ‹—š’„‹‘ƒzˆƒ‡„|Ÿ“}ŒƒŽŽ’…‹Ž…mƒ‡‹ˆ˜’€‹„‚”u|„c‹|v{œr“‹„‹—‡|Š~Œ“‹ˆv‰„„}Œ”o€›‡™Œ™“€ŠŽ~ƒˆ’“„ƒˆ‹†šyˆŒ|€Šy„އ‘’”‹”„Š’{uŽ”„‡—|„އ~ƒoŒ„•†ˆ„t›€‹Š™’”„„›‰‹š‹ƒ‚Œˆ†™‰Šƒ…މ‰‹”}ˆ‰u•w„ƒœt‘”‚}‘„–”•|•‘ˆˆŒŠu††ŽtŠ”}ŒŠ–ŒŽˆ™Œƒ•{“‚„–ƒ‚‰uˆ‡{~‚ŽŽŠƒ……ˆ††‘”Šy‡‘|–‹‹‘†ˆƒŽ‰”ˆ‚›•’Ž‘œp–Œ†•‹‚“‡‡†ƒ†ŒrŒ‡s~‹Ž€„}‚š‹‘ŒŠx“ƒ„ƒŠ”||‹ˆ“€‹„~–‰{‰Œ„|xˆ—’’~…t†ƒ‹†‘”‹‹„ˆx‚}}ˆ‹–‚•vsŠ}…‹„Ž—˜l”|Œ‰•€“€“„އ†‹Šu‡†Š£’‡ˆ~‘Œ˜‰‚‰„…|‘ww˜‰‘ƒ„u–‚šx‚‹‰…™Šƒz‚‡Ž|…—}—„—{ƒ’Šx„‚Ÿ‰Žw“Љy„ŒŽ†”‹‹~‡’Œ}‰——‰‹Ž‘‹ˆƒŽ‡”…Œ•ž’‡‹‘…~‘‰ŒŠ‘“ˆ††€‹ˆ–œƒƒ…‰ˆu}‹•“ƒw‰…ŽŠ‰Š‡~†’‚‰…Ž{…‹“‘‡ŽŒ~–vŒ–„|•‹|y†‚~œ”†‰™|‡ƒ”’“€‘‡‚ˆ„އ™}™‡‰Žƒ‡~ŒŠˆ}–~“„˜‹ŒŠ‹{„™‰Ž‰‡‡‘„”Žˆ„‘€‰ƒŠy‡s‡Œ…€Šˆ‚‹Œ…t‰‡ˆ‡€z‹“…|‰“ˆŽˆ•ˆŒŠ‹€…yŒ•‡‡ŒƒŽp}Žˆz•†Š„t•~…“’’€}{‰ŠŠŒ—Œ{Š–‚œŠ”|„ƒˆ€‹ˆ‰™”‡–‡„€n„Š|‰}ƒ‘¢Œ‰‡…Ž~˜k”ˆ‹ƒ|‹ˆƒƒ‚’›’ˆ‰v‹}„†“Ži‚‡“‘€‡’˜}‰’ƒ‘ƒˆŽ›–’…†{Ž…˜y|Œ…‹Š‰ˆ¡vŒ‰r}|Ї~|–vz“‡•—Š~l•›“ˆŽ‘xŠ’Š}Œ„…Œ„‡˜…ˆ‘Š„p‹Œ’Œ„‚‚…‚s–w{ŠŠ†‡Š„ˆ†‰™Œˆ•ƒ‹Ž‡•‚‹~›Šu‹”•ކŽz|š†€•x€ŠmŒ…Œx{~}ˆ~ˆ‹‹ŒŠ‚††~ˆ~†ƒ~††Š‚‡Š‹|‰‡Ž‰ˆ}ƒˆŒƒƒ{‚|}Œ†ƒŒšz‘”„‹Ž‘{z„s„…„ˆ‹Œ‰„}€|Šœ|’~Š‹…ŠŒywŠŠ•~†s–}’‹Œ–}|{‰ƒˆ…€~…{}Žu‡Š…z~}t‘†Ž‡‰€—ƒ~‡”„{‡†~Šš—‹Šz„„‹‚–Œ†ƒx‹‰€Šq“‹sˆw‰‡ƒ…x‡ˆ™z’„ˆˆ}–Šƒˆy†•ƒš‹…}ˆ„‘‹mz†€}ŠŠ‹Š˜Ÿ‚{…‹Œ~ˆ|nŒ‘‡yˆ•Ї’‘Žz“Š‘Š‡ŽŒˆ}{•’‹|‹Š–•ˆ•‘‹…†•†‘Šƒ‰††Šz”Ž‹‘‰ƒ}€Ž–ˆ‘’†ˆ‡‹‰t†ˆ“Œ‘ƒ‚Œ‡ˆƒ‡{”ˆ•„ŠŠ“~ŠŒ~‡‘Ї‰ƒˆ€ŒyˆŠ……~‘‰Š||ŒŠ‚ŸŒ‚|¡€“Œ}Š˜Ž”‚ŠŒ~Ї‹€„“ˆƒ€Œ‡ƒ•‡„“ŽŠ”‰‹‰ˆ~Š…’ˆ”‹ŒŠ‹•‘‰ˆz†Š‹~ˆˆ‡Ž‘‰Š„‡•‚‡…ƒƒ‹‘„€ƒ‰‘ƒ‰„Ž—ƒ‘އ„‹•†„‹‘t‰„†‹€Œ‹‚Š‹ŒŒ††‹„„„‡v…ƒƒƒˆŽ‡„‰†‚†€ƒ‰†‚ˆ„˜†…‡Š‡|„ƒˆ…‡‚‰‚‰†‡ƒŠ†‚‡„ˆ„„„Š€ƒ„††ˆ~‰…‰†ˆ€†ƒ†Œˆ„†…†ˆ‡…ˆ††‹‚„‹………‚…„~ˆ‡ƒ…‡ƒ‡‡„…”„ˆ„‡ˆ…‡‡††…‰‰ƒŒ‹ˆŠƒŒ†‹€‡ƒ‚‡€††‹‚„Œ€‰Œ‚‚‡‚ƒ„}††Œ€ˆˆ‚„ƒzˆ…‹„€‚…ƒŠ„…}…‚…ˆ„…ŠŠ†„ƒ††‚‹‡…‡……‰€ƒ„†Œƒ…ƒ‹†|‹‰„‰†€Š‡Žƒƒ„ƒˆŽ…†‰„Œ†ƒ‡‹€‰‡‹‹Š‡‡Š‘‹‰‰|™‰ŒŒ…ˆ‰€‚}Œ~ˆŠŠ”ˆ‹ŽŠ‡Œ…“„‰„…Љ‰‹‡|”‰Œ‰ˆƒ‰s‹€ŒŠŽ€‹ŽƒŠxŠ•ƒŠ…Ї…†‹Œ„Šw•„’€‡’„„‡‹…•“Œ‡ƒ–‹~‚„…–v…‰†Š~‹†—‚{‡„†œ…wœŒŒ~ ”‹—Ž‹‡‡ˆ€…ˆŒŽ…‰Œ‚‡Š‰‰™‰ŠŒ’~“Œ‡‰†}‰‹Œ’‰Œ„‹Š”‰ˆ„ƒ‰œŒ}‡‹ŽŽ„‚Ž‹‡‹|‚†‡Œ‹~ˆŽ‘‚‹Šˆ•‹Œ†Š‡‰ƒ‹‘‡€ƒ…ŽsŽ|€‰„…Švp•އ„šˆX…‡„ª€ƒ’†r†™ƒ‰}‚w~“†ˆ‚uŽ…‡{€Ÿ}œŒˆ‹Ž„„‚wŒ‚}ƒŠ€jŽ~Š…Œ„ˆ„‰|‚s‰…yœ”‡ˆ„‡•‚„ƒ‚Œ‚z†Ž‚Q‡™ˆ„‚ƒ‰‘ƒ…„†Œ‚§ƒ‚‚‹~‰{Š‚‡ˆƒ“~„z}‚Ž…}””}~zŒ}€‚‚€yrƒ‡–‚p„„†w‹†z„{~…|‰}‘†ƒ•†‚ˆ‹vŠ‹…€ˆ‚…w…€„‘—|„yŽy‡€…‰Ž‘ƒ€¦„€†}…†}›……Š‹‚…qƒŠ†~„‡z€…mŠ„‰‡ˆ“‚ƒz|–|ˆŒ‹“†ƒŽ‚ƒ“†‚Œ€…tƒŒŽ„‰w{Œ‚|—„‰‚„x…{y€€Œ‹‰‹‰‰‘z‹€‡||‹„‚x}Šˆ•r|„‰‹„Œxƒ‡ƒŠ|ysŽŠs…ˆ…‰yy‹‘vs}ƒ†Œ‹Š†u}ކ€‘Ž|ˆ‹€ˆ|‰ƒ€…„ƒ„ƒ£‹y…Ÿzˆ…„ž‘ˆ€‡—rŠ|}…}‹‰‰‰€‚zxvƒ}…ˆŽ‚ƒŒ”Œ‰€ˆzz‡~‡’€…Š„ƒ†~Œƒy‡{xx…†ƒ…‘„}~‰…†xŠ}}„‡‰‡„{xƒv~ƒ|ˆ„ŽxyЇŒy‰Œz‘Š……‚ŒŒ}Љ‰ŠŠƒŽ’‹‰£Ž†Š…•Ž•‹‹Œ†v•ŠŽ’‹„}‹…ˆ’Ž‹ƒˆ‰z€}–””†zyŽŠ‡…†Œ}Œ‡ŒŒ…„‹’Ž”‡ˆ‰‹Ž~އ‹‚“x‰‚‰ˆ‡‡wzˆƒŽ›‹€užƒŽˆ€Š˜Œ‹Œ‚‰…}ƒ„‡“†ˆ†‡‹†…ƒŠ’x€„˜}ˆŒ”Š‹‹vˆ‘‰Š‘•’†ŽŠŒ”Šƒ‹€‹‚ˆ}ŽŒ‚‡‰ˆŠ…Œƒ„Œ‡‘‡ˆ€‰‘Š€‹•Ž}ˆŒ‚’Žˆ‹‡u…‚’†ˆ‰„z†Ž“Ž~†“ƒ”†‘‡š†‚Š“‡‚‡Š‚•‹‘w…„‡–‹‹’Šˆ‡‰‹‡u–ŒƒŒ‹™†s€‹‡Ž…Œ}‰y‰…“‘ˆ‰€}…‡ƒƒz†}s’ˆ’~’Š‰Šƒ˜ˆ†—‘ˆ‰—}{…‡•~‡Š‡†~w‘ˆv‚‡ŒŒv˜†‹‹’y’”‡œ}ƒ…’„{‡‡‘…‘‰‰ƒŒŽƒ‹•ƒ‡‰Œy•ІŒˆ”uŽŒ‹”“‘„ƒŠˆ™ŠŠ…‡‰›’~Œ˜‰Ž‹ƒ‹ˆ…”x”ˆ…†“†|Œ‹‚‹}ƒ—€Š”˜……Œ—Œ‡ƒ“wŽ‚ƒ™…ˆ†††††…†††††††††††††††††††††††††††††††††††‡‡†††††…††††††††††††††††††††…‡†††ˆ…†††‡††††††…††††††††„……†††…†††††…†‡††‡††…†††…††‡‡††††††††‡††††††††‡††††††…†††…††††…†‡†……††…††††††††‡†††††††‡…††‡†…‡††††…††††††††††††…†††††…†…††……††††††††††‡†…†‡‡†††††††…††††††‡†‡…††‰‘‘uvœƒ€’x‚v—|ޔއ†”~›xŠ™‚‘~„‹Š”„…—™€vŒ€‰Ž‡“€‘Œ„y„w¬‘¤Ÿvlk{š‰‡m•£¢wy˜•‰‹„†„—Ÿ“v{€}}‰‹’‹‡Ž†rŒ—ˆ–y…€s€e–|‰oz{Š£|„‰€t~’Ž’‚~„‘Œ…“i‹‡z“€”‘‚¤zeƒŒ‹uiŒc™}¨x”±‘€‘~”›“t…js‚‘uˆ|± n£š•| — ‹ˆ•pƒ¡…ˆ’ž†…Žƒšr}‡ˆ †ŠaˆŸ{}• ˜~€nzy„–tm–“ƒ‡}t„ƒy‡ˆ‰{’‚‡y‚‚xˆ~‡ˆ‘„Šˆƒ„‰w~~ƒ…xu‚|‡ˆƒ‡p‰Š‚ƒ‚‡}z€|y{†…‰”Ž…ƒ’‹Œˆ‰Š†‚ƒƒ…‹‡Žx}†vƒ€|Šxƒ‰Š~x„x‘o{‚„t‰…ˆ‰‰‹‚“‹{v‡~Š‹„Š„}uyƒ‡†‡’t“ˆ…‘…Ž‚†Š„††‡ª™ƒŠ…ˆŠ~‚‡…Œ’‡zx}‡y}ƒ’ž{‚‰ƒ€z{o‹y††•‡|…†‰‘‘|€…‡y‰|‰‚†x„‰‰…zƒŠx€‚ˆ‚†~„Œ‚„€‹„ˆŠŒ†}~‚xxކ~‚†„€„u}ŸŠ{‘‚‚™ŽŒ~xˆ{…ŒŠs€y€w‘Ž‚‚Žƒx–Ž…‰}}rn™……‡•…†…€Š|x‹Š‰•wƒ|–q†}‹†d’p…ˆ‰{›†w€sš‘œ}‘{~†•n¦…‡|Œˆx˜o‰‰”u~ž}wƒƒŒv‚~~„‚ˆx‡š”zŽzv’zxi‰’‘†”€„ŠŠ‹†ŠtŠ€yo‹„|ˆ„‰‡ƒˆž’z†„…ˆ‰†„…~–‡j†‰‹„˜y…u‹q‘… ˆ{™lŠ“‰…ˆž„}›_ˆ›–}Ž¢‰†‚„œy†£ “˜Œ~‰›z|‚—“~Œ‹†{‚Œv†‚‹„…w„{’t‚’’‰€‹†t¢‡{jƒ‰……~ƒdz‰~„‰|ˆxtr€‰~Š…~q…wxl|Š„™Œƒ™ˆ‡‚}}ˆ…€z‘v‚……•mk{Šzyw|w…‡{ƒ‘|ˆŒ„{n’Š|“y‡x‹…xsu{Švz•†qyzŽ˜Œzƒ”‚…}‡Ž„y~Žªxƒ’„†{›”‰ƒŒ†…w{„ƒw—†€…ƒv‚xŠdn€“‹Œ†‚•‹r‚noˆ|†ƒ{Œ‹Žƒj…‹…ˆm€asŒx|€‰€s‚„ˆ{€}r{†‚oŠx†¬€‘Œz‘‰†‡‚•…‰‚Šy€‚Žo‹|˜‰†‰’†‡ˆ€Œ†—™|x„¡‘ƒƒŒ‹€ˆ…y…}†|¦„s„Œ¤‰€ŠˆŠ‘„‡‘€ŽzŠyŽ…‰„z€’•Ž|}…€ˆ‚‡„‚‰“ˆŒ‡‚…”‡Š…†“|‰„†˜yƒ{…z„…„„‡—Š‚…}‰ˆ“€€ƒhuŽ‹‹Šƒ”˜vq…‚†Œ™ˆzoŽŒ–Ž–‘~ˆ—‰’ŠŽ„’‰•{‰‹†„Š~‹zŠˆ…~{…y†Š‡˜€|‡„Œ‰„†‰q“‰‘ˆŽŒŠ‹‚z~‘v‚š‡}™†{”‚q~ކ}xt‡‹‹‰w{Œ‚‰‡Š}ƒƒƒwŽŽ‘‹ˆ~‘z›““k‹Ž‹ˆ‚‹Žƒyš‘„…‘‰…y‘‹‹o”–„~–‰Š†|Ž~…t•‹‹„|„–„‰}|€xƒƒŒ{•І†Ž™–Œu˜Š‰}…’‘…~“s†‚ކ…‹jЉ–˜†}u™„ˆˆŽ„•‘„‚‹ŠŽ{‰{ˆ„yŠ¡……Š{v‰š“l‡|Ž‚Œ™s‹‰€“’šˆƒ…‹Ž†”ˆŒ„…Šˆ‚ˆŠŒŽ…‹’}—Œ–~†Š{†„‡†•І‹Š’†Œ…Œˆ™„‚{Šzx†“Œ…ŽŠƒ…‰ˆ„ƒŒ‡‡ƒƒ‚ƒˆƒª„…‡‡‘‹‡}†}†…ˆƒ‚Šx“ƒ…†Š„މŒ‰„‰Œˆƒ‰‡‰‹†’‡„‹…Œƒ~‡x‰„€ˆ„‰†„Ž…€‹Š…Љ‡‚”ƒ…‹‹‰}‚‹›Ž‹…€€‡†„€‡‰‘ˆ‡…ˆˆ…ŠŒ†‰Œ†Œ€Šx……„ŒŒ•y„ˆw€|‰”ˆ}‡’†rŠlŽw…‡‹†…‘€sŠƒ‰ƒƒˆ{„„„‰|€„}„…ƒ„ЅІ‚‹Œƒ†…††…ˆ‰…ˆu‚‹~’ˆ…‰‰|‡yŒ‚……Š˜€~‚‚y†€‰|‡}ˆƒ~†ˆ‚ˆ~€x‚“Œ‡‰sŠ‹„†ˆ‹|Ž…‰~‹—“…ƒ‘Œˆ‘އ†‹“‚—›‚“Œ”ƒ—••’’ƒx‘Œ…“€‹„Ї‹‡‹…””ƒ„‡s„Œ‰˜‹~‰…„†‡€ˆ‰‚{v–‰‘‡”“‹šŽ’€‹ƒ……}˜ŒŠx‹~Œ|˜‘‰‡’v†‰„ˆŸ”z•}‹ˆ…€“Œ’{‰–ˆ‹‰†…ƒ™•ƒŽ…Œ}†zˆ‘tˆ‹”ŽŽ‘•{–ƒ†‡Œš‡„‹™‹z”‚‡‚~ˆ‚„Œ„“ˆŠ…”ˆwƒŽƒ€y‡’‰~‹˜Œ}Œ…‡‚š††…•z“‰•††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††~‡n„…œ‚rŒ„‹xŸwyu˜ŽxŒsƒŒ‰‡ˆ”“{¦|ŒŠ~€‡ˆ‚‘…–|„“›‰€„qu•}…³€z€‘ š’‹‰‚Ž„„›’v•}†t{o•Іƒƒ‘¢š–†p“~‡ƒƒŽ‡tq‚–n•xn’“•z†s~z‘˜£‘˜†„”}ކx†‡Š‘‹‹Ž‡zŒs}{ll‘‡ˆ}r“sz•‹™v…l•…ŽŠ‡~y†“‰|Š‹~y„~‚“x|‚Z†Žƒƒz‹†‚{•‚„Œ‘†Š‰Œˆ€u ”Œ„…y¢„‹ŒsŒŒz‡‘Š€{¡{y˜††•ˆŒˆƒŽŽƒŒ‰†€|‚…Š{…‚ˆŒ…‹’Љˆ‰…}ƒˆx„‚•”‰‹t’…‰|‹†t‘‹‚|w‹„‰ƒŸŒqv—Љ…†n‹|‰”Ž}ƒ…‡ˆˆ}‚ž…}Œ„…Š€ˆˆ{…q’~‰ƒ•Ÿƒ‰‹’†…†y™‰x–£xwƒ…‹ ~…ƒy‚Œ“j}ŒŠ‹‡‹†Šu‡„•^Ž‚‰™„˜„{†qˆ‡‹™y•wŒŽ“‚‘“z{ŠyŸ”¡€†…ŒŒŒŽ~z‚„g‚‹Œ…”…w•Œ}ˆkІ•‰x|€x„{ŠŸ’|€|‰z„ŒŒ‡‡ƒ‡ŠŒƒ‰‰Ž‹”Œ‹‹„{†|„«‚Š‚’}Žˆ‰Š{Œƒ”Œ•ƒz…ƒŽ‚—~™’ˆ€“Љƒˆ”p˜‹Œ‘‡‚}‡Žˆ—ˆ—…Œˆ…”šx”„ƒ|ƒ€‰‡ŽŽœˆxއ}ˆ•Š|‘ˆ‹Žšƒ†~{‡˜‚‚…€‚”ƒƒ‚€‰wŠ}‚’…ƒŠ–v‹’Œˆx€ƒv€|……Žƒ…†}t‹’“™–•‡”‹†Ž‰•ƒ‰‚‰ŠŽ†z…†„‹ˆˆy‘‹‹‰Ž†‡ˆ”w‡™Ž„‚–’}†€™ƒ–€‰‹ˆˆ†Œ~ƒ‹…u…”˜‰…˜|~‡Š–‰‹xІ…€„~}~‡‡‡Ž„…‡‡‡ˆ…ˆ…|Ž…Œˆt…„†‘‡Š‚Š…†„€Š‡ƒ~ƒ…€{†…‡”ˆˆ‰…Ž‹‰‹Š„‹‹ƒ}†Š†ˆ‚†ƒ€„•ЇŒŒz“‰rƒ„ˆˆz‡„~…‰†‚†Žƒ…ƒ‹‡„‡Šx‚ˆŒ†…„‹‡†‡˜‰‹‹„‹…ˆŠˆ‰ƒ…’Š„ƒ†ƒ†ˆŽ‹Ž‰„Š‚ˆˆ‰Œ†ƒŠŠ~|}Š{‹•}‰†Œ‹‘Š‹}z‹ˆŠ‰ƒ}Šˆ„Œz…Іƒ…’‡…‡„”~†ƒ…‹Œ€†ˆŠ‰}„‹€ŠŽŠ‰€…’Ž~†€‚€Ž‡‚x‚‹Ž†‹‰€”‹ˆtŠŠ†”ƒ~}Œ‹€ƒˆ•…Œ‡’”†Œ…‹ˆŒ|ŒŽŠ††…ƒ}‹Š€Š‡†zˆˆƒŠŠ‘~„‰‘Œx‡}އ„‚‰Ž†„‰…ˆ†…}–ŠŽ€…Š‘„Œ†”Œ’’Ž…‹‹„Œ‡•s‹x‰‡ˆŒŠsy‘…ž‘‡}•‡Œˆ‡‹’ŽŒ‘Šƒ~Ž‚™‰’†Žƒ†‡~‹†q‚†’|’‰‰Œ‡Œ‘„‹”‹€‘Ž„‘’’‰‹Œ‡‡‡†~‚tŒ‹’€„—†Ž–‹ƒ}…‹Š„†Ž”ŠŒ„‘˜‹ŠˆŠ†‹…Ž‹|Œs“”†ˆŠŒ‘…|€|†„ˆ‰‡Œ‹{ŠŽ‡„†„‚ƒ„ŽŠŽŠ‹†““ƒŠ¡‡“…Œ{ŒŒ‰‹‹Šˆy•ŒŠ‚‹w‡Š…”…‰…‰‰ŽŠ|€…“Ž‘†}“”ŠŠŒŒ„…xŽŒ“ƒ’‚І™„”–ŒŒ„‡…‡€ˆ…z‡‹€…ƒ€…€|……x‹ž‹‹t¤‡‰‘‡†˜„”‚†…|‰ ‚†Žƒ…ˆ’ˆƒ•z‹Œ‰‹‰Ž{ˆŽ†‹Œ‘ЇŒŒ’‰}‡ƒŒˆ‰Œ“‘‹„…‡Š‰…’Š}ˆ‹Š‚‚‰‡•’‰‘™‘…~‚‰‡††ˆ…Žw‰€†’„‹“xk…Š‘‡‹{‹‰“™Œ‰–“†‰…{€™Š‹~‹„~ƒŠŠ†Œ‘zŠ‚‘І—„”‚Ž}w‹Š€”Œ‰‡ƒ’†‘}Š‹‚€~‡j‹‡˜„‡w}zx‘ž€{vˆŒ‡’„…z‰†„…‘‘ƒ…‡ˆw„€†…“tw‡€˜“{j‘~Š”†r’}ˆ•…†Š’š|‰„~…Œƒ‘”Š„ƒ‰xˆŠy‚…t™€~™ƒ„Œt…‘|ŠŠ”•{†‡”‘‹‚‡u†}Ž~‡}ˆŠƒu~ŽŠ‚z|{‡vŒ…ƒ~ˆ‡…‡ƒˆ‰|“{•ˆ‚†–‡‡…q‹~‡†‡y‹†‡ˆ…Ž……ˆ„Š‹’‰Œ†‡…‹‰Œ‹…‡†…’~‡ˆŒ…‰“„‹‡†‡ˆ‰‚ŠŠ‹”‚‹Ž|‰†—Љ’}„ˆ‘Š‚w…“‘‘‰ƒ‹†ƒ†ƒŠˆŠ‚…–…zŽƒ†‹ˆŠŽ†‹Œ‹ƒ‡„‡”„ˆˆ‡{ƒ‹‰ˆ€„~†’†–‡‹ˆŒ†‰}Œ•˜„‚Šƒ†Œ|}ˆ„—‡‡‰‰‹‰Š}‹‡|‹Œ„„ˆ„‰‘‹‡Š‰Œ†~„‰‰–†‚‚“‡‹……†~‚ŽŽ…|€zˆ—ƒ‹‡„ˆŒŒ†Œ•……‹‹“pŠˆŠ†Ž€z‰†~€z‰€††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‹‹~Œ‰†}”„†uuwxzztŒu‚‡ŠŽŒ‡„‡ƒ†‡ˆ‹zwwž”|’’y‡„Št‘Ž„v–‡‹¤‘„„‹¼Ž†y|~Ž‚™„ŒŠn‰‘ƒ}‚„‘„y…„¡‹u~‹†}†•ˆzŠ‘œ€tv‚”‰{†ƒ‰wnƒ‹Œ~t‰–|‘ˆ’…’——ŽŠŒzŠ£txfm’—v„‚“…u{yv‹š‘ž˜uz•ˆˆ„y‘y‹†ŠŠ‘‘–……’wŒ‚…Š›xq‚ˆ”v…€„’|ŽŽ}•……v~dŒŠ†‹Ž“†‰ky˜…Ї”nœ‡v«…‡ˆ‹‚ŒŒ…Œ…‚„ƒ‡†Œ€Œ‡„‚‡ŽšŽ‡…ƒŽ…Œ†y†˜ƒŒ€…‡ŠŽ„~š„„Ž„€ƒ€}…†‘„ŒŠ…Œƒƒ†œˆƒ‡‡€~}’‚xŠŠ‚~ƒ‘€ƒ˜‡‚ˆ‘vƒ|†Š{„~€ƒ€Šž…ˆˆ|„†„‰‚‡~}ŠˆŽŠ‚„ˆ…|}”™ŠŠ†ˆˆ}yz„„‘ {‡‘Œv…Ї€|•…|€”‰‰…”z‰‹}‚ŒŒ†ˆ{‰ŠˆŠ‹‰Œ‡“Žˆ†|€€~……ŒˆŠ†}’„‰Š‰†ˆ†~y‘€~†‹Šƒ‰“††y€Žx‡˜…~Œ”~Œ€|€‹}‹}”€ˆw~y•ŠŠh}‹„Šx†{t‡’€{ˆ‡{|ƒŠ†‘…|xn}z—vŠŠz~xl{ƒ„‡…€z‰…”ƒ{Ž…„‰uƒ”oˆ†„ƒxy……œˆzŠzŠ~”|•‚›tƒ€‚|–}‚“€|q€œ‚‹rŽ‘ˆ€w„|u‚”|Ž“}{hˆ“z‡Œ~Œzˆ‰’‘«‡q‡“‰…‹’q…Œ|zux…~’†zˆ„‚…~„“—pv†ˆ…ƒŒz“œ€—ŽŒuŽ˜–’‚{‰€ˆŽ~‡€®~‰Š€ˆŒŽš‚“‚ƒˆ†pˆŠsœŠˆtv†‘w‰‹z‰ƒx‡pˆ”Œ}‡…‡Œ€x~•‚‘‡‚sŒ‰‚Œ†{‹€{|sw€…€||‰ƒ”Ž–‰‰Š ˆŒƒ‘‚‘€Ž{}•‰‰yˆ‰‚‰{~{s~”~p‡q•{ˆ—Žx†ƒx…‰‚zx‰„ˆ{‰…w‹sz––{ƒ€‚nš“¡‘’„‚–•€‡•ˆ‚’Š‹sŒ†Œ|ƒxŒƒ‰€q†˜‚|’~Žp~„—«˜ˆ‰„•”†|ƒŸ‘„}„€•~•xƒs‹‘Ž…w}}yžzp|™†‹•Œ†—‚•~‚ŽmŒ„‚ˆ~{‡{Œvn›k†Šƒ‡€…ˆ‰†‰ƒ†„ˆ†ˆ…††Ž…ƒ…‡…~Œ…‚‡„†……‡…ƒ†ˆ‚„††Š‡‰†‡‹†ƒ…‡………†‰„ˆ‡…|„‚ˆ‚ˆ†Š„ƒ…„‚†„…ˆ‡„†…„އ‡ˆ„‹ŽˆŠŠ††ˆ‡‘†ƒ…‡ˆƒ‡Œ„‡ˆ†ˆ…†„‡ƒ…‚…ˆ‚…„‰ƒ„‡‡ƒƒ†|ˆ†€ˆ…†„…ˆŠ‚ƒˆ‡€‡†ƒŠ‚ƒ‰ˆ„ƒ„ƒˆ‚‚‰‡‡†„†„‚…‰ˆ‡‰Š‡‡‡…‘~†‡†‚ˆŒ„…‰ƒ‰„‰ˆ…†ˆƒ‚‰ƒˆŠ„‰‹‚†…ƒ‚‡„„†‰ƒˆˆˆ‡„ˆ‡ƒˆ„‡………‚ƒˆŒ†…ˆ’y†ˆ‰}†|‡ˆˆ€…†~ƒ‰Œ”~„‰‘†ˆ‹{Œ„‹ƒˆ‹z‚‹Šƒ€‡…‚}~†ˆ’‚ˆ„”w–ˆ†’‚ˆ†z„wŒ’‹x‹‹†…Š…ƒ†Šƒ‚€”v…xz†šƒˆŒ†‹Œy…ƒˆ‹…‰ŠwŽƒ™x†‡o–‘…ŠŠ‚…‰…†œ–Ї‘…“‰’“…rƒ–‰„‡zŠ}‚}‡ˆ‹}„‘Œˆ~xŠ…ŽŽ™ˆ…‰ˆ‰‘‡‚‚ŒƒŠ{ˆ€—z†‚„€ƒ‹Šy{’š|†~ŒŽ”ƒŽƒ‹‹y‡‰‘{†‰yˆ|‚z}zz™u† ™x†£„†…‰u‰†x˜sxt“¨‡u‚|ˆŠŠw‹†{–Šˆ‹~ss‹…‘šy”„ˆ“Š}v–—‡€²ŽzЇ¥zˆ‚t~Ž‚‚ƒŒoŽ‹€†“ˆ„–Ÿ’†oy‘|j„„’†–tˆˆ€‰}˜uƒŸ†“r“Šu‡„ƒ‹…„…ƒƒ~y›}|‡cl—ƒŠ†o‹’ur|–‚–Š“‰u|mšŠˆ’ƒ–ˆo|“Œ•|ˆ…‹y“‰}}™‚wq’‚}¦ˆ‘„~ˆƒ•‚†“‹…ˆ„ƒ„i•Žƒ–…‹Š‹‘xo‡x…‹{}{”‚z“…{މ‡‡†x‰…††„ŒŽ…y‰ˆ”‚ƒ|‡~z‘ƒŒˆ“‘ƒŽr‰†‰ŽyŒŽ}…Ž‹…Ž†Ž“Šƒ‘z”›{˜’~‡‚…ˆi…–…|n‰eŠ‚ž–‡}~†~~ˆ…„v–†‡•ˆ‘™Œ‹¥{Š‘ˆ‹Žƒ…‡†‰y‘w”†‚ƒ‹Œ‡œ‡r‹–”„œ“•‘Œ~’˜†“‘™ˆŠ‡‹Št†x–™s‹„‡Œ…„•“ˆ„˜q•Œ†‰{’…}‹Œw“—„’“w‚މ`|l‹¡–…‘”›—€Œ—y‰iƒ|}‚†‚Š„…ŒŽ–†~t{–r•Ž–€|“Œ…‚…r‡s˜œŠ‰yЇ†|Š…€•‰~ŠŒ‡|‡~†ƒxvЇ‚Š‚k‰†|t}~€w}„uxwŒƒ‚Ž€¥Ž‡’‹”€Š‚Žƒ‡‹w…‹„‡tƒ…}ƒ}˜pŠ˜–oz…x”qŠ|„ƒv‘€˜œ‘„z{…ƒw„€~Ž}|tv‚{Œ‹‚ˆg•‰Š“‰“…ˆ“ƒ~‰’¦š‚zlˆ‹”ux‘{‚ˆn‘}{w‹ƒ€ƒ”¤}~{‚u’nŠr„‰‡ˆ‡ž…z•‹~|‚ˆ’t“y{Ÿ{xˆ‡s‹|†r‡z{j‹ˆy‚ЉƒŠˆ„ˆmŠ“Ž}{~~{‰yn”gŠšœ€’‰§’ˆ‡ˆ_„„†‰}wy𢇅…x—–ƒ›…“’†ƒw~†|x˜‹’”’‡ˆŽˆ‰Œ„€š–‚Ž­…tƒ—Ÿ‹Œ’v|‘ˆ“‹‡s‡‚€Œ“¢šr”u€‡”–z…ƒ™ˆŽŒ‹ƒ†’n‹~ƒŒŠ†‡„‚p…„ˆ‘|•ˆŽ‘„…Œ ‹~n†…ƒz’z{€œvs{ƒ…’މuŸŠ“‹ƒ˜„‰ƒuŠ“–v‹ƒw„ˆ‚}œŽ–ŠtŽŽŒ’„Œ”ƒ‚¡…“x„Ž…Ž}f™‹“~Œ˜‹‹†‰x‚u‰”…Š‚ž‰z¦–†šŠ„ª„‰Ÿm…}x„ƒy‚…Š€Š{}‡„…zˆk‚‡Šˆ‚†lŠˆƒz„‹‰ˆƒˆs’u{r~yyt‘ˆs‹“‰ˆ‹‹‰…kv~Ž~€ŠŠŠsyx…‚‹|„v‡}ˆƒxqx•pŒ…w‹q†‰~|ŽŽ”‡‰‡yt†|}Š‹ˆv|x‡‚¢‹~h{~vz†‚“Œ…€‹|¢„‘‚€‚|‹‘€‚™˜tzq|r”y€†x‚|}qƒwƒ|…~x€‹}……y{{‚…{„r‡…‰…nƒŒ‚wz‰–‚s˜€ƒ†€€{„ˆ‹||Œ‚~‚ƒ‚yi~{p‡’|ƒ‚‘Šƒ”ˆŽˆ‘‰‰‚‚Œ™Ž„†“~‡‡Œ†ŽˆqŽ~šˆ…ˆ‰|ˆ~„—‰Œ€‘‘‹’™kˆŠ‹ˆ„’ŒŒ‘Šv‡‡~z†txˆ•iŒ†‹Œ‰wƒ‰’ˆ„…xŒx‰˜szޑޙЅދ‹‚ˆŸ’ˆ€‘š’Š€’uŒw‡•™}އ€‹qŒz–‘{…†Š€ˆmŒ‚‡“™‰Œ–”Œu…ˆ—‡…™„‹Ž‘‡…‹ˆ–’‹‘„„‡…’š†’Š‹‡˜’’€~€„›xyƒ‘…˜‹ˆŽ–‰‰Œˆˆ‡„ˆ…†sŽŠg}“€~†‘}ŒƒŠ†Žƒ††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Š‚mЇ‘†ƒ……ˆ’“ˆ~ƒ„uz…Š‚‰Š‡€‡…“y„…„‡‡ŒŒ…ƒ„y—‘ˆ•Œ†…––“‹“w‡‰‹yƒ…sŒr“†Š‹z‡‰ƒ…œ…’{…‚‚Ž„{yˆ’|•ˆˆƒŽ„ˆ‹{€~~‡‚’pŽzˆ€‰‘ziƒŒ—}†r”€‡‰–„‹Œ‘…ˆ‡„€Žz‰ˆ‡•…€~…†y•r‘yŽŠ‹ˆ‹y…–†‰Œ†™”’‹ˆŒ|‘Š…ˆ~‹€‹ƒˆ‡…‚€€…„„„‹ƒ‹ƒˆ„ƒŠ˜~†ˆ„„Œ‚‹‹Ž…pŠ„xwŽ‚“jr…„}‹r‚~”‹•ˆz…Štˆ€‹……ƒ‰r†Š}‡‹ŠsЉ~‹|‚•„•{Œ|x‰ƒŽ‚ŽŒ„Š””‡ˆŠ‡xˆ‚}„z†sŽŠ}|s‚Š„ˆ˜{„‹z‚‡~~vŽ…„™vŒˆŽ‹’ˆŽ‰|x|„ŠƒŽ‚’lˆ{‚z|u–y’Ž{pt‰‰ˆƒ{†‹–Œ„‹ƒ}y}—ŽsІ‚Œ‡rv~m—o˜‹ƒ~‹ˆ‰Š}†xŠx‚‡€’”ˆ‰‘Œ‡ƒ‹„€‚y‰€Šƒˆ~Š|—š|{ˆ†ˆŒ„~†€yŽ„~‡†Ž†ŠtŒ‹Ž{zsfqwŒ~‡€›xv|€‰ƒ‡‰ˆ‹‡Ž‡…‡‚³}€’‹†‹Š}†tƒ…€ˆ‰’…Œƒ‚~ˆyš’š“‚‹„’{ƒž‰„’–w{ŒŠ—x{¡w‘ƒv|…‰¶y†{„|ƒ‘~†zŒƒŠ€ƒw€†qž{‘Š„ˆ{„r”‚~£{‘‰‡Žƒo„‰†Ž’~s€‘~‡|Œ–‰Œ‡bƒ†Œ…po}‡pHŒjŒ…Žm‹¤‹x›‚Žcˆ™~}Œds’‰h€‰‘‰š{µ–š`…ˆ¢“‚‹‘uœ“wˆˆ……q„™{¢~“™—‹…”=v}”Œy€“xl{‚x•…eŒ‡†{†rl„|…‰ˆ„}…БޑyЇˆ{ŠŒ•‹††€…މ…“€Œ†‹Ž…އ‹‡ˆ…‹†{‘†‹Œ…Œ…}…‚‘‘‡“z…ƒ†z„€””‡ˆƒu‚ˆ„Œ„ˆ‡„–}މ‘€”‡Œ‰Ž‡”‡‡–|„…“y‰—xŠ„…ˆƒƒtŽ~’œ‹|r•„’Ž‚}‘‘•‘“Ž„ƒˆ‰Œ’•„ŠˆŠ„‰…’}“„‹…‰~Œ‚ˆ˜Ž„‡„•‡„…‰‰Š}€†„Œ’ˆ…ƒ‡ˆ„’‡‹‹’Š{†•Œ†ˆƒˆ|ˆ‚…•Œ‚†~‹tŒ…‡Š‹‰‰Š”{ˆ‹‰“Ž~Ž„{𛀅–`›ŒzŸ…‹w“’—ˆx…Ÿv¢ª€v¢•~†‰ƒ‘˜|‰ma”‰m‘nvt‚Š~rœ–{rwln€^‰‰…ˆ†žŠK„wˆ’„„‰˜ƒcƒ‹¢–ƒ’…’Š‹‹†‘‰zœ„‹‘Œ…¨¥xˆ‰ƒ|w~¥ƒ¥–„šz€‰z ƒ‚ž‹„ƒ~Ž|qy’ƒŽ†‹‹‘†‰p‘™Šš›ƒ›šŠœ–ž™—˜y‚wƒ™‹tƒœŠ}®‰o‡ysŸzxwšyŽ—ƒ†•Œ‹´‰‚ƒ•ž£žp‡kqz‡–vj‘}g‰t”Œ‘„”‰ š~„€…ˆ{ƒy|–†‡„‚–€Œ˜–wŠ€ˆžg„‚ƒŒ†‰€†–„x}‰›{„…„l‡ Ÿ‚›œ}~Š€~|•f‰}–ƒŒƒ‡–xŽ|”€‚|—r‚~‹—‹k‘sŒ””ŸŒŒŽŸ“}~Ÿ~Ž~x‹Š”Œ…€…€k‰˜~—™€”t}‹{‰ŠŠ˜zyކsš‰Š”w‰ƒ£‹n‰ˆ‚‡‘–}m‰›ƒ’z”‹”‘v€”•„ƒ€–y‚z—ކœ’•rŠ…ŠŠ†ƒ”ˆ|›|ƒ˜‡}‚Œˆ…‰~˜”ˆŽ Ž‰ŠŠ~zw˜‡™…Ÿ‹Ž“‹ “††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††…††††††††††††††††††††††††††‡†††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††……†††††††††††††††††††…††…†††††††††††††††‡††††††††††††††††††…††‰”~’{—Ї†’€‹€vxv—½Š~…ˆŠ˜‹„‚‘Ž|‰Žw‘z{„•ˆŽ™|Š’‰Š‡w‹‘{•–‚ŽŽ…¢ˆ…Œz‡‚ƒ—€uŒƒx~Ž‹ƒ•«Šu‘r€}’ƒ‡‚‘†˜Šˆš‡Š|”‡ˆ‘˜™“ˆŽ„ˆ{ŒŒ}•…’€…‚u‹¢‚€ˆe‘‚…Š…c‰tˆ—Š˜‘•™u’n‰Š—‡’‘Ž{ŒŒ}‡ }x‚Ž”…Ÿ˜‘q˜Š•†…‘…¢|}‹˜‚‹ˆ}‚‰tš„‘†ŠŒ‡–‰p’„–Š|p“zŸˆŒŠ††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…‹Œ‚~ˆ…‰†‚……‰u‚„„„ˆ­‡…‰ˆˆ‹ƒ††‚ƒ‹„ƒ†wމ{……ŒŠˆŒ‹……‰ƒ‰Ž‡…‡–ˆ…‰„ˆ„…ƒ…}‡ˆˆƒˆ„…„‡Š{ˆ…Šˆ‡ƒ†ˆˆ‡†„Œ†‰…ƒ‰‡‹…‰‡…‡}…„‚Š„†”‡„†‰…„†…†††ˆ†„‚ƒ‡Šƒ„ˆŠ‚„y‹…†ˆƒ„††€wˆ„…~„„‚Œ‰‡“„‡‹„Š„ˆ€|†…‚†~„}ŠŒ‡…‰†‚Œ{††Š‡……„€‡—‡…‰…†ƒ…„†„†ˆŒ……r„ƒ‡†„Š‘}„…~ƒˆ„…|„|†ƒ‡‚…‹‚}†~s{Œ†‘‘s}‹‡„Œ‚‰Š~{˜††Œ‡Šy“…‡Š‹ƒ|“x–x‡ˆ‰„’€‰|“ƒ‡‰„ƒ…‡œˆˆŠ„ŒŠˆv‚Š—ˆˆˆz}‡‹†„¥‡Š~Ž|‡—‘}•–•‡‚’‰‰“ˆ†{…ƒ„‚Œ|‡††”†~{‰ƒ‡š‹–”‡‰ƒ{–‘‰…’w„Š„„ƒ–ƒ”ˆŠƒ‘Ž…’–|“Žz†‘Š…—‹y‘‚‘›“‡—†‰‡€ˆŒ†“‡}Žƒ‰‡ˆ‘žƒ…“}‹˜ŽŽŽŒ€~”БГŒ…Œ€“z“Ž€˜”…†’švŒ‘‘„‰€††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‘‹„x€ˆŽŽ„’Œrމ‡{‹’‹‡—‡€‘“Ž}Žˆ”’…‘ŒŒ’‰‚’’…”‰‘ކЋˆy•Œ‘’y‰‡€†Š‰’‘Œ‡…ƒ‰ˆr€™‹“Žu‡ŒŒŠ‰“„…ˆv•Š’~Šƒˆ‹ŽŽˆ…˜ˆ‡ŒŽ~ˆƒ†}І~ދЅzˆƒ…†›ƒ‡€˜–‹ˆƒ|…€‚”Š“ƒŒ…ƒˆ‚Œ”|‡š…‹‡“Šˆv‘‘Ž””‹ƒ‹Š†‚‰‹‹ŠyŽŠ„‰„ŠŽŠŽ…€„‡†~†‘†ˆŠ“–}‚Šˆ“‹ˆ”’~‡ˆ•xŒŒ‚…ƒw”‘hƒ}˜‚”}“€•|‡ƒ—r›w„“˜Šžƒ ““†š}‡v|—|yy¬”›x‰ƒ‘†Œ}x’Œy zn‡€‹­‡ƒgŠ’ŒqŽš|—ˆ‰ŒŽ „Žz†š”‹wz‡‚„’¤…•‰‰ˆ…’jŠ…†˜|‡‡Ÿ—‡oˆ—‰ƒp„ŒŽƒŽŒ•‡‰”—Ÿz€|an¤t¡{•gˆkˆ‡‰Š‘’•yZ©—{£†‹’s–ž‰‚“¢ƒ†“–zˆ‡‡ƒŠou|}rމ…‡Œuœ}ƒ“q~‰Œwx‹“’©ƒœ•Œ–•qˆt€–ˆ•}ˆ£tƒ˜€‡œ|H„{T‹ª–•’h‡wŽ‚¬”h‚}…vª‹’‹xŠŠŒŒ“q‹…€g¡†„‹s‡ƒ•v}‰„ƒu|•€‡1™•œuƒ†§[ Š“€—˜‡ƒŽžs “u}‘{‡£~|¹ ’‘}ƒsy‰‹œ’…‰d‘v¢…‚œ~„oœ‚~‡Œ†‘k…v}Ÿ†‚ˆ†Šƒ~ˆ‘ryƒŠŽ˜r”˜Œ™†“–˜‹–€jyxZއ”xއ˜Š’†zgyˆ‚}‚‰™|w ’~…t‚{{Œ‹™•‹˜~„y—‡€¡|m€•ƒ‚‹”‘˜¦Ž•zx‹q˜}Ÿy†{«Œ‘œŒƒ€{‡ŠŽ|‹ŠŒ‹ŠŒ’ŠŠ€”žŠ„‹‰ŒŽ†Œ‰Šˆ‡’Œ‘ˆ‹“‚šŠ‡†Žƒz„‰Š‹€ˆˆ‡†ˆ†‰‰›™„†ŠƒŠvv}““†…‚ˆ‚‹”„‚€ˆw“Š’ˆ‰ƒ†‘“’Œˆ‡‘{„‰–†Š†–Œ‚„ƒuŠƒœ|“†„z‘•|…‘‹ƒˆ…‰…š‹“Š„†‰ƒ‹–‰ˆ}‰‰Ž„‹“…Œˆ‚‘•’˜†‚ˆ’‰†ˆ‡‚‰…Œ‰…}ˆˆ‡‡‡Œ~ˆˆ†Ž‡‚{Œ„ƒŽ’x†Ž~Œ‡ŒŒŒˆƒŠu‘ƒ†‡„†xšƒ{€…‰ƒŽv”|xƒµ‡…ˆz‘‹…|‰…Šw‡ˆ…†‰“•}~}†‡…~𔆆ˆŠ}y“†{Ї†ˆˆ•ƒ‹„Š~„…ˆ““yŠv‰rŠ~‰Š„†…z}‘~}Œ†Œ•‹Šƒƒ†•…’ƒw‹“ˆˆŒ˜‡zˆ~z™…Œ……ž’‰™……|nˆ˜‡Œjz†ƒƒ{Žj†ˆm”•’›ŒŒ™”‘ŽŠ™‰ˆ€‰‰„…™‹„€‡€‰‚‰‘Œ„‘”š‹ŽŠŒ‡Œ„‹zŒ—šŒƒ‡~ƒ‹x™~‰ƒ€Ž”„‚v††„†›ƒy¡Š†…ƒ‡˜“„’’s†„Šˆ•…•~„–l—„†w‰„ŽŽ–€†œƒ‹„~Š„„‰‰…z•ƒ€›šy€‰lm‚x‹|u„€ŠŽ…’xŽ|Œ‚v‘hˆ‡”~—‹†…‹§•{ƒt‹†€Œ“ˆvz•šwŒ’ƒ‡•ˆ†…‡Š™{ˆ”‰‡˜˜~‡–„–€v{˜Š—”‘z‡’w‘†ƒ‚ž…˜—n€z‚m‘ˆ—~‰›z„nš Ž‹‰}—›‹‘Šˆ“ƒ„‚‹’‚ˆ‘„ŒŒ}{…j“x}ކ‚–š–‘šƒ„£y–}Žp’‡ˆwv‡z…r‘~Ž‚‰ˆx€x‡†…ˆ~„މ€’Œˆƒ‡‡€„ŽŽ|‡‡‹†…‹‘†ƒ¢ˆ“ƒ“…‡ŠŒŠ‹w•ŽŠ‹Ž†‡ˆˆ‹”ˆŽˆ†‹Šw‚‚–ƒƒ‰‰„…‘ˆ‘|ŒŒ’€‹…Ž€›™‘€—Š„‰‹ˆ€xƒ‹}†Ž„ˆ†‡~}‹‹|Ÿ…~u¡{Šƒ€›’‹Š‚Œ†‡ƒ’‹‡‰Š“‰ˆ…‘}Œ†—{ŒŒˆ…„‡‹}Љ‡Œ„ŽŒ€…šˆ{Œƒ‘†‚ŒŒ‘ŠŠ…„‡Ž†…‰‰Š†Š‚™‡ˆ•–Ž€Œ€Š}‰Š‡ŽŒ|ŠŽs‘ЅІ†††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††…‡†…†††††††††††††††††††††††††††††††††††††††††††††††††…†††††††‡‡†††††††‡†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡‡††††‡†††††††††††††††††††††††††††††††††††††††††††††††††††…ŒŒ†€‰…ˆ…„……‰€‚…………‡™‡…‡‚‡‰„ˆ†„„‡ˆ†ˆ††…†ƒƒ……‰‹…ˆˆˆ‹…††…†‡ˆŒ…ˆ†…„„………‡„ˆˆ„‚„†‡‡‡‚‰……‡‚†……ˆ††ˆ†‚ˆ‡…ˆ…‡†…ˆ…Š…„‡…Š„……‡„‡†‰ˆ……ˆ‰…†„ˆ†††‰ˆ……†‡‰ƒ…Š„‰†‰……†‡†††„†……„‚†„ƒ}……‡ˆ‰†‹ˆˆ€……††ˆ„…††„…‚„„€Š…‡†††„І††‰ˆ…†…ˆ…‰‰…„††‚…ƒ…†‡…„††„„†„…ƒ‡‡†ƒ†‡‰ˆ…………‡‰‡†…ƒ†„ˆ‡Ž…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Šnšy{ˆŽ„‹šuƒ{„“~‚…Žm„yˆ‰u‘Œ~–‹Š’}šz—‡ž¦}„‰‘‚€Ž†–Œ‰‰ˆ•Œnq’ˆ¢rz†˜Š‰ˆ“‘‘‹’€ˆ‹šp~‡†“u…ƒ~€Ž”‘ƒ€…s‡€“™kŒpœ—ƒ„€s˜œ‘„ƒ‰Š‡yƒ…••›o•‚ns‘‹z‘†„„‡Š‘k€„l†„“€‡™wˆƒˆ‚‡‡…Ž„s|”—•†’”yž‹…r‰‡l{Žˆ‚„‰‡rw‡†|}‰„…”~t‰‹ƒ‹’z’Œ‰ƒ„—•€ƒx‘svwŸŒsžy†xЉs•††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††“‡”}•‡•’‰{Œ~ˆˆx™‡”}‹Š†‹‘‘w‚‰›”„‰u†ƒ„Œ‡z˜˜{†—އ‘ˆ”mŽŽ‡}”“Œ“–Ž„Š{{†{zƒ•p–ƒ††ŽŠŠƒ’—’›†tŽ~†{‡•y{’Žˆ‡£…†‰š‡‰|‡—Ž„ˆ‚’~‰r”…z†Œ’‚‰“„~ƒ–t‡‚m~މZ|Œuz¢ƒŒ’—g‰w˜ˆ‚ƒƒ…•€ƒ˜…އ„™“‚‚”‰ƒ¤‰†s—…‰–ˆ•„€„y¤vs}ƒŒ‰—‹’‘y„‘‹ŽŠz™‘šv’lˆœƒp†}‹„Š†Žˆ{}o‘‹Œ†~€†}€‰‘„‰Ž‹ˆ‰ˆƒ|“€ˆ|†Œxw‹†ƒŽ‡u‹‚…|y~”…€‰z{w}’—‰“ˆ†Žˆ–‰ƒ{…‚ƒ|€†‹Š“}‚}š‰”‡˜‚~†Œw‡yކ‡v…š…}„†„|…„}ŠŒŽ„xx‚r}‰žŽ˜“…€ˆ|ˆ…“‰€ƒ‘†—“‹}ˆ‹–†‚†€}‚ƒ•‹‰~‰€€{w‹zŒŠŽ{Œr‰“ƒ‰ƒ‰‚‹‹y‡†‚…}„ˆ‰}}‰‰š†}tŒ…‚Š„”Œ†z…ˆŠ~‰•Št’ˆ†„„q‡€††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡l~”Ž…|€™…„˜|€„ƒzЇsƒ‚|Œ……i‰‹•~Žpx„…„z{z’†€}t‰nrd‰ˆ–„’x…~ip‚†y€€Š”€u…~‡‹tpyŽ‹o„}Šl†tœmŒ|†u‡Š‹xrŽ’p”‰mny‡~yŽ•„“Œl{ˆ’Œ|‹}Žwdzƒy}€}Œ‰“ƒ‹ƒ ˆ„˜i{”|‘˜„…—|€Œkxq}u‘q}‚ƒw‹q”pz|€uƒ€‰™‡”zƒ€pr€qx‹v…‹x‰ŠsƒŽsy|€r‚y€|r‰…‚tn‰y~€Šw~‚…‘‚qŽ„€}vŠˆ‰„‚}…‹}ƒ‰‹|‰‡Œ‚œ†‡„Œ“‚‡‹“‹„„‹‹†–‘‚”†‡Š„„Š…†ƒx˜‰}…ƒ”†tˆ€‘‘…‰—~…ƒ}ƒ~†“Žƒ…ˆrŒ‚‚Œ‚Œ…}Œ‰’|†‚ŽŠ}€ˆ…”‘ˆˆŠ‰}z}ŠŒˆ’u…‰Št”‰o‡Œ{ޛЄtŒ…‘‰~„”Œ•˜ˆŠ“†€€ˆ†“‘†~‹‰‡’Œ‹’‡yŠ“‚Š‹…Ž‚††‹–ˆŠ€ˆ„™~…‰Š˜ˆŠ“……Œ‡Š‰~†ˆƒŒŒ—†ˆ‚‡ŠŠ”Œuˆ’ˆ‚‹–ƒ–Ž…˜ˆ}€‹o…‰‡‚“…}†‹…Š|z†……‚Šˆƒ„™†‡Œ|‚‹‰~€p…‰‚ƒ‚xvv…s|ˆ‡„r‚xtl†„†’…†‰„r‘„…‰}ˆ„|†…~‘qsv‚š‡”r…‡xz‚w–lŒ„ŠnoŽƒ|q‰‹xŽ“yq|Œ„~~”zo€†„wŒ‰x‚†}vzˆ‡}’…{Ž„¬|y†—{€~~““‹ƒ†—‡~|r}w~¦…|‹{Š|n~w}{tƒŒ“’{‰‰}}}yz™}‚‰“ˆˆŽ}~y{z€Š‡Œƒy~‡yŠ{Žvމ|}}ƒ„Šzw…s…xo‹”ˆ‚ˆ•‘Œƒ‰Ž‰~‹Œ‹…ˆ„Žƒ‹‰‘ˆ’ƒ‰•Œ‹Š„Ž‚‰…—‹ˆŠ’€~ŽƒŒŽ‡ŒƒŠ†Š‰Ž•›…‚‹‡Šw~„–…ˆ…|‹‹†‰‹‰˜‚„w…€†††’‚‚{‘„‹€Œ€ƒ‹Šz…’ˆ‚~‡„yˆˆ‰“ˆˆ•€Œ‡‡€ˆ”‘…Š“…ƒ‡†Œ‹Œ~“Š„ƒ†|†ŽŠ…‡{‹‹‰‘…‡•…‰ˆ““………Љ‹ƒ‡…€ˆƒ†“ƒ‹‰†††Ž|~{މ‰†|„Š|Ž’ƒŠ’~ЉЉ‚Œ“x‚ƒ‹‚Œ‡™„Š™—ƒn~Œ‰s¢s€‚s‹nŒzŽu‘‘ƒ™ˆqsƒ‹u‡Œ”„|z›†’}‡„‰Šy‰„…§ž…€¬€€j‹}ž‚‚„Š–‹‚p‚w‡mŒ™swx”~‡Ž›‡ƒˆy„…}€|ty{c”œˆŒˆ‹‚|†~to„–„ˆ{z–~u„—„‡|yš}€€|“Œ­ƒ€v\‡Œ’gˆ|nŽ…™†˜‚†Š~“™…‚{—’‡hƒˆ›”mš~u€vx|q”›sŠˆ‚’~‚ntƒ„bs‰xz”‡ˆƒw‡€…~~q‡~}Š{Œ†›|s™‚…±€††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡x……’Œ…~{}Œ{††ˆ‰†‘†ƒŽˆ‚†Ž}€‡}‚Œyp…ކ…ƒƒuˆŽ…xŠ}…ˆv}xzr‰†ˆ‡‹†„ˆ…ŠŽ„‹ˆ„„‚„€‹‡„“v}…z†‡„x‹’Š‚‡ym‚~…o‰‚ŠŠ‹}’‹|u†™Š†ˆ}™€u}‡€‰„‹}‡‹†{z††Œ€‰…­~”…†‘|xŠŒŠ†Šz†‚€ŒŠ’~…‚†ƒ€„rІ…Žƒ~ŠŠ‹Š“Œ|„ƒ†‚‰‡„ƒ’{„…†…€‚ˆˆ‚€ŽzŒz„…ƒz†‡†„z“|†“ƒ{€Š„y‰†ƒ||ˆn‰v–„€…}‰~‰}”‡‡‘ˆƒ…|‹€Œ€zŒ…}p‹‚~ƒ~k„މzˆ‹Ž|w‡y{l€‰‹‡’“Šˆ‚‘‚Œ{‰~ƒƒ~„†‹qy†{‚Œ‹’xŽ•„€ƒ‘{‡s„p‹Ž‚‹‚€’Žy{‚‚‚‰xŠ|wl}…}}”Žˆ}““€…|“‹“‚€„±~{€’…ŒŒ{—ˆg~‹~€ƒ„{š†’xz€~w{ˆsހІ}Žˆ‰…¡‰…{|}…ƒˆ‡‡……‹‹|ƒŒŒ{} sŠ{~…Žƒ|Š„„€”ƒ}Ž“€~‰‡{€„{|‘z€Œ¤Šˆ™”…s‹qƒ}ŠŠŒuwx•l€zƒ|„ŽŠ„™”›€‰…Žˆ~~“~‰‚ˆˆ™„ƒ™ŠqnŽˆ®zo‰–‘|ŸxšŠ’“†•œ‹r‰s‡“…z††‚†‹}ž’‰h~…{‡š…xކ‚”yŠ}j“…y|}r‚uvœ‰•|œˆw—}~„z„‹‹‹~‘…€˜w‡„cj’‹’Œƒc‡”‚oƒ …–‚‡¤kŠy—ŸŠ„”gŽxŠ™}ˆ|ŠŒnq‹—–ˆ“u‰”{Œzˆ}”}„’Ž…Œ•““’f™’‰‹€–‡’†”v…zv‰‚Žti£}|{–‡…ŸŸ™|ƒzŠˆ­ƒ‘Š}w‹…€‚¡yˆ¬ƒƒ{}|Š‚”…‹…x‡œ’…|q‹Šƒ’‹w{ƒs}£‹ˆz—„§‡Ž𑇓Œuz|†{ƒ—}~ƒ‚¦„˜†|•ˆ‡„ˆ…“ƒ€„u|}‚•…v…‚…t€ƒ†ˆˆ•j}„“ˆ}‘ƒ‚›„……–™~€‰›ƒ€{{~Œ‹|“‘ƒ“vz’x{€„‹ƒ{v€‚Œ††}~y…€yƒz‚€Œ‚„—‚‡ƒw–‡€‹†‡{„z‡y~‡Š„Žˆ€Ÿ{‚ЇŒŠ}„Š‚ˆ††ˆ‡ŒŽ„‡‰Œ‹’ˆˆ…†‹”~ˆ‹†ƒ›…Œ…‡œŽ‹‚}–†‘’}{~”†„ŠŒ†‚}˜‹‰x„††€x…‡–Ž‚{‰ŒˆŽ‰†}z’ƒ‘Ї†˜ƒ€‰—†™„ˆ}|„}Š’lˆ€{ts‚}uŠŒ€›š‰ˆrŠ‚‹‚Ž‹‡†ˆ‚—{ˆ‘œ|…|ƒ|‡…†€‡ˆ€Œ’|‰ˆŒŽ‹„‘x‰•““•€†„‡†‘†–Ž•|‘‚‰€€Š‚„ƒ…ˆˆ}Œ„ˆ‹{Œ’Љ‡“†‚Œzˆz‰€–‡„t‘xz‡ƒ†‡‘‰ssŠ¥’…‡‹qŒ…‚t„ˆƒ”‰Œ{…•ˆ’|Œ‹––Ž“ŽŒh“ŽwŒŒ™‰ŒŽˆŽ€ˆ‡ˆ†‡”’ŽŽŠ˜“Š•tŽƒ‹u¥ŸtŠ€ˆ‘”‰“Œ„ˆ‰z‡™€‚‰‡‡’x‘y{…ˆ‘z†„Š’sƒ†Žˆ~xwŽˆ•…—šv“Š„‰˜„”y”|‰†‰“€Ž}¢’‰“x}ˆ}ˆƒtˆ~Œ•’Œ’–Ž‘Žœ†‰{…Œ–˜“’‹ˆ™}‰n…‡h}‡‚„š€ˆ|Š˜}‚‹‰Šˆ’‡Šˆv‹œ~‡‰š’‚‹“’tœŒˆŒ“‹“ˆ’‹…}ˆ‹}…}{}•™Šˆ‡y‚…ŒŠ‹Œ{¡‚š…‹€„ƒ‡’sŽ’‘€š“ƒŒˆƒr•„ˆ‚…ŠŒ“†ŽŽ…„„z†ŠŽtŒ{‚‘y~‰†Š•“•Œ‘†s‘…†‘‚…y‹’‘yŠƒ•vŒŽ…‡‚Ž…—ˆ„„‡ŽuŒˆ„Š™ˆˆ„ˆƒ‚‡‹x„ƒ~•Ž•n{…ˆn~™‡”€”–|‡†’”ƒ”ˆ‘w“„€ˆ†ˆŒx‚„‹‚|Œš‹ƒ‚w”’“†}†„›wv’“Œ…‡”†’’€¡‹Ž€†{—|‡‰rˆ—z†—†‚w‰|‡€‰{†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††…††††††††††††††††††††††††††††††‡††††††††…††††††††††††††††…†††††††††††††††††††††††††††††††††…†††‡††††‡†††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡‚}‹‹‡†Œ{’‡ƒŽŠŒˆ˜‡„‘‰‚Œ…މˆŠŒ…Š˜Š‡ŽŽ†œŽˆ‚Žƒ{†ˆ‘‹‘o„Œ{}†Š‡›Ž„†‹†puˆ’–ƒƒ‚ˆˆˆ„†…‚•†’‘ˆˆƒ{{‚”Гބ„‹‹€{“Œ|ŽŒ‹‡€’‚…Œƒ‚šŽ{xŽ„„~z‰“ŽŒ‹‡ƒ~x‚‘‡‘“„™ŠŠ„‡‘†‘‚„ŒŽŠ„‡‹‚‡„‹…‘œ~‹’†‚‹ƒ{ŽŠ„Ž‘‘މ‰Œ„……ƒŠ‰ƒ‚qŒ‘„}Ž–Š{‰~…|‹Š‡Ž‘…Œv™ˆ€‰‰|…“†€†‹ƒ‹‰|…ˆ’Œ‡„Ž„Œ‰…’Šƒ…ƒ†Œ’ކ}ŠŒŒ‰‚ˆ’„‹ˆ†‡ƒ‰’Œ‰…Œ‰ƒŠ„‹™ƒ„‡…ˆˆy|‹ŠƒˆŠ‚‹|ˆ†‡‰‰ƒ–Š{†‹†•‹ˆˆŽ‹…ˆ‹ˆ‡}„}€ƒ‚ƒ~Œ‹’…—Žœ¢ˆ“Šƒ‹ˆ„‰‡“ޅކ€‚z•€‡}’z‹—|ŠŽ‚…Љ~‡‰‚‹‡ˆ…†€Š‘”†‰‰Ž‡Žƒƒ„ˆ’ˆš…}ˆ‰Œ|„†ŠŠ‡„ˆˆ…€Œ‚„Œ‡†ˆˆˆ‘‹………ŠŽ‰…ƒŠ‹ƒŠ‡€‚™‚€’Œ˜ˆŒ„‡‡‡€…™ƒ†~‹†š‹“–‡Œˆ€‚…€˜„‚|£Œƒ„‘‘†Š|qˆ†‹ˆ£ˆz„–uŒ‹z†ˆ‚…žtƒ„ƒƒ‹…†Œy…}‡“ƒ…˜Š€œ”Œ|€……v‚Š…ƒ}ˆ’Žœw‚‹wu††…Љ–†™”Š‹{•wxƒm€‘ˆ“‘}’…€rt‹“„—“Šu¡†ŽŽ–‹—~„š}ކ£‹•€Šw‚†‹Œˆ‹|€“™Š‹ŽŠ|‰v’ƒžxŒ™‡|Š|Œ”¥‘‰˜ŒŽ…‚‡‰€|y‡¡z‚—‹Š…‹‰}ˆŒ~Šƒ‹‰ƒ–}†™Œ’†ˆˆ„‚€~ŽŠ}‡Š†•…–„Ї„x„Œ‡„…yƒ†ˆ†x“”ŽˆŠ‘…z‡Œ•‹Š‘ˆ…†…‡ŠyŠ“‡‹‚–ˆ‚~…•‡vŒ†Ž‡“…Œ™ˆu‘”ˆŠŒ‚r†{{†…ˆ‹ƒ‚”x‡ŒŠ›~Š„–Š…’•Œ‡„…‹{Š„‰†“„ˆ“‰|Žƒ…•€‰{Œ‘|Їƒ‘ƒˆƒ•Ž…„‡‰—‡†…œ‰Š‹‘……~Ž‹†‚‹‰‡‹†‡ƒ‰Ž“‡Œ‰‹Œ~‘‹—ƒ†ˆu„Œƒ…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‚y‹€‘~’{‚x~‚‚‚‹Žƒ†„€†‰Šw‚€…ƒŒusš‚ƒ‡€‰Ž‰‡„Š}‘˜‡†w‚wyv†ˆ…—‘„Œz‰“‡‰‡š†xyz„…‡Šz€{w–„’y€„‰€wqƒ‚£r‚†‘’€”‹w†ŽŒ‹†{…„‚w˜~ˆ‘‰zwŒ…m™y—‹~Š|†…„¢ƒ‚‘š}ƒ‡„‹Š|˜’z†{~žŸ~‡‹‰™ƒv‡…€‡†‰zˆƒŽ‹„„‚~„ƒyšxŠ{†’ƒ~|„‹„„€„Žx†Šq~‹ˆ‰‰‚‚‚|€„v„‚ƒw…‹’…~x‰‡~‘|{|u…ƒxyƒ†‡‡„‹€‡Œ|‹†‚Œ€‡r‡…’€€’‰‰†‚†|”„‹Šw‚†Š”Œ‚†{|ˆŠ‚ޓЉ‚•‹Š|~s†‚†{„’…‹w|‡Œ€ˆ{y‹„~Ž‚ƒ“€—’ˆƒŠrŽˆ‡„x€‹Žt”qŽyŽ{ƒ€Žk“’“•ƒ||Œ…š‰z’–r‰ŽŸ‹‚†‚‚‡z‘™ƒŒ†ƒ}‚‡t„‹’t‹‡v‹†‡“r’’Ž‚y˜‹…„ІŒ‰Œ|v€‡ˆ•”Š…€’v‹…{ЉŠx‚Œ†‡v†‰–‡’†ˆx“’•Œx†‰…‚‹~‡—s’€‰’ŒtŒ|‰~š{”~‚…—i‘}‹‚‡‡Œ‡ŽˆšŽz…”–|¢}•‚…Œš™’ƒy˜‰‰„fqŽuƒox|y–›Ž“zˆ’•c˜…ˆ†ƒ—ŠŠ€~Œ˜–ƒˆs…r†ƒ†”y~‰““xŠ}‰”–‡‘y–~‰™›‹€†—€|…‡Š‡‡ƒ‰žq‰ƒqc˜‚“~yx•toy”ˆŽŒšˆ}kŸ™Š‡‡„–t• ŠwІ‡€‰‰Œ‚}ˆ’Š„l‹‘’‹{|„……r‘y†ŽŠ…ކ‹Œ{™™šŒšƒ„’yœ‹uƒ‘—‡z£|yˆ“Ž›Œ…x|™¡„wƒ‹†Œ‹•‡ˆŽ‚††–l’~’ƒ–|zމނˆ‡€Ž€vxu{ƒ€|}|~|mŸ‡Š†€{€€~Œ„‡}Šxx|Šq„‹€†Š{}Š™Œ|y‰~‘sƒv’o‰s„š‰…‡t†‡v{‡‚™…Žˆ£{v—ŒoŒŠ…‚j‚‘}—{{…‡‹Œƒ„ˆ“ŸŽ†ƒƒ‚„Œz‰‘†Š‹w}‚ˆ‰‹}’‰Š…‚|•o~u~ˆƒ€ƒ‘ˆ‡|wƒ…{‰‹…”‰zˆ{‚Š„vv{|”‘}~q„„uˆ‰˜‡†~y„nŽ}‰†uzz}yo}uy›‚‰‰““|Š‚Œ†„…‹•}ƒ„‰z’‡‡Œƒ’–ˆ‹ƒƒŒ‹ˆ~Ÿ†yŒ‹ŠƒŒ˜˜xz‰io‰t‹‹œ~|€ƒƒˆŽ”z‹‡…ƒ‰sˆ‡Šzƒ—‰‹“‘“€‡sˆ‚Œ~“‹‰ˆœ”x‹‚w~„‰‚{‚‘ƒŒ||~~Œ~‡•Ž—‰•—ˆ€’…rz„‹’‰š ‰‹Œ‚sm‹™sŽ’‘…x˜ˆ‘”•Š™‡„–†‚š”–‚‡…‚……ˆ˜œ„ˆ‘ŠŠ}v}›‹r‹˜„ˆŽ•˜–šˆŒ}¡ƒ“†‹„‡u„‘yz˜v}i’™€‹‘}v‹}Ї˜Œˆ’“~“‡Œˆz‡ˆ~€‘‰†|ˆˆ‡†Š‹‚“„‡‰x†‰‰ƒ‰‰ˆˆ…|††~}ˆ‡‘ˆ‰‹zˆŒ†}‰’”‚†ƒ‹Š‘ˆ‹ˆ”‰–‡””ƒŠ‰•ˆ~ˆ‹†‹’’…Œˆ‹ƒ}“u|€†„zŒ†tz’”€‹›€”ŽŽ’‚ƒ–ŽŽž…Œ„ŒŒ|‹Ž“~Š‹}‡Ž‹—ƒŽ{‰‡ˆŽ‡˜„}…”‰“Š‘…„|‡‹š‡Œ‘Ž}‚Œƒ€Š€‡‡Œ‡Ž’ˆƒ–ŒŽ|‹—‘’–‰‚Ž‚„ƒ‰Œ}~‹‡s•}ƒ†”ƒ†‡‡‡†‡††††‡†††††‡††††Š†††‡‡†††††††…‡…‡††††‡†††‰‡††††††‡†††‡ˆ†‡††††‡†‡††…†…‡†††…†‡†‡„†‡……††…‡††††‡‡††‡†‡††††‡‡‡…††‡††††††‡††…‡‡†††††††††††ˆ‡††††‡‡†††……††††…†…†……ˆ…‡††††‡††‡††…††‡…†‡†††††…††††††‡††…†…††‡†…††‡†‡…††‡†††††††††‡††††‡…†…‡‡††††…‡†††…†††…†††††…†…††~~xЉ–xš†‚Œ—”Žoƒ†‡‚xŒ‚ŽxŒ‹n’ƒ„‰Œ‘‡‹ˆƒx‚Šˆ†‡‰Ž€jm‚ŒŽ†‘‰ˆ†‚†‹ˆ‹’ l‰†‰”~ˆ~ƒŽŽ•~„…uŠvŒ€•—~‡‹•‚‘u€‹‘•qŠƒ’†r‹}’¦‰vŠ¡‚xƒ„šŠŽŽ„Š’y˜|”txu†’ŠY–”w‰‹š‡‹™‚š•’‹¢w™Ž”ŒˆŒ€…‹¢†pŒƒ‰Ž…¡†„”˜|…„……—y‡|–‹†˜}ˆŸˆ–ƒ„€‹‰‰¢s‘~n…†t~™|{Ž’†ƒw…‚‹~‡ˆ‚…ƒ‰‡‡Ž’‡ˆ”ŽˆŠ…Šƒ~ŠŒrЉ†‡‰}‹‡Œ“ƒz‚|vŽ‚‡ŠŽ—}ŠŒ„…Œ‰Š„ƒŠ‰ƒ‡xŒ‹~~……–Ž„|‡„ˆxxž~Žr…ŠŒˆ‚Œ|”‡ˆ‚€’ƒy€Œ…ƒ‚†Ž‹y„„z…€zƒ‰š—†‡††„”w‡yž€€€¢‰|ˆ”‰ƒŠ‚Œ‘ˆƒ{Ї„€ˆ†‚ŽxˆvŠŒŽŽ‡‹„Š‹‹†~‰…†‘{Œ„‘Œ‚ˆ–‹…„”„ƒŒ‹…ކv‹†‚‹Š‚Œˆ”†‚ˆŽ‹ƒ”}މ…†ˆ€ˆ„~‰Œ‹ˆ‘~Œ‰}–ŒŠ†Š‰ƒƒ‡Œ|‹“’—‰‹ƒŠ—‹’‡€‹Œ‰ˆ„z–‹ŠˆŽ”€‡{‚‡Œ†“Žˆ€ŠŠ‰w‡‡”Œ‘…~~Žˆ‡ˆ†“‡„„u–ˆ‚ˆŒ“‚…’ƒ‹“‡|‰~…†zŽ{ˆ‡ƒ“€{…†|ˆœ‘|›‡Œ‹‹~Ž–Œ•މ„‡‡ƒ”‰Ž‰‰†Š…ƒ“……“€‰‘”‘Š{ŽŽŠ‘Ž•‘ŠˆŠ‰“‹€‹}‰Œ…Œ‡ŽŒ……€Ž‚Š‹ˆŠ†ƒ„†Œ”Œ„ƒ‘ˆ|Š}“‡•‡ˆ‰™uŽŽƒ‹Ž„ˆ’s†~„Œ‡†‡|~‡‹”……‰†‚„„‰x†~“††ŽŒ‰‹—ƒ˜œ€‘…Žƒ‰’Š„x”{u‚Š‹††Š‰~ŒŠŠŠ†ˆ{y€sЉ|ˆyŠ„‘‚ƒv{…†€‘~‡ƒ†¤„x›‚‡}‰Œ†‚y€ŽŒ‡‘y~Š„xމjŒŽ…{›…}wˆƒ‡„‹‚‰ŽŒ—p‡¦€|‰…‘‡™Ž‹}{ƒ†€‰“}Œ‡Šˆˆƒ’‚ˆŠƒ‘‡‰‚Œ‰z–…‡‰†‹…ƒˆz~…Ž{‹Žx‡‘z‡ƒƒˆ—xt‰†…~Œ…xqƒˆy~Š“‚{€„ˆ‡‡Œˆ…‰ŽŒzŽ‹‹‰„†…€…Š€…Œ‰‹”‚ƒ¡‡‘„Ž€Œ…‹‹ˆ‰”‡y’‡ŠŽŠ‹{ƒ†ˆ‰…†‹ƒŒ‘‰v€„•‘‹ƒ€Ž‹‘‡ˆ‘ƒ‰w‘‹’’ˆŽ‚˜—†Š”ƒ‡€†…‚„‡zˆ…‹‹‡‰ƒ€}‹Š„ŒŸˆ…z¡€ŠŒ‚„‹–‘„Žˆ…‚„‘•…ƒ‡Š‡’…‚ˆŽ‡ˆ–w‹‡ˆ…‚ˆ‘†‹Š„Œ‰…ŽŽ‰{Š‚…І‡†ŒŽ‘Œ€‡‚††„ˆŒŽˆ„„’‰’™–‡Ž€ƒŠ}ˆˆ‰„•‹u’‚‡†}‹‹ˆ~||šŒ‰ƒy†Š‚‰‰Žƒ‰ˆ~‰”‘}Š“ŠƒŒ”‰•‹‘†”‚“Œ“ˆ’’„y’‘’—’‹‹‰‹ŠˆŒ–ŽŽ„‰Št†…‘‰“Š‚y†ƒ‚Š„ŠŒ„ƒy‹‡Ž‰†ˆŽ„‹ˆ‘‰…‘‚‰„‹‹‚‹†ˆ‹ŽyŒ€’‰Š‡†x‚‡‡ŠŸz„˜xŠˆ‚‡˜‘”‚‰„ˆ‰ˆŠ‰…˜“‚‡Š‡}†‹z‚†•|ЇŒŒ’vŽ‘ŒˆŽŽ“z†„–’Љ“‘‚z‡z„„‰Œ‰ƒ†‘ˆ‰xˆ‰ŠŠƒ{†ŒxŽ“Œ‚‰‘€‘ˆ‡’Ž‘wŒ‘ŒŒˆ‰oˆ†—Ž…‰–xŒ„|‡‹“ˆ‡†~™‡‹€”Œ‘ƒŽŒ’‚f‚˜~‡ƒŒŒŒ…|…›Œ™ˆ‹ˆ‘ ‹—Ÿ|ˆŠ…sƒŽ“œ‘‚|…†ƒ˜‡ˆ˜ƒ‰‡„‘~‡‚”y‰‡‘˜ˆ–‡€‰Š‚~—„€}‹Ž€w{—‰†ˆœ‹uŠ”y’}ƒ€–›Ž¢‰v†ˆƒˆŒ•’˜“Œz‡‘ƒ‚‘Œˆ˜|‡”‡„‚ŽŒŒ‰Œ‚‘‚‹Ž’—‡ˆ†}ˆŠ{‚Š‘~‡…ƒ}ˆ†„ƒŠ‚|”‰w„އƒˆ~’u‹˜ˆ“{„Œ‹s’ƒ‡|ƒ††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Œ~“u€’ˆ„–~‡z£’~}ƒ•_}„‡Š‡™†’‰‡ŠŽzš€‹“zv‡{ˆ“’Š–”‡‡“wr’ix—‡‚‡Ž‡£‹ƒŽ†ˆ‰†… {—}Š~…‡…†~ŠŠ–ˆx„z„Š™‚ˆˆš€•”ˆˆ–|„–€…‚ƒ…‹‹‹}‚ˆ{І‚‚Š‹‡…Œˆ~ˆ•z~‰rtŠŠ†w‹¦ssnŒˆ€Œ–†‡nœ‡–“€–‚’~„™…‰€’~‡—‚y„‘„€‘Œ“‡x„ƒz‚‹—}zˆ–ˆƒŠŠ‰‰k ‰†}‘‘Š…~€”w‚ˆ‹“Š¡€v–”‚‰†Ž‰†Šƒ…‚€}…‰}‹‡…ˆŠ’—†‰‡‹†‡ƒvГЄ‰Œ„|€€Ž‚€{€„}y†ˆŒ„ˆ€{|Ž€™}†‰€}{†’ƒxŠ‚|†Ž~Œ‹~…†tˆ…‹„yˆˆuˆ€‡“”ƒ{€‡ŽŒŽ‡‰ƒ{‰‡ˆ€…Œˆz‹•”’|‡‰u€{…ˆ¤|~…v€Ÿr†”ˆ‡Š}ƒ‹ˆƒˆ€Œ}…Œƒu€‡†…•……Š‚“‘‰||x‰ƒ„‰‡ƒŒŒƒ‰‰’|†‚ˆ‰„€‚y‘Œ‡ˆ„ƒƒ~}Œ~—v‚‹ƒŒ}…Š•|Ž||‚…}…”’}•Ž‹ŒŒƒ•‹•„‚’‡Š•ŽyЋޑ†‹‰zš‰††‘Œ˜—„‚yp}†‰„~„ˆˆ…‚…Ž‹ˆ‹€~ƒ”g‹ˆ‡}|‹Œ†‡Ž ‹w‰xЉЀ†”}z~“•—…‚‚ˆ‰…‡‡ƒ˜Š”¢‘~„”€‡~|‚•ˆ™˜ˆŠwˆ’t|†„““}‹‡}y…|Œ‘•›ƒŒt›˜‰™ƒ†•yŠ“‹‚˜–ŠŒ~€††ˆƒ‡‰‘‘–}†€‡}j’u|‡”ƒˆˆ•Œ‡…•Œš’‚ˆ›ˆ”vŠ‘ŠqŒ‰ˆwv’y†vŽŠˆ‡‡x‹‚ŽŠŠy‰“‘rˆƒ~€™˜…€Ž}“ˆ–ŠŠ“’}„‡–†”€€‚}’”ˆ••‚‡„“ƒ€n ˆ†|މ€„Œ¬„–†o|‡Œ}¡s–…‰ˆœ††‰„{”ŒžŒv†t~‚•~†Žƒ|”–„w„”Ї†Š…‰—†Š†|ˆ{Љ‚Œ‹šŒ‚Š’|ŠˆŒ t€Œex…Œ‚„‘ƒhx”‹Œ“ž„Œ‰‘™™€|”‡~‡‰˜€„„†–‡|‚—x—›„–‰‡ˆ†wŠšˆ‚ƒ•„Œ”›Œ”ŒŽ‚‹”u~•ˆwƒ–Œ†’ym“Š‹‰‘‰Ž‰Šƒˆ‰ŒŠ‡Š‡†‰‡†‘†Š‰ƒ…‚“ƒ‡‰…Š’…‡‹‰‡…’Œ‰…Šˆ‡ˆ…Œ€Œ‡Š‹ˆŒ†x”„‡Š‡’‰Š‡‰†z‡€ˆŽ‚Іƒˆ€ˆŒƒxŠ‚‹„€‡†‰x„‘’‹ŠŠ|ŠŠ‚Ž}ŒxŒ†“†|ƒŒŠ‚”‡Ž‡‹†~Œ}•ˆ•ˆŠ‰ƒƒŠ‚ˆ“ˆ‡‰•†‘‹ˆ‡„ˆ‘ˆ“‘‚‘ƒŒ—”ŠŒ’€†ˆŠˆŽŠŠ’…{…ƒ‹€‚ˆ~”‰‹‡†}‰‹‹€€ƒŽ‚‚Š‹ŠŠ‰“’€Ž‡‚ˆ}}ˆ‘x•€Œ†…Œ™ƒy‰”†‰ŠŽ‘†‰“”z•ŒŒ‡ˆy‰ˆ‚‰Š“‹ˆ‡ ‹Œˆ‰š‚•…‰‚†‚ˆˆ†‘Š{•ƒ‰‰„|‚{‡ƒ–‡‹†–‡‡ˆ‡Švˆ‚˜˜‹~ˆ‹„‘„Œ”‚v”Š•…Ž€Œ“Љ—~—ŒŠ|†‰‚‚†{z…‚…ŠŽƒ—|‡†zˆž‹w¦ˆŒ‘„ƒ—†“‹Š‹„‹}ˆ™Š‘ƒzŒ‡„‰–„…—w•†’‰„ŠŽ‰’•—Œ‹‚‘Œ‘‹€~‰’„‚Š““ƒŠyŒ’„…ƒt‹Œ€}“Ž–‡‘ˆ”˜˜†|‚€‹…„ˆŠŽ—r’~ˆ“_zŒmšžŠu€‚yŸw˜„‰u‚yyd‹{Ž„y†‰šŒ„€€itv…lp‰„‡ˆoŽzvbŠ{“r’^‰¥y~„†‚˜•ˆ‰£„Š…ƒ„Šq|‰‘„†–}†” ‰“w}y{~—ƒˆ’‹ys•…Ž„ƒ’t{y‘{…‘Œ}z’‚}‚{Š—…ƒz…‹‹•’‰n‘vy‡~œ‹œ‰ˆz€Œ”~‹ˆs”yŠ†ŠŒ€vyŽ~‡€{€‚“{‘ƒ‚n“ˆ}ln“…•…€„Œ„‡’p’ˆ„~†ŒƒxŠ~„t‘~ˆ‰eƒ•‘mމrŠ}x“™o„…‡…“v…p„rri€”‘Šdˆ‡˜™‹“ˆ“‹§Š|j„Žsqˆ~“˜ƒ|‚‹„‰sŠ‹‹‘ŠŽŒŒxˆzŠ—Ž“›‡‹|‰m‡€‹”w{}˜|‘{‹wv†Žˆ‡—’‰†™…ˆ†›†œŒ‹‘|‘z™Ÿ€‰‰ŒoŠˆ‹~ˆn”~˜Ž‹~~›Ž~›‘s’†|”ˆ‰u†‡“Šœ‚„‡‰‘‡w™Š›—–Œ‰Œ€‘ƒ”‹Žˆ‡~‘ˆ“„…“—x„†}u“‡–‘ž—”ˆ‹’‡‡‚‚v™œš‚‡”…•“‰€||‚|z‚‰ƒ…’‹}|•~‹{•„–ŽŠw}Šyˆ…}}‰„k‡ŽŽƒ„‰††}u{‘ŽŠ‘Š‹€›…‘‚Š›ƒ’‡”y~ŠŒ‹‚Š„|‘†ˆ{Ž–xˆ…ˆ€‹‹‰}{ˆxŒ{‹‰”‡Š†~Œ—ƒˆ†•„Šˆ”Š} ‚ދޖ„”Œ†|Ž…„{Ž‹s‡‚‰‰u}„r‚‚v‚˜†zŽ„”‰Š„ƒ“~‹‡•†z†~€œzŽŒƒ†Šˆ„‡‡ˆ…“zŒ”‰•ˆ‹w•†‰‘{‡‡’ŽŠŒ‚ƒ›Š~ЂЅ„‘ˆˆŠ‡„Š~’“†‡|Œ‡…™†~~ƒ“ˆ‹xЀЖ‡~‰‡‰z€~‚€…‡”ˆy††‹–y‡‹zŽ‡ŠŠ…„ˆŒ”|‰ŽŠŠˆ†Ž›‹ƒŽ€‹Ž‡”†|—„‰ˆ…†Šƒ†‘Ž‹‰…†‡t…™–‹ƒw…ˆˆˆˆ“Žƒy‰’†‰…Š‘}Ž„—†‰‰Š‚‚{‹{Ššs‹„‹‰ˆ€y’‹ƒ‘Š|{™|€†‡–˜‘’“‘‡…‡‡‡‹‘„€‰„ˆŒ{Šˆ›zŽ‘Žˆ‰Ž“‹‹”†Š‚Š‘•‹ŠŠˆ†‰~…ˆ€Œƒ‘Š…†~yމ‡}…‰’Œ†„‘–•€ƒƒ†€Šˆ„ŒŽ{†Ž‘t“‡‡Œ„СހŒ˜™‚x†‹……{Œ„‚Œu~¥“vz„~‹ƒ‚’}m}…‚‡…wœxƒrtš~‰„}~ƒ~w|˜Ž’Œ—¡ƒœ~‹{Ššt€ˆˆ†}xyŒps~‰uvs„yuz‚”Š}„ƒ‰‚xy|‰ƒ‚Œ Šzˆz}‡|‹–{‚–}~ˆŠŒ–†’q‚~‚~‡{’­||‚‰tw‚§zƒ…x…’~…~‰}ƒ‰u…††€nwˆp~v~’‚…x|Š™ŒlŽ„wx’…wˆˆ‚z•‚Žu…€šˆy‚ycˆ{‹w|z}Љ|x}††Š‚‚qoˆu‘zvwƒx}©{††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††“ŽŒ‘•‹Š…|‡…ˆ„„„††‹„„‹ƒ‰~‡‡—‹„ƒ†‰‚’~”Ÿˆ~‡‰r‹Š…–‡…Ž…{‰Š†Œ‰ˆˆˆ’‰ˆ}Š~ˆ‰w‹‹ƒ{…|ƒˆ†Š‹†q‰~‹‡…ƒ‹€††–”v‰‡Œyƒ„š‘ƒ‰‰„Ž”~Š‚ƒ‡€ˆ‹Š‡‰‡ˆ~„ˆz†œŒ’•„†…‹‡†{ˆ€‰‹‡‡•‰‚ŽŠˆ‹Š˜’{Œ‰…ŒŠ…Œ‹~Ž‚ˆ™ŽŒ}‹„ˆ|}˜o‰…ˆˆ‡zŽŠŒ’“\…z—‹†{‹x‰ˆxy’Ž|~€Œš†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Œˆw…š˜†‹•”І}Œ’Ž…™‡‰}‡Œ|އ™—†”‘‹ŠŒs‡‡‘…‡‘˜’„‰Š†}‰ŒŒ•…‹Œ‰‡‹”ˆ‡€‘‡rŒ’ކ…ˆ‚…€…}’†“‚‡z‡•z‰Š„‹‰ŒŽ|“Šy‰‰‡z–‘‡‹zy†…yœ…Š˜„”ˆ‹†‘“•‚Š“„„‡ƒ†‹Œ•Ž“‰~†Œ‘”†‡’ƒ—Ž‹†‰}ˆ’‚“„‘†•…”Š„‘}‚ˆƒƒ„Œ‡‚‰ˆ’‚…~}ŽŒ‚€Œ–|…†‰Ž“{…„”‹ŒŠ„‹u’…Š€u„”xŽ~‚yŠƒ z‰~€“z“…t‰Ž“†ˆ†Œ†…š„‹‰‡z†€Š‡~Žˆˆ„Ž—‰}„‡axŽ}ŠŒŽq†‹…‚}ˆˆŒ‘‰‹‚›qŽ}„”}…”‹‡‡ŽšŽ„‹rŒ‡…}„ŒˆŒŒ’‘•|Žy‹„…‚Œx‡‡“”Ž€ˆ‡‡v}‰ƒ‰‘€Ž‰Š|ŠŽŽ|w€|x”‚™‰†ƒ‰†w{—‹ˆ€”œ”ršŸ‘Œ’ƒ‡{‘”€x€‘‡Œ~ŽŠ„…ˆƒŒ…‡Š—‹„…†€‡{„v‹‰Œ}Œ’€“Œv“’ˆ†Ž†•}yƒŒš|‡x‘r…‹ŠˆŒ††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††lqŒ€•¢Œz‚k…~£s„ƒ’Y„ƒsx~¤Ž—‚’‚‘¨‘z…v]‚y~|‹|‹w‰u{W•wŠt‘f‹ˆ¥€z’‹~’‡ƒŒ‘v‹„‰†x€”‰‹u‹x‘ˆ‰™v‡r€r{–‹‹‰y{‰‡†€ˆ|‚‡ŽdƒŠu‘…|–‘j„ƒŠ„€uŠˆv‚ŠrŽ‘¯…‡}…Ž‚ˆƒ¡…˜Š}|vœ‰qv}„mƒx‡’†‡„ƒ“v”…Œ‰‡š„‚‹ƒ{€‚‡ywrw’€„„wy…‚Šq€‡„s‡Œ…Ž‚Œ†Œy†{pˆ‘‰l‡y‘‰‰ˆ„ˆl”‡ˆ„‹ƒŽ”‰w‰‚†ˆ}ŒŒ†y‘ˆ‰†„І}€ŒŽŒ|ŽŒŽ‹Œ†‰”Œ”ƒˆ†ŽŽ‹…”ˆy•ˆŽ‘‹…„‡‡‡š‹“’ƒ…Š‹Œuˆ†“‘ŽŒƒˆ‰ŽŠŠ‹…Œ}ˆ”‚†ˆ‹ˆ’ˆ•…~‡‰„vˆ‘~‰}ˆ†‡ƒ{}Љžˆ~Ÿ’ƒƒ›‘‘ŠŽ„Œ†ŽŽŠŒˆ‚Œ†€†‘ƒ†…˜z‰Œˆ‡ƒŠŒ„†‘„„…‘”‰‚‹{ˆŠƒ|†…†‹ƒŠ‰„‹…‹‡ƒ…„ƒŠ“‹ˆ‚“–’†Œƒ‰„ˆ…‡Œ‹zŠ“Žu‡†„‚†Ž€‹˜£’‰Š†Œ†ŽŒ—ˆŠˆ‰Œ‚£’£’‡šy‹wwr¢y††€‹Ÿ‹Šš›ˆ‡\zŒ’Œ…“›|†™›§~Žg~˜ƒƒe—b€†ƒ}„lv“ƒŠ“‰jŽm‰x…x›Ÿ‚Œž‘¨šŽ†ˆƒ…€‹’™x¡‚z„€‰ŽŠ“‹„k˜…”|”‘‘€{€™–z{}‰ª‰•†Œxz’š™}£y’’™…ƒˆžyWŒ”ˆˆ‘˜‘„x‹˜„Š‘}Ž‘„}Š‚†Ž…ƒžyš—„„Š—ˆ€u‘•nx’s‹xt‘tz€¢‘}Ÿ‹Œ˜vŽ‰ŠƒzŒŒ|}Ž…u€}‚„‡”’~‘‡”~€Œƒz™…†‘ˆ„‰Œ†‹ƒl›‚‹€§‹€ŒŠŽ¦zŒ…eƒŠ‚‰¡u”„Šˆ•‰€ƒ†ŠŠ‰‘‡sŠu‰—‚ƒ„ƒ””Š|„‚˜‹yƒ“†ƒw„’•Œ x€Š|‰Ž{ˆˆ‘Ž…‹‰„šx{“e|€Œ‚vŽuuŠ‚’Šƒ—Š›}¢—…{“|šƒŽ†”†ˆ†ˆ‘x‚Š‘ŠˆŒ‹Œ£vƒ˜‚„†–~{‚’™ƒŠ•„…ˆ•x„w}‰š€ˆœ}‚–„‹†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††’„sƒ{”„‡˜’lƒŽŸ•‚’ˆ‚ˆŠŽ’Œ†††“Œ‹‰ˆqŽš„‡Œ‹ŒŒ™”Ž‚–{}—…’s‡‹‚ŽŒŒŽ™yzŠp‹•‹†}|†Œy„Œ‹Œ‚‚‘„Ž{‡…†…—–{™”•‹~‚Žx„‰‚‹o„Œ€Š€z…Š’”x€„‘“{‚Ž‚’Œ‚—t€Œ‘‚”…•†ˆƒ„‡{|€ƒˆr‡~Œ‹‡ˆ~…‹{‘Š’œ~|„‘zŠ}“Ž|Žu‘‰Œ‰Šr|ˆ…w€~†‰…~Ž„w…yz’‘˜ƒ”‡‰‰‡†’„†w„Šˆ†‰†„‹z{ƒ‰Ž„†Š€‹…‹ˆ‚Œ‡’Œ€†„yˆ‡Ž†€‡ˆ‰†ƒ‘€ƒˆ„‚Œ‚‹’І„–}x‡‹‰ƒŒ”ˆ€Š{ˆ”‰‡‚‚€‰‡…„oŒ“‘~„z‡Œ†Ž€…‹~{†„”}‚ŠŒ~…Š”…€Ž‡Œ‚…{{{ˆ„‡~“Œxzˆu‚„l‰’•‰twˆ†ŒŒ{‹šs†Š}„ˆ‚ЀЅ}‹~‚„€†…‰v‡‰{†ˆ„yŒ…ˆ’„‹Ž…ˆ…„‡„ƒ}‰…ˆ’ކzŒ‚‰ˆ‘‚|ŠŠ”~…‹Šƒw†ŒŒ†“x–„†€‰”…€Ž‰‰uŠ…‚‡ƒ††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Š…‡}Œ…€ƒzŠ{‡ŽŒ‹’„•‹‚‚‹t‹†~‡„‹}y‰‡‡Šˆz‡ŠŠ‚…ˆ‚…‹‰x†{v‹‚‹|‡Œ„‚‰‹†„‰Šz~ƒ‡‡’z€„……ЉŒ|ƒ‚ƒy{ŽzŒqŠ€ƒ–y‡ƒ{‹‘ŽŒˆ~u‚‚–‰ƒ†‡ˆw€€…Š}}’“}…’€†~ƒ’†‚{˜‡z¤ˆ{‡Ÿ„|~ˆ–‰‚„…—{€}‚{•‚‡Žƒ‰qtŠ}ˆ†‘…€Š~v‘ƒ~Ž”u‡†‰‹{ˆ„‚‰ƒ‚‚}‰Š„…•ƒ‹€ˆƒ‰‚‘€‹Š{„‰Œƒ‚‚}}Ž€w…}‚‰†‰Œ¡ƒ~ˆo~u¬w„ot‚‡•}ŒŠ|Šp„‚„ˆƒ‚|†Š“ˆƒTŠ‚€ym•\}p{v{…‹‡z{§…ˆ—ŒŒ”pp”™†€‰‡ƒ„Žx}Ž‘‡x†rŒz•…i‡wg…€}”m˜†t˜“…˜‡zo„…‘Š‹sŒŠƒp†{“}hq‡u‚u|‹Œˆ~y|»†‡ŽµnŽ~ˆ˜zx§ht{u|w…q‰v{‘uyn{h‡y‚œƒ‡™”s•…po|‰‘Œ‚„swz|……p{‹…~uxx†u—••}|‚x|‡†„zˆ‰„{Šx}}‡]y€ƒruz|Ž„‹†‡‚‚ŒŠ€„’†Œ‚“†‡Œ‹’ŽŠ„‡|ŽˆˆŠŽˆ€Ž ”ˆ…Ž|‡†ƒ‘…ŽŠ~Œ’‚‹xr{‹}„y‚ˆ‚Ž~ˆ„w€ˆ€Žl††ƒŒ‹–~~‰ˆƒ“‹ˆ„z‘†‡€ˆ•‡z‡”‘„ˆŽ…ƒ…Œ‘‹‡ˆ”Š…‡‘…Œ†|Œ™†‰‹…‚„|—{‚‰„‡†ˆ„„€—ˆŽ“ŽŠ‘~–”‹†Š€ƒ‘„}‘vŠ„ƒ‹…Š‚‰ˆ—Š‘u|„|‹u…œ„އ‘‡—…“ƒ™~‰‚ƒŒ†}wˆu„ŠŠy€{Ž„„‹{„Žr‰‚zw„‹Ž‚‚›‰‘™Žx…‹™j„Š‚™}—‡o‡……„•‡unƒƒ“~{€}{y}œ…ƒ‹ˆ|o‰‰yŒ‚x’”mŠoŒŒŠ†sƒ…‡Ž}ƒ{…“‡i…|qƒ{ŠŒx‰€ž““†Ž…‰ƒz‰ˆz€“›ys|ƒˆŽm‹–˜€‘~†ƒ’†|Ž«„…Šƒ‘‡„„…xƒ—Œ—}{…ŠŒ…¢ˆ~†‡Œ}–t‚{‹ˆˆ|’x„ŠŸŽ|~€‚”‡{Ÿ“|„‡Œ†ŽŒuyx¡‚vˆ…„}’…‰š†‰~†‡qˆ‚‘oŠ‚z‚ƒŸ…yxzŒˆ†yƒ‡ƒˆ’‘{Œ€‡‰Ž“Œ‰™‰…ƒ‡“‡ƒˆ‡ŒˆŠŽŽ‰„Šƒ‘„’‡Š‰˜‹‡ˆ‰„yŽ€Œ’‹Šˆ‰Œ~{~”‰Šœ–€†‰‰‡vwŽ˜šˆˆ€Š…‡‡…’…Œw‡“y•Š~†‰ŒŠ““…‘~†ˆŠ|‚‰ƒ‹„{’{~›Œ†…—}•zˆ—†˜“Š•‡‡xˆŽ—†Š—†Š‹‚|“‚•~““€–ƒ‡xŽˆ‰Ž‹“‡Ž‡†Œ–Š|…‰‚”ˆ‚‘”z‚‚‹Š‚{‹‰ŒŒz€’ƒƒˆŠ–ˆ„‰‡ŠŠ‹ˆŽ“|ƒ‡u‘|Š‹‡Š™‹‘Š–ˆo‹ˆ€‚€Œ”†‹ˆ™•˜}ƒ}wƒŒ¢Š©“…‚‰’ˆvŒ‰…„‘‘‰†– |Ž”‘—‚‡ƒtxƒ…‚އВ’“‡f{’w{o•mšŒ‚…}’‘Œ‰–ˆs‘€Š}‡€—Šy‹~ˆ™‘–‰†‹†~|{™““|–•ˆs™ƒ~~p‹„Œ‘Œ›•}”‘pŽ£‡‰‘ˆ‚™†Šš„{y‰yˆ‹‹œ‹V‡|”w€–‘¤…‘…‘‘œ’‹—‰€ŽŠ‡ˆ™†€š‚”—™”~|f§~|އ~›ƒƒ–}–‚ˆŒ™‡Žƒ‰m–}Šk„Œy‚kšz‚€‚}š…Œˆ}•—€”‡‡†Ž€†€„~x‹z”~Š‘…šš”oŒvrŽƒˆu†‡…„„‘†‘ŽŠŽf{–“•ŒŠ†‹…‰o€ˆi‹}~†›uˆ‹„•™¡}†ƒ†„”‘{Іˆx”›‡€ª‘‚‘Œ™’ƒ‡‡|ƒŠ˜†ƒ’{‰€™…‰zŠu‰’Œ‡|…›‹‰‡—e‰†‰‰‘k–Žx‡˜Ž‹‡Љ”„‹‘{™™’Ž˜ƒ}‰§ˆ}’‚Œ—’—„…ƒ†…˜ ‹x”…‰x–‚”|}›ƒ‚–’ŠŽžŽŽ€†’—‡„ƒ‡lŽ‹‹€šxƒ€–ƒ†‡†††‡…‡†‡††‡†††…†††††„††††‡†‡†††††††…††‡…†ˆ†‡……†…†††††††……†…†‡††…†…†††‡†‡ˆ…†…††††…††…††‡……††…††…†„†††‡††††…„…†Š†‰†‡†††‡…††…ˆ†††††…‡‡„†‡†††††††‡‡†…†‡††…††…‡††††‡†…‡…†……„……†…‡ˆ††††‡…†‡…††‡‡††‡…‡ƒ…‡…†ˆ†‡…†‡…†ˆ………‡††……†ˆ†„‡††††…„†…‡‡†‡……†††‡††††††‡†‡†„†††††‡‡ˆ—”z–s˜Œ…}‡{~†|€˜T‰€„x„‡†‹Œ–Š…Ž•–v¥“ƒw„–’ƒ‰“‹†…’†…š‰„m™{†v¡t|…•¥’„ƒ‰ŽzŠ…˜q‘„„„“ˆ•}†‰ˆ‰Ž‹ŠŒt†wŠŒ“Šu‡x‡“‡u‚†ŸŒr„‚“…ƒ|oˆ“”£v~Œ|Š|…‰…†‹Œ‹›x|†xu†–“x{}£€wu…€‰…’…‚x—‘ŒŽ~”x›€‡ }“‰ˆƒ„ŒˆqŠƒ‡’”ˆ|x“Ž€‹‹}‡|šuƒ€˜†……Žƒ‘v•Ÿ’ƒŠ…œ…‡ˆƒ„€v’šŽt™~‡—w‘ˆ‘xŽˆ‡~x„€¦‚ˆƒ“ƒy‘Š}ƒŽŠ†|”p~‹„‡|xˆw‚m›‚|Š‚~pˆutd‰|†…Œx†ƒ‚uƒ†‹|ƒ€wŒ}y†„ˆqsy‡†„q„Šuy‚v™k“…~‡lzŠ|z‹Žy“Œqo}Š…’|wo~ƒ‰yŽ‹Šy…Šƒv~€Š„†ƒ{Š|²‚tœƒ~‰|‹”•‡…ywzp}y{‡›‡ˆ€ˆzˆsww…|ˆ‚r…Š•š€{’{}|€{š€„Š‰‡‚†„€—Žy„}”x}|‘tŽˆx~ˆ†„‰zŒt…Ž|wŽ‘€w…†€zˆƒyrq„‡x‡‘ŒˆŒ„‚„‹‘‹ŽŽ…„‰€’††€Š‡—…Љˆ‚“…‰z‰ŠˆŒ‡ƒ{‘‹…Ž”•†—ŒŒŠˆŽ‡‡‡y‡|‘ŽŠ‰€…’‡|І‘ƒ‚x†„‚†ƒ‰”‚†Œ“—‘†…ŽŠ}‚‡„‹€€}‡‚’‰€“ƒt€‡ˆ•œŠ…€•†Š„ƒŠ‘“”‹€…†‹‡‹†Ž˜€‹ˆ‚€y‰‡••ˆ“}Š‘•„‘“‡ˆŠ‘‰‰‘Ž€…Š’…Ž~†„…‹ŠxІ‚wŠˆŠŽ…“‡†•y’–ЉЋ…‡‘t€‚ˆŽ„ކqŽxŠ„ƒ†ƒu‚ˆz”†˜ƒ–“‚}‰†ˆ}„Œ}Љ…€lƒ‰…ˆ“„‚|‰zv„Œ‰Œ—‰’‹…‡†—‰Ž„‡‚ˆ{‹‹‘‚†}…‹ƒ}…‚„~…y‘t‹‡Žy”z‰‡’“€‡ŒŠ|~{“‡‚„†‹uˆ†‰€z“–}Š€sƒ…†Š€ŽŽ‚¤Œ€ˆ‹|~Žˆ‹‹˜Œ{€y~†¤‡~Œ~~x‰wŒ{‚|ˆ|ˆ‚†—‚~ƒŠŽy‡|‰Šˆz‚„‹„…Œ…ˆ„Žz~‹Š†}}’~€‡€‰ƒŽ—†rƒƒ{ˆ‡Š~nz‘‘ŠŠ•k‰–‘Š’Ž‘‰†wz›•ƒ‰ˆ’Žš†•‹ƒƒ…އ“’…Œƒ„—ƒz•†ŽŒ†“‹€„ŒŠŒ‡}ƒ‰‚‰s‚x˜‹‰||„|„’ƒˆ‰|ˆ{‹‡‹Ї›~‘ƒ—yŽ“‹ˆŒ—}ƒ†’‚€˜~ŒŒŠ€}”Ž…{˜ˆˆŽ’…”Љ‚€•™˜‚Š™‰}†‹‰Š‡Ž…–‰„{ˆz†~”ŠŠˆ~Бޗ’…ˆŠˆŽ|‡Š”Šƒz…Œ“€ˆŽ‡y„zŠ{Š‹‚‡Ž€ˆ„†Œ†€‘„‰~‚‹Š‡‘‰†w‰……‰Œz‡Ž‰y…†“†‰z‡‰‡„Žˆ„‰‰‘‰Š‰Š’ˆ‘Žˆ|ކ“y……‘†Š‹ˆ…}ŒŠ‘ˆ ‰Š•‹ˆ›—‚ŽˆŠv††‹“ˆŒ…€ˆ~y“†ˆŽ„“‹Žˆ†’‚‹„ŒŠ’‰~††y~†‹ˆ„vŒŒ‚…œˆz‰ƒŽ„”—––†“vƒ‡‡Ž††‹”™Žƒˆ‘ƒ€–‘|ŠˆˆŒŒ†‚ŒŒŽ‚†Œ‰†Œ†‡„‡‰•~}‡„}Œ‰…‡}‹ˆ…‹‚‹{ŒŠ†y‹‡ƒ€‰‘‰‰‰“yއ‘Ї‚ŒtŠzˆ‰…†‘“†„ŠŒ‰ˆƒŒ‹wŽŒŒˆ“ˆ‡€ŠˆŽŽ}މޒ†ŒŒŒŒ‰‰”Іދ‹Œ‹‡†Ž‰{•ˆŽˆ‘{Œ„zŠ„ŒˆŽŒ‘‡ˆ‚ˆŠw‚–‘‰Š„‚‹ŠŠ†‰‹‚ˆtŠ’‚Š€ˆŽ€ŒŒŽ•‹Š‹}~‰‡Œ{Œ“†‹”‰€‰€x‰†‡›‹“{˜‡ŒŠ~‰“‹—€Š{Šˆ’‘…ƒ’‚ˆŠƒ‹”‚…~’{’Ž‰ŠŒ|‹‡ŽŽ‘‚ŽŠ…‰“‡…Š…‹‹ˆ‹ƒ†ƒ‰„‡‘‡ˆƒ‚ƒˆ‹ˆ‚~Œ“‰‚‚‹’‘}€‰ŽŠ‹}‡ˆ‘sŒ„Š„‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††“eš{}}t‰’”““‘Šƒ~‹ŽuˆŽ™t„Œ…›u—…Ž”qƒ‰~r”‡†……—”€„p‡‡v‹Žc““|}v›ŠŸ‹u‹m“”{|˜œ‡„|†‡‹r‡‡‘ƒ~“ƒ…š‹Š„¡…‚|‚€——›†‰Š€ˆm‡™Špƒˆˆt† „„…‰˜}‰{‹”……~ijq–iŠŽ y—˜‚‹yŸvžh†Šy…†}®Š”wŒ™ˆ†‚Ÿ~–ˆž„€Œ‚}z}nŠnІ‹–„o‰¬{€•„…m…ƒ•o‡‡˜†™Œ†›…ys˜y‹|‡‘kœn•†ƒƒ‰‹•‡…ˆ™‡„ˆ‹u……„‚… Œƒ‡†Žƒˆ~†ƒ…˜ˆ‡„…†~ƒƒœƒŒ‚~‚‡ƒ†Œ…‰„|q„ˆ‰€ˆ‹‰‰w……‰‚„ˆŠ†…ˆˆˆ‚ˆ‹†™…ƒ‰ƒ„…‚ˆ‚‡„|Š…ƒz‹ƒ†„‡Ž…€„‰„‚Œ†‡…Œ‚t†’}‰‚ƒ”ŠŠ…‡‚ƒ|~‡‚‚‚{ƒƒ€’‚‡ˆˆ‹uˆ‚’Š‚€{„ˆ„†…ƒ~„}„„ˆ‚}…„Š‹ƒ„ƒˆƒ~“……†ƒˆ‰‚‡†Žƒ‰ƒŠ˜‰†{‡z‰‡‡‰ˆˆŽ…ƒ€…Š”„ƒ„‹…ƒ‡‹€‰ˆ††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††…‚™†‚’’…Œƒ‚~‡‹|{…Œ«ˆ…}Š„ˆ~Œ‘yˆ‘ˆ…z–ˆ‰ŠˆŠ…„‹ƒ€ž™™†|q€†’–™„’‰}ƒ†……Šˆu…“Œuˆ~“|{ˆ‚Š“˜šŠ~‡s˜‹…|Œ‘}•†Ž™|Šx’}Ž€‘€ˆ~‘~}ŽŠ•†’ŽƒŒt…‰ƒ†Š…–™ˆ†w‚}Š|•𒉇pŽzˆ‹ˆ›…˜•o”}‘†Œ•…”†‹ˆƒˆ€‹’މ‚z‹‹‚‡Ž Œƒ|Ž¢ˆ‹‡‰‹‚„wŒ‡›Œ{’”ˆ—…‘€‹x•‚•‚‹{‚’y’‚qv†–|„~”—y€‹ˆt“Ї‚xŒ‰€€‡}œ‰‹–†~‹ƒƒ‚—z„„€”|tu‚}ŒŒ†ˆƒ€tƒ‚Œ‘€~~„tyu†…ƒ‰‡‡|‡‹‹|†‰„„†|‚Œ‹s‚ŠŒ|w‰–~€|ƒ}‘n‡}…~u‰…““Œ‡|†‰t‰‡˜‚‰›zu€}‰Š“z’ˆ|€ƒ‡‰‡z‡©š‡„}xz™„‚Ž~†…~Ž…†y{v“rˆu„‰Š‰Š|‡‘~€‰x”…x€ˆy†ƒr†€Š‹vy„y„tŽˆ|ƒ}ƒ—€Š~ŒzŠ”‹{zuzŽˆzˆyƒ“†Œ›“‚“†Œw‰†zz†“ŽŒ…€€Žƒ‰…““†‰Œ‚›ŒŒ†›‚xŒŽ‡…Ÿœ™†~—„o€‰Ž–¦|Œˆ~Œ™Œq‰„wŒˆˆ€qŽ‹ƒ“—Œ™“ˆˆt’€Ž~‹~š~Šrx–†u„ƒŠ{Šuz“ŒŠ“›||‰|‡x„€…Ž“šŽ“††wtœ”“ž€v„…|…s„…™|’›v‹rއ•‘z•‡…’†‹ŽŽ‘ˆˆ|‹ƒ‹”Š„ƒ}œ}Š‹‰†wŒw‚v›…‹”‘‹†›†s‹y¦‡™~›‡„x”ƒ‰}z‰xŠt›ƒ}ŒŒxƒŠ„•‰xž’Œz›‰Ž…Š’^Š…†ˆr„ƒ†Ž™ƒ“š~ˆ“—…ƒ–…ކ†Ž‹‹„ŒŠgt“‰syyŽŽ—yŽ|ˆxŽzœbˆ‡‡‚Œ~x€ƒ†ˆšrˆwƒ„‡Œ˜‰_–~Œ”›“„Ÿ‡‚‹‰Œ‹Š‰”qu€™Œtyœ‚ŽŠ€†…z™”s‚…‚Œƒq“š‡xy{ˆ“—‹’tš•Š†¦š™{~Š‘ƒƒvŠŒˆ~Š“‚‘–|‚‰~w‹€rŒšz}„”‹|˜ˆ’˜šzŽ…—…‡–€ztz†–’{¢yŠ‘š†xœ‹„xŠŠƒ††‚‘“‰s”‹‹‘Œ‹up~zz‘}•™ˆ˜‹‰x|“‰’|ˆ–ŠŠƒ“†Ž‘ƒ}ƒ‚‚„„‰Ž~y‡‘•t‹{Œu’œ„—‰‰‚z‹ŽˆƒƒŠˆŠzŠ•‘¢†z‚•‚Œƒ˜‹}~‚|‹†{Ž…ŽŒ|vŽ—‰{’ƒ‚}“ˆ’’’—‘ƒ‘‡Ž‚‹…‚‘‚Œ‹ˆ“Ž…Šx–y‡„‰ƒ—–Ї‰•†’…ŒxŒ‰Œ‹™‹t†„~Œ…†‡Œ…|{”ˆ„Œ‡ˆ•ŒŽŒ”Œ|‘˜’”ƒˆ’ކ~“Œ€Š’ˆpކ’€Ž‚s|ƒr‰ƒ~‹us}uŒŽŽˆƒˆˆ‚zƒ‚Œ„„ƒŽ‡…„’ƒ†‚އŒx†‰Œ†…{}vЇ„†ˆ›wˆŸ€Œˆ…‚‚‡„‹~Ž„„…~Œ‰€~Š”‰Œ}Œ™‰{Š„’x‰†¡y‚…~”ƒŒŒ…„yŠ“ƒˆˆƒ•‰~‘…}€„yˆ{z‘w„†Ž…‡‰Ž{~‰‡w…v„˜„‘Œ‹†…ˆŒ}šˆˆƒ‡‹ƒŽ‚Šs‘…x€Š|‡‰…ŠŠ‡Š‰™Š‚}™††{Œ…‡€‰‡}}xw‡Ž†yކ“€|‚v…‰š‹†}‹‡z–‚~tˆ…–}…tŒ{zˆ}‰}•Ž€„Š€z‡…€Š|}…z……‹wt~‰Œ‚Œ”ƒ‘ƒu„€€}vt‚}yj”{}†Š…‹{‹…•ŠŠ‚uŠ„„‚‚†š‘€vqw†’€rŠ’„w‹{–q‹…Šur†}ƒ‚ˆ}…Œ‰vy†}~~‚||y…ƒ‰„~ˆ†s‹}p~›‹‡‰ uu‡ŽŽ€’sj–‹’Š„ƒw}Šwx™‡u‡z‰…„‰zƒ|†|w‰w}Ž„Ž|Œ‰‡‹rŽx‡‘‰|‚ˆ‘‰}Ž“Šƒ¡wˆsw‹t†‰ˆt„„…‘|}y‰ƒ‡Š‹}€„€‹x–„„€s…†—kŒv~z‰g„|––ƒŽ„„t|v‰Ž†€‘“‡‰y{ …ƒ‡‹ƒ‘‹ƒwˆyy€œ‚†q‰‰tŒ‚€‚v‹u…‚z‡Œ„{ww‰”Œ}‘|”’}‹ˆv|“u‰ƒ“~ƒ‹†x‹”‡{„yz{ŠŒu‰~‡Šq‘x‚ˆhi…xxk„†”‘ƒ”–}Ž‹‰…„ŽvŠyv“‡ž‹Šsnzj¤‰†}ŽŽ~‡ˆpƒ€z}‰y~…Œ™‹‰}‘ˆŽh†yŽz„q‚€’~ƒ‡™“x„Š}}Š‚jˆ†’‚‡~~Ž…’|‡rzy‰…uŒ†{‹~~ƒ†u~wƒxˆŽ‰ŒŒ~ކ†€‹~‹|€‚‚†‡‹{€y‰{ˆƒ„‹Œ|„||ˆ‹„~Š“ƒ™„–ƒˆ‡Œx€|xŠˆ††‡‹Š‡ƒy{‡|’–|Žt†’ŒxŠyŽo‰‡‹~ŒzŠ{‹“˜|v|•…‰ƒx€‡‡xv“sŠŒŽƒ€v‚…’„……£y~†œƒyŠy{~{—ŽŒ”Š€‡|†ƒ‹˜{{{j…‡yp•‚rŠˆ‡}‡~‡z‰„œ‹™‚‰…‚Ž”ŠŒ‰}Š˜€–¡‹~„І…‰o…~…‚ˆ•…‰—˜ƒ‡~€‰„}„„vˆ…‡{‡wƒx}Љˆ‡“ƒ~†††‰y…‚ˆ„‡t|…„ƒ…}†‚‚‹„}…“‰€t|xx|‚‹ŒƒŽ……†Š„’€ˆ„~†}ƒ„‰‚‹x|~y€u„‚„ˆ~„x–o‰Žr|ˆ‚€ƒ‰ƒ“Œt}‰Œ„ƒ}ƒ„‚rƒ‰†‰‹†ŒŠx„†zy„w‡}Ž{ˆ…ª„‚‹œ‚„}|}‡œ–†|}z~x}€ŸŽ|„…„ˆxq„{Šƒ~ƒŠ‹Œ‚€…|€Šˆ‚‰„€†‰Š€|Љx„‡…„w„Šˆ„w}z€ƒz…z‰€„…‹|{~‹|yˆ{xx††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…ƒ€‘‰ˆ‚zˆ•ˆ†nˆ‹Š‹ƒ‡v†…††…ˆŒ‡Œ“‹‚‹Ž†ƒ…ˆˆ}Ž~Šœ‰„“ƒŒ‰‹Ž‚“‡’‘‹‡‡}~ž…ŒŽƒ„{€‚’ƒ”c~„„”Žž}އ…}uŽ–†™¢‘|‡ƒ‘†‹‹€‰“„€‚v‰}‹…Šq€}‚‡‹‹€‹„‘ŒŽ†…•ˆ ‰ƒ{…‚‹Ÿ†ƒ…wzw|–‚}‰†^‰•ƒ…‚‚›—ƒ‰ˆx „q|§…Œ€‡‹“„‘yg‹…’Žf•ˆ}qŠ}ŠŒƒ’mšxˆƒ†zˆ’ˆˆ†…𔋆~„“‰ƒƒt›†‡¥‹…]zƒ…•s“…‰{€œ‹…‚ˆ„Q††‘|r•v˜Œ…ƒt‹…|i…r‰‹p‡yˆ~y†~€s|W}x„…†‚Žo„s‡‰„|Ÿ†~„}ž|‰q{Ž‚}v‘vƒŽv{|Ÿhz…wox~‹‹‚€‡†|y‹z‰„{Šo{{v‰wœm€†v„އ…z†ˆ…‹|„„n„ƒˆœ‰xŒ‹r’s„Ž}‚r•€‰Š‚z~”|†•€¡Š‡~zy‡„‰v—…w‚~€Š—kŽ…ƒ‹yŠƒ€~xoŽpow„„€…€‡|Š‹“x„„…y…ކ’sƒ~~‡|ƒ—›‡ˆ›ƒ‘‡Ž€’ƒ‹„‚Šžx”‰t‚ˆ™¡–‚‡‰–މ}’ƒ~І‘}“•‰‰‰–†Ž‰t‡†‡‹ˆ‹Œ’}‘{€Šy{‰l“ŽˆŒŠ‰“Љ”…Œƒ…x‡„ˆ‡šyc‘’“•“‡~…Žƒ‡ƒ“Ž|‹Ž‡|††‰Š†‚‰Œ‰Š‹‰‹’ˆy•tƒz‡Œ‡‹’|~†•…“ŠŠsušˆ•Š‡—–ƒ‰‡’ކ‰Œ†‹Š“’‚‡Œ„ŒŽ—Ž“†|‡{•yƒ‹‹ƒš‡ŠŽ‰š–Œ–‘‰ˆ’”Š}’‚t†‹‡ƒ x„†Ž…ކ†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‹}ˆŒ‡‹‹Œ“‰w—‹ˆˆ‰‡‡~~†ŽŒxŠŠ’˜ƒ—•ˆ‹Š„‡“ƒŒ„ƒ‹‰‰ˆ‡Ž‹{•’’‹—‹‡ŽŒ”†Š„‹ˆ†Œv‰‡‘ЉŒ€‹‚ƒˆ–ކ‰u•†”„Š{ƒ–‰—‹y‚“…†ƒ’Œ‚‚Žx…†‡}…ˆ–w}‹‡‡‡†Š¢‹Ž‹––—Š˜‡‚†…†€‹‹‰…†Š‹‹€‹˜ƒŠˆ’ŒŠ‹…ˆw„Š’”ˆ‘ƒ‰Ž‹ƒ‹Ž‘w†…ˆšŒ†‹Š†‘„ˆ€†ˆ‹‚…’ˆ‘ŒŠ†‡•‚“€‘†ˆ’—‹—t‰Žƒˆyˆ‰zƒ„‹‡ˆ‘ŠŽ”|•Љ‡†‰„†|ŽŽ„ŒŒ’Œ‹“ƒŒ‡‹ŽŒ‰ˆz—ŽŒŒ‰€ˆ‹tˆŽŒŽ‰‰…‰v‡–•Ž‚’އ…Š–ˆ„†}“‰’Œƒ‡Žƒ‰„•†”†‰‚ŠŒŽƒŠŒƒ‹|ІŽz~‰‰€ˆˆ€œ…ŽŠŽŒ—‘•Š„‹„‚ƒŒˆŠˆ‡Š†‰„ˆ‘w~–ƒŠ“”Œ‰ŒwˆŽ“Ž’‘†‹†ŒŠ€‹ˆzŒ„‹‡‹‚‹…Š‹‚ˆŒ†‡‚‹…‰“Œ‘„‘•‘‚‚Ž~’‹‚Œ„ˆŒ”w‚ƒƒ†€‹“‰}ˆ”‰Ž…Œ„w•ŒŠ‰„‰‡}€Ž}‹Ž‘…“‹“…‡‘‚‘y‰‹‹‰‡‘„}”ˆŠ‹Ž}…„ƒŽˆŽ’“‚ƒ‡wŠ‚‘‹”‚xŒ‘€ˆ‰Ž†Šz“†~Œ–‰‹š‡Š’‹‚‰ƒ‚‡zŒŒuЉ‹ˆ‰{y‡…‚‡’ƒžƒŽˆŠŽ”‹‘Ž……‹…ކ“Œ‡Ž…ˆƒ‰‘„xŽ•€‡“‰‘‚…~މ‰•Šƒ†‘‰ˆ‹ˆ’„‹ˆx‡€…“ƒ‰–…ހВ}ŽŒƒŠ‹˜‰ƒ‘’“ƒˆŠ{’‡‰Š|‡Š•wŒŽ~‹{…Žˆ~rˆ†ŠŒˆ}†•{ˆˆŠ„}ˆ‡„~Ž’”ƒƒŠŽ‚•±ˆ“ˆz’‘ŒŠ‹’„x•ˆŒŽw‹…€†ˆ‡Œ~…’Œy†‚’‰}Ž”’†€Š‡‚Šx‘‹‚•ƒƒ†‰˜ˆ••€‰€ˆˆ}‘Št‡}ދކ‡…z‡Œ„Žˆ‡wžŠŠŠ‹ˆ‰–Š‘Œ†‰Œ}~‰Žƒ…ކˆˆ‚…ˆ~’•w‘ˆˆ‰Ž”}†“‰ˆŒ‚†“ŒŒ…Ž†Žˆ€€‡Š‹‰‰‡……†„€ƒŽ‹‰‚‰‰Œ’†œŽ‰Ž†‡•ˆ‚Žˆ‡“Œw’€…ˆŽ›~ ‰‚ˆ„’ƒÏ††…w—…†{ˆ‹€‡•’†‚…ˆ…zw‡‹‚‚‚ˆ††…†~‡Œ…ƒ‰xƒ†ƒ‰{…ˆˆ‡~ˆˆ«ˆ‡…‡ƒƒƒ……}‡ƒƒ”‡~€ƒ‡……‰……Šw‚r‡…œ‚…Œf…†„……†„‚…†€‡Š€‘ˆ†„‡~„‚ƒ€„ƒ‚†„‡{€ƒ‡ˆ„‚ˆšƒˆ‚…ˆ†„†„ˆ…‚‹…‡‚‚w„ƒ††…|„ƒ„…ƒ‡„ˆƒ……ƒ„‚‚…‡€†„‡„†…„q„††ƒ…‹‡„……‚„…„ƒ‡~ƒ…ƒƒ„„„‡‚†‚€††…‚†„†„„„‚„„…‰„†–~y„“–ƒ†„Œ„œ’“‰‘„ˆ‡x…†‘|‰‰Œ|~‡’ˆ‰—†‚„Ž|„Œ~Š~uŽŽŽ‡‡ˆ…’ŒŒˆ‘€ž‚ƒ†c‚“Ž‹‹{€ƒx‘—„—ˆzˆu€‡”€|x‘w‰‘Ž}y„z‡{|„ƒ‰‘y‹tˆ†œrr‰•~–‚„n•|„ƒ’…•”“……‹{‚†œ…“ƒ‡qz„‚ˆ€ŒhŽ…‡›„Š€Œ}„“Œ‰‚Š”…Ž™“ˆ…o|~ƒ{„އŒ‡ŠŽwx”‡|„sl‰„zˆ†‰†‘ŠŠŽwz™|ƒŽx‡†…„‘Œj“™|„€†}“„‚‹–•’މ‡|†z|€–™“‚ˆx–„Š‹’•}‰‹’†‡‰y‡‡Œ„„‰–€™w‡nŒ‹Žˆƒ„†”‘’…‡„І•v“ƒ„’u‚•Žˆ‹•”‡œ“„sˆ…„{†“‰‚“”‡“š|•ˆ„…Œƒ‰ŠŒˆ–Šƒ~€†y“t€‹ŠŽˆž„ŠŠˆ‡v€zo…‘~—Šc……j{‹—Ž’˜„v’‘Œ“ŒŠ—˜ŽwŽ–…‡ŒŽ“‹„ˆo–”†‡’™~‘u‰u†Œ“Šw–ƒ”„‰ž|¢ŠŠŠ—…œ‘|Žrœ“‰šy€ŽŽ‡Š‡“†|‹Œ‹…ˆ}€‰†€Œ‹‚‰ƒ{€‰wŠ•‹Ž€Š‰‹ŒŠˆ„~’’wІ…–œ„‚ƒl‘€Œ“€†Ž†‡„„ˆyˆx€”•sŒ•‹|z‚‡‹†…‰y“Š~”’›Œ˜ˆ‰ˆŽwƒ…Œˆz~‚ˆ†—†zŠz„z‰ŠŠ’˜‹“„Œxz‡Ž›†”Œ—„ƒ~xŠ’„’‰Š“}‡Ž‚“‘‰yŽ––˜’…‰‚ƒƒ‹‚‰‡ŠƒŽ’‘І„‚‰xŽ„’‡~‰‰‚‰‘—|Žy–Œ……‘w„ƒ’‰‰{ƒv“‘zˆu›~‘}–‡|‰‰„™•ˆ„šh‘Œ‰‡y‡‹s…ŽwŸužv„}ƒpŽŠ‹‘“™‹|Š…frŽt†n‚‹Œ“š–‘€†ŠŽ}w™gއ‡ˆ‚Žˆˆ‚‘–ƒ‚Š|‚n†zˆ˜¡Ž‡‰…’ŽŠ†Šœ„~„•…‹‘‹¥—{„ˆ‚–Ž~‰–Š…‰…‡Š„‡¡x…yk„“Œm}”…ts”’‚‘‘…Ї—‰Ž•…‰€—}ˆ–‚†ŠŠ†Š“ˆ‰”˜€r”Ž—…†€‹‡‚›z€‹™”Š“•‚”’•’†‰™‘…§ŒsŠ˜Š„‡z‚‡ƒŠŽ‹‡~‰‡ˆ‹ŠŒŽŒŠ†€‹‡‡‰Ž˜x…‚r‹ŒŠ‹…ˆˆ„ЇˆƒŒ‘„ˆŽ‡ˆ‡Œ‹ŽŠ™‰‰Š‡Œ€‡†‹…†‚‹†‹‹Ž‹Œ€~‹’Ž•‚ŽŽ†ˆ“Œ†Š˜‡…‹’Š‘„…Œˆ~Œ‹’Œv’Œˆ~‹Œ‹…‹…ˆ”ŒŠ–‹‡‰}…Љ’†‹‹…ƒŒ‹††ŽŒ•ˆˆ…‡Œ††‹—Š“ˆ„…†‰†“‹Š‰‹…ŒˆŒŒ…ŒˆˆˆŠ“‘‰Ž‰‹Š‰Œ‰’ˆ—Š‹|Š„Œˆˆ‰‰‡ˆŒˆ“Š‘‰‹Š’‹ˆ‡}…ˆ‹…‰‰‹”‡ƒƒ„Ž‚nŒ€}†y„‚zˆŠ†‡“‚‡‹ˆ‡zЇz~Š~š‰†ƒ’ˆŽ…‡…ŒŽ‘~ˆ‘ˆ„Œ†‡Šƒ›•‡‡Ž‹‹€‹‰‰‡ˆŠ‚z†‡€„z‚~‰Œ…‹ƒŽn}†…ˆ”ƒƒ€”‰‡xŒ„’y€…‡‡ŽƒŽ|ƒ›~‹xŠ‘‚†‚†l„Ž~€†xD}‡t‡Šw€r‹Ž›™”£’އˆ}‹‰}‹ˆ„Œm…‰€‹}‚~}‚~ˆŒˆŠ{Ž~Œ€Ž~~}ŽŠ‚i‚‚‡{r†…‰‰ƒ€‘Œ…€‡q‹‚‹ž{™uŠŒ“˜Œs’ˆx‘˜“~މ“„Ї„Žvkw‰~my—†ˆ“€‡€y¢v…’‚…‡h„vuœ–‹~ƒyŽ„xŒˆ‹†r‚”‰‰‰‰x‹zn”x€—}ˆˆ‡ŸŽŒ{lwŠvu‡‚‡ƒ~w‡’xy’z€y‡†‡€“‰‡‰ƒx€‡x{Œƒz~†ˆ…}„Їn–v–Š€y‡†b’jxxjrˆ‹|’v‘~}y‰{‰Œƒ„†‰|{…†„†‡p†‹…{‹p…v„rt{ƒŠ‚}|“‹€Œˆy|‚†|z‰xƒxtxx}‡Œ•‹…†…ŒwyuŒ‚ˆvƒz¡™Š†vm—±iqz‰²–‹•r“‘Žƒƒ”ƒu~Š‚yˆ–‚t…w‚´Žƒ~w‡ƒŽŒ‹{|™–~ˆª}tŒ–s}˜œŠ†u—†f{‘w„†ƒÁ‚‡w…W~Š~}’{‘‡–†‰†Œƒ„~}†œŽxŒ•zІœ„Œ‚w€ƒ¡ˆ‘~p“Œ–Š{”•€z‚|tta^†“„ƒˆ{zy~’’o–ˆ”•y€‚‡_’‚p|ž„‡v~|u‹”“‘ƒ‡ƒ‰v¯¤¡ŒkbŒ‹…‚ˆ‡†z ‡ƒ„”q|‚šyn€zƒ€†Ÿt‹’{Šq—‚„g…zš†ƒ“lƒ‰œ‰“ƒyˆŽ“›|lŒŽ‡‡’ƒˆ‰ŽˆŽŒ‰Œ’ŠŒŽ‘ƒz‰„€tŒ‰‹ˆ„†‚ŒŠ‰†‚Ž“†Œ‚…‹‰…—ŠŠˆˆ‡„‡ˆ’ˆ‡‹ˆ„ˆ}†Œ†„†“~“‚‡ˆ—Œ’ˆŒ|€˜†ƒŽ‰Ž“„„…‘‚‹‡ƒ‹•„w‘‰‰~‹„‡ˆ‹ˆ‡€’’‡„ƒ‡|‚އ‰„‹‡~Œ‘‚‰ƒ„Šˆˆ”Еބ††‡ŽŠŽŽŠ’ƒŠ‡Ž’y…ˆŠŽ‚”ŒŒ„Š‹‡‡Ž„ƒˆˆ~•–Œˆ†ˆƒƒƒ„‹†’‡Ž†…‰†Œ™Œ…Ž~Œ‰„“Š’‚Šˆ‡‡’•™‡|–“‡“yŒ…„„ƒz‰‚Š€„–”‘‰˜ƒ”‘ŒŽ—‡„xŽ…‰ˆr€‡‡Žqˆ—‹Žx„™‰ƒtމ‘‰ˆ‘‹—…v—z‡‡y‚xŠ{‰…’”‹€tv‘ŠŠw†““Š…“‚ˆŒ•‘„˜œ…ˆ|Ž{”…Ž‚ƒ‘Š“{žyŽ’Ž‘“Ž•ƒ’Œ€‰|“yy…•}‹ŽŒ‹z‹„x‚‰Œ‹|–”’{…Ž‚‘‹œ’‘£‰ŽŒŽ}{–Œ„œ„„ƒ¡…ž‡”Œ”yˆ‡…‡ŠŠˆ…š€‹€€‡•ˆ…Œw‰yu€‘™iƒ~ƒƒ|–‘„‡…‡‚”‡‰Œ†Š‘ƒƒ|—‰Š~{‰“™‹‹…w“…‡‡™‡„‚‚’”u‹“‰‡Š’„v‹~Œ‰‡w…ŽŠ•މƒ~ƒkxu‹ƒˆŠv‡‹Ž‹ƒ‚osŠ€Šu–’ˆ”ˆ…‹Œƒ•†Œ„s‹…‰‡ˆŒŽ’Š}‚€„‰†Œ‡„’‡„‹Žƒx“Ž~~ŠŠ˜†‰}„šŽ‘•‰…Œ‘”™‰‰‹‹‘‰Œ…‰Š•‹„’‡~“Ž„ˆ—„‚ŠŽŽŒŠŠ‚††y‚”…‹†‡ƒx•††’‹Š…„‡ŒtŒŒ„†|‹|…‹Œ‰‚†‡€†Š‹Œ…€ŠŽ}€Š‰‡|x†‚s†Š„‰ˆ‹…‰’ЇނŒ†…‡ˆŠ‹ŒŽ•‡‰Œ‹†‡ˆƒ‡‚…‡‰Œ†Œ‘‚ŒŒ|Š‘†‹‰ƒ‹‘‚‹“ŠŽ‰•‹‹ŠŒ’Œ”€‹Œ|‹’…‚††‘ˆw“‘ˆ}ƒ’ˆ„†Ž‹†ˆ‘†€—†Ž|‡…ƒ•‰“ŽŠˆ‚ƒ†‰‰‡‹Šƒ—†ˆ…†„Ž‹‡„ˆ‰Ž‹Ž†’Œ‡ŠˆƒŒ†’Ž„ˆ…Š‹Œ‡Œ‹ŠŠ‡Ž•‹{‰ŽˆŒ‡Œ†‡ŒŠ“Œ„Ž’‘…Œˆ€}ˆ‰‰…Š…Žˆ††††††††††††††††††††††††††‡†††††††††††††††…††††††††††††††††††††…†††‡††††‡‡…†††††…††††††…‡†††††††…†††††††††††…†††††††††††‡………††…†††††……††††††…‡‡††††††‡††††††…†††††‡††††…†‡††…ˆ†††††††‡†††††††…††††††††††…‡†††††††††††††‡††‡‡…††††…††††††‡††††‡……†‡††…†††‡††‡†††††††††…††††‡‡‡††‡†††††††††‡††‡†‡†‡††††††††……†††††……†††††††††‡††‡††‡†‡†††††‡†††…†††………†††††††††††…††††…‡†…†††…‡††††††††††††††‡‡†††…†‡†‡†‡††‡†††„†…††…‡…†‡‡††‡…‡†‡†…†‡†……†††††‡……††‡††††††††††††‡†††……†‡…††‡…†…†‡†††††††……††††……†††………†††…††‡††††…††††††…†‡†‡†ˆ†…††‰‰„‰…ƒ†‹‡†ˆ‹„Їˆ‰‡„‡‡„ƒˆƒƒƒ‹…‚„„ƒ„Š„ˆˆˆzˆˆ‡Œ‹Œˆˆ…†„ƒ‰„ŠƒŠ‡ƒ†„~}zƒ‡†‹ŠŽŠ‚z‡†Š†‘‰…ˆ‰†……ƒ‹Ž‡‚‡‰ŽŒˆ‡†‚ˆŠ…Œr‡‹ˆ‰‡š‡„„ˆ‹…‡‚‰ŽŒ…„€‡Œ†“{‰ˆƒ‰Œwˆ{…‚Šƒƒ‚…‡…‰€ƒ‰†{І†y‡…Œ…ƒˆ‹„„˜‚“ކ‰ƒ‡„‚‰„ˆŒ‹ˆŠ€Œ‰‡“Š…‰މŒƒƒ‡†‚ƒˆˆy€‡…‚‰Š†…‰‰}†„†މƒŒŠ‚Ž–¡’ˆ‰’v›‘‡‹†…Љƒz‘ƒˆx‚„„}‰€‹–’‘˜€|’ƒ™‰…‰„Šˆxvƒ‚“‰€†œ‘Œ„‡‚sƒ}ƒuy”‡–ŒŠ•‡a•wœ„x…ƒ~‘mŒ‚ššou”‚~u–›Šz„†Œ†|‚’{ƒx†Š‡‡~”‘Œ€„€‰‹’Šp“€Š˜Žž‹„yމ}‘”“¤Š{‚w‚‡”‰Žš“ˆy˜–ˆ“Šz˜ƒ–‘‹}—Žp„y”˜‚|‰~†~©ˆ•Š—|Œtƒw•q}¨Š‡†“……ˆŠ…ž’”~€Ž‰‘y|s‰|r‡˜l€†—„“„‰{–‰~†‰Ž‰}‡ˆw†~v…Š„…†˜‹‘šy‚pŒ‚‰~}‘|’~†‚˜—z‡ŽŠx||Šƒ‰~ˆ„q‹†‹™ƒ‘‰…ˆŽ“~•xœ…uˆ’v~ˆ—’x‰nt‰€ˆ{‹”~†„†‡‚‹ŒŒ~”–…‚y‰‰{Œ‚‡Š‘‘‡tŠŽ‰‘ˆ‘Ž”ŠŒŽ‹Œ‘y…’vl‰‰‹Ž…o{ˆ‚o‘‹’‹…‹“’žŒ‰Œ‹’‘Œ‰‘†–ŽŽˆ‰Ž‰†‰Œ‘…sŒ“‰‰‹€yŒv‡‘Œ…‚“’ˆˆ‰}—’Š…‰Šš„™|”’s€ˆ‰†ˆ†ŠŠ‡“Š‹”z„“Š……›w†“ˆ†Œ†}y……ˆyƒŒ‡ŽŸƒ˜™r‚w€“n‹†v{ˆ‰—v‰•…“‰–†‚~™’ŽtŒ˜…‘ƒ‰ˆ“—‡uЇ~|’|•ˆ“ƒ{sކw“‹ˆ‡„Ž}•’zyšš‹‹‰~Œ…€‡‚’…”€‘ƒŠŒŠ”‰”‹ˆŠ’–ŽŒwŽŽˆ†‹Ž‰‡~–‚‹“‘Œ˜ˆš„‰ƒš„Š’…‹…ŠŽБޖБŒ”„z†‰”„ˆœ€€Œuˆ‰Œˆ…“Ž…€x‘Š—ˆš’Žw“‚sŒƒŒƒƒŠ~›‹Ž“Š€…ƒ†‚‹„„ƒ„Žˆ‚†•‹”‡™—“wŒ‘‰rŒ„Œ‹”‚ƒ˜Š‹“ŒŠ“—‡…ˆ|Œ–„Š„—‚„‡ƒ€‰ˆŽ|~”€Ž“Š“Œ†”‹“Œ˜ŠŠˆ‘‹ŠŒˆ{‚•…‹—„†‰‹v”•ˆ|Ž…‰Š‡‚‹…Š”„ŠƒŒ‡’ˆŽŠ‡†…Ї€‹ŠŽ„‘Šƒ‹x‰…•„‡‡†…”‹‰‚Œ’ІˆˆyŠ‹‰ƒ‹Ž‡““‹‰…‹Œ…–‰‘Š”{‘˜Ž‰Ž‰„ЇŒ”ˆ‰Œˆ|Ž›‰‹~—Š’……ƒˆˆu“yŒˆŠŠz„‚…|™w|‚i}wwx€…Š}tx‹€“ˆ‚v{~‰‰}„ŒŠ”•’‰{“…‚‰…Š–~‡m…†—„ŒwŠ„‡zˆƒ†„‹™xŒŠ…‹w‡‡Ž‹„ytw…~Ž|”„“ˆ€ƒ‘ˆŠ„„m~†{„‚|{yŽ€Šp‡|uƒ}„w†‹€’‡tŒ…‡ˆ‰Œ‹~‚~vˆ†ˆ“z‰ƒn|~‹~}Œ{‡{m€‡w{c„|‡€ˆ‘q…—Šˆ‚‡g€„€„”r€‡y“™…€‹u…~’}ˆŒŒ„~‚v††{|†r‚…†ƒ‡…†ŽŽ|Žy…„Ї‚…Š|†„€{Š…|ˆz’‘ Žy}‡‚ˆ‹ª…‹„”†wŒ‰}‰”Šˆ…~|‡~…€‚‹}ŽŒ”„€‰“–„€}¡‚w†Ž•pˆ}‰‚”ˆ}…xv‘‡†u‡•†„†Œ‚ƒ…Œ}Š“Ž~zŒ•ƒx}‘Œ“‰~‚{‹‚‹…˜Œ„y›“‡}Ž’w~‹~ˆ{„‡“‰šˆŒŽ•”ˆ‡•‰‰~šŒˆ…‡‡{ŒŠ~Œ‚Ž{‡‹—ŒŽ’’xy‡w’ˆˆ†˜‘~’…{˜‘—’…™‚‰„”|s„…„‚ƒƒŽ—ˆŠ†ˆŠ‡……ŠŽŒŽŠ‹ˆ‹„‰‡“xz„‘„ƒsw›‡{’‰†€‚Žƒ|™†ƒ„Œ‹~~~„‹…ŠŠŽt‘ƒ„ƒ‹‰sŠ{ˆ‡‹}‡†‹‡†…ЀЋ‰“t†mq‰ŒŠy†…Œ|’wy…ˆ’q‡ŒŠŒ‹‰Žƒˆˆy†‹‹Žˆvƒ€„~‹‘Œ‚‡}z…ƒvƒƒ‹ˆ†…‡Œ€Œn‹…}}‡‚ˆ}Œ”z‚’‹Šƒ‹€z’’„ˆ‹‰ˆ‹‰ˆŒ‰ˆ’„„‹r…ŠŽ„‡€€‰Ž€ˆ‡„†wv†~‡‰……Іƒu{‹‡ˆ†‰ƒ‹„ˆw‹‡‚‚‰{}ކ„ˆv{€‡ƒˆƒ”ot­ƒyŒq“~…‹{‡r„z‹‹‹ƒ‚ˆz|f”‰m…Šƒ‚Qaz„ˆ‰‰—„|~vŠ{›‡‡ƒ„|}ƒ’¤‘Š~‹w„}†xw“›zƒ‘‰}u”€x‹•l‡‹ym†z‡…€}”†‹…t‘‹Šu}Œ’…‹™‚‚‹…szŒ–}|qsp{ƒ‚…ŒŽ•ƒŠ‹|ƒ‹s}{xhlŒ†Œ€r~…‡Š—~Šv„}ƒopx‹t‡‰€‡Œ—qwzv†pm‚z…‡†Œ}Ž‚‚‘rox„‰…€z„‰{„Š~y‡€›w‹„ƒ€u|z€€…—‡rz—ЅЉ•ˆŒ†ˆ‹„Œy“}~z‘‡‰~ƒƒŠŠ˜‚‡ƒ…ƒ–‰‹zƒ‚…zvŽŽŠ‡sˆŽ‡ƒ…ˆˆs„p€’†|……‹‚ŠŽ…ˆ‚Œ†‰…•yyq“Š‹…€w€‘ŒŠŠ‘qzŒ’s”“‘‘†z‰Šyƒ†~rŽ‚…ƒ…„Œ•——Žƒzƒˆ–ƒ‘Šˆ‚„tŽŠuŒˆ‡‹†xŽŒŠ‡ŽŠ–‹ˆ‹Œ€’|’–Œ‰Œ„†Œ‚•‚‡‡…˜~‹‰}‡}ŽŠ†Š’‰ˆx†€ŒwВއˆ†}–Œ‰’І‚‰vz‡ƒsŽ‘„|ˆ{‹Šƒ„‡Œ„‰…Š‹ŠŠ‡…‡Š‰ŠŒŽ‰‘Š‹“ƒz‘ƒzv‹ˆ‹‰„‡ˆ†‘‡‹yŒ‰†Š„‹†ˆŒŠ‡”ˆ‹ˆŽ„††‡~މ…‡‰‰‹‡‚Œ„‡††‘‚‘ƒŠˆ‚‹ƒƒ‘ˆ‰‘…‰“‰Š’‰Š‡‡}‡Šˆy…€‰~ŒŽ‰†ŽŒ„~’ƒ‘ƒƒ…‹~…Ž†ŽŒ‚„‰Š‰…€Ž“‰ˆ‚Œ…‹†Œ˜ˆŠ”Šˆ€‡…†‘’‘ŒŠŽ‚€„ˆŠ‹‚Ž‹‘Œ’…‰ŒˆŠ‡Œ~Ž}’‘Їˆ†ƒ‰‚‡ˆŠ‹‰ƒŠˆ†‹ŒƒŽƒ“‚‰‰‰‹˜‹Œ~‰’‡ƒ~‹‹x…€y’Š€‚“‰‡œ•Ž—“y‚‘•‹…‹~ƒŒ‰‡…{„…v‹”Œ„Žw…ƒˆƒ”‹zˆˆŒˆ–{‰’‚‹—v›…o…†ˆ…nŠ‡Šƒ‰nt‘‰‰u‚•Ÿ…‹‚‹‰‚Œ…~Œ‘Ž…sˆ‰‹|‰‡’’’‘~Ž|†…‰‰‰„ŽŽ‡ŒŽ‰‹{ŒƒxŽŠ‰„ƒs‹Ž‡ƒŽŽ“~‚”‡•‘›…ˆŠ‹Š‚Šƒ‰ŒŠ‹„„„‹Š„‡Œ~†•‹p‹Ž—‚ŒŽ‘€‡ƒz”…ˆŒ‹ŠŒu~~x‡…ŒŒ‹ŠŒ‘†‡‹ˆ‡†‡|†‰ˆŠ‡ƒ‰‰†…†ˆ‡‹†‹‹€~‰€|††‹‹Šˆ„‡Š†ƒ‹ŠŠˆˆŠ‰‡ˆ‰‡‰ˆ†‹‰ˆ’‹‡‡ƒ†‡‰‹‹ˆ‰Œ„Šƒ‰†Ž‰…‹ŠŠ†‹‹„†Œ‰ŒˆŒŽ‡…‡Œƒ‹ˆˆŒ‹‡Œ‹~’†ˆŠ‡‰‹ˆ‡„ŠŽ†ŽˆŠŽ…ˆ‰†‰„‰Š‡|„І}‡…Š‹‹Ž„‡†‹ŠŒ‹‹…‡‹†ŒŒŽ†‡ˆ„…ˆˆˆˆ…‰†ˆ…‰Ž‹Š‹ˆ’‰ˆ‡†‹…ƒˆŒ‹‚Їˆ‚‚‡…†‡ˆ…ŒŽˆ„Љˆ…Ž…ƒ‚‰Œ‰Œˆ‰…‹‚ƒ‰Š‹—ˆšŒ€“‘‰ƒ{‰‚Œ†Ž€{‘‡Œ{|zy‡•‰Ž„ŠŠ}ƒ”†„Ž„…|‹‚}•‘x‘‘‹„…ˆs‹„‰€“€xz”‹†ƒ„€Ž‰q“u—~nˆŠŠ‚~q†„†|Šnw’}Šr‘…ˆy}„Ž€Šˆ‚p‹…‡‘„††Ž{y‰Š„‰{‹†„†Œ‰‰ˆtŠ•u€ƒŒŠ‡ˆv‰˜‡ƒ€™‹‹‹‡zƒ‡’އŒ‹ŒƒŠˆƒŠ„†‚‚‰Œ‡ŠŠŠ•‚x•ŽŠˆ„€ƒˆŠu…’—ƒ……‹…~—‹‹…Š‰ŽŠƒ†€{…‰w„‡Š‰‚uŒ€‹Œ‰Š„‘€”‡Œ‹–~‹ŠˆŠ“‡Œˆ‹‡—…}‚‚w“†‰‹~ކ“†‰„ƒŠŽu”€‰ˆ…Žˆ‡•Œ„Š¥Œ„Œˆ~ˆŠ{ƒˆŠ‹‘††’~ƒ‘Š‚‹„Ž‘•}ŒŽ‚ˆ‹ŒŠ—‡’t‚ŒŒ„‹„ˆ…ŠŽs‹~x•Œ…~ƒ‡ˆs‘…‘‹†ŽˆŠ‡‡„†ˆŒ‹…“†™ŠŒ‚}‚‡›€‹|Œ|†€†‹—•‘…‹ƒŒ‡}…‘‹‰}~Ž‹“„„ˆ’~‹Š…’{•…}”†‰‰Œ‰„Œ„Š‹Œ‘‘‹~‡Š“”~Œ|“‚ƒ˜Œ~Žƒ†‘|‚Ž|‘|‹ˆŠ†ƒ‰‘ˆŽyjˆ‡qŽyu‚~ƒŠ’…Œ{{t’‰”†zy‡‰‡‚pŠ“……|zŒŽ‚ƒ|…sˆm‰‰”ˆ‚ƒozu…Ž~Š—}‰~…„x‚‡‰ˆˆ†‚‹q†~އƒpz€mŒ|‚‚Š‹‰‰ƒ…„Œ€‡‡†„•€‡ŒŽ“’†ƒv„}mp~‰‡‚‚ƒ‚|ˆw}ˆŠŠ}~„‚Œ}Š‚’Œ‚„І~~“}—ƒ‡„„}…‡Ž€€~„}Žƒƒƒ‚‚‡‡–y†Œx‰ƒƒŒ„†‰’„‹ˆ‰~ˆŠ|€‚‹€‰Œ‡‰}‰€v€‚•z‹…€…‡—˜z‚“Ž˜†ŠŽˆŽˆ†Ž–‚‡y—ƒŠƒ“ƒ†•œ“‘”}…|•‡‰‡˜„ƒŠ†~w|‘“s‹“Œƒ†s‹ˆ}ЉvŒ“’‡‡†€‘‡˜„žuš‚l|‘~†w‹‘uƒmsˆuƒ•Œ~ˆ„ЉƒŠˆ}އ€wŠŠˆw‚‰…‡’Œ|‚„‚‘Œ‰ˆ‰“‹ˆŽ…‹Œy‘€zŒ‰Šƒw‰ŠˆxŽ‘‰‹‰„Œ„™Š‰‘‹–“„ˆ“—Œ”„ˆŽ‰–…‹“‚‚–‘†Œ„‹uƒ•’Ї”“€Š…x•Œ”‹‘Ž‘‰Œy„o‚Œ‹ˆ‚Œ€Ž‰„ˆ††…†€„‹ŽŽ…‰Œ…Œ‰ˆ‰„}‰z…|x‡‰‡‹…Š„‰Š‰‰ŠŒ”Œ‰†ˆ‘ˆŠ„‘‰‹Ž€‰‡Ž|„Іƒˆ„‹‚ˆŒ€€“Œ“‚‘„Ї”‰ˆ‰“‹Š„’”ˆ“‡Ž„‡‹‹‚‰’‹z“Œ†ƒŒ†…€ˆˆƒ’Š“‹~w†ŽŒŽ„ˆ‡‚‹Ž‡†ƒ‡‰…އ‚Œ‘‡Œ“ކƒ‡‰‡‘Š•‡ˆŠƒ‹…’Ž—„ƒ‹‹”Œ~‰‡’ˆ‰„‰‰Š‰ŒŽ‰€ˆ„ƒŽ‹†‰…ƒ‰‡…“’‡‡ŽƒŒŠ„ƒŒ•†‹†‹ˆ„‚œqˆ­„dq‹œw €Àzyw’l’|sx—••x‚kgc}‚~Œ€‚†n‰‹ƒqy¨ˆ‚€‘ŒŠwr‡q¯‡ƒˆ‡–yZ‘Š…n†ª‚vwŸ’Šž‹xŠƒŠ¨€Ž~Š~{€k•‘ ”žœ‘—us‰œv‡iŽŸw˜‚u’‘•qˆŒu‹€Ž†ˆw€k¤”–Ž~•zeŠk}¡—‡œ“š€u€‹„szu‰wƒ‘‘‰„‰”…•„‘{‘“šŒ‚žc}…©ƒ„…{zŠ“‚}ƒ‹€…Ž¡y”˜„{ƒ}´xm„x¥ˆ—ƒzŒŠz“šzƒ’uw…™”ŒŒ‚†~Š‡Ššn|Œ‡…‡‹ŒŒ„ˆ{“Œƒ}”ƒ‡}ƒˆ‡Ž•‘„Š„†zš…}‹€…†ƒ„zƒ~Ž‘oˆŒ‹ƒ}’sЄއ†‡ŒŽ„‡ˆ…„|“Œ‰›z“|o…ˆ‰…‰z‡Œ“”„nu‹„”rޔЉ‰‰€ƒ…†ƒ‹…‡sŒ…†z‹‹…ˆ‰‰~ˆy†Œ†Š‹ˆ‡‹‡ƒŠ„ˆ‹w„‘zx†„Š~‚|Ž‘”ˆŒˆ‡Œ‚˜‹ˆ‹“‘‰‡ˆ‡•ŽŒƒ„{ˆŠ‘’…‹’ˆ‚‹Ž“…‡‡Š„w‡Ž”ˆˆƒ…}‘…ŽˆŠ‘Š‰~Šxˆlˆˆ„†|ˆ{‹ˆ‰‡|—‘}u‹‘–‘„{‡Šs‘‚~|‹‚~~„€‹ŒœŠ“‡–}‡ƒ‹}‡‚‘‘Ž}Š˜|Œ†›šzŠ‹‰ˆnŽƒz‡“ŽŒ„z†ŠŽŸƒƒ†Œ’“p‘‘…sƒ…‹qŒ|Šš”r‚su‘yŽw“‡€‰|…ˆ‹‹•’}wˆsއzŒ“Ž…t…ˆ’”„š‹†‹†Œ–u–uyƒ‘Ž‘v‚‡‚u™‹–ŠŠ—“›}‰•ˆ™’ބހ•Ž ‰”ˆŒ„••‹‚€‹‰’““’–‹ŽtˆŽy…Œ•ƒy–—‰ƒ„Ž‘•Žq‘‡xv‘“ŠŠ‹”Š…›ˆ‰…‡‡ŠŽ‰ƒ€”ˆŽ•‚xˆ€s†Š‡‰ƒ†ˆ†‘Љ~Ž–†Œ‡ŒŠ‹‹šˆŽŒƒ‹{}‚…xŒ„Œˆˆ‘‹“ŒŽ|”Ž”…‰‹‰Š•„“ˆŠ‹–Œ‰ƒŽˆŽ’ŒŽ‚ˆ’z‹‚~‰“u‘ˆ…Œ}ˆŒ‰‰†ˆ…ˆƒ”‡–‚‡}…•‹Ž‹‡‰ƒ‡‹ƒ‰Š™„‘Œ‚…‚…‰•Дދ‚ŒŽ†ŽŠ…Š„Œˆ†‡…•Š…ˆŠ…Œˆ‹†Šƒ’†—Š‹‰{”…‰ŒŒ‹†„‰”“ˆˆ‹‰™ŽƒŠ}ƒ†šŽŽƒ‹…†‹…‰„‰‡‡‰Œ…z†ˆ‡Š‹ˆŠ„{‡~}††‚|…‡†ˆˆ}ˆ„‰ƒ’‰Œ…††‡†‹’ˆ‰†„~ЇŠ}‡Œ„ƒ‚ˆ€‹Œ—™ŠŒ‚ˆ‹ƒ‚ˆ“‚ˆ†ˆˆ}™†—†ˆŒŒŒ‰‹ˆ‰”~ŒŒ‰……‡|‘Žˆ~†Ž‚Š‘zƒ‰ŽzŒx„…|ŽŽˆ‰‚wˆŽ‹‘ˆ†„~††”‹‹‹‰xŠŠ…Š‹—„ˆŠ…‰–‰’yˆ‡Œ‘„–‡”€ŒŠ•ˆŽ„ˆ{ŠŒ‡Œƒ‡Œ‡‚Žˆ‹ƒ‡‡ƒz€|}Œƒ„‡Šˆ…Šƒ„Œ‡…Š~†…‡„„ЉˆŠŒ‹ˆ„‚ˆŠŽ…†ŠƒŒˆ†‘{…‚‰Š‰ƒy†„‰Œ„Œ…}‰Ž†Œ—ƒŠ†‚Ž‘Œ‡Š–‹€yŠ„‘‰€…}‚Œ‹‚‹‘…‡tƒ…‡…‰„„ƒ“|„ŽƒˆˆŠ††…ˆŠ†ƒ„€„Ї‘y†ƒ‡€‹„ˆ‰ˆ—ƒ~ƒ†€‡„„†ˆŠ†’ˆˆˆ•˜ˆƒŽ‡“††††‡†‘w•…““|ˆŠ‡‡“Œ…vˆ’|‹‡ˆ‚‰……‡‹…‰†…†„‚‘‚z–~‰…{ˆ†…Žˆ„„~‰~…ƒ„yƒŠ‚Ї‘zƒ‡Š~……‘‚~‚ŠŠŽ‰‹€ƒ†‘y}~“‰‘}xŽ„‡Šž‰Œƒ‚…~˜‡…†•‡†‚Š‚ŠŒŽo‰‰†‡~ur…|’‹z‰ƒŠ‡w“ˆŒˆ˜x‹voƒ’|‡z€‚ŽŒ‰q|‹Ž‘s‹Ž…Œ†Ž}„r”Šˆuy}‹|†––’……”„€ˆƒŠ‰Œ‹ƒ‚…Œqˆˆ‹„…‚Œ…‚wˆˆ~Ž‚’…’ˆ†ˆt–‹ŒŒ‡…ŽˆŒŠ‹“‰‹„„Ž€ƒŒ‘‰‚†Œ†…€€‚}Š„z‡—’…‹Š‹vy„Š‹‹‰‹|…wp…†‹Œ}‡z‰…‰‡†‹‘‰|‚Š‹’“‘‚ˆ˜€—~{~Œ€€‚„‹•–z‰Š…„ˆx˜‰Š‰•{…„‚~z†Šp„“…‡•†r‡z‡ƒ„†ƒˆƒ„ˆƒŒ„ŒŠ‹ŸyŠxt•Œ†‹…{ˆŽ‘‹Žnq‡Œr—“„ ‰w‰v‘†‡ƒ‚u}‰…ƒ‚Œ˜—‘‰ˆ‹|„~ƒ…‹‡”“–‡ƒ’“€v“‰ƒp•Љ‡ƒ•ކ”“‡…‹–}£y•’Ž‹Šˆ’‚‰‚ƒ˜‘ƒ‹›yˆ’…„~‡…„’“–†–„|ˆ|…z‹‡†˜’Š”€’u–†’‘‰„ˆ€}{‰‰p•…„‚€‡‘€Ž~‚‹Œ€ˆ‹‰Ž‹…‹‰€Š~…„y’€uŠˆ‰r‡ˆˆˆ‚ˆˆ}„Œˆ|†Š~†‹‘Ž˜†‹„‹Šˆˆ†„‹‹Ž†Œ‹Œ…Œ†‡‘…ƒˆ€ƒ’ˆ…Š‘‰”ŒŽ…•Š……–†‹Ž‰ˆŽ‰†‹‡‘Ž‚uŒŽ…‰|†–ˆ„†‘‡…–‹Œ„‰‹‰˜Š‡„ˆŠ‹†„ŠŽŽ†‹ˆ‚Œ’†Œ„†ˆˆŒŽŠ‡‡ˆ’ޅЇ“ˆ‰‰ƒŒ„—Ž–…Š…‡‘”™Ž‡Šy“’—…€ˆ„‡€†Š‰‹‰‰••’Š‹~}…ЋЋ…Ž“†‡Š“‡†„ŒŠ‹Š„‹Š€ŠŽ…Ž‹‹‘—vˆ„†p‘’‡‡Ž‚†Œ~Ž”‡s‹…„‡Ž‡˜Š‹‰‘Œ‹ˆ…Ž”‘ЅކƒŠ†Œ‰Œƒ€†|Ž”…‘Œ‘ŒŽˆ…‰™ŠƒŒ’Œ‹ŒŠ‡ƒŠ‚ˆŒˆu’‰‹Š{‰†„ˆ‹‰†Œ—ŽŒ‰‡„‚ޑމЂЇ‰‘‰–‰‹‡†…‰‹’Œ“ƒ‡‚†‡ŽŠˆ‰‡†…‰ŒŒ{€‰ˆ‰Š”•ŒŒ‰ˆˆˆ‰‹‡™…„ƒy–“”††Š†ˆ…‚ŠŒŽ‡Š—‰‰ˆŒ•’‡‹}ЇŒ”ކމˆ“‹…‰“z†‡„‡ŠŠ…†€‡’‹””‘‚x—‰ƒtŒ‰ˆˆˆƒ†‘ЉŒ‚Œ”‹‡ŽŠ‡ˆŒŠ•‡‹Œ‹Œƒ„ŒŽ‰‹…„‹‰zŠ‘ƒ~‚Ž“‚ŽŠ’Œ†ˆ„„‹€”Œ‹‘„‘•Š…ƒ€‘ŠŒ‰}†’‰x“‡ˆŒ}‡Œ…„‚‰‰‘‰ˆ•ˆ–‘„„~„’†Š†ˆ‡„|‰†Ž’†‘ˆ‚„’‹•……ˆŠ…“‹‹”ƒˆ…‡Š‡Š{Š‹ˆƒ‹ˆŒ‰„|Š‡ŠŽ˜„‰z›Ž‚Œ…‡ƒ„ˆ‰Ž‰ŒŠ‡ŒŠ…Œˆ‹€‡’†”‹‰‰‰‚’Š‹‰†‡‰‹’ŽŠ‘‚ŽŠ{’ŠŽ‹~•”ƒy‚†‰q“€‹ˆŠŠ„‘ŠŠ†ŒŒ†x‰ƒx…’ޑЖ‹“ŠŽ‹‰…„‹Ž›…‡‰‡†‰ˆ„|‘€‰•ƒ€’‡ˆ†”ŽŽ|Œš‹…‰Ž—„†‰ˆˆ‚Žˆˆ‘„s““Œyƒ•‚Œ‡Žˆ†‘’„”…‘†Œƒ†Ž•Š‹‡Š‹ƒˆŠ‰‹‹…‡ƒ‡Œ‰“ŒŒ‘‹ƒ…ˆ’ˆ‰‡ŒŒ•€ˆ‹•Œ’„‡‰‰Œ‘‹’†’‹Ž’…‡ŒŠŠ‡‰yŽ‘‹‡…‡†‹‡„‰ŠŽŒ‡Š†“†}‹–ƒ„“‡‘‘ˆ…ŠƒŒƒŠ‡’‰Œ‘Š~„Ž„ƒŒŠ‰‰z’wˆ‡†q……‰‰Ž‹’Œ‘‰†‡ˆŠ“‹‹•‡–މ…„ˆ‡‚”Š‰ŽŠ†ŽŒ‘~‰†•…„ˆˆ‰–†Œ’‡„™Œ‡‹‘‰–~ˆ}“†„ކ‘•ƒs—އˆ||•ˆ…Œˆ‚‘~•‚Œ‡†‘Š—Œˆ„„ˆŽ‡„‡†‹‰ˆŠŠ‹Š‘”“Œ‘‹~‹“‹‹”Š”‰†‘ˆŠŽ‹ˆŒŒ‚Œ†’’‰‰Ž†„ŽŽ‹Ž}Ž•ˆ„‰‰†„„„„ŒŽŒ†…˜ŒŒˆ‹|~‰Œ‡”‡„Ž‘ˆ…‹ŠšŒ†Œ‡}’‹‰„Œ‡‹Š†‹‚ƒx”z~Œƒˆ™†“…†ƒ•ˆ€Ž†€Š…‹ƒ{„€‹tŒ‘…†ˆ…uŠƒ„ƒ‹xƒ~ކƒ}‹ˆ™s‘{l|„‰‡‡r‡„ŒŒƒou“‡s’Œ’ƒ…‚Œ…ˆ‰€‡ŒŒ‡€o‰Š‹|†‹Š††šŠx~‰…ŒŠ…‹‹…ˆŽ€Œ„v—‹€‡†…ˆ‡u‘‹w„Š–‰ˆŠ€„~•“‡Œ“†‡Ž…‰Œ†ƒ†‰…މ“†ƒ”ˆ‡‹”„”ˆŒŠ…Št‰—І‡…Œ†x’ˆ‘…’‡Œ„‡x€„‰tŠˆŠ‰ŽyŒ‘„‰‹ƒŽw‹€}‘ˆ{‰’”zw‰lnˆ˜Šy‹ƒ‹Œ†ŽŒ„‹~o•ƒw–ˆv„ƒ|~ˆ˜Š‹Š‹€‘Š}…‰}™Š{Ž„‰„‘‡ˆ„€{Ž…‰‡…ˆŒ‹Š}†€t‰“s†ˆ†‹s‰†{•‚ŠŽŠƒ‘€†zŒ„ˆz~‹„lŠ›‰‚‚“–ƒ—ŠŒ‡|ƒ‹‹}‡ˆ†˜‰’‚”‡~€ƒ~‹‹ˆ‚xŠŽ‡€’€l‚}‰‡‘˜”u~{ƒ•~‹‘„|‹‡x‹—‹“†‹u„„y‡Ž‘qŠ”Š}~‡{ˆ‚ˆ†ƒ{}‚€{w{ŽŒŒ‡w~Š……ˆ”‡†„‰‡……‡…„‡ˆˆ‡†Ž†††Š†‡†ˆ‡…†††…ЄІ†…†ƒ†‡…‡†ƒ‡…‡††‡„„‡†„…†………„†‰„†„‡Œ…‡‡‡‡‡††…‡‰†‡…€„††‡†ƒ†‡„†„…†††„…†††‰†‡†………ˆ††‡†…†††‡†……†‡„††‡†…‡‡„†…†„†…†ˆƒ†††‡ƒ„††††„……†ˆ‡†……††…†‡…††…„ˆ†…†……†‡†††‡…†‡†‡‡†…†…‡‡……‡††…†‡…†………‡ˆ†‡†…‡ˆ…†…‡††Š„‡‡†‡†††‡…††‡‡†…††‡‡††††…†……†………™…’‰|ƒŽ˜Œ‰Œv€t…Œ‚‚Š˜Œ˜‡‹—•ƒƒ˜ƒq‡„{“ŽŠ}‹œˆ†Žƒ{ƒ™‡™ˆ€s†ˆ‹‹•†˜„…Š‘}ƒ†yŒ‰xŠŠr€†‘’‚’wu—†‚v†™x’v„Š|š‹‰’Ž‹Žv‡zŽ…€•‘u}«}‚{’„“‹—“Š…Š”’|…ƒ{ІŒ~’Žƒƒ—…“„„ššŠ|‹˜…~–•†›„ƒ’•‹Š–‹‹–ˆŠŽwŠ•…¨¥}—x“…uŒ‰’‚‰€Œ‹v–ˆ”yˆ}‘’–‡u{‹ƒ˜„ŽšiŠ~‚z•††“ƒ“‡†„ŒŽƒ|ˆ‡…Ž…„u{ƒ’‡‰•”“‘–}€ƒ’ˆŒ„†ŠŒ€„xˆ}“t…”‹…Ž‚wŠˆu‹‚r•ƒ”ŒŒŠ†‰Œ’’Ž“”tž„tŠŒ‡z‰{Œƒ•˜†‰mq‚…v„•‡‘ŽŠ‹…ŽzŠ‘ƒ‡}ŽŽ~‹ŠŒ•‚‰‘~……ˆŒ“€–Ž‹ŒŒ‹ƒŽ‰z‰‘zp‘Œ‡x‚„|t‘‘†ˆ’”‡„|›‹Ž”Œ•†”‹Žƒ™‰Œ|Œ‰’Šˆˆ‹‘‹…š“Ÿˆ‚‘‹zŽ~ˆzˆœ…Œˆ—‡‰v“–…Š”‘“ŠŽyr’zwŒ†‡‹{‡…‰~Žƒˆˆ…ˆ…†ƒ††…†…‡†‡‰††††ˆ…‡ˆ††……ˆ…‹††††…‡…„‡†ƒ…„†‰…‡†„…‡‡†…†……‡…„ˆˆƒ……„‹‰………ˆˆƒ………ˆ†ƒ†„…†‡†…†‡…‡‡‡†„…………†††‡†„ˆ…‡ˆ…†‡ˆ†…………†ˆ……Š„††‡…††…„†ƒ†…ˆ†‡†„…„……ˆ„‰†ˆ‡…††„†………ˆ†‡†…„ƒˆ†……†ƒŠ††‡‡‡‡…Ї‡…†‡……„‡†‚…†‡ˆˆ‡‰„††ƒ††‡‡†ƒˆ…†‡„‰†‚‰…ˆ„‡ˆ‚†‚‡„‡†‡‡††‡…ˆ†…„ˆ†‡†…‰ˆ‡††‰„……ˆ†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††‡††††††††††††…†††…‡††…†††††††††††‡††††††††††††††‡†††††††††††††…†††††††††…†††††††††††††††††††††††††††š„™€…}†ŽŠŠˆ††‹{Œ€„|”Œ€ŒŽŒœŒŽ–}‹—‹…ŒŽ…†‹Œ€’r’‹‰…ކuˆ‡‹y„{wމ’Љ‰Œ€—…Œ—rŽpƒ‡~ƒv„…xnt’~‹v™‹„ˆŒŠ’‘‡y‡ˆ‰|†ˆŒ…ŽŒƒ‚‡‰ˆ‘„•‹‡ŠˆŠwƒ–~…ˆŽ€…y…~~“”’—Š‘Œv–ŽŽˆŽ‹•Š’Ž™•”|„’‘‘ƒŒ’†‡Ž‘‘ƒŒƒ†–†‡tˆŒ…ˆ“’…Š}|‘…—ŒŠ–‰›‰Šˆ„‡qr‚’~Œ€Œ‹•ˆ‰•‘…‹›“Œ‰‡‚‡‡ƒ”{„}–Œ‹{{v„˜ŒŒ‘Œˆ}‹˜‰ƒ”“‡}Š„‚„†“x’Š„‹†t‡‚…ƒ‡‡|{‰’‰‹„€„„Œ„‘s™t—…p‰‡ƒ‡mŠ…Œ‡„•ot“‰ˆsŒ€‚Š‹‹y†ˆƒŽ€n‰†ŒƒŠˆ’ˆ”ƒŽ…„…ŠŠ}„‘‹‰‚‡‰‰y——{xŒ„‘‡v‡•uƒ‡‹‘†{„y–“‰Š–ˆŒ‹ƒ‰…‡ŽŠ…„†ŽŒˆŽŠ‹“‰ŒtƒŒŠpƒ””„‰‡”~ˆzšƒŒ‰‰‹‘†Š‰zzˆŠt‹ˆ‰„yŒz‘‰…Šˆˆr„ƒjb‚ƒ˜‰q‘„œ„ƒƒˆƒ‚’…‚w‡‡ˆ’sw_ƒ„cŠ}†ƒ—“y”„‘Ž…Œ‰……h€Š“ŽpŽŠ™˜“†Šž€‘ˆ} ~z”|‰‰ˆ‘ ••ŒyŸ„|„Šl…t‚v}œ†œ­xl—˜z‰‰’{˜€©—‰Œ‹ŒˆˆŒ‘w†w~|‡mƒy{œ‚ƒ¢‚sƒ}…h{‚~„wy˜•†zk—ˆ‡wˆŽ•Š˜ƒ†…†v‚ƒƒ’u’œl“ˆŸ•…v}x€kt’}s}•s€—†˜ƒ•o‘oz”…œ}“†ˆ–{ŒŠ}•ƒ—Œiyƒ…„\{ŒvŠ‹†‡ˆˆˆŒ‡’Œˆ‚‘ˆˆ†‡“yƒ‡€t‹‹…ˆˆ‰†…ˆ‰‡‚…ƒ‰ˆˆŠ‹„•‰††Ž‹€‰ˆ€ƒ‰‘‡‡ˆˆŒ…‰Œ‚{’{‹Ž†ˆ‹‘’‹Ž’‡„ƒ”‡‚Š‹‘†Œ‘Žˆ„‡†‹“…x‘“‹~‹}†Š˜€‚‚•…‹”‰ƒzˆ~‡Ž‰”‹†‡„Œ‹‹ˆ‘‹}‹Œ‡…ˆ”‹‚„‰ˆ…Š‹ŽˆŽ‹‰ŠŽŽŠŒ†‹‘„Œ‡ˆˆŽ‘ŠŠ…’…††—ˆ“‰ˆ€–Š‘‹ƒ‰‹…‹‡‹‹—ˆŠ‹‰—Š~††‹Œ€Ž‹ƒ‹‹–…›vyxŽŒšˆ“‰†w’Š}“…†‡}‹‹“ŠŽ•Œ}…ކޑ‰†‰‡|’…‹ˆŠŽŠ“”‡~ž‡{†‘ˆ‹„‚v”ƒ–Œ‘‘’‚ƒƒš€…y’ŠŠ€w‰ˆ‘Œ~ry‰‰w‚Ž„‡†’Š‚ž–‹’—ƒ…€†‘‡~ˆ‰‘ˆu¤|‰‹”€‰Š«“ˆš‡†}‹ƒ}„ƒ”€}x„ˆrŒŠ‰›txŠ˜¹‹…’™•u‡ ˜„•ˆˆ”š£–w•Љ‡”‘Œ€}ƒ•‡„…š~ŽŽˆu‹‹‰t€ž…ˆˆ†‹Œˆ—‹šzxƒ—™‡†~qwyƒ•™h‰ˆˆŠ€‡…„u‘„Ž‚|†‹}ƒŠzmƒ‰ˆ…vu‰‰…ˆ„}{—t‹Ž{‚ˆ{q‚ˆŠƒ†•Ž‚ˆ}w‰„ƒŒzŠˆ…z‹‚…Ž|z‘ˆˆŽ}‚€ƒ‹o€Žƒ‡Œˆ}…ƒŽŠ„{„…•t…„‰‚„Ž~‹‰„‚Žz…€Œ†zŒ{Š…‰™„}ˆ…„ˆ‚p‹ry‹|}†‚ƒ{‹o~ƒ…v…€„~ƒŠ„€‰…„‡„†…~Œ~}—‡Ž‡o…„„ˆŒzy}ƒu†ˆx‚…Œ–{‰Šx‹rއŒ„ŒŽy€~…ƒ}zƒƒ‚~‚‚€‘yu„Š~‚„Œy‡}”’„‰‹€„ŒŠŒ’ŽŒ††ŠŠˆ‰šŠ~Ž“~x‹‰ˆr‰‰ƒ†‹“~‰‘‘„}…‡’†ŽŒ’‘ˆ”‰ŒŒ’†‡‰…‚‚‹‹ˆŠ–v‡‹Ž€}q‘‡–‡…‰‹~…”ƒ‰’—‹Š•‡Œ‰‹•†Ž}‘–†Š†’ˆt“ˆŒ{Š’€Œ‡€†}‡w•ˆ‹Ž‚ˆ€›‡‚‘‹‘€ˆŽŒ‰††‡‰‹’”Ž”‹‰“Ž‘ˆ“„Ž…Š—‹ƒ†ˆŒ‰„ˆ‰„‰–ŽŽ‰Ž•|‹”ІŒ„‰‰ƒ†ƒŠ‰ŽŠˆ‘‹ˆƒ‡|}Œ’‰†‹†Ž‡~ƒŽ{‚…–‚†ƒ„‡ƒ‰q‚|j„„Œ‚uv‡ˆ„†‘ˆ…„{•v{…ˆƒˆ{s‡…’‹‘“‡ˆ‡‚}Œ›‚Š~ˆŒ~€‰}Šˆ‡ˆ‹‡‹‹ƒ}„‘w…‚ˆ†~„…†…‰‡‡y„Œˆu}‹ƒ‚Œ‡š€„…‰…‚}|ˆŽŒ~…ˆ‡“y„€‹‰zlŠƒ‡‰ƒ{…„‡€Šuˆ€m‡„{ƒ‡~„“Œ}Іˆ†Š„€Š†„ˆ…g|‘|”}xt…kˆŽˆŠ†ƒ†Žx|†‹}€€‰~‡€‡{{ˆˆŠƒ…y…„‰‹…€‚~‚|‡…„‰…~}„z|ŠxŠ„~“‹„€”’Š|ŒŽš}Ž”ŒŽƒŒƒ‹Œ‘†zš—€t†Œˆ……ˆj†‹ˆŒ…ŠŒ’‡p…‹˜‰‹”“ƒ•rŠur|„l”“¡„œ™…’vŽyx’‹…‘—}wŸ ƒ€“y„•‹Ž‘Š™…“•~z”ˆœ‡Žv‰”w‡‹€“‡‹…tˆ…ˆqˆ¡¦‹°Œ‹‰˜~…‘t›‡‹oˆw~›™{‘…¥§Š}…qvƒŒŠ‹–Œ—ˆ‚†˜‡u‰™“Ž˜”T|–€«‚—Š}ŽŽŠ§Ž‘‹šŠŽ~oˆˆŠ ˆ¥ƒ‹Š“u›—…z‹ŽŽ‘•o‡‡‰™m‰€…ƒ~…œ¥‡†…Œ€ˆ††‹ˆ†€ƒ†‡†…‡†‰†ˆ‡‰‡Œ‡††…†…‡…‡‡†„‡††…†……І‡…†ƒ†Š…„†…‡†……†…„††‡……ˆ…†…„‡†…††…‡†††ˆ…„…†…І……††…†…†…†„†…†…††…†„†……†‡€††‡‡†……†††††„‡„†‡††ˆ†††‡‚††‡†††„‡††‡†……†††††††††††………Š…††…††„‡……†††‡‡‡‡†‡†††…†††††††††…‡‡††…†…††††…………†…†‰††††…††††……††ƒˆ††…††„††……††–ŽŒ‰”|ŒŠŠˆŠ‹ŒŽ‰~…†…Œ’ƒz…„uІˆ„€‰‡‹~‰”‰‚Ž‹‹‡ŠŠ‰“‡Œ“‚‹Œ‘ˆ„†Ž‰…‹”‰ƒ|‰€ˆ“Ї‹‚Œ’…„ŽŒ€ŒŒ‰Œ‰‘‰…ˆŽ…‰…‡“Žv•€|‘|‰Œ‚‚‡‹‡†‹‡”†›‚‰ƒ…–ˆ’Œ†…‰Ž‹Œ‰…‰„Ž˜ƒ‰‰Œ–‹‰‘‰…‘…”„Š‘†……yЇ‰ˆ‚†”ŠƒŠ‹‡‹’Œ†{…Œ‹}š{‡†{Ž—ƒ‹‹ƒ‰†…ˆŠŽŠ‡Š‚‹…“Šˆ€Œ†‚™‡Œ€‡‰ˆ†ŒŒŠ„’’‘ŽŠŽ‡€‹‡Š~|{‹†||ˆƒ’—ƒ‰ˆƒˆ†ƒ˜‚‚z„‡‚{„ˆŽrˆŽŠ€yŒ‹rŠr‚‡‰‡ƒˆŠƒˆ‡‡…Љ†›p’un‰‚Šˆ‡u‡”‹ŒˆnzІŽq™ŠŒ€~†……ˆ†Œ‚†v‘€…{‡‰ˆ“Œ‹‚ƒ~…‚Œƒ~‹Œ‹ˆ„Žˆ…r‚}tˆ„Œ‹†xŒš‡„‰“Œ†ŠŠ}Ž‘’‰•Ž’‘‚†…„‰Œ‰†‹‡r‹‰Ž„ˆ•ƒƒ„‘…˜‹„‡v‡w‰˜ŒŽŠ’ƒ…x“…‹‹Œ‡‡‚}wƒŠrˆˆ†ƒƒ‰z“|Œ…ˆ”„ˆ‹xƒ“•‡†Šˆ‡†…†’}}”ŠŠ{w‚€‹•„Ž„z™‹…‹ƒƒ†‚‡’x‘Š‹ˆ‘„t„š‰‹Œr~Žt‰…Œ“ˆo”tŒ€q‡‰}†ŠsŒކŠqw‘†rŠ‘ƒ‘€~‚~•‡‡‘Žƒwˆ†‹…އ‰ˆ“‰†ƒˆ”†ƒ‹„†‘‰†ˆ‹‹•v’†ˆ†‡„Ž€ˆ‹†•‡‚‚‘‹‘†Ž…‘ŠŠŠ‹…’…‹’Œ’…„ŽŽ‡‚Š}ƒ“‰t€‚…Їބބ{”†ŒˆŠ…‹Œ€}‡€wŒ††Ž|ŠwŠŠ‚ˆ‚‰†~‰Š„€††‰‰…‡……†Œ††…ˆ……†††‡‰ˆ†ƒ…‰„†ˆ…„…‡†…‡†‚…Š…ˆ†„…Œ‰‡†„‡†‡„†…ˆƒ‡„…‡ˆ…††„‡„‰ˆ…‹††††‚…†…††ˆ…‡†…†‡€‡„††††……‰†††††……†…ˆ…††‡‰ˆ‡†…‡‡†‡††„‡ˆ„††††††‡‹‡ƒ‡‡‡†‡†…††„……†…‡…„‡ƒ†‡†‡…„ƒ‡‰†…‡„††„†‡„ˆ†„†‡†ˆˆ†‡†„†ˆ†…††‡„‡„…‡†††ˆ†„‰‡†…‡…‡…„…†…‡†…‡†…‡………††††‡…††…†ˆ…†ƒ†„††‡„‹ˆƒ}€‰Š‡†tŠ˜…Šƒ…zxˆ‚‰w…ˆ‹˜Š••oz{‹y…y’†‰x{ŒŠ‰y‡…“‡‘‡|—Œ…Ž|‹†”Œˆ“˜ˆ‡—x…}|ƒ”€’„”Ž‚Œx‘…Œz‰„‡€‡|‚‹–˜‰}Ž‹yˆ‰‹x’šwxŽŠ‡†”‡’Œ“‹Œ‡†’’}ŽŽ|‡†Œ“‡‰‚’€†~“ƒŒŠšˆ–‡‡ŸŠ‰”Œ„‰‰ŽŠŠ‚Œ•˜ŒŒŽ‹ƒˆ’„|™ˆ‘ˆuƒ‚‰Œ‡~†‚‘ŒŠ•‹“{€’‚}†Š†‰Œ}˜“‰ˆŠ…‰‰‰~ŠŒ‡„‹Š‡ƒ‘Š•‰‚‘€w„‰…r†ˆ…ˆ‰„…‹‡‹}Ž‹‡‰‡ŠŠˆ‘Œ‹–ˆŒ‰‚ˆ‹Š‚„†Žˆˆ‹Š‰Š‰‡Žƒ~Š~ˆ’‡ˆŠ…‹“…Š’Œˆ•‹ˆ‰Ž“ƒ‹ƒŽ‹Š‹‰ˆŽ’„u”ŒŠ|ˆ”†‡ˆŠ—„ƒŽ–…ˆ„‡ƒ††”Ž‹‰…ˆŒ‰†ŒŽ‹…Œ„ˆ…†ŠŽŒŒŽŽƒ‰Œ‹Š”‰—†‰„‹‹Žˆ„‹ˆŠŒˆ‰’‹’‹”‡‹‘Ž‹ˆŽ‹{•–ˆ‹Š…ˆ‡ŠŠ„‹‘ދЇˆ“ˆŒ‹†…~ˆ‘‰„Ї‡‹‡•ƒ–„„~”“…ƒ‘…Š‹ˆƒ’‡ˆ|œ‰Ž|„‰‘•Ž›™y‚z—‹’y„Š…ˆ„{vˆŒr…™‡‘Š–†t†‡ƒ~–sˆ‘“x“…Šˆ–Ž“yxš‡q‹ƒ†z“~–™{ot”…ƒvƒ“ŽŠ‡~ˆyŽ…y••ˆ†|ˆ†Ž‡‘|‡Š•Ž‚‡‰ŠŽ†‹‘ŠŠŽ‹Ž“yžŽyŒ„Ž„~‚ƒ{Œ…ŽŒŒŒ‹‰‚‡ŒŽ‰Š•}’„Œ‘‹Šƒ‡‘‹Š†“”“‹„|Š~„Œ’u}‡…‰‘‘Œ‘…x–“‰ŒŒ“ˆ…ƒy‰tŽŠ‹Š†‚…†‡…ˆ…ƒŠŠƒ{”’‰‰‰z‡‚…‚xŠŒƒŠˆ‡–ŠŒ–€ˆ‘‚†Œ„}‡‰…u}ˆŒ“†w…—ˆ…Š~wƒƒ‡‘†r|‹“‹ˆ‘„‡Šˆr—|—ˆy‰‚v‹•’ˆ”pt“ˆˆv„‘Œ|‰‰‹u’‡ˆ‰‡qŒƒ’…‚ŠŒˆ‘yuƒ‹ŽŒ‹‘‹’”Œ‹†’‡y„‡‡„’Œˆ˜|„ˆ}ƒ‚‹…𓆋|›‘‹Ž…’„Ž‘ˆ—“‹†ˆ}ŽŠ†|•€Šˆ‚žŒ‘‹“„Š…‘r|•††ŽŒ‚†‰|œŒ„‰Š“„†‚u‰t“„ˆˆrƒ€ƒ‡ƒŠŠ’o–‡’‰…އ~‹†€‰ŠŽ}l††xˆ}x€{ˆ‡•|ŒzpžzˆŠ|†”‚u|ƒŽˆ}’’†|†‹|{{}Š‹}‡}Š€ˆx€n‘}ŒŽˆƒ‚}v„|z‰‚r€‰ˆ‚u…€Žm‹}‡€‚Ž‹~ŒwŒƒ‡„ŠŒŽ‰—˜’zo|{kƒe{‡’ƒt‡„}‹t‚‚˜}~Œ{ŠxŠ„zƒ‹ƒŠ‡z‚}yŽx~›†Šƒ†……ŽŠuxz~Ž„ƒ|y‡y‡ƒ‚Œ‰Œv‰„ˆƒ{ƒŒ…ˆŽ‡zŒ~’t{ƒz‹…ƒƒ„‰tІ|s‚Œ„w€Š{•™ƒ…І‰…ŒŠŠ‚‰‹Š‚|‰‹“‹”–”x‡Œˆs’ˆ‹Œ“ŒŠ„ˆ~•‹ŽŠ…ŽˆŒ‰’ЉŒ•ˆŽ†Ž—Œˆ’‚Œˆ‰†Žuˆ‹Š~|x}’‚Œ’‘‚‹‰’‰‡Ž–‰ŠŽ‹’Š‘……ˆ{‡’‰‰ˆ‡‡Šˆw–‹“ˆ}ŠŽƒ††…ƒˆ‰”†‡‚~’ŽŽŽ‹Š‰ƒˆˆ…‹‰™}Š„‡‰”Š‹‰‰‡ŽŒ†Ž‚‰…‹‰Œw”ƒ‚‡‹‹„ŒŒ„’‰Œ‰•ƒŽ‡…Œy‘ЉŒƒ‹Š‰†“Œ‘†ŒŠŒŒ’‰‹~’›ˆ’Œ‹††‚††Ž‰……Žˆ‡‰›‡‡{Ž•…–‰…“‚x‡‹†rŒŠ†ˆ†‹‚“ƒ…|ˆ‡„Ї‹…‹‘Š˜‰‹‰†Ž†‰„„|“‰ƒ‰‹yˆ‹€€s‡’‰‡‡—€…”‡†‘ŠŒ•‰†‹‰‘ˆ‹†~‰‹…’‡uŒŠƒŒz‘‡‰†‚€†‘Ž˜ŒŠ‰ˆ…ˆ–†”‹‹†Ž„…‰Š–‰”‰‹„†Œ‰Œ•„ŠŒ‡Ž†‹Ž‡‰{Œ‰‰ŒŽ…‘ЇƒŒ‹Œ‹‰‰‘‡…„ŽŽ“•ˆˆw‘˜’‡‡‡‡Š†ƒŒ’‰†“‰‰†’‹…‹~…ˆ”‹‹„ˆŒ‡Š€•“‘x‚ƒ‹‡ŠŠt‘v‚†‚ww…‹‚|‚’ˆœ‹v}‹€ƒ“ˆ„ƒŠts‹‚‡}ˆ‰|Œ}}Œ‘ƒ…r‹Š“„›˜„•‚Œ‡…Žžƒx–„„‡‹t‰“‘‰Š|v“‰‰~‡”‹‚zŒ–ƒˆŠ‡†Š——†ƒs‹˜Œvƒ‰ƒ„‰ˆq˜—„‹ˆ–•„ˆƒ’x~–ˆX‘”ƒ†‡“„‘}‘‰Š•—ˆŽ‚”•’ŠŒ˜‰‹…•‹ˆŒ’‹‰|ƒƒ|’‹†”‚Š„~Ї™~“„—~“Ž„n‹Šw“”{|€†–‹‰Š‘Œq||‚ƒ‡ˆ…ˆ†ŒŽ‹‹Š€}‹Šˆ“‘€Ž}€ˆ|z‰˜„z„‰ˆ”}Š‹‡‡|‚“‰ŒŠ”Šy…‚†™Ž’ІЇ†“Žx…”›••€|{‡ˆ•˜‰„‘w|„|ˆ‚…{z…‹”““ƒ‚{z„}Ž…„™~…‡‹‹‡‹’Šy‘“…’‹‹Œ’‡qŽƒ‹}{˜Šˆ‹„………Œ‡x™‰€‚…˜{—‡ŽŠ‹—„“‹ˆ‡‹”‹‘†††ˆz“}sŠŒƒ’“‹™Ž‹’Œˆ…‡ˆ{Œ†“‰‚zƒ…|†‹‚†‚Ž„’……އŠ~{‘„†€†‘„…}‚“ƒ‘Š™‚ƒ¸zH†…ŠO‹ƒ†‘‚ˆ‚‹‹‡~މޖw‹‰ƒ€ƒƒ…‡€”Žx’§Ž‰‚‚’•ƒˆ~ˆ†t‚—‚’Žx˜€‚šwy’’†¥ˆ­vŽe—ez„„}|}Ž{s…‚——u‡w‡†›x€—…}{m~x“rƒ€Š”w†”ˆx…ŠŽ‰–…‘t¦˜v|le”{t}m€f€Žƒ–ž‰²k†˜¢Œ…’˜„‡«ž¦Ž‡ª‰gy“‹lgfƒ™}„zƒolqƒsƒ‡fŽˆ‚‡‰šu†††u…}ž‰}“‡„†…Œw~w†|xpŽz©ˆ[qš‹r˜x‡”‡‹‚“ˆ…ˆ‹ŠŒ‚Š‹…‰‘‰‡Œ’”y’ˆt‡†‡‡ˆ„„ŠŠ‹‰ˆŽ•…ŠŽ†‚ˆˆŠŽŒ˜‡Œ‰…‹€‚„„‰‰ˆƒˆŠŒ‰…“ˆŽ““•Š”‡Ž‹‡‰—Œ‡ˆŽ•ˆŽŒ‹€‡“‡Š‡}‰Ž“…x‹…Œ}†Œ‰…†Š…•‰”ŠŒ‡ˆ~„‹‡ŒŠƒ‡|‰„€ŒŽ‘†„ŠŽˆ‹‚†ŽŠ”…‹†……‚•‹ŒŠŽŠŒˆŽ‹‡‘”…“މ…ŒŒ„Œ‹…Œƒ—ЕކŒ|“–ƒ†…‡Ž‡ŠŠˆ‘ЇЋ‹ˆ‰Š~„Œ‰’ŽŠ‚ކˆ†”„…‡‡~ˆ†Œ‚|ˆ‚z‚“ŠŒŒ€„†„†”‚ˆ‡ˆ‡„‹…z‚Œzˆ„‚‰‡€–Œ“‡…‹…‚•w†ŒŠ—†††‡Œ”Œ}‡‘s†Œ™Š‰ƒ†ˆ}€…~Œ|‘†††ˆ†u€ƒ‹Ž•‚~„˜‹‡€‰Œ„‹…†…Š„€‚‚ŒxŒ{Œ{qŒ„ƒ‡“Ž˜‡•ƒ”z…–’…œw}v…—‹r‡~š€ƒ‚sƒ„~}€ƒ‹ˆx„Œz’pv€”x‚š„…†‘–„€Žšw…yw“Š–…~І‰~ˆ„„z’„˜Š‰Ž›…††~{ˆŽ}ŒŒš“††††††††…††…†††‡††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††„…‹ƒ…††‰‡†……††††‡†ˆ††……„†ˆ‡†ƒ…†††‡ˆ†††††††…†‡††††…‡‹†‡……†††„††…†††Š†……†††††††Œ††…††††„†††ˆ††…†…†‡†…†…„†…†††††††††………††ˆˆ†††Š†††††††„†…†††…††ˆ……††ƒ†…††††††††††††††††††††††‡†††ˆ†††††††‡†††…††…†††††††††††††††††…††††††‡††††††‰…†…††††††……†††…†††…††††††…††††…†Š“‡ow†ˆŒ‹™Ž‡Œ‡Š„…‡‚ˆ‹Ššz’ˆvv›Š—‘ˆ…•«†‰Ž‡uŒƒŠ‰“‡•‚Œ|z‰’ƒš…‹w…‡~‘Ž~’o†z•t‹‘€”‹Œ‹Žž”’‡~z‹‡y‰ˆŠ‹˜}y‘t˜“š}‰Šw’t˜ˆ‹‚~‘~|‹ŽŠ”Œ‚’{‡v†‰}Š‹Œp‰“…z‹~šˆ™€’”}Š™‚’|~kŒzŒ“w”‹}Œ’•‹˜’ІƒŒ„„‡ˆ’“…Ž……ƒ–€†o„šxŸ†‚•|‹‘‡‘€†€™ƒ}}¥‰}‡‚„œv~…ƒ„…ˆ’’„„’Š‰ŠŽŒ‡†ƒ‹Žƒ‡‘‰‹ˆ‰™‚s†‡qŽ„‹Œƒ…„‘……ƒŒ‘‘ŠwŠ€†ˆŽŽŒ™‰Š…‰„‰ƒ‰–Љ„’‹‹‹ˆˆŠƒ~†“…Ї‹“‹‹ˆ‡ˆ”‹‡ˆ‹ŽŒ•‡Š~Œ““ŠŠz‰Š‘†v“Žzˆ’„…„”‰…‡‡‡–ŒŠ…‰ƒ‰…•ŒŠˆ„ˆ‹‰†™“‰„…‡‰zЕГ‹}„‰ˆŒ‘†‰…‰‘ˆ„ˆŽƒzŒ„‹““‹“ˆŒ‹—‰—€‹ˆ~—ˆ•‡ˆŠˆ‹Œ‹‡‰‘„•‹‘„“Œ†ƒ}‹‘ˆ…Š„‘‹Œ’‹‘†††‰‰ƒ††‡†††…††‡†††…†‡†††…ˆ‡†‡‡ˆ…†††……†††††…†ˆ†‡………‡†††††††……††…†…†‡†††……†††††…††††…†††‡†††‡†…††ƒ‡††…†‡‰†‡††††††††…†††††„…†††ˆ††‡††††‡†††††††‡†‡†††„††††††††††††††††††††††††‡†††ˆ…†‡†††„††††††††††††…‡††††††††‡†††††††††††††††…‡††††††††††††††††‡††‡†††††…†††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††‡††††††††‡†††††††††††…††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††‡†˜‡ŽŠ{—‘‰ˆ‡–‹}†Š|”““~‡‡‰‰–‘‰™“‚Š˜Œ††x„‰„‡…‚Š‘sŽŒŒ…‚zŒ†€Œu‡’„‰Œ}‹‚Œ‰ˆ‚–w“ƒq‚ƒˆŠ‹m‰ƒpp—ˆŠt‰†|‡ŒŒ}“†„‘–q•ƒ’‹‹ŒŽ“€ˆ~†ŽŽ‰„ŽŽŒ’y“||Š…‰‡ƒ|~t}’‹Š‘‡zt””ˆ’Ž‹”Œ˜‡˜‹”ŒŠ…ˆŽ’€‰†ƒ…Š…††|Ž›„p‰ŒŠ€‡ˆ”…€–‚”…Žˆ‘‰Š’oƒŠƒx‹‡‘{zˆ……‹‡…†…††††††‡†††‡††‡††††††††††…††††††††‡†††††††…†††††††‡††…††††††††††††ˆ††††††††††††††……††††††††††††…††††††…†…††††††††††††††‡†††††††††‡††††††…†††††††††††††††††††††††††††††††††…††††††††††††††††††††‡…†††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††‘v‡ŒŠŠwŽ‚{€wƒ‰Ž…{v~ƒ‰‰ˆ‡„†‹y‚z„Œ—‘w…}ƒ–ŒœŒŠ„‚Љ‡x“Ž‘ƒ…|†‹˜”ˆˆ…‘‹uˆ{•€†……|‰…‘ˆ„|•{‹}Œ…ŽŒyƒ†‰“ƒ•†€’‘†}‡’…‰‘І‡“ˆ…q…‰‰wx”‚|‘~{‰ˆŽ†…w•}}‰Šƒ•‰‘„ˆ‰„’ˆ‚†ŠŠŽ‘Š•ƒƒ“ƒ}‹‰{{y‹‚Œ‡—ŒŠ•€‚ŠŽ†|މ„|~„‚x‰€Œ††‰”„€„‰‰€ƒƒ‹Œ‰€„‡„†‡„‡‘™ˆŽˆ‡…’’Šˆ…މ‰x“ƒ‚yˆ’Šˆ’Ž—‰‹›”{„“‹Ž†}~ˆ‡†u…ŒŽ†xƒ˜‹‹†x‚‡‚‰‰‡sˆ‡Ž…“ƒ†’‡ƒ™|‘†t‰ƒ…‹qŠ‘ƒŽqu’Œ…vƒ•‰~†ˆz…“Š…ˆw…Œ‰†‡Ž’ƒŽˆ„‹Šƒ“‹Œ‡Ž“{’‰‡z‘‹Œ„„}‰‹„‰ˆ””‡‹}•’Œ‰˜~Ž„†“Œ‡˜ƒŒŒƒ~Їˆ’’”ŠŠ‡z‡“ŠpŠŠŒŠ†Œ”w—Š’ˆ…އ„y}Ž€{–„ŒŒ|‡‚‰Žˆƒ„Ї‡Šˆ…‡’„|ƒŠ‚ƒˆ“‰ŠŒŽ’†r‹ˆ„pˆ‚…‡ƒ…‡ŠˆŠ‘Œ}‡Šˆ“‹ŠŠ•‰Œ…‡‹…‰‰„x‚‹‡ˆ‹‹†‘…‰Œ‰ƒ€ƒ“€ŽŠ‰‰š–†Œ‘‰ŽŠ“‹‰Œ…—ƒ†‡Š‡‡ˆ‰Ž…t‹“Š~‰Ž†Š‘†ƒ†’‰ˆ–Œ‚…ƒ{ƒ††ŽŽˆ‡|‰†‰ˆ“‡„ŠŽ†ˆ‘Š‘Œ…‚‰‡Š‹‰Œ‹‚‡Œ•‹‡†„ŒŽƒŒŠ…‡‡Š’’އ‰Š‹ˆŒ‰™‰’ކ†™Œ’…‡†‰ƒŒ†„Ї•ƒ‡‡ˆ“††Œ†‘І–‚‘‡‡”Œ•”‡…†ƒ~‹‹‹ŒŠŠ‘„—}|•~Œ}{yˆ’™€Žˆ‰‰€šŠ‹‹—…ˆ}„„€‹‡”x’…‰†r…Œƒ‚†yŠ‹Œ€ŠŽ€†‘{˜y…zt•™Š‹‚u…„}qu€Šrˆ•w’„‘ŽzމŒ‹ŠŽ‚t„‡‡}‡‰‰‰‡ˆ…ƒ~މ‚‡„‡‘š‹ŒˆŽ‘‡t‘v‹ŠŒƒ„‹•y‡Ž—Š„ƒ~‘•‹‚Ї’Œˆ„‡Ž”‘†„‚ˆŽ‘‰‡…‰€ŽŽ“ƒ{ˆˆ€rˆ~Ž…ƒ“‹€|“ƒ‘ŽŒŠ…Š‘‚…ˆq•„‡Š~‰{…‹‘€‰‚‚˜‚žˆ™“g„”’…ˆ˜‰©—›„‰„sw‘‡€ Š|“–‡›˜yЉ…Œ ~ƒŠŒ…”އ{†r“†tŽ‹ˆt€”ˆ{t…ƒ}—x…ŒŽ‘™Œ˜Œˆ€}‡†”†‚‘„‚…•ŒŒ—ŽŒoš}”Ž—ƒ|{Ž‹Œ“p‰‡‹‡†ˆn”„…„Љ€ž˜x¢—y„‡˜œŠ˜‰txœ”ކ‰‘{—}ˆ–‹yƒt{‡~˜”…‘Ž—–„‰’™—y{†t›† nv‡’f„Š~Š•„†™yqŠx‹„z…Ÿ“‚}‹…‘ž–š‘‚|ˆˆ…‡†‚tˆ‹•‡wk{ƒ}€z~Š„‹•І†…ŒuŠŒ}ކŒ‡|‚†Š‡‚‹†Žˆ|‹ƒ…‡~ˆ‡‡…‰„ˆƒ{€Œ€‰“„Žˆ“Šƒ}†Š‡‚……Œ‹„~ƒ†s‚†Œ{‰ˆŠŽ†Œ„‚‘…Ž‚‚„~‰€€ŒŒ‹|…ŠŠŠˆ“ˆ†Šx‡ˆw‘‡ƒŽ„…ƒ‡‰|†‚Ÿ‰|‹†“~‰‚•‰‚……„€}‚”ˆ}~ƒ‡‡{ŠŠ{„ƒ€x†‚„†’‰–„“‚}‡v…‰„ŒŠ”„Œ‚|ƒ”—‚Š‹‹Š…†}ŠˆŠŠŽoŒƒ…‘~‰…††ˆŠŠ‘’€‘|˜‰|‡Žˆ‹€‰„“…ˆy“ƒ~‰”ŠŠ—ˆ“‚ƒ—†„‰ˆ‚Œ‚}y„‚Žt‡‘Œ‹~އx‹‚‰Šv…ˆ€ˆ†ˆ’‘Ž„šz”‰t~†~Œ€•šy•os„Žv–€†…‹ƒ‡|ˆ‰‡‰wŽ‹‰…‚ƒ‘{ˆ|ˆˆŠ…ŒŽŠŒŒƒŒ~‰xv‹ƒŒŒ†€‡…wx’‰„Œ‘Šƒ}™Žˆ˜—„“‰ˆŠ‹›Œ„Œ‚ŽŒŠŠˆ‰†„—‘“އދ~އŠtƒ–ЇŒ‡–ˆ‘‰w“‘”„ŒŽŒˆ”‚s„sˆ‹‡ˆ‡vˆŠ‰„•w‡‚ƒ{ދޅ‰•ƒ’†„€y|~…†…—vŽ‚Œ…ƒpœˆƒ‹ƒƒŠƒƒŽ~Ž{‘’o†‹„ˆ‘‡u‡Œ’‰||ƒ‰‡†Œ‹xކšy‰zt‘‹€“†{‚~”•‹osŠ}rŒ™x—z~„ŽŠ“ŠŽ‰sˆ‡‰~‰‚Žˆ}„p‹ŠŒ“Šˆ“‡…‹”…t‰y……ˆsŒˆ•“}ƒ”›…ˆŒ‘€™‘”„Œ†—•ІˆŠœ’„ƒ…†€‡‰Œ’•—{‹„Š‹Šzw‘ŒŠ„’Œ‰z}—‡‹Ž‚“„‚‡m‰Š‡~†x‘”‚Œ‡†Œ‚ƒ„ŠŠ‰ŽˆŽˆ‘•Œ’“•‚w„‡ŠsŒ…ŽŠŽŠ‚ŠŠ€‡…’ˆˆˆ‰’Œˆ˜‰‡‹{ŒŒŠ‡†€‹‰‡‰ˆ‹‰Š‡‹{Ž”€–ƒ‹‘‹–Žˆ’Œ–˜ˆˆˆŠ‹Ž‘‡‰Ž„Ž“y„‹‡Žu—‰Œ~ˆ‰…ˆŒ…ŠˆŽ”ˆ††††ŒŽŠ‹‡‰ŽŽŠ‹‰„‰…’~ˆ}ˆ…ŽŠ‹Ž‚ˆˆƒˆ†’‰“…‰‰†‘†‰‰‹z…Ž‹‚ŽŒ‘‰ˆŠ…„ŒŠ‡‰y•ˆ‹Š†ˆ‰–ŒŠŠ–Ž‰Šˆ†‘ƒ’’‡Ž}‹•‹•ІŠ}‡Œ‹‰ˆv’|€•„~v•ƒ‡“‡—u€ƒŠjwt‰}Љˆ—††’…ˆŽ€—‹zŠ€ƒ`wƒ“”“…ž‹|xd‘iŠšz‘sœŽ‰’‡w›‘“}vŒŠh†“•k’~„”rwŽ–…qs‹„™mŽŠu –t’Š˜‚š‰p†’tizŠtuw†‚€t†x‰¡n{uyp~wz£ko€ŠˆwŽ„‡™”‰•cqŽ‘ˆvy|zŠsŠ‹Œœ–v……~–‰œŸŠ†h†ž}¨“‚t›|…„“xƒ—Š{vvy„Šƒo†pr“Ž’›…Œ~}Žƒt†|zj›~”––}†y‰z””€ƒ{y‹‘‚‰‚€Œ„†Š…zk‚„Š‚ty………’‡v“wwހއ‰ˆzyˆ‡’ˆ‹‹‡ˆƒŽ’€z“€Ž‰ˆ‰‡‹„Š‚‚ƒ‡‹Œ‰u„~||Œ‰…‡‡zƒˆxˆ…‹x…„‚Š}‰ŒˆŽ‰‡‚‚ƒ‡x‰ŒŠ|‚‹†„‰†„ƒ}wŠ‹oŒ‚ƒŒˆ„ƒ~‡ƒ‚†{…‰˜†ƒ‹{€‹‹–ƒŠ…‹†…ˆƒƒ‹ƒ}x€‰~Œ†€ƒ€y…†…‚„ˆ†–„ˆƒ‡€†~…“‹|ˆ~‡~zŒ†ˆ‹Š‚t‚‡„„†‹„{€‹~yŠŒ|ƒ}€‚‚…Š‘†Œ€”e‚wƒ†€†q†€mm—ozt„k~}lw‚‰‚‘ŒsŒ‘z‚‰„‡”“¡p|£rž‰š~~™|€˜…ƒˆyŠu€Š‘†vkŽ`t‰“t“©¥‡j–š{lŠƒx}•{ƒo‚‚’~–‹’¯¡vŒŽ…‡‡wˆqzcoŠŠ€‚™ž¬“„„†…eq}{pŠ“‘“”„s‡žˆzz…lysrz{h“ŒŠ…t‡ f±_…„ƒ†}—†œo”{\ƒ’„{Œ‹’|“’€‰hŠwˆƒmoŠ¥c– ‘kˆv˜y…|~†~…~‰ƒˆ”ƒŒqztox‘‡•‚ƒ|zŠzƒ’•ŠŒŠ‡{o{†Š‰ˆŒ’‹†„q‚€z’Œˆ¡‡†…Š•ƒ‘‹„‡–‚‡•‘‡}m|ŽiŽ‘|Œ”‰Žš~†~”‡”Ž€‰|…ŒƒŽ{‘‹—€‰sy‚…„Šˆ£€~‹Šz•‹›…Š…—†Ÿu›™ˆŒ{‘f}~|‡Š™m€•‰…Š…†Å„m––Š~Šˆž~ˆ‘’‰ˆn~•ƒ~‡zt‘ˆ–Š„v€†p˜o£†›Ž‡†{r}z‚w‚‚ˆ²’’}‚ƒ••|Œ£žv‰“r|˜Š—„‚€›”x~†‹”v{†Š}ƒ”žq ‡‰‰l…„ˆŠ†Šˆ‰„†‰Œ‡Œ‰Š„…“Š„x”ŠˆŠˆ‹{…Љ€ŠŠˆ”‹†ˆ‚€”‡‘‡‡…‹€‰…„””‰…ŽŠ‰ˆ…€ŠŒy}†Š†Š•„„‘Œ€„‚†‰„‡‰…ƒ†Š„‹‰‰ŠŽ‹€Š‚…–‡Ž‹†ˆ‡ˆ„‰…‹Ž{‚†‡†‹{‡……}~~Œ‡‘†‰‹Š†€€‹‡‰Š‹ŒŠ‰††……ˆ…Œ‡Š†w‘ŒƒƒŠŒŒ“ˆ…‚ƒˆ‹…‰Š‚ˆˆ†Œ“„‰Œ}‰Œƒ‡…x‡…ˆ–‡ŠŽ‚ބЉ‡Œ‚„†ˆ”‰u–†rƒ‡“‡ƒ€•{Ÿ“ƒvƒn‡y„†ˆ‹œx”€•z€k‘‡ˆ~„’Œ}„–~†w•n……†yŽ„u’˜} {’‰Ž¤‘Œ•~€”’‘z”މr‡‰…ŒŠ‚”—‘t}qq†{“vŽ—{”‰ŠŠ‘˜…{Žy‰‡~†’•u”y‹“ˆ…™’”“›Œ‰”‡zŠ‚“Š‘€‰†Ÿ|u˜ˆ‘‘„ƒ“–ƒš‡„‰‚”’œ†ƒ‘—†–Ž€‘’‰‰‘’~yŒŠ’~ŠŽ“›„x„zŒ|„–‘‡‹‰˜”Ÿš~Š|kz‘Œ”Œ‚{†Š|”…ŒˆŒ~„†Œ‘‹‹‰‰Š‰‰‘”—€y‘…~u‹‹ˆ„‰„ŽˆŽ…”„‘‘…‡Œ‰ŠŠ—Š“‹Œˆ…‡‘‡Œ‰ƒ††~‚‘‹Œ~‘’€“~Ž‘„•€•“ˆƒ{‚›Œ…‹—†Ž’•{†’€ˆ~Œ‡•Šw˜Ž~†Œ‡ˆ‰ˆ†ƒ”Š‘’‡Ž‡ˆ’‘…Žˆ‰v‰‚|ŠŽƒ”~ƒ†ƒ“Š›‚”„…†…“”Œ•Ž„Šƒ’’‘{ˆˆŠ‘•‡€‹‹Ž‡€Ž‘Ž…‹€ƒŒ~”ƒ€Š‰„…‡‹…’‘‹ˆ‡„“‹ŒŽ~‰Ž‚›‹’„„†ˆŒ–‚‰„z‘ˆ‡‹x…‹x•ˆ…{z†ˆŠ‚…Ž‚œ‹‹|{…“ƒ€”†Žˆ„‹•ƒuˆ’‰~‰ƒyˆ‚‘‚ž„r‡‹Š…ˆ‘‰‰„‚”y…sŽ„ƒˆƒrƒˆ”†„˜pv’†‘vƒ–—‰ƒ‡‰Š‚‰Šˆ“–Œ„r‹‹‹y‹ƒŽ‹Šs‘t‡ŒŠŽŠ‰‰Œ‡Ž‹zzŠ~{Ž’ƒ‡ƒƒ‰}w‰’Œ”šˆ€„“‡Œ‰‘”™‹”‡‹‡—„yz’†{‘ˆ„zŽˆ›‰‡‘†ŒŽp‰Š—~‘‡€‚~–Œ‚Œ‰ƒƒ}}m‚‹Œ‹€Ž€…‡Ž‹‹ŠŒˆ~Ž‹Žˆ…Š›‰†‡€”‡”‰‡–ƒx†ˆ†q‹‹Š†ŒŽ’Ž‚„‰Ž†ˆˆ†Ž‰™ŠŠ‹‡Œ‹†‰€“’ˆ‚ˆŒ€ˆŠ‰ˆŒ€}ƒ“|Š“†‰Ž‘…„“ˆŽ„™Š‡‡Œ’‘ŠŠ…{Ž„ˆˆŠŠuŒ‰Œ‹~‘‰‚ˆ€–€‡Žˆ–‹”‹‡††‘‹ŒŽ†Ž€ŠƒŠ‰™ƒŠ‚‰ˆ‹‡Š†“ƒˆˆ’Ž~ˆŒ‡Š“z…ŠŽ’‹Ž‰„‹‘‰Šˆ…ˆŒŽ†Ž‹‡Ž‰‰w”˜Ž‰††…‰ƒ‰‡•ŒŒ‹…’ŒŒ—ˆŽ}‡”Œ—Œ†‰‰‡‹Œ‚‡ˆˆ|~‰‰„„Ї…„‚ˆ|…ƒƒ‰ƒ„ˆ‚Š…†‹ƒ€‡ƒ‚w…‡ŠŒ……„Љ‰{„‡‰€‰…ƒ„……„……~ƒ‚‹ˆŒ‡‹„ŠŽ‹~ƒŒ‹ˆ‰Œ††Š‹…†}’€‡|…‰x€‹Ž…‡„‰‰Š‚ˆƒ‹†z‡Ž‰Œƒƒ‚†‡‹„Іˆƒ†wžƒ‚u†„z‹•‚„Šˆ‡‹‚…‰“Œ~‚„ˆ~‰†‚‚Œ…ˆ‚„†„…|‹‰‡…Š—„†Šx‡•„”…€†ƒ‹ˆ}}Š„‰‡‹†‘ކކ‹‡†„‚‰›x‡††…†–‡Š…Œ…“ƒ‹…zˆ‡†…†k†pއ˜›Š…€“›šˆŽu ~‘j–ƒ…‘ƒŽv{o“n„”Š€€ˆƒ“|yn‘€“}••‡—£y‰šj—…x¦›£‘›k“˜‚‹‰‡€‡‡r5—l’•|‹€~¡”‹“’‰—~–ˆ‚†{…‘†”y{™uš•›”œŒ˜w ¢z¡™nƒŠx|„Œ{‰ˆnƒ˜›„…„”ŠŽ¢Ž‚…‹Ž}ª”i ”™ŽŽ“‚‡xwŠo–Š…t–“—~Š—ŠŽžt”Š…šŽ˜„‰šsƒu|’Œ†{Žyˆƒ ŽƒŠ€›„Œ‘‡‹‘}…˜„ƒ€‹€‰‡‘œs„Œƒ„–Œrx~ˆŠ……‰†‰„…‹ˆŠ‡…††‡…†„‰‚‡„†Œ…‡…‡‰ˆ‡…„‹†‰†ƒ‚‡ˆ†„‰„‰ˆ€ˆˆ…‰ˆŒˆŽˆ…‹‚Š…„‰…ƒ†Š‚„‡Š†……‚…ƒ†Š…‡‡ˆyІ†‡ƒŒˆ‚‡‡‡‡‰ˆ„„‰€…ƒ€ˆŒ…†Š‡‹†Š††…~Ž…†…ƒˆ‡ƒƒŒ„…„ˆ„—†ˆ‡‰Š‰†}„‡‰…‚Ї„„—Œ‡ƒˆ‹}†‰Œ…‚‹{}Šˆ‰‚‰Š‹‡‚}yŠŽˆˆ†‰‚’‡‚Šƒ‚‡ˆ‹|€‰~ˆˆˆ„„†ˆˆ~„†ƒ„††‚‡„‘†ƒ…‰‡‚ƒ†Š„†ˆ~„Ž‚Šˆ‡ŽŠ{……‹ˆwŒ‹‚‹Œ‡‚‡Žwzt€ˆ‰€ttŠ„…†“ˆ‡€x“€ƒ“Šˆ‡x}„~…ˆŽ”‡}”„ƒ„ƒ‰z‡‘†‡‚}‰€…ƒŠˆ„‹„Š~“qy‰‰ƒ„‰wމˆ‹‚ŠwtƒŒ‹o…Šƒ–ŠŠŽ‰Š„‚~‚‡Žu„‰”}ƒŠƒŠ‹ƒ‡‹roŠ}„Œ‘…~‰ˆŽ‚ƒu‡y†‚ƒˆŒ}ˆ‡oƒ“…ŠŒ€z†vˆw€—‚‹‚‚z‡†„’ƒ„ˆ|‡„‹„‹‰‘‚‚ˆ}†…„~ƒyz|†‡‰‰€Š{ƒ}ŠŒ„†„ƒ‚‰‚|€ƒŠ‘ƒ‚yƒ~~‹Œ‚†¡’‡y|Š‹…‚’ŠŠ}‹Š„ƒ…Œ„š‰‹Œ~…‹–†ƒˆ€Š…„†~‘Œ‹y‰’‡z‡†„ˆ†wt„…’ˆ’‘‡Ž……‡‚’|…zˆ‰„ކrƒ‚”ކ‘qt—‰w•€z–Ž‹|’ƒŒ‰”“Œ€rŒ‰…‡†‹Š|x§z‰ŒˆŒ–˜†Ž‘ˆ‰‰‹ˆ|{‹…uŒ†‡‰~ƒƒ“|ˆ˜ˆ”}“˜•¢‹‚˜š”ƒ†‹ ‘ƒ‘…‡œš‡Šƒ{”Œ‰„ˆ~…’ŠˆšŽƒ‚‚ŽŠ†m…™‰Š‡ˆŒˆ‚~‚•…•€Œ’™„ˆ‚‡wwІ™g„‚ƒ‰„‰ˆ’˜Š“…ˆxˆŽŒ‰‰‹ˆ‹‡†“‚„y“|Žƒƒ‹‚‹›Žz‚‹’‹†œŒˆ€z†€‘‰uˆ”‰‰„Œ‰vŠq‰vƒv”†Œ…Žˆ‡Š”„‘Š—z•pŽ•™~{{„Ž‘ˆzˆlwŽŠ‹u„–ŠŒŽ~ŒŠ‹Œ€ŠŽ‹{€w‰Ž…zƒ„†”‰“‡|‚€‡—‡––Œ‡†“‹ƒw„€wŒ†Š…xŒ…ˆ~ˆŠ•†Œ’‹‡†–ŽŽ‡‰”“„‹‘ƒ”Œ‹Œ€’‡ˆ‹……Ž…€”•ކ‰|}Šs–”…‘’~‡ˆ}—‘ŽŒ‘‰†ƒ|r‹ˆŽ„‚Œ‚‰’„ƒ„‚‡††‘qŠ”‚ˆ‹z}|ƒ“‘‹‘•ˆŠ——r|rz‡‚v‘‰‰…|ˆ•„ƒ’‰‘ˆ“vƒ‰„ŽŽ‘t…Œ‡Œ‚ˆvŽ„ŽšˆŒƒ¡‹u‰}„•{|“˜„–xt“‰Œ{ƒš„ƒ‡€Ž‚‡Ž–Šqƒ‚{Œ…”‚—–r…€Š‰’ŽŒ•Š•‰~“‘|šˆvŒ„ƒ“†„zƒ‡ˆ…Ž•†•ŒŽ‰™†Œ™Œˆž†“‰‡€‰’}„‘‹™‰„‡Œ“†}‘‘Œ‡v’”y~Šˆ~‹‘ŽŠƒ{’†‡–‘‡‘’{Š˜‡rš…~{Š~‰•Œ}Š‚~|†|‹‘ŒŠƒŒ‹‡€’~’ssy‚mr”’…‹”‡†vx›rž‡‹…ˆ„vz|‹Œ…ŽŽuІxˆŽˆg•ЄЉˆ„‰†„{~†•‰Žˆ‰“…et’Šwˆ†…‚†„Œ‰yt„‹‘v‰‰†•ˆ~‰{Š„{†ƒ„Œˆuyƒ€‡}“‰ƒxŒ„lƒ€Žƒ€ƒŠ…Žn‹†wpƒxwƒ•ŠyŠŒ€†‹r•z‘ˆ„…„‚|€†ƒŠƒ‹Œ{ŒŒrz…‹‡‰‚Œz{}ƒ’~Œ…€|‚‡‹ˆ‹~Š‹Šsw~„ƒ—†|‡Œ{€{Š‹‡ƒ…„†xŒt–Œ„Œˆ‚…‚‡†ƒƒ…Œ‹~†Ž†”„ŒŒ”~v‘~q‡ˆ‰‰Œ‰…“ƒ…ˆŽ‰„‘ŠŽŽ—‡„†•‹Œ†ŒˆŒ„„‚‹‹Ž†Ž~~‰‹|‘„“Œ˜~‡’~Œ“Œ—ƒ–Š‹‹–ޑВ‹€{‡ŠŽƒ†‹uŒŠ‡}Ž‚ˆ}‡’„š‹‰…‹†ˆ’†ŽŠ‚‰Œ‡ŽŠ“‰‰‰Œ…ŽŠŽƒ‰‹‡‡‹‰‘”‰Š‰‹†‡ˆ‹“†„ˆ‡“Œ’‹Ž‡…‹Œ’‘’‡z˜•’…ކ‰Œ„‡ƒŒ†Œ‰‰ŽŠ‹œ‚‚}ˆŒ†„Œ‹Œ“Šƒsqx‘€‡}`ŸŸŽ~nŸ‚|‘ƒˆi’‘…‡}}u}g‹U‰Œ}‚\•fr‰y~‘|t…q¤…r{„}~ql…““p›—lu}~…‹}––ƒr|ƒšo–o™d“Oƒ‚rxŽ}™wge›€n†s’ˆy{z‡Œ¬p—ŒÒ‡€~z˜{œzw¤|v‹ˆ‚…Ÿ{Œw…\‹u‡x|q_†Žcb‘Œ~nˆ—ˆ–ˆ}‹nuƒz‡ƒ‚—„‚“‡‹kh}zˆsƒp‡ƒmŒŠi–z’‚†€`}„ƒ±ƒŽ•šu^}„y—z‚¿~gŒ„ŽeƒŽz‹qކ‘ƒ‘ƒƒ‰~}„‰qn{††ttkŒ•‰„†‡„{žz‹€…‡r’u}•’‘…‰„~Š||€~€”x€‘y–}„|‚…‡z€ˆ{„ˆƒŒ“‚Šk~Œ…†|‘v„†€}‘‰€tˆ’yІˆŠ„w–‰Ž…†|{‡u€†|‹‹„ޓހ„Šgl”nŽ‚†vŒ…}“pq{vxˆƒ‹yqŒ‹ˆˆ†‹tx€‚€}zš“…‡„‹’‰wt†‡Šw€€m‡‰vŠ|‚†z}‡€‡Š€†„–„’r‘{‚ˆy€yvˆˆ’‰|†Žvuˆ€{wŠx—–tŠ—•”„„„ˆ€{’—‚k~ˆ{}‰žŠ{Ž‚Ž~—Š|•ˆqyœ…z—vr‹‡ˆ}s”š€‚’ƒ‹‹‹y}ˆ{Šn‡w‘Šˆ–†žŽ‡‘€“˜‰x•‡•ˆ{|Œw’{v–•“‚‚˜Š€l„‚ƒ‡w€ˆ”“|{r•”„„”~ƒ‘~—}—Ÿ‰œŒ€˜ŒŒ™~x˜]w€‚†‘ˆ{‡˜‘š‹£ƒ†ž™{¥ˆ›ˆx‹„x£’…z…”ˆ†{u~|}’–•ˆ…w‰Œ„rš ‚{…Œ‰Œy€‰—„‹Œ‘’„…x”Œ‡‹~Œ•~“‡‚’‡–‡…t‘„‰‹‡zŒ…z‘oœsn“‰rqg—‚„’˜Žuzš{‚Ž‚ˆ~‹rqˆyŒŒ•Ž„r„z|g‘—xŽœ‚{‡•‚‰sˆš‚–„Œ™Œh’†qƒ†„’„v‘’~m†k‹„„ |‡wŽ˜‚ts€„‘v||‹{{yŽ…„„s€ŠœkŽ€v—–o…†„}y‚t–’x…€}‹ŒxŒz‡ˆ~‰“y†Šdˆ†„‚yyyu‰y€’…ƒ~€{€“z˜~…—~t‡“x›vm{|{xŒ…‹Š|†‡qƒx„‚†‹|‰t~rŽžsuy…~„““›uŒŒ‹|Œ‹Š‡Œ€…’‡™‹’’…wˆ…tЋЉ……ƒ“‡„‹‘Ž}Ž‹’Ž˜ˆ†Š–†…„‚І…‰‰Š‰‘Š‘€‚Œ‡’†ƒƒ‡•‚“І„’Ž‘ŽŠ‰‹Š…“Ž‹ˆ€Œ‰vЇˆuŠ„‰€Œ‰‚–†—‰’Ž†ŠŒ‡”ˆ†Š‹‡†~}‹•‘ˆŠˆ…‰‘Ž‘ŠŽŽ‡ŠŽŒ—Œˆ„Š……‹‡ˆ‡Šˆ“ˆˆ‰ŠŠŠŠ‘—…vž‘‚‰‰ˆ„ˆŽ…‹Ž…‚ЉІ‰€ŒŽŽ’ŽƒŠ’„‹ˆ~‡|Ž}›™‡„‡‚Ž‚˜sm€Šƒ{sn“ˆ“Š€€¡z€’€‡ƒ€t‚‘„‚Š‘€’ƒv‹ŠŠŒgЇ†ЉЄ||†ƒŠ…š“‰kxŒ‚}Š€Œˆ|zq‰€‹n˜€{”•‡~Љ˜„ƒ|w‰{}€„Š•Œ‚‹tyˆ†q•g„‘}‡}}Žq€ƒtq€†‰€ˆˆ€vކ}|‹|x}ƒ†~’‹‚‡‡{„ކzŒ‡‚Žz‚~y‚ˆ|†qƒƒŽ’‡†…‰~€‰Ž‹€Œ„…p~~…‰‹Ž……Šƒ„x€“{}Šy†““†~…‰‚z‚„…”††‡‡‚‚„…ƒ‹€Šƒ‡ˆ{Œˆ†‹}…ˆ‡†„ˆ…‰‡‰Ž‚Œ‹Ž„‡Šƒ…ƒ†‹‡…„†ˆ„~‰z…{‡‚}‰‘ˆ‰…ŠƒŒy…—“‰……€Ž~ƒqŠ„‰ƒƒ‰ŽŒ‡y‡Š‹}‘‡„‰’v‹†‚ˆ‚—„‚†‡ˆˆ…ˆ‡‰ŠŽˆz‡…‡ƒ„ƒzy…uŽ‹…’ƒ~ˆ‡{…‰††Ž“„‘ˆ…‡‰†„ˆˆ„Ž……†€„{ˆ…„ƒty‹}‘……†Ž‰‡ˆ…„‡‚†ŠŠ„†…ˆ‚’}…‡€Œ…ŠˆŠ†—†‰‡ƒ‰‡xŽŠ“˜„ƒ‡|}Ž‚ˆr’†•˜‡{ƒ‡€‚t‘‰‘‚’…•’‡†“ƒlm•…‡„r|‚“‚}‘‡¢‚‘ˆ——Šn†y—u˜}Žƒ“Mw𗙣‘|~Žt’Šƒƒw›“zƒ}ƒ‹†€‡š—œ†ˆ¡‡……“}…x”•…}‹™†l•’„Š|•• or”Ž… Ÿ‡‹†zx˜ŒŽŠw‚Œ€|’……’‡…‡›…{ƒ|„Šš‡•Œt‘~ˆ¬‘‘¨‡†“”Š…€±w‰x”œš}ƒz—€†”…uo™v–ƒ„~‹„“~Žƒ†~ƒ¨‡{x‘ˆ~Œ®›y‰sˆ|š‰Š€‡|ƒ‰‚Œ{e€ƒ†‡syˆŠs•‰‘r{¢y…Œ|‹€u€ˆ}~’‘…}Œotuw™Š•˜™„wŒuŸ}‚©‚†Ž“‚s‚…xtŠ—’‘ƒ|r‘‹x†{“k€‹™“ЉˆtŒŒŒ}‚z‰Œr‡…€ƒ…’ˆŒ„…r†ŠqŠ{~Љ~sŽ„v}Œs~‰‚œu…“st˜yŽš{}ˆƒ~{|{y{„€|‡‘{v‘}„}†¢€~{‹‡‘…‘‚†“‰}†…€“˜x{zˆzx’„ˆ€‰‰{ƒq€ƒˆŒ†‡zІtfwމ‡{…x~Ž”—~‡‡ˆ“‹Ž‰‹‹ŒyŒ~‰†„……އ‚ˆ‰}ƒ‹‚–†‹‰Š€Š”‚t‰„˜–†‹ŽŒ€‡‰|‹‚€†•ˆ†—€•‹˜ˆ{–˜‡‡‘Œ†ˆŠ„s†…‡„‰xy—„‡Š…€Ž‰„|…‚ˆ†˜~“‡††‘Žsƒ‡™‚†€uŒ’yƒˆ|u€‰€’z…„—†z†~z ~~†„†˜‹“zš‰v†ˆ‡ˆ|‰‚‹|w}•…ˆ’‡xŠ…‘‘—„ˆx‘™{Œˆ‰~‡†~c~yƒƒ|„‹Ž†…z†{z†‡•Ž{Œ‘{‹„ŒƒŠ‡žy|…xˆ”˜‹…~ŽuŠˆˆ|zžw‡€|x‡ˆ‚ro‰€‡ˆt~†’’ƒ‡s~ƒ}€ “ƒv–’“’†‘”—ŒŒ„Ž‚x‚‡Ž†~•~v‰”Œ…‚‹Ž–~•’y‹t‡Ž‡}Ž€‡w}~…{‹ƒ‚~€{†{šŠˆ†{„z‡‚‘y“pŒŽ‚ˆŒŠ„x€yŸ‰{}‚…ƒ‡„uŒŠj‹ˆ‰Žxs‰uiŠkŠs˜}‹Ÿˆ„ˆv‹z†}‚~…†‰{y~z˜‘†}{€’†„…„†ƒ’z{qx}y‰{Œ„}†‡†–t|™Žˆƒƒz“Žxˆ|fˆŽ‡™ˆŒ†‰†††††††††††††††‡†††††††††‡†††††††††††††††††††††††††††††††††††††††††‡‡†††……††…†††‡†††††††††††††††††††††††††††††††‡††‡††††‡††…††††‡††††††††††††††††††††††††††‡†††……††††††††††††††††††††‡‡†††††††††‡†††††††††††‡‡†††…††††……††††‡†††††‡†††…†††…†††††‡†††…††††‡†††…†‡‰…„™‰ƒ‹—ˆŽ†{‹“‰’‰‰…vЉq†ˆ‡‹‰“…„–‹~‡††‹ƒ„„Žˆ‹–‹Š‰…€€Œˆƒ‹’|ƒŠ€‹~€h•}Š’†€–{Š’†‚–˜Œˆ‚Ž‘“‹‡zˆ‡ŠŒ…s€ˆvޒЇ…Š~ˆ‘‚•‡‰ŠŠ‹‹Š•„ŽŽ…’‡„„„‹“ƒŽˆ…‡‹‹“„‘‚‡’‹‚ŠŒŒˆ€‰Œ‡‰Ž‰‹‰ˆˆŽ˜’ˆ‹‹’†…†Œ”‰‘‘Œ‘y‘–“„‚ƒ‹‹……Œ‹ˆŒ‰ŽŠ‘““’†‡|ˆƒ‚‹‹ŒŠŠ‰Œ…„y˜Œˆ…“€‡’†“‡€t‘y‡~Œ—˜Œ‘˜™u}wŽ~{u™Š~Œ|z„™y…œ‡‘ˆ“~|…Œ†‡Ž•o‰ŒœˆŒƒ}ˆ”‹¦~“‚›‹t‰€„€x–†˜xxt“‰|•“„‡~Žއv•„ƒ…‡‹zƒƒ‰„”•sŽŠ‰ŠŠŒ“‘ŒŽŒŒˆ‘˜}˜Žtxކކ‡„ƒ…ƒ‡„Œ’ГޔŸˆ‰‰“Œˆ’‡ƒ‹‚†ŒŠŒ…ŒŒ•‹”œ{x”‰‰†‰r˜}†q{Œ‹‹Š‘Œ…{—’’‡ˆŽ•Šwƒ˜‹t‘ƒ€„ƒ‰€Žˆ„™}s„ŽˆŠo’…ŒŠ‚zy|…‚Š…žˆ‹—ruˆ~’‹œ’{”‘{z˜”„”Št‘{†}‰‘ˆ‹“‚’ˆ‡”‰‡Œˆ•‘œ„„““yvŠŠyŽ„“Š—ˆzŒzs‡„…sއ~‰‰’’‹Œ™–“‰–‹lŠŠ‰z“šˆrŽŽˆŠ”Œ‹–Œ‚‹‡™„‰Žm‹……œ‰†}ƒ‚Š~‹‹Œˆ™Ž™“„ˆ†Š”’ˆŒŽ–„ˆŠ¤ˆ—‚–ŠŒ™Œ…t‚ˆ€ƒŒ¢…Ž|Œˆ‰Š‡‡Œ“‰„Š{ޒއ›”Žˆ‹y ‚u…ˆ~…‚š•—}œ¢Œ‹Žƒ•„‡–‡Œ’†Ž‡…‰—…x“††y…€„Љ~~‰…ˆŽˆ‡‹‹t…†‘†”‡{„‘‰ˆ„‚ˆ{Š‹‡‹‰|†…ˆ‰~q‘Œ‘Œ‹‡ƒ~‰ˆŒ~‹w…ŒŽŠ‰Œ˜€…t„¤ŒŒ}Їw‰ˆ‚‰x–˜}~Š™~z’Šˆ’ƒz‘‰|Œ‰z—‘‰†ˆŽ•}~‘—†{ƒ‹‰}‚’‘yБދ„ˆ†”„–ƒ”‘šwƒ‡‹’qŠyŽvŸ‹†|”Œt‘ˆ„”‡Ž~“‘€’”“‹z€}‡Š†‘Ї}–‰ƒ‡Ž…–‚Š€‡Ž‡~Ї•–„‘€…ƒzŽ’“Œ‹€‰„‡’~ƒ|“|Š~ƒŒ„™{‡‹…†y›„‹‰|‰}…Šy‡‚Ž‹s‡‘Іzƒuˆˆ‰š{…ˆ‡„zŒˆ‘‘‰œ‡…p‚ƒ‰„Œ{ƒ‡’–™osŒ…’s’”ƒ‹|‹„Šw‰Š‹Žˆ~sІŽ|‡”xŠ•z‘s’ˆˆŒ‰–ƒ‹ƒŽŠ{Žy‰‹€’†…{‰z}’–ˆ…‹’ƒz˜–Ž…‡†Œ•„‡……‹šŽ‡Œ†}~‹‚ˆŽ„Š–‹Œ‰wˆŠ••Š„’‹{•‡Œ†Œˆ…‰|‡ˆpˆˆŠy‰}‡|„„‰}z‰€„{…’“šŒ}pw™}„“Œx‚‚„•„z‰„†|Ž„›…’†Žƒjv€€…£‚€£xƒ…’‘o„¥‘~‹‹ƒw›—™r>†yŽ™‚‘‰€„аv„…Œp‡…¤‰‹ƒr’Љ–~“s…{}U¡…‡‚x††p‹„—…zxy~„ƒ¥‡Œƒr†nƒ§Š„‡Ž}”†v˜t{€„ž‚~—¤‡’†˜Œyy”…y‘‚“’„…s{x‘zt„Œ‚‘tnxˆ•‡u™†˜ˆi„wŠf~‹Š|¤q‰v™X~ˆ‰—m¡vƒ„~n‰’†‰„¥uŒžƒ“ƒt£–R•¦Ž…yƒƒ‰€ƒˆŒŠv‹ˆ…ƒ‡††Ž†Œ„„†ŠŒˆ…ˆ‹‡‘zŒ€‡~Œ–„‰Š‰‚‚ˆ‹ƒz‡x…‚‰~Œ…‹rœŽ’„—‰Œ€‚x…„‹‡™„ƒ~‡ƒ†‡“‚{„ˆˆˆ}‡‡ˆ¥Š•q„†Œˆ‰‰Œ…sm‰€‚“…ˆo}‚І‡Šš~•~z–{‡Ÿ‰‰ƒ‹Ž™‹‡z„ˆŽ¡s}‡v{‰„€tWx…ŠŽtˆ‡y…‚—}ˆvyt”„‰–‰{„zsƒ}Ž‚…u……ˆ“„£‚‰†všŠ€ˆ„{‚“’Š„•†…ˆtˆ’¦{v„u‰…Œšš‹…Šƒ‡ƒ†‹‰ˆ‡‡Œ‹‡”Š”Œ–•v†Š‰rŒ†ŠŒŒ…‚‡ƒ‘‡Ž‘‹‰ŒˆŠ‘Œ‹—‡‰Œx‘†‡†Š‘ˆŠ‰Œ…Œ…‹†Œ{‹”~–ƒŒŽ‹‘‚–…’Œ’—Љ‰ŠŒŠ‰‰ƒ‰“|‡‡ˆ’‹v–‹Ž‹}މ†‡‡ŽƒˆŒ‰Œ”‡Šƒ…ƒŽŽŠ‰‰‹‹‹‚…ŠŒ…“ŒŒ€Ž‰ŠŒ‡„ˆ†’Ž…ŒŒ…ˆˆˆ‰ŒxˆŽŽ‚ŒŒ‹‡ŒŒ……Œ†‡Ž‹†Žz™Œˆ‹‡‡ˆ‘Љ‰˜ˆ’Œ‰‡‡’“‡~Œ”‰—ŽŠ‡‡„‡ŠŠŽ†‚Œ‘……†’Šˆ‡…†‹†††‹…†‡‡‡€ˆ‰†‹‰‚…†…‡…‡‡ŠŠ†ˆ†‰„ˆ‚†‰‰†~……†ˆ‹‡„††„‡††…†‚…‰ˆ‡„ƒ…ކ‡…Š|…Ї„…‰‡‡…‚††|‡‚‡ƒ††„‡‹~„†…‹†‡‡‚…‰…ƒ‡ƒŒ…І†‡„‡†ˆ‰‰Š‰…‡†††…Œ‰ƒ‡………†ƒ‡‡„‡ˆ‰„…‹Œ~ˆ€‡‚ƒˆ„€~‰†‰‚ˆ…‡†‰†ƒˆ‹‡…„…ˆ…‹„„†ˆ††Š‡‚†‚‡†‡ƒ†…‡‡†ˆ‡†…„„‚‡‡ŒƒŒ„Šˆ‡‡†„‰‡ƒ†‰„ˆ†‰„…ˆ‰ŠŽ†‚ˆ‰‡†‚ˆ…‡ŠxŠ‹‹‹…‡ˆ’€‰ŽŠŒ‰›‘~vˆqŒ‡Œ‹‰†…’‡‘‡‹‰}‰‘Ž—‰’†Ž”†Š‰””’Š„ŒŠ‚‰‡~Ž|‹•†‘ŒŽˆ•†“Œ†š‹ŠŠ’Š‘„‹Šƒ„“ƒ‰Š†Š–†u–—Š{„‘†‚‰’††Š’Š”‚ŠƒŠ““’ˆŠ‡Š„‹ŒŒ‡ƒ‘‚Š„}Š’…Œ–†„‡‡Š’Œ‰„”…“ƒ‰Š’ˆ}…‰Œ‹Š†‘‰Œ„Ž”Œ†ˆ‡Œ„‹Ž{•ˆƒŒ‡‡‹ˆ„ˆŠ’†–†Ž‡’–ŽŠ}—‚–І‹”†‚…ŠŠ†~‹‰“—Œˆ„މ‹‹„”–‚y‚€r‰‹…‘ƒŠ‹Žˆ”ƒƒ‰…xˆŒŽ‡–‰Ž’‰Ž……Žˆ”‘’…ЇŒ‚’ˆŒ‡€‘ˆ–‚ŒŒ{›Š’•Œ‹„w•Œˆ‡Ž‘‹•Š…‘…ŽyŒ€~‹ˆ“‡xž‰‹Œ}‚އˆˆŒ””ŠŠŒ|~Ž„ŠyŠŒ‡„ŽŽ†‰…‚‹Š„Ž’•ƒ‚„„‡‘‰†Œ‰Š”……Œ‘’|‡ŽˆŽ’‘’„މ‘ˆ‡‰‘‡ˆ‰ƒ‹„ކ}ƒ„‡‹†…‰‰ŠŒˆ‰‡ˆ‹”‚‰‰ŠŽ‚—‰“„Žƒ‡‹—ƒ–‡‘„Œ–‹Žx…Œ†Š‚‡y“x„ƒ‚“‘ˆŒ’’Ž‘‘y…‹Œ€š‚ƒ„‹†szˆ‚•Šrˆ˜€x…‡x‡Ž…}‘ysŠŠ‡Ž’Œ‹”“…›s™ƒx‚pŽˆtˆ‘•™’vnr„…vˆ‘¢•‚ŒŠ‘žœy”Œ“|‰–|˜€„{™š—Šƒ•yŠ‚’o™s—™r’ŒŽƒv’Š˜‰šˆ•Ÿ‰r‚|€}~‹„}‹–‚ˆq–”‘~–”sšŒ˜ ’ˆ¡’”z‹z}‘¦ˆ†“Œx¢…ž}‰’w€™}‚–‡‰ŒŒ…‡£ƒ‘„zŽ‹ƒ„xy‘s€Ž—‘tƒƒŽ†“Š‚Œ…‚Š’‘ˆ‚‰Ž€ˆŠ—Œ‘}w‰‡†rˆ‹†‹Ž~ŠŠ’~ˆ†•ŽƒŠŽ“Œˆ•‡ŽŒ‘…†‰‡€‚ЋЕ{ˆ†}{’Š–…†‹‡ŠŒ”†‹’”ˆ…–ˆ‹Ž‹‰”„…{‘”‡ˆŽ‡Ž–†v—މŒ|…“ŒŠƒ‡„Ž{•…‰‹€†…–’ˆƒˆ‰‘†„Œ„ކˆ†ŒŠŽ‘‘’‘ŽŠ~Ž’”‡”„Œ…މ‰–‹…†‰‡‹…‡‹‹††•ŽŠ’|Ž’‰†Œ…Š…†…„Š‹ŽŽŽ†ˆ’‰‡‡‚†}Š‘‡‘‰…ŽŒ†ˆ‘………Ž…‹‹ŒŒ†ƒŠ‰ƒ„„†Š‹‘›~u„…q”‘ˆ‹Œ€Š…„Љ‘ŒtƒŠŠŽŽ‰š‰‡†’Œ…†‡Ž”ŽŽ‚ˆŽŒ††‰€~†~”•€‘‹Œ“Š‘Œ’ЕЗ‹ˆ…‘‰‘‹‹€‡’‰‹„}†ŠŒw“Œ‹|Œ†ƒ‹†ƒ‡‘ŠŒ—‡Œ‡‰‰’Љ‡„‰‰Š„˜Š›Š…„’‡Œ‹‹–ˆ•‡}€Ž‡ƒ“ŠŽ…‰Ž‘‡Š†ŠŠ†„ˆ‚†•‘‹Žˆ‰†‹•Œ˜„…ˆ|•‹”…ŒŠŠ‰Œˆˆ‹‹…—Љ†’‡‡~Šˆ‰–І‘‹’ ƒ‘‡ŒŽŽ†ŽŽ|Š‚‚އ„v™‚‚‚’Œ‘•†ˆ˜’wˆŠ•‚‰ˆw~„†ˆuvЇ’Šrƒ–މƒ‘~v†~ƒ~‹}r…†”†“„‹Š”Œˆƒ›w–…w}~Šˆv‹‡•›ˆnt’…u€’”‡…€„Œ…Œw“Š€‰xŠ…’‰Œˆ”–‚…‡’š{–‡Œ’‹ŒŒ†x‰–‚y“‹‘“Œ€†ˆs‡†ˆˆ‡•‰‰k¢—…˜•}•Œ‰†›“Œx‚˜{’˜‰{‡|‚™•’‰ƒ…{І–r}›€ƒ„‘‹Šz˜Š“І•Œ††…u~‡…w…ˆ‘{ƒ‚Šˆ‰‹‰€~}Žu€„ƒx‰q‚€z‡€‚…„І–‘x—Œ’z}•Œ†”‚}ƒ…{w†‡¤ƒ…œ“•Žƒˆ‡eƒ–“€~jŸyxr…†…‰‹€’‹x…—ˆš•~††‡’vˆ‡œ€†“•‹ˆ†}‡zŸ‹‰q…j€…y…~†|n{‡ƒš{ƒz|‚…ƒ—‚yzŠoŽ‚–†wˆ…m}}€Š~z‘tt…n†{ŽŸ‚}”‹Šq„{z›pˆ‡Œ‚€‘Œl|ˆˆ…•“˜Š‰|tƒŠƒƒ•†‹vp‡u‡“n}‹rr‘„„‰‰‘‚‡˜ƒiwŠs„…‡—‡Œ‡žozz‚‡‰rƒš„u”Š}vž“‘v‘uˆ—Š{Žˆ~}‚†¤•”k‘„‰„zˆzˆœ€šˆj{‹‚€}€u‚…•Šƒ²‚šÁœ‡x›·¦|it„«h’…‘|”j{Š|„¡Ž†ƒy}t…•‰Ž–zx›„€ƒ…²Œ“k~……®ƒ€Ž‰|€pб§Xj™‡|Š ƒ‡ z“h p–rƒƒ~‰ƒž†‡‘Å…«~‚nƒ—…{u±Ÿ£—j”y‘Ž~“¨zž™w£’‚ˆ“k¡o{p—šwŠl‹žŒ…¢T‚›L‡„•k¢…™}‹{œzz”}xkew…ˆu™z‡†Ž”†~£‚Ž‚‚ˆƒ‡”Œ…Œ‰ŒˆŒ}uŠŠ}{ކˆ˜…ŠŠƒ›~Š€ˆ„~‡}Œ}ŒŒsŒ‡ˆ~yŠŠu†|Љ”…qŒ…ˆŽˆ€†vŒ’‚}—yŽ~m†ˆˆˆŒu‚ƒŽ‘†ou‰…•r“‘ˆ…‡‡…†‹Š~Œ‘ŽŠ}uЉŒz”Š‹”Œ~’p‹{ƒ‰‰‡‰’ˆˆ‰†“s†ƒ€‹zЇ‚ˆ“y‚Œ‹—‰ƒ‰‚„w“š‹ŒŽ••ŠŽ†‡‰’Œ„†„†ƒ‹‰ˆŠŽŒƒˆ’Œ„€‚‡Œ‹z„Ž˜‡ŽƒˆˆŒƒŠ‹Œ…‹†}‘y‚}l…ˆŽ‰…†{‚t‰†ƒŒŒƒˆŠ‹†ƒ…Žƒ‚†‰‰’І‰ˆˆˆ‰…‰†…‰ƒ‰†ƒ†…„‰ˆ‰ˆ€††‰‡†Š‹ˆ‰ˆ…„‡„‹€…†ƒ‡‚||‚…„Š‹…Š„†‡’‰‰„ˆ‡ƒ„†‹Š…~‰‡Œ„†ˆ„~ƒ†Œ€‡…ˆ‡††‚ˆ……ŠŒ‹„ƒ…Š„‰„€€ƒ€…‰ƒ‚r‰……Š‹„“„‰„Š„}‡†‰†w‹Œ‰‚‡}€ŒŠ‡‚ƒ†„‚„‰ˆ‡‰‡‡‚†ˆ‚„ƒ‡„ŽŠ‡‚‰†‹‡ƒ‰ˆ‡Œ|‹ƒŽ‡…Š…‚‡ƒ}‹‡~†‡ƒˆˆƒŒŽ„‡ˆ‚ˆŽ‚ƒŒŠ†‰…ˆ†‚…„†€Ž‡…‡†…„††‡††…††…‡†††††‡†††…†††††††‡…†…††††††††‡†‡†††††††††††††††††‰†‰††‡†…‡†‡†††††…†††‡††‡†…††††……†…†††††††…†††…††††††††††…††…†††††††…‡††…††††……†…‡…†ˆ†…††††……‡†‡†††††††††‡††…††‡†††‡†††††…††††††…††††‡†…††‡†‡…†††……†‡†††††‡‡†…†††…††…††„‡†…††††††††…†††††††††‡††•ƒ‘‡Šwˆ‘‡‰†€†…„“‚„{˜z‚€ŽŠŽš‡”ŠŠ|‡}•‡Š‡€ˆ„‰xv†{‰v„œˆ‰…ŠŽq‡~Š€š‹v’ŠŒ‰v’ŠŠ‹—Œ”}™u—‚o‹‹~‚€‡…—‘ƒŒluŠŒt†”––‚zŒ{‚Šz‹‘‹u‚x–„ƒ€ˆ€’™’‰|…{‹Š”~“ˆŒŠƒ‹ŒˆxŠƒvŒŒz‹‡Œ}†‹›…„Žx”„™‡Š‡–‚‹…“Šˆ†|–{Ž‘€†‡”†š’‘‰Œˆ{ƒ|‘{„˜ŽŒ‹Œ‡ŽŠx•™‹ˆŽˆ‰……{s‹}pŠ…Œˆ€…}Œ…Œ†ƒ„‘€ƒ’~ˆ‰‰Š†‚’‚„Š…‹‰‡˜š}tŽˆƒp““†Š€Š†‘|‘‹‘’Šr‰ƒŒŒ’‘™‰Š‹•ŒŒ€ˆ’¡ŽŽ‹ˆŠ‹†„Œ‡€€†Œ}’–ŽŠ•Š‘‹†‹‡š‹Šˆ™‡‘Œ‹‹ƒ~“Š‹…ƒ‰’‹v““‰}„Ž„†‹‡†ˆ–Š‹‘‡„‡“„‘Šˆ}ƒ†Œ}™‹”‹†Ž“v‰ŽŒš…}~”„€•‚Œ‰ŒŽŒ‰Š‡‘„‹€~|‹‡Š“’‘—‹’Œ„ŠŒ‰‘†šˆ†Œ|’Œ—‹‹‰Š‡€‹Ž…‰—‹‘‘Œˆ”•‹„}Œ‘†‡–އ“—Ž‹‰”‘–€‚ˆ‹‰ˆˆ‹ŠŽˆ€ˆŽƒ‹‹†‘˜w‰€r‘ˆŠ…ƒ„”‡Š€…•‹€…†Šˆ›‰‰ˆ•‹€ƒ‚މ—’„ƒŠ‡ˆ‰’‹Ž‚‚„Œ€“„Œ‡‰‹”‹„ˆŠ„•‰…Ž’‹•ˆŒ…|}‰ƒ|†‘‹vއƒ}Žƒ„ˆ‡€Œ—ŒˆŽ††…Œ‘†Ž‰‰€ˆ†Œ’ŠšŠ„‰Œ‰|…‰—†–‰ƒ‡‹‰‡‰ˆ…‹…‡‰‹‡‚†ˆŠ‡Ž“‘”Ž‹‰…„މŒ›†‰‹{’•ƒ‰‰Œƒ‚…Š…ˆ—Œ–•„ˆ~ˆŠ‚‘ƒŽ‹†ŠŒ‹Œ†……ŽŒŠ†Š‹‡~‚‡†•‹†Ž–€w‰…ˆr‹ŠŠ‡Š‰‡’…ˆ‚‹‹‰ƒˆ‹‰‘Œ†—‰Œ‡ˆ†€Œ…†‹zŠˆ‹ŽŒ€|‚}Œ•‡ŒŠ‘ƒ„’‚‹’’Œ—ŒŠˆŽŒ“‡ˆ€‡‰‹‡†‹v‘ˆˆŒ}‘Љ„~†Ž˜Š‡‰…ƒ•†’ŒŒƒŽ‚‡ŒŠ—†˜…Œ‹“ŠŽ‘ŒŠ‚…‹‘‡”ŒŠŠ”x‰†‹ŽŒ’‡…†‹Œˆˆ‹‹‡Œ‰‡ŒŽˆ†Žy™Š‰Šˆ‡‹†‚…‘Œ…“Šˆ‰‹‰†‹‡‡}‹‘Š•‹Œ‡ŠŒ‡’†‡ˆŠƒ€‡……‡ˆ‡„~Š…‡†‡††‚††‚„††Š…………„„……†…‡‹†„ˆ„…†‰„ˆ„…††††…†„…‹ˆ†‹„…†ƒ‰‡‰‰‡…‡†ˆ‡Œ…„ƒ††‚ƒƒˆŒƒ‹‡†…ˆ††‰‡ˆ‰‰†…‡Šƒ…‰†„„†‰……„††‰„Œˆ…††…†…Š„‡…Œ‹„Š……†ˆƒ†‡†|Š‹……‡Œ†‡Š‚ˆ‚Œ‡‰‰…„…ŒŒ„†…†‡‚†††ƒ†ƒ†‡„…„†‡‰‚†Š…‡‹ˆ†‹†Š†‚‡„|†ˆ…‡„ƒ…‰ˆ„|ƒ‚ˆ††Š‹†‰†ˆ…†€†ˆ‡ƒ‚ƒ†††ˆˆ…ŠŽŒ†…ކ‡‚„„†…ƒƒ•ˆ“†”Š–ƒs˜„s‹†‰‰Œˆ„’†}‰‘Œˆ‘‹“ˆ‹Ž‹Ž™‡‚…‹Œ…‡…Œ…‹z…Œ‘‡…“‹|„“”“ƒ–ˆ•‚”ƒˆ‘Š˜ˆ“ЉŒ‹Œ’“|’Š‘{‡‹ŒŽwŽŒ†Œ}‘‹Š‡€†}ˆ“…„—ކ‹Šƒ‡Œ}•†‹‰…ƒ‹Œ‡„’‰š‹‡‡‡€Ž–‡‰~‰ŠŽ„Ž‘Œ‹‰‹ŠŒ†‰ˆ…Ž„ˆ‡‡–ŒŒƒŠ„š‘“Œ†z•”…އ‹Š‹ƒŠ‘ŽŽ‹€‡’€‚}‡Š‚„ŽƒŽ–’‹††‡…†…†††††††††‡†††††††‡†††††…‡††††††††††‡…††††‡†‡††††††††‡…†††††††‡†††‡†‡†††††…††††††††…†††††††…‡††††††††††††‡†‡†††††††††††‡††††††††††††‡†††††††‡†…†††††††‡††††††‡‡†††††††††‡†…†††††††††…†‡…††††††…†††††††…†††††††‡†…†‡††††‡††‡†…††‡†…††††††††††††††††…††††‡†‡†‚Œˆ‚†ŠŽ’€x†ŠŠ€‹~q‡’‚wyŒˆ’‚Œƒ{Š|‰‹|‰‡ˆ“‡‚…‚„Ž•ŽŒ{”‡~…€‹zx†‰ŠŽƒ€ˆ„‹Š‚•ŒŠ‰„ƒ‡‘wvІ‚~“~‡‰ˆ–ƒ†}ˆŒ‘k’…’˜†—ˆ‡……ˆ………x‹Šƒ‚“{ŠŽ¤‚†‚o|‰{z‘‡І~†u‘‰xzƒ‡ƒŠ‰x†„ˆ–‚†‰†‘ŠŠ‚”|–ƒ}…‰€’{†~‰ŒŽ‡“ˆ‘‡‚u€Œƒ‡Š’ƒ„{y‰‡~Žˆ‡…|‰ƒ‚†ˆ’…„z€‡|ƒ‚vƒ}ƒ‹„ƒ€†ŽŠ‹†{’Œ‡ŠŠŠ€ˆ‡•Ѐޒ~w‡‡„q‹‹†‡†‹…‡’Š|Ž‹†Š‰…‰ˆŒŠ—ˆ†Œ‡‰’‹ˆ‰’z‹‡•Ž}wŽ~ˆ”††‰‹‡Ž”‡‰“’…„–‰‰ŽŒŠ“‰‰‚ŠŽ‰†„Ї’–ƒu•‡|Š‘†ˆŠ€‚ƒ”~–…‰‰‹‚“‡•ŠŒ…‰Š’„ƒŽ†’‡Œ…ŒŽ‡’’‹ŒŒ‹”‹‡•~І‹†”’ˆ‰…ˆ‰ˆŽ‡‹Š…ŽŠƒ|Ž”‡†‡ˆˆ†ƒ‹‹‡ˆŠ‹ˆˆ…ƒ}І–‡„Œ…‡Œ‚ƒ‘…‚‡‰†{‹‡~ˆ——ƒ~ƒut‹z¢ˆ††š…›Ž{n“}v’‹ƒ™yƒ€uƒ‡…†}–~Š‘ƒ€‚ƒ|…s‘‹}‹Ž}ˆ†Žx‚ˆ}‹“ˆ‚Š}‘˜‰w‰‘‘‡‹‰xƒ†t†}‰‹ˆŠ‰‰‹~„ŠŒ‚‡Œ‘–yˆ—~˜‹”•{š‘‹ƒƒ‡™„•‰‡ {{‘›}ž›˜yŒ†ŠŒ†ˆŠ‹Ž‰|šu}Œ{„‡rŽ„{uŒ†…¡‡ƒ…|‹œ†‡~…„x’Ž€…ˆˆˆŽŒ•Š€Œ•ˆy‡Š™€~‡†€¥‡|Œ£ˆ‡…Š•–Ž„€‚Œ~’Œ„…‹–†ƒ‹‚yŒŒŒ~~‰{Š—ƒ“‰ƒŽƒ€”€†ŽŸ|ˆ†‰ˆw‹‰‹ˆƒtІЀp{“‹’šx‡‹•“{–t‡{u~‚|‰xˆ†’‘ˆˆov“w†r…Œ‚xˆ‹ˆ‘ƒ“ˆŒ|w†Œt‹•}„‚Žt„……‰‚“‚†‘†Œ‚wŠ‚Žˆt—‡‚‡ƒŒ–ˆŽzŽŽgŠˆ‘‰ˆ‰‡|}˜ˆŠ–Š~•Љ‹†x…ˆŒ…‡€“‰—‚Œ…ƒ‘š…ˆŠ–‰‰Œ‡zƒ„’†‚{‹zއŒ‡}ŽƒŽ‡ƒ~†‚n‹„~l…ˆ’ˆ‚‰r‚ˆˆ‚‡n†Š˜}v€kx†‚ƒyƒ{˜……˜‹…’‰rЉ|“€qx‚~‹Œ“Ž…ŒŽz•‘‰¡‹‰’ŠŒs„y“‡‚Œ••’„z€…•”‚Žˆ‰†ƒ„˜}‰vƒ€Š‚Œ’}„z›ƒ•‚Š…„Šz‡Š‚‡„—„Žv”ŠŽ{{‹ƒ”ŽŒ‚ˆŽ„ˆ‚‘~‚ˆŠ•‚‰Ž|y™Œ“„Œ„n~‚v‹r„z…{Š|s‚tŠ“’‹”‰ˆ„{‹†}‡‚t€ƒt‚†“”ƒ…ƒ’†‡Œ‡€„Œ‡€…‹›}†„‚‹…ƒ‰¡x„{€’‚ˆ‡•~‘މ‰„‡Œ“‰ˆŠŠ‹}”z|z“Їzz‰„‰—‹…Ї‚™†Œ~‹†}‚…‡ƒ‹u”†‰ƒxŠu†ˆ‹‰‹ˆr„‰€‰‡‹‹ˆ|–yxlŒ‹‚…n‡ŽŠ}‹qxŽƒ‘r‡“…w‹Š‡‡†‡Ž‹ƒq††‡xŠŠ‰ŠŠ‘„Œ}Šˆ‚ˆƒ‰Š„ˆŒƒ‡s…Œy|އˆˆ’|’Ž“ŽƒŠ‚€˜…Š••ŒŒŽŠŽ‘{}‚‹ƒ‘…„ŠŽˆŒŠ†…q‰˜ˆ‚€}‡‚މ‹†‡}p‡†Œ‰|v‹„‹Šˆy€zŒr‚‘€‰†y£‰uu‰ˆs~wƒ~‹‰{‡††’‡x…‹|y…ƒŠ…y|~{…‚€|v„†‚ƒ‹Œ‰™—’…‚އ‡|Œwj‚œs€™’††„l‡‹~‰Šƒš‘ˆš‚u€Š’Ž™u†Žv}‹‡„ˆƒ€„Œ‹‹‹ˆˆ w{}’Š…n‘˜v…–‡w‡o˜†‹Š‚–ˆ{—nºtj‹ag¢‰‰u˜’šy‚€‡w{~wr›y‰d‰‚¡_‚ˆ•o„Љž€Žf‹…‘yš}kŒsˆs†xŠ~²’‘zz‡¨rzŒ‹¥v~—xމ€‚}{ކ‰v„ˆ†Š‡€l‚x‰‹‹ˆ„ŠŠˆ†ƒ‚މŒ‚‘’€zƒ„„r‹ƒŠ„„ˆ…ŽŒ‘†ƒ‘„…ˆ†€‰‹†—‰”މ††|Œ“‡‡Š…ˆŽŒŽ€}{Œ•‚‰“‡Œ‹”‘†š‹‰‡‘Š“ˆ‹’‚†ˆ‰‰–†u”‹Š‹{‚’Їƒ€’‰‚’†–†‘‡‰ƒ’Œ‡‡…ŒŽ‡ƒˆŒˆ†‘‹„‹Ž…Š’“ˆ˜…‡Š’‰Š’‹‰—|‡‹„Œ“Љ’‰ŽŒ„Œˆ††‰Œ‰Ž‡z’–‡„‹ˆ„‰ˆ„‡‰ŒŒ†„ŒŒŠŠŽˆ~‰Œ†š‰“„†…ŠŠ}Œ~‰~ŠŽ…ˆˆˆ‚ˆ‡~i~ˆ˜v~Š„‰‰”†Š†y•vŠŠ|Ž„Š}y€€Š‹ˆ‹‡ŒƒzŒ‹}„|Љ‚‹v‰…ŠƒŒ‡‘‚‰…‡‰„x†„~‹~ˆ†…ˆ„ˆy„€‰}‡‰ˆ‚‹†—…‰‡‚„„ˆ‚wˆŽ†|†‡ˆˆŽ„Š…~…vy‚Љ†~…z’u~‡ƒŠ…”x’‰Š‹ƒˆŽ…ˆ€‰…ŽŠ…†wƒ‡…‰{z}~~†ƒ€Žƒ‡‡}‚‰‹Žx~‚€„}ˆ‚ˆ…ˆ…‘„Š‚†€}„yЉЀˆ€y}ƒ}ŠŠ{Œ„}~‡Ž†‘{†|€„…’„—ys€€Œ|k~‚š{t„‘’‰„–…‚~y”z}ˆzŒ„y–}|…€––šŒ‰‡‡…|ŒŒ{|‚|“‰‚…ˆ|‘ƒ‚„…‰„—ŒŠŽ„Œ“€q}ƒy‹‡ˆ†ƒ‡‚‡‰€ˆš‘‘€ˆ•Š‚~‡Š|u‰ŠxŠ‚‡‹’’‡”€~‚qr}{……‡x……ˆ~†qŠ…‘ƒ…ƒ‹mŒƒ¢–‰‡ˆ‰„ˆ†ˆ‚|‰€|‚k„|‹~‹z}…ƒ|„ƒ“ƒ~‚x‹„x}„}ˆ€Š‹„€x‘„~†‡ƒ{~‚}†ˆ}‹ŠxyŠ~wƒƒ|‹ƒ‡|yހޑ{”…†‡†v‹ˆ…}Š‚†’ƒƒ„‡„ˆ}І€”ˆŒˆˆ…„‡‚†v…†‡‰‹„†ˆ˜„†‡~ˆ…„……†Šwƒ…}{”‰|ƒ‚Ї€†‹†}……‹€‚„Œ†ˆ…Œ„|‹ƒyƒ”„€€Ž†…tˆŠ‡ƒŠ†{…‰|„Єއ…Їƒˆ~•……’‰{ƒ|‡”xŠˆˆˆŒ…€}†…†z—‚‹ƒˆ†yƒ‰š{Ž‚€„„ˆ„†Š‘w…‘‹Š†Šz‰ƒ…Œ‹„†‡†€„„†ƒ…‰†ƒ|‰†Ž‡„†‰…„‡x}‹‡€†„‰”ˆ…†‹zƒ‡†‚~†Š‰ƒ†ˆˆŽ‡ˆy”Œ£i›•v‰{‹gu{š‹aSŠƒ†’„—pŒsnŽˆ‹ƒ˜{ˆ‚…{„y—qE‰{z„aˆ‹—™‰…‹Š”†x¼w…s‹|º“w¨’Š“zj•€™w^›~ Šwƒ©«s”žzœš•t˜{t‹›€†±…z„†Œ‚‚„ˆvuk‘–”’qƒ]‚t†©œu‘mŽŽp€¦ž‹UŒ€Š”†fhufkoo¬wz‚ujy„x‹ŽzyŠlŽpwyuxe{“”t„‘f–˜“¥ŒŽ†”zx†›|gq“\š}~…rˆˆ£qb{”qf—‡r}“Œ{yˆ¦¤••¡mV…a…oi’kžž•‹yŒˆ“‡…w‘„‘‰ƒx‘‘ˆ•„‰’œŒŒ‘Žu€“‘€‚Œ‹…„‹‚†Œ|Šv”ˆw‡ˆˆ‡ˆ‚…‡ŠŒ}ƒ‰‡”†›„Œ€–€o†Š…‹w”Š“Œzv™|€…œw€{‰‡†ƒˆ‡ˆ…t‡e’‹‚ƒ–‰uƒŽ{‘Œ“…ƒ™’‰‚ˆ‹ŽŒzŠ”rr‡‘˜Œ‹‚‡‰‹‚•’†—ŽŠ‹”›‹€€›‰”˜ƒ‡‡ƒŠ‰–Š•|€Š’‹˜ƒ…“…†Š‡’‰šŒ”Št•‘†‹›Š|“‹ŒŽˆŠŠŽˆ~€‹sƒŠ‰„…Ž€Œ“”†Š‘€w™“†‡ˆ…Ž‹mŠ‹‰ˆ…—„€…ˆŠz””‘˜ƒ€Š•Œ‚„x‰Ž†€„€ˆŒv•Šˆˆ’}ƒš…‰™x‡„|Š|†—…t”p|‚„–pˆŠ–‰y…ryŸ€…z“‘…‡–‡€€Œ“š‘}r„“‚‡‰y†˜y…†€–Œ—‚„’…‰’ {Œ™€›‘xˆ’‹v|ƒ“‡v„‹‘Œ•ˆ‚”†Š„‘ž†Œ†–„‡ƒµ‘~’œxƒ–Œ‰‹‹…—~Œ‹‹‚’€s‡Ž•u…–‰pm†‚–˜‰“yx†y~~~†ˆk€~}’‚€ª…ˆ‹†„ˆ„†‡ˆ…ƒ‡††ˆ†ƒ„†…†††…„‰ƒƒ„ˆˆƒ‡Š„‡‡‡…ˆˆ‡‡„‡ˆ…ˆ‡†ˆ†ˆ†‰ƒŠ‰€„†ˆˆ†…„‰†‡ƒ‹†‡‡‰‰„„‡‹…††‚…‘‡€‚‡†‡ˆ‡‰€‡‹ˆˆ‚ŒŠƒ…†Œ„‚‡†‡†ˆ…ŠŠ~ˆ…„…„…‹‡‰Š†ˆ…†}ˆ…††……ƒŠ†Šƒ…ˆ…‡‡†‡ˆƒƒ‘‡‡‰~†‡ˆƒƒŒ‚‹†…††ˆ……ƒƒ•‡‰…‹„‰‡…މ†ˆ†{ˆ~‡‚‘„…€†{Š‚ƒˆ…Šƒ‰ƒ‹Š‰ˆ‹†‹Œƒƒ€†‰|†‚…ˆ‡‰……ƒˆŒŠ‰…‡Š‹‡ƒ‡…’‡‘„Š“”„q‡rŒˆ‹‹Œƒ”ƒ„‡‡ŽŠw‰‡ˆ„ŽŽŒ˜‰Œ†Œ”‡†ˆŽ†‹‹‡Œ}ŠŒ}‹ƒ‹zŒ‘†ŒŽ‚…‚މ‰‡—‹ŒŠŽ‘’ˆŠˆ…ˆƒ†‡…u‰”‰{‡“Š}„—‚ŠŽƒ˜ŽŽ‰ƒŒ”ˆ•‰‘‰…‰Š…‚ŽŒ‰“‡ˆˆˆ‹Š†‹Œƒ†‘ބЉ‹Œ’‡ˆ‹ŒŠƒ‚‰Š…‹‰‡Š…ŽŽ’‰ˆ‹y™˜“…ЄЅ‡Ž‡ƒ•ˆŽŒ“‹‹šˆŠ~†–Œ‡„Œ‘ˆ—‰ˆ•“‚ŠŒxŠƒƒˆ…€Œ†‚ƒŠ‚‡„”•r‹‹p‰’Œ‡„…”„Œ|‡Ž’‹m†Ž‚„Œ“ޙІ˜‰Œƒ”—Œ„‡‰‹Œ‚•~‡|ˆ”‡‹Š”‡…‰‰†‚•‹‹‡’”‹””Œˆ‹‰ˆ}‰’‡v‡‹‰|‰‘’ƒ„—ˆ‡Œ—‡™Œ‘‡‰ˆŽ”…‘‰ˆ„ŠŠ€”Š”‚Š‘‘Žƒ‰‚”†Š‘‡ƒŠ‡–€‡„„Š…†{†‹‹š–”ˆ“ˆˆ‘‰Šˆ™ƒ†Œ{““”‚Šˆ‡Œ‚ˆ‘…‡†’‰‰•”˜„ˆ}‡ŒŒ‹…Ž•Œ‘„‘Œ…‡„‘yˆŒ‹‰wƒŒy‚‰ˆ…‘Š{‘’}t‹ˆsƒ‡†ŒŠˆ’ƒŠ‡ŠŒŽ‡Œ‘Œ—†‹”Ž‚ˆ‚ˆ‘‰‹‡ˆ‡…‡~~ŽŽ~Š•…ˆŒ‰Š•‚Š‘•‹ƒ—Šˆ…•”‡”…‹ƒ€ˆ…„’•†r‘Їˆ~„’Œ…‚Œƒ—‚—…†Œ‚‡‰”‰ŽŠ‡‰‹‘‹’†€‹‘…Ž•†ˆ‚ˆ„’“ˆ“‘‹Œ’Œ‚†Œ‡‰‰‹‘Šˆ”Œƒ‰Œ†’””ˆ‘{“Š‹††ƒ…Œƒ‹ˆ‰˜‹’ŒŠ‰|~‹†ŠŒ‘…’އŒŽ…‚‹…~‹“ˆˆ‡Š‚’x}w‡‡}u‡ƒ‡—‰‹ƒ‰€Ÿ…‹{ƒz{„s‹……ŒsŒs‚„‹~‰ŒŠƒ‰}}‚”|Žyr’ŠŠ‡wƒˆ‹—†˜ru‰“q—…‰‘‚„Š€…„ކЅv…„…zކ’’„‰‚‘~‰~~†~ˆ‰ˆ„„‰ˆŒu…ˆ~}‚‚‹‹†”{ƒˆ’Œ„‡~w¡ŽŒ„‘‰ŠŠˆ…Œ„ˆ‚’vˆƒ‰†Šˆƒ’‚Œ†„ƒwŠ„Žtƒ•‘‚”|•‚Œ…~ŠŽ…Ї€‚ˆvpŒƒŠ…{}s†~ŒŠr†Ž˜‚“‡Š“ކ{ƒ—xx‹†ƒ~ur™€|’„{‚|މ™‹„ƒo’xzˆ’›’„lއ{x‡“pŽx‰ƒˆ{{„„„†„†‹‰‚‡†’u…it•“z„s|–ƒ~Œvy‰‘”nŒŠš‘Ž‹…”…Š|{‹†Œ‘n€|€Š•x‡—ˆ‹Ž…|‡{q„†‰Š•††„’ƒ„s‘†w{€~wyŠˆŠ˜†Ž€ˆ„•‰}ƒ…‹‹’ˆ’ˆ‹‚‰‹Œ‡~ˆ~‡€ŠƒruЉ€Ž‰‚wp‰‰Œ…„~„‰xk…‰ƒ}…‡‚ˆx}‘~ƒ„|“zŠ“ˆ‡‡†‡†‡„†††‡†‡…‡†‡…†††††††‡„…†…‡†ˆ†††††…††‡†‡……†ˆ‡††††††‡…††……‡‡…‡„†††††‡†……†‡†‡†††††……†††ƒ…†„ˆ……†…„‡…†…††††„†‚††††‡†…„††‡‡‡‡†‡‰‡††…††††„†‡‡…†ˆ‡‡‡††…‡††…†††„†††…„ˆ‡„……‡†„†††…‡†‡‡‡‡„†††††††††††‡†††††‰‡††††…†††††„†††‡‡†‡††††…„††‡††††…††††††‡†ˆ†…†……‡†ƒ‡‡†††‡†………•Š…}€v„“Œ‹ŠŒƒˆ‹—~„|•€‚|x}Š™|ˆƒ‚†‚|–‹†–…‡…Œ~‡q‰‘ƒ‚Œs…‡†‹…qЉƒ‰ˆŽ†“…‘•s…rtš}†{{‡–‹o}ˆˆˆq‹•ˆ‹|‹‘€“’yŠ‹ˆ~yŒƒƒˆ‚’Œ˜‡ƒ‡‡}Ž~ƒŽ}•ŠŠ‹‰~s‘Š„wކŽ{…z“ŠŽˆŠŒš„Š€‹}ŠŽŒŽŠ…‹Œ‰Š‰ˆ‰Œyœ‚‚“’…†‡z„Š•‡…Šƒ‚v„z„€’•ˆ„‹‡ˆ|‘Ž‹‹‹‰„|„‡†v‹†ˆŠˆz“Ž“…ˆŒŽ„މŒ“Ž•…Š}‘‘Š’”“„z‚„ˆq’Ž‹†‡ˆ‚‰†€Š„…Ž|‡‹‘…—Š‘•ƒ‘Šˆ„‡}’‘•ˆŠ‰|††‚~x”~‰–†„ƒ‘‰–”‰Žs‹š‡‰‹‰”Š–‰‘ŠƒŠˆ•…r•‹‘{†‘ŒƒŒ††Œ‘ƒ“†ˆ‹‡–“‰ŠŠ‹Œ‡…‡†‰’ƒ†‚ŒŒˆŽ‘‡—†€‘‹‹…ŒŠ€ˆ•Ž•}‡‘’ˆŒ‰‚ƒˆ‹‡ƒ‘‹y‹•‰…„†ƒ††…Ї’‹˜‹‰†ˆŽ‡Ž‚ŽŠ‹•ƒ•†•†Œ„ˆ…Œ‰‰ˆŠr‹‹‹Š‰~†‹…‰Š†’Œ‚‘’~wƒ‡ƒq†ŠŒ…‰ˆ‡Š†ƒŒˆ€‰Ž…Š’ŽŠ—‰‘‹“Ž‹ŠŠ„ޒЉ†Š‰‡†‡‘‚}Œ{‰•„Š„‹’‚Œ‘”‹…˜‰Šˆ’“Š’…ŒŠ„‡ˆ‰…ˆˆ“‰u”†Š‡|‡“ƒƒ}š†‚‹——„‹‡‰‚’‹‰…‰‰Ž‰‚‹‹Ž……Œ‡‰Ž‰ŽŽ…„†‰•†ŽŽ”‹‰šy†„‹†‹‹ˆŠŒ’‡Žˆ‘Œˆ‹’‰‰…ˆˆ‰‹z’™†‡‡†‹‡†‹ˆ‹Œˆ†ŒŽ“‰ˆ}‹‹Œ˜ŠŽ†‰Ž‰ˆŠz€|Ž‘šy‚‡‚’yŠv‚~e~„•ƒzw†ƒ“‚‰ƒ•~~„‡}Š~o…‹‹“„Œ”~Š‚„އŠz†q‡€’‚|y…†~†}Œv…†‚|’‰†}€}’†y‡Š‡uq€‡w{’~ˆž€|ˆ‡‰‚|„Š|Š}‹•y~ˆ~’Œxq‘z†…Šux•‡“u€ƒob~‚|Œy†}u‰z‰‘‰~€ŽzŠ‘€Ž‡ˆy}w’—„yv€~‡‚‹{„y‰Š‡~}€‰‡|x€|~|…‚“…sw‚”|‚r~ƒŒ„…|‚„|ƒ‹Š‚€‰yuz…„ƒ‡ƒ˜”ƒz„‹……‘x…’|„„yyƒ……v‚އ’ˆ›‘“ˆ‘ysŠ{‡‹ˆ‹‰‹rrˆ”‡{’‡‰‚Ž{{‘‹Œx‰Ž”•~ƒ’‘Š’…Œ‘ †v‹ƒ‚†‡uˆˆ™ƒ„‹{u‰Œw‰’ŠuŠšƒŠŽƒ}Ž–•‹ƒq™‹z‹‰ƒ‘…x‹Š†zˆ‡”‰—‡’„‘Ž’‹u„˜‰iŽ€†’„ƒ~“Š“‡Ž˜Ž•Ž–Žˆ‡¢ˆŠŽ—‹Ž€–’Ž€{Š’”Š„˜„Ž„|‹…£~‡‹“ƒ‘‹„oŽ€Œ“•‹}}ƒ—ŒŽz’Œ—v~Žw„††Šˆ…ˆ‡………€„†…†‡‡v…†„…†……‚†‰…Ї†„Š…‡“‰ˆ†Š‡‡…‡†…„……†‡ˆ…†ƒ‰Œ†‹‡††…„ƒ„ˆ†…{„†‡„„†„ƒ…ˆƒ…ƒ†ˆ‰Œ…ˆ††……ˆ††…†‰†„…„†„‚†„†ˆ†„†††‡†‰„ƒ††~‚„‡‰…„„†††…ƒˆ††„†††Š…††‡†„††††‡„‚„†‡†ƒ…ˆ†…†…ˆˆ†……„……‡…Š……†………„…„†…ˆ…††‡†ˆ††††††…††…†‡†„†…††‡†‰†††………‡„†…†‹…††‡…††††…‡…„‡†‡†‡†‚†‚ƒ…‡…ŒŽs–‚ЉБƒ‹ƒ„}Œuq‚‰„t{|ŠŠ’‡Ž„n›w‹Œ…š†zyŠˆƒ€“}‡w‰‰…ˆu€‚€†Œ€„{‡€™ƒˆ…‡Ž†ƒ‡‹uƒ‡y}‰zŽ}ƒ~—€…xˆ†Šp•z–‰š…ŠŠ†•ˆ}†}„„xƒ‰†‚“’ŽŽ„‹xx~o€uŠ“…yˆ€€‡{™Ž…ƒ…wz”u•…}Љ‰Ž€t–|„”†Œ‚ƒ‡…‡Š†k‚zˆˆ‡‡…††}ˆ†{’w…o‰‰„€‡Œš‚‹}ˆ—w‡‚zŽƒ‰~|ˆyƒ„†‚…“€|}†…’“…~††…ˆ‡…††…†††‡††…†††…†††……‡‰†††††††ƒ††††††…†††††„†††…††‡†††††…††…†‡…Œ††††††††††‡††„†„†††††††‡†††…ƒ†„††††…†‡†††††††††††††††…†††Š†††††††††††††††††††††…†††††††††††††††††††††††…††††‡…†††††…†††††††††††††††††††††††††††††††††††††††‡††††„†††††††††††††ˆ†††††††††††††Œ‹‹~ŠŠ’ˆ˜„ŒŽš|“}ƒ‚Žw‡{~“ƒ—‚‚~Š~Š‘†’ŸxІƒ‘‡Š†Š„z‘‰‡ˆ‡q…Š‹~ˆ…yŒ‚|’„€‰•…’Œ•~—ˆzm––Œˆ€z‡Š˜ˆŽqzˆ‹Œu‡…ŽŒ‡‡ŠxŠz‘Œyv}ˆ„‡{…ˆ…”Ž’›†ˆˆ‰‚€…‘‡ŽŒ‰ŒŠŠ‡u€‡|އ‡{uƒ„‚‰ƒ’‹…‹‹£z‰’†…‘”‚††’‘~~ˆ{†ŽŽˆ|‰’‰‹Œ‰‘‰•‹~ˆ„zŽ‚}‘†€Ž–Œˆ…ЉŒˆ‚€‰…iˆ””€}Œ}’‡ƒ„‹„Ž„}‡Š“‹‰u„‹~~‹Š‰‘‹…“‚s‹‡…oŠ„ˆˆƒ‰‘ŒŒ…‡ŽŒ†‹‹„‹”‰‹Œ”Š”•Ž‚ƒŠŠwƒŠ‡‰‰‹‰Œ†‰ŒŽ†|Œ”„†•…‹Š…˜‚‹‘ˆ‚—ˆ…‹’’†šƒŽ‹zŠ‘ŠŒ‡„‰Œu”…‰ˆyƒ‘‘~‰„ƒŽ‚–…Š„‚†‘Œ‹Ž‡ƒ…ŠŠ‡†‹Šƒ‡‹…‹”“Šˆ~Œ‡•‰‹Š‰”‡„‘‰‡„‰ŒŒŠŠ„„‡Œ‚ˆ‰‘Š|•„†‹‹‰ˆ‹‚’‰„‹†ˆ”‡Œ†‚‰|~ŠŒ‡”ˆ…‰‰Šˆ‡‹…†‰„ˆ†…†‡††…‡ˆ…‡‡ˆˆ††……†…ˆˆˆ„…†ˆ…Š…„‡„‚ˆ…ˆ…ˆ‡ˆ„†„†‰„†…†…†‡Œ„‡†„‡†……†ˆ‡†„‰„††…††‡ˆ†‡†ƒŽ…‡…„……‡ˆ††„……†ˆ……€„†…‡„ˆƒ†…††‹††ˆ„‡‡Š…‡‚ˆ„††ƒ‡‰„†…†‡ƒ‡…‡ˆˆ…†‡ƒˆ‰…ˆƒ†ˆ†ƒŠ„‚……†…†„‡†ˆ„†‡ˆƒ†ˆˆ†‡‰„†…‡ˆ†„‡‡ˆ‹‡…‡ƒƒ…†„…„‡ˆ…‡……†„ˆ„…„††ƒ…€ˆ……†„†ˆ†‡„Š‚‡……†‰‚†ˆŠ…††ˆƒ…ˆ‡‰xˆŽ†€Š‹Œ‰{‰Š€}p{‡‚tz‰‡…‘€…‚‘‚™ˆ}‡t|ˆz{x…Љ‘„r–…{‚€‡}‰„‚‡y†“|…~”ƒ}ЇƒŽ„‘yŽozš‰…‡xŠŠ…‰‚xqŠŒ’sˆŸŠˆŒŽ‰‚Œˆ€ƒ„ˆkzˆ„“‹”‰Ž‚„~ƒƒnŒ‡ŠŠ›†ƒ……{sˆŒvnˆ}€~‹†‰‰w‡”‹Ž~‚‰s‘„†‘ˆ€Š†‹††Œ„‚ˆ‹‚ˆŠy†Š‹‰ƒƒ|ƒ…ƒ€}ˆ‡‡}x€Œw†‡‚Œ‡ƒy„‰ƒŒ…”Š~Œ‚‘~“x{‡€w•ƒ€‘‡ŽŽŠ~ŒŽŠŠƒ‡€ˆ“‚v’ŒŒ‚…‹ƒŒ‘˜‹‹˜’z‚’ˆ†Ž†~‹€†…w†ƒ’‹v…‘ŒŽ€Žw‹~ˆŠ†‚v„Š‹‡zŠˆ‡‡ƒ™u—…s†‡‚ˆrŒ‹’ypt‘‚Œv‚–‰~€‰~Š}‹ˆ‡‹sމˆ{‹‹‡‰Ž‹|Š€ˆ‰‘އ’‰Ž‰‡Š|‹{rŽŠŽ‹‡z‡€‚’’އ’’…„€˜’Š“’”™Š‹‚Ž‹–ŠŠ}‰ŠŽŠ‰…‹…†‘Ž‹‰‚‰Š‹o…”•„…ˆ•‚‡†y•Žˆ‡‰„Šˆ‚q’‹v‘†‰‡ƒ‡Ž’‹„Œ’€‰…‡‰‹‹tŠt†ˆwx‰Š„…ˆƒŒž‘‰‘u†‘€†~–‚v„”‹ˆ‘ŽŠ‘z”‰z†ˆˆ~kˆŠ’…‘œ~Š“Œ}‰…ˆ‚¥†x“€‡ƒŠo‰‡Œ~t‰…†’zwŽ“†ŒŒˆƒ„™”Œˆp…’‡o…ƒ‘…ˆ†‰j’”‡ˆŠ‘’‘–ŠŽ†‰“yœ~[—‡…އ…†Ž—Œ‘““›Šˆ‚™Œ„…Ž‹Žƒˆ„‘Œ‘Š~€x‰Ž‡Œƒˆ„|‡ƒ›€”š{Ž’†t‹Šy‰“†ys„•†Œ‰”Œ‘Œ‘{Š“‚{„„ƒ…ƒƒˆ›Ž’Ž—–Š“‰‰{†’‹‡‹ˆ„‰‹“€€x“x„ƒ‘‹‹œŒŠz‚‹•‰„“}‰„ƒyt‰}ЇxŠ–ˆ‰‹‡sw‰{šŠz’†‡†z…‰‡—„’…—~“‚p“”—}}|ƒŽˆƒmx‹Žu˜”Œ‚‰‰{†‹yˆ“t}u‘Ž„~ˆ„„–—“Œ€Žx†Š‹ƒ—•‘ŽŒ†ˆz…†u‹ƒŠƒz–ƒŠŠ–‰‹‘Œ~’‡“‘ŒŽ~‰“”‚†}Š™‹Œˆ~‰zއ}…„‰~‰’Œ‰x†‡s‹•—Š‘†‹y•“ŠŠŽŽˆ…zznˆ€Žƒƒ…ˆŒŠ…ƒ—~’‘ˆ{Š”‰ˆ„{ˆ‰sŒ‹„‚y”€‚Ž‹™‘–~…šˆ…„q‰‰„ˆ€|†€‘qƒ’ŠŒ‹‹x‹”ŽŒ™‡u•‚~ˆ‰…’Š~–x™‡t‚ƒ‚…‹v‰”–…Žpo•Œv€•Œƒ‚Š€Šƒ‰ƒ‹’ˆ…tˆ‹|’‹ˆŠˆŒxˆxЋЋ†Ž‰Ž…‰ŒŒ|‰ŽzЉ†‹}ˆŠ€}””Œ‘ƒ„‚˜Œ‰†™‡“‹‰’‹Š€‚•Œ‰‰…™’ˆ†‡Œ‘“‹p†Ž‹ŒŠŽ‰~•ˆ‘‰‹Ž‰„‘{‰}s‹‰‰Ž}ƒ}„‚†Žƒˆ†Œ—‰†Š—–‡{Œx‡’y}‚—”†yy˜‰…Ÿ”Š…„›„‰€ˆ‚†‹„‚ŠŠŒoŒŒ‹…}‘u‚Œ‘™“s‹Š‰‰†’€Ž|”ŠŒœo‘zlz„„•v‡ŽŽŽ‘q~‹Šr‘Œ‘„Ž€Š}v’œŒ||…}‹zƒŽ•œŠ€‘ƒŠ…‰…|ƒŒƒˆ€Šˆ€r…‰~ƒ…‹…p‰Ž…~‚‰’†‹Š{‘“ƒ‘‰‘†•‹Œ†„‡‰ˆ‹“x‹“‹‰Œ„ˆ…‹”ƒƒ}‰~Šw„’‘„ŒƒzuƒŒ†ˆŽ‹Œ‚‘vt…xqƒ‹‰{‰y†‹†Œˆ|ƒ‰Œˆ‹ˆ††–‡’{ˆ“ˆŒƒ••€vއq•…ŒŽ‡Š“|†‰•ˆu‹‚€†‰‘˜‰ˆ‡ˆ‰’ˆˆ…ž‹’Œ‚‹Œ‚ŒŠ„‚z}’‹‘ˆ‘’ŒŽ„ƒ†šŒˆ‡‹‘Ž‘’‹Œ†’†ˆ‹„ˆŠ‘†v””Œ{†…‚†ˆ„ŒŠ•ŒŽ„‡ƒ‹Œ”„Šˆƒ„ˆ‰”‹‰†Žˆ‹w‡ƒ–…~‚’…Љ‚ˆ†‹ŠŠ‹‘…Œ‰€‹‡‡Œ”™ŒŽ‡‹‹‰‹‹’‰™‡‰‹z–Š›‡…ˆŒ„ŠŠŒŠˆ•‡”Š’†–šŒˆ}ˆ•…ˆˆ„“’ŒŠˆ…‡‡{ˆ…‡„ŠxŠˆ}ˆ‡ƒ†‰Š‹‰‚‚‰ˆ„„’„…Ї†u€„€j‡ƒˆ˜ˆƒ™ƒŽ‰‡‡ˆ…„z‰‚‡‘„‰”‰’‰ŒŒˆ‰†…Іˆ–z……‡†Š‚ˆ|‡‡€…‚‰‡„ˆ„„€Š…„‹†ŠŒ‚‚‚ŠŒŒ|‰‡‹ƒ‰|†Š‚‡†ƒ€‘‡vЉx†‹‹Œ‰yŠ~„„‰Œ„Œ‰‚ˆƒ€‰—ˆ|…„‰zˆ‰†ƒ‚‡|Š€ˆ†ˆˆuˆ„€Œ€‡ˆ„†x„‰’|Šˆ‚ƒˆ…ƒzp†ˆ„ŠŒ…އ‚‡‰{|„Œ‹ŒˆŠ‹ƒŽƒ‚‰ŒŽ„€…†„Š˜Šƒƒ~ƒŠ†Œ~v“ˆ”}Œ‚…‹‚†}ymz…ƒ}ru‰„†Š}r}‰’ƒƒ|‚~w~‰……‰…Œƒ|ˆˆ†–u…‘ˆŠy•‡‚…p…‘Œ‘ƒ’Ž|„j{wƒ†‰w‡~†Œ~€v†—yŒˆ‹’}{’˜„†€„xŠ„z‹{†‘…’„€‹€~‰xeœz‹†…„‚wŠ~ƒˆs…}{qy|ƒ‹Œ„y‡†…€†‰t{˜‚ˆ‡Œ{‰ƒzŠwtˆ€z”‡}{{ƒ}…}v€|Œv†}‹ƒˆ‚ˆ‹……‘r†|v{€‰††…„€„www†ƒ„…Œv„‚˜”tІ†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡‚†‚ˆ…†ŒŒ…‡‚…„„…†ˆ…‡…‰…Іˆ…„‹†ˆƒ‰‡…††††Šˆƒ……ˆ‰†…„‰†…†‚…†…ƒ…ˆ…‡„†~„ƒ‚ˆ††…‡†…†„†s…‰…„„ˆ†‰……†‡ƒ…ƒ†„‡„„„Œ…††„‡…††‡†…†††}†‡†‡„ˆ„†ˆ†‚…†‡†………†Ž‡„…†ƒ…†††‡…†„‡†…†……„‡†„††…†…†‡†††…†ˆ†…‡…ƒ†‡†††…‡ˆ†‡†„†…†ˆ††††…††††‡‡……†……††„……ˆ†…†‡‡†‰†ˆ…†ƒ‡‡†…‡‡‡††‰†‡‡†……‡†‡‡ƒ…ŠŒx‹…ŠŒ‘‚‰ ”ƒƒ—{|ƒwm}~ŽŒ‹ƒy€™‡…‚yƒwu‰‰Šƒ‘’u|}‡oŒ‰‚vˆvx‡€†{…ƒ„„’~‹oqŽ–ƒŠˆsˆ„ˆtŒywˆ„ŒrˆŽr‚…Š‘~•ƒ“ƒ…‡–qy‘„ƒƒ††…„‰‚‡„s†tƒˆ–‚‡Ž‚€t‹x‚„…}‡‰Œn†•ŽŠz†}~Žƒ‡‰…‚ˆ—‹•‘•˜v‚†Šˆˆƒ††ˆ‰}ˆ„‚„r‚€ˆ†€u‘†‡ˆ‡~Œ‰…‰Œ}“†{…}Šˆ|…yˆx‘p‰ˆƒ—•ކ“ˆ’‘…‰…Ž‚—€…w—‚Ž„‚’…‹‘›ŽŽ‘z~•“‡Œ|Œ„…z{~Š…{Œ–Œ‡vs…ƒ†u‘‡‹‡~‰…‘€–‚ž|”ˆp‘…sŒŽŒŠ|‹nx‡‰u•“ƒ‹‡‰{‡yŒ‹Š|„yކ‡~x‰„•“‚‰~‚‹Œ€™†Œ‘ƒxŒŽ}ŽŠ†u”…††‡Œ‘Š“ˆ‹…—‹‹ŒŠ–˜€„Ž””‹‘|‡„‹‹†……Ž‹„•’‘ƒ‘x„Šo†—•…”y„‰x–“ŠŽŽ€‹tŒ~oƒ„}“„–“ƒ„Œ‰ˆ‰š”ˆ‚†y›p|„}~‰€Œy“““‹‹ˆ…ux¡xz“‡ˆ‰ˆˆ{ttŒ‰|—{Š|†”‹†‰Šˆ„}}‡{…–†–™›†˜v’{“’……ŒŽ€‡—‘€€sƒŒˆŠ‚‹Šw|ƒw‘’…Œ‚§†‡s“›†ˆ‚}{ƒ~Ÿv”v–•f™¤†“…† ~¾Š•‘Š–Šy‡’†w›“kv‰’Žˆ€~j’ŒŠŠŒƒˆ~ˆ‚”•ˆ„ˆw|˜§‰‚~‚”|‘‚’ˆŒ‡“‡‡‚°šxŸ€…w…Ž”˜usŽiˆ§z§tŒ™s‡{pŠ™{wŒ“Ž…x€Ž‰††‹ŽŽ„„€‹{‹–™{‚Šœ„Š|Šxd~Œ‰ouž„Œ•sz”…zˆ—•…–•|‚}ˆ†ŽŒ~ž‹x‘r”hˆo‘vŠo†—˜”‚|tx‹ˆ‰–„ž’n€ˆŒwƒ„‚w“|‚‡“‚™{„Œ‡~Š“{‹~’—x•Š}€‹‹{Ž•™‰ˆyŽ‡ŽˆpŽŽŒªx …‘ŒŠŒƒp‡†…ˆ‰‰˜‘xƒ~“ޅЉ‡‡†ƒ’Œ‚—‡ž…“‰ƒ‰ˆŽŒ“’„ˆ…ƒ|Ž‹~Ž‚pƒˆ“„}}…ˆ‡’‹ƒ“‰Ž„‘‹‰‹€y…||‡ƒzŒŒ…‚|‚‚“—”ˆ’”}ƒŒŒ€Ž’†}‘ˆ~ˆŸ‹€†’‰}ƒ~Œ„‡‹„wˆ—Š‘…’ŒƒŠ|©…yŒ‚”w‹r‰Œ“‡†Œsq—€‚}ˆ’}„‡‚†‚Š…Œ…‚y…‘…{‹€‘‡Ž‘qŠ”„‹‘‹š‰yŠ‘‰z‡–|lŽ‚r}ˆŒ€Š‰Œƒ™‡ŠŽ‘œ†Ž˜Š”‹…Œ‡†Ž~†…‘„Œ‹Ž‚„‘Š’Šš‹“{†sŒ—‰~ˆ—”}šŒŒ…ˆˆŠŒ‡‚”ˆ‡†ƒ†„‹Œ‡”‰’Šx’†‘~‰Œ€‹‡{›ƒ†€’ˆŠ™‹“‘’y„™…†Œ…€‰†ƒ…w€}ŒxŠ“Œ|’‰t…“Œˆ—|‡ŒŽŠx…‡…•‹“z›z™Šq†~uŽ…•‡‘os“†u„’—|ˆŠ‰x…€Ž•ƒ„t‰‹‡{‘“Ž{Ž}ŽŒŠƒ…‘ˆ‘ЇޅБ}•’Š…’‘†zˆŠ}~ˆ‘Ž‹“Ž€‡‚‘ˆŒ‹“–‚‹‡ˆŠ’Œ‚…}Š”Œ„ŒŠŽŠ|‚–”q‚™”|”‚†’y–‹Š„Š‹…Œ€uŠnˆ…Їz‹‹ŒŠ‰‹ˆ{†‚Šj’€•‡„„€˜Šrj‰}pˆx‰€‚–ŠŽ‰px§ys‚y†}“yq‰…†lˆ‘“Œu‚—Ž„ˆ~ŠŒzŸ‚”z}{|‚…„„„œ…|–yx†x£Œ}Šœmƒ|~Žvo“‰xw„„‰”„‚~q~‰ŽˆŠ‡„†ˆžŒ‚Ž|tˆrpn€|ˆ„w‰…‚‚w‡›|ˆƒwop…wm‚›ƒ‡v”‚„‰}€Šz~ˆuŠƒ“……|†˜s‡r’‹“zƒxpuq†{…x€vos®„•{tsƒvƒ•Šp|ƒ}€„‡˜š‡„“x†Ž|ˆ„…ˆ|ˆr‡…ˆ‹a„‰Ž}‹‡ˆ‚ކ€ˆ‡Ž…””‚w…‰p—’ˆŠŽ„‘†~‰‰m‡……“‘ˆ˜‹Ž“‘ŽŽ…ޑޓ‰Š‡„‰ƒ‡Ž‚}Œ{‹•„ˆŽ‹Œ’ŒŒ‹„†–‹Œ‡Œ•‚ˆŽ‰Š‘‰ˆ€‰‡Œ‘†s“ŒŒ{†’„‡…ƒ’‰„Œ‘†–‰Œ‡‡‡‚‘Ž”ŽˆŠŽˆ‹Š‚”މ†Œ†ˆ‹Ž”ŠŒ€Œˆ‹‡‹ˆŠ–}‡ŠŒ‹}‡‹Œ‰”’Š‘Œˆ‘†‹…‰‘|‰…z’—‹‡‰ˆ†‰‚„ˆŽ†‰ˆ†‰ŒŽ‹‹~Ž•ƒ‹‘„”‡Œ†ˆ‰‹†Œ‰xŠŒ‹‰„}‡ˆƒ††ˆ‡‹…ŠŒ€}‹ƒ€{ކˆ‰‹„‡ˆ‰‡€ˆ€Š‰‹ˆˆŽ‡†ŽŠˆ‡Ž†‡ŠŽ‹”†’‹‡ƒ‡‰ŽŒ†Š‚‰‹„…ŒŠ‚‰„ƒ„މ„Œ‹…ŽŒ‡ŽŠˆŒ†‰‹ˆ‰‚†‹ŠŠ}’…‚Œ€„‹‡…ˆ…„ƒ‡Ž‘‡Š†‘„„€Šƒ‹†‰‰‡…ƒ‡ŒŒƒ”Žˆ~Ž…‡†ˆ“‹ŠŒ‡…Љƒ…Œ‡ŠŒ††‰†ˆ…‚‡ŠŽ„‚‚†‰„Œ‡•Š…€ˆŒ†Š“ƒŒ‹~‹ƒˆƒŽƒ„”|†‡‹†ˆ“‡†‹‰‡‹ŒŠƒŒˆˆ‰†„‹‰Š‚“‹’‡‘ދЋˆ}ˆŒƒ„„Ž…•{v’ˆqЇ‡‰†„ˆ‘‡Œˆ„‹€‰ˆŠ‰Œ‘Žš‡„’Œ{„…ŠŽ††‰Œ‘Œ‘‚€„ŒŒ•„…ŒŠŽ‘…Š’Ž“•ˆ…’‰“’‹‹€ƒ‘ˆ…}‡”’‡v’‹„‹|‡Œƒ‹ˆ…„“Žƒ˜Œ‚Œ‹}Š…—‰ˆ…}†Š€›‹›‰}‹’’Š~ˆŒ›ˆ–|‡Š‰ƒŽ˜†“Š‹‘ŠŽ‰‚‹Ž€ˆˆ†Ž•‰’‘…„‹Š˜‘ˆ‰‘}’Œ–Š‹‡‡ƒ’„Œ€–ˆŽ’މƒ}}ƒˆ‰‰ˆƒ‘Ž“‘‘†…†v–˜‰Š’ˆ–……“}}{•ˆ{z……ˆ”Œ†™‘~Ž–Š‚‰†„ƒ€}…Ž”“‹s‡Žˆ‰ˆŽvІˆ…y‘s|„ŠŠ†‡…‹‰ˆ~—v“t…‡ŠmЉކqr‘‰„s‘Œ•†‡Œ|”†‚‹’…rƒƒ|””‡ƒ•‚…x„Ž—ކ‡…Œ’v“Š€w‹‚ˆŒ„Œ‘z†‘‡Ž’‰‘†ƒw‘”Ž”‹’‰–‰„‰‡‹ˆ‘“‰†”†•|Š…ƒ…Š…‡€‹}”‹o…‰Ž†…”}‹‡}–}ˆ‹’„Ž€†‹sŠv”ƒŠ„}Žy‹‚†Œ…†‡‹ˆŠ„‹…‡ˆ†‡‡ˆ‡…‡ˆ‡‡„‰‰„ˆƒˆ‹…ƒ„†ƒˆ†‡…І‡†‡ˆ‡………†‡‡ˆ‡‰‡‡ˆ‡…†ˆ‹€Œƒ„„†‰…Œ‚†ˆ‡†„ƒ†…‚Š‚‚‰ˆŠ„…‰‡ƒƒ‰†‡‹€‹†…†„†ˆ‰Š‡ˆ‡„‡Žˆ…‰†‰„ˆ„‰„ˆ……†„ˆˆ‹~ƒˆ‰ƒ‹‡†…ˆ‡€‡ƒŒ€ˆƒ…„…‡ˆ|„†Š†‰„‰€xƒ€‚‰…‹„‹‰ˆŽ‰ˆŽ‹…†‹ŠŠ‚‡ƒ‰‹‘†ƒŒŒ…„‰Œ‚ŒŒ‰ƒ†ˆ„‰„†‡‚…ˆ‡‡ˆŠ†‹’†‡‚ƒ‰††‰‡‡Š„„‹~€‹ˆ€Œ|ˆŠŒŽ‹€‡Œ|ƒŽ‰‘ƒ—˜w„…ƒr‹ŒˆŒ†‰‡…Œ‹‘€‘‡ˆƒ‹’‹‘Œ˜‰’“„Ž‹€‰Œ‚‘‘‰‚Œ„‰•„}{””~˜ˆ‘‚’†–Ž‹‘“‚š‰ˆ‰”ˆ‘‰‰Ž‡†’|…ІЕŠu—ˆˆ}†’‡‡~‘„…Œ•Œ•„‘‰‡~ƒ”ŽŽ‹‡‡‹Œ‡ƒ„‹‡‹†‰‰‰Ž“ƒ•„€††–ŽŒ‰Œ‡’|†ˆ€‹‘ކ‘}Žˆ„Šƒ‹‹Ž{Œ—‡„ŽŠ‡Š€Š‡•‹’Œ‰†Œ‹‰‘Œ‰~Œ‰›Œ‘‡ŠŒ‡†ˆƒ‘‡‰…“‚~ƒˆz“–™q†‹~{‡‚šz’‡†Œ—Š…ˆ‹v{{|‡’“k‡€}m|ƒ‚…–”‚Œƒ‘}Š‚‰‹‹~’€v‡ŠzŽ€ˆŽ‹›}š}‘‰€†‰¡”~ƒ”‹‘…t™Š†ƒ…{‰v|ˆvƒ‹…~Šˆ‹‚{ƒ‡ŸŠˆ€}„‹…{“œ™“ž|¬¨{h•†ˆ¡Œˆ¥ŠŠ‰‚ˆ…’’€}–‹”“”zŽ—ˆ‚‚ކ…{t~‹‘š‡†r€ŠƒŠŠ„„|„¦¨“Œ‡Œ„‘€yt{†”ˆ‡„€Ž„†“x‹ˆ‡ŠŠ—œuz‰}rŒœu†rŒ™z‰ƒ}™}—‰—‡‡y‹’‰ˆŠƒ‰†‚~‘~‚{•‚Œ„Œ‹œ‹“”‘y†…˜ŒˆŽ˜~Šƒ‰„v†‚Œy‡”‹Œ†‰u†‡„“†y‰‹‰{†Ž„–…’‚˜u‘„r„ŠŒ~‡xˆ…•€ŠnxŒ‹u‚•Œˆ‚ˆ‰€ˆ…•‚€wŽ„ˆЇБ‹Ž‰‰Ž‡ˆ•Žˆ‰Žzއt‘Œˆ…{Œ‹ˆ‚’ˆ‘‰Š‘Ž‹€”•‰‡–—‰„‡—‹‘€—|‰†‹ƒ‹ˆˆŒ•‹ˆ“‰z‡‹ŠtŠŠŒ’“‚‹…v–’ŠŠŠ’ˆŠ{xyu‰†‡|†އЅ„—¦•ŒƒyŠ}€¦ˆˆŠŒ€“€|Ž|x™‘‰‚}—“Ž˜y…ˆ{qc’‹†œ„‡¡}‰Œ…`„š†”‡ˆ„“x®YXo’™•·‰ˆp“‡zm†}|—y‹„u~{œ†w’‹s”ž–‡|’—zƒq–†““x^Ž“€‚‹ˆ†„‘bˆœ”‰’u‹ˆ‹›‘p•ŠŠx…y€zƒ€zž‰|{€‚g‰]‘ŠŠ•~“‹fr~†Ÿ„c‡š€ˆ€ª•fž„…~Œ~—|‚z€Šl‚ˆ}–p˜{‚„r‡—…„„š‘ƒ‰¦w‘rnnˆq‹‘ˆ~«†‰„‡„‰††‰‡…ƒ†††ˆ……††…††‰……ˆ††††…ˆ…‡‡†…‡††††††‡‡ˆ…†„†‡†‡……††…ƒ††ƒ…††‡…†…††††††††††‡…€†…††††‡Š††††††‡†……††††…†††††‡……†‡…††„‰†‡‡ƒ†††††‡†ƒ†††…††…‡‡…†††ƒ††‡†††…†††††††††‡††‡†††„‡††††††‡†††‡…††††…‡‡††††††‡††††‡…†††…†‡†‡†††‡†…††††‰†††††…†††„††††‡†††…‡†††††…††††††‰ŠŠtŽŽŽ‹‰ƒŠŽ„‰Œ†”ƒŽŽ~w„Š„r„Іˆ…Š…ˆ‘Œ‡€Ž‡‹‡Šˆ‰ŽŒ‰–‡ŽŒ…ІІ’ˆ‹Š‹†ˆ†Žˆ‘ƒ~‹~†“ˆŠˆ‘‚”„†’‡~•‹ˆ‹„‹‚‰Š‡ˆˆˆ“•…v–‹ƒŒ}ˆ’‰‰†…“…€Œ‘|—…‡‡ˆ‡†“‰•Ž‹‡††ŠŽ‹ŒƒŠ‹‡ŽŠ‹“‘‘Œƒ‹‰”ŠŒŒšŒ‡”€Š†Šˆ†ˆ‹ˆŠŽ‘‰‹ŠŒŒ‡†‹ˆŽ‘„‰{œ†ˆŠ‡†„…ƒŒ‰‰Œ‡…‘Ž‹ŠŒƒ„}‹Œ†”‡ƒ‰…Їˆ~…|…„‡ŠŠŒˆ‰‡‹z”vƒ€’•š‘š’‹ƒŽ„‰‚Œ‚—w€…xœ–‚”‰‰ƒx†‰Ž‚ŒwŠ”‹ˆ˜‚…ŽˆŒ€Žr–ƒt{ƒ’kƒ‰’‡sxx–ƒ›„™v‡ˆŠ€ˆŽ‰…ˆ—ˆqŒ›„|Œ‘–„ˆŽšt‡‰†ŠŠƒ…~…‚ƒ’‹…”’}‰ˆ€cŽ€x†¢¨p|‰—ˆ‰—Žwˆ™˜™”…”ŒŽ“~‹„†‡…†…¥‡ŽŽ…‹‡}ˆ‚–ކ”‹Š|މ~Ž‹ŠzŠ”{‹‰˜‚‰~zŠ€‡„’†€‹~xŒ‹v‹„ˆˆ‚ˆ{“š‹”„‹’‹‚„ˆƒ†„t†~„‚||ˆˆ|„•„Œž‹Œr}‡‰Š„‹‰|sŽ€‘†|‚‘‰Š{‘{‹Œz‰ˆ†‘ƒŠ“ŠŽŽ„ˆ†xˆ€ƒ}xŒˆ‘Œ‡‚xtˆ}ŠŽ•…„‰Š€ƒŠ„—’ƒv’…w…†‹€ˆŽ†t††‹˜ƒ”‰Ž…Œ‹’‹{’’‰tŽŠˆ‘w‹„œ}‘†’ŒŽ›‡Ž•’ˆƒ—…“‚Œ…ˆŒŠ†…Š•‰‡€…‚ƒ‘€“˜ƒ‡x‰‹‘”Œ‚Š€–ŒŽŒŽ–Œi{‘{‰‚‰ƒˆ‚†›Š„„Œ”}……Љ†ˆ„Šˆƒ‡–ˆˆ„‘”—€wŒ‹†r•ŒŒŒƒŽ‚ƒˆ‹—vˆˆ†…‹‹’œˆ‡†‚‰Œ‡…‡–’އƒˆŒŠ‰Ž‚‹Ž}“”~‰Ž‡“‡‘ƒ”ЗЉ„‹“Ž’‰„‚“~Œ‹|‡Œ‰u’‹|Œ‡„ŽŒ…‡•…‘–‘ˆˆ‚„‘‹„„Š…‰Œ~”ˆ—‡‰ƒ“†…xˆ’—‚}‡…Œ’‰†‰Š‰‹Š…ˆ‡‰ˆ„ˆ††‰”“…‹‡‰–‚‡‰z–Œ”„‹‹‹‰Ž†’Š„“‡‘‡…˜—ˆ‹~‡‘„Ž…ƒ†ŠŒŒ†Ž‰yŽ’†‰‰Œ‚ŽŠ•Ž‘x|††rŒŠ…‰‡‹†…‹ŠŽŠ††‰†ƒŠ“Œ†•‰‘‘ВЉ‡‹’’‹†‚‡‚ˆŽ}|‡”††‡ŠŽ”Š‹’“†–‰‰ŒŒ“ˆ‘ƒ‡‡†Š–ƒu˜‹Œ{‡”ƒ‰Šƒ’…“}•‚‰…‰ƒ…””‰Š†ŠŒˆƒŠ†…‘„‰‚‘Œ‹“ŽŽ–‰‰’‹‰–Žˆ˜ˆ‰Ž‘‚‘‹‹Š‘ƒ‹‡‘Žˆ“„‹‰Š‰…Œ{™‚Љ…†…†ˆ…Š‹“Š…ƒ‹ŽˆŒ„Ї~Ž’…•…“„‹…Š‚‚†|ŠŽƒŽ‹Š}‹Œ‚Œ}nzƒ’z{Ž|„Š–†‡†‹{~†ˆ‡•†z‡ƒ‡‰ŒˆŽƒ‘ˆ‹ˆˆ€}„Œ…|Š„‡Š‚ŽŠ„‚ŠŒ‚€‡z€‚ŠŠ‡}‹ŠŠ„„…vˆƒˆtˆ…ˆŽ€‡ŽŠ”…††‚ƒŠˆy‹Œ”u„„ˆŒƒ{…ƒ„‰s‹ˆ’‹›„ˆˆ‚ˆ‰y‰{‰‰‚‡‘ކƒ‡–‰Ž„‡†€†„ˆ…Œˆ‹Œ„‘‡†‰‡Œ…„Ž„Œˆ’€‡”}~……‚ˆ“†}y‚|‚‘ˆ‹†|‚†ŒˆŠ‰‘ˆ€‡‰~…Ž€€y…~ƒ‰Š‡Œ…Œ‰‘„‡`“„‰„f…‹Šxxsf†‚—…y{”ŠˆŽ˜Š™l“}~’…½ zuŽ•¥…‘}Œˆv‹lpŠ{‰“lˆ|U“‡}›‹‰‘™{}…›y•vŽ‚˜ˆ’Š…†‰€šn‡~ssІx‡”x{‡zª…Œ‚“rŠx‹ˆŠ ˜‹„ƒˆ„›…“s‰~w…œ…”‰|…’„vqvƒ¥‰zŽ…‰f¢–‡‚‹…{‰wŠgŠš†€~rŒ‹‘ˆˆ•„rkˆsœ}•–ls–}twƒx}‚‚‘}„„…tl€§ˆ„†‘lŽ€Žt…‹†‘†€w•ˆt’Œy›r‚‰…Œ—‡Š‹Šˆ†Š‹„‰‡…„„€…‡‚Œ…„†„ˆ„†‡………ˆƒ„†‡‡ˆ„†‚‡‡†‹€†ŠˆŠ‚†ˆ„…†‡‰†‰ˆŠ„ˆˆ‡ƒ†‰‰‹‡††‚‹ƒƒ‹†‰ˆ‰‰…ƒ†‹†…†…ˆ†„ˆŽˆ…‡‡ˆ††Š†‡‡„„‰…„„ƒ‡ˆ†‰„†„„‡…†ˆ‚‚‚Šˆˆƒ‡ˆ‰‡ƒˆx†……ŽŽ…‡ˆ†…Œ‰„‚‰Š‡ƒ€‡Š‡„‡‹ƒ‡‰‡‡†…ƒ‰…„ˆ…‡†‡†…‚„Š€„…‡ˆ…†……‰ˆˆ†…†‡†‹‹„‚…ˆˆ‡‡ˆƒŠ‡ƒ‡†ƒ‚‰ƒƒŒ„†‰‡ŠŠ‰„‡†Š~‚ˆ…„†‚‡„‰„‹‚€„s‰‹€x„‹‹w’™pj…†yzft“~yŠ—‘ƒ€q}x—І‹spsŠy”‹{–{p—ŒŠtƒ‡‚kŽ‹t”r{–†q‹‹ˆ}Œ‰™hu˜‘~w{Šw€q–„Šs~ƒ‡ky|‹šŒ“†x“ƒ‰ƒ‰„n~Œ€u€o§†Œ‚zufyww•ˆ~{ˆwz†k~—„j‰n…Š~v€r—xŠ|”ˆ„‘s€}“‚wqˆˆˆ‹‡…Œn€…t‹‚ЇŒ‚‡||ˆ™‰ˆ|…ƒ‚‰Š€ƒy’“€„mv~}z†Ž}©ˆˆ…‰Šƒ‡ozsx‡|™›…z“ƒ‚Žƒ‹“Š~Šˆ‹Šzy—ŒŽ€ŒŒŠ‹—†‡„ƒŒ‰›†ˆŒ‰~ˆ†‰‹‹p‡Œ‡{ŽwŠzˆ‚y|‰†‚‰‹ŠŒ„Œœyzs‹ˆ…ˆ…vƒ‹’–‰quƒ”sŠŽˆ‰‹Œ‹}ŒŒ‡…z‹{ˆ„Ž”‹‡˜v‰z‹†‹‘‰”‰|‡Œ~q€…€‰Š‚‹ŒuŒ‰rŽŒ”~‹Š•ˆ‘m—›”€™†—Š˜“‡‰¢“zˆu‰’“ˆ{‡”„Š—‘‰Žƒ{“{‹vŒŒ……{†–{‘Ž}’„‡†„…†xkŽ“Œzˆ}‰‡‡‚…“’‹††‡‹ƒ‚Š„~hˆ…ˆŒ‡†…‚w“‹ˆ‘ŽŽŠ~‚…y|ƒŽ‡ˆ”¤†“‚‡‰“Šƒˆ‡ˆ}‡€v…„†“sŽl†lЇ†²Š”„Š~‰‰}sr‹™‚|‡ˆzy„’ƒ’ˆ~gФ—ƒ…Š€ƒ€‰ˆ…}l’„ˆz†‚„‹q}‹’†ŽŒ‘€ˆ—Œ‚…•—e‚yˆ™h…”w|†šx‘„xŒŒ|šrŠœ„…y…‰††z“ŒŠŒs‚‡€„œy‚{†z‰–‚‚Œ”‰}Љ„’rs—“‰—ƒ”’€‡†Œzžw„~Œy{‚¡‚¥‡€…Œ†‚…†‹‡„ˆ…†……†ˆ†„…‡‡ƒ‹‰†~ƒ††„†‡„ƒ…‡…†„ƒ†Š†ˆƒ…†…‡‡„……„…ˆ†‰‹‡‡…‹†„„‰†ˆ†††ˆ†‰‚~†…ˆ„†…†‰ƒ……ƒ‡†„„……†……„€…‚ˆ„ˆ†„……„‡‡”ˆ„‡‡ˆ…„††††…‡‰†‰††…„†ˆ‡‡ˆ‡€ˆ…†…ƒ‡……‰†Š…†…ˆ…………††…†ˆ‡ˆƒ‡„†ˆ†ˆ†„…ƒ††‡ˆ†‡ƒ‡„…‡……„††‹„†……ƒ‡†…‡‡ˆ„‡†……†„†††ƒ†…†ˆ…Œ‚…€‡‡…‰††„…‹Š…‡Š‡…†…………„„ŽˆŠzŽ‹‚€…Œ†ƒƒŽˆŒ‰‡”š€wŠ‚‹qœŠŒŽ€‹„††ƒŽqŽˆƒ‰’‘Žˆ˜ˆŠŒ‘Ž…‘œŽˆŽŠ‹ˆ‰…‹ˆ‹‚|‡€˜Œ‹…‘‹‹Ž‹•Š‰ŠŽ‘‹•„…ˆˆ”’މ‚†‹ŽŠwšŒ{ˆ’†‰†„ˆˆ†•ŒŒŠ‡„~ˆ”‰ŒˆˆŒ‰Žˆ–ˆ‘‹Ž‚‘ƒ…‹’ŒŽ“‰Š}Žˆˆ‘Œ‡‹“‚‡Š“Ž‹y‰‚Š„‰ŽŒŒŠ“‡ƒ’Š‰ŠŽ”{ˆ‰z‘‰„އ‡Š…†‹Š‘‰Š‹‹‚Šˆ‹†~‹–…‹‡‹‰‘‹‰—ƒ€Œ„†…ƒ‡xŒ…‡††…†††‰†‘ƒŠˆ‰„†‘…‡…†ˆƒ„‡…†…ƒ†Š„‹†…~‚ˆ……‡…††}„……‡‡ƒ†‡…‡‚„†ˆ‰†‰…„†~‡ƒ†„…†‚‰……†„Œ‡‚„ƒ‡…‰†„‡„‰†‰†ˆ†„ˆ†}„†~‡††ˆŠ„…ƒ†ˆ…†w…†ˆ……†ˆŠƒ„†ƒ†‚‡‡†‡„‚…†ƒ…ƒ††…ˆ†„‡†††‡‡‡‹‹…†ˆƒ‡†ˆ‚„†„„ˆˆ€‡‰‡‡ƒ‰ˆ†ƒˆ‡‡†ƒ†……ƒ……„†††‡†‡…ƒ†‡Œ††ƒ†ƒ††ˆ„ƒ…†…††‰…‘‡…†…†‡ˆ††ƒ„‚ˆ†‡€€……‚ƒŽ„ƒ‚Š—qz…lv‰Œ†‰|“‰†’‹…~ˆp‘…€‰ƒwŒ}†ƒŠŠ‚Žˆ‹”ƒ‹~‡‰Š~‹…ކ‡r‹ˆˆ„ˆ‹}Œ{‹Œ}”‰—wwŠ…ƒƒ}˜€†r„„‰‡—ˆ†‰‰~’…šƒ‡ƒ„yŒ…ˆ~†‡~ˆy‰}y„ˆx˜—š…€…{‚†Š~‚€‡vŒ…w‘~’•†’†ƒz††‚ˆz†~t‰t}„Šƒr†sŠ~‘‰„{y‹†’…q‰|‡yƒ’‰–ƒ‡ƒ„‘І…‰‚ŠŠ†…‡ˆ™|€„‡Š‚~‹£{}|oz‘‡ƒ‡“…‹‚Š„‹”‰ˆŽ‹…‘{”|“‰ƒx~‹ƒ‹–ˆ‡ƒ|…—„€‹„’„~‚‡‡{’‘oŒ‹†‚|—tЉ˜…m‡‡ˆ‚€Œ‘w—x•zn†”Šˆˆv‰ŒŒzŠrxŽzŽr‡‘ƒ†ŠŠ€Œ†Ž†ŠŠ’’ˆ†v„ˆ…sŒ‡„†ƒ€z‹…–…‡‚‹‰’‰‡‹Œ†‘s„Žz~‹ˆ€ˆ~‘‹‚|‡Š”Š–‚ˆ”‰Œ‰‰ŽŽ–ЉޖyŽ‹„‚}‡‰Š“Ž’†y‡—ˆ†u‡Œ„Šq‚‹œ{„†‡y…„‘„ˆˆ‡ŒŽ‹{’—„o„‹‡„y„„‰’ˆˆƒƒ‚‡‰‡…ƒˆ‡ƒƒ‚t€‰“{}„ƒ‡‡˜ƒŠ‹ˆ„|q“‰ˆŒŽ‰ƒƒ•~†‰‡Ž“އyƒ‘™ŒˆŠ„‡ˆŠ’’‰…t|~}‚~”‰|‘‰”„wŽ€tމƒšt‰ˆ‰‰ˆŒŽŠ“w“|—ƒ‰–Š|v†}‹{‘Œ‚Œ’Œ‰†„}•‡Ÿ†…’€–ˆŠ’†€™‡Œ‡ŒŠ‹ˆ…ŒŒ‘ˆŒ†|ŽŠ’‘†}ˆŠ‡““ˆ•‰Ž†ƒ–††‰ŽˆŽŽŠƒ„ƒ†y‚Œ‡Ž”Œz‚‘}‹“‚ˆ……‹|ƒˆ†„|……“„‘y„{|‹’Ž‹˜xŒŠ}ƒ‹†€{ˆ†‰ˆ…‰‘Ž„™‡‰••y„~‘†‹†qŒ‡Œ‰wŠ‹‰|Š’Ž}{‰ˆ”–ƒl‡ƒ†Œ‡“˜‡Ž…‹ƒ”{“†y‡‡~‰‰r‰”‚—qu‹Ž‡x†’”‚ˆ‹‘ˆ~’ˆƒ“Ž‹sˆ…Ž…‰‡‹Ž‰~Ž…ŽŠ•‘ˆŽ„‘’{˜ŠvxŒ‰‘„†€Œ|Š•‹”Š”†Š…ŽŒ™Ž‹…‰•“†€„†‰‰ˆŽxˆˆšˆ…‡ŠƒŠŽu…„…†‹Ž€x}•ˆ…‹Œˆv~•ƒuˆŒŽ}‡††‘ކ’Œ…Œ†‰‹”–ЅЉ…‚’z|“‡ˆwzŽŠ†‹ˆŽŠ‹ƒ…›…Žƒƒ“„~ƒŒ‹ˆŽs‘‰ƒ~Š’v‡•‘k‚‹„‹ˆ‘…’‰Œ‚˜s‹}o†‰€‡Žrƒ‡•ˆswŽ‚Œr‹’ˆ‡Ž†Š„–ˆ†‹“Œ‘€z„‚‰€‰Œ„‚•…‰ƒ“‰ˆ|ŽŠ‹…†‡ŠŠ’u”„{‚ƒ„Œ‡wŽ‘~}Š‹”Ž}‘šˆˆˆ‰’”†ŠˆŒ‰ˆŽ‡~ŠŠ‘ŒŽŒŽ†‹‰“ƒ†„”~І…s†‡„‡€‡‰||’‚‹ƒ†‹‹‘ˆ‹…~†}rŽŠ‘‘wz…ŠŒ…Ž˜‰ƒ€‹‹Š‹ˆŽ‰ŒŽ‚„y˜ŒŽ|~‚‡“…‹Ž…‚—ˆ‚ŠŠŠ‡‚†}{ŠƒŽuˆˆ„ˆtŠƒŠ}‚ˆwˆŒŒ‰…„‚}Š–w|r‰ˆ‡…u‹„Œ€ŠnrŽƒŒsŽ‘‡‰……Ž‹Žƒ‰ŠŒsˆ‹ŒŒ…ŠˆŽ’‰Š{‚‚†ŠˆŠ•Œ‰Œ‰††u‘xƒ„ƒŠ‰~‡u…†—‰‰ˆŒŠx”Ž‹“ŒŠŠ‰‰‹Œ‡††‡‰‹Š„}Œ‡‘‰}„…t‚Š’‰‹ƒ‘…Œˆ}–‡ˆŽˆ„„ˆ‚€Š‹s‹ˆ‡†€Š}ŒŠ‰ŠŠ‡ˆŠ‰‹ˆ‡ŒŒ‚‚Œ’‡˜‡“‚w‰‹…rˆˆƒ‰†Ž†„•„Ž~ЇމŒ‰ŽŠ˜†Š‡€„†‚Љ‡ŒŠ~‹‡ˆ…‚}†’~Š’Š‹…•ˆƒ•…†’ЋЕŒ‹ˆ‹Ž††††‘„†‹„‘‰v‹‡Œ|‡‘†‡†…“‚†‰„–Œ‡†„ˆœ‚“”‹Š†…‡€‡Œƒ¡‡‰ƒ†Šœ‹†‰’‡‘…˜‹ˆˆ‚ŠŠ‡Œ…ˆ‰Œ‰††Š†ŠŽ”‹Š‘y’ Ž‡…ˆ‡†„ƒ‡Š•Š‘‰‡Ž„‡Ž…‹~„——……Œ„Œ‰ˆŠŠrˆ…„’–‰†tƒq|‡‹€‹‰‡~‰ŸŽ‡‰Ž…—‘‡‰‡—Œ„‚¡~|І}•ŠŽ‹¢Š”†œ…‹ƒz†r~¢‡s£––{‹b„ƒ”}‘lpŸ‰‘„šh†…‰‰‚„‰¢›u‚‡„„‘‘œ˜‹yŽ‚{‹“v‹`¶y}’žr‘}°µ‚‡iŒ„kw©‰{p–o†r†zscnž€ŒU—v›Ÿ˜Š¬¢…‚ƒ ““k‰‡˜‡„ޤˆƒ‹~™“z€•ŸpŒg†{†v¡‡“…‚z~‹i›kˆ‘–”Š~q¢‚^†¤¤’…‹—lƒƒux¢xt‰“ˆ‰|~Œ„‡‹­ƒ•ˆ}~“‰‹zƒ€„‹‚’‰’||šŒs‰‡‰Œ–†Œ‚‘‰—ˆ†Ž…†“ˆ•Љˆ†„†…‚~‡€‰Šˆk„zx˜Šœ‘‘}ˆ„†…‘’ŒŒ–ŠŽ‰•“yzƒ†ŒˆˆŠŒ…„~‚uŠ‹|~‹r…Šˆƒ”‡‹‡‰Œ„ˆ˜€ˆ{rŠŽ{Ž’ƒ–‹‘‰Žˆ†‹„‘€|}x‡ˆ”ˆ’—†ƒŠ‹‰Ž•Љ•‚‘ŠŒ‹…„Š’‡ˆs˜‘‘‰‰‰‡‰ƒ‡‚ƒŽ…‰‹~†‡…~‹Œ’ƒ‡xˆŠ‹„’Œ‡Ž‘މƒŠ¢‰‡{Š’„”‹‰—…y‰ˆ†m‹‹Š„‰–„}ˆ‘„y†„Š„—Œ‡‰’„Œ‹ˆ”‰ˆ‚Œ†~ˆŒŠŽ~€k}ˆ’ŒŽˆ–‡“‰‰Œ€‰•‹Š‹‰‚”Œˆ‰‚€‹ŽŽŠrˆƒ{’„ƒƒ‡ƒ‡˜ŒŒˆ†‰Žƒ—‘‰‹‰‘ƒ‡Ž‹•Œ’‰‰…‹†‹–І‰„‰Œ…‘z‡‹‰€…ˆŒˆˆ”“Ž‹„ŠŒŒ‚”‹‰˜€ˆ‡x˜‘‰……ƒˆ€‡‡Œ‹Š†”ˆ‚“‰‰‚|ˆ‘‹‹‚Ї“†„††††…†††……††††††…†‡††…‡††…††††††…††‡…††…†…††††„††‡†‡††‡†…„†ˆ††ˆ††‡††‡††‡††††††‡†††††††††………†……†‡†††††‡†††‡††‡…††††††††……†††‡…††††…††††…†…†††‡††††…‡†††‡†‡†††††‡†‡…††…†ƒ††…†††…‡……„†††‡‡††††……‡††‡††††††††††††‡†††…‡……††††…†…†††††‡††…††‡††…††……††…†††‡†……†††…††…{‡„xˆ‡‚‹†‚~‡‡€xkƒˆ‡‹p}Љ|–ˆ…y“|{„ŽƒŒ|‡‘˜‘…•Ž}Œ~}‡†‡|wˆŽ}‰‘uŒ{‰w‰Š{—Ї‰†Œ€’vƒ‘„~…‹‰|†x’’…z„„m{ƒ’’ƒ†x†‚‡‡‡†Œu‡|‹|—ŒŠ†ƒ‹ˆw†€v…p‹ˆ‡pˆ‹ƒs‘‡‚zvkŽz‡|žv‡Ž„|‹‡ƒƒ‰zŠ}}ˆ„‹~~{‰‹z}…މˆ†Š‹‚~‚ˆ‹„‰†‡{w€„‚ˆ|ІŠz}}~„|Š} ‰„†~Ž€„{{‚~~}…Žˆ††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††‡‡…†††††††††††††††††††…†††††††††††…††‡†‡†…††††‡†††‡‡†††††††††††††††‡‡††††…††††††††††††‡‡††††††‡†††††…†…†††‡††††‡…††…‡…†††††††††‡††††…†††††††‡†‡†…††††…†††…‡†††††††††††††…†…‡††‡††††††‡††’€…‰„†ˆˆˆ‰…†„‡‡…„‡……‹ˆŽ…ˆ††ˆ‡†„†…ƒ…†††‚€‡Š‡…‡ƒˆ‡…‰†‡‚†ƒ…‡„ƒ„…–†………†„„‡ˆ…ˆ…†‹}‡†††„‡†…‡†„†‰ƒ†ƒ…„„…‡†…„‰††‡…‡†ˆ…‚„‡„„…‡‹‡‰‡‡‡†‡…‡‡‡ˆ†„‡„‚ƒ„††}„ˆˆ„‡†ˆ„ˆ‡‡…ˆ‡………‡‡‡ˆ‡†………ƒˆ†„†„‰…ƒƒ†………„‰€‡ˆ‚‚…†ˆ†††‡„ƒ†‡ˆˆ‡„ˆ†…„‡†…„†††…Š……ƒ…†ˆ„†††ƒ………†‡†Žˆ……†‰…ˆ…‡†„††“„‘€zy‰……ˆŠŠˆw†‡}…ƒx‚‘…‘Œ‰”‚„‰„ŒŠ|މ€Š~•މˆ|‹˜“‹ˆ—‹~ƒ‹…Ž{‰xƒˆ“‹„‹€|Šx“~ˆŠv€•„…xv…”…Žs{Ž…‡z‡–}ž‚‘ˆv–†Œ†Š–|y~‹Š†ˆ‘‚€…˜|‚ƒŒ„‰ˆ“Š•Œ‰£‹‡Ž‚‚Ї…‚x‡y}Ž™…‰‰’–œ•Œ‰Š’–mŠš‘ƒ€ƒ†’˜‹‰¢’‰}‡ˆ‰‚Š…Šˆ‰zŒ‡ˆŠ‹q|‚˜‘…‰Š…‰‡{“•Œ~ˆ˜Š}…ƒ~}—…‡‹u†‰Œ‡ƒ}‡‚Бމ”~tŽ„}‡„†{}‰‘‡|v€ƒŠ‹“€‡“†z‚Ž~ŒŽ‰v…|…›‰~‹ƒ‡‡‹‰}††Š~†”’”‘ˆ†„Ž‹}w„{š„€‡‡”~ˆŒ‘‹‰‡{x“z†Œˆ‰”ˆ‡|‡‰†“ˆ…‘ŽˆŠyŠ‹Œ‚“‚’™Š€k‹„‚‹„…}„‡‰‰uzƒ‡‡‡…—€…Žˆ~’‰ƒ…{ŠŠ”‘‹ˆ‚‰Žƒˆwz‚‹„’ˆ“ƒ•‚}‡‘ˆ‹‚’vŽƒŒr‡~ƒŠŠ}‹ŽŠŽ’–†‚ŒˆŒƒ„}††ƒƒ‚„’~‰|€„‚‰Š‹’–‹z”„„}Šˆ†iu†uƒ‰†vr~‹ˆ„Œ‚…|‡s‡z‹Šc†Šu‡…Œ…„–†”‰Œ„Ž‘…–z‡ ‡ˆ‰†˜…Ÿ…••z„”ŒŽ|‚w‹–‚‹…€‡‰†‘ˆ‹|‘‚…•ƒv‡„މ‚‰~ŠŒ~„‰†‹„ˆ…‘k{z“ŽŽv“‰‰‹w„Œ‚„ƒ~‚`}—y“y‡{‡r‘‹„‹‹~†‹…‰€‚‚k„xq‰ŠvuŒ{ƒ§ˆˆ‰ˆm‡‰ƒŠŸŽ‚ˆn’w‚t’{Œ€nІ{~†Š•ˆ…”}xyƒŠw„…‹•zu‰t„Љ‰„ŠŽ†‹€‹q–…‚…„sŒ‹ŒwŠ‚‚€Œ†{uu‘–ž~‹—’r}„Œ}†Œ§‰wš‰€¢‹Šx”‹‹‹”Š€•ˆ†“Žˆm~’™œ•›‚‡Œ•‡‰w„|¡ŠŒu“~x•Œ‰“€v—‹‚†Š††z€‚‡y„‹‹”„šƒ…‡Š~Š…„‹Šˆg”–ŽŒ‰šˆ~„‡‰Œ”‰„ŒˆkŠ‰Ššˆ{Ž˜yxq—„ˆ™…—«˜•€‘ˆ„w’‡……x„‹–†Ž‚w‹~ˆ‰‡Ž™„œ{•m„h‰|ƒ—~t€ŽŒ‡{ˆ–Ž”†y{”|~†“†”“ˆm‘‡¨…‹–•‡…t”‚Ž}‡†”{ƒ‡{p}€„}yx„‹Ž…’~Š}‡‘y€}ˆ‡ˆ“‰t€zƒœ„–}ƒ…€Œ„Šy‡ž—Œ•€ƒ‚ˆ‚™œ‚Ž†ŠŒ”~…†ˆ|†‡|}…‚„Œ“Œ}yŽ|‹€’Šz›|‰Š‘‰–ˆ‰‡ŒŠ{ˆŽ}…‡‡ˆqŒ€ˆ„r˜‡„“‹{€‹…‰ƒsŒ‹‹†ƒ‚Žz”„’‹‡…”„’†„‚†‰’Š“†‚‡€v†•…~‰~r†‰w‘†‰‰”ŒˆŒx‘†ˆŠ„ˆ~Œˆ–“€€~ˆƒs…ƒŒy‰‚“ŒŒ„z„‡ˆ†„€ƒˆ‡‡‚ŽŠ„‚‚‹‘ŽŒ€}w‰„†Š‰Š‹{x~g€€…w|‹‡ƒ”‹…‹…s‰~މ‹‰†t…†Ž‹•†Œ‰ƒ~‘…•…u‰u‡Œ‘”‹~Ž‡ŠŠ‚ˆ~”|Œ}ƒˆ‚‘…ƒ‚…ƒ‡……x†Œ~††††‡š‚ˆ‰‚Šˆ|…Œ‹‚„ˆŒ‹ƒ{…„†ˆ’‡p‘…‡‹‡‚}Š„…ˆ“z‡‰‚‚„€€‹‰}‘ƒz“€‹‰…‡„„|‡€ƒ„Žz~‡‹}”w~€x…‚‡ŽˆŽ„“…„…Š|€zˆƒ‰€Š~‚‡‡†‹ˆ„|‰„Š…‚“†…ˆ…Š„‚Ž}„yƒ…ƒ†‹‹Š”‹ˆ‡|ˆ‚†‰‡‹‰„Œ‹€Œ‡“Šˆ‘š~wŠ‹zr…‰‰‰…Œ„…ˆ‰•€‡ˆŒŽ‹Ž‘˜‡ˆŠ„Š‚‚‰……Œ‘ˆ……ŽŠ‘‰—‡|}ˆ‘~Ž“„ŒŒ„–Дއ•Љ˜Œˆ‡Ž–Š’‡‚x‹‹†‹“‰v’އ|ŒŒ‘„Œ‰€†’–‰‡…}……ŒŒ…zˆˆˆ‚‹”†ƒ„‰Œ~Š‹‘ˆ”‡ƒ‹‡†‚•ˆŒŒ‰†‹„‰…ˆ‡ˆ‡Š‘‘Ž‘‰ˆ‹ˆŠ‘‹˜‚”‘‹’|‘Ž’†ˆŒ‰‡…Š‘“Љ‰—’„‰}„Œ”Ž„Žˆˆ‚ˆŒ—ˆƒ~ˆ†t“–›„€‡’}yƒ…uvš“’‘‚Šš‡w‘˜‰†‰v‚›Œ‹…‘™—‰‰›‚‡‘‹ˆ‰†™’pŽ”ŽŒƒ’|‘t—™}‡–’ƒƒ‹Ž ™Œ‹‡†‡”‘“„ƒ“†‰€Ž”uŒ‰ˆz™‚‰„ƒ€‰Œˆ‰“†} ‰‰Š„‹‘~’Ž|‡„Š”z…’ˆŒŒ›‚“€y†‹}~ŽŽŽ’ˆ”‚‚€ˆ—™}“„‡ŽŒ…†Œ~„Š‚™Ž—p”„”Ї‘~š‰‘‘ŠŽŠ€‰~˜‰xˆŠšˆ…ˆ‰”…š{’w”¢•†~€ŠmŒyugs‚‰f‚†‰zv…‚ˆ}‡…qey…€}}xhx|ƒv‰¨¤•‘—u•}€‚Їž|m¡œ…†svk™˜†Š“„Šz‚Œcvtƒ‚€s‚lŠ|œ‘Œ…‚…yvŽ‘€ƒ–}wt…Œon‹t|jš‡‚}q‹™zˆ˜w—W]”rn}ouy„˜€}†•l‡…t¯€~†‡†“’„”]Šo{Š€€ƒp~hqƒ{anv{a|‚v‚ˆ”u‚‹”“•“‰Šƒvˆ|ˆ«j˜—‹~‰•ŽŠœ†Yr€ƒŒ–vŽƒm‡›srŠ¢~n‹yˆx€|¥‘І†…‡‘ˆŒˆ‹‹Š€…€Œ†Šˆ…€…x‚‰Š’‘€–„‰ˆ†‡ˆ~‡{ƒv…Ž€‹ƒŠ‰Š‡ƒ‚‹ˆ…‚ˆŠ‹‚ˆŠx‹†w‰„ƒŒ€}‰‘…‰‚Š…‹ƒ‚…‚{…‹Œq{…‡€‹Ž…„ЉЂ|ƒ€‹„…‹ŒŠ†ŽŠx…‡‚‹Ž…‘ƒ‘ƒ“މ†ƒ~‰‡††‰{‡rŠƒ‹~€„‰|…‹Š‹z‰„‚‹…ƒˆ‘’‹•†ŠŠˆˆ‘Žˆ„‚’އ…‰…„ƒ‚†‡zƒ‹‡‹‘ƒ‘…††‰ˆ‹‚ƒŽ…‡ˆ‚‰††€…„|ƒ‚ˆŽŠ‡‚{‹Š‹…†Œ}†‘‰‘‰‰•–~vŠŠ‚rŒ‡‰Š†…††—„‡…ˆ‡‰Ž˜‰†‹ƒ‰ˆ‹Š’†…}„’ŽŽ}}†|•€Œˆ“ˆ“Œ”‹‡Š™Œ‰Œ“‰‘ŠŽ†’„‰………–‡u–“Š|…Ž‹„‡ƒŒ„‡‹–‡‹…Œ‘ŒŽ‹‡‚ˆŽ‡€‡Ž€Ž‡‹ƒ…‹–†…†‡ˆ”Љ‘ކ’…‰‰ŠŽ’Ї‡‘‰…‹ˆŠ‚‹ˆˆ‡Œ‘|’Œ‚‘‡‹ŠŠ‡…‹”‹Œ‘‡Œ‰‹ƒŽŠ‰~ˆ’†—Œ…Ž…‹‹Œ•ˆˆƒ}Š—‰Œ‰ŠŠ|œ€‚v”†‡}|‚Ž’‰Œ‘‘Ž‘‚…†‚€pwˆ‹‹xŽ•…Œ‘‘u‡ŒˆŠ‘r‡„‰w‹‡‹‘ƒ’}–|Œ{t˜–……ƒvŽŠ’|…pt’Š…tŽ•Šž}ƒxŠ…†‡v‰„ˆ‡‹€ˆŒ”‡‡‡‚Љ…‡Š‰™œˆ†—ˆŽ‡x›Œ{rŽˆˆŠˆˆ††•Š˜Œ‡‡™‚†Œ“‡’…Œ†…ŽŽˆ…¢Œ–Ž}•ˆ€‘Š–|‹x„އsˆ„ˆŠˆ†zŽ{˜ŽŽŽ•‚Š…‰„|‹‰w›Ї|Œ}‡‡‘‚–Š—‰}“މ‰’…ˆ‰††•……w”‹ƒ„‘ƒ‰“–Ž”“{‡—‡Œ‰…‡ƒ‚|„€‘xˆ–އ“„v‡ˆ‡ƒ‰rŽŠ•†€~‡“Š~™|–†r‰Ž‰ˆ…v…”•‚“pu‘Š…vƒ–‡‚„ˆŠ‡Ž„~‘‚†|ˆˆŒ}††‡††ˆ‚††„‰ŒŠˆ•‹‹ŽŒŠ{‰‘‚mŒ‹‡„‹…~‡ˆ‘‹Ž‘Œ‡}›ŒŽŒŠ’•‡‰”Œ…ƒŒŒ‡‹…Œ†…’¢Š…†‹yˆ„Œuƒ›‹€‡’”ƒ‰‡x”Œ”†‹‘Œˆ‹n‹ƒs‹‡‰z†…Š„ˆŠˆ–”Žƒ“ƒ†Œ†s‚’€u‡‰…‚‡Œ™Œ“’{‰“‰Œˆ„ˆ‡~†~|‹ŠŽy‰’‘Єޅv„„‡‡Ž†r…ˆ“‡ˆ…Œ‰…‘…“x‘wˆŒˆ…†u‡‡”Ž‚rs”†‡v‡˜ŒyˆŒ‹y††‹Œ‹s‹ˆŒ„ŠŠ|‚™z„ƒŠŠ‹”ŒŽŠ„‘Ž{‘k‹‰‚€ƒŠ˜‘’‰‰••†‚—’†‹„•‘†Ž‹ˆ†˜Šˆ‰Ž…„‹†€‹†“‰™…‘„Ž{‰„tДބ’‰„‹v•’†ˆ“‹ŽvsŽ}‡†‹q„€‹‚ˆŠ…”‚–Šo‹‹Š„‡‚‚Š„“Ž„€vŽu‚„Š~‰ŽœŽ‹’}|€•…‡‘Ž‚~‘u“Žyˆ’ŽŠ}‹€wŒ{Œw†qŽŒ…Š‹…”‰’y“z•…rˆ•…{{ˆ‚–‹x–mu€‹uƒ˜„„ƒ‹ƒŠ„Šˆ’”…~yŠ“ˆw†ˆ…Š‘’|ƒ{‰ŽŒ‹‡’‹Œ’Šˆ{ƒ”sy‰Œ‚†…x‚””†”Œ‡‰˜‡’Š‹…•“‰‹‰ŒŠ“–‡“ƒ€Š‹†‰‘ˆy“œ‘ˆ…ˆ‚†„‰tˆ“†‹‘…†‰{””“†‹“ŽŒ‰“‡v’n„ЇЅˆ…‘Žˆ•ŠŽt™…БЫ† €w…†—†¡” ’ƒm¢ˆŒ„y‹‡wy~™’€‡žx‡…žŠŒ˜– ¡z ‚y‚p–w¨“ŠŽu‚~o…uu†–—„Ž‘•‡¦‘u’‡‚Œ•‰‚ŒŠ ŽŽƒŽ‚†–ƒ‘Ÿ„qŠŠozŠy†ŒŒƒ‹ƒ”wŽzˆ’Œ}“ |šŽj—Žlˆ“r‹”ˆv©†z„_|{„ˆ–𭓇Ѐ€Œ˜‹‰¡˜ƒ•dŒŒ‹•”œŽ‡”’˜’Šˆ€sŽ„„—Œ„Œ|„‡‹‘Ÿ„ˆˆ“•~ŠŽ„‹{œ”Œœu‘…€‹z„|‰Œ“‡~”Š€‚“€ˆ•ˆ‡’‰€||ˆ‚–{ˆ‘—ŒŒ˜•pt’€ˆ†ŽŒ‹†„€Œ‚’Œ•‹”‡uƒŽˆ†”•n…Œ‚‚Št‹~˜„žƒ‰…™‰u‡‡x‘‹r•€”““vs“ЇƒŽ˜z~‰‹ƒ€Œ~”ˆ‰w†Œ‘uˆ‰Œ†ŽtŽŠ‹š‡‡‡’“Šw‘“ƒ¢†v††’‰‡‰‰Š‡†š“‰ŠŒ‘‹ŒŠŽ…›ƒ‡‰ŒŽ~ˆ‡Œƒ‘…‰™„‰“‘•~}Ž‚‡‰p™€{˜“tsЇ”‡€{“’“‹‘‘ˆ‹Žtƒ›‚m™†zz~ˆ~†‘Š|ކ††‡„„††‡††…†…†‡†††‡†††‡†††††…†…‡†‡††††††††…†††††††‡†††††††††††††††††††††††††††††††„†††…††††††††…†‡††††…†…†††††††††††††††‡††††††††††††††††††††‡††††…††††††††††††††††††††††††††††…††††††††††††††‡††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡…†††††††††††††††††††††††††…††††…†††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††…††††‡††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††‡‡††††††…†††††††††††††††††††††††††††††††††Š†Š„ˆˆ‡„†Œƒ‡‡„†ˆ†ˆ…‡ƒˆŽ“‰ˆ………ƒ†„…ƒ…Œ}‡„Œ…”…‰„ƒ†Œ†„}„|†ƒ…€{{ƒ…‚Œ†ˆŽŒŠ‹‰‚‚„‡‡Œ‡u€~‚ƒuˆˆ„‹…†‡ƒ„…†‰œ˜‡vŽ…‰Œ€†ˆƒˆ††€~‚…‡|…‘ˆ†„‡Š…‡Œ‘~Ї†„†’……‡x~}™‡{x†„‡tz„Œ‚ƒ|ˆ€‘‰ŠŽkŒƒ…‰Œ’uƒs„‰†{ŽˆŠ|‘…ƒŽ„}‡€z›„y“…†{—¢„‘†”xy‡”Ž‚š„…„‡‰ŽŽˆ†‚w‚“zŽŽ’ˆ~‡‰†‹‹“‹Œ†”‡‘ŠŠ”ž~~”ˆmŽŒ‘„‰…’‹‰ˆ…’”……ŠŠ‡‘‘œ‰‹Ž‚„…‘Ž‘ˆƒ‹…ŠŒ“x}w“’–ƒ’’‰‘†˜‘”Œ†Ž›‹‹’“”ˆ”ƒ†”€‡~Ž“Žv—€†Ž~ŠŒŠ‚†ˆ{‹”ˆ‹œ‚…Ž‹“ˆ‘ŠŠ‚Ž‹†‡ˆ‘…‘‡Ž‡ŽŠˆ’“•ˆ‹†‰Œ„“Ž‹‹‹‹…Œ‹’„Љ‹„ˆ•‘Ž“‹ˆ„Љ’Šš‹z“†‹‹Šˆ‹‰‹Ž•‹Žˆ‰ŠŒ„“’“Œ‡’‰‰Ž‘‹‚‘††ƒ|††‡~mŒ€Š}{…|}…w††ˆy†q€ˆ‰‹€‚„~‚|ˆ“q}v‡~…|‚„vzŠw‡‚‘Љx™|‰ˆ~{Œ„w„Œ‰€‡zz‰k‰‚ƒŒ€ˆ€ˆx†z‡‚‡‡~~€˜’ƒz„Š{†x€‰z‰“…Žv}vŸ•~‹wyƒ~…ƒ|‡…„z„w}w~‚‚u¯…s~{ˆx€˜‹ˆxt†v“{rŒ‹tˆvt€‚‹{ƒŒzr‚†”†ˆ—€~„y„o~‚|††††Œ‡‰€‰~z‹ƒ†~‘{ƒv‚„‹†~v††…|“{€‹„„}†›„Šv†€‰~xƒ…‹txx…€~y•€{‚pŽ|y{œwx€|}{}j‹{„|}ƒ‚}}i”Ž|–}zrƒpxwwƒw…}t~Šƒy„vxƒŠ‹~~~pp…yš†Šnju{uu˜v{‡yp‡„…šoz…}e€€‚ym†ˆvnŒjw…‡vy|w‚|r†tr‡}lˆ}‹szr~y}}wv}Žuzƒ€m~yˆ‡tˆvƒ}~vpzouuy‡up…v|zit‰tƒ‚{|†‡|ktz}w{ƒzwu}|y}€}Љx{Œˆ€~€xq†{w‘ir‰x†y‚ƒvsv~}„~‚‰ƒw…„yxŒvj‡«¹Pcz’¼‹…ˆ„‘Ø…‚¢r‘‘†s˜‰¡‡wwŽŠoxw¥¤‹¦u]w‡‰€…oc”„Лޒr}œ’‡q®–d“›˜ƒ‰¿‹q²I–…†yhš¢{Œ€v¨Š¢•‡’—’~Y™šœ‹…•|j‹ z‡°ž‡Œdª‡„‹Ž»u„u‹nŠ›w~aޔІ„‰Ÿ‡~’Šx“Š–—§‹£‰œ{]œ–‘œi¡‰y|£tŠŽ…”ƒqv”ƒayz‹…‹‹†ƒw‡•–‚‡ ‚ušvŠœ†“ž—†{¨Š{z€œ†nnާx—iž‘Ц¬z›†•ŽqŒŠ{‰Œ‘’—‹–•z–Œ•Ž›š˜‚‡‰Šp‹Ž„†…Œ€‰’‡‚•œxŠ…‹„‰’›’‘‰…ƒŒŽ”…ˆ‹}‡Š”Š‘v{{–~Ž•„‹‘„—Зއ‘|Šœ–Ž–‹Ž”’…Ž“€Šƒ‚‹–‚€šˆ‰’…Œ‹Œ‹„‡œ‡‹Š„…މ‘‚ŽŒ†ŠŠ–Œ‡–Š‹‘„Ž’‹”š’†Š…„•’‡Žˆ‹…‡–””‰Š‰ˆ”‘’ˆŒ’‘„’}…„y“‘‰ˆŠŒ€ŽŠ‘‰‘‘–‡ˆ†•…Œ„‡ˆ~ˆ–…“”…˜ŽƒŠ†„ˆƒ…Ž€‹…Љ~„‹qp†~Š‚qq”“‡šxŒ}}Šu€sŠ‚’|{Š‹’“Œs‡‡‚sŸ€„l†€ˆ‰“‹~Š„›ˆ„‹ƒ”•”‘}lw{Œ„Ž{Š‹‡ƒ‰u~‰ƒ–o–‡Œ“†‘”…s€s‰……‚†ˆ”Ž’†„‹€‡zo{‹‚މЄˆ‡‰l€xov€t„‡“‰wžŒsˆ•ž‚…”‰‡Ž‹‹Ž‰~~„…‰‚„}€‡Šx‹”†}vŠƒ}}“†…~€~‰z™‡€q€‚}ŒŽˆ€‰„…ƒŒo‡„Їˆo…€‹{ˆ‚–~…„‘Žˆˆ—„€ˆ€†Šx†}Œ‡vz€ˆ€‹”„Š€{‡Œy‡„‡|‹m”†€†‹u–„y†Ž…w…ƒ†…ŠˆŠ‰…‹„Š|~‰‘‰š’}†j~…”‡~Œ|‚‚†ƒvs‰‡€ƒ|‰†yœˆ‰†‘}‡€}ŠtuŠq‹‰z‡„}Ž‚z{™z‰{y‰ˆ‡‹„}‡€~…Œ|ˆŒ|~‰~ƒŠ{{‰ˆ}}|‰„‘~‰††‰…‡~}‰Š†Š–‡z‹–††Œ…ƒ‡€‰||ƒŽƒ†…‘‡ƒŒ{s†…‡…—…}„Šˆx{…„€‹‰z…‚‘…u“q‚m‰ˆ…‰”‹‘Šƒ~…‚ˆŒŒ‡„Œ”{Œ’Š’Š‘”}y„€o‡Œ‰ŒŽ‰Œ–‡Œƒ’Ž‹‡ˆ‰‹–‘™‹Œ‘І‹ƒ‚€“’ˆ‡Ž‡‘ˆŽ‘•{~ƒ€’†‰Ž—„Ž”ŠŒ™€™‹Ž““•†ˆŠ”’‡ŒˆŠ••ˆp”„Š~‡‘…‡‚‚ˆ~ˆ˜‹„…‹ˆ‹…‡—ŽŠˆ‰ŒŠ‚ŽŠˆ‘Š‚†Š’’‡„Œ‰’’އ’‰ˆŠ„ƒ’Œ‰…‹ŽŽ‹‘‹‹Œ‰“‹Œ”{œŠ‹ˆ‹‡†‰„’Ї‰Ž‰Œ‘†‡}ˆ“—Œ‚’‡ŽŒ‰‚ƒ†~‹”ŽŽ†ƒŒx…‡—‡…‚™‘”~vŠ“Š}‰‰’„…†}‚††Ž”’‰€p‡•‹Ž‚•ˆ‚އ‘ƒ˜‘“ˆ†Žƒˆ–Š‹Œ‰€’““ˆŒvŒ‚ƒ‘–zŠ•—{y~†Žˆ‚•Ž‚œ‡‹…‘‡‘†ƒ‘Š€ŠŽˆ‰“–x“ކ™”€–Œ‡ˆ™‡“…‚„ˆŽ‘…’ޅއ‘Ž•Œ““Ž’–ŒŽ‘‹”“‰}Š‹‘ޑކŒ‰šŽ‚…”†““‹Š‡˜ˆ•„’‰˜ŒyŠ’†Žƒ‹˜‹™‰–|’’€‹{‰ˆ‰ˆ”‘€‡z‹ŒŽƒ’•ˆy‰~~ŽŠƒ”„Ž“Œ”“ŠŒŠ““‚Œ”’‚‚Œ“w~}|‚Š“„–’…‚t•…sx”‰•xƒu’ƒ‡yŒ†‚‹}•‰‰”‘ŠŒ—uŠŽŠŒ‚Œ‹“’–w„‹Ž‘„”’†ŒŠx‹Ž‡‹‰Œ‰‡‚…‰Œ‡’z•“‡†—‰‡‹Ž‰Œ”†—‰‘’Š„‹†€|ƒ”†£‹…—Ž’‘Œ¢•‡˜{‘‹Œƒ‘‰u…‚Œƒ‘‹‰†‰•‰†’ŠŠŠ†„•‚‹zŒ–”ˆ‘‡“’•‰‘”•‰†‰‰Ž€‹’“~‰‰“‹ƒ‹”Œ‚–„ˆvˆˆ‘Šw‚›‘‰‘‡‰}’Ž•{yxމ‚ŒŠŒ€{’}ˆ‘š‡•ŽŠy€…‘‰‘‹}’›’‰ŽŽŒ…“Ž}‘І“ˆŽ˜ƒ•…ƒŒ‰‘Šˆ…‡‘†‚‹‰Š˜‚…Œ‚˜…Ž†Šˆ”‹…Œ“ŠŠw|Œ†~‹ž{Ž•†‚›ƒ‰‰‹‡’›‘•‹Œ‹Žˆ‹‰”‰€Ž’‹‹Œ’Ž’‹ŒŠŽ‘…„‘ˆŽŒˆˆ“‘„ŒŽ‡Œ‰‰‘ŠŒšŠ‹‡”…‹„‹—ƒœ‰zŠ…‡Œ„‡‹•ŽŽ€–€‘…ƒ|ŠŽˆ„–•‹ˆˆŽ•‰—ˆŽŒ–q’››•ƒŒ…‚‰‚„zŽpy“Šoqƒˆ‡‹•}„‚yšy…—ƒˆƒxˆ|y‡eމ…ƒw”ƒ€Š‘lŒxƒ}Ї‚‚‹—yt|’Ž‘€q’€”xr•„‹‰tŠŠyšŒ”u€„’q‘£”ކ}”€ˆŠrƒ…v…‚q‡’ŒŽ‚{•–‰‘‰‡rŒvt|r~„„‚€„‰€‹uŽ{ƒy†wŠ„˜j‹‡…›ˆ{u“y‰}˜Œˆ‡ˆ…|‚…‡ˆ…‚‘„€}Œ€ˆ{’‰wzŒz‹yzjtz…ˆƒuދІ‡‰…€…ƒ{†‚€|{…r‡zƒ€‰qvqw„}z‡…ˆ”Š‹‰‚–…‡tzqŽo{‘ƒ”ŒŒƒ‡‰y”~ˆ‰„‡s—Vˆƒu••—†|‰—ƒiy‚„Ž}‰ƒ‘~~„‹{‘Œ™‚›“—l{„ž’b‘ˆ…ˆ…{•}}~„…w“Žr„Œ‘ˆs‚Œ‡„}n‚†€ƒ„„~‰~†ƒ|šs‚t‡x~˜†ˆ†’k{ˆ‚€†‰‹†‹x†‹r’Œz…ƒ†|‡†Œ‹‘“†ˆˆ‘Œƒ‚…†s}‰Ž…€˜|i…‡€“—ˆq…~v•Šƒ†Ž‰‚€~Œ‘ЉpŒƒŠ‚¡†‰p„}ˆ†}o€|†‹}Š‚q{“†‡–‚Љ……„vm„–…mu—‚‰‰œƒˆ‚}‘‰x“‚w‰{tŠaˆŠ˜•–~”†…Ž“pŠ„oˆ“‰’€‚‡ˆ‡Š‰„˜‘Š“ky†‡‚q…†ˆ€~‰†~x„‡‰s‡ˆŒ•‘‘‰‰—„iwˆ„†‰„p‚†€‚}Š€ˆˆ‘†i‘€yŒz“‡ˆk{‡…zƒƒˆ–Ž…zƒwš}‡x‘‹„„…‰‡u’„~ƒ{‚ކ„‡{‰ŠŒ”„‰~Œ…wy}‡Š‹…‚…w€„‚ˆ‡Š…’€vz|z‚}•‰ƒ’‡‡‡x…q„xˆy}‘…›‡Œ{„z„~xŒ†††„‘†|ŠšŽ˜ˆ ™•~y‘šŠoˆ‚—–}„~~ Ž”“މ•š‹Ž’˜—‹‡‹y™‡–~–ƒ„€’„“–xy‰“{•–“““ƒ•‰‹›‘–žŽˆ‘Ž–“‘ˆy›‡Ž¡„‹Š•Œ}š‰“Š~’‘†„‰‚zŒ–ˆ‚š‚Ž‘„‹‡—‹’ŠŒ‰…‹ŽŽ‰Ž~‰ƒŽvšŒ‰•ƒŒ†Œ‡–•‹“–ƒ”Ž‚„„ŒŒ‹Š†Œ‚”‰ŒˆˆŽŒƒ–‘ƒ‘|—–‘„“€Ž‡“†ŒŽŠ‹Ž”zŽ˜Œ„‚‘“’Ž“„†‡Ž—‰}‚tŒŽ}vwuz€sr|}ƒŠwyyˆŽsmp}vxa‹Ž€‚sp|{y~o†rs‹lkˆ…|zw„z‚‰x†t‚wy”ˆn{‰st‚{ur€yx‰ps‹u„}zyƒ‰zy…uz„i~zƒro„…q€€t{…z{‚r}‚€tk‡u{‰~wo…˜u†tly†|Œ~uxx€}ƒt‡up…b{‘~y„kv›zo}t||}m…{zq{‹qmƒ{s}|ujƒzx~pk‚q„||ˆ}€o‚}uwˆ„q“|{{ˆ„us{|{pv‰up}†uƒ‰iyyƒ€€„Šx}ˆzxtƒ~}‰’}‚˜{›†‡‹‹Œ†Š—}vxƒ…ˆmov‡ˆš‰Š‡€‘‚~‹‰ƒŸ‹‚•zŽ‹‰“˜€|€‡ƒpŽŽ|y‚˜‰‹Žƒ„…‘‚„’ˆ‘p|ˆŒl‰€„|‡€‰€|އsˆˆ‰‰‚‘Œ……†‚…ywƒŠ}‰†‰†~…{›k…~rŠ‘q‰‚ˆ‰‹s~ˆˆ‰‰ƒ‡‡~w€ˆŒx„‰}‘ƒŠ„‡|Œ†€‡…††Š‹ˆ„ŠŒ€†…ˆ‘{Žyo‡‡‚“Ž|„qƒ…ƒ‚ˆˆ„†Š|}‡–‹…{‰‹“’‡yu}†„Œ€‡v†Šˆ’ƒ~ˆxƒŒ}ˆ‰‹†‡xz†z“„Š–…€{–ˆv€‹†‚}m…‡‹z„ˆ…€o‰„‡€„p‹tu‰ˆ™‰…p‚ƒyƒˆ|‰„{€ƒ‚‹Œƒxnz†‘ˆ‹Žvˆ€‚|‰xŽ|†€…s€‰‡‹Œv~}}ƒ}{‘Œwˆ‡„ƒ’o‚†‹}ŒŽ„~‹yo„~}††€‡~‚Ž‹|†‚|‚„…„€„‹‡€€s…{•‚~‰x…‰ƒ†s‚ˆ‰†€†…z~‘€‚{~ƒ…‰}Œ„‰~ˆ|†‡zx‚†ˆƒ‰‰ywŠ}x‚w}€‚†‰z|ŠˆƒyˆzŽˆ|€~r‡ˆ…€‰‹~ea€|Žy’…‹¬{‰o¤‘—…Œ|‚ˆ}¦~†iˆ†f‚zŒ‘€ŸeYfq„‡qqy‡h‡ˆƒb’Šž‘s‚§•w€‚Š—}†r§kŠŠ}z|Š“~ƒ|^”‘x˜ˆ‹„bx›†‚©€x‰„rž}‹}¬‡xŒ‚˜“z„„–w‰’“–v‡ŠŽ‘„u~Œfš›w–”†–Ž€•¨…k{‹yˆ€“‘¢†ˆŒ—vjŽ—Œƒ…”†q|vœ{zwŒ”‹Š‚Šˆv†ƒ‡†‘v’o™‡t“‚¥…}ƒu‚€s†}ˆ†ŒŒ”…•Š…ˆœvŠ‘ˆ“q‘ˆ‹‹|Œ††‹uŠv†€ƒ‚ƒznƒƒˆ‰’u……ˆ‘Œ„ˆ}ˆ„uŠ…„‰m‡~z‘…“vŽ€ƒƒ‰z†ˆ‘€……„„‘ƒnyŒ„ƒŠv}Š…”Šƒrƒ…z‹–’”ƒz”~…‘‚„|~}~v|‚„Šy‹“‰Žˆ„}…vl…}ˆ„‚ƒ{„Ї€“€†{ƒ‹{‚y‘‰ˆ‚Œ†€x‹€›„Š‘‚–„‚}ˆ€‘y€€‚‡Š„€y‡}…†|zŒ~‹‚„€vtƒ„†Š‚Œ‘z…~„€…Œ|—‹‚w„ƒ}xx‡p‚†ƒ|q‰l‘€‘‚‡Ÿ‡xˆŒŽ„‰“‰‚}ˆ–‰š†Š™„‹Ž„ƒuŠŠŒ€ƒ‰‚•‹š}‘|h‚–……‰“‹’‘‘Šˆ‰Š”ˆ’„…’ކ’z{–”Ž“ƒ‡’‰Š‘†–‹ˆ™Œ”™’’Ї…’ŠŽ…u€“•‡y“ЅІ‘Š‘‰‰›‰‡‡†‰„“‰•ŒŒŠŒ‡Š„…”’—“‰•‹‘’”‘€ˆƒˆƒ‰–‹œŒ‹ƒŠŒ‘Œ”…†„–””–‹šŒ‘ŒŒ’v˜…–”}–”“šŽ‹‹‚”‘‚—‰„†ŒŽƒ‡…~ƒ”ކ’ˆ”ˆ‚…ˆŒ•mŠ›’›Ž†Œ‹„Œƒv†ˆu€‹‡um‚‹…™…ƒ‰‘‚…•‡‰ˆ~Ž„w‘•‡‰‰v•…}ˆ‘Šœn”}ƒŠ†}…Œ‹†ƒ}€‹…“‚nwˆ|…‹x‚„€……„x}ކ†wƒ‹˜ŠŽy’ˆ€‹‚„€u‡Œ‹€Œ~‘‘„‰„ƒz…€j€w‰Œ†Š„‰‰pŒƒ}{…Šƒ†w‰ƒŒ‚y‘„ІŒ‹‚Š”~†Š†‡ˆŒˆƒƒ†€ˆ~z†…‰‰‰€Š|z{†zˆ{ƒ‹w‰‚z}ˆƒ‘‰}ˆ‰‰w„zwtƒŠƒvŒk‹Œ†}–”……ƒ{މŒ‰ƒ‡Œ’~‰ˆ•‹‰Š‘“}Ž’…}Œ‹’•ƒ‹‘†Š†€ˆ‘’‘‡ˆ‹‹Ž™‰…›Œ‚‘Љ‹Ž†‰ƒŠ‰Žˆ„–†‰”†–~‹“މГ”Šƒƒ†ˆŽ‰•”†‹‡ŒŠ“‘‡Š‹|Œ—…‹ŒŽ‚}Œ–ˆŒš†ŠŒ„‹œ‰•‰‰€‘‚‘ŽŽŒ‡ˆ†‰‡ˆƒŽŒŽŽŽŽŠ‹‹’ŽŠ™Œ”Ž”†‰‹“–‘Љ“‡“†Š•Œ’x““|Œ„Ž…‘ˆ“‰ŠŽ•„’ŒŒˆ˜Žƒ††‰Ž™’Œ‚‰ŽŒ†’’Ž–£z“Іy‡€~‡ˆŒw€ˆƒr}w{Ž‚‚|z‡…’…Œ†ƒŒ†‡p‰‹u…„t„y•‚ˆv•~‰{…~ŠŠ‚xˆz‚‹ŒŒŠŠ‚…ux~‡u€‚†Œ~}u‰Š€ŠvŒ‰Ž}{”‹Ž~w‡€w‹†~ƒƒ„ƒ„‚Š~†v~~‹s}xx„€|Œ…z‚ˆ‰ƒ}Œ{ˆ‹€‹{€•{‚‡ˆŽ}ytˆŒˆ…’ƒ‡z‡‰z‘„„x†ƒw‰ŒŒˆ~ˆ‚{u‹†ˆ…ƒ“~„{‡‚‚ƒˆ„†z€‰y‚‡•‡„z†ƒƒ„‹|z…xƒŒ‚‰ƒ‰oŽ}‰ƒ†…¬~†v…‘—•…ŒŽ’€„›…Œ‰¤Š„¡z~¤Ž‹‘€qž}ƒŽŠŽŽ˜†aŽ~—Ž…ŒŠ’ ‚|Ž­’‘‹¡nŽ‘‘}Ž“—ŽŒŽ€|Š••{’†Š•Ž–’‰†…Ÿ…•’”‚‘†ƒ„Šžš‚†”‘Žy’Š‹uŒŽ‡…‹’‡€~”„ŸŠˆ‰‡Š‰ˆ†ŽŽ‹ˆ‹€•„—œ‰˜›‚Ž‘“•‘“‡~‡Š‰ˆ’™Ž›Œ”ŠŽŠ|ˆ’’‹Š’…‡‡–—“•‡•‘‡…‘‹•‰œ’r‘–‘Š‘Šˆ‹’„‹“„‡‹¡ƒ†‹€…‹Œ“|™…Š‘ƒƒ{€ˆˆ|tpzwq‹‚z{–‚}Žz|‰€„‚~{xo}sk~€„|t‹„~„q–||…„|‚o|wy|gŒ}`{t~o’yzputqy…ur˜u}‚Šmt~‚x€v{txy~‘Œh‡z€|l‹{Šy‚„nuz“ky~„‰…wn‚Œyzt†‡€‘vzrgzvrzt~€n‚‚{t{‰ƒ~z‹qxƒytxqql†}…ylxux~…„m~~u|orpƒxƒ…}|}‚zsiu|t~tuwlw‰€~Ї–ˆ€}xp~v–~‹euŠzrs‚ƒ†pŠs}{}„|p‰u†~~z‡gk‹”zŒˆ—ˆˆŽ‘‹‡’u}“ƒŒvvŒ„‚”—†„~Œ†”†Š‰‹‰xŒ|“||‰“y˜„y†ŒmŒˆ{ˆ‚‚Œ‰‹‡v}Ž‘“›ƒ•nt…œ…}‰|ƒ€†|ty„Š€ƒtŠ…‰Ž€Œ†ƒŽ|u‰ŒŒ{„€ƒˆ‡~‹}„xyy€wz‰Šˆ…‡†Žo‡‡‚††‰‰Š‹}†‘~t†…‘x‚w‡‰”~Œ‚†•Šƒ‡ƒ”…†‡‹‡z†‡‰Œ†{}Œ‰‹Ž‚…Žz‹~€‘…‰‹}ŠˆŠ~|‰’‹|‹‹Šˆ…”†{o}‰ƒ‹‡k‡ƒ‰Š†ˆ£ƒ‚‚‚†‡Š€ˆ˜Š’‰‹‰…‡”šw„…€v›ƒ‰¢Ž‡Ž†’~‹Œ„„Œ‰Ž ‘‰•™Ž‚’Œ–‚‹•†ˆ•ˆ†…šu‡j“‡Š™€†“‚–™ž‹Œƒ‹•‹Ž‡•—“•‚€˜‡‹Š…ŽŠƒŠ•”–x’†Œ{xŒ˜v~€Ž•‘›Š‰‚‰šŒ’‹‹•‚އ—|‚‰Œ’‡”˜’ˆˆ€‘Ž™‰ŠŽ†Ž–“‰Ž“ЇЂ™”…”Š…ˆŠ~š—’{‡’y“†‹†€†‹—‡Š‘”‹‡„——‡…Œ‚~•Œš’‰‰˜’‡mŽº•b¥kˆ’~Ž®c¢yuƒŒŒn‰‘”˜Œgls}ŠwxƒnŠÃl“}™~ž‰|k‘^s…o‘kLqz˜Zeqvi ‚¡lU~©lŽu†q¦‹œe—u‰…—l–”~s~‚~¢h‡ƒž’Ši›¡…unqjnœ–”ŽŒpt£b‚‚jz–Šuvq‘—¢wƒŒ”¤Žu•Œ•||“‹€˜ifv˜ˆnz‰‚–•y©q‘Š‹ƒ|o|žsŠw|kli¿‰wŠ€e“‚|œ…‡…o¤wŽ~’’µŒyŠŒ…¥ƒ•…u‘zw‡‡†ˆ}Ž€|„—“Œ†‘€u•Ž„Œ”o‚›Š„”z“„Œ‰‹‡‹‰ˆ‚ŽŠv‡ŽŽ‡q{„„Œƒ‰{z††~—‚ƒ‹z‹‡}‹˜~w‡Šs’ƒuƒšt‹Ž‡Šv‰‚†Š~‡„…}~އ”•„„ny}•‰ƒˆ{ˆ‡‚‡„uˆ‰|x‡„‚ˆ‹Š~“‹Œx„„~{ƒ‰tƒ‹‚{‹}‹‰†ƒ‡}y“y„~†…†‚‡{‚Œ~xƒ€€x‰}Œ„…”z|’‰y„x…‚‚ŠŒ}Šˆ„‚Š|‹…„‡{‚}}‰|…‡‹„ƒ~ˆ‹†„ŽŠŒw‰}‰ˆ†|‡‹|z‚‹‹Šyˆ‹‡€†ƒvq‚Œ†m†‡‹ŽŒtކ•…v–ŽŽ’†“Š‘Šz}ƒ†z‡gy’€‚“‘}ˆ‡‘ƒ‚‹Œw“uˆ‘–ƒ˜zƒ‹m–•†‰ˆ†„ˆ„ˆŠ‚ƒ˜€–‡š””ˆ‹o|‚™Žh‰ƒ†”‡nu€ƒ‘€…r‘Žz„‰†‹~‰ˆ†|{s„‰~sІ…ˆ}ˆxŒ†|“yŒ~u‘‹‚}œŠ€‚˜os|‰‚„ˆ‚“ƒ††s“‹w‡{€‡‰ˆ‰zŠŽŠŠŽ€ŒŠ‚Œ‹€—„‘††Œ–x~‚}ƒ”šŒ’{…x|„{‰~‰‹{{Ž~Šz}’‹‰•Œ‚}‚„†‘ˆk€q}œ…‘‰€†…„‰‹”†“‘ƒz‘—ˆ’’Ž–š|’Œm‡ŠŠŽ‚‹†‰’Žˆ†‚”—…ˆŒˆŽ‹“•‰‡Žy}ƒ‡v”‡€‹Š†‘Гޓzxi•|“•…ˆˆ’›‚š‹ŒŽš‘Œˆ’‹’ŒŒ‹‚Š–Œ…•Œx–‚„‹|ŠˆˆŠ…}‰˜ƒ‰œˆ‹Š‰ˆ‰’‰‘‹‰„ŒŠ††Š†‚އ~ˆ‰’“–‰ƒ’ƒ•‘Š’Œ†Š‘…ˆŠ”ŠŠŠ‰‡…’““‡ˆ‰‘ƒ—‡–‰Ž‹{‡Š†Œ„Ž’“‰‰‘Š˜‡~ƒ—Š“•…’††“Œ‹˜†‰„މŽr†‘„–””‡Œp—™|އŒ{‘‹‡Ž–‰‰ˆ„‹–„†”y‡Š„ˆ‚“£Œ„“‹‰ˆ’ˆ€†‰Ž˜†’ˆ‰—€‡˜„ˆ—‡‘‰¢›¡•‰~…‡†Š“†•™‡”Š‚ˆ„‰Ž‹Œs““’|‚™’„‚’}ˆ‘‹’˜Œ‰Œ‡ˆ›–Š{“Š“‹ŽŽ‹†ƒŒ‰‹Š–ŠŒŠ‰|˜ˆŽŒ‹”ŒŽ‹Š’”’—Ž‚ƒ•ЂЉ’‹‰Œ‹ŒŠŒ‹Š”†‰Œ‡ˆ’‹’™ˆŽ††…‚…—Š•‘ˆ‰“…ІŒ|Šƒ{z“”„†—|ŠŒ€“‰”ˆ‡ŒˆŒƒŽ“„“Š’‹“vu|‘‰uƒ“•ˆiu~€Šq~‹›…Š†Žˆz‹ƒ‹Š“†ŠŠ•Šv‚œ—m‚…{‰•|Ž™“•zŒuƒ‘†’ˆ”‰„~‡ˆŽ‚yŠ…’ŠŒ{Œƒ‹Š„Š‘‹v†…†‹ˆŒƒŒ‰‹˜†Œ‡‹‡‰‹‰‘–Œ—~”ŠˆŽ„Œ…†‚”‹Ž“¢Ž’•ˆˆ‹‡„’„~”Ÿˆ‘{Œ‘‘‚‹†„Љ–ŽŽ}ˆŸ’ˆŒ‰‹ƒ’Ž–“‰…ˆŠŒŽ…|ˆ˜€ˆˆ‰ˆˆŠ~‹ˆ“‰‘’~‡ˆˆšˆ‹…‹ˆ‡†w€ƒŠrŠ{s“‰Š‘‹‚v}‡€‘‰„ˆ“‡…z‹€™‹‰pŠ|‹‹ŽŠv†|„}‡›†Ž‰Šƒ„„…yt‡‹~§‘‡jw†…}Œwy†…„‚rŒŽ‹€Œƒƒ‰‘~‰~y‚~…rv~€‹w‹ŠŽŠŠ‰|ƒ‡x|‹xŒ}Š…‡„ŒŒƒƒŽ}‡v‘„‡|Šˆ‡y„u‰x–‹„†…‹‚ƒ{І‹‰‹‹„†‡€…|~…ƒ†“{†v†ˆ‹|Š}}…|‡Š‡…‚‘‰‡p|‡…|}‰„…}‚zm†Œw~~‹kŒ…‚…|‚–r€~›‡‹„‘††Œ‰Šyu~Ї‹|r„…ˆˆ{…{o‰Žy’Œ‹‹€‚x‰ˆ‘ŠŒ†oŒ€xz‘ˆt‚„€Š€l†x„ƒyˆ…†‹„‹‚™„ƒi|Ž~Šyƒ€„‰‚q…ŠˆyŒ„„žŒ‰•}„Št‡ƒut†‰‡s…•Œ”‹‹|||p‰}ƒ…„Œ{…Ž{Š€ƒuyƒ„„…Ž‚|€|‡¨yŠ‚ˆ›}†y‚‰Ž€y‹Šˆ}™y…ƒ{†zƒ}yŠ€‹~—~„uz‡ƒ‘{“’z‚ˆ€z…‹ƒ“ˆw~…}zŽnЇy~xˆmŽ…ŒŽ‡Œ‚ˆ’‹‰‡Ž‡€–€’’„‘‡v••yŠŠ‰n…•~‹‡‹…“‰|„‡x‰‚€…Š•”šŠ‡Œ‹ƒ‡’’‘‡Š‰†‘‰•{}z‰Š‚Œ•…–ˆŒ‘ŽŠŒ‰Œ––‘™ŠŒ…Ž‹‰€‰‡–‚sŽ‚„‰x‡˜††‚Žˆ‡œŠ“‘…ˆŒ–‹“‰†‰Š…‡•Š“Œ’Œ‰ƒ†–‡ŽŠ…ŠŒˆŒ†Š‘†‹‘Ž„ˆŽ•Š‚‡‡‰~’™Œ•‹‰‰‘•›Œ‚x”›˜‹}‰„ˆ„†Ž‰“Ћޖ“†ŽŠƒ|†Œ’Š’…‘Ї…’•ˆŽ‚‰ŒŽŽŒ‡Œ|Ž“„Ž‹–‚{„‰m‘”‡“†‚ƒ‘†’~‹“—‡uˆƒˆ’’œŽŠŒ’ŠŠƒ”‹•“ˆ…Œ…†„“‰y{ŽŽ’”‡’‹–‹Š“ˆ†‹ˆ’’–Š“…‹’‚Ž€ŠŽ’Šs–Š{Œ‘„ˆ‰€†‰ŽŽ–ŒŠ…ˆŽ’Œ‘ŠŽŒ‡„’‰ŽŠŽ‰…ƒŠ“Œ‘–„‰‚Œ…•ŠŠŒ‹ˆŽ’’~|†Š‡Š”™‘—‘Š…’ŽŒŒ‡œ„‡„y•˜„ƒŒ‡„‹ˆŽŽ–Љˆ”Š“’‹Œ€‰”‰˜†“‘‰ŒŠ‹‘–„v‚„‡ŠŠ’‘˜{•‹—ˆŸ—’‚š‘‹p‹ŽŒ†Œ„”‰‘…“†Œ‘БЖ›Œ–ˆƒ†Š“…‡‰‹‘ŽŽ–{€Š~’–ƒŽˆˆŒˆ…–†—’ŒŠ”ŒŽ’ŠŽ‹•ŽŽ}‡˜–•|–ŒŠ‹w‰ˆ…‚‚ŠŒ‚”ŒމŒˆ†˜ŒŠŒ„‡‰|”Œ™ƒˆ†‰ŠrƒŽ‹’•‹‚Œ‹†”“Œ••‰…’„Ž…ŒŽŒ‘‹’‹ŒŽˆ‡Š„‰ †ŽŽs–™“Єބ‘‰ˆ“„Ž„’‹Š‘„’މˆ‡–’“„Œ•…œ—‰Œ€ŠŽŽ”‘‹“ƒ’Œ|—‘‰‘Ž~˜˜„}~†ŠnŽ“‚ˆ‹Š…˜‰‰†w‹|yˆ““’—‘”Ž’‰‡‡‘ŸˆˆŠ€‚‘†‘{z{’ƒŽ’…~•Œ‰…˜”Š”yŒ†Ž’‘’˜|~’ˆ‘“ˆ‰‰‹“„p–„Š~†“‚‰~…€Œ„™ƒ“Œ†Š‘”‘“‰ˆ‹‰†…‹Ž”‰‡‚‹ŒŒ•‹Ž‹…ŒŠ‰ˆŽƒ‡˜Œ•„‘Œ…‰’“Ž–‹’“‡‘’ˆˆŒ‡”…‹xŠ—‰‚‰‡‰…ˆ‘’‘“…‰ƒ’†”Œ~‰™‡‡–‰’•†ˆŒŒ…Š„Œ‚Œ“Š…–‡{’ŽŠ“Œw”’~y‚‡ƒm„}ˆŠŽ‚Ž”Œ•‚”Œ‡Œˆ~‰Œ––‹‘–†‰‹ƒƒ•‹Œ‘“‡•”{|qƒŒ‘‡“މ‹™Œ—ˆžŠ•”›{ˆŽ~—‘“ƒ‰“•ƒm™‡‰†}|•Žˆ‚ƒ~‰’ˆ›€ŒŒ…ˆ“‰—’’Š„‰„މ‹•†‘†”އ…‹ˆ‹”Ž“‘‘‹‚‰ŒŠŽŒŽŽŠ”‰ŠŠ’ˆ‘‡‘„ƒ‡Ž‘†ŽŠŠˆ“Œ”‰ŠŽ|‘Œˆ‰Š‰ƒ†…‘ޓޑ†ŽŽŒ‡‡…|…—ˆ’Œ–ƒ•’…Œ“„‘“w’•ˆ”†‚ˆ‹ˆ‰…„€‹v…}˜…ww†‚ƒŠ•……u…ƒƒ„yŒƒŠ†}‹‰”…„ˆ„s“„w‹—ƒ“tŒ{€‹€‰Ž”€zwˆŒƒ‚“€‰ot|ˆ„‰‘s…‚ƒ’…zs‡Œ†‡xƒ}Šz’“†…{…~w„~s‡~‘~‰ˆ{†„ƒzw†u}xw€Œƒ„‹ƒ‚‰–‚€}…‡‡‚ŒzŠ‚w‚ˆ‚wŽ‘‚†ˆŠŽ“zƒ…‚Žƒ€…€ˆˆŠ‡ˆ“‚„~~’…~ˆ‚~„†‚€‡‰|‡‚†y{†††…†ˆ‚~‹„}}u„s„‚~~}‰mŽ’‹‚ˆ}ƒ€~Šw€w{y|ƒ~‚~}nt˜{w‚‹}~}Œƒy}r w}{z|ƒ‰moz•މ‹sŽ}{†w~„‘‚|h}Ž…Šƒ—‘„xŠŒtz……‚ˆi‡u„„x€„„u€‡‹„p{{’z„‚•‘€‹†Ž{ŠƒprŠ‚u{~…z‚{’…Šš~zˆwiŠ}€‚ywx‡rvu}}vmqxp…|}—tƒ‚s‡}}€}€l‹sƒ–y†x~~xxit}Šs}~tv…‹ˆx||w{qzu„rx‰vz€x‹‡||tztws€xvzr‰wu…ƒ~n{‹Œ‡~І€ƒ‹††‚‡‡Œ†‹v‹Œ…‰‡ˆˆ”Š‚ŒˆˆŽ„‰†’vp‚{‰ƒ–‹‰……‰yŽ‘‘”„’ƒ~‰ˆ‰ˆƒŒ†ŽŒ~‘Š’ŒŠ…•–’‹”Ž‚ƒŽ’‘Œ~“f‡Ž”„˜“‹ƒ„ŠŠr„“‚Ž‘•“’’„‡‡t}‰u‹’Š„–Š‹‰‹˜šŽ”‹•‹”‚…ˆ‹£€ƒˆ’”ŒŽ‡”ˆ•ŒŒ‹ˆˆ‘‰‡ƒ†‡„’œŽ„ƒ•|„ƒŽŠ„Šˆ€‘‹Ž‹€—˜”‰‡–Žˆ‹ŒŒ‘“†˜††„†‰Š€‰‡Š‹‰š“‡‰‰”‹ŽŒm„‹’’†“{‚އˆl˜tqƒ|…qoˆ€Œ„š~~“‚y–ˆ}ƒ“Š—u†“ª•‡y†~‹~ˆfl|”Š•{t‹‘ ‹‡‹ŽŽ‰ˆŒˆƒ“j{’†€”‹s|‰„Š‚Šs|Œˆ‹p”‰”¥‚~†vš|Œƒ~–zrƒrŒŽw‘–Œ„ˆ‡ƒnh„}™‰–ˆƒ€Žˆyj—…r{ƒˆŒ„{‰Ž„ž‰€…w˜„¡…ƒ…‰ŒyЉz‰†Ž„Š€’›„ƒ„‰m‹|‘€xq‡wƒŠŒŒ‰†vyŽq…”rˆƒp~xˆŽ‡…~Œ‹qІ—|‹ƒ…„ŠŠnŽ€•|}‚‰y{““~†ŠŠˆ†Šqz{nŒwqƒ‘ŽŽyƒ‹u•„†•‘„sŠe‹|{’uƒ€{„‰ˆf‘uƒ„ƒ‚}ЇŒŒz‡…Ššz‘•~lx‡œ‹{†€…‡ˆƒ|vƒ‰Œ“rŽŠtŠ„”’•ˆ…‡…Štƒ€†ƒ‚|‡Žq…ˆ~u„u|…˜ˆŽ‚‰Œ„Œ†‹jŒz†}ƒ„„‹Ž†˜”yyu‹Šˆˆ‡œ}‘Œ„„Ž„”Š‹‡ƒq–|‚Ї‡–}†€ˆ{‰}‘†‚†r‡€™‹~‹ˆ‰ƒ‹“y‹€…†…‡‰‰tz€Š‹oŒq‰‡‡zw„|€‚‘ˆœ}„‰€‘Ž‘‰‰Ž„‰‘“‰—ˆŽ{ut}…•‘މ |’‚€Š‘“{”}Ž{Œ‹‚€„‰‹Œ‡“†™Ž‡”…„”|Œ•‘x~‹Š—|ƒtЇ’“‹•–”‹ˆˆ‘x‘•|“‹”‹’‡ˆ•}”nŒŽ’w‘šk‹”™„†’…†ŠŠƒ™}”’Š‹‡£†„~‘ŒŽŒ›š„™•ƒ”’’“Œ…Š“‘‡ˆ‰‡”••‡€‹‘…„†•Š‰Š˜…†„ŽŒ‡ˆ‚’Ž•”’”…Ž‘”‚“|†ŽŽ•‹€}‰ˆ‚€† ~€„–Šw˜Š’‹†‡x’‹–~y‰–tˆ„™ˆ~ˆŠ›”Šuƒ†„ƒ‹–v|‘wˆ‰…—‰‹‡u‰‰†~™™‘‰‘•–Œ’Œ†–€Œ…‹Ž“•‹•‘††’˜w…ˆˆ“œzup‹’Ž™Œ‡–xŠzvu‘”…ˆ„”‹Š‘‰ƒŒ‘€Š„š|Ž‹…Ššˆ–‡–„‹•™š€‹x—’Œ‰„™ŠŒˆ“†•ˆŠ“•‘‡™˜—„…‚‡‹{…’Œ€ƒ–—”‡“‡…†”Œƒ‹‘ŽtŠ‹ƒz——‚„‘‡†“Œ™‡”„’Š}ŠŠ…І‘ˆ†‹‹’€…•Œ†x‡š€Œ€‰†Œˆƒˆ”t|ƒu‘wt‹ƒŠ˜ˆ‹ˆƒ˜‚„”ˆx€“„ˆ˜v›ƒ}ˆŠ‘jŽ~ƒ‚}‚‰‡ƒ‚ƒ„…“|’mx¤Œ{|~€ƒ‡x|x~ˆ„Žr‰Ž€ˆ…‹”Ž}‹}ˆ‹‡”yu€Œ‰€‰{„s‰‡…}ƒ“sx„ˆˆŽ~Š”ƒ‚Œ‰qŒ…{ˆ†Š†€ˆ{…ˆ‰•}vŠ|†Š“}†…y„ނމ’ˆŠs’{‰„‡Œ‹‚•{Š‚††ƒ…|ˆ‹yz‡†Šw…š†o‚†ŠŒ|‘Š‹’„}n}…‡mˆ‚‚Žš–‰‰ŸƒŒƒ…Ž{‚‘t‹„Œ…xzz|€‹’‚Š}‹ƒŠ—…Š€}ˆ}Š‹††…o‘zˆ•‰“t‡€…|„Š„{Ž”Œy‹{{†‡„…‚ˆvw‰€‰t‚~€˜„†tˆˆ†z‰{‡Ž…‰~‘ƒ…”†„€z{v‘‰†ƒˆ€‡‹‰ˆ‡Œ‚z}{tusˆ†…‚‚…‰†Ž‰™ˆx‚zƒŒzŽ•u€‹„†‚€xŒ‡„†Œ‹‡†€‰ˆˆ‰w}‡‰ˆ—’‘’‡„~ƒwƒˆŽ‰‡…w{~†€}ˆ}†”}‰€‚{‹„…Š{‘‰|†Œ„w{…t‚‚ƒnƒ„{…xœ‘‚nv„Š“‹ˆ‹xw“†…†–¤•z†tŒ†™r}‡inopvƒ†‹‘vHˆ~x„~ŒhŠ~to‡g‰qfzv›”“xy’Ž~ƒ…’y`—p’}•€‘–¢‹j™‹p’‚‘†”…Œym›{““nh‡‚q’ˆ†›…}‘–oƒ†„–‚x’}z‰Š‚ކ†“{ˆ—Œ“‘‚ŠyŽ–Š}‘—œ‚|vˆ‡‹r‡vŽc—ކ~€q„‡Œˆ—¤z…„—ŽŠ¡šw‡‡}”xnŒ}Ž’Œ|šŠt˜¢€‘„vˆšv—šŠ†‹wƒŒ‘y‚“œ†šŽ†yz˜ƒ{{ ŠŒ’†‚‰‡‚Ž’“ˆ’‰“”‹‘‹Žœ€„Œ‚qŒ‰Œ‰”„Žˆ‹€•’„‚‡ƒ“…”Šž‘ˆŽŽ‹†‰†|~Ž“……‹†ŠŠ–Ž”w„’І‰”‹’—ˆŽ“‘ƒ‰–‘Š•’•ƒ‹”„•‘…†}Ž’„v•…Œ}ˆ”Œ…€‹‡•…‹ˆˆˆ†…Ž‘’‰Œ…‰ˆˆŒ‹„“‰‹ˆ’Ž’‘‘ƒŽŠŒŠŠ‰‡Š‰“—…‡‚†“—ˆ‹‘ŠŠ“ŽŽŽˆ˜„…}““‘‘†‰Œ†…‹Ž‘Œ••ˆ†Š‘…”…Œ€Š‘Œ“’ƒ“ŒˆŽŒ…•…†…‘—„‡|Ž…„y”v{ŠŒs{†‰Œ|™ƒƒˆ‡‡†Š—Ž }¥†z‚„ „s’ƒ€‡ˆ††d‹vƒs‘x|„—|’‰Œš†•–ƒŠsw“ž‰ƒ‘y}’…ˆ{†m‡†Œs‘‘„–ˆr–†ƒvƒŒ„‰wƒ‘‡wŽzˆz|ˆ~Ÿ†’І—’Šk”‰wyŒ‡‚…—~|†”Ž–„„Žuu‘‘ˆƒ›‚v…‹…”ƒˆ‡‹~‰„‹ry„}ƒˆŠŽ‚ƒz}{†—–ƒ€’{˜“†Ž†‹Œ‚w‰Š…ƒŽŒs‘„‰v…|{Š~tr{t‚vp‘~‡“€|„~~‰ˆ|xzyu}e‡{{~†‚u—y‡q¡~}”…v€uzƒw€u…s~y€qw„ƒy|†{nˆy„vt€xr}}v~…€p…‡}‹r†{€{m”}ˆo{…|t‰–lr€‡y„p†ˆuwwŒ~‚—zˆwqzz{‚|y}nw„|o}Œ~wŠjw‚~q{y…zƒzqvo{p……o||~ƒvur€qƒ†~}z€zŠvmv€|w‚y~v~{z‚}ƒ|~”Œ{s†|}{‡‹ft„{vt€…~ousxƒ‡ƒu{‡z€…svuyh‚€Œ‘”‘‹‡ŠŠ‚‰”Љ–~zЇn‡‹„ŠŽ”}‹–“…‘‡‡–“‚’–’Š•‘ŒŽ–ˆ‰…€ˆ‹‰šu‰’’x|o“ƒŽ•‹„Ž~‡”‡˜—Ї˜’“‹˜ˆ~‚“–…Œ‰”’Šs“…Ž}ˆ“yŒƒ„x‹“Žzš‚„ŒƒŠ’€œ’‹’„–‘€‹…—Š–…‰ƒ‡•Š”—Œ•Š”’‰Ž“‘‘†‘ŠŒƒ†‡™”ˆ‚‰Ž‹‡Ž‡’…„˜Œ“‹•z”‘…‹‹„……’•‡’ŠŠŠ‰„…„€}ˆ–Œ“‚“…’އ”“€y{vˆxŠxtxu|~wƒˆv†‚{vzƒz~‚xƒp…„x€u„‘ƒx{vt}„{ƒ†{xu|~‚€Šy|~yˆ†{„ƒ‚‚y‡„q…x}‚€|p…n€„‚u{~{zx„†uŽzƒp›~„}‚ˆ‡w~‚n{€€xvƒmƒ~t„{‚˜„€†q…s|ot|vw†t~ƒ‰€|ƒx†€„ƒ~Š}yqxoy~uw‚r‚|ƒ…~qy…€‚xlwˆ…z€~€s~|z„~‡€wƒ}~z€„—}‚…z€…vm„|ƒp{†z{}ƒw~ƒ}|x‡‚†tƒ‚z…x{zƒƒ˜ž†t“›{€“—„•‰ˆ—‹…ŽŠs˜‘t’ƒˆŒ‡ˆœ‡ˆ‘†‚x¹†”•—…‘™|›Œ–z|ˆjnty{n–›t‘‚‰Ž—|“‚u„—‰yš‡u’—’„‰ƒ“ƒ„‚’””œ‚‰‚š†Œ‚x„“‰™……ˆˆ}†l‘’„m†¤‡x€g‘Š„~}†‚‘¨–Žw{ˆ–sšŒ‡`naˆ‘‚Œz‡o^–z‹ˆ«ŽŒ‡~„‰|…Ë’||[“”Šš‚{“€›xŽ} }’ƒ”™ƒŒ’„‚œl{‹€™™Ž‰ˆ z‹€†…ˆ¦›®Š•…‘‹œw•…Œ|ƒ†•}Œ‡‰”‰Šƒ“‘ˆ”Œ‰‰’ƒ‘v}„w|–Œ…“”Šƒy’Œ‹~Ž–”~‚“|‹ŠŒr‚„Œˆˆ‰ƒˆ’šŠ˜ŒŒ‡•x‰ˆ…Œ›xŠuŒŠˆ’{’•‡ˆ‰ˆ‰w‰”x’””ˆ|‰‘|xˆ”‰ˆšvŽ’‰™‡‰‰‡ˆ€‘•‹’‘‹Œ„•††‚”€ƒ…“‹˜Š–ž„’‰Ž–{ŽŽŒŒ‡†€Œ„’ŠŠ‡Š‰~ŽŽ’…‘‘}‚‰œˆ‡‡~Š••„Œ“‰Œ‰”‚ŒŽ‘…‚Ž‚€‡‹–ˆ„ƒ”Š}–Œ”ª„x–ˆ‘ŒŠ””™o‡”†”’…’™…sŒˆ…t’Šz|šƒ•†…‘…v‹€–“˜‡›ŒŽ™“…{|Š{‡Œ‡‹‰†Ž’Š“…™|†ˆ‡ŠŽ“Š”†Š‚~”‡—”•˜‘ƒw“…‘Ž|€ƒŸ’q”‡“Œ‚‰‡„““‚Œ—Œ„ Œ…‚ˆ‹‚‹™–Œ…‘Ї‰Ž~–†ž‚‘‚‹‡‚‹‹—’•’‰ŒŒŽ‘“Œœ‰’ˆ’‹›†ˆ’‡“Ž™–‹”‹“‰†•†Š¡|‘‰s“‰„Ї‰ƒ„„ŠšŠ’‰Š‹Ž„ †‰‚‚žš‹’„›€˜„’…’o‡–ŠŠ€Œ††‹€†‰w‹~‹Šwwˆ†{Ї}l…‰~„‚‡€{„}€…}…†nŠ|u…“z‹ˆ†{ƒl|ˆŠ‚~€††‰’{‚ou}ŒˆŒtƒƒƒˆŠ}s„‹|~Š„†z‘Ž„ƒ€„x}ƒ…w…~€‰}…ЇЅw…v†x€x~‡†‡ˆ€x‡€€†‚‰|ƒ¢‚ˆŠy‚|†x‘€†–}Ž˜ŠŠ}‚|•‚{z…w‰Šƒ‡|~†ƒ€~w„Š}–†‚‰o…‡ŸˆŽ{‡‚v|ƒˆ}‰„‚|y…{o„t…‹~„~…n‚ˆ„‰‘„•€{Š™‰Œ€‰‡t†Œw…‡„ƒƒxwˆ}‡Œ‹{…v‰‡{–Ї„ˆˆ€v‡pІ„‰‡t‚{ƒ–‹‰sŽƒˆŽ‹€~Š–Œj‚ƒŠ‹‹{‹ƒ…q}€}‹u„…‡}uƒ„€…s••…{‡‘…‰…„|€wЉ†‰‡xƒŠ~„‘…|Œ‹m{ˆ‡ŠŠ„„‰€Ž‚‚~€€•~„ˆˆ‹}ˆƒ‹~v|…‰ˆ’†‚|‚ƒ}‘Ї‡~Š‘†ˆ„‡~Žz•€{ˆ~ƒ…~‹‚€{‡‡y€„ˆtyƒ†…Šƒ„”‚‚Šˆ‚ƒ„wŒˆv€‰mŒƒ…{„ƒ‘ˆ‡|qŽŠu~Œ•‰’“‰‹ƒ•—|‹Œ‘›’›~…€|ˆ}Š–Ž…‹lŒ…‚z{“š…•‰Ž‚‰ŽŽoއ…‡‚‡’k‚”‰Ž’‰r‹‰ŒŠˆŒŒƒxšz‚‡Ž… ‰v‘Œ”Œvš“ŠŠ‰„Œ˜ŠŠz}“‰ƒ›}ŽŒ€’‰–“Ž‹ž‰“‡‡†’~„‰Žˆ›…†„Єޒˆ“~•„•Ž’~’‚‡ƒ—Œ•˜ƒ“”•‰ˆŒ†„‚y”‰Š¡‚vˆ™€Ž{„‘”š‚„—‰‚”›‡“……Ž—€‘Šˆ‘‡}Š„s‚Œ…‡…‘ƒŽ‰z„‚yl~„Ÿ„p}–Œ‰™Š‚—~yyІ†‚{†€†–Œ~˜„}„ƒ‰Žq‘‹Š|Œ‹Ž}ˆu…€€Šˆ„‚ŠŽŽn|ƒ~|‹„Œ†€y„„wˆxƒ„”‡Ž~‡’pŠ€ˆ…u€‹‡x…}{}…ˆ~€”‚Žjy}‰x†›}‚~‡n~„x~†y„Œ††rwz¢{ƒ‚‘…–‚ƒ{Œ‚|„‹„„y“†‰€‹‡u‡‡‰†~Œ€|}ƒ~ˆŒƒˆ€|~y~{‡{Šƒ…|yyxr€„ƒ}~Œ„‡Œƒv…}„s”‡‚†}z“‘‰Š‡‰‰‚ŒŽŒ‰ƒŒ‹{’•‹˜Œ‚•}xƒŒ†n„‰‡‹‹“„ˆŒˆ„‘ŽˆŒˆƒŒŠ–Ž™ŠˆŒ‡‰‹Š‚ˆƒŠ‰‹‰Š‹Œ“xy€“‘‹†ˆŽ˜ˆ—Ž‰šŠ’’’–†ˆ„‘”‰‹ˆ‹’“„t˜†‹~‹”„ŽŠ}Œ˜‡„›…†‡ˆˆŠ“†–•ŽŠ‰‰ŒŒ‰ˆ’Š•†–‡Š‚‹‡‘‘‰’Ž„Ž’ŽŽŽ‰‹‡‡‡’‚‡‚‹Ž’‹‹ŒˆŽ•–ŠŠ’{”’ˆˆ‹„†‹†‘ŽŽ’ˆ‰Œ‰‹ƒ†~Œ”‹Ž‚‰‡Ž‰‰Žxƒ‚ˆ›‘ƒ†‘†‰‚Šu}€“ІvqŒŠŠ‘€‹…|Š‚z—ˆ‡‡†Š€x‰p…‘‹u“‡~…ŽŽlŒ€‰z†‰Œ’zˆ€ˆ‘‰†˜‰›sv„„~‡€œ€w~‚‡sƒ™‹‘†|“„‡„yŒ„ˆƒvŠŒŒ†ŽtyŒ€„ˆŠx…Œo}w†ˆ‘}ŽŒ‡Œ†Œq”ˆx€ŒŒ…Œw~†‘€xŒ~„‘…†Ž•…‚‚ƒ†‰‰‚†‚‹…‹„‘†‰}šƒ}~Ž|Œ}~†€ƒŒ}{†‰”z‰‰Š‚{‡„Œ‹‰‚‹…~x…uŠ„{Œ{Šm…€Š…‹‹oƒœ‘„ˆƒ‡€{†pv…‡…ol…ˆˆŽ–ƒ~‚€•zt—~t‚€{‘~•–uˆ~w”ƒmŠx‚†„Ž}vЇ™†ƒ{€’Š‘„v€šxv€„‹tˆ‚“‰”t|“‡‹q‹’…‰”Š€‡ƒ€‰ƒqŠŠ‡Ž‡—‰„…†z†rm†|‡‡‹‡††‰†‰ƒmƒ€u{|€yŒŒŠ™m„‘~•†ƒxˆ…‰}Š‘ˆ‡‹Š†—n}~‚…‹z€‡‹{“‹‚p}‡ƒ…z€Žuˆyyˆ‰Š“}‡Œ„‚‹ƒ‹…„‡‰ƒ…‡y€‚s†‰|…ƒm‰r‹‡……r…‰‰u|xoˆzwz˜„€‘{|{ƒ‡€zƒ{|nƒwlƒ}~‹{tw€k”‚„€}vx}‡{ts€sw|Ž{ƒvƒ|zy€wq†„ƒˆqp}€lˆˆ{rvyu~‚}’kƒw‚€oŒ‹y{†ip”žfpy†‚}{vŽ{x|„ˆ‡uyotxwzt……wˆ†nu|ƒ~Švsˆz}y}yqŽ…„tpwr}r£†ps~z€mwr€{„}w}‚……ˆƒtmrtzzw†xu‚}ƒ‰~‚Š|€…y{‚ˆ‚‡p|~ss}}‚o‰x‚~ƒ…iu„|~„{{m]{‹v„}ƒ…‹r~†—š‰Ÿ“˜€vŠ”ˆrŠƒ”’”•~’‚„šŒ‘Œ†’–‰™‹Ž‹—‹Š–”„‡“‡Šƒ‘‡‰„†‡“xw–’}”–ƒŽ’Љ‹„„š“ˆ…ŽŽŒ“‘–’•y™’œŽ‡–zšˆ•ƒ–Žˆˆ‡‚x‰—ˆƒš‡Šƒ‹„ˆŠ‘‹ˆ”Žƒ~‰ˆy€’„‘—ˆ’“ŒŒ€…ŠŽ—–’”‡“‰‹Š‘…Œ‰ˆ—ˆ“Œ†”Œ†”†’Œˆ“x—œŽˆŽ‚Š…‘‡ˆŒŽ‡‰’{Œ€’’’‘‰‰…ŒŒ‰•Žˆ€„Ž“‹‡š‡xš…˜Šƒ—€xŒ†n‰‹‰‹…’Šƒ•’…„Œ“……ނІŒ“Œ›Œ‰‡†‘ƒƒ}•‘‰„ˆŠw‡‹‘‘“w{€’’…‹Ž‹™ˆ‚•ˆ’š”Ž‰“‘ƒ‘ŒŽ€ˆ€‡Š–’‡tŽ„…“y™ŽŠ‹…z˜‹~œ‹‰ŒƒŠˆ˜Œ‹†’€‰‹‰™Œ‘Šˆ‹‡‘–†Ž‘‡„“Ž‹ŠˆŒ†‹Œ‡“„”‰ƒ…”ŽŽŽ’‡†•’š‰‰‘w—”Š„‹ˆ‰„‡‡‹‘–‹Œƒ“…‰Š“ˆ’ˆŽ„‹ŠŒ€ƒŒ|…‰‚‹…ƒˆ€‡‹}…ˆwrƒ|~fn•y‡ƒ—y}‡œ|{’|ˆ‡€…y‰š‹†|ŠŠ}•…zzˆŠp–ŽŠ’~‚}u†€‚†‘‡ŒŒ‰‹’k}„’…„xˆ…„l‰‚w–‚”t„‡„ƒ€‘ŒŽ•…€|ˆv€’uˆ}„ŠŒ|xˆ‘ƒgŠ~ŒŠƒy’~x€Œli„€py€|€„‡Š’y€˜…‰{…|ˆˆŒy–‚ˆ‡y†ƒ„‰|‚…„…ˆry•‰ˆšy‚zz…ƒ‡ˆ€h}sˆv‹|‹~†z~x‡‰ˆ•“ƒ…‡”v{ƒ‡‹Š‹ˆu†‹‚Ž‘‡~Š‚‹r‰‚‡ˆz„s~|…‡~w~ox†ˆ…ƒŽ~‚ƒ~†ƒzŠŠmއƒ‡q…X…ˆˆŒ„{t}„†x—‡‘•‹~‰‰‰Ž{Š‹Œ†~„˜„|{o‚}‘‡ˆ†~‚uŒ}}†…‰ƒ„„–ƒxƒ‹}}}Š…fs††s‚}‰z†wz}y†|‡“o’{ˆzy€‡ƒy~{‚„{Š…r’x|‚…wŽ“~yy‚yq„~Œ„Ž|ˆ„ƒ~……Ž„€—‘‘‚„{z’w…‚z‹pƒ‘‹„…rw‹„y‚~wz…v“r~}z‰†z‰‚|‰ŠŒƒz€„‚u…†w…œŠl¬uMއ››qކ«€—„އ|”s„Š‚Šr†ˆx{‹d}ƒœŒ˜s”¢ºwžƒ¡z‹’’x‹†”Ÿ’“zvŽgŒr’¢…‰ƒ‰¥˜´f‰| Švz‘ˆ†}†ytŒzŽ—‹”‰x}˜¡~|¨’¦–Œƒy…™–q†ps‹¤w›Œ–Œƒ–…|†ŠsŽm“›‡Ÿzy„€ ‹u”Œ‘‰Œˆ…‹“z‹‘–€~˜”•ªŠ—…•…ˆ||§€u’…Ž•yŒ“Žšƒš˜|€~…t‘—Ž{’‰•š‡Š‰ŽŽŠ‰‰Ž“tx›“}Š…}…ˆ’¡’€›‹Žyˆ’yˆŽ•‹›‡y‹˜ˆ’ƒ›–™…z‘‘|m€Œz‰‡†‚މ‘Šw™›y”‘‘‹“Œ˜—”‰Š‘}{ˆ…„x™•{†Š†‰Œ•’“}ƒyx“„‹Œ’“„š’ˆ”Žˆ•™‘Š““••˜Ž„†’ƒ†„†„•‹„–’…ЇЋ†x–‚‰€†ŸŽŽ‚ƒ‰”’’Œy˜‡”ˆzˆ›‹Ž|‰€”–‘›ˆv‡|‘‚“•ŠŽƒˆŽˆ‘‹¤Ž}ƒ‡w—‹‰›ˆ„—†’y–‡£Š“‰yœ ‚‡‹“‡“~„‰’‡—…Š‘Ž|Œƒ€ˆ“ Š‘˜ŠŠŒm“}Œx„™‚…ˆ}z‰„††”†’‡‚‹’‚‚šŽ‹yŠ…“{€s‹…„Š‘—‹w‘‡”‘qš“ƒ’Š„†ƒ…›Ÿœ‡‘Ž„„y˜“}‰’Š‚’–uƒŠŒ~‡ž¢’Šr{|‰‰Šx“‹’¥‰ˆ‚‚𠀋ޡ…†”Ž‹“„†‹‡†u˜™‡‡‡›‘•ˆ—Š‘“{†}‘o„‹‘•‹‹š„”Œ•‡——‹Œ›…‘’”‹‰‡Š~€Œ—ƒ‰‘‘‘{†ˆ‘‚ˆ‹’€xŒœ‰‰r•“›Œ‰‡“‘…’…z’ˆ‘‚„“vŽŽŒŽ†…ˆ|މ€„Š”€ŒzvˆŠˆ‡‹|ŠŠœˆˆ‡•‘…„ˆŠ‡Ž‹‹“~}‹|ƒŒ}ˆˆ€zq„‡Š‘~‰™†‰‰Œ‰‘†…|ކy}’Œ•‹Œ’uˆ’‘‡‚Š—’‰}…‹ˆ~–Ž‚Š~Œƒ}‹“‰‡‚ƒˆ“›Ž‡ˆ‰Ž„’“}‹ˆ‰˜‡‹‰‡ˆ ‰‘†„…‹‡˜†ŠŠ„€Šˆ’„“šŒ…Š‡ŠŽ”Š‹†™‘‹‹–‘‹•‰‘†’”˜ˆ‰‹™‘Š”‰††•Œw•˜’‡Ž~…‰—ŒŠ†–€‹Ž†Š”~ˆ‰ˆ…’‘Œ‹„‘‹‚Š’‰~‘‰t€Ž‘‰’€Š’ƒ…•…‰ƒ†ˆ‰“Œ’‰‡Š’x{ˆwˆŒ—‘‡Šv‚„Ž“‰y—w•’{Ž‹…Œ…Š‡ŠˆŠ”‘‹‚’†–wƒŒ‡‰…Œ’–{†|†…~˜ˆ‚†‰‚z”‡Œ“‹‹‰‹‘ŒŽ‚‡Ž†}Š™w‰‹Š˜†ˆ‹‡‹Ž‹‹ž€••‡“Œ‰~‰‹†Žˆ‘ˆˆ”‰Ž‰”“ŒˆŠ—“–“‰‰—ˆ‡–•‡”ˆŠ“‘‘†“’†‰…”‹‡‘Ž}˜”€Žƒ”Š‹’‘ŠŽ“‹‰‡‹€‰’…†‡•‰†„“Šƒ‹—ƒ‡›—yp‰y“ŽŒ™…‚”’€‡“Ž…ŽŽ—¦zŠ—v€±›™ˆ¨ƒ‡zŒƒ•”„¬ˆŒ‰–‘’›”vž–‚Œ‰q„…y†–’’‰p|Žxr‚œ™šz‡Žw§ž‹•‹”y…‹‡‹xˆ“”‘‚‡Ÿx’ˆ£š“€‰žu’Œ¦‚‘€“„’‘‹e‘‘z™ˆt†…ƒ•“…Œl”•˜‰˜‘z„ƒ“{“Œ„“„”m„Š–†„¨ˆ—ˆ›¡˜šŸš‡Šsˆ•ˆ• ˆ˜„І’|“ƒ€•…„}‡Œ|Œ†Šx†•š„Ÿ„‚œ‚……£‰’Ž…~‰’“yv‡‘•ŠŒ™“އ†…Іƒ‡‘‘‹”ˆ‹Š‹”Ÿƒw‘‡‹l’†„Š…’‚‹†•’v…ˆ‹•’ŽŒ‰…†–‡‘Ž…ˆ‹•‡‘ŠŽwz}Ž|•”‡‘Žˆ–•‹Œˆ—‘Œ‘˜Œ‡Ž~‰˜’}ŠŒ‘Šu™‚‹Œz„•Œ†~‡€‡Ž‚‹œ‹ŒŠ…‡•‘‰މ‚–‰Š‰ˆ‘†‰|‹—Ž•ˆŽ…‰Œ…“’ŒŒŽŒ‰ˆˆŽŽ}‚ƒˆ‘’‘‰„•’‡Œš‚‰{”™‘ˆŠŒŠƒŽŒ’Œˆ”‰†Š“Œ‹Š‡’““Œ…“‹’ˆ’ˆœ‰€{Љ„€‹‘…›‰”‹…‰—‡”‹ŽšŽ’•}“|†}Ž{Œ“Ž€‰t„…’z}’…†‰„†ŒŒ†}•‚Š„„q„•‡Š‡‰‘›pƒ˜Š†ˆ‘…‹Šx|…†ŽŠ›x…‘{”†ƒ‹‹“†r‘Œ’‚|ˆ‰{ƒŒŠƒ‘•‰‚”ŠŽ ˆ”‡Šˆ–Œ‚…“Ž‘ˆ‡……‡Š‡‹„Œ‰„™„Žƒ“†™Œ‰„‹‘‘€€Š–‹’’ˆ‡‘‹‰Œ‡ƒ‹•‚‰yŸ–|‡†Œ”†Š••މ‹˜ƒ’…Œ†‡ˆŒ’Ž•‰ŽŠ‹˜‚Œ}‘’Œz„“s“„–Šƒ””‹„„‡Š‹‘‘}‹y‡•‡„”‘Œ‰xr„‡ŽŽƒ†–™€™’ƒ§‹“’Š’™‰Ž…‹œ‰šŠšƒ†’“w…Œ‹‡{’™›zy{‰…ˆ}—Ž‹†‡ƒ}z”„Š™‡††‘~ˆ|€š€y}¡ˆ’„„œ†ˆ‡„••š‘˜ŽŒ‡ˆ„…ŽŠ~š…Ž–‰‘Žˆ‘’‰‘‹‡“‹‰|Š‘‚†”“‰‡…”‹‘Ž’”Ž‹…†…‚Š’‰’Œ|Š’”…“ЇГ‰’‹m•…•…††}“‰‹Š‘xŒŒ‰‡™{‡Œ‘zŠ•€žŠŠ‚‰”rƒ†v‚ˆ‹‰zv„ƒ‡‘’‹~ˆ€}—‡|ƒ…Š‚z’…’‰‘“‹t”ƒˆ‚ˆov‡y’}z„“”‚€€}ˆˆƒz~‘w{‰Št„|…€‰r~Ž„‡tˆ‚‰‚ˆ•…‹……‚˜s‚’“‡’{ŠŒƒŒ„|‚wn}}‚ŠŒ…‹Ž„…ƒ‹{£‡y‚’ƒ‰}€œˆ‰†€y‘€€‹Š…Š•|…Љ‚•}Љދ‘Žƒ‰€•ˆ~…€‹†{€‚}~~~xŠˆ{…ˆŒp†‹†‰ˆ„ŠŒuƒŒu‡‡{Š€ˆn‡{Ž…‚{|…z{w‡†ˆ‹|‘–„”‘Œ‹‡‘•“€ˆ•ˆ‹‰z{‹}~Œ“š‚•’ŠpnГޒ„x‘˜’ŠŽ„Œ|wŠŽ}|~‰‰Œ”š‰—’Œƒ‹‘”{‰Œ””x„ˆ”•}’ŒŒ‘Š…‚”Š|†Ž€Œ‹‘އ†ƒ™‡{Œˆ…•†¡v•–Œ~š†„ˆ…‰‰‘‡—””‹†•€…Ž‹˜†’x“•}—‡™•Ž—{މБŒƒ–†“”‰‡‰Œ’Š|ŠŒ’ŽŽ‹‹‡ƒ„’ƒzŠ„‰‹‘•ŒŒˆ‹‹ŽŽ~„€“Ž…‚‘Ÿˆˆ‚އމ’ˆ–ˆ‡ˆŠ{ˆ€~|x‡Š{†z€‰…‚Œ|v…‚Ž{Œ„€…wŠ€‡ˆ‰tŽƒ…n‡Œƒ„€z~„€Šy—˜Œˆ“ˆ€„‚Š€‡‡‡{ˆ‹ƒ}u„u‘ˆ‡„~‡…„xŠ€†Žƒƒ…v‹–{}zŒ}x‰‚rq„€‚ƒ}Šzx}}€xЇ•p‹|p‡{xyƒxxz’~‚|•ƒy‡Ž‚~t}„~€v{|w~€|†„‹x„~€z‚‹‰~ƒ˜‰‘†Žr€•{‚}}„x†‘‡“ƒ„qv‡„s”v~tˆy‚q–o{u‹x…|“…x‰Šƒ…ˆ{„o{œ‹‹“nˆ“™Œˆ‰ƒ‹}t‹uz~„Ž„vk†“Œ•…‡|ƒ•ˆ}ŠŒ…x‘†Šˆ•’†u‘†ƒ‘‹k…}‚„€~‰Œ—|ƒ‚‡‹ˆ‰†‡•…m{‚{ˆwƒ~‚‘‡„t}ˆ†s‹ˆ–’‘|“І‡‚Ž€‡†uŽ‚ŒŠŒyБЅ‹…y…wj†{„‹€Œ„Œ‡nˆ€‚x‚€‹€‡‚’”}„„’€€x‘‰ŒŒŽŠŽ•‰„†‡„ˆz‡„ˆŠ‹~ˆ‹z‹xŽ‚~{‹~‡…Š}~‚y……Œ’x‡Œzˆ†ˆŽ‰‰‰~Іxƒz‰v‡‡†x‹l‚ŽŠƒ‚„—‚‹„’ƒ†––„……‚|‹ ŠŒˆ˜Žu‡‡…l‰”}‹Š‰“‚‹Œ‰…€“•‘ŒŒ‚“’Š‹œ‘‰†Œ‰‡†…rx…€‰ˆŠŒŠ‡–Žz…¨Œw•Ž‘Œ“˜Žœ‚’”‰”‹””ŠŽŒ™“’|”‡€‰ŒŠŒ}ƒ€Ž‰ƒ~‚„‰“ˆŽœŽŒˆ€Ž‰“—ƒŽƒ™‡“ˆ‹•Œz„Œ—Œ…‘‹‹Œy}‹ŠˆŠ‡ˆ‰…’‘…ˆŽŠ€††—†……‰”‡™Š…ž“—”ˆ‰Šˆ“…†‹“Žˆ’ƒ…Œ„‘†‰…Œ”›œŽŽ†‘“”ˆ™~‹‹‡Š…’‹‡…†ƒv‡ƒ‹ˆzyy„‹’~‚~xŒ‡ˆ–……„‰|ƒ€ƒ†‹tŒ~w’‹uƒ†‰‰{~ƒŠ‰~|€…‡ˆŠ‰„n~Ž—„’‰v~|„Šz‚s„ƒzˆtˆyŸˆƒƒuƒŠ‘‰zx’~vŒ‚ˆ}Šw…„‚‡ƒ}ŒuƒxƒˆŒŠˆ€‚‹‚‡‰‡y…†‚†Ž‡‰vˆŠ†Š}}tŠ„Œƒ‰ŠŠ†ƒx~†…‡„‡yŽ™‚‹‡……{†ƒ|…†€Š‡€€ˆu‡~€‹„v‡ŽŒy‚€ˆ‹‹‚‹–yš‰{q‹Ž~ˆ‡n…„‹‰…ƒ…ƒk§}‘š˜‚…‘‰¨†¤ˆ–’Ç§š‰ŒŸ‰kvŽ”…wŽƒ–Š•Šœ‘¨›•™‡”š•™™‰‰– ›‹’’ƒ€qžŒƒ„t‡™‹‘q††ƒ¥’y–›rš‡ŒŒ••‹šœ‘Žˆ•“l{y…•œ‰’„ŽŒ‘™‰|Žm¦‹Ž}Œ}ƒŒ}–™Œ’‚›‹t™z”œ’š‚Ž‰˜yq†Œu–ŽŒ|ƒ–w†s–‡‹Š†”“™€‹ƒ†‡ŠoŠ„sw•‡ˆƒš~‘–Ÿu‚Šs‚pœŸŒ€Š‰“—‰ŒŒ‰Š‹{Љ‚Ž‹ˆ…•‹š˜ŠŠq›£˜y‡z‰}y{u…~|sˆƒ}|€€ƒ~‚Š€|‰‚||t|ˆ„‚xwz‚yz’ˆˆ‡w~ˆyu|„…€€}}wx|{{‚€}Œtu‡~|€‡pn€„‡†Œv‡{y~‚‚v‚€Šz{“ƒ„s‡„w‰xx€xˆxv‚„†‚~…zƒŠvp”~yƒv|x…}~ˆŠz~tv„sz†x‹}Œ‚vƒx{…‰‡sŠ‚x}|zv€„‡vƒ}€‡€ˆ‚s‚vv‚t{‚wƒzƒ{•…||Š}l„}|s{u„ƒ{|{yp~‚}ƒ€~v†€ƒ‡†ˆƒ†‹v›~‘…‰ŒŠˆˆ†‡u~‘…‰uw’‰‰”‡Š‚†Œ‚zš€ƒˆ‘ˆy“‰}ŒŽwƒxƒ‡—j‡…†€‡|y€†‰“~‚‹ƒ†—‚…—„–r{€”‰‡‹~„‰˜„Œv}ŽqŒŠ|Œ‡ƒ’•ˆ‚‡‹‚‰†u†‡‚~†Ž‡|~„wzr~ƒ‘…’‚…ƒˆ”mƒ€t}x††…ˆ‹‘r”‰•z‡qЉƒ’ƒŒ”Љ‹ˆŠŒ~ƒ…}Š‚~Š‹…ˆ„Žƒ~‡ŠŠŠ„‚‡w‘|y’†…’y…‡ƒ‚Љ‹{Œ…‰‹‡~…r€‹‰…}‘m†xˆ€„ƒ™z“|‡‰’ˆ…ˆ†‡ˆw}‹Œrˆ~ˆŒ•…„vy†z˜‚~‹ˆŒ‹…—Š|ˆu•‡t‹rƒ…ˆŽˆs‚ˆ…~‚†‡‚އ“„iˆ–„‘„|ƒŠz†s„‰xt†qŸz|‚–ƒ‡r‰Šysˆ…t„€…}yŒ‡|‚…ƒ€|xv„yŒ€Œ‡‰“y‰yxz{€‰‡xŠŠ‹Žv„Ž’{u†“~‡…‚‹„…ˆ†‚††‚™‰vƒ…u‰ƒ|‡‚„~‡Š‡{‰ŒŽzx„…wŽ‹€u“qŒ€‚…–‚ƒ„›{pŽ‹~…’p‹ˆ¡‡„€€€Š‹Œ„‘ŠŠz–™Œ–”—š€z†ŠmŠƒ‘’Œ•†ƒŠ‡€ŒŒ’“Šƒˆ‹˜Š’šŒ‚‘|Ž‚‰Š‰‘І††‹Ž‰‰‡’{yp™€‘—†‡”Ž–ƒ‡™Œ–ž‹‡ŒŽ–†‰…Š˜~‘‘„ˆ‘{„—މ‹}Ž˜…Š™‡ˆ‹‡Šˆ‹“Œ“‰‹ŠŠ„‰ˆ‡~†‹„””Ž‹Šƒ‘†Œ–’ˆŠ‘Œ†‹Œ“€…ˆ‹‡“—‰‹‹Ž’ކ“‡’ˆˆŒzŽŒŠˆŽ…‘Š“ŽŠ‹ˆ“…“‘‹Œ€Œ˜“†‡ˆ“ŒŠ›€‘Ž{vŠuƒoƒm‘{ny…‹Š~†r‚€|ƒ‚lc~„Š}‘‚ovr‹zmwŽvzwsjt—¢‚„­Žz‡Z}††ˆz…z†“u›•‹€‹€zˆŽƒzŒnozl€‚j“o’w—‚„ƒh¢€r’Œ`lw™jŽlƒŸƒš|qvss{n„‚¡vu‰r}‘†mw{…}“‡‡`‡p¤}hŒuŒX“™“{†zš†‘‰m†{’œ‚ˆvioiŠs†qp^¢q‘r¥¯ |‡i€zŽ”¯†‚|žž{{Žu©mx‡nš”„qoŒ{q‚~v}œjzz‹ƒ‰’~uk~~ƒ}_sw†ƒ}zˆŒ„x~|u‰vt}‘}~†€†}z‚ˆx{}‚‰{wiˆ„„g|‡~‚‚ri„{‘|‰Žyzx{zw„„}{s‹ƒ„ƒ†Š~‚vwŠy‰}Švo€p‡„xz{u}~„‹s…v†|rˆ„y†ˆ„~}|‡{sz…t}w}‚zu}•†uy€yƒputy‚|y„tu‰Œ‚„†ˆ|„{‡|u{|ƒŽv|}v~‰†„s{|wiswtw|x~~z}‚…‚€~wu}‡}Œ‚}vv~„w†{‹u}w†Œ„qz}~o|}v‚w†}€|ƒx|{‹‚†}z‚vŠ|Œ{…ˆ‡z¡ƒ„“}~Ž}|‡uhk‡|‘s|‡‡†’ls‚u‘…p‚xo}€x™‚z…Š…–‰ xynn€nst’–x}ƒ‡‹”‰ki~dwrzq~†w•§|„kr–•yy›zx‡’wxx|{€‹ˆtÏŽmiblƒ‹…‡ˆk…U‘ŽŠw†•¢”˜“n{uƒ_‚‘~‹{‘‚•¤ªšy†i†ohysci„‚‰z‘nÉ\|xrtq¨mŠ‚¥t|€‚—šd–l|އ…y’…€ˆ—j‡uSqY’¢d}¢{|„e¢eyq…„…l†…iŸ€‰›t|_fp‰|£j†„•‹Š‰v~‚‚ytu~vƒ†v{~‡‚~yo†‰vo~•z…t‚wuxy‚…r|‡}x€mv}†hn}zs„‡—u€u}~ˆu}”yˆ€Šnt‰z‚„Š‹€€~~|Š“~zz–x‡}–†‡z|}zq’ˆƒwuyz|„{}†ƒv‹z‹Œu„Ž€‚yq{Œs‹x†uo€sq†u€ugz†Œ„ˆŠ|w{Š‚xqkwƒzu…y{Š€vp‚z…„Šyƒt†€}q„Œ}‰rˆ~„‚xzwŠ}‚€z‡‡ˆ|d…y{‚†xyŠ‚zp†{~w~{šz…€„šˆ{œŠ…o‡…†‰’‹†…›…„’‹œ~’”ޙޔނ”Œ‹Œ‰ˆ‰w‚…„ŽŽœŽž‹‚“”{™–“ˆ‘‡ƒˆˆ‚Ššƒ Ž…‰ŽŒ„‡‡—ˆ†–v‚‰–„ƒ’…ŠŠ‚‡ŽyŒˆŒŠŒ‹’ˆŽ‰’†‡’‘Œ‘†‘—‘„ˆŽ“–u‹‹ƒ™ˆŽƒ|‡˜‰‘ŒˆŒŽ‹„„†ŽˆŒ€Ž~“Š…Ž”ƒˆ’‘ŒŠŠ•‹“„‰”„Œ’••„‡ˆŒŒ‰‹‡‹‹‡ˆŠ„„’‡‰†„“”€‡ŠŠ‡ŒˆŠŒˆ‹Œ‹‹Š†††‹—…Š”‰ŠŒŠˆ”—vކ‰o‹‡’Œ‘ƒ†—ƒww†‰U‹l|vˆ’–†Šr…’…”€‘Œz”jŽ‚s””™‡sz‹k‚s„“‹z~†|„Ž–o”¡™•†ŽizŽ¢m†‹‡“ˆeŠ‚{~…q…Œt–‡‰”Œ™p‡‹‡{s„xxzxu€…{y†~’€|’r‰‡‚Œˆ†œƒ’‡’ctƒ†„ƒŠ„Œ‰Žtw}’•w•sz„‡zŽ‰ŠˆŒˆ‘†‹‡†‚‹q{’ˆ…‰ˆ„|{yŒ‰Š–z„w€™†~‡„}{Ž’qšŒ’ˆ¤„…Šlz{Š|nzŽq’›‰Œ‹u†ƒƒ“™–‡p‹ˆ“‡ ™œ}—‡r‡‹Š‰ˆ‰„“”І—œ~ŽˆŽŒŽ“˜Œ•‘ƒ…‰–‘‹—„†‘~„’Œ“v{q“‚‹—–•‚˜ˆ––‡“Ž{‹Ÿ’’˜Œ–𖂇•~‰‹„‘‰—Œƒ †‹†„‰”‰„ŽˆyŽŒ…†œˆŒ“‹‰…‘‰“ƒ~ˆ‡ŽŒ–І‡Ž’†Š•‰Š“Ž•˜’‰Š…™“‰ˆŽŒŠ‹‡ˆ‰—‰”…‚†‡Ž…›—“ƒ‘•}Š’Žˆ’Ÿ‹Žˆx‰’‰Œ‰‚ŽŠ‘ƒ‹•™†Š‘‚އƒŠ’ˆˆ—‹ˆ•†‘‡†q•‰‹•‡…‚‰„ˆ„py‰†}Šmm„ˆ†™ƒ~~„œzv–yƒ‹‡…y’~”‡z‰{…‚lŒzˆ‡”‚{ƒ‰~€…~އ„„“~šnw‡‹€Œz………„‹šz’p‹ŽˆŠ‰t”ŒŽ‡“‚…}‚s‹Ž~‹‘‰Œ|‚y|€j…‚‡ƒƒ‡„†hm{~t‚ƒ‹‹ƒ‘t€Šƒ•‚…x‡‚{ˆ‡‰Œ‰ŠˆŽ‚šw~„†„fs’~t{†yŒ€ƒŒ…{•…}yz|…|ŠvzyƒŠˆ’xˆ‘‡…ƒŠ…ƒ†mzŒ…w™l†~ŽŠƒ‹‹Š}|ŽŠ‰‡™Š‡‹z“–‡—‹‹’›‚{‰‰m†‹Œ„’†€”„†Œ‘„“‡†‡Ž’Œ™ŒˆŒ‡ŽŠŠ…Š‚—”‰…ˆ‹ŠŠˆ…‘zzƒ—€“‰…’‹‰‡˜ˆ…•‘•žŠ‡’’“‰”Ї’†„Ž“ˆx…Œ‘|˜ŠŽŒŒ‚x‹•‚›Š‹ƒ‰‹Œ’Žˆ‰†™Œ„Œ†ŽŒ’–‡ŽŽ…ˆˆ‹Ž†Š‰‡‰‹•€‡Š…Œ”““˜ŽŽŠˆ‡Ž˜„›Ž‰’xŽ•’Šƒ‰‡ˆ‰ˆŒŽ˜Š‹…“’ŽŒŠˆŠ“Œ‹‹‹‡ŽˆŠ‹ƒvš…yz£ˆŠ‰’z‹„†€ƒ‹€y‰”‚Šˆˆ„|’jt}tu‘—”~™—Ž~uŽŽ”‹w‹—vŽz’m†ˆ…‚“„‘…‹£™˜’•”•~–rˆ›|Š}Œ‚†‡št‡w…†“šŠˆ•Œ‘€s‚•ŽŽ“ŒŒŽ†‡“„€‡†€–‡h˜ŠŽ€—wœ€ƒ{’‹•“’‹…‹›‘‡Š‘ˆ–†Œw„‘‰Š…Ž”v”ˆ‰}“‹‰•”‡…‘¡”…¡“‰’Œz‹†“‹}‘š‰‰ŒŒ‡†ˆ†Œˆ‰“˜“Š’Ž‹z‹’ž‘„‹‘†ƒŠ›ƒ…ƒŽ‚‚Šˆ…””µ~ˆšœŒ‚–…xx–‹—™c˜…Ž…™rš…–‘‚‹~†€ˆ|ˆŽ”t“ŒšŽ •…‰†ˆ‰•}“{‹‹€‚‘Œ‘µ’•†Š~w~i’q‡’…f‚Œ§”Ž –ˆ‚•”€‚‡ˆ‘†q”Ž}t™“­‘›†…‹¢’”››‡sŒœ}…€…€‡–}“s™„”}‰‹‚‹œ˜Š‘Œ‹~‡ƒ‘–ž‹…‹‚Ž””•œŠ ”}‡˜‰˜‘™‰„}œ“Š„’ƒ”’‚‰¤…–u‹‹l„€ŠŠˆ†¢‹–†–†”“†Œˆ…Œ…uœyŠ‘˜Œ~€‡‡–ˆ…–u…އvƒŒ“Š’y†š‡Šƒ†‰}—Ž‚„‡ˆ“v|ƒ~ˆŽ‡{™…wz}—“ˆ„Š“Œ…˜”~‘‹‡‚ЉˆŠŠŽ„‰Ž’‘ЉŒ””w‡uŒ’”Œ|ŠŒ’‡•‰€‚…ƒ™Œ‹…‘‘Œ„ƒ“‰‹~Œ†€|ˆ•‹v›ŠŽ‚’ˆ„ƒ›†‘Œ‹‘ƒyŒ‡‘‰Ž‹“Š”…’”“€Œ”‹Š“Ž“††ƒ—ˆ‡Š‰ˆ—ˆˆƒŠ—‘Žƒ‰ŽŽ’‡sš˜–Š~’‹„ŒŽ”|ˆ‚”…ŠŠ‚‡ˆ‡‡‰Š‚š‰‚ˆ‹ŒŠ‰—„v{‚†}Š‚x‚}~‚y|…„}‚z‡|ƒx‹zz~…‚j†z„‹w„‰…†yvz~z‡€{yˆtt}‰„Ž‚ˆ~}…Žx}†}|…„y‡€z‚ƒ|o}†ƒŒƒp€†|}y‚t‡pŠx‰j–‚‰‚Š}y‡y~Švƒ}{™…p|‡†|…”…~ƒ€s|€‰€~~‚€z‡vz‘†}ƒx€~……z{zro†z‡€}†~Š€€s~‚†‰Œ€€€—‰z|wzŒˆ~„y‰€~„€|†~wˆˆƒ‡ƒ€ry‚z„uw†€€y‚{yˆ‰‹‚‰{…‚zˆ‚x|~’v”y””€†~ˆ“}~{‹uz†‰~†ptŒ†ƒ‹™‰€‡‡€{Ÿ†…€‚“‚}ŒŒ–Žr‡‚~‘‚…g‹‚{‡vz†”‡|‡zŠ“ƒ~”{v‰’ŒƒŠu~ƒ„ŠŒs~‘{Žq“€—|†’ƒ“ˆ‡Œ‹wŒƒq{‹’ƒ‰“‘s…„xƒxqƒ†’‡‡Š‹‰‹m”Š|}„†x€‹‘‘oˆ”‚•‰ˆz„€Šw‹‰‰‹ƒyŒ‘‰Ž‘}ƒŠy‹‰}Œ†‰~…‰~u…†ˆ†„}ƒƒ{ˆ‡t}yˆŠ‡~’†}†‚Љ’†…‰Š€ˆq„‹~†pŽwŽŠ~‚Ž•y–Œ€Ž„†‰‡ˆš€Šu~Œv‰ur‚Œ—††ƒƒŽ„‰“‰Œ‰“ŒŠv‘’Œ}Œvƒ{‹‡‹iŽ€‚|ˆ~Šƒ‰Š‡€Žs…Š“˜–„my–š€~Œ…‡xw€‹Šs‰‰ƒ†–…“Œ‡ˆŒ‡~}w†„‰}|Š‹€ƒ…€x{ˆtŠxއ„‚†‹‘gƒˆ~†ƒ‹ˆƒ‰}Œ†~€„‚–|z†ˆŽ‚ŽŽ†‰Žˆ‡…Œ†š†‚‡ˆƒ|Œ„}†ˆ~‡x’‚|ˆ’‚‡†y‹p‰|†’„Š‹yЇ„„ƒŽ‘ŽwŽŒ‰†ˆƒzq}‡‹zmŒŽ„‚~Žkp‰Ž€Š”y†v|‰su{’ª‰ss”“‡›Žƒ‚|’€–xw€ƒ‚y…w™Š”‡|‘†yŠ•n…|„{Š€Žwƒ‚|މ……€„‹mw„…ƒ‚Œ”ˆ”{Ž‚y€ˆŽ”o“{p~ˆy{€…i…‡Š€‰}ˆ™Œ~|„{‹Œhry‹xŽŽ…‡‚‹n|uƒ{‹”Œ‚yt‚zІ‚ˆz„„‰‚Œ„Œ„}’sƒ‡…‚|€‹Š‰ƒ†~‹{nІ~‚w„„wƒs‚|„ŠŽ€{~sˆ„|”„‡†ˆt…s‡y‹€x~uŽ‘•‚’t‡€‹v‚~~u|‚…y•……‡ƒ}™yz}€‚}{[|„{ˆˆ„~Š~}…p†‡‚Œƒoƒtsq‚†ˆ‰‚€€†u€wƒ~Œ}†„‡ƒyŽˆ…‹Švrw„††Ž„u|ˆƒ{~‰wœsˆ}‡gˆ•|‰xt„Šxz~†‹w‹y‹o‚…†~Š˜Ž‹u‰~€{ƒx‚ƒ‚y‡v~•€‹‚ƒz‰{ˆˆyЉƒƒ€vym}}”‰y||Š{{l€y‚{……~…‹~xty€{|ˆx‚z„ƒ…ƒ~yu…ŒŒ“rnˆ†ˆp}}„ƒr|…u‰‡ˆ‚‚…‰u‰„w~Ž‹€}€„ކ‚††{Š“‡•…ŽŒ—|yŽ•~o‡ˆŒ’‡“ƒ†”‰‘’Љ‘”‘‹’šŠ„‡–ŒƒŠŠƒ”~†ŒŒ„–—ty™}”‘‡›‘—|ˆ•€˜›ƒ›ŒŒ“™’•”•}}“ˆŒ’€‰”“v”…‰Š~ŽƒŒ†zˆš‹… Š“‡‡Š‡”‹ŽŒ‡ƒŒ‡„ŽŠ—Œ’Š‘†ƒŠ’‘“Œ†‰†‹””•ˆŽƒƒ„І…ƒ–‹‘Ž„‹„ˆ”‘––‡”{˜›“†ˆ‰Š‡‰‡…‘‘މ‘‡Œ›ƒ‚ŠŒ“““‡‚‘ŒŽ“Œr†~pM’z{‰z“Ž’…ƒ‡–•w¦¤°[ˆ…˜{‚a„~h‡}¬†¡J§}”ti‚Šp•Œd|ƒz‡pthŒ‹vvŒ¤‡ym|‡lƒ°]‹rŠˆˆc¢p‹‚U‘pU‘‡ƒj©‚˜”e_œz‰|uˆ ‹…”Ãr„¨„Õ†w–ƒŸ¤‘ŸŠ‹y¨™‚‹‹‡z‰yx‘v¬~„†…{yz‰‰iv†Œwr—’‹‹zƒˆm…„‚’Œ”{Œ|{‘uˆƒlŽ”]–›wxš}¢†l•‰švš”ƒ|}“‚w¤™Š€Ž£…o‡v‚Š”“³”ŒŒŒ‡—œ‘‘y‡y€zƒy’ˆ”†vw~„zkr||}š€m‰z{ƒ‘xw}€|~h‡~~„w{Š||€q‘Ž€‰{ytxpxu„…|k€€†|Œs~€†•yvptr•}„uk}z‚ƒrx‰y{‹{~™r‡~‘{i‚ˆ•spŠ„~†‡x|‰v}„yp{ƒ†€ž„z„t~~‚‚x|€vu‡…}„Šo„}rt…„ˆ}yptypxx}‰sw|ˆ}rŒ{‹Œ~y‡„|x€}‚}†|oŽ‚z‚~‡‹€‡Œˆƒ†ƒƒvz{‡tr|z„„ˆ†xv~€~wˆ……}tƒxv‹„z~w…•„x—u‹€{y†—‰m}vƒzŠ}ny tx—‘}‰z‘ul’~Š•wx}ztƒ†……“{tyª”q}}€€‹ƒž{y†Œ{Œ{‘†–tzhŽ€ˆ•…Šˆƒ‡Ž{€u’qx„t’j“Œ”ž¡Ž†xzƒvyƒ¨šq…“z~‡œm……‡Ÿf‡ˆŠx}„ƒi{„oz‹„z‚}{‚…x—’–w‹ŠŠ€Žwg…ˆv¢‡Œ‰i|‹Š“{l„}}i€‚•y•“Š„‚””t}z†ˆn€y~—‡ŠˆŠf‡}‰ˆ„–„uy‰†„ƒ|yzŽ…~ny}“pœr•ˆ‘“w{wƒy}zx{{nstˆ‰}˜ƒyƒs…uŒguv}xz`~‚‡ƒ…ygw†yyts|x{v‹tumo}†‰Šu…u‹”}}‹v~ƒ€{m„†‚ƒ’pw€uz‚Œrs|”xo|‡v“gŽzw[™–Šu…ˆssŽqx„}’ƒˆzy•|px‚ˆy‡‘…n€z†mz†‹xuw…xirœ”€€“xyz|Œ€p}u€xuqvp~Œ‰ro}€{sxk~vz|€~ŒŒw{y}ˆvƒ~~zƒwƒy}~qyi„y{Œymwš…v{†vƒ‡|nx}ky…—{…|y}u…qe‰d””}‘t“Ž„ˆ‚…‰•‡›–’“…|“‰‚s†‰Ž†ƒŒ‰—‰‡€Ž’‰’›‘•Œ–“—˜Œ‹Š—Š–ƒƒ‰ˆ…„‰Œ€‰‡““‡‘x~‡‹~“Ž‹‰ˆz„˜~}˜‰ŒŠ”Š”‰Œ•’‰Š‘†„“‰Œˆ„’‹‹q–‚ŒŠv‘|„Š–ˆ}‹”Œ—†’‹‡‡†…—†Š‰‡‰…ƒŽ†›Ž€‰„‚‡„ŽŽ†††‰ˆŽ„‹ŠŠ‘ˆ‰ˆ‰‚€Œ†‡‰ƒ•““‹Žˆ‡’…Œ“Š‹–‰~‹w”˜ŽˆŒ…‰Ž‚ЋБ†ˆ‡–ˆ•†‡‹‘•™Ž‹†Ž‘y„vƒ‰˜Šy{~ƒ„pp‹‚|’„uƒv”ur{z€‚i„‚ƒƒ„yszxn~wˆŠ‚’}…w‚uvpwv‹}yz}uŒ~~~‘€~{t„ƒŠnr{|{‡ƒ€tz|~}z–lu‚„e‹‰wv‰~z‚’u‚†Šz„†‚†}qt}ƒ‡œ†„k…€†xz„€~v|Šyxƒ‘Šƒ†ˆq}‡z†„h|‹ƒooyo…y†um}~v~r‚v|…‰|‚‚|€Š}}€xx†€|vv{‰‡~‡€z€‰†xŒŒxr€…†ˆuz‰x…}‡}‚wƒ}x€‡{†„|wƒƒxuoq£†’h’‹’އœ‰‹†Œ|”‡x““~ˆˆŒ“ƒ…”x€“m|‚…‡ŒŒŒh|‹…ƒŠrŒŒtŽ“w€…Ž„’ˆ†€~Ž‘Œ”yŒŠƒšgˆ›‡‘ˆ‰Ž‚…Š„v‚‹‹ŽŒ”‰€’…‘v‘~„‡‹‡ŽŠ~~‚‘ƒŒ’“w’‡‚–„‘„‰ƒŠ‰“‡‘‡…Œ‰™‹‡ƒ~““…‹……Œ†Šˆ€›n‰‘މ†‰Œ–‚“Š…ƒ…}‰‘€ƒ‡€œƒ†‹…|Љ”ŠŠŽˆ–‹{“”’‹„‡ŽŠˆ“‰“‚ŒŠ‹~ˆ„—„…„„‡†‰ŒŠˆˆ‡•ˆŽƒv—„z‰††„†€‚‡Š„€Ž†s‰—‘š‚Š–‘~•’”•Œ|y…Š|j…–ƒ’x†œ‡||…™oŒ”Š£‹v…“”Œ›˜n€™xˆ¨‘p‚‘v”‹‚“ƒ€}‹’t‘{{x’‹|ˆ¢ ’ŽŒ‡‡™Ž|vƒ„~Œƒ}‰˜€}”€“Ž…Ž„‘Œˆ—€}Œ•’‰ŠkpŒ‡’““’‰‰”„“Œ…‘Œ’‰“Œ‰~ˆ{‘œ€—u•‚{‰‘…‹yŒ—t’yŒ‡‰‹t‘tžp„ŠŽ‰‹†Š‰„‘‹—”‰{‡‘€ŒŽ|…Žrˆ“‹‹Šw€„‹‰Œ‚xo‚“}xww€“o}~ƒ‰‚~}€~x|vs}~…vbˆyƒ~ˆs†wzgŽ|z‘~y†xy{yzƒ|„h‹Œty‚{~|†hi„{„rzmk‡Šy}~‡wj„Ž„†r~„†e™‘}w~WoŠ™]m„…€{~k‰‚{†zz„‚xlrpv‰k‚{‹xŒ‡sr{–{ˆ›j†„n–€uw}Œ‹€yswpqz†…oj}tlwrmˆjrˆ‚Œ…†‹€z„‚Xw~…{{†›{nsu€r…€|~nŠq‡nu|q„ƒgj‚own|„sŠpuz„tƒs~‚ƒˆ|Œth‡Ot¥x•t˜™ŒŠ”’†‡‰r“y“z“‚‡Ž‡†~—–ƒ‹{†}‚“Œ€‰‘{…›–‡}oŒ˜“zƒ€•‹|‹†€†‡~–™ˆ‹Œ–“us†”p……ˆ’„Œ“‘Ž~ƒ‹‰“’‰•Š‘q’„‹|†‘†š‡y‰‹„Œ‚‰‚”vˆ›…‰“†~„ˆ‡‹‡–”“€…Ї‡}Žv“…™x—‹}‰“Šˆ‰|‡”‰ŒŽ“Žšˆ‰€ˆˆ†ƒ‡–zƒ’Š”ƒ‰’‹Šˆ‡ ˆŽsЇ†‘|ˆ’ŒŠ‰—Œ…ˆ‹‹Žvˆ’‰†€•Œ‰‰v”“‘ƒ†~†Œ†–…˜ƒi‹‡t‚}w’„y~›k|„ƒ|t|…†|wy‰Š‚ƒu•~‹€†m‰˜p|}v\}}t€“Žx‘‡|vƒ€„x{„ІŒv}€w†„†zz{{†oqy„xŠ€€€{‹g„~t{m„sz{‹uƒ~…ut…€‚‡zx{Ÿo„…srpvŠ}wkŽp{nˆ}n‡‡u‡v†o„…Ž‹…‡vu{u}}…yszt†t†rys}…lfz„uo„{{‰ƒ†p‡„ˆ‡t}~}€y~’‚„v‰€ˆz„q˜zy‹yŒpz‹{q{‡vv{ЉˆvŠ€€sˆuzŠ|yn“o‘uƒƒ„‡€†‚u‚‡‚Š’‰‘’—‹ˆ–’†‹…‡‰‰‡uu~„ˆŠ’Š„ovŠ~Š’vyŒ•ŽŠ”Žz‹Œ‚‰v–Šˆ‚”‡~‚Žˆ‰™’‰‘’{ˆ‰‘……ˆ‹“~Žz‡‘’r‚‚†‚yŒŽŠ‚…ŽŠ†‘•—‡†ˆŽ‡Œ‰Ž{•Œ‰“—Œ‘‰…Œ„‹„˜†‹…Š—„“ˆŽŽ–‹”Œ‹™˜‘Ž—‘…‚ˆ‘…•ƒˆ‡‡‡’‘•ˆ„“І•Šˆ’ Š‘ƒˆ„ŽŽ–{ŸŠŒ–‡‰ŒŒ—Žˆ–‹€ˆ‹Œxw€„ˆ‰–’”‡„“‡’‰„~}Žˆ†˜‰‡‚‘•ˆ”Š’‘…}‘s|ˆ…–ƒ…˜Ž…„‰“‚Ž‹ƒ†Œ‰—Œ’Ž‹’‰Œ†{Š–ˆŽ“}‰Šˆ•ww—•މ}|Š“‡ƒ”’{‡…’“ˆ‹‚’‡‹††Ž‘•…uƒ€‰•}Œ…‚…‚~”|›‡˜Œˆ‰‘‹“†Œ†”’ƒŠ‘Š•‹Š‹ƒ”‘‡‹Ž†~•ˆ“ŽŒˆ‰ƒŠŽŽŠ“ƒ‰”‰„‹’‘‘Œ”Œ†‡‰“Œ˜ŽŒ•xŽ›”…ƒ†‰‰„ˆŠˆˆŒ‹“ŒŠ„~‡‰–‘„‹ƒƒŠ|r‡’†Š…Š„ˆ|Žvu{‹€rv‰€†Œ™‡Šƒ}–‚…‘‚‰}„w†g†…’‘{”‰z‡–m›{xŠz˜ŠŽ†vƒƒy†‡ŽŽ”ŒqyЉ‹|‘|‹„†‚€zƒ„y†—œ”Š~Žƒux„|ƒxt„„‰x„x~Œ…}Ž€†j–lrŽ’vŠ—ƒ„r‡‹‚‚†ƒ…›‰|w‚‰‰‚„ˆŠ‰~„‚„Š“‚…€|{ˆ€„‚Œ›ˆˆ|“s†w‰‰wŽ}{€xxˆ‰Œ‰„†‡Š}‚Ї|Œ‹xŠŠŠ‡wvˆu’Ž„{x‚z„—‰~‹‡|rŠŽ†ˆ˜ˆ„tl‰~p}‘ƒ‰Š–‹Œ€†œŒ“€~•€‚uSƒ‹„†š†–~~Œ‰rŠs€w€ž”›~„}w„Œ‹Š y§Š†€nw~‘i“…‡‚y}„v€†rŠˆ‚Š”“‹„Œ}ct‡Ž…‡tz}Œ„r{‰‹‚†‡„y‘s†Žq™‡v†‰q‡x“„Šl|†}…ˆ‹‚„‚€xu—ˆƒu”†„—~„|Œƒz€”ˆˆ}ˆŽ‹€}”|‹‚ˆ‚wf}}r…•ƒy‹€‰‚’‚‰„…ˆ…{|}ˆƒtŒ…~‚Œˆ€…qx{ž„y~v¥y—„‹†q¦zŽ’€Ÿ„Œ—wСЙ}Ÿ‡Œ{”Œvx‹p‹†‰v”‹~Ž—„`Œ‚¤Š……”™ŠŽy•}‹ƒ‘‰‰˜{…’r~‚…}|¤”u—’Œ„‹…”ˆ“Œ~ŸŒŒ…™‰‘–“‚‡ƒ•€‚y‡|•’¢Œ~•Ž’ƒŠ˜~‡…||›“…‡†•‰’‹ˆxš‹Œƒ”‘~——’‹€Š˜‘‘…’Žz‹Ž‰“|’“‹–u‘‹–“¤”ˆ‹‡w‘—’€¡š˜‘…¡†—‡{¨Ž£’˜‰‘ž†“˜€Ÿ‰ˆ–wŒ€zƒˆ‘‚—Š•„†‡…~›}—ƒ‡‹‰”…‚‹†{“t~‚‹„qy‡y‡’”‚‡z|Ž‚yšƒx‰‚}…~Œ‡ƒ‹‰s‘…w€’‹nƒŠŒ€•~€…ŠŒ~‹„z‡•Ї”Š‚ov‡†‰’|ƒ„ˆŽ“r†‡€Žs„y–}‘~’ƒ†ƒ‚Š…‹~u‰…ˆ~„Š‚…‹wy„z€…€‹‚†‡ƒ†zƒˆt{ƒ~‡uŽ€r~Ž”€…z‹{“އ‹‹‰††|ƒ‹~}“Š~–…„…‰‚‡‚uƒ‰|Ї“€ƒˆ…‚}Š”‘|ŽŒˆƒy…Š‹‡z„‡…vysˆ‹„z}ˆmŠ|ƒƒ‰†~‘“’f‚ŽŽ ‰n…•s™°ˆ†‘—‡³ˆƒ¢‘}ŒˆŽŒ”s•˜†‰ j…“~ƒÅmk©r™‡Œœ”­b…¶‹{¤‹ŒpœŽš»Ž”‡¢—w¦}‡•~Œ‘x’o™s‹Š‡Š„dz™qtv‹N¼{€ŒŒg––Š”—Ž˜e˜‰˜‰•Š”rzu©›—†¥€‰…hžrp‚}š‚|}”²‰—”Š‘°•›‚¨¥…™‰†™Ž„z€u›—žˆ~”‘}zˆ’v†¬›vœ›™‘fuƒi|ku†‡~††˜„“_““—¥‘®~…’”tˆ‘q‘‹ª|Ÿnž˜…‰„n‰—z~‘†—šyŠ”‡†Š‘‰›ƒŒ„t’–zˆ™u‘ˆ‘—~x{ƒ‰˜{‚…‡ƒ…†Œv‚˜™•‹w‹‹Š…–†‚‰ƒ–| „‚“…•Ї} “u…€Š©•yŒ•–Œ‹n‚—‹Œ}••†o†‚ƒ—™„…’’‰‰{†‹ƒŽ~”|ˆ‰w‹“‘𔇫‡}ƒ‚œ‘“ˆ‘~ƒˆ†‰“‡šwš’•ŽŒŒ”ހІ‰“……—‰‹‡‰‰†ƒ{ˆ‹‡Š›„’‘€——އ}‹ˆ~ˆ–Ž–œyœ•ˆ•Ї—ˆŠ‰‡Ž’Ž—‡€‚Œ”ƒ‚Š’’ƒŒ‡€“‘––Šƒ‰~…Œ‹Œˆ„„~‘™‹—Ž”š™zˆ‰nŠ…Ž”ƒŒ…€–Œ““ˆ“‰Œ•”™Š…w’‚ŠˆŒŠ–ˆˆ†ŽˆŽ†‰ˆ’zyƒ–~“–„‹Š™…›†™’žˆ‹‹”Œ†˜|‘”†‹ˆ•‰{œ‡Ž€•‘ŒŒ‹„{Š“ˆ‹˜„ˆ„‰…Š‹““ŒŒˆŠŒ‰ƒ‡‹€‰‚Œ|‘–މ•Š‚…Œƒ”•Žˆ’‰‘“Œ„Љ‘~†‡ˆ‹Œ•ŠŒˆ‰Ž‘†–Љ†{“‘މˆ†Žˆ’Œ‘ŠŽŠ‘‚”Љ—Š•‰‡Ž‡ŠŽ‹{‹”h€‰‹‡Œ™Œ†•†‚“˜’‹Ž…ˆŽ‡‹zqŽsy‘ŒŽ‚™stˆ‘‡yv…”|‘’‹ƒŠ~…“‡{‡”Œˆ†™|„‘y‚Œ‰ˆŒ…Ї“’t„‡Š“Œ—‡“‹rŒˆˆ{Œ‘|‰ŽŒŠ‚Š„‘†‹Œ‘”Š”„“‘Œ›ˆŠ‰Žˆ‡—‡“‹‚›Šƒ…ƒ”ˆž‰‹–ƒ‰Š•™Œ”ƒ•u”‡‹Ž‚ƒ•~|‹‡“’’“~‡’•‘‘އˆ‚Œ‡y†šƒ’Š‹„Ž‘“’Šˆ‹†“‘‡‰ƒ€‹“ŒŠ…Љޑ‰‰•~‘ˆ„{‰v‡ŒŒŒ†…‰˜~|Š‘ŽŒ •|z€“‰nŽŒˆ…‡“Ž–Ž–‘Š„Œ‹|•‘–™‹’‡—‡‹‹•‰˜‘Šƒ‘Ž‹–xy‰~”‡“‹“‹™…š„† ŽŒŽŽ–”€ŽŒzƒ–‚ŠŠ‰Œ™ƒt›†“Ї‰‚†€Š™~‘‚€”–‹ŠŒƒ‰‘‹‡Ž†ˆ„‘w–ˆŒšŒƒˆ„‹ˆ“‘Œˆ‘”†•‹Œ‰Žƒ||‰‹“•Š‹‘†Ž’„Ї“„„|–Š„†Œ…‡‹ˆŽ‡™’‡Ž’†•”‰”—ƒ”’‡—‡Š‰‰‘˜ŒˆyˆŽ•šŽ‘‰•‰p“‡ŒŠ‹šƒ|…„nŽ’ˆƒ€–‚އƒƒ–˜n†‡††’ŒŽ˜Ž‡—”’…ŠŠŒ”›„ˆ‰†ˆ‰œ„“‚w‘„ƒ”…Љ›Žœ’‰’‰t‹™“—‘Ž™ƒ‰–‹Š“{‰|ˆ‘€~¥„‰ŒŠ‡‹‹‰Š…“‚ŠŽƒœŒ‹„‹•“ˆ’z‰‡’†–…Š“‹…“‡–Š——‰‚ˆŽ‚—Ž„…ŽŠ††™‘‘ˆ†Š–˜Ž˜ˆ—…Š”•ŠŒƒ|‘…yމ“‚ˆ…‘‡ŒŽ“‘‚‰ŠŠ‚“ˆˆŠ……–…‹•Š–“ƒ†’†|‡|Š‘‰†˜ƒ†€‹}‡pv€ˆ‚…vr‚‘‹{–yu|…yyŒŠŠ}un„€‘‰†qŒ‡x…ŽlŽrŒ‚އЂˆˆŽ›‹ƒ”zŒjwŒ›}„ƒzƒœ‹ˆ{r…‘™qžœ€““‰Šd†…‰†u~Œ†ƒy‘ˆx–……wŒƒt|ƒ™…•…}‘„‹‹…rŒx|d~{|†xŸ„—†~r†¤’ˆ—”Ž’‘‰‡‚‚€‚ƒ€‹zy‰zƒˆ•uŒ‚ˆƒŽ–‡{y„ƒ†”˜—yŒˆ…‡|‚Ї†€{Œ‚~}r‰rŒ…І…zŠtŽƒ„}Œ…‡‘•ˆƒ‰“‹“‹™Œ~”|zŠŠ…nˆ€‹~Œ“‘‹’“‰ˆ˜™Ž‘‹–‘•ˆŠ‰ƒ‚~ŽŠ‹Œ™{Œˆ’‘x|o“•ˆ…‹Š•ˆ’˜“‰ƒš’’Œ˜„…}‘“”†ˆŠ’–‰t˜„Œ~‚”|‹‡„{ˆ’Ž„š‚„Š‹„ˆ“…—”Œ†‰†ˆ‘‡“…•†Š‚‰“‘”’‘Ž~’‹Œ“Ž“’†“‹…‹‰‘‡˜“ˆƒƒŒ‹†Ž…І‰”‹“‹{’‘‡‡……„“Œ‘‡‹‹ˆŒ†ƒ‚~ˆ—ˆ–Š–„“Ž„–„”…~‡‘‡Œ‚‚‡•‡ŒŠ–¡{”…ˆm—“‰‘Œ†…މ‹–’x”‹ŠŒ•‘žŠŠˆ…†”Œ‘ƒ†Œ‹Š‘…‘Žv{Ž~š–˜Ž‘‰–‹—Š™Œ™Ž‹”•ŽŽ}ˆ•Š‘Š{‡Œ’v˜€‰Œ|‹Ž……~ƒ…Œ‘‰„€‰ˆ“ŒŠŒ‚އƒ“‹‰Œ…”„ˆ€Š”‘˜„Œ‚ŠŒ€–‘“Œ’Œ…Œ„‹†…Ž‚†‘’Œ‘†‚“‡—„‹‡{–™„Œƒ’ŠŽŠ“Œ‡‰‘ƒŽ‹Š‰“‹•š†’Ž‹’’ŠŒo‰”†€ˆ†€Œƒ}{‰o{|އˆtmˆ‹ŒŽ‘„ˆx„™‚}‡qŒ}v‹s‹€‘…n‹„‚|‘†l’}„„~|ŠŒŒƒ~€Œ’|•~–rx‚“‚†|…†ƒš†Žu‡‘o‹‰ˆ‰ˆƒ™‚†‹w‹‚~‹„r‹†ˆŒ…‘|‡‚vˆwoxw…†‹…‡…‡‚Š…pŒ‚yz}|w†|™w„‘„—‰}vŒ}‘ƒ›‰’†‡‹‚Œ‰y‚‡v‹„}€‚‡…†ˆ|‚{€‡ƒw{‰xxˆ…Ž{†„€‚„}‹‚~…ƒ‚~…uއ}y‰oŠ|“…z†k•xvV€‚v“\Œ•šƒ‘‘‚‰£•ƒ²šs‘¤Œ˜”kŠ¡rt‹zƒ悬ˆ‚}’|˜–›}“`Œ–Š›{—j”v~~yšŽ“w¨lŒ®p–Žvœ‘xn„Š{¼y”ˆ‰‰ ƒš“‡vs’h‰zŽ„–‰ˆmŽ…†¡}›†ŽvŽšzšˆ}p“…’Š™ˆ‹˜wyŒŒs•w„svqzoŠ”‰›˜‰h ‘ƒ‚¤‰’‰p“gž“˜Š“‰‹m……‰€‚‘|d„‚vovš‰ˆ{‰†ƒ—„…Ž‚’Ьm››x›‘’Œ•£p“›ŠŽyˆ‚‚—ˆK¨tZpœ›mˆ—]”{‰y”~Åo{x€®–x£[…‚“ˆcl{‘†‚Ä–¡›ƒfz‹„uš‚ˆˆµ«yw|}–r –‘‹‰Š‰vŽœ€}‹†t–“u•’œš‡lw‹|žŠ‚‹wŠ’ˆ œ¢†¡‡¡•}¤q~‚’‡n‹w~¡p¡ž ……’–•ƒ˜¤’Žr…ˆ‹€v‰…“‹œy†y{¤‡•š‘Œ– Œ„Œ—ƒ—‡‘—”‹‡™”Š–„›€rŠ¡~€Ž–|£nˆ ˜‚Ž‚“n–…‚y˜‰™•‘—Œ„”m‹}r‹˜~œ…„‰›˜…±—ƒr…zz‘}“†ˆ‘|–z†Žˆ„Š„‹ˆ~†€ˆxˆ|†‰‚r|Ž~„‹’‰|~|„}†•‚†ƒŽˆz†ƒ•‰sˆ}u†Š›z’w‡ˆ…”z„Šˆ‚€€|w‹€¡ƒ~mx†ŽŽt~‹‡‰‘r„ƒƒ•xˆ‡…ŽŒ|x’„‡z|€~{~u†y•w‹’‰Šƒˆ†}‰yn‡†~‡…‚‘€‡„}ˆz„zmƒˆs‰‰ˆ{‡™ŠŠ|†k‰|‰‰ƒŒƒ‘ކ†ƒŠ††€†‹†w‡z}‡‚€}Š€ƒ}v„ˆŽ~{~~„Œ‰‚‰‰|†‰n…}‡€‹yŠƒ‘ˆ„z„lŒ†}‰l‚‰Ž„|ˆŠŠx|‚‘˜”ˆ‹•rŒ•ƒ”„•›‰w„Ї‚…ƒŒ{{‡w‡‰Ž™„˜‰ny€¢†Ž{•Šˆ€‹‚wŽ‚}„‹ˆŠ…“‰’ŠŽ”‘ƒ‰ƒ„‚‰Ž…„†š†…ŒŽ‘Œ…”„ކ‰Œ‹‡‡’‚ˆš‘Œ‚„••“†‹‘‡›„†‚‹…‰‚Œ|„……Œ‹Žˆž“ˆ’™‹‘•”“’‘““”†Š‰ˆ}‰‹œ†ˆ„ˆŒ‡„‹Ž’—›ŒŒŽ†‡‡†ƒx’–Š•†Ž“‚ˆ‘“Œ‡‹‚†‹v…‚ŠŽ††Œ„’†Œ–‡„Ž~…p…ˆ‹‚„qŠ•™ŽœŽ‰„‘Ÿ|†’…†’Ž”q~œ}ˆ˜‚œŠˆŽq’’…•‰v›¢ŒŽ”p‰‹s‰˜„…v††ˆ‰•Š—ŒŽ’†x‡‡‰—‹ŠŒŽ•}”q„‹’‹‹–ˆ~…ˆ‹†w‘†‚…ŠŒ’„‘‚Œ–ˆ˜ƒŸx“ˆ‡„”†“‚ˆ”‹–Œ’‰“z‰yŽŽŒ†–ŠŽƒv‹•ƒ“•’™‡Ž•”†•‰„‰“†–ˆ••‘’š‰ˆŠ…ЄГ…‹‹t„‘ˆs†wŒ„††…—•™†œŠŒ‡Œ~”ˆ˜…”ˆŠ’‰…€‘ˆ”s“†“މ„‚ƒ‹€Žu}}Œ~ƒsn‰‡ŽŽ•{wt‰—…‹…ynw‡‡sˆ}€•‰—m†„‚’€…ŒŽŠŽt‡‚‡‰”††•†‹nw‘‡~‚€„‡˜†…v€‰ŠtŽ„”„”ˆƒy†‡‚{€xŒ„ƒ†…€y’Ž‹‰€‡y€nxˆƒ‡‰}‡‚„‹‰p……„yƒ†‹|~~‚ƒ–x{wŒ˜…‘‡‘‡ˆ‚…{‚…‡…€zˆw„‡ƒ}†|–‡y„‹z„Œƒ}y‚~“‰‰{‡ˆ‚„~…•…’xˆ†„€~xr|oƒˆ~…uˆlŠ}‹ƒƒ–x‘~‚‹‹Œ†}ƒ™|„Š…‰Š‰ž}}‹ƒn–•†”Ї“|•Ž˜“v“”„Ž˜”˜œŒ”’~ˆ˜žŒ’‰†‡ŽŒ•‚•‹’v{™ˆ~™•š‘Ž“„“ŽŽ–‰’ˆŒŽŽœŒ–‹‘’y|–ƒ‘‰ƒ”Žt˜€Œ…€—‚…’€„ˆŒ“œˆ›‘ˆ‹|ˆŽ“Š•‰Œ}ˆ‹‹€—ŒŠŠ‹ˆŽŠx†—ˆ’Šzˆ˜ŽŠ“’Œ‚‡’Š‹€v‚މД’‰–‘‹‰}”–„‡Š™†„‡{˜›}‹ˆ‡ŒˆŽ‹“Š’“—‘‡Š‘Œ–ž‰’œŒŽ‰Ž”œ‹ƒ‰Œ‹Š’‰“ˆvŒ’ƒŒŒ™Ÿy˜ŒoŽ‘ˆ‘‚‘„•‰…•›Šv‰‹‰‰’“‹ˆŽœ~„—…””ƒ‚‰…ˆ“‰•Š•{|Œ‚”„ŠŒ‰‹˜‰€—…‹‹šŽ‹“•“ŒŽ•|“ƒŒ~zŒ‘“Šy•}}ŒŽŒŽƒŠŒ‹‡‘…ŒŸ“ŽŽ‡…‹Š‘ˆƒ‰ˆŠ“ˆ‰‹ŽˆŒ|…“šŠ„ˆŠ€–Œ’Šˆ‡Œƒ’‹‘‡z‰†‡‡–™–‘‹„‹Ž“ˆˆ¢‚‰Šv“–’ƒ‡Š†ƒ‹Š‡”ŠŠŽ”Š“•†Š€‡ˆ–˜†“—Š’‰ŽŽŽ„…‘’‘‹ŠŒŽˆ}‡•†—Œˆ™€z†ŠnŠŒŒŽ‰‹‡‡•‘‡…ƒŽŽ‰„”‡Œ‹•Ž‘ˆšŽ‰’•ƒŽ…Š€‹‚‡‘}ˆ‹Šx|†’‚’•‹‹Ž„‹•„‰—Ž‹š‡’Ž–Љ†‹‘‹Œ…ƒŠ‘‘Žt‘‚’}‘’‚‹„‹†z†”ŒœŒŠŠŒƒ‡‰‡–Š‹‘†’‚‰‡›‰…Š‘Œ‘”ŽŠ††’ŠŽ”‰“ƒ‹‡ŒŠ’„‹Œ‰„†’”“ЋމЗ–‹‹x‘—ŽŠ‹ŠŠˆ‹†‡’Š”•‹‡ŽŽŒˆ„†€‹•‰‹’…’Šˆ‘’„w{–…w{‚†“—mƒ’u¨‹ŽŠ–‹‰{~™Œ’„ŒŽx{z~|Œ©‰–Š´‚˜Š”‹Œ”œ…•‘‘|š~…‹‘‡‘Œ“‘’‡šŠ’Žz‘‘–}„ˆ–’€…‘“”|‡pЋދ€–„„Ž€“v„“šŒ‘…™‚”v‰ˆ‹}‰Š¦q‘’}˜ƒ‰†‡Ž…”˜•‘”Ž~Œ‹ŽˆŒ€‹Œ™‹†‘’„”†˜ŽŠ†…ŽŠ”‰Œ’†Œ‘“ƒ‰ŒŠ’މ‡›Š…’‡„{Œ˜~‰ƒŒŒ‹™‰“‰‰‘{ˆ”Ž‘‚€€}‘‡‚Žšƒ‰†–‚‚ŽŸ}“†…Єމ„ˆ…’‹ˆ~…šŠ”†˜Žš‚w›ˆoŒ…’ŽŠ……~’‹–Š–“ŠŽ‘œ‹…‰ˆ‰~Œ‰Š…‘}ƒ‹Ž‰Š—uxŒ“~›•†œŠ”‚–†Ž•›ˆ—ŽŽŽ‹Ž—šŒ—Œ’™y‹Ž‘z“ƒ†~‘‹Œ‰wЇy‡—‹Ž‹‡†Š~˜‡‹Š‰ƒ’“…„†”‡“ƒ‰‰–•Ž“‹‡Š†‘ƒ•“’“”‰ŠŽ€„‰Šƒ’„Š~‡‘†‘ŒŽ‚ŠŒ‰Ž‹›˜’Œ’z”™“…“ŠŽ†Ž‡ˆŽ†‰ŠŽ}†ƒ…‡…„‘„—’Ž…”€}vw“‡ˆˆŒ|Ž’‹‡‹˜‰ˆ€•‰ˆŠ„’“Ž‹–rn‡{Œ‡…—Œ†mv‹“€r’™ˆ‹“‘ˆ{…”‰Žx˜„ŒŽ”‡…ƒˆ˜„™šy„‘‡†Œ‹•{šv…‰‘‡•‰{ƒƒ‰v’‰ƒ‘‘‹Ž‹Ž˜‘†„‰Š‚‚—zŒ‰Ž˜Š’ƒ†‡‰–‹šŽ“Ž‘~…’†µ‚“Œ‰‡’“€Ž‡’ˆ’…™Œ‘Š„ˆ“ˆ“‰…ž”‘’ˆ„‰•ˆ‘ŒŽ…}‹Œ‹…˜y¡…ŠŒˆ‹‹”˜ˆ•’„‹Œ†…†‘”{ˆ‰”“‘Š„ˆŒz{„|ˆƒ}€‚…‚„tˆ€‚}…zmx—‡€v‹ryw€‚„‚†|‹†„w|y„}‘ƒ…y“y~‚‰‡ˆ“š‚„Œžwˆ~Šˆ‰}“„t‡…ˆ‚…~myr||Œu‚‰~pŽŠ†…yŠ{Š…}ˆ~|‚ˆxly€yƒ…ƒ†•ys˜…І•s€„‚{{}…††v|Œƒ€ƒ„€{…|“t‚ƒ{‰†v|y†ƒ~Š}†}‚„‚…v…~€‹ˆ€„އ‡‡~~v€–|ƒ€ƒjˆƒŠ†‚xy„ƒ†{ƒ~‚€w…uy|{‰|~„‚€‡yry…‰t‡ˆ}~ˆqŽ€‘Ž}–“ˆ‰Œƒ{Š“ˆ—‹–}xˆ‰…nŠ‡ŠˆŒ†‰”’ŒŒ€‘Ž…‹‚‹Š•Œ’™Œ’”ƒ‘†…ƒŽ‘ЉЕ{ŠŠ—”w{w‚Œ”‹„Œˆˆ•—‡‰˜’…„š”Œ“—‡‡„ޑІƒˆ––„q–ƒ‹’}Œ’Šˆ†zŠ•ƒœ‡†‡‹ƒ„’†—‘ŒŽ‡Œ‰„‡’‰—†‘Š„ŒŒ’’’”‰‘’ŒŒ†’‡Š‡Œˆ’„–•…ˆ„’‘Œ‰ŠŽˆ‡‘’‹—†Ž’{‘‹ŒŠ‹†„†„‘”ˆŒˆ‰€„~Š–…”ˆ‘‚“„Œƒ‹††n”ƒvƒƒ…~ˆ}w„~n{…„zŠ|ŒŠu’}ƒy¥y‚‰…zx~wuy¬Š•’†|ŽŒ~ž‚vŒ…‰~x~iˆŠŒ‰t~zšw~zs‰sŠ€Žˆvƒˆ‘z€…‰ƒ„lyxŽ‚r•‚‰„zsƒp˜ƒt|€ƒƒty“‡€}†}u•~Š^f‚Žy…}‘vrtlmz~}{‡lqyŠz}‰‡|}ˆ|u‹tvŠy~{‚ws†~x‹…uˆ„xxw|Šs{„y|€ˆ~~y~uv~Œ}{†y‡†z€igˆp‡ƒ„}|z‰ynv„Œz˜u|y”q€‘‰|€ŠŒ†š†…Š‹†Œ…‚ˆv€{ƒˆxz€w“„zw„Œƒu‡Ž…Šy‹€‰‰††|“uvŽ„Š|„|…‚…ƒxƒ‚…‹ƒwˆ“„‹Œ‚wgv‰„‡‹y€†‚zo~……yŒ}wŒ‚ƒ‚Œ„„ƒ}{~‹tv†€…r‚†vŒŠ|„{v„z~x}†‰~ƒˆƒ}‡ƒ“~|…ƒˆ‡~vŽŽ€|~u‰€“€…†ƒ‡„Œ‚†……ˆ„|w‹ƒ†„†…‹‘…z€‹zƒŽ‰†ˆ‚ƒz€ƒˆy‹{€}z†~Љ{v‡‚„ƒŠf„‡…‰€ˆ€lŽŒ‚zt‚€yp†{‚y|”v€Ž‚‡|s•x‹l”‚‰Šˆh~ˆ‚kvuš‡‡œ€w‡„‰v}~xš|~Šyƒnyƒy}‚‡~r‚pwuq€{vlˆw}}ƒ…|z‚tˆs€}|…o‚Š…|k€ˆh~…x{zzz{‹|‚‚€}|‡˜…‚tjˆ……ƒwu…||„€{tx|lxu}„…€}x{q’~qƒ{u„ˆnvn„ƒt}†opŠuw……yr‹…uu„urzrsˆ{‡tz‚‹tq{~q~žy}~k†„suy~nzw‡ssƒ{‚ktt‚|{€sxxuyŠ”rˆx”Ž€Œ…І{ŠŽw‹„‡ŽtyŒz~†’‰€‚ƒŽ•ˆŠ†ˆy|†……ˆt|u‰‰›uކ„†~‡y{‰Žˆ}}‰‚‰ŒŒƒ~nw‚•„ŒŒp|ˆƒ‚…u„„{Œx†‚†Ž‰Œ‚‹…Ž€ŠsˆŠ‡{‹{‹†…†Žƒ‡„s}}†ƒƒƒ”Œ‰Ž„~‡v„Œv…†Ž|„‚ˆ€ƒr†‡Ž„ˆ|}‚Šˆ‡‡Šzˆ†“…‚ˆ‚ƒ„„„‚‘†‰w‚„‚}‰{‚„{Š}v…‚€ŒŠ}‚Œ‚‘†‚‚q‹Š}„m‹Š†‡††–}wx€~yw€ˆo‘jxŽ‘}mƒ™Ÿj|||€–s}{toz”yЋЄy‰yŽi‘†vx“pt|‹u•ƒ…q|~‰„q‹—ƒ“pš‚–ŽŠ~”…œ€‘€oŒˆžpˆ”|€{yˆ}o}}ru„“Š~€˜‡‡yn‘z‘Ž€‰Š†ƒ|‡w~rƒ_}Šv…›~‡…|}…˜{¡†|€…{•‡ˆˆ„~|wsˆ‡{‡~k|{Іy„ˆ“ƒtwz}}„ƒ}‹tt€ƒ|ˆ¡t•‰k‹z’€Œs|€}‰”€|…z…‡‡xw†w‹~ƒ“€Ž‘‹ŒŽŠ€‰‹’†ˆ”„w‘ˆ‚“—|‚„…lŒ‘ƒ……ˆˆ’‹•…‡”“…€‰„•ŽŒšŒ™‘‡ˆ‡Š|Š”‰‰‹‡„’Œ‘|{p‘€‘’……–Š‘˜Ž–Œ€…žŠˆ•“Ž—Œ”ƒ‘’Šˆ}‰ŽŽ–‡r˜…Š}†ˆ‹Š‡„}ˆ”‹‹›†Œ‹Š††Œ’Ž‘ˆ‰†‰‰‹†”‰’†ˆŠƒ‡ŽŽ‘”ކˆ„Œ‚Ž…‹Ž‘Œ”„‰Žˆˆˆ“—‘–ŠŽŽˆ‡†™‰‹‹zŽŽŠ†ŠŠ…ˆ‡ˆ’Œ‘•†‹ˆ”ŠŒŽ†—ˆ“”„•ƒŠ‘‡ƒs‡ˆ|„z~{tzys‹ƒx}vx€Œy|‚q€ytŠ€z€€u{‰~svnƒ„{{…‚xv{‚~{‡Œ„‚}w…yˆ€€†y‚~tƒ|†‚„un„qtˆtw|zv‚|‚‰y‚zŒs‡w†„z†vly€~w|‚r‡ˆ„w„~„}”{y€ƒr…~zytuy{|{r{ˆ}Š|zq‚‚„v}„‡‡‰o}xww††l‚~…}yvq~€„€„wzxƒ„yxvsu€‹x‚‚tuy„€‚~€}{ƒ€‰yt}~ƒoww€m~t~}r}ˆƒ„n}~€‚}…„}„r€†Š‚ƒz€„{vquxw‚ƒ„rŒxr•~}w„}zu„†zxp…po…Šy™|ƒ‰€swwz€€‰~ƒf‡‚z…|ˆŽˆ}‡ƒqƒx…os‚yi~zuw‚mˆx‰‰ˆx‘„v—ƒs„}{†€ix|{y~€…y~€‘ƒšŠz„z‡|zyovv{|‚ru„‡€‰†€u†‚”ly}Œ‚Šlzwxƒj•ƒp{wx|wxx~‡€xxvzƒ{~m|zx|‹s‚~|‡Œ€†x‡}”…€}pŒ~w{rƒquzƒ‡lz|{{txtw„}‚q~~ƒ‡‡‡ƒ{r›‡‰€‹Š‹‘o‹’‡‡Œ}‚…œ}v‰’…ŽŒ”rxxƒ‘“¦‡–™®†‰ƒˆx”’„“„Œp‘˜ŠŠ~ƒƒ’’ƒ›œˆ˜€Ž‹mŒ ~Ž„„Šˆ†œˆ”lŠo†…’œt‹‹ˆn†Ž…ƒŒ›}”…‹sv“’vˆŸk–”‹|“Œ‚„„‡˜„‘˜˜‰‹‰„‚x©‰—…‡•™ŽŽ””ŠŽ”Œ‚‡„‹‚’}ˆ‡€Œ}‰š“ˆ‰“Œ’Œ”v|ˆ~ ‰‹‰…ƒ‡‹…Ž‘”ˆ’˜‰Œ’‘‘ƒˆ¤„ˆ”…ˆ’‘€›|˜‹Œ˜Uy‚x]^™’^`s†•Ž‘ˆƒ›§n€{‹‚¾uŠp—vƒv„Y|–‹hƒ€ƒ—‚v‡c†„‡™‰p|—ygy¡yÂ’…‘¢s‚…ƒ|€›zx„…n¦‰Œoš“~„v‹vtxp‘‡u–¸€f†{‰„d{l•stq‹‰€|nžoŒ‚„sŒyŽz“{†n˜wyŸ“np”yrŒiœ—…~bd“vtx’€v‡•z†€’ˆpz}zškŽ|˜¿¯˜Šp€œyqƒ™“‡~‹^vŽ„ª„‡}‡xŸ—l‹’ˆv†o€„zx}‰¼q{–¦p™š˜y—~ivޱ‡•zŒ‡†Ž†ŠŽ•‰ƒœ‰yš‡lr–„ˆ—‚ˆ„~’‹”†ƒ‰|„‹~…Ÿ ‚†}–|u‰‹“¡t”Ÿ~€{”€…‚‘€Œ{|}І™‹…‡ns€‰†z‹Œ{…zƒ•~‰€ˆz„ƒŒkŽ—ˆ‡‡yq€€uƒ’hŽ~†yŒ‹{n‡‰~˜t†sŒƒ€€t„q|Š~‹|„‚‡šƒ‚Š€†’ˆˆ€ƒƒ’……{–‹‡ˆˆw‹}Œ‘‚sƒ„}•Žކy~{xŒŒ|‡‹‡„ƒŠz„zˆ„zŒzŽ‹…xƒƒ†‹’…Œ††‘j~~x…‰ƒŠm‰Š‰‘–ƒ‘€®š„ˆ„–†uŽ‹t{„ž…zu–ˆ˜—„“ƒ|‚›ˆ‹…—ˆ†‡Š™t”–‡„ŒŽl‰†——w{‹ž““‚Œ–†‚p€§ƒqƒ}„‰ŽdŒ†…‚Žtw›Œ}r†‰‡{‡€ŽŽ˜—~…Š}uŽ“”w•†‹Ÿ€‹‚ˆvz‹s‚‚“Š‚‚“‚’t¤ƒ‡‚{„š‡€„™wzžx‰‡…ty††“t•…•‘Ÿ}|yo‘Œ“•‰”„po}‡{uƒz{szŒŠ™ƒ‹‰•y‚£’x……Ž…„’rz”‘zƒ—™ƒ‹ny€‰wƒ‰ x„˜Ž‹y‚‹•‰„œ„ˆ|”Ÿ„rƒƒ‹…“’†”{y›}†‡€…˜‹tw|ŠŒ–…{— „„‘„’Œ’Œ‡‰Œ‡‚‹Ž•‡‰Œ‰”ކ…–u…‚ŽŒ‚Žš–Š„ˆ…ŒŒŽ…›Šƒ‰„‡„–Œ‹‘‰…‹‘•††‡€€‹†•€ˆ—…›‘…‰„ˆ’Œ—•‹ŽŠ‹~Œ‡”‘‰–‡“‘ƒƒ™ŽˆŠ˜‰†ˆ‰Ž‘ŽŽŠŒ—“‰Š‘ˆŠ‰™‹’—ˆ“‘’Ž‘‰‡„‡Œ—v“…†‹…’Š–’ˆŠ”…‹‡–ƒ‰…‹‘‰•Žˆˆ“Š‘‹‘Š{‚ˆˆ„‡’‹‘‹{ˆ–ˆ‘…•–ƒt’‹oŠŠŽŽ„”‚‰‹‰•‡}Œ‰††Œ‘›Œ„Œˆ‰Ž†Šƒ†Œ€ŒŽ„‘”tz¡‹}’‘‡“•ˆ“‡‰“ŽŽ‹œŽ‹“’–Ž‹Œ‚†’މ…ƒŠ’‘‰pŒ†Ž|Œ‘ЇˆˆŒ•‹‚Œ˜‹†ƒŠ‹˜‹ŽŠˆŽŒ‹‡‡‘‹”ŠŽ…Œƒ‰’Ž‹’†‚‰Œ‰’ŒŽŠŒ…ŒŒŒƒŠŽ‰…Š’•”ŽŽˆŒ“žŒƒx•œ”†ˆ…‡‡‡Œ‹’†‹”‰‰Š•Š‹•‹‡’ŽŠ„‘•Œ‘…Š›–‚{v‹„†Ž„‹~ˆŽƒŽ‰„—˜xŒ…n‡”Ž‘…††•‡~‡“–ˆw‹‘‡‹•Ž–œŽ††‚“””ˆ…Œ‡Ž•…™vz¦†Œ”‰‘ŒŽ„“ƒ”ŠŒ…šŽ‘Œ”›Ž™Š€‘†„yŒ˜‘‹q”}‡|Š’’„ˆ‡‘…‹ŒŸŽ‰Š‹|‰”‰Š‹‚‡Š‡…•Œ’Š‘‹‘}…“Œ”‹ƒŒŠƒ–‹ŠŽŒŠ‹Œ‰’…€‹…ˆŽ‘œ“–‘‡‹Œ‘‹Œ‰¤„„{’™„‡Š…„ˆ‡‹’ˆŒ’ŒŒ˜ŽŽ–†„‹Ž”’‰„‘“ŒŽ‰„€Œ}ŠŽŽŒŠxƒ•v~Œ…’‹x“•}y‡‰{o€€Œ…Œ…•Œ•€”‹ŠŽŽ‹‘’’˜ŠŽŸ‡ƒŠƒ…“…‹Š”Œ’†•‹•w}‰Œ‚‘†ŒŽŠŒ—‚—‚‰™šŒ™‡”{†‰‹Š…––‰n”……}‚“‰Š„Š}„“„‘‘Ї†ŽŒ‘‘‹„…†‹Šˆ”‰–†‡Ž†ˆ’‹“•‹‹‡‚‡’’Œ”…Œ„މ‹ˆŽ†‚‹“‘Š“‹ˆ‰…‡Œ‰Ž–‘†z™•‘ˆ‹‹‡‹ƒ€‡Ž‹“’‹Œ•Ž‘‘…ƒ~‡‘Œ˜•˜„‘“‹‹”‡ŠŒz’yŽ‹‡}މ~|†xŽ……†yuŽw†ŒŒ€|ƒn€‡–‡ƒ„‰†‡v†“‰…nus€“¢~‰‹~…x‡‰y}†ƒ}ƒ‹~ƒyqz‚Ž…‹Œr}†‡Œ‹qˆ|‡xƒ€ˆ™x|ƒ€†‚|~„…v‹€~’v‘‘…ƒˆˆ€uo‚“‰~ˆ‚„ˆ‘Œ„ytyŠ}‡‹—ˆŠ†ˆ}†t†}ƒ‰Ž‰’„‹|ˆ†‡‰‚€ƒŽ†€x}‘zv‰€z†|‰}€v…u‰ƒ„~†‡„r†}ƒ{vˆ|‚…~z~rƒ”„xŠmŽ€††ˆ€z{‚ˆ˜t‹u‡…€ƒuwŒŠ{ Š}›‡‚„~|s‰€|ˆmu˜ˆ“~‰…o‘‡Œ~|iƒrv“~„™‡‘p†…p~‚o‡|‚†z…‘~‰xwq}‡‹‰‡„pz˜‚x{†rŽz‚ˆp¤“…‰{ŽpzŒ}|w–sŽ}Š•n‡“‚†“Šˆ„‡yu†~€Œ€‚{€zŸ˜~Š€~€|z…“‚‡ˆ‚wˆ|š†„tƒ‚ˆ…y…~{„~}Ž~~šŽ{~zwzˆ~ƒ}t„yˆ†~„†uqxŠ…ŽŽ†{pŒtq’}€~Š‚|vŒy„‹ƒŠ†€€}s†…’~‰„ˆ‘ˆz~‘Š‘~|‹•ˆŠ‰Ž”Œ†™Ž„‰—~‚Šu}‹‰sŽ“†™uˆ’ˆ‹‚—u‘ƒ–|ž•ŽŒŽƒŠ‰}ƒŒˆ”’‹‡ŒœmЉ‰Žƒ’ˆŒ›|ƒ|ˆŠ†“}›Œˆ{|“~•‡ŽŠˆ„„‹z‹…‘Œ‚‡—ˆ…™…Š””‘Œ¡ƒ›†††ˆˆ‡‚†‹‡|™Œ‡Š€”ŒŠ‹’–’Šœ˜z‚’“„ƒ‡†€˜…‚Š“‰“‘Š‡Žˆ…ˆŽˆƒ‘‰‘€~y”’›~‚ŠŒ‡ˆ”ŽŽ‡‹‡–•Œ‰€‡‹™†Ž…ˆ~ˆ‡Š‰‹ŠŒ}ˆ}ŽƒŒ|}z~‚ŒyŠ~‚w†zx}Š‹„‰x‚އޑ‰‹“‡zˆk…{ƒ…oŠ€t„ˆrŒt‰ˆ‘pxˆ…Žy„‹‰Œ”‚h}“¢ƒƒ€x’‡ut‰|…~~‰€’˜~Œr†…{Žz|‚„ws}‹{wŠ…€…ŽŠ…~‚”x~sŒ~‚‹ƒŠ‡‚„ˆ‡†€Žtv}‡…ƒ}Ž|‚|…ƒ¡ƒ‡ŽŠŽ…€~y‚…“‰†ƒt†“}‚“€{‚}…~ˆ€………†yy†Š†Œ“ˆ}~„Ї„ˆzŠ‹{ƒ|”wƒ‹y‘ƒ‡~y‚n•‡ŒŒ‚Œ’Œ‘•’–…’‰|•”‰–’™—„|ƒ‰nŠ„‹„ƒ•‹„ƒ‘„„z~‰‘”Š—ŽŽ—‡•ˆŽƒ†“‘˜‰Œ‹}Š“{{o–ƒŽ”ˆ~„–‹˜•†”oŽ’‰‹—|™ˆ‘”~‹€ŽŒ•ƒq˜‚Œ’~‰‘~†„|Ž…˜„ˆ‰‹€‰‘Ž–’‘‹‰ŽŒŒˆ…‹‡†…„Œ‹‹””‹‰‰…‘‘‡ˆŽŽˆˆ’—˜~‡‘Š„••‰“•‡”“…‡…–ŽŒy‹Šƒˆ‡‡…‰‹‘“†‚Š“‚Œ~Œ˜„‡˜Š“‚ˆŒ€‰}ˆuŒ‹Œ}‰{ŽŽ†“ƒ‘•|zƒ‰ƒnƒŽŠ…ЇГ‹’††“‡„Œ‹ˆŽ–™‹ŠžˆŒˆŽ…‹‘…‹‡ŒŽŠ‰•yzŒŒ‚Ž’‡Š’އ–‰˜ƒŽˆ–—Ž–‚Š‘ŠŠ„„‹“•Œr˜‚Š~‹’‹ˆŒ‡‡”Šœ†Š‡…ŠŽ‘ŒŒˆŠ†‡Š‡”‹—†Š‹ƒ„Ž‹“‘ƒ‰„‹‘ŒŠ’†Š‡Œ†…ƒ„‡Ž’š“–ŒŒˆ‹ŒŒ†›Š‡z‘“ŒŒ‰‰Š…‰„ˆ‘‰’”‰‹Ž’’““„ˆŒ”Œ’”ƒ‘ŒˆŽŽŠƒsm|’‰’vx|q€Œw|ƒs†ˆz•u~|‡uu~„{}“v…sƒ†r|ˆwppt„€ˆ‰†…€tw†ˆ‰„†€i…u„‘…‹zˆpqu}~x|s…ttˆ~{uv~}…|……x‹vy{uy€yˆ†}‹‰vl~„ˆts”w“„}††‹t‚—ƒ‚ƒ†m‚‡kxqm„uv‚w~Š{ƒ‡‹mx‡}ƒŒqŒ|‚‚pvwz€lcn‡uo}~…‰„~u~w€{‚}‰p|€z‰z‚†‡x‡|||}~„”}•~z†s„{nŒqƒ}„}†t|Œˆv…Œx‚u€z…|ƒ~Œ‚v„ˆƒŠ‹ˆ†‹z…to‚~…~gu—€†€š…„x€—{wz}‹Ž…€Œƒ‹ˆ~˜…~vƒ‡}i•„}ˆ‹Ž‹ƒ{€‰‹ƒ~}”ˆŽ˜nz–ƒ~„w‰|ƒk„Žx…–r‰††ŸyˆŒ’Š‹„}‰q€ˆw{x€{“ˆˆŠf‡o‚Œ}ˆ˜ƒ~‚…pu‡p…w…‡…||Ÿ|Š~‡„’ˆ~„€y‚ƒŽ†ˆŽ‚ŠŽ‹‡sŒŒ‡–}†{u{Ž„ŽŠŽ…zsxv‰g†…ƒ}€vy|Š‹{†zž‹Œ‰„Ž{}…Š„ˆ’x‚‰ƒ‹“ƒtœ‚w|}††Št‰Š‰‘•Š‹‚|•™€Œ„‹„Ž–‰‘o|ˆzy”Š˜y—œ™Žt•š‰ŒnŠ}s‚ˆ[{xˆ~‚“‰™’•ŽŽ–x‚š™z€Šƒ——†Ž˜zšs‚‰‘ˆŽ‰„ŒˆwŠ—|…‡‘t‡•†rŠŽ—‚t‘‘‚–‡ˆ}…†‹’‰Œ”ŽŠ‚‘ƒ‡‡ƒ›~‹r’ŠŒz™‡ŠšŒ‚™ƒŠš™†’ˆŒ”y‚“Ÿ‘…“‹ˆ‰…y„‹–’wxŠ—†x†„Š€˜Ž‹‡ŒŠŽ…‘‘Š„„Ž–™€† Šˆ’‡‰“|t‹Ž~wvytxˆzw”‡ˆ|tz}„‚€y~o‚td‹€ƒ}‹zt~{~s‹€ƒŽ}‚}ƒu|{…€{ŒˆŒ€w{€’…„u„ty|tnˆ…‰‡st|uv„„oy‚x€y…{‹w…‚o”šu€†sv–˜cnt€z„yr‚Œ{px‚‰ˆt~s„z‹p€}’}z„‡hsx’ƒ}w„wt‚vty‚…qxux}w–€po}„|}vs‡rƒƒwƒ‚Œ…‡•|kp€…tƒ„~wyq~ƒ~‚zv‰o|ŽŽzzgŒˆp€vos~t‚uŽo{„…Š~b~ˆw†xe†bˆŠ‘Š€‘“”ƒƒy€‰…—†ƒ€š‡{™Šˆ‰ˆ‘™s…’{|ˆ…zŒ™ŽŠrˆš‹•†{”…wz’|•ŽŒ……ƒ‡…ƒŠ‡”ˆ…“‹‰…šn‡ƒˆ‹™…Œ“’•{{rƒ‰…’ƒ›Š™”z‘š‘›Š‚‹Œ‡†ŠˆŠ…Œ’}”yŠ‘„‡–ЋЙ„–ŽŠš„“‡„ƒ‹††ŠŽˆv’ƒ”€ˆ”‹Š‹”™”’™Ž—‚“Œ“•ŽŽŽ’…ŠŸ‹ƒ¥ŠŠŽ‰|“˜„{Š™††y‘–ƒ|‰~–”•‰ƒ‹Ž†™ŒŠ˜|•‹†“ƒ†‚‹ˆ†ˆŒ™Œ†”xˆ‰…‹“ŠŠ“‰‡‰œn•|‚‡}‡{‡Ž€—ˆsrЄВ‰•‡ˆ‰ƒ„’Œxˆ„„pŒ„y†Ž‘q{‡~„|…†ƒŠŽ†‚‰…ŒŒ–„}op’Œ—vŒ‡“€ŒqŒ}“‰|~€ŽŒ€Œ„}ƒo‡‡„}x{ˆw‡‰ww‹„€{~y€ˆ†Œ‚‹{‡‡‰‚–‚„wކ†x”yyˆˆ…Œ~…€—v©‡ˆ~—~‡~…•}v€އДw‡†ƒy‡~ƒ…~Ž‘x˜ƒ„|…ŒŒˆœ”|Ž…„‰…z‰¢…Šƒ|„†ˆy|…k‡ˆ…‡o”{‡{•‡ˆ‰~xˆ•Žw…‘|t‘Žˆ”އ‘•…|Œ„„oІ’ƒ•Іˆ’‡‹‹ˆ‰Œ—ŠŠ–‡‘Ÿ‘ƒ„‰t‚‡‰Œ‹Œ’ˆ‡Ž’‚|ˆŒ‹’ˆŠ’އ„œ‡Ž˜Œˆ›‹ŽŒ–‹ž€‘{Œ“Œ‰…‰’yœˆ‡€…‹ƒƒ€‡•Šˆ›‚Љ†‰Šˆ’‹ƒ‰‹‹‰ˆŽ‚’Љ‰~ŽŽŒ•—Ž…Š€‘‰’‘ŒŒ“ˆˆ…ŠŽŠ†‹‚ƒŠ“’‘†Œ‚Š‘…ˆŽŽ}‘ˆŒ‹‰‹‡…ˆ“ˆ‹‹ŽŒ†ˆ„ƒ…“‰“†”ˆˆ–ˆ~…‰†„’‚‹†Ž†‰‹Š‡•—‰ˆ‰‡”~}†”ˆ……’z}||„‹†Ÿ•Žˆ†y†—Š‘vuŽ•‹Œ•v‰Žs…‹†n†Š€†ˆ“‘‚‰”‘ŒŽ‘Œ}ˆ“Šƒƒ••†p‡‹‘ކ•’Љˆ•{’‰…І’˜’’’‹Œ–’sŽŒ€Œ–‰‰Š‰‹•Œ‹†ƒ†Š‘…ˆŒŽ¸†Š†…”•Ž‘•“¢“Š‹“’•„”ŒŽ‡‘Ž~„–Ÿˆ””“†Ž‡‚ˆ”|‰Ž–ƒ„‰Œ™’€‹‰¢’…“„˜•’˜”ˆ“‰ˆ‹Œvˆˆ…Œ}…š€ˆˆŒw˜ƒ}pk|{sƒ{„„~†z{ŒƒzŽ~€~}|І}x‹†|~uƒƒ…‰ˆxƒx…‡yoœˆ………zm‹zn„…—……€v‹‚yŒkx}‚…„y‚z„„}‰|{i~ˆ‡Œ…n‚ƒ€y{‹u{‹|u‘“‰…uŽsyz…}rv†’s†sw…”l„‰ˆ„ˆƒ‚~|n„uŒz}†~…{‹yz„r~xvtv…‚Žr„—ƒ…{|„ƒ˜€yzˆ…„p„ƒˆ€|z‰‚{…‰{„vxxƒ‰x€€z‹„Šv{y„ƒloŠˆ~…†|zxzxz‰pƒy†ƒywˆ~„|‘~†…€}ƒy‡„‹€ˆ†•s•‚‘…‘‹„‡‚ƒŽv€|‹›‡rr„~Œ•‚Šˆƒ“†”‡‹Œ†z‚’ЇŒŒwy‰k‘‰„ƒq€€†’Œ{€Œ€ŠˆŽ~†•‚p{‰’†‰ˆx…„ƒŠ‡y~~‰r‰ˆˆˆ†v‘„…ŽŽ~ŠŠuˆ~ހޓƒ†€xy|p†}‡‰…~‹~…ˆ‘mz„y|†ƒˆ„‹•v‚ˆ”}…v‹ƒ’†‘˜”†…Š‚‰ƒƒ„yƒƒŒ|‹Š{Œƒz‹wŒ†Š†‚†vŒz|•ƒ‘v‚…„‰‰†Œ~‡…‚‚„ƒƒyŠwŠŠ|Žk~†‰‚‰‚•k‚˜Ž‚‰‹‚‘€r‘Œsvƒƒ‡ƒgp~†~›…€‚Ž”™}Š‚u†‚v“‡Š‰{‹Ž–†{Ž”l—‡—wz{{wކ‡‹’‚ƒ„—І’j}‡~‚ˆ{€‹…tš‹‡všŒvƒ•{„|“ˆŠ€Œyu†Šm|“‰uƒ‚ˆ}‚n„ŽŒ˜fŽ…{‡p‚Œu‚ml…{{„y‰„’u‚…‰}|‡…yw†z”††z€„Œ~Š‚…‹~m‰’‘†ƒŠyˆkƒƒŠŠ‹€‘ƒ~k}y„„„y„‹’k…~ŒŒ‡{’–“„…’¡t{|‰}Ž…ƒr‡ŽŠ”’‹—s–Œ‡’ƒŒ†Ž„†•|t}€‰u„sm‡„‹˜~„y}‚†—ˆ‡…Œ‡vˆ’Šxˆ‰u„{‹ŒlŒ‹ƒ€“……ˆ††Šy„{Š‹†•‡‰kwŽ”Œ}„~~‹…‹‰‰x|Œ‹Žv‹‰Š“‰}“†Œ†…ˆ‡u~xˆ„„ƒ‚„‘ŽŠ†…‡w‡‰m~Š~‹Šz‚}„‰Ž’l~‡†{€„‡zŠ~Šˆ„‚~—‚z‰…’ˆ’ƒŠ‚ˆƒ‹—‡†ƒ……w‹{s‡‚„|ˆx†xƒƒ‘ˆ†‚w€x‹}‡……Œy‡€€‹ŽŒ•vŒ…„…‡~s}l{Œ„qk„ŽŠ…~…Œr•”•‚Œ‚…Šƒoˆuzˆ‹„poŒ‹—ˆ}€’ƒ{œƒ|†x—„x‚‘‡…Žv™„~”‡—o’€‚Ž“}‹‘†}†„‡Š‹†…’“rz€Š‡{‡ŠŽw{’€p†‰‘ƒ††’}ˆ…„ƒ‘‡v……Ž‹Š~ƒƒ|ƒ‡k|~އ‰ƒ„ˆ‹n†‚v‚w…†ކ†w•Š•ƒ‚t‡~ˆŠ“‚ŠzˆŒ}†…Œ…„‚€ˆ}ˆŽ’…€‰|‡†‚Œ…‚‚‡y}wˆˆxˆ‡vƒ†ŠŽ‡‡ŒŽˆŠ„‡}t„‹~Œkzˆ‹‚„ƒŽy‡}”Œ‡|o†‰v€ˆŠ…xnŸ{…‘„‰‚v†…ƒ–†z‰‡‚€u…z”Œ‰Šp‹}z…žyކ†Š†‹‡”}€Œ†|‹‰„’Šjt{‰‚~˜v|’Š•‰uŒЉ{‘w‘‡Š€ƒ‚o~ƒ‚‹xx‘ˆ~‘t„“™„‹‡’~†‡t{‚†~ˆ‚‰ˆ~ˆ‰}x|ŒˆŽx‹‹‡}‹…~‡tŽx‚‚‰Œ‰‘Šz‡‚„‰ˆ„ƒƒƒˆz‡‚Žy’‡†p…y†ƒŠ‡}ƒ€Š…††”y}v{~u|ˆ„†…ˆxvxyv‡…x…y‰i‰‰‡tƒ’z{ˆ‰‹‡ˆˆ“ˆ—~–‰‹„š€|“‹o–‘ˆ‘Žˆ’z‹‘”—‰v‰{†‰”’˜›ŒŒ‚‹˜…‰›‰˜’‚„‹ƒ‘„Š‘”vz‹Œz•’€‘”Ž„•“Œ“†‹žŽŒ•‘”‘Œ~€–ƒŒŒ…‰”„w“†ŽŠ†Ž’…‚~ŽŠ‰Œœ‰œ‡ŒŒŽ–Š•ˆŒ‹‡€Ž†‰Ž‰xƒ™‰‡™…‹€Œ‰Œ“‰Š‘Š‡ŠŽ‘ˆŽz„ЉВ‹Œ–ŒˆŽ’Ž…‹Ž—‡„Œz•“~‰‡ˆ†‰Ž„’’ŠŠŠ–€Ž—”‰€‹Š”’ˆ‡‘™ŒŒ„Žz‰“Œ…}„‰•y‚‘‘„”‰€Ž‹Šƒ†•€‹Ž…‚‹{{ws}ˆŒ‰‰”•–¦€—‰’ˆu“š”{”‡‹‚ƒŽƒ…ƒ˜†}‘†‡Ž—“Œu‰’—„y†ˆ’}‡”ŒqŒ}…„—Š–‰—„–‰‚••Šˆˆ‡Š”™ˆƒ•„‡y‚ˆ‹‚˜‡‚•|‹zˆ‰Š–‘‘ˆŒŽˆ†„“‘›ƒ€Šqˆ•Žˆˆ‹’ˆ˜Œ‘‘‹ˆ‰ˆŠˆ‚Œ”Š”†‹„‰Œ„‰…‰™…‚‚†Š}‹‡•Ž”„€‘’‘Žx‹ˆŒŒ‘‘Š‹ƒ‹Š‹ƒ”‰…”‹Ž‚‰ƒ‡Žˆ‰qvw}†~kq}|~”|t„z„”wy{yƒwc€v~ƒ||~vqŒ‚Šzxyyrwnƒ~|‰w|zŽ|’yx}ƒ€{‚wr†{Œ€wh{{x}Š}my~w~w|™m†yŽwi‰ŠxtqŒu„ry~ƒ‹y{tƒzoz|ƒœ~y…~ƒv}z„tvxw€‹‡u‚zz‡{~w„|~€xvqxnz{€tx~}‚xvvzu…€s}|~„‚‹€xt}}wnxˆ}~z…{Œ‚„z€“‹„†€€rz‚jƒo|‚x‡z€szx‚‰‚‚z€ˆ}s‡|‡|ƒ…Œ…lމŽv–”—‘ŒˆŽŠ¡”ƒ•”’ŠŒŠˆ’r€|z•ƒŠŠ–’ƒŒp”ˆ„•œŒ{’v‘ˆ›}ˆ…†~ˆ”¢†•“ŽŠ‹œq…‡y‘–‡‹ ~Œx„ˆ‡~‘Œ…‹z‚“xމЅ‡†v‰ˆ“–†›…}‘y—‡ˆŠŒ…ˆ‰–†”ŽŠ‡€‚…{ˆŽ‚{‹ˆ”‹„Œ—Š‘žŽŸŠœ”“—}“’ˆŒŠ„›“‰Œ’‰ŠŒ’‡ˆ‰–†“‘€†“‡}‰u‡„‰Š•’ˆŽˆ‘”ƒ”{’“†“…†ˆ’Œƒˆ‡‰z—n~Œ‹“…Š—˜‹”tƒš…Œ†‹“‹‘Š‘”„Ž’x{‡z}…‰‹ˆ“˜€js…Ž“wp…”†Š‰Žg{|sЇ|‰Ž’†wƒœ‹„‹„’y„’›Ž•~‚‡˜Œz•ˆ•ˆyŒŽˆœ‘‡‰ŽŠ‰{‰“¥Œ~•‡z€—œŠv‹—ˆ™ˆƒ„‹‡‹‰‚œ‡—„˜ˆ|ˆœŠ‡„ŒŠŠx•“‡‹ˆ’–’…‰Œ•‹™“‘ŽƒƒŒœ‡‹Œ’‘‰‚‡‘”›˜‰ŽŒ‰‰’†Š{•–Œ~–†ŽŒ‘”‰Œ“ŠŽ‡Š‡‘Œ†‰„›ˆ‰Š…‰‘’€Œ†ˆqŠ€‚…}‰Š}tƒzšƒ…˜†~„sz„ƒˆ}‡svƒ…ŽŠ‚}•ƒ†‚n~ˆƒ„ƒl…rs…Š‚Šzˆ‚w€ƒt}Ž‹‰€ƒ{{ƒ‰‰’„‡vs|€ˆ—†s~ƒ|yŒuww†~‰r{„|Žz€‚vx˜“pˆŒˆŠŒr„xŠƒ{ž……~~€€ƒ€‹ƒ‘}x}…¢…‰zy‡|†‹†‘sˆ‰ƒyzr€{wˆ†‡‹€{~rŠ€~‹˜„v‚˜‘~€|ˆ‚€~ƒ‡…‰‡zƒˆ…{ˆ€~~…Švz‚ˆ‘„}‹—ˆˆ…’y„Œ}w‰„}ƒ†Žšu”˜™‘‹‡Œ„†Ž“}s€}€Œrq„„ŠŒ–„ˆ~“}Œ’ˆˆ…y‡†€‡†‰w‚{‰ŽŒhŒ‡{‡}}‹…Œ„x|‡ˆ~™šˆmw’ƒ„Œy€‰|–ƒ~xƒ‹…‰s†‡‰Š—‰{މ‹€†€w‘‡Š„z}ƒˆ‚‰ˆvt…zv„…€‚Ž‹k„‚}‰‡”zŒ‹x‚‡~“„v‹‰ˆ„Ž’‡‡‚†„‚”„~ŠŠx†|ˆ‹ƒ{zŒ„uŒˆ‘…€…yzˆ{ƒw†–x‡‰ˆ€‹Š”’xŒ‹†ˆ}t‚m|ŠŒuŒm‘ŠŽ‰‰~z˜„|wŒ€†“–sŠtƒŠpz|˜}|yvŠ‚}žm‚‰Žr^„~‡‰…~rƒÁ…–ކ{…sˆ‚‰‰|ˆtŸ}ˆ•u†’˜€Šˆ€‡yŒ‘„Œ“‹˜‹„‹–Œˆ–{ƒqz¡‰˜š†’~s“z­ˆˆ–€ƒ•Œ‡‘ƒŒ€Œƒ~‘¡…tƒ•£„Ž{‡†Ž†Ž|o~fztxƒ‰Ž€‰‚”‘Œ˜†z†‹Ž˜‰}“u…wˆ•w„’€wu‚„w…ƒ†ŽŠ„vyy‹ƒ}~€‚wˆƒ„†‡ˆ˜„ˆx€l‘Œšˆ{pŸl…y—‚”ˆ‚t—€sž€‚ygŽ“v}„‘¡‡p€“‡w…‹“™ƒu‹{‹•–¡x”Љ… †|{‰lvŽn~’‹v‰ƒ†…ŒqŒ~‹–‰w}“w†Œ‰‹“™„‘“…mzuŸs‚nˆŽ…ƒŠ‹l~~‹‘†›…‘~“…ƒv’ƒ‡szp¢}—ˆ„—“ š~—‹‹~€–xr‹‘‚{‰‰Ž~z‹…~‘~o•„““€‚ލ•‘˜Ž‡’œ•„…‘usoˆyq‚˜„ŠŠŠ‡xz”€Š‘±|ƒ‡‹ ‰“‹†™ˆ…}ˆwš‡„€|—x~sŒmƒ˜‰ˆsއ“ŠŽ”ˆy‰˜€˜‡„ˆ~€“ƒˆ}‚v‚‚†‡…ltƒ€ƒ’…†Š”€Ž„‡‰…‰z”Ž‹ˆŒ”€€†‰Šnš‹|Œ‰†|€‹ˆ†}‹{†~Œ›t}Œ“sŠ|……†ƒ’v{|–ˆƒwŒŠ‹Œ‚~”ŽŒ•†z{†z„Ž‹€ŒƒŠ„‰‚ƒv†zpsnŠ…zy‡‚Œs~ŒŽ€|„ŒŽw‹•}ƒŠ‰|r‚}{~€…’…‹…ˆ†Œ‡‘„y€ˆ„‚މ‡’…†tvvކŒ—|ƒg€y€Ž…ނЄ”€‰”ƒˆ{††Š‹|z‚~‡„Œ†‚s‰‰‚……‡—|’‰Š Ž‰‰ŠŒƒ|…s‚’“ƒosŒ‹–‚vŽ~ƒ™„…‰ƒ…yŠƒ’€†ˆv•ƒz†”‘žl‹•…|‘ˆŠ‰‰Žƒ}ƒŒ‡…•‰Œpu}Ž…‚“|„‚~„†w~‰t‰ˆ{’†‰…}‹‡|†‚v‰‘‹ƒŠzŽ“„„„w„sw‚†‹ƒ„ˆŠ{‡—u‰‹}z}~Œ€’‚ŒŽs{‚‘~„yŽƒ‡„”Œ†‹‘‹……„‚…‹†ƒ†~„Œ‚ˆŠ{‰‡{„‰‚‹‰‰|Š{{Ž€–|Žˆ„wˆ…ŠŽyˆŠ‡„Š„xrztƒŒ{ŠvŽj‡ƒ„z‹‚o‘…jqwy…sn„{w‰ŒwŒ‹’tz‰‘}†|{}†}oxˆ}|{€zˆt€—pf{myd‡ˆuyin|g”on{vf‹†ˆpk}oxzw~šyšv“b…‡vs‡}€~zp{y……—v‡‹‘mXЇ~xw`‰y‚z”—r‚u„o„p€Š†nœŠu‰z‰q|yxƒr„ztr‚x~n‡ˆ€‚†…„…†‚~nƒ‚w’|s…€|pwxu}€„u}~|swy‹~x€t‰‡~†€“yw}„‰z‡}Žw…z‹t‚pˆ€‘lz{~x~~zxzpv|‡Ž†|h~{ˆ‰m}Œt’’‹€ŒuŽ”‰…‡‘ˆ{Œ‘†Ž‘†—™ƒ{„m”•ГБ…’†“Š”‘ˆuŠ…Š”“’Œ›Œ•”•‡‘Œˆ…ˆƒ•†‘wzЀޔ‡‰Š–Œ‰•‹††›‘Š’’—}†’…Œ“ˆŒ‡‰“‰o˜€}‰•„ˆ‹‡Œ‡‹›‰•ˆ‡‹€‹”ŽŽ‰‹ŽŠŒ‚–‹‹‰Œ„ŒƒŒ‘‹””‰Š€‹Ž‡“ŽŠŒ‰Š’z{Љ‰œ‘•…“’Ї‰š|ˆ‰y›‹‡‡‰‡ƒ†ˆŒ“Œ‹‘’‡†ˆ“Š’‹Œ€—„’”„’–…‹ˆˆ”™…‰‡q—Ž‘}x‡{Œ‹”‹‡Š˜~€†‰‹z‘’„‚‘…Œ€•’މ|}~ˆ„“¢‰€’Œ›„Ž”‰…Šˆ—…Œ€”‡ƒ““ˆ”~€…‰“‘‡ˆœ•‰y‡†…Ž’……Œ„€Ž‰–…‚’‘ƒs‘Œ™•‚‰•‰‚Ž‹œ€ŠŒ‘œŽ„ˆ‡‰Ž–ƒŽ‰‰ŽŽ}’’˜ˆƒ’Œ‡Š‹ŠŒ“ŠŒ•’š‹•ŽŽ’‘”…‹‡ŠŽ‹š“†‘Ž–—…”ˆ‘‘€™u—І—‰‰€‰‘†˜‘ˆŽ€‘‘ˆ•„‰ƒ„’š‡‰†‘”Œ•—€‘ƒŒŠ‹‹{‰’‡†‘…†~“™{{–Šn“ˆ‹‰ƒŒ‹”‹‘ˆ•’‹ƒŠ‹Š”Ž—žŒ‡˜}‡„ŽŽˆ†„‘‰“Ž—“–v{‰Š’”…“Іޓ†Ž–‹šƒ™’™‹™‹{ˆ’‹†{ˆ™’Œo–€‚‹{ƒ’†€„€‡“ˆ‰Ÿ•Œƒ…•‹Šˆ~ˆ’…ˆ•ˆ’†‘Ž”‡‰€‚•‘–‹Œˆ…‚“Œ‘“އ…†ˆŒ‡‘‹†€…‘ŽŽ‰†Œˆ’•‡Œz••‘…Œ‹…Љ†‘Œ‘‰’‹Ž’‡Š„ƒ€‚Žš“ƒ”‹Žƒx…w˜”ƒƒŠ“…uyŠu…‡˜{t†€‡‡‚z‡{‰‚’ˆyˆ‰€xŒ}‘Ž”…oˆ~y…ŠŒ”vw„mŠ~tŒ†€‰†‡†xŽ€‰o~‹†~Š’r†…‚‹‚‚r€…†wŠ~“•š|‘‚…’„‡u…s‹†Šƒ’r“‚†’†~„sj‰yŒ‹††ŠŠ…Š”y}w…„‡Œ‰–„†…w…}„ˆ‰Š‘–‚}Š’‚“|†…ŒŠ‡Žx’xƒ„€}†„„}ˆ€}„}‰’zˆ|…z€…{‹ˆŠ†z‚Œz~…Œvˆƒ{ƒ‡n|…‚Šƒ††wˆ„‰Œ‰„‡Ž’™|ˆ–‡Ž€Œ™•}‰“‡†‡‰…•~vƒ‹‹}›‘w‘އ‘ˆ‚•™†Œ‰’}‰’Œ‹|‹ˆ‚|ˆŽˆ—’“‘“‡}‹™wІ”’…‡’–x€‚Œˆ‰ƒ–Œˆœ‚Œ‰€}‘ЇІ‹‘‘ˆ}‡”Žz”ƒ‡•†šŠ”‰‹‚‰ˆ“’”ˆŒ…ƒ…‹ƒŒˆ‡Œ‹Ž‡|’˜ˆŠ””Œ˜Š”–ƒ†ŽŒ‹Š†z†ˆ–Š•“އ‘ˆ‰‹ˆ„‘‰†‡„‰•ˆ„w—Š‹}І’ˆŒ’‰Ž…‹“ŠŠŒ–‡„›‚‡”Ž…‡ˆŠ‡}ˆ}…Ž‹ˆ‘y{–‰•‘…šœ}}„ˆmˆŠ‡„Žƒˆ’Š’‚•މ†“‹Ž•’’™‹‰”ŒŠ€ŠŠƒ“‰…’Š’…˜ƒ“z{“…’•‚ˆ“„›ˆ›Žˆšƒ’ŸŽ†‹“––„Ž’‚ˆ”{އˆŠŠ—ˆs›…ˆ~‘‡ƒyŠŒ™‹‡„‡‰Ž‘”‹‰‡‡…ˆ†“Ž“‡Š„‡„Ž„‘“Ž”€Š‚‹€’‰Œ‘Š‹†‘‹“…„‰Œ‡Š’“˜‡ŽŠƒŒ‘‘‡“€•ŠˆŽ{Œ‰ŠŒŠŒ‡‰‘‘”•Љ•ŠŒŒ~ŠšŒ˜’‰Œ†Œ„~‚‡yƒg”|‚ƒy™{ˆŠz~‚¢Œzt„|€™˜ƒŽŽ‘uq”{……}|yˆ‹|”Ž~‚ˆ€|ŽŠ¨Ÿ•„u‚Ž˜—}€‰€ƒ‹|€•˜…‹ˆ“Œ–„–ˆŽ~ˆtwq’q’Ž{„‚€ˆy³†­‹„‰˜Š†’Šˆ––„Žˆ’Œ‹‡ˆ…™i€…„”‚ƒ–‚}x‘€ƒ|{xŠ}„uƒƒŽ‹žzˆŠ{…£Šƒu}}‹|}…€z}›‡z€zƒ†ž‚m~‚~†{ˆƒ‡†p†|–ƒ„ŽŽ}ƒ€‚v™‹|s™|€|‰†šŠ…rœ~Œ†–†pŠ”sŽˆœŽƒ‘‰‡Œ€{zt~€„‡unˆ€‹Š˜}‹ƒ|„ƒšŒ‰Š‹ƒs‡‡ˆ‹‹u“„}†—‹”k‘…†‰Ž‘wƒ……†Ž…‹“„Œly„”ƒ€‹|}ƒ‡†~w|އŠt†ŽŠ……’‚‡„ŠŠ~xˆ‡Šƒ†}ˆ‘’†ˆx†‡o~ƒ…Š‹‚…†Œ“p‡†~…„Œ}‚€‘‘‚ƒ‹„‘|‚z…“€ƒ‰‚‰‚†‚†…ˆ‹†‘|‰}ƒ|Œy’‚|„|‹„Ž…z„†}‡……†x‹xvЇ‡’}‰‹…†~…wys„Œx†vŒkŽŠˆ„……c©¯{•œ–˜ŽpzˆŒo~|”‚‘~ºu”œt‰¦—ut—Ž€Œ•p‡ƒ†{…Ц—†{¬‡‚“ƒˆ˜”†q‘jw~qŒ‰£†}ƒ~‡–—›w„˜Ÿ¤®Œz’tŽu†˜~…‰frg|‚™–‹v¤‚•j†Ÿ‰~‰ƒ’Ÿ‰wœ€|…˜‰w~‡–s‚„‚“~lŠ“…zŠ˜xƒ‡|œ†–†‰—ŽŒ‡†‹||™ˆ‘‘‰‰Š–‹|Ž‹„‚„•–ƒ„smˆ…ƒŒŒŠx“–~yy‚ˆ‡‹’€‰n‘“Ž”…’ŸŽ‰‘”™|„”ˆ†‚†ŠrˆŽŒŒ‡Š~‡ž}“k–“І‡‰ŽŒŠ‘ƒ˜ˆ……~‡Žˆ„„Œ‹‡Ž“€‚†{‹…ƒ€Ž‘ˆ„„yŠŠ•~r‹—މŒ‹Œ††v‘~“ˆ‰‡‹‹l“‹•…„wˆ““‹~ƒ‘Œ}ƒx††Œ‹›‘ŒˆŠ‰|“’‡…‘‰Š‚}•£}‰‹†‡›™tŒ‚”˜‰‡„ЉŸ†“…‹Ž”†Œ’† ‰ˆ‹‡‘Œ‰††’‰ˆŒ…•’’ދД‹‹’“Š”ŽŠ‘ŽƒŠ˜Œ‰“‡ŠŠ””€””ƒ“†ŒŽŒ–‹†•‡–‰„Œˆ~Š„ƒ™Š‚‚‰Œ…•Ž‹“ŽŠ‚’v‘‹‹‹‘„{‹†–‚Ž‘{x„Œ…n„‹…ŒˆŒ†Š’ŽŽˆ„’‘‡Žˆ†Š‹”ŽŒ™‹Œ—’……ˆ‰ˆ„Œ‹Œ‡Š‰Œ–yz|Š’‰‹ƒ“–„ˆ–‰|š‘‘‹•“•‹‘€‹’‹ˆ„‡Œ˜”‡t™‚ˆ~ˆ“ƒˆ‹†~‰“Œ‡œ†Š†ˆŠ†’ˆ•Œ‹‡Š‡Ž…“…“ƒ•ŒŒ„†‹•“‘‰‘„…“ŒŒ•އ‰Œ‰‰†„ˆ‘ƒ‰Š–’Ž‹ŽŽŠŒ‰ŽŒŽš†ŠŽz‘“Œˆ‰Š„……‘ˆ‘‘‡‘Š‘~ƒ’†“‹€’Ž…Œ‰“r‡‡”’‹˜”‚’‡˜ˆt}€¡‰tt“„‘†šˆ•zŽˆ”w’ˆ•‹~v‘“‹‚ˆzŽ›˜x”|†w›„–…‡†‰ƒŽ€{ŒŠz€{{šqˆ{Ž‹ŠŠ†‚’‚v‚}‰”„ }‹™~u‰Œ€…ŠjŽ–}‚•Œ‹†€†…|‹o‹w‚•†„‰}rŠƒ‚‰Ž}ŠŒ‚“yzŠ„Ÿ{„}ŒŠŠ††‹ƒ™‹u€ƒ‚y‹q…~……”‹‡~ˆ{sˆ…y„ˆŠ‘~ˆ|„‚|†™……„Œ{„‡‰ƒ‰|‰ˆvŒ~‡Žv†…{‡x„Ž‘„“€’|‡‘ŒŽ‚ˆŒ‡‰‹ˆ€€…xt€|”„kq—…›}„~’}{Ž}Œ‹’…~Ž‘ˆ‰‰‰•…{…†q’‘€€Šƒˆ…ƒŠ~†‰‰ƒ‹ˆ‘‰ŽŒj}†Ž{ˆ~‰†…t†y~x’†z‡‡Ž‡ƒ‡yޔЄƒ‰}ƒ~y„Šxˆ„‰ƒ…‡}w‹‚l…‚„Šzo‚Žo|„{m„…€€Š|‡zŒx—ˆˆ‚ˆ†‡„ŒŒ†€€…‹{†ˆ…ˆ…„ˆŠ…€€‰ƒ‚†•{†z{†ƒ~€Œ’‚‡uƒ‰|ˆ‚‘~‡z~xv~†‚‡‚|ˆŽ’}x‚yy‚ˆ{‰„Œv€ˆŽ•z}…}ƒŠ†Šˆ„“‘Š~šˆˆ‡“œœ}{‰n˜’†“‹†–šŽs‹Ž‚‡’Œ› ‹„‹€ŠŽƒ‡“—Š‚††Œ“‡””ww}˜•~”‹‘ˆ™’†–‡™ŽœŽ‹ŠŒ˜”‘‘ˆ}—~Ž|‡Ž“ˆv˜ƒ‡‹‘˜‰„…Ž€ˆ˜ŽŽ”Œ†Š}Œ‹’ˆ“„|‰Ž‰€‹Š‰ˆ”ƒ‰uŠ—‹ˆœ„€Š‹‰€˜”ˆ’‡ŒŽ‡ˆ‡}‡†‰ˆ‰Œ•“ˆŒŒ“”…––ƒ‡Œz’˜ŽŽ”‰†Š‹ˆ”€‘–Œ‹’‡“˜„„“‰ŠŽŒŽŠ‚Ž{“’—’‡‰Šƒ|‘’‹—~–}x{ˆ†nŠŒ…‰Œ…‡“ŽŠƒ’‹†Š‰†Œ™‘‡–Œ‹’”Š’‰„ƒ‰‘ŽˆŽƒŠƒ‘ˆ‘x{w’€Œ“Š‚‰Ž”˜‹Œ˜‘}…›’Œ‹“‘–|†”„“’‰‡„Ž–‚r›„~Š“|‹Œ‚|Š”Žƒšƒ„…‡‡ˆ“‹”˜ŽŒˆŠŒŠ…“‹‘…•†‰€Ž’Ž””Œ‰ŽŽ‰ŽŠ’‹ˆ‹ŒŒ•€”‰‰ˆ”Ž‘‰’Žˆ…ˆ”…ŽŽ|Ž‘‹‘‡‡Š…„ˆ†Ž““„ŠˆŽ‹’†„ˆ™…‰•ƒ‘Ž€‹‘ƒ~{ryx„z„‡{‡ƒ€y“ƒ|ƒ†‚vƒwv|{}Žƒ~~y‹……ˆ‡{‚‚yˆszu…~}€‡‡“wt}€„ˆ…Ž{}x‡ˆz†…~€‡yw‰~†„|xo{z‡‡Šq€tu…‚ƒ‚w‰€{~‚—yƒ‡†}v…}o|…}rƒ„…‡…|~†‚~z|…z‰–o•‚ywq„yŠ{s„}ƒ„‰|‡w}„{ˆ|‰vz~ƒ†~€t‰€y|…v~~………‚y†‘ˆ‡u€‹|}wv†ƒ€{‚ˆy|€}{€‰…“z‚ws|s„z‡~ƒ‹‚~ƒ…Žz†}†z‰u‚•}Œ•”q„{‚hlru€o}u{}–|ƒ„‹zS|†‰“shp…‰|x|šv~vyˆ‚q‰m}d†€vv}™“tyšdnbŠ{Œz|m™j‰vs~ˆƒŒzn„Š|z€olŠ‹Šv„~n‡d„‰e|z–e~dŽp†xzlmy€s€‰‡‡o”sŒsipzmŽwvožg‚ŒY~eh„‡y”lsoo‡d…‹w\pze“t‰šjy{ƒqxifywnfnŠpxyˆ…€|upp†“w…v|}|‚ƒ‚hw‚}ƒ‹€[”yz~®s~qd}y€|‚yƒƒi‡ƒvvz||€tvzeŽyj}„zŒ“€†v…ˆ…Š‚ƒŽ’Ї•—ŠŒ‰’šŠ{ƒŠŠŒŠŽ|ƒ’‡Œ†Š–Š…tqˆ‚”{‘œŽŽ‚ŒƒvŒ‰Š„ƒ~…ˆ~„ˆ’‰‰ˆŠ•w‡Ž”’ˆ…Ž•‹€Žˆ‘Œ‡’ƒ„†Œ‚ƒ‡ˆ‹…ŒŽˆ~—–Ž„Œƒ†‹˜ƒ”…™Ž‹„Š‹‚“‰™Œ‰ˆ’„‹‹‹„‰Š…‚ƒ™ŠŽ•‹„„•Œ’‡…™‰‡‰Š‡Šƒ”ЇŒ‹„‘‘‹†‘‹Ž•‹’}‰„‹x‘‘‹‰Ž‰‘ƒ…„’’–‹‹‰ƒˆ’ŠˆŒˆ…–ŠŒŽ–…‰“’xwq{zqxxpm……zvzª}wt„mwwxxƒ{y`‡}ˆvy‹|v|g’€wŽ}„t‚tzvr€r‰}dwy{s“tuwx{ƒmwt’ƒ”‡rgwy†‡rso‚xn~”ƒŒm„utŒe{s†y„xuqh|{ˆƒvw‚z}qx~t‚ˆ¢‰‚j}‚}~y~xyw„yq|Ž{‚}{z€ywn|„‰vjwjxvƒopw|~uth…v…ƒ|yˆyvvyymqqƒ|v‡‹|~uzŽ{ˆz€Œx{‰}ov|…†cz‹~pw‰ƒ„up|v€ƒ{‚†}„ˆqz„{|“sˆ”…ƒŒ€†xŠƒ}ƒƒt€~‡Ž‹xyŒ„|’ˆwwކŒ’Šz‰†‚†v‡›’‰‹‰nuy‚‰ˆ—r‚u‡…„t†‰‚Š‘y†ƒƒƒ”‚‰–|ƒmxŒ”‚„“x€Ž‚‡p…|„“x†‹“•‡ˆ{‚‚z‰…‚uŒ„…x…’…€–†z}{x‚‚…‰…ˆ‚‘Œ|ty€€Šj‰|˜}€–”Œ‹u‹ušz†’ƒƒ™…ˆ‚ˆƒx‹ƒŠƒ†y‰~ƒ‚ІŒ†x†ŒŽŠ|Їty„ƒ‰†”‘{†…xƒ|‚}“~Š}€…‚ˆ||}k…ƒ{|‡o‰…‰‰„ƒ¡˜„u–œŒŠ‘‹zŒ‡pš‘Šƒv„“Ž}–•†ˆž’{{†{~”““…Ž“QwŸ{‹”v~•”qœyˆ€Žy’Š…{¥–ˆz–ˆš«‰Œœs‡Œ‚Ž“v}|ox‹‡{™˜‹…˜mˆ~”gˆ†Ž†{“ †xˆ€‡Œ›x”uŠŽŽ•y…””Ž•Œu™zv”ˆ““‡}…Œ‹ƒšz…‚’t‚ž‚•Ž–ŽŒ†‡w”‰‹•–…Œ–…h„œŠok{{މ‘†ˆ™xœ—”‹Š•Œ‰“ ›z–‘Œ‘‚†—}“”‘Ÿ‰—‘…ƒx…ˆ†”‚t‰ŽŒƒƒ†ŒŒ~‘˜Š{Ž‘‰”ƒv}‡Ž†ˆŒ”€ƒ……y‘€‰Œ‹{q‡„ƒr{Œ‘‹””Ž‹p•‰‘Œk‹Œ†…‹fŒ“‡–€–‰†”~““¡„z‹‘Œ•w’v‹–“ŽŠŠv‡“wŽ‹šŽ‹‚”–Ÿ†Žr‚‹Š{’{z–•‚“”ˆ‹’““’‘„ Ž“|„ˆ“…–‰Šˆ•Ž•”‹‰„‹‹™Œƒ‡‹‘‹‹†ŽŠ‹‡„ˆˆ‰…‡†•ƒ‰—ˆ†‹ŒŽƒ‡ƒ~˜ƒˆ…œ‡‡{“•ˆ…†•}ƒ‘œ‰…—Œ†}ŒŽ~˜€‡ƒ‹‘‡ƒŽ‘”Š—‡”’Š€ŽwŽ”~ˆˆ|‡‘ˆ‹‹ˆ— yŒƒŽn“Œ’~„„‹„”n’‹„Œ–—ŽŽœ‹ŠŽ”“…“‰Ž‹‹Œƒ‘†y}…‹ƒ“—…‘އ•“•Š“‹™ŒŽ–—€‡€‰–’€†Œs“|ˆ•‰Š†€‡ˆŽšŒŽŒ‰‰~ˆ‰–Œ‡‡‹ŽŒ‚˜†‘‹‹…“…Š‚”‹’–‡ˆ~ŒŠ…•’Œ‘Œ’…‹‹‘ŠŽv€„…‹Ž–’‘†•“Ž‹‰Ž˜ˆˆz“™Œ†Ž‰‰€‹ŒŽ•Œˆ‘ˆ†Š‰‹‡‚•ˆ“”†•‘‡’Ž‚®€Žp«•ˆ~‰‰ƒ‘ŒŒ‰—‡Œˆw’‹…‰‹Š‘ŒŽˆ€Œ’‡ˆ•ŠŽ}€…‰•Žv•–’„ƒ‡„ƒ{–‘‰€ŠŒ’‰…”ˆ˜…~†‡“x‘…~†‘‹l‡|Š€–“‰}ƒ~„‚‹†—Šqˆ”“‰ˆ„Œ}ƒƒ¡r‰’‰‹™…‰ƒ€ƒ”•¡“’‘Ž~‹Š‘Š–~€ˆ‚}†‹‡‡•‰‘‹‹Ž‡Œ“””ˆŠ„™–•”‡ˆŽ‡‹†ˆŒ‹‚Ž‹…ŽŽ€•‡‚‹ŠŽˆ‰ƒ’Ž„—‚‘Œ—Š|‹‚„ˆ“Œ†‰™“…“‡Š†“zŽx‚†sˆ“‚wzuŒ|{uy}}x{~‡zz‹‰†wŒ}xxt–‡Š‰xw„}ern“‰ƒŠyt„Š‚{w‰u‚„|„|{…}…w˜uu|…l„~|…wh’u†v{…||zy‘w„v‡„}y““‡}p…‡slzs{z{z~Šr†v†|€~yv†‹mŽŒ‰‚uwt~n}s{wrm~n{‰|t‰lˆ€l†q…~ˆp€o…~€{€zq|~u‘svi…‚q}qsny€v|uŒ|l|…zvx}x‡—x|„r~‡{sx|rƒz„uxx€~ngv‡Š„i|u…xsŠv„‰…”uˆˆƒŒ†‹„…’‹w‡…‡‰ƒr~ˆ~ƒ‹Žƒ‚}ƒˆ‡”ƒƒ‹‚‹Š€v”…{‡ŽsŒ€tŽƒ—xŽ~Š}„~‹†‘o‹†‹v€‘…†oz†–ŒŠ‰y’ƒ€ƒ„xˆ…v‰x†{„„“uˆ‹„Œ†{††uƒŒs‹w‚€ƒ…}…‚|™y€€†‚Š„}™‚y~‹…uˆ}Šr…†ƒ“ˆ‚~v~…|†qˆt……Љ‚އ•ˆ|~tЇޅ„‹{‡†Ž†wˆ‹Žy„~‡ƒ{~Š}~Ž‚’†u†‹‡|Œw…ŒŒ‚Œo‡ƒ…ˆ‹„„‘w}€”…{‚††‰†€jŽ}}{ˆŒƒx{Ž€x”ˆ€€u†Žˆm’Ž~‚u‚mЉ‰Œˆ†”ƒzt…‚ƒwŒ‹††{†’ƒu‡€•‚~ˆw„n€{Œ‚†‰€{€z‡‰€ƒˆ…€……Šu€‰Š|ri‹jy‡…s‡ƒ‡Š{{‰„zxyŠ–l‹Œ}„wˆ†}xƒƒzˆ†~Œx‡„|‚q’Ž€{€}Šzt€„‚‚‚v†‡z|~{Œ’‹„ˆŒ}}y|{ˆ„v†x†‰…„~~‘}‰†z||€st‡yw}}‹ƒˆy‚‚{‚n€~…|~‡~Š•‘€‹n}{¥‘•™ŽvŒ}€’s{„‰„Œtu‘†€˜„Š{~ˆs˜ƒ~ˆuŽƒx“d‰‹Š“‡~ˆŒŽ—i’{€‰ˆ„z‡ˆ’ŒŠ‡ŽŠ”ކ”m{’{ŒƒŒ†‡‹ŠzzŒ…Œt†‘Ž—‘ˆ’†Šu{Žƒw‚‡h‰‚…ˆˆŽ”}ŒŠ‰|‹‰l‰|z‰ŒŽŠ‚Іˆm…†{s€Š€ŠŠˆŒƒžƒ‹€~|…‹ƒˆŒ‹€Š‰ƒˆ‡v‰€‰Š…Š…Žt†|††o|€…€„…‹‚y‚}ƒ“|ˆ›~w€ƒ~‡„€–‰†ˆŠwŒ…|u†‡}{|o‚‡•Œ’ŽŽ…ˆŽ|‘„~†€u…wƒ…„•…x~Ž„…”‚…zއ‡•Œ~…ˆƒ|…}‡‹–Œq~x†Š†šv‡|‰‹‰ƒ{ƒŒ“€‡Œˆ‡Œ‰Ž†mx’‚Ž“u{Žƒ‰ˆŽu‰~ƒŠw‹Ž„Š‚‰ƒ~|‚„–|v‡Œƒ‘y‡‰„ƒˆ€}†w|ƒ…‚„…Ž‚ˆƒƒƒ‰ƒvƒƒ€†‹ƒ††€|‹Š~pŽ|ƒƒ‡‡~…‡{}ƒ}†ŠŒ…‡Œ”‰…ƒ…}€…„…y†‰‹„††Šz~ˆˆŠŒx“†s€{†‡ƒŒ„€ˆ†{|†vˆ„‰‰…‚lˆ„…‚ˆ‚Œ•~‘„†Žˆ‚‡‡Šƒ„†‰w‹~Ž…x}ƒ†…~{†ƒ†“ˆ‰…‚…}ˆ}’Ž|Šƒq‚w‡“Œ’tŽ|…‹|€‚ŠŒ†~‚yŠŽ‰‹Ž‚„q|‰”„‰‰x‡„Ž|s„‰ŠyŠƒ‹šŒ€z–‡ˆ†zy…tŠˆŠ€‹y…††…‚‹|ƒ†t‚z|„ƒ…ƒ‚…Š”ƒ}|}‘}„€‹w…„Š€~v‰‚‚ЇˆŒ„~‚‡„‡†€„†{…ޅމ„€Š€‡}{†ŒˆŽ||„‚}„‚„„‹Šz„‚‰w|ƒ‡~‰Œ}€‰Šƒ~‡qЉzƒ€‡mŒ€Šˆ„‹Š~ˆ‹‹’އŒƒyŽ–‡šŽ‡‘–yŒŽ…n…ˆ…Œ‰“†“ŒŽ‚Ž‘‡†Š’Ž’ŒšŠˆŒ€‘€‡„ƒ†Œ’‡ˆŒŒ…ˆ†ˆ‘w{Š““Œ‰‰Š‹‰—ˆ„—‘ŠŽœŒ‡Ž’’Ž‹“…Š”€Ž…ŠŠ”ˆw’†‡‘{†‹Š’„w‰’Šƒš††Šˆƒ‹‹‡˜ŒŽ‡ŽŒ‡ˆŠ™…‰…Š…‹„Œ—‹•„‡‹Ž”ŒŒ‹‘ˆ‹…’…‡†Œ‡‡‘“‘ŠŽ“‹Œ‰Œ›Œ—އ‘z”““І‰‰‰…І‡‘“‹’ŽŽˆ……|‘ˆ‹Š†ˆ‹‡¡išp†x‡•Š”ž•ˆ•Š}—”—~“~ƒ‹œ›€r‚€•e£ˆrp|–˜‘¤…˜ž’t‰‘†˜˜ƒŽŠzoЉ™|¨£|ƒ™ˆ™“€‚Œ~ zŠ•„k“u}™“gŒr‹†Š’…ަ’“}…‡Œƒ£¤™™–Œ€…‘‰‘€‹‡Š|…ˆˆ›¦v““‹Ž……‰“…œ|™vˆ‚|€‰ˆ‡ŒŠqŠ”ˆ’œ”Œ~Š}‹—ƒ†~n‘•Ž™™”~“’ƒ~Š’ž“‰}‘š„„†’¦†ž”“ˆv›…žƒ†x”Ÿ„ƒ‡ˆp‰Œ†›†›€‹hwЉ‡€…{˜—ƒ…†€p{ˆ‚‰‰“Š˜s‹~’ˆ€‘”Š‘ Ž‚r‚…„‹‡Ÿ}‘ˆ–|‘Ž‹”Œ’”}ŽŒ…„‡…–™‹ˆŠyz‰‚€“†…€›“^~¢†|˜€™‰Ž€Š‡‰‡’‹Ž••œ‰“‘Ž–š‰v|Ž…†ˆ‹ƒ–Žš’ˆ„Œ†ƒ…„y‚ƒ{‹–Œwš‹„‘”‰ˆ”Œ…†‹”{‰‡‰†’…’†ˆ‹ŒŽƒwvŠŒƒ‡’‘ŠŒ‹‰{‰‹‡Š™“††š‰ˆ–Œ‘“‡ˆ†—€’˜r—“–…‘‚‰—†ƒŠ‘{ŒˆŽˆˆŒ„—Žƒ‡‡†•’}Ž–Œ“Œ—–’Ž’’‡‘£Ž‡”}Œ•…˜Œ‹‹š…y„‰mŒ‹„‰—‘ˆ|‚Œ—ƒ“…‹…‹‘“„šŽŠ‰’~‘ŠŠ˜‰†ƒƒ~ƒŽ‘ˆ‘v{†ƒ‹“’Œ~‹–ˆƒ’–—“ŒŽŒ’‘}›’ƒ„|‘•ŽŒs‘€‡–z•Ž|…„”‰}“‰}ƒ‘ƒˆ„šŽ‰ŽŠŽ–Ž‚‡ˆ–Œ“ˆŒ„Œ†˜Š‡Œ““Ž‹‹Š‡€‰“€„Œ…ˆ“–’‘•ŒŠ‘Š…”‘‰ ƒŒxŽ—‘Šƒ‰ƒ‡‡ˆ‹‘ˆ’Œ–ŒŠ•ˆŒƒŠ€Š‘ŽŒ‡Œ‚Žˆ‘„†‹Œ‰Œ|}–ˆƒƒ˜wŽ„—‡€‚ •˜ƒqƒˆ††ŽŽ–}}w‡…‘‡‹•Œ{s‰“†Œ„™™Ž‚“‰¨’”Œ†“‚‰“‹ŽŒ–Œ—…‡‡Œ“t„ƒŠ‰‚”–”xp}‰—ˆŒžŠ~ž{އy~““Œ„ˆ•ƒ‚Žzƒ€’|ŽŽ~ˆš‘’˜ˆŽ‹•‹–…{ŠŽŽŽ†‘–Ž’‹–†’Ž“‘ŒŽ”˜‚‡{‰„ŽŠƒ†‡‹“ƒ‹˜ŽŠ–‰Œ˜ˆ~‡–„ƒ„˜‚x‘–‰ƒ‰€˜—‹ˆx˜~Œ†…‹Œ•…‰‚†‘–˜††~pvˆ{}t}€y{€}–}|„€}{z~†Š€yˆ}~{uˆ„…ryŠ„x€qu‹~„†}ˆww}z}††y|yn‚}|zˆ€y…|z„zކws{{‡}{{w}w{„’ƒ…w|‚‡rŠ}š‰zqy|iu|‚„v}|xˆ}‚„…~’ƒ{|yt†|z{Š{~ƒƒ‹sŒ‡†‹…vƒ}‚‰v}ttƒ’y}ypzˆ†‚uzwxt~wn†‚‰~}ts}Zu}‚y„„Œ|{{…~‡€€€‡€w€}Žup~y“‹oxx{jx|}ƒ†ˆmy€}†yz}…ˆ}†ƒ|†tˆ€ƒ–’Іt‡˜w‹ƒ‘†ˆ’–“€u‰”Ž…ˆŽ“˜}•zŒ’†’šŽˆp†’‘ƒ™šŽz’”}¤Žœ˜ˆ”•ˆˆ’Šˆ¢ˆšŒœ€‡”‹™s…ƒˆ——’™zzwˆŽ…†~Ÿˆ‡‘‡‰†||’Ž–ŽŠˆŒŠŽ|†}”…‚ˆ }†€y™‰†’”“’››ŽŒ†‰{ˆ“†€‰…•}„„‘Š‘””‰–“œ‚Š‚ŠŒŒ…“Œ~ŽŒ’‘‹‘’xˆ…|‘”ˆŒ„wŒ‹“{‚ˆˆ‚ޛޓ†z™‚––ƒ’…Œ‘‘‰‹u‰…’…–ƒ‡v®‡ƒ‘‡’‰‘vБЗ‘‹‡Žš‚”€„Š˜ŠŠ„{’ƒ„Ž…‡’ŠŽ“n|Œ—„|˜™†—‹ƒ~€Žusˆ‰‰|€Š—‰–„˜v‹„Š”z€‰‰Š‘|“mŠ…‘…–‘|r”„w’yš‡‘ˆ—w€—€z‡‹„„˜u”—…—Œ‡…Œ„–Š’’’Œ…’Œ{›„†Œˆ‡Š‘•’Š”Œ—ŠšˆŽ“ŠŒŽ…šŠ–’„‡~{’˜‰…‘……‹‘„‹‚‰”{‚~ƒ”ˆ‚“{‰Š–Œ’|‹Ž…Œ‚z‰™‡}“’Šˆ†–‰‰Œ–|†ˆy’‘†„‘†s•|€~Šv{yކ—z“Š„•Œ•‰‡ˆ…™~Ÿ‘ˆu“€‘‰}m‰t‚y‚‡x„€”‡q……Š ”Œv‚”s¡Œ†}nŒ†ˆ†~‘pz”~s—˜®‰{mŠ“„„z‚€t…‡Ž…–z”Ž˜‹†…vz†~x‘›Š‘~u—‘}y…ˆ‡€…„mŽ‹…›ˆ‹•t‹tŠ•“Ž|r”‚‘Š•„“z‡}Œ”‡•‘ŽpˆwŽvp„‡†ˆyw{–€o‡€…Œx–“‚}˜ƒ‘ƒ”Œ•‹„}‰ŽŽxš‰‚„†s—…“z~†{}‚||ˆƒ€‰}}†„Œu~‡„‚t~rwƒƒ‚Œy„Ž€†}Œ…€ˆ‚†rˆgŒŒ‡|ŠxŠ…}†‹†Ž~~†ƒzŠ‹…ƒ„Š|ˆs……‰“€…‚„{~y€ƒ„ƒˆ~›‹˜zwŽ}Ž‚ly†z€ƒ{‰x~‡„~o€‚‡‘g˜‹u†zxxއŠ‚„lŒ•qwƒŽˆŽ‚‰†ytvtqyŒ‰’Š…|„…Šˆ†„‚}xЉŠ|xŠsˆ€~Œ{……€‚‡hƒ‹}†‰wƒ‡|Œx‹u•wˆo‚ˆ‡}}”Œr|z…Ž‚ˆwƒ€~‘…‡…~xˆ}ypsvƒyŠro~‚~‚–ƒuŽˆ~}„‚…rŒ…ˆ†|z‚•Žs€uzzv|t‡‹‚zo€Ž}‚~—‘‹~€„€~‡–rƒyŽ…ˆ|tqŒu€~†~‡~v…~{‰{yp­‹|~‹šy‡w€p€|„}rt—{v‡‡u~‘|{sv{‹†‹…~w|yr„oy…}qvŒ~y}‡’}‡‘y~‡vx}q~y‹p„o‡‰€ty{lo{|re†•ƒŽ{sq„wyt†ˆp~t€w„ˆ’z†mˆˆwr†}nŠ|‡z~|…wy‘x€~“Šˆ‰ƒ…‹„|r€Œ†‹Žyr‹Œˆ€Œ‡ˆŠ|wx„‰qsz}”‚œ‰‹’† …„{£ƒƒ}Œh‡¢Ž‡”€|‡†ƒ¢w™„…w–‹‰Šˆ{|”ƒŒ‚†‰ˆ‡|…ƒ‘Œw‘†‡‡‰‹“z‚s†yvˆ†›„y†‰wŒ|ut”†yˆˆ“ƒŒ„ƒ‰ƒ‡r†r†f˜xk“z„ƒ}‚ƒ‚‚|Ž|¬†w€ŠŒx„j‘”{ƒ}‡|zkw‡‚ˆ‹ˆƒ†~y‰„t˜›••†ƒ‡|‘r{‹_‘‚†…Š‚‡‰zƒŒ””ƒƒˆž{€—y†r}y’‚–„}ˆ€v|€„‚‰ƒŒŽ•ˆŠz„x~€‡v†}y{Š~}ˆ€s{yx„‡ƒ{Œ€‡||~z…r‰Žƒˆ~zk‹…„~tr}z{‡‰ŠŠ–~ƒ‚ƒ‚„‰}„{Œ‹†~„un‰Œˆ„yz‚‰‚\‹~x„‡}€‹{~•vˆ‹z{€‘„nyЉzƒqx‘†zzmƒyŠ„z“r€„}‚wŒ|tvsŠzƒ‚‡u‰zƒ‚{„~y†~{zsx‡s†|‡q~zƒ~‚|“~‰€•…‚~u|’~|…‚‡x€’ˆtr‹„l˜z~ynyƒƒq‘kz|l‰u†z{’Œ†€…ƒ‡€‚qŽ–ƒ†ˆxvˆ…yvz†€s‡†x~ƒ{}w}‰†zwz‡}‹lŒ{…ƒh…}}zryl€Š€y‹‡|{ƒ‚…‡}‚jŒ}~‡ƒ‚z‹v€{|~}{q‰o‡‚‚€{z{ƒƒt„v„tw‡€€}…ƒsz…x}‚†yu…sŽ}}€yx”‚‡}‰j~…{{zq{‰y}t‚…€‚sz{ƒ}y„xuv‘}u|~v}l|o~‚z|rw„w†€€yƒƒy„‚v€†~…„||~|v–wyŠ}„xrvy}p€t‚~y‚y{Š‚|ˆ†}y}w†}…y€‡ƒ‰…|…€‹†Š‚{}””‰•‹‡”ž|}vn†‡Ž…’…‡’‰†˜€”‰Š‘–’‘Ž‘˜š‹…†Œ„{ŒŠ‚‹–‰ƒƒ‘Œ’Œ”‹–uy”|””…”†–‰™ˆŠ›Ž’›ŽŠŒšŽ•”‘‚•y‘€Š–ˆwš‚‰‡|Œ—…‹Š‡yŒ˜ŠŠœ…ކƒ…ŽŠ”“‹‹}Œˆƒ†Œ’‡„„‚”Œ•‰†ƒ‰€”’‰‰Ž‹‚‰Šˆ‘Ž‹„‹“ˆˆ“‹Žƒ‚…‹’‹˜‡–‘Œ‘}•’‡ŒŒŒŠ‡Š’Ž”•Œ‹Œ‘‡•“‡Š‡‘”“š‡†ˆŠ‘‘Œ{€ˆto––‰„†‰ŠŠa~Ž‹œ„‡…™u€†us’Ž–ˆ‘…˜‹}‡šŒ„‡n™‡ŠŒŒ”—”‘€ˆ“y’…Š‘‡ˆ““v•ŠŠ€ŒyŒr ˜€Œ‘Ї§›Ž™„Œƒ‹†Œ”‹šŽ–|}’•Іƒ‰‹Šz•„ˆ}’ŽŠ…€s‡ˆ’€’‡y¢ŠŽ‹‰œŒŠ“‚—Ž…†ƒ–¡{‰|“šƒƒˆ•}‘Œ{sƒŒ~€œ–”ކ“zЂГ™ž„z“zŠ€‰‡‰Œ}‚†ƒ˜†ˆ£‘oŽ’žŠ¡ˆŒ’†–Œ•„{‡ˆ‡~Š””t‹¤Š‰‡ˆ†~Œ›}i{ƒŸ„Šuqsu~jqj“v‘„t†‹x|…£‡€nrkshƒƒe‚ƒolš†[~c½qy“tˆŽ‡€„p}{u}‘•|v x–€„d|qps—pxqwŒr_qno[ƒgys‰‚k‚qw†rN{{{€ƒu¢£br€}v‹z~lsz‚y†v‘œo‰|v{o–tzv{fŒ`n{œrp‘j{q”„¡s}wŒ‡Žwom‚tu–’™hx€tus}m{q‰}†ruy•‚bwiuw‡ƒ‰‘…zjs…{zŠjm•ƒymŽqyˆ’a‰€vqs…wyjf}Œ„xnyƒ‡€\ƒtqo|™“Šz™‘•‰…‘‡ƒŠ’Œ‡ˆ•‡ƒ†€†’—–†›™|s‘‡‰”‚“Šˆwv’„–zšƒ—€ƒ‚‡‘{‡‡ˆ‡•ŒˆŽ‹s‹ˆ’šqy–švŠ…‹Œ|Œu„Š‘‘˜“s}‘Ž|‰ƒ”ˆ‰„ž}}Š’•y”Œ‚‡w…‹„‡ŽŠ†ƒŽ‡‹‹†‘‹–›Ž‰€‰’‹—…Œ†ˆŠ‹Š†ˆ†Š„”ŒŒ“yŒ”‡‡‡†‹–‡”’ˆ‘—„‹„•Žƒˆ‰x‰€ƒ„r†‹‰Œ€‰•‰–”’„•ˆˆŒŠ‹Žw‡Œ‹†…Š‘„‚ŠŽŽ‹†~Š|‡‡†Ž“~|‹”‹’ŠŠ™š|{‹n‘‹ˆŒŠ†ˆ’…™†–‘ˆˆŽŒˆŒ“’”šŒˆˆƒŒˆ‰‡•Ž…„“ˆ‘’“vzˆ~”•’†–Œ˜Œš‹ŒœŒŽŽ••‹~ˆ•…ŠŠ„Š—‡q›‡‹€‰Ž‡ˆ„†|‹•Šˆ›„ŽŒ……‹‰•‘‹Š…ˆŒ‡‡‘‡…ƒ‹•Ž™„‹‚„‘•Š‘‡“‹†Œ†ƒ‘Ž‹‰„‘ŒŽ‡Š…އ•Š”ˆŠ‘}’Œ…“‰Ž‡Œ…‘ŽŒ“”Ї…’Œ‹€Š–Š‘•†’‘†ŽŠ†”{†‹€‰‡‰z“v„~€”~{q|…‚ƒ}‡†‰‘‡†ˆ†uŠuІ‰‡sƒ{…Š”m”Œ€’w€}zŽ”vƒ„‡“††zމ…l–“}‹†wƒ†„Žxwt{‹‡„s‹™ ™x|‘{„ŽˆŒy~Š…v‘|‹ˆˆq„ˆ‰ƒˆ†|Їl…|ˆ””}ˆ~‰ˆƒ{’‹y{†„‰„}‡”xy“‰Ž…‰ˆŠŽ‚~~‡…‡‡’މ‰~Œ …‡‹yŠv…}‚Š~…~…}~{‰~‡Šx†~†‡€ˆŠ…’Œ„Šz‚Šƒ€Žv‹ƒ}Š|†m€„†ˆx‰vŒ†Š˜‘ƒ‰ˆŒŠ‰Œ„’o{}…Œupއޓ…‹~Ž{™…†–‚w‡q€„Œ‘wƒ~‚Œg„‚|‚|~„Š”~ƒ‰…Œ–…—mt…™‚‰|„ƒ’†x€Š„Žr‰†‚Œ†’Œ‰‡‹„„tˆ‰ˆŠ|‚‘~‡ˆƒv‡|r|‰„‰‰ƒˆ‹Šl…x€…ƒ‡‰‹‹’x‚‘„”}‚wއˆƒŒ›†Ž•‹†ˆ„‘އ‡…y‹‹|ƒŽ…‹~†€‡Œ~Šƒƒ„€‚|Œ~}’„„}ˆ‰~„‹…•|Œ„Š…ŠŒ††q‚…Œ{nŒ}‹ƒƒŠ—u‘Šš’ƒ{‚€y—pv}…~€tnˆwƒ–‹‰‚ƒŒ~~—†ƒ‰Œ€w‘j‡Š‹v“…€‡†‡f~Š‹|}…‘š‡ƒˆ}Šˆ‹ƒŒ•l{‰‘‡ƒ†||‡‚‡…v€’„‘q“‡w‰~‡’Ž‘†‡‚~“~r„ƒ‘ˆ€‘‚„…€xˆ|q~™‹†ƒ†„†‰m•z…ƒ‰ƒ†ƒŽ“‚‹„‘zu‰Œ‡‹–ƒ’ˆ‹~‚’Š‹ˆˆ‹o•„ƒ‚‹|“~‚~†xƒŽ‡…{ƒ|€…‚ŠŠxŒ‚…|…‘†‡ŠŠ‡…„}…„{ƒ‰z€myˆ‡{‡z›Šx–……‚†‰˜ŠŽoz‚’prsˆ{„‘—Š„…˜z~—}†•ˆyv’’sŒ|”ƒy‚Žˆƒg‰yŠyŽ„vƒ…ˆ‡{Œ‚‰’•…ƒ“ƒ”ruŽž‹‚ƒ}„…~Šz~ŽŽq‰‰~‰ˆ‡ˆ’…‰ˆ‹€‹wu†ƒ}Š„ŒŒ‰ƒy„„q|‚‚‡~…Œ…ƒ‹‘l„ƒv€‘„ƒ‡ŠŠuƒˆ˜|ˆs„~‹‹“†ƒ†‚ŒŽ„–“€ƒ‡y…zv…Š…Œ€”„y„}…|‹€yˆ|}’Œ†‹y‰‹†€„Š”ˆrŒ‹Ž‡…”‡‡…l}ŽŽˆxmŒ‚‹…¥‰–_¢†‰ƒˆ¤Ž˜ut—‡Œ–››“¢€¦€Šq¥x‹–¢‘wš’”•¸¡v™Œ‹ƒ“‘‚}ˆ‰†x‹rsˆ¢w†ƒ|c‰‘_…znˆŒ™•’‰‚~Ž£›‡hˆ“ˆˆŒ‹ŒŠ†‹—‡‰ƒ‹{‹€‰—ˆu¢ˆ‡†w†{ƒ†œ‹‰sŒ‚“ˆ„…‘ƒœž‘‰w§~‘†’Š“wƒa”j‚”€„ƒ–~˜‡“{‚Ž„„„Š—’zŒ‹‰…“‰|Ž–Ž•›‡•ƒ”›‹m—€Ž“†‰‹‚Ž”w‰…u‡†‡{‰x­~„ˆ|ˆ‰£ŽƒŒœ{›ŠŠmw|œ–ƒ‰„Œ‰ˆlˆ“tx}‘¢‡wm‚Œ‹˜}‚€u—w|›~„†yŽs€„œ…‰…|‹‚z‡•‡—r–||w{{|€~}Ž€‡y‹Œ“ot~‡}—v‹—q…|‹|†~{š‡Šw›ƒy€ƒz„qЉ{Šƒ}Š—‰rƒx‚e‰m†‚‘z”††ˆƒŒmŒyrx†‹‘™†ƒt…|Œƒ|w’—p‚‡Œ„ˆ‹xŽ}€–w€}‚‚…‹‰Žˆwƒxˆxpˆj€{l|t•}r•€ˆŽ{Œ…‘|‚uw“„†‰„‰ƒ…ˆrƒr…ƒ‘Šƒ€wv‡‡ˆ–€Š‹€xq•’†Œr‘Œy‰–†…†”››ƒv•ŽˆŽŠšy{Žy{ˆ~†™•‘~k‹‘†~––„y•’”s‘¡‚†‹ŒƒŽ˜Ž‹””“††’t‡€‹“€–˜x‘{‡ˆŒ‘Š›‡‚”Š•w’•’”ˆ‘’’Ž‹€†vŠ‹‚}‰‡‰yš‰}˜Œ‡’„›’†˜˜‡ˆ‚“€‡‰Š‘‹’’”††•Š’‡’Ž™„—‡‹‹•’‰‘x‰€™Š‰’—‡’ˆ†‹‚‡Ž|ˆ}”‡”€†t”’–…}ŽŠˆ‡–˜…’‡‹’ІŒŒ“„“†Œˆ”‹‘–“ŠŠ‡}‘ŠŠ…‡‡r…ƒšˆ€‰•Š‘…u…‡†ƒŽ“€‚‹~ˆ‚އ’“Œ…{o‚‹‚˜Œ‡‰††‘‚•Š…‘‚Љ‡‹‹„ˆ”’–‰‰Žu‹Œ”ŒŠ€˜–|syŠ“…‹—‹ƒ’…‚‘—ˆ‡’…Œ„•’‹~„ˆŠ€|—’|Š~ˆ™‹‰”Œˆ›‰’…ƒ{†…•‘‹Šy‰†…„Œˆ’Ž‘ŽŒ•…ŒŒŽ‰Œ—މ“‚€ŠšŽ‹“‹“‰Žˆ“ƒ”‚‡Œ—…{™™ƒ†…Žy˜‰•‰†vœމ‚‰‚ˆŽ‡ˆ„ˆ~ˆ‡ƒ•ƒy†}~ˆŠ‹‡Œ‰‚‹–„˜œŽ‰‹wž‘‹„—‡s€’x}nŒ‘€Š{”–‰wŒ‹“vu”’‹“v‰‡isz‚w•ˆ‹‹xš‰‰’˜“Œƒ••u‡…‘Œ„‡š“}‹o†„’’‰’—¡™‰†Œ{ˆ’‡}‡‡–„œˆ‘‡€~—„uŠ–Š‘†Š‡‡œ‡™‹‰€…‚}…Ž‹§vŒˆ†oœ‹Œ’’žŒ•‰—’‡“’ˆ~ˆ‰}‰†›“Ž•‚’‹{l“’ŽxŽ•‘…‡Œ•v’}•™‡Œ‹”•ŽŽ™–‰‹‘†€‰Œv‰Ž˜‹„†Œ‚ŒŒ‰{„ƒ†ŒŽ‰‘‰‹ƒ€“ˆŠ†“™…“Š‚tŠŽ‹’„‰ŠˆŽ‹………‘‘†‰Œˆˆ‘‘“–ŽŠ‹Žƒ‡…‘~މƒ‹ˆŠ‹ˆˆ’sy|“‘…ƒ„–‹Š“Іޗ‹’”މ‘‰’‡‘†~Ž‘‹{—{„Œ‰Š‹†ƒ…Š{І‡˜Œ‘†‡ŠŠ‘‡‰ŽƒŽŒ‡ˆ‰„‡Œ„‰†ŠŠ…”БЉ‰„”‰†ŽŒŒ…‰Œ’ˆˆƒŽƒ‰“‹ˆŠ’‡ƒ‡‹‰‘‰‘‰‹~Œ‘‹‚ЋЋŒ‹ŠŠŒŒ‰‰‹‰‹‰†…‘ŽŽˆ‡‰†“ˆ|‹{Šoy~v„wœ~{z}€‡‚s‚ƒ†‚xop{x{††u}„zvˆz~k›†…w‚|ƒssv}ux…~|…ˆ††|t{|w{‚xz|€zps‡„…‡ˆp…‡|Šx†‡p~‰Šy}„‘wru…zxˆp|{€~„ˆ†‡Š|ƒ‚‡}ˆ‚|~‚z„rw{}}ˆ|xŒ~y–t{t‚y~{vŽŠ–||†zzu„|tyu~{…€{y…€‚Š{†||w‰ˆ~‡‰|}wŽtyxŠrˆoŒ‡…€|Ї||r…„‡k€q€†t}~ƒ„…„‡gƒŒ{~‰r…ƒ|xl‘Žˆ~y}|‡{yuzzš‡{ƒƒ•Šzz|uty|`Œy…}}ˆ|‡†g‚…†xmqs{y~†ƒy|‡„|ƒ}ƒ€sƒ‡…pvw‚‹šs‹lz€uzyv‰{€‚ƒ€”qvv‘wjz‡|…‡„ˆ|‰‡‡€€Œ|‹€z“yz‰y…–‚‚y‡‘ŠŒ‚}zˆ€…r„x„ª‚†‚‚…‘ˆ„‰|„‡„s{z}‰ˆ‰z}zƒ}‰}ƒ„‡€ˆ|rƒwˆ|u‡‚}€‹Š‚‰y‹‚Š……|†‘……‘z‰y…„tyƒ†y{Љ€vŠ€~Š‚ƒŠˆ}Š~|‘yŽˆ—„_zŒ˜‰‰…Œ“©€|Œ~œŸf•…}€~e”h’}~x‹ŽŽ˜£yvŠ–¹“³‚Žƒ|‹šˆ¨y¤‡q¨dšp¦œxŠŒž€‰s‚®Š†‹€¥‰r”‹ƒ•r˜h†®•\‰y~…d𠲉t§¡ƒŠ}‘¯¹k†yª”v‡ˆ²‚‡Ž¢Š‰rƒ{‰{’“z~˜“†v‚“Žj€ ºƒ}™‡f‘Ÿ—•y™±¯€…wƒ•ƒ¤~ˆ{‡u…~Àvr‚•{vˆs ¡Ž‘zu}’†Žu‚šФޑЙ†w’}¤‘ƒyb–‹Ÿ‹~¥†‚x€y yx„€{–‹Žƒ”~€‰‹ŠŠ™›…‹˜‹““Œš—…‡t‡Ž|…†…‹‹‰‰€’šƒ¦•‹‘†Š–™‡‹ˆ€˜ŠŠ‡‘‹ˆŠ€~‡ŠƒŽmxŒ’wŽ—Œ‡‰vš…š‹ƒ‘‘{——Œ‘Œ˜‰’‡Œˆ„Ž•ƒ‰Œ‰€ …Œ•‹‘‹ˆ’‹‹‰~•—…„„ƒŒ††’„‘„ˆŒŒ‹Š“ˆ†’‹…Š“†‹–Œ”““†šŒ“…ŽŽˆƒŒ‰ˆŒ•’”Œƒ…ŽŒ…Ž’‘…“š„’˜……”‰„|ŽŠ‡ŠˆŒŽ†‹ˆŠ•„Œƒ‘†~ˆ€“”……‘Œƒ•“‹…ƒ…vy‚i’y||„‡}“І|—’x‡‹}t‡}xƒ€ƒ…rŽt‡z€‹‹|kŽ‘„~k~lq…†‚„†Žz‹~…ˆ‚„Šd‡‡ƒƒ‡Š‡‘‘Œyr{wŽ‚ŠqyŒ‡u‚|qžn‚‚ŒkŠ~Œ‚†Žn~‰€€kx†…|‰†y€’r‡‰‰Œ‚Šs~€zj{|…„†…x‚…›u~Œ}~}“yƒ‚‡¡|‹…|m{uƒiš}‰„ƒ‚†t‰yƒy~p„ˆ‘}ŽŠy‚„s†wƒ‡‰t…m„€œ„‹Š~sŒ‘~Šux‹vv…r~y……|s‡Šƒ‡†Žzƒ|†‰i‰ŠŠ‹ƒ‚‡ˆzŒŽƒ~‚y‡€Ž|Š|Ž|—ކƒx„yuŒ’„‚r{……‘|j‹{‚ƒ~†‰‚Œv‚yrt‚‚ˆ‰‘Ž}|‰‡ˆ~„}Œ‚†™}r}†‹‘€}o{‰‚}w…tšiŠ‚m€‘ˆx—‰†|Їwk|‚‡xŠ€…‹mŠvxu‰Š…Œq‡†ƒ{y„„‚†ˆŠx…zµ“ˆƒ˜€y‹yŠx‡„~~w{vŠy˜…y…‚Žzxo†t}x}‚‚†tŠŽŠ•~…}y„‰Š~„sƒŠ}‚€{ƒ‹w“|€q‘‰„‘‚„€yz’v‚w‡€Š‰Œƒ~‹…xo…†{z†yІx„†‹Œ‡Š„Œ’„€Œ‘Š‹ƒ€‚†Ž€t‡‹ŽŠŒ‹ŽŠ‡†‘ŽŠy‡‡‰‰•‘–‘ˆˆ‹ŒŠŠ„‚}“‡Š†‡ˆŽ’“vuky“‡†—€Ž’Š—”}•Œ‹‘‘‘‡„ŠŒ“އ†Š–‡„‘z‹‰ˆŠ‹„†‚ƒz‰—…‡˜†‰Ž‡‹ˆ‘…“‡ˆŒ‹„‰†Ž…‘‰‘Š‹„Œ†ŒŽŽ‡†ƒ‡ŒŒŠ‹‡‰Š‹‡†ƒŽƒ’Ž„ŒŽˆ‘‹Œ…‹‰‹…‹ŠŽ{‰˜‘Œ‰ˆŒˆ„Œ…”І‰Œˆ…‰Œ‹‡Ž†Ž€†ŒŒ’Љ€‹Œ…ŒŽ‹y¢„‹vŒ‹‰Ž†‡ˆzƒƒ‚r„{„}ˆ}•‚Œss‡{’ƒ‘Œ‡”Š‹…³ˆŒŒŽ‰”–Œ†ƒ‡zr‡‚“Š•ˆz‡‹“ŠŽ“~ˆ…Ž™ŽxŽ†ŽŒŒ‚“‰™‚„p˜}Ž~{–Œ’|Ž—…‹œ™Ž}‘†–†Ž„“‹‰“ˆ‰‰‚œ‰††w˜ Ž˜ˆŠ~‡‰…r”ˆ|wŠŽ”ˆŽˆŒ”‡›”‚“ŽŠ”’†ƒ†…|“‚•’Œ†ˆˆ€zŽŽ€„‰Ž†ƒ†€–›Œ‹‰ˆ‚‰x€{—”Œ”Š‹|“‰‰‡u—“Ž„€€{}Ž‹“ˆy{€‹Œ‡ˆ}š€‹†z‹š“‘…“w‰Ž‰ŠŒ–…’‚‹šŽ~„u™†”ŒŒ“ƒŽŠŽŒ‰}•ƒ‘‘Šwu‹s‡~Œn…Œˆ„˜–„‹ŒŽ‰z‘‹”ŒŒ€ŽŒ‘~—ˆƒo€Ž‚w–—‡•Ž“‹…†•„‰—q“…‰‰ˆŠ„š|Œ—œ‹{“‹Žw„ƒ€Šy•˜™{~Œ“—”“‘¡ŽŒ‹Œ˜…’v’ˆ‚‹…‘’Št…“w…‰‡ƒˆ“}ŒŒ„|‹|{…‡˜“”’–’v‡ŽŽž~Šˆ|Œ‰yy”†uŽ„žrŽƒz†ŽŽ‘Бޗޒ€’€}Š™w„ŒŠ}‰‘ŒŽŒ‚€u–|€‰Ž…yŽ–¡‘’„”“‡“ˆ‡‰Š –ŒŽ†…yˆ„‚ƒx‡Š“ŒiŽ™•‹zˆ}ƒ~‡˜™›Œ…““•zŠw‹vƒŠ†”‡†ƒ~ŸŽ“ˆ“‡”™„Œ‰Œ‡Ž~„ˆ‘ˆ…ˆ‡|‘‰…~’Ž“†Ž˜˜Œƒ‹{z‡”…„†—‡ƒ€…Љ’…Бކ˜”~‘„‹‚ˆ‰Œ‚ŒŠ•ƒ…ˆ’Œ‡Šˆ€Œ‚†„€’š}‘zމ€™‚z‡ƒˆ‰‘Œ‰‰†ƒ’†’yŽ‹ƒ‰€‡„‹‘’‘ƒ…Š…•…‘…‘~•w…€x‹‰”€}‚‚—‚„€‚u}yv…މ~‚jy~‰„‘r…~}ˆ|tƒŠ}€ylpp‚’Œ’„Š’’tš†‚Œƒwu„…’yr‹qspƒŒ„Ž•m‡w‹r„sžvŠ~t¢›…†}y|—{skqo‡w˜ŒŽˆ—ot„‡Œ„†uy~w„z{„Šl„…¥–Š~}vƒjŽ‹}ˆ|…‚ƒ‚t…^‹€…†‰€vmpxƒ…ƒŠg‘†|‡‚}…€w‹s†n•‰y‚~r†}ˆ~‹|’zy‚~z‡y‚p•€lyˆ{€ˆ‡…zu{m•†m‡t‚’p€†€‡†}…x„x€‘†{—}‹…€pƒ€x†ˆ™†{ˆŒ|ˆ…‚jŠ}€’†ƒ‚Š—p~wv‹€…‹‰”z€r†}xy}„„ƒŒŠ‘~vs}’Œqw{~ˆz~w—f†…œo†„Œy‘ˆŽƒ}Šj{|„tˆ…{ƒl{vŒ„‰‡ƒ‹j‚~lzŒ‰‚}Œu‰°„‰‰ow„v‡€x„…„‡ykxsŒs†„~u…‚ˆ‚…u…r‡‰€‰~‡Š“ƒ‹}vˆˆ~{~w|~…}ހމ†tw„‰‚•s~|m‹€ˆt€†ƒ…„†~~p…ƒvu…rvnzŽ„…zz|ƒŠ}z”z“ˆ~‡„}t’~yvŠ|Žk‡‚|…ƒslw…}v•€‚Ž€‘mux}x‚’€ƒ–…Œp‘†v|„„|}„ƒŠŽ‡{tpy~…xƒvv€ƒs|„|’m…v€•f…Žyyxo|†„y|†€‚€r€w~„ƒq|~‡lz‡xyyƒ†u}‡¢{}ˆ~zy…x‹…u€z…„vhxr“n†|zƒty}‚rsz€„|ƒ„•†xŠ€‰‰u‹|x€{†Žw…„{‚‹ƒ†z|skŠ}‚orŠxz‰{{Žxˆzwƒƒ}ƒ‡…†tƒƒu{“uŠ}„x€{z‹…‡ƒ’‚‚‰—Œ“ˆ—”’’šˆtƒ‚’‘”€‡Š‚Ÿ’“Œ’™‰Ž‘Žš“‰ŠŠu”x‘…}“„…‘‡Œ€”—uyŒ‘w•„“ˆŠ†“Š˜‰š‹ŽŠŒ•˜‡~–ˆŒ…‹Š‘Š˜€•Єދ’‹†Š~y‹•†…•‹Ž†…Šƒ’Š‘‹€‰Ž…ƒŠŒŒ„Š€ˆ‰~Œšˆ‹–€†“Š’˜‚Š”~‚€Šƒ…Œˆ†Œ}‘‰Œ‰‰‹…Œ“„Ž–•†”„ƒŽ‹‡ŽŠ‡‹ŠŒ‡yŒ“Ž‚ƒ’Œ‹‡„Žˆ•Œ}o‹Š‹—|z‚y|’‚r|€vt’{u{~ˆ•ŒxyƒmŽ|€y{…|€|r}wicpx|mk~x{{v||yƒxx{“{‰wvz…„vwy}‡€{yƒqq…tzx|{|„ƒ{‰zx{lu|uxsz€u||u|ƒz…€{|vŠzzw}{}{Œzzv~~|ƒ}w{{w~€u‡}~v{~†ƒx|ƒzz}{pz}|u~|yn|{}wzƒ€zƒ}x}zr…t€yy|{}nx|‡}zz„y}€‚‚ƒsv}}uz‚|uwƒz~kw|{~}|…~ƒy„…“v„€ƒ~|„€w‡’y|y|‡„ˆw›}}’ƒ{„}sˆyzz‹•ŽjЇ€Ž€{†‹‰~zŽ|ƒz‚v‹vt~~v…ˆ‡€‹q…‘‘€wk{|„„€wŠŒ“‘…wyuwˆxq‡†x‰€•kŒ€yŽj†zƒ€Š†{‡€wr|{{‚‰ˆ…„rz|ƒ—„†h€}~q~ˆ„|††‹wƒ|¥‰ƒ~w„w}“y~}~lyyŠvŽƒ€x‡y€|Šy‚t…~†…‡ˆ{}{yw‚„{ƒ|ƒ~‹‚€}Œ†|{Š}zr€}‰rƒ†x„{ˆv~z~ƒ…ІЅz}‡ƒzx‹z‰zІ…†‚‚y~…{‚€~Š™ƒ‚І…v|’ˆol„„މx†s‚„–‚|tyvq{~…—Š‹„‰}w„ˆ‚„ˆ‚‡~‡‚Š‹‹š{y|‘„…q}Œ‚zzv—l‡†m‡…‡{…ŠwŠ}p€†ƒ~Š€ƒ†|o†}ƒ}†“ˆŒ€ŒŒ„‰}ƒy„‚…‡}…„¶—€Š„}€~‘Œy†€Š|z~}‰~–‹„}€}yozŠ€†ƒ„…}…‰…‹z„‚~yŽ„ƒ†}Š„z†‰‚†ˆyŠ}‰v„ƒ’ƒ‚‹…zކ‚€‘€‚†Š‡Ž‡‰v†‰{z˜y’{v‡x|ˆ‰‘‹ŒŽ‡ˆ‘Šš—j“†”‚m‡‰‰•{Š‚‘‰Ž’—•Ž‘ˆ™“‚€|ˆ‹„}›…šx†}a˜‘}Œƒm†œ†x„“i|y„Ÿm„‹‰ž•ˆv’†“z€„’|ˆ†•€–†ˆ‘z‹‰…„’u€Œyt™‰‚q—ƒ‰{œ®’“w…„”ƒ„Œz}Šˆ}ix¬‰v–˜—°ˆ ‹pƒŽ…€’¦o”z{„}“‹’†~…‡ˆ€©t””¨†z„ˆy‰’£‚—|ŽsŠ‚‚ku‰—t–ƒˆˆz…„r…z…‰l‘}ŒŠ’¤†€‡|’‡{Ž†Žž•„†‡•Ž“y‚v…“~z˜‰~›†|‹‰‚Ž}€†ˆ€‚^y‡…‘‚ƒœ‡„y…‰‡}~oƒtp„ކ‰ƒŠ†‹…ƒ†‚†~†Š‰}„ˆ…‘xu|‰ƒˆ~pƒ‘}ˆ†tŸkŽ„„wj“ˆ‚‚}‹€uƒxm~|‰|w„“‹n‘…|ƒ‰—†uƒƒ{r{†w‚~}‰x†~ª’€‹‰{ˆy’‰‚‡Š”Šw†{|uƒ{‘Œ‰‚ƒyur~vƒ~x‚‚‡‚‹„€‘{wwzvˆ‹‡„„‡„‹…ˆˆz‡Š‚uŒ…~{‚~x€w‚€‰†……„{~}rކƒw‰y™“•{’sŒŽz~‡‹Œ–І‡šˆ–’Žˆ“†…‘ˆ€s††™yŽ’’‚’}Š›µ›Šƒ„–š“•ˆ‹ˆŸ†…„‰€Ž“ˆŽ‹…Š‚s‹vx€x“˜Ž‡ˆˆ‘އ”……•†Ž‰•”‹‘‹†}•Š—Š‚š†‚ ‘Ž–‚Љ…|“š…‹„†ƒŠ†Žˆ‘‡‹‡ŽŽ‰ŒƒŠ}’ŽŠ‡Œ•Ž…›”†„†ˆ‘Œ†’Ž‘’‹…”ˆ‘‡ˆ‹‹’Œ…’–Œ˜ž‰‹•{Š‹“{Š’~—Š“†•—‰Œ‘’…‰‡|„†‹zŒ˜™†‰‰‚Œ„ˆŠ{€ŠŒ{„’‹Šwˆ€{‡Ž€Ÿ‚yŠu’„~ˆ‚†a†}‡„†} Š|”‚ƒ‚o†on†ƒˆˆ‰†„qƒ~†‘|‹|…|ƒ‹‹‰zvt~ƒ‚މo}{wtso‰~ƒi“ˆƒy‚‰Œ}‹uk|…ƒz‡’Љlƒz††ƒŽ…Œwˆ€sy†y}‚Šv……±Ž…ˆ{‹w‘Št„‹Š†u„s{rˆs…•……~z‡v|rr‚…{‚‡…€‰ƒ…„€zx{†Ž|~t|Š„„‚}~‡z‚‰tw€qˆx~ˆwƒ„„ˆu‚ƒƒyŠ‹|‚ym‹†}u‘Ž˜†‹†•†…{Ž|€‚„{„’„ˆ„„€Œ“Œ~ˆˆ˜“€Š“ކ‰ƒŠŽ‰‰‡“’ˆ““‹‘“…††‡{Ї€†‰ž“Š‚’ƒ€‘x’ƒŠ‘ˆ‡ŒŒ†Š““”xŠy“ƒŒ†‡˜‰Š„Š™ž“Ž‚‹Œ“ˆ‹ˆŠ…‹†€Ž†ƒ…”’•‘Œˆ†‹„ŠŒ†Œq~Ž’‘„‚{…’‹†‘Šz|–…Œ‹’ƒ˜†ŽŽŠŠŽ‹Š‚Ž†Šˆ‡‰…‹ŒŒ‰†ŒŠ•‹—x‡Ž‘€Š”ƒ‰‰™‹ˆ…’‹‰ˆŒw…ЙއŠzƒ‰ŒŠŠ’œ•ƒ}ƒy‹w‹zvˆƒ•|Œ‰‚z‚s|Ž…ˆ€m|‡„‹}Љ”Žƒy†€‡y„q†up†|vˆ‘„“uˆ€„}…†yŠ~‹€‰ƒ‘|ˆŽtz{…‰„Šp‚Ž€}~ytjƒˆ‚|j‰w‰‡ŒˆŒtm|„zƒ€Œl}{„’x„Œx…„yz{}€…}†Šx€}¯Ž„~||‰y‘…yŠ‹‰z~y|u…|}–ƒ‚…„}{tu‡†‚‚‚†|…’Š‚€~zz}ƒŠr‚„}Š€‡ކ‚€‡‡}w„Œw”„x|Œˆ€…w‹€††‡†…ƒƒ~q‡€|~~ž—ˆ˜T’ŽŠƒŠˆ‘”Šv•x‹—ƒ‹‹…š~‘}Š“Šwv‹ˆ„‹w„ˆ“ÿ”Ž•‹‹Š˜Ÿ‹ƒ›“ ¤“q…‚™ˆvž†“†€p‘Ã’‡—œˆ™~†ƒ††“€–z›†Žw–‘†ˆ~„„™ ¯›}™‰nžŒ~Žy ”‚†y“„”¦‰†‰…—ˆ…€ŽŒ‚†ŠŠ‡‚ˆ–‰y‚†–•‘Ž}š~ˆ“‚Ž—ƒ‚‚‘Œ|‹¢ˆ‘“|•‘‰‰†|…¡Š•Š’…ªˆ¢•„†ˆŽ‘u‘•‡†Œ‹†’‡“}|Š—Š…Š„•Œ‘†‰•Šš”ˆ“€|ˆ“ƒ{…p’‚Іvw~r|†|uzŽ{}™€}{ˆ’xq}~{jzwƒ|t…{}ysƒ~}ƒpm€rvxpƒzr‰wq{n’|‰~s†…}sxw~†ŒqŠtw„‚u€‰zvr{€zˆztvq’unz~‚Ž…~}{„†~…{„‚v‡z|~„~‰ƒŽ‚z{yކ‰xz„~wy…u…—‹~up…ˆ…Ї„{zw‚‹qv}~†„Ї|yƒtƒyƒ…ƒƒ}…z“v€wwx„€~„z‰‹}‚ƒ|…‹„ˆ‰Œsz‡†z†sw„{ƒ}{†‰‚vІu”yŒƒŽ}‰~‰y‡•}Žx{ƒ„‘Ž‚~™}…„~vƒywŒ‰„‰n{‚ІŒ…†‹||‚…‡‡‹r‚pq‚€~‰Ž‹‰{Œ’…‰yŒ|‰wƒ~Ž—Ž™zzr~Ї‰p{†€r{tjˆ„z—j‚„˜Š“‡ƒƒ|m}yˆ‹„m€x‚ƒŒ†Œnˆ…xy‡ƒ€Ž‰v‰­–‰„Žz†w“pƒ‰†„{r{sˆw“‹€€ƒ{”}zoƒsƒ~‚ƒ‡{ƒŒŽ„ƒ‡uy†Š‡|t€ƒ‡}…~ƒ“…ˆv‰ˆ}sŒŠ€•‡~xŒƒŠx‘‚ƒ…„‚Ž‚xqˆ†vzˆzЉ†ŠŠŠ€|Ž˜{‘‹ˆ„ƒ“~”“}Š‚w›Š”‹‡œ–Ž—…‡…ŽŠ¦Ž–‡š‹”‘’™„ƒ˜™‡y‹ˆŒz…’l}ŒŒ}‹”…Ž“|››‹‘ˆ—‘„ŽŒ˜w€“’˜žƒŠ•’Ž‚˜ƒŠ‹ƒ‚ŒŽŒ€„€Ž”‰’‰Žˆ‘‹‹ŽŒ‹‘Œ††‘~‚“‹„“}}Ž…‡…‰Š–’Ž‡ŠŒ“„‰†‰‡ƒŒ‹Œ‹Œ•’|‘Š|Ž‹‘Š~”†|„‰ˆ…ŽŠš•}Š‚Ž~‹‰€‹˜‡Ž‹•‘”Ž™ŽŠ‡‚††ž…‹‘Œ’‡‹‡v¦…¥™‰|€Žx›zˆm—z‡}†•‚ˆ“„urŠ|€‘¡y—nŠ’tz}z‘ÆŠr…{Œ‹‚˜‘~•…”¢—~•c—€žŠ‡… Š’†z‚‰xxt‹‘ƒ„pˆ‚wzyuƒkw‰zz“ˆ~•k‹‰qv¢ƒ~‡”rv¦€lŽ‚|„y‰ŠwŒ z|w}‡„ˆŒky‰‹”ˆ}|wl•Œ‹}¤‡{ˆw‹–…Š“Xu~€u‰d…†€–„wŒxxmƒ‘w„”x†“x‰«ƒˆuuwˆˆƒ…‡~‚†|†’’¦tˆ’†€‰pƒ|ƒ‚’‚ƒry€z…|ˆ|y‰Ž€ƒ~‚{†‚Š}|‰…™‹~Œ|’z„„„m{†‡…‚…Ž‹“‚w˜Ž„Œ†…qƒqq„~‡Œ{u„uƒ†…‡{}‡~‡…ˆ‹ŽšzwxxŠŠˆo€‹‚v{‡t kƒ…~j‡‚†‡‹‚‚Š{l}ƒ‡|ˆ€‰†lƒz„‹{†…ŒuŒ‡}uz~}ƒ}‰w‚ˆ°~‚†x{‡yމv‰ƒ‡ƒ€u{uv„Œ}€€€Šƒqƒt†€‚†‡„‚{‚ƒŽ…z{‡„~€{ˆŽƒŽƒŠ‰{}x‡}“}‚†ws‰……„w–€‚ˆ‡‡„‰Šp‰‡y{Žw€xŠˆ}ˆ‡€€w‚ˆƒ€Ž…}ƒ|t|u†‘„†€‰‡…†Œ{€|’ˆ€‚‚—u…rt†{}}†‰‰–|oy‚’‰vyx|‡z|‹™‡wuxt’s‰uЉqŽxz“j††yœp~ŒzŒ‹zˆ‹‘ƒm{|}x†Œx‡oxu}Ї‰‡uzm}Š”ƒ„‘“w|…°‡„ˆ–zy‡xo‚~†”…‡suxp…u‰€v‰t‹‹v„s†‹€†Œrƒy‹€‰“w‹†„|„w}‚“ƒ|„~މƒŸŠyuƒŒ€ƒyzs‡’‚„vމ|ƒ’}…{ƒn†…ymxvŽŒy…„ˆŠ’’‘“‰Ž’Œ••„ˆ“Œt…‰‹‘Œ…‹Œ„€„“”†ŠŒ‹–‹Ž–—އ‘‚{Št‹‘Ž€‹ˆˆŠ‰“sx‘’~–“†‰Œ‰™‹€˜’–Œˆ’Ž’Šˆ‚Š–ƒ‚“‰|˜|އ‹†‰ƒ…}Ž•€†˜…ŽŽ…‰‡‘Š‹‹‡Šˆ†„‚„Ž„†z‹ƒ…“‹’އ”~“„—Ž…“ˆ‹‡’ƒ…”‰‰…†Œ‹‹Œ‰„„‹‘„ˆ’‡ŽŒ…Š„‰ŽŽˆ‡ˆŽŽŠ‡ŒˆŠ‰ˆ‰’‹‘†…‹„Œ—‹…’‘‹†˜Œ‹ˆ}vމ’‡ƒ‚˜p–‰ƒ†”|–ŽŽ‡‹ž’ˆ˜{‰‹ƒ‡†‹……Š–‡‹–ކ‰ˆ|{ƒ‚“Š˜{~ˆ•™‰ zŒ‘„‡Žzˆ†„„Œ‚†œ‹–‘Ž™|‹‡‘‚…–ƒ›…„—‘Š”€Œ•ƒ{€Š‚Œ’™„ˆ……Žˆˆ•ŽŽ‹‡ˆ‘„†~’”Œˆo“Š~‡‰—‹‰‘ދހ—„‰’‡Œˆ“ŠŒ‘Š‹‚”‰Œš†„„~‡‚‘‹Š‘}‚‹‰‹‡Œ„†Ž}Ž–ˆŒ‘‘‰ˆ‹w–—‰„‚Žˆ”Š’†t„y‚†ƒ‚„†~ˆv‚‹Œ†‡…˜Ž{‘Š•–v•‰o‚z|‚›ž‰zˆŒ—‰{›ˆ’—Žww•}šm††„‡§–‡Œ’…w‰’€Ž™„†p‘ˆxƒ„j‡—Œ—…ˆ‹‘„…‘†Ž† ‹‚z†x|‰…“”‘‹“‚k•v‰tŒ…“ƒ™…„‡”…ˆl„¡ˆŠŒƒ™ƒ}‚“˜~†u‡‹|ˆ’‘~”„“}†‡{…†“’ŒuˆŽ•’’…{†ƒƒw’ ‘„›y|…•ƒŽ…|‚•ˆ—z‹Œ„€”’ž…‰…Ž‹}ˆy†Ž“ˆ“Šuˆ•ƒ”…‚ƒ†ŒwŒƒ{‹ƒœ‘iŸszo›ŽŠ„ˆ…ˆ‘€xv}„‚–‹†|™„{Œ{“„|~…Іgu„„†…’†‹€…‘ƒ‡€€p„ps€†„‡Šˆ‡‡xЇ…ƒ‚‰~†ƒ‹ˆ”Ž“xwy‰ƒˆ…€qyŽ„zw{užl‘ƒˆk‡†„†‘‰ˆzŒ}zn„‡z…‡’ƒoŠ‚‡‰›Œ‘q†…|oz†{„‚†x†‚­šŒƒˆ}‡y—ƒ~Œ‚‚q}u‡rš€…ƒz‡{p‚v}}~‚„…ˆ}ŽƒˆŠ}z~ˆ~}ƒŠ„y‚‚‡‡ˆv‚Œzr‘€u‰v}†„‚}‡x}„‚Š„ˆ„„„wtŒ†{{…‡†‰…Š€€w…€€†Ž{Ÿ‹‡Ž‹}|€ƒ`vŽv„‡{•…x™‚†Ž…€o|sqy‹„ŽŠ‚}Œ‚}‡…‡ˆŠ~І“€Œ…’Žœ{sz†„„vo€}ƒvŠtŸh€‰i†‘‚z“‡p‡†}l}Ž‘n‚œ~n†…uœ‰Šq†‡v{Œw„‡}‡x‰{´ŒŒ‹ƒy‰z‘~†…˜|†q|uŠ}¥…ƒƒ€žlto€t…}q‚z‰™“„ˆ‘}w|zz‰Š~{‚†˜‚ƒŒ€ˆ‚‹tˆ†ƒu†‘ƒ…‹zx~wŠ‚ˆ‡Ž…€…„~r‹†|xy‹Œ‚{‡Ž‰‹Š†Ž†‚–~‘…‰w•“ƒ…‹‰‰t„•€‡Œ‹‡‘Št„‰sˆ‚„‹–••Ž‹†‹‰Ž‡’Œ”‡Œ‚†’ƒ•ˆ’tyqŒ„ŽŠŠŠ“…‚•Љ’‹Œ™†•”Ž’‹‹†‘‡‡{„†•Š€{†‰‚ˆ“ˆ‹„…‡zˆ‹Œ˜ˆˆˆŽ“‹•„‡Œˆ„ˆ–‡“ˆ„‡”ˆ…Œ’‰†‰†Œ…Š‚ŽŠ„†“……‰Š~ŽŽ“‰Œ”އŒŽ”…|‡z‘”‘Š}‰…‹…‡Œ‘‹‘‡“‹ˆˆ’€‰‰‡„‰Ž‹‘‹„‹Œ„„‰{‹‡Š‹…ˆ}‘„‹Žˆ•š„„…ˆtŒ“‡“…‚…‡’|‡’“ˆtŠƒŠ”—‰‹‹Žˆ‰‘‰‘Ž‹„Љބ•ˆty‹~“ŠŽ‹Ž‡•‹†“‹‰˜‹‘’’…Œ’ƒŽ’}Ž~ˆŽŠ~”~ˆ†Šƒ‰†{‡Š…™‹—Œ‡„‰‹‰‘ˆ€‰‡ˆ‘†‹Œ“†‰…ˆ„‡“†‘‡Ž…‰‘…•ˆ‡ŒŽŠ‡}‰’’‘‚|‰…‹’‰’Š‹‘”‡ˆ…˜ƒ†ƒ|”Š…ƒ‹ˆ‡‰ŒŽŠˆ…“†ˆŽ‹Œ‡Š‰“”†‡Œˆˆ–’‹zŠ‹‹‡†‹‰‘|•ˆ”Œ ”’†Œ’…uŽŒŒŽ…ƒ•‹‘‹‘Š” …Ž•‹‘‹‘Š—˜‹Š’‹‡ŒyІ€Ž‹„ƒ‡„†Ž‰‘u{m‹€’–Œ•…‰’Ž…—’‘•Š’’Š•‡‡Š’}‚—‹‹„†Š˜”‹Š•–„‡ˆ„„ƒ{’ƒ“ޓЇ‰‹“ˆ‘‘“†„~ˆy‰…”|˜Ž‹|ˆv„”‰’Œ”…„Ž…Œ†ŽŽ“—…Љ‹†Œ‹—ˆ‹ŒŽ†‰ŠˆˆŽ€”ŠŒŠ‚ˆ”‡Št™‘‡ƒ††~šˆ‡Œ‹‰˜Š†~“„†ŒƒŽŽœ›ˆŠ—‡’ˆ‹‰Œ|ˆ‹Œ“‹ƒŽ•ˆŽŒ{––ƒ…‚ˆ‡tŠ’…‘‡Œ‰ˆ•‡~‰Š‡t‰{|ˆ”’“ŒŽŒ“ˆˆˆŽœ‰‡…ŽƒtyxŽ‘Œˆ~Œ†—†•’|Ž˜…Ž‘‘x{†‘ЇŠŠŽ€~•}‰ˆ„ІˆŠƒ…z‹‹ƒ–‡ŒŒ‰ŠŒŽ’˜ˆˆŠ‰‡†’‡ŒŽŒ‹„…‹ˆ‹“†‰“„†‰Š‰‹‡Œ„†ƒ’‹“†ˆ‰Š†‡Ž‘“‹’Œ’•‹ˆ…~…‰}‹ŽˆŠŠ‹ƒˆ’ŠŽ•…‰}‘ŽŒ†‘‘Š‘‹ˆŠ‘‰’…‹‰‚Œˆ‹{Іˆ‹‘މ‚„—‡€’‹Œv“€„‚Šƒt†~Œ‹Œ†Ž‘Žƒ†’Љƒ†Š‹˜‘‘Жމˆ…†~Š˜Š‹‰’„’Ž’sxm€‹ˆŽŽŽ‰–‰–‰‚šˆ‘””Ž•x‡‚–‘•„{Œ‡–‚}–‰…„~…І€zŠ‘„‹—‚‚ˆ‹Š‰™ˆ“•—†ˆ†‰Š‹•ˆ—Ž‚†Œ„Ž’‡Ž”Š”ˆ‘†‰„‰‡‹Ž‹ŽŠ…Š‹“†…‰Œ‡Š‡‹ˆˆŠ‘‹‡Š†‰}މ…‹Ž~……’އ•†‹‰ˆŠ…Œ…—ŠŒ‚’’„Ž’„ŒŒ~”™…‚{y‰‰‚~—‹„~›„~„€{Ž}xŒ‡‡ƒƒg|‡„ˆƒ…Ž|…„ˆŠ„„q…rryŠƒ‰‡‡ˆ„†…„Š~–}†}„~‡ˆ’Žxxy}‡‚‹„p}ˆ‚}q„ukŽƒ~zjŽ„~‡†’|Š…mmƒˆz‡—ˆŒ†ow{€ŒrŠ„€vz„€ˆ…x¯™…‰€|x•Š{‡ƒ…~{r|s†yŒ‹€„Œ„{r€tx‚‚‡ˆ“Šz”|yw†Ž}‡wЇƒ~ƒ~†ŠƒyŠ…xˆƒw{‚ˆ{|v}ƒvƒ~‚ƒŠ‹‡|{oІ|~‰~zoƒ‡†‚qvts}š€r‡oyw”~vn€”‹qmzxxz‚j‚ƒuxywr~{l€buw|zjk}zr†zg‡v~tz‹s{xnsy|qz|€vxhkˆ|ys}y}}„}z„}‚q{m~hjzsyn…xqvt€€s~x~p“~yv}|€€šp‚wpuwv…orxt}}i€€€}}twy~€jw{„}|z}kqyzw|ƒupzu‚zy‚yv„xuvxzƒsyyxwz‚{pv€„{k~}…v}{Œy~wu{npz|zss}||xvyxt|xˆ‹€{~t„Ž‚{vxwІu¯Š’““w”mc•~n~•À‰ŽŠŽ“…–‘†Š’‡|˜–”~ˆ[’€’—І›y“–Ž‘pˆ‚p‚ž†“Ÿ‹s‡Ž„w•ƒ–~‘‘Œy‘’”‰—šˆ”€mŽ{ƒt—“Œ‡Š”‚sr‘‚ŽŒ•tƒ‰¡z„šŒŸ€‰j‰‘›™‘Œ”šŸ’nŒ’}q“o‚“‡‡‡‘}wb‹••”ˆ|…މ‹Ž˜Žpyz~‹Œp“Œ’wˆx}t€Œs‡Š‰z—‡‹“•……‹‰†‘’™“}r‡‹“~‡‚ƒ†‰wd“s}‰yЇ€‰p‹w–©Š„w€‡ž{€w”z‡††~‹|‘‡|‰ˆv‚|w‹{~fƒŒxˆ˜‚ˆ€Šˆ„‚“~nnrƒ‰yƒ‰‚ˆˆ”z‹m††|‰z…‘‰z~‘kˆ~zu}Œ{†—€n„ƒ|~ys•j‚yˆk“ž~yv”htœ…{jzƒ}‘wƒ†Ži†”„ŒŠ‡q~~‡g}„€‰Šv†}…s©˜„‰†ŠyŒˆž…{yz~wŠiŸ‚zƒ~…o{t‚nt‚}zˆˆ¬‘ƒ†„i‰x}‚t„g‚‡”ˆ…ƒ}h…›v|‰sz‚~q~~|¡’…b†{vŠ‚“‹‡€z‘rk“…Š~ƒ‡~†}|‡tƒ†€{{ˆ“|–x‰yxˆŒpz‚|‹‚€Š}uЇ}‚„‹o{oq{‚„ˆ„Œ‡wv|‹‰y…~‰~Ž‹ŒŽ|yvw™”‚Šo€……{‚vrœi‰}jv|z‡–Šƒxƒ~l{„†u‡„‚~l€l‡“ˆ‹s‚‚}z„€„‡Œx‚‚ª–€…{q}w‹Štޗއ‚~ryr‚Š•{€v}“s‹m‰rŒ…€€|†o‘¢Œƒ††{|…‡‘u{qƒ’‡|‹ŒŠyws…~’~ƒvŒt‡{ЇwƒŠˆ†‘ƒˆ†pqŽ„~Ž}‰…Œlr°}ƒ–™­ƒ“ŒŒnš…s’’²ŒŒœŒ”‡”‹‹Ž‹‚‘‡”‚ŽŸ‰šxr‘‡›“‰‘žŸ”‡v‘‰wy±r‰“j¤¡†‹‡šˆ†“ŒŽŒ‘{›€‰ƒ‘“ˆ„o–Š“Šx›—‡‰‘‰Žg}—ƒ“u‹|™r†…–‚Љ‘p’n…ދВ‡—›’‹y‚Œ…v}¡š‹ƒx–{„mv–—”—‰™‹“‰ˆ’Œ•Šƒ”v•}˜y‘š{n‚‚‚j‹‚ƒžs‹ƒª~—‚’†Œ…‚…ƒw•†Œ ’Œt…w“‹rƒŒŽŠ†t}o|‡s©€…}}~››•Žƒžˆ‘ˆ‹€Œ’x’Œm~‡zv}™Ž™€“y‡”†…€‘~€“Ž‹–††Œˆ‡…q††•…†˜‚‹ˆ‚qvއ~„Š€”Œšˆ›ˆ—‹ˆˆš‚t’‡Š€‡‰y‘–˜€…~k–zŒ~y“˜—qƒŠ|„’‡†•…€w““}—‰~kœƒ“„¦Ž•‡œ—•s‡z†”o}’ˆ¡|އЇ–Š‰ŽŠ—‰œŠ…Š”††ˆ‹Œyu{•ym„—ˆ˜†}„„’|{–k”‡„„|~œ„…†˜“|xˆ¥~‡u|ˆŽŒƒƒyŠ}•{‚€Œk~‰“‹†ŽƒŠ‡s|†w…€”|†€–€wŒzŠw|€ŠŠ‚†k{…„‰•…™’{}•†„‡ƒ‰r„spˆ€‰““‡‚tˆ„‡„‡ˆ~ˆ€Š‘މ‹xuv„“‚‹o{ƒ~tu}s›k‰…y‘l€€vƒ–Œƒz‰|kx†x†ƒˆ„Žm‰uˆzˆŽ‹‹Œ…u‚‚„„ƒ††rŒƒ²›~ˆ†w}}Œ‰s‡ŽŒ|}zwu‰w•{xƒ{yo…uƒ‰~ƒ†s|”‡ƒ„€„}{ˆ…‘{€n~ˆ~„‡„~{†{€‡‚zu”…s}†‚}|‹Œ…Žˆ€ƒŽˆ{Œ~uo…†‡‡~Š”}–˜‘†€y‰•„~~†|™„…‡‚v†tyŠ…†n}~ˆ‰……†‰z‡wŠƒ„ƒqto‰ƒ‚Š„†‚ƒˆ‰ŠŒ}Ї‰Š}Ž“v{{ƒ†‚‹p~‚Šv„tœmˆƒ~j€‡‡Œ‹…‹ol|†‡{‘ЉŒŒowƒ‡‰|Žƒv‚ƒ€uz‚|„|x‰­ ‰~}x’†‰Š”|}||t‚v~‰„ƒ†‰xwqƒt}Œ}‚‚Œ†”Žxzyz‰ƒ~o…†„|~~†{…wƒŽ{u‡Žw€‚}~‘€tƒyˆ€ƒ‡‰‰‚…zoІ}uŽ€–”ˆqÃsr|~•›Ž‹‚•…‘~‡›ˆw‰xz‘¥Š…yŒsˆ”Œ‹¢Ÿ…sޏއ„s‡‰–›s”š‘…tr…—yyR“m‹‰v–vˆŠŸ…{|†Š€Œˆ‰m™|”s—y—t‘ƒ‡€}z€qŠ„‚x‡”Ž‘…‡‘…t…Šs—“ަjšˆ”™‰z†ŒzŠx}p—£ª|‘’’—†uq–’’zŠŠ…†~”šl‡€zwz…wx‘Œruƒ…Œˆwƒt€¡•t€ƒ‰…ˆƒ†™t„ˆ‹˜Š‰„z…i……sŒ{†ƒ‰‡‹„x—‹~Š~•‰‰‰Ž‚‹‚ƒŠŽ‡ˆŒ’–ˆŽ‰‘•„‹†‰u‹‘‹‹‹‘ˆŒˆ„~‘’…‰Š‘ˆ”‹ŽŽ˜†Œ|‡€†ˆŠŠŒŠŠ‹‰ŽŽŠ‰’v|¨ŽwŒ‹ŒŠ‹ˆˆ“–‚’‘‰†“ŽŽ„‘‘“…Œˆ‹”Љ…Œ‰–އ}”|†‘‚‰Ž€Š‹‹˜‡„•‰‚ˆ…‹ŒˆŽŠˆ‹Ž‰‰‡Ž‡‡Š‹‰‰Œ…ˆŽ’Œ“†•ƒŽ‹†‰‹‹Š‰ˆ‡Œ”„‘„ˆŽ‹Žˆ–Ž…’ŒŒ‰‰—…ŠŠ‡’‹†Œˆˆ‹ˆˆŒŽŒˆ‹†‚„ŠŠˆ‹|†‰„š}‰„ˆ€–ˆ—‡‡†ƒ‹vŒ…‚€Ž†l‡{ux‘‹‚|p‡…ƒˆ—tˆ‘x‡zƒ•†…€‰|m…wtoˆ~‡{އw‰ˆ‚‡‡~{w‹ƒ…†ŒŽ†vp|‹“Š˜o}ˆ}…‡wv”{…~z‡‘‰q••v|„uw‚{˜‚Š„‘r|މ„„‰€p‘‚x~[‡sŠˆˆ„ˆ£ŸŒŒx’‚‡|…v‡Œ‘‰z‘|x€‚N—…zy~”~‹p‚x€}sr‹qˆª†ˆ€€tŠ}{†‹y|vŽ{›…|‹zx…•‘€“z…Šy{~y~lœŠ”|x€}‚…zzއzo}…h†ˆŠ™€€j’…~z}y€{Œ~wtyw|‘‚~}{…™†yz}ryz’{hŽy…}t€||r‚w„vm|szwt‚~€€‚xw|w„uq€Ž††~zxw…Šp‚ox‰u‰‡‚yw|‚‚x}Œrxt‘wr€{€‚‚|‹ƒ‡€…wŠƒzˆwz{„„~ˆ‘||~Ž‚Œ}€ƒ}y{„t‹š~{t‚‡…ƒ€…x|Œƒru~€…‰‹‚|zƒ‚x’wƒƒ€Š}‚}y††twˆ€€‚Ї‡~‚z~ˆ…|ƒŽ|‚„~xx‡}u{„~€{‚Šƒ…wЉz‚~‰ˆ…‚‡€…y‹…‘zŠŠ‘’‘ІЉނ}ˆ’‹—‰€Œ’€„Ž‹†t‡‹ˆŽŽ’€Œ“ƒŠ†Ž‡ŠŽ€“Œ–Ž‘‹‘‹‹•‰“‰€ˆ„‡ŠŽ—x†‡Ž’sxg€“Œ„ŒŽŠˆ‘–—ˆ“‘ŽŽ“ˆމŒ‘•…Œ”ˆ~‘ŒŒƒ†x‰ƒŠ|w‹’ˆ—ƒ{ŒŒ„‹’‚•‡—ŒŽ‰‘–†”‡Œ‡ˆ”‡’•ŠŒ“ŽŠ„”‰…‹‘‘‰‘…Žˆ†ˆ…Œ†™’‡€‚ކ‰ˆŽ‰‰’†‚“Љ|Ž‹‘ˆŒŒ~ˆ†”Œ„’ˆ‰ƒŠˆˆ‡€‡…~‘ƒ‘†“‘ƒy‰†z|yur~Š{t‚†zz™{z|y˜Œvw€w€xql‹}y‚zxŠ|v…n|~y~{n~|€ztˆ}w‰~xx‚ƒŒxx{Œ„„v~{z}t~mw…~v}|yw}‡€ˆ€†vƒsuv…urw{‚†x…|s‰|‡xs„}vz‚€vƒ—~yx‡‚wƒ€€vv}„•‹…y{€‚}Š€„v~€{uy}w~ƒyr|€€}w{w|{|ƒ}Œyxry†~ry„‡„ƒyx{~€‡Œ€|‚ˆyzxƒx€‚|y{}{~w‚‚‹~‚ƒƒ„ˆ|ƒ||‡x—zˆ“›€~Ž}}‘„†~‚ˆ‰£ˆ†v„“}€•w‡~’‰ž£‹“‡Xo™“rŒ|‘{zƒ–Žš¨ƒ‹ŒŒuzƒj€˜‡x‚–}Š“…†y•~|Ÿˆ€ˆŠ¡y…~†—™…†‡š“ƒŒŽ„}“„v~\zyŸvЉƒ‹“›‚“’~„„„lw…uƒŠu|‹‰ƒ••‰x€„’i•…‰}rSŽŒx€qˆ……‘’}~”tsl††ˆŠ†Œ|ˆz€ƒxƒ‹‹€eˆ‚‡†‚…pˆ…‹|‚‡‹„¡€‡‹Œx{…†„‡{‚ˆŠy‰Š€ƒ„‡~v‰‡‡rˆ‚‘‡’v‹“Ž‘„’‡ŒŽ˜’‹Š‰‚u‰˜¥‘‰‹œŒŽ‘†œ†y…ƒš„“‘‰…Œ™„Ÿ”Œ•Œ‡˜„ž’Š€zƒ‰{oœy†—wž““„Ž„…–ƒy‘Š‹‹€~’……“‘ŠŠn‘}”}u—ŒŽ•‹‡’”–Œƒ†u€’Œ™‹‡‚‹‚“ƒ€‹yˆˆ‘•™“wŽˆŠwŒ„‘‘ˆ†‡•ŠŒ|p}’Œœ‘ž‹ˆŒ‡ƒ•wŠ„‰ˆ’…ƒ†’|‹~x„‰•‰ ‰ˆz‘‘‚ƒ‹x…‘•‹‹›Žu„‚xˆŒŽˆ†‡˜twŽ}š…sƒ…}‚’™Ž“¡¦‹›u‡‹‚ŒŒ••‘x„”š‘ˆІ‚z‹•‹~|¡ŒŒ—xš‡¯‘Š˜•˜œ““›”§x†vˆˆ†Š…|•ƒ‰yr‡‰––„•‰Ž†‰”‰‘…˜ˆ™‹‹™‹•yu•ˆ’Ž{ˆ‹‡x—‹”Œ“Ž|Š‚|—•‰‘‘ŒŠ‚‰‡…‘Š“ˆƒ~‹‡œ…‚‘‰…†ƒx†Ž‹“–‘„‘†Šˆ”†Œ•ƒ…ˆ‡‰™†ŠŒ™ŠŽˆ†‹—‡”’‘’€‹‘†v„…†Œ‰ŠŒ•‚Ž€‘}•”Œ†‰¦œˆ€Œ˜ƒ……„‡–‰…‚‚x„~Ž|†Š†œ„€‹Ž‚zz…€’…ct‡{„ˆ‡ƒ…ˆ‚v—„†p|sr|€‚‹Œ{Œs‚zƒˆŠˆŠˆ€†ƒ€ˆ„‹Ÿzw{ƒ„ƒ‰€o~‚…}ŒuœhŠƒ†~jˆ€z‡‰—{„xm}z‹{Š…ƒŒ‚m‚†…ƒ’†r‡‡x{}w…}ˆy„~±Œz{‚{˜ƒ{‰‚’‚s}w„Œ„„…˜wtq|w€{‚z†}’…Šz”}|o{v‹~€…ƒƒ„’€€“‘}“{ˆƒ…uŒŒ™ƒƒ‡…nŽz‚xŒ~‡†‘ˆ‚‰r‹‡z{yŠŒ„†ŽˆŒwŽ}Œ‚~ˆˆ~˜‡}‡Œ‚zwyƒ€‹„‡l}†‚†„„Ї€xˆ‚ˆˆƒ€p„toˆ‚ƒˆ—’€x‘‹y„•z}Œ„ƒz†Žv{{…€ƒ‰ŠoŠzuotŸm„€~ƒj–•zŠ}–zl„…{‰„†…lƒ“…†’‡‹{‚ƒ…xz…x„ƒ{ˆx³~Š…|‹zŠzŒ~}|r|uŠu‡‘ƒ†~…syq~uz†‚‚~‡|‹•…‰‰‚}zzˆ‚~t{‚„‚{†…y€}q„}tŽ€€„~†Š‡y„yŒ……‡ƒ‘‚„}p‡ƒv“‡˜€ŠŽŒz~•‹Š…yo{v€ƒˆ‘‰–Œ‘ž“‰„ˆ“‡‰{…„‚‡º‰“‰ˆy’—†ˆŠŠ„r—ˆ‘••†dˆš‡“ƒ•—p…Š„•˜“…‘‡ƒ’|‡Ž‡•zŠ}›œ†l‹y†…|“t™“Ž…”™‹¡’Љ…‡’nŒw”‹Ž‚†”„}…Œ”–Žx”’Œvzƒn~𛑉—‚x€”{™Š‹††‘ˆ€z™ˆ~–~x˜…‰…‚—r„”ƒ„‚Љ‚†Ž‹”z“w€z›Œ‡”“Ž‹“q•‰‹«‚‘”™|†‡|“š‰z•~‚Š•ƒˆ€|tn|“Šƒvuw€‹„ywˆz†~ˆ‚~w•yxx†w‰p‹~€}|~uoy…zq‹…ˆz…m}uy}u†~€Ž€†}|Ž{x{t…}{tx…‚„Šxqpq}z‚ƒtz„kyŒnƒw€†e‚‡vy„zw|~qv~‰‚{w€uxqˆ€„~w€y…v}†ytz†€wt„˜z~}~zz„zq}wt€rowrŠou}zs‚zl‚ƒtv}…„z€‚’{tˆ}{}Ž‹v{ƒˆ}|z}‚w…{„ˆƒ€~}usp{}qtˆw~{‰w†|w†Œ…ƒ†…‡w€‚tyˆyЉŠ{‡ƒ‹ŒŠ‰ƒŒŽŠ~”‹“Œ“€‚„†s„‰‰‰‘…‰Œ…†Š‘‰ˆ‡‚Œ‰—ŒŽ•Œ…†Ž‰‹ˆ„†…ŽŒ‰‡‹Š†Œ‹’tws’~‘Œ…‰ŒŠ—‰Œ•’Œˆ—‰’’’‘‰‡‡“Šˆ‡‹“ƒ€–~‡†Œƒ‹‰~xŒ—ƒ‡˜†ŠˆŠ‹“„’•ˆŠˆŒŠŠ„†’‡“‡‰†Œ†‘‰•‰–ƒƒ‹ŠŒ‘Š‹’‹ˆ…†’…“Œ‹ƒ‹ˆŽ‹‘„Œˆ’Œ‘Љ~‹†‰Œ‡ƒŒˆ’‰‹Š‹‡ˆŠˆˆˆ‚‰‚Š“ŒŒ‰Š€‰…‘‰‰ˆ{}ˆ}x†…“‚„ƒ‡…›ˆ€Šˆ€v|v†‚‘ƒŒh|‚€ˆŠ‡~€ƒˆ}v‡‰‹†Šp‚rqŒ…‡’†–Š…n‘‰‡“…€{„ƒˆ€ˆŽ…Ž”~q‡Š‡‰p‚„ƒsut¡lˆ}Šj‘“†|…‰‚{l~†z‡‰‹…oŒy’ˆŒu†„{|zŒ|‚‰u„„¨•‰‚~|Œx“–{…‡Š†}€q{s‹v‰‡‡~…|•€~n|tv‡‚‚|†~Žˆ„†‹z}ŠŠ}„…|}ƒ{~„‹€‹t…‰~o…}€Œ{|†„€~{…xˆ}€…‰„‰‚‚~n‹†~qv„‰u†ƒ‰†yŽ{‡~‹ˆ}}•Œ}”†v€{‡Œ‚z‚oƒy„†vˆˆŠƒ~u‰•€ƒylƒpq~އˆ…tމo‹ˆx~m€€}‘ƒ‰|‰…x{v|†Œ‰m†…~}ˆr›s…‚~p›Ÿƒ‚}’…~–…yjy€‰zŠ€‡”tŠ‹Œ’‰sv{„rx„„„‰{…ƒ§‰„Œ{vˆs‰}ˆˆ†w‚xq‚r†‘‚‡Š~ƒq…€xŒn{wŒƒƒ‡‰‰Š†r‡~t„€w€z‹}ˆ‰‚z„Œ~‚~ƒ‘|x€|x‰|z|ƒƒs~~€ŠŒƒˆˆ~y†~oƒ€Ž~pˆ‡„}}€y{}sv†|~’~ƒ{|Š™‘}‚vp€†|o’{w‰|v|~tƒ€}Šuuˆu‡xp‚xxŠv{{s~‚Žy{}މ…†{v€Š}r‰vyŒ€rŠƒ~ty…w€|vzq„wr‡ˆ~‡…‰u|•}‰ƒ‚Šv‰{t‚}zs‰ŽŒ›€z{xއ„€k€Ž…wp…y”œss„€‡…|‰…ƒz‰sy~|ˆ•zw€ˆo†{ƒ‰z‚~‡{y‡}€swu‡u‰‚‚†‚~Š|„†Œ‚~ˆ‹ƒƒx†}sƒ„~‰x‡„vˆˆu‘zŒ‰ˆ~ƒy‹|’v‚x‡Œ‚‡Ž‹{‚†”‹—‡’’}~Š’‡q€ƒ—’”z€™ŒŒ†˜–‰–‹‘Ž–Š…‹w”|‘|‰„Ž„”††ˆ„‰”vuŒ‘v–‘‡Š‹†ƒƒ‰™š‰™Œ‘‘˜Œˆƒ‰™©—މ‰„•| Œ†–Ї‹‘}xŠ”€†”…„‡†ˆ†ˆƒŽŽŽ‡‹‹ˆ…€Ž‹ƒ}’ƒƒ••‹’‰}€Œ‡“‡–‡ˆŠ„ˆ†Žƒ†Ž‡ˆ“†‹‘‹Š†ŠŠ‰‡—‰•“†”z“–‘‡Ž„ކ‹ˆŠŠ††„‰{Š‹€€‹Œ—Šˆ‚І‘’’Š‹ŽŠzˆ‹…“ˆwŽ˜…“Ђޕ†Œ‡s…‹‹Ž„’ˆ†Ž‘†ƒŒ‘……Œ~‡†Œ’˜Ž‡‰„”‚„•ˆ…‰‡}ƒ†’’tyl€Ž†ˆ‡|‹˜‹‚“”‡—”ŽŠŽ“ŽŒ~‰„†•…•…˜Œ‰ŠŽx•‹„™ˆŒƒ„‰”„Š…Ž€‰‰‡”Љ„ˆ‹€’‘ˆŽ”‡‹‚–†‘…Ž…ŠŽ‹ƒ“Œ€‰‘’‰Œ‹“‰’Œ“‡{Š”‡ƒ‹ˆˆ‡‹‹‚’”ŒŽމЄ‰‚ކ‚ƒ‘‹ˆ‰z‰„…‡Œ{{y‰}‘„v…||•‡u‹‡tsm}xƒy}mŒ†ƒy|‰Šiž~}~|{mŒcp€z~p†Ž{‰vƒtx{u„|z~yy„Œ‡€ntut~…}iƒ‹|izŒ}’f„{dˆw}pu‰‚~„„mzzˆ}}{…†kˆt„‘w€~…x…}ƒp„{u~ƒvyƒ¨h~}Œtx‡xr‹z‚ƒ€w|ynxvtno{|‡lxŒv‡tˆ„}‡€~ƒ‚}{‹vqw‚}|uw‡†}‡|„ƒŽ}†zqtpu†q…r{o‡ˆŒ……s„€{~“‰†z}u‡„y€‹zƒ€w•‡~x„{w{zuur€†}“„ƒ‡ˆy‹{x|€‡€†wx‹}~Žvxy}…‡z‡†{}{}}€vh|‰‚‹‚Š}„|‰„v|u€„x~Œ€‚tq„yˆ“}q}Œ‚l‰„‰tˆ{—|hƒ„qu†ˆttˆx|—z€„sŽqƒ{qxŠ…‚}|ƒzv}u“}…€{}t{¡Š{|Š{‚~pŠ€Œ€„…„{{ypz„‚u{‡{‡x|z‰tƒ~…l‘Ž}qzrˆ…z|ˆ‹€z†yy~‚wˆ†ƒ–}u€…ƒ„„{…||ƒvwƒ„ƒ•Žƒ‚~‚Šr‡†}|ms¯”’€{ƒ~—¢€k‚ pˆv“‘•‚‹„m”Œd’~}“‹ƒŽ‡…Ÿ’b›Œ~¥™z˜¨Œƒƒ‡¨y‘t9‘a•…k´‚†o„x†exzŠ‘j¤x•p‰‚“wq‰is†ˆ‘ƒˆŸˆ–‡„‰‹˜zš~‰† {”{‘k}‘‰x‡Œqˆ•t‹›˜šq‹€u{y˜±žˆ‹Ž”}…v•ª{~‹–y…”ŒŽq|”k€u‘¥y’ƒv†˜„oyxzŒ¥œ†¢zv„yŽˆtt‘†›ƒ˜‡}‚œŠ„‰‚”“€}˜§–‚tlu±ƒ€s‹ˆˆ…‡—‰‰|Šw„“ˆŠŽŸ…Ž‹•‰‘ –—‡y’•{p„…}‹…‰“ŽŒ€{—Ÿˆ“–—ˆ““›–”™˜†‡“€ƒ„|s™‡Š‚‹ˆ‡ˆpy“Šp‘˜ˆ‹‚„ŸŒ‰•ˆ‡—‹ˆ‰š“ˆ•‰~‹‘ƒ‹~„€–ˆ„Ž–††•˜Š‡€…†}‹„ˆ’…‹’„†‹‘Ž‘|‹ˆ™}—Š„{ƒ–†‚|‡Œ•‡™’Œœ‚†‚„}†‹Œˆ‡…‹‚‚ƒ‹‡vŠ‚}‘„‘—‡—”~ˆ‰•ƒ|•’Œ…Œ˜Š‰‹Š‰‘ƒŽ‚Œ‰~ˆ’Œƒ‹Œ~Œ‹ŠŽ›‰†…„n–}u‹’ƒŒƒ~ˆƒŒx}|’’“…~‚“”†…~‚—‚Žt‘‚’‹wˆ{ˆS‡‹†“‰{‹œ……ŒˆesŒXФs’‹‚€ƒw‡‚•†Š’z–‰…Ž—†l‹„–—‡†{€‰v‡·ŽŠ‘|™Š‘€yœ†‹€’†–y}‰ŒŒ‡¡ƒŠ—~‹ƒ‰¥†‘•‹‹vŠ¢ow€vu…°ˆ††‡„†Š…”“ŒŠ…ŠˆŽŽ””˜‚Љ‹yŽ|›ŒŽŠˆp‰‹‡wr„Œ“‰†‘ŠwœŠŒƒšˆ™ˆ}Œ’|z}‰€Œy”‚y”ƒ‰z¡{p|†”‚Š•†œˆ„p”ˆ‚‹‚Œ}‡‚€s~–‹Œy‹„‹Œ‰Œ”u‚–ƒž}‡‘„ƒÁ–Ž„’~‹Œˆ‹‹ˆtœŸ‘w—ˆt‹‘‘“ˆ|{…ƒ‡™}…‰…‹Ž}†Š’€k|’zy—ƒ…yˆ‰”ŽŽ›“yއ‘‹‹”އ†–‰Žw’•–‰‹‘„‘{‘‰‘qˆ†u†’’‹‰“y‹z“™‚‰™‡…Ž„……‘Œzš‘Ž–’‚†‰}y˜…ƒ{‘‘Œˆ‹‡x™…•wˆ‡Œ‹›Œ•‰ˆ‘z“‹‰‡z–—„’„…Œz””Ї~}‚ŠƒŒ…“‹•ƒƒ•„ŒŒ•““‡‚†‚q‡š˜Š‚Œ•’ŽŠ‘„’‰€‚ˆ“ƒ•’˜ˆ”ˆ…”‹™‡”—v‘n†“}‹˜Šs‹—„†€…Œ…ˆŒŠ|Œ†~…“‚‰”zk‘…’z”~ƒ„Š‘”‡Ž€“”ˆ€Ž‰‡ŠŽŒŽ†€’ˆ‘{Ž“•…–šy…Œu†ˆŒˆŽ‘•‡j‰€‘ЇŒŽ†Œ‰Š†Œ†•~š~’‡†˜Œˆ}…‹‰‚‹€„“„‡ƒ}™Ž›ˆ‘„—{Œ~†‰ˆ‘ˆ’•ŒuŠ„Œˆ€†ŽŒŠŠ€„‹w€žŠƒ|‚uy‹‘ˆŽ‘˜„Š|ŒŒ•‰€|އ‘‹v‰z€“f–‚‚’ˆŒ}—Œ›v‹¡‰ƒ„}‰ˆŠ†Š™Ÿ…‰’’…Šƒˆ„™‡Šœ’‹…‰š”“‰q~|yÞqšŠƒžu‰{ŠŽŠ|Žz†Š˜˜‰“|“’’—›ŠƒŠ“‘‰ƒ‰‰‰‰•v‡’‡Š|–žŒŠƒ…rˆ„Š—‚}Ž‚z„•x‹u„’ŽŠŽv‚›‡–‡’ŠŠ’……‹‡‡Ž–|g‰ˆ…““‹Œ˜Žk„ŠŠŒˆŽ‡|›z‡”Œ{‹{‰’€”ŠŽ—ˆ‘Š•“Œ‹€Œƒ˜–‘—¤~}‘‹š‹“‡z‹‚‡‰ŽŒ‚ƒ‰“މ’ŠŠŠŒ“™„‚‘‡Št‘ˆ’ˆƒŽˆ‘…ŠŒ“yˆ‡Š•Œ––‘„Ž„…Œ’‡Ž’„ˆ‹“†‹sx‡Ž~–ˆ‹‹‡’”Œ‰“‹’Œ”ˆˆŒ„‰•‹‡Ž‹‰|–|Љˆˆ€Œ|†Œ~‰™ŠŠŒ‡‚‘„‘“’…|‡‰ƒ‘…‰‰˜Š…ˆ‚‰”‹Ž’†’…„„‘ŽˆŠ†„‰†ŒŽŽ‚„ŽŒƒŠŒˆ‰’ŠŠ‚”†‡‹”„І}™‹‡‹Œ‹‚ŽŠ’–‡…‰‚„}‡ˆŒ‹‡…‹Ž–Žˆ…ˆ‡‘Ž–†Š|–ˆŠ‹{š‘”~zx„™™—Œ‘ˆ“ˆ’–ŸŒ‘—І‘†„ˆ“~‚˜Ž‡Š}–ˆ†‰r”Ž„ˆ‘o‡˜Œ x£ƒp‚•„z–‹‚„Š„‰“}Š‹›ŒŠj…‡…~”rœ‚„…’‘ƒˆ‹†‹‹ŠŒzŠy•€z‹Ž†{€‚‡~ƒ’{Ž™‚‘“•z–ˆuƒ‰y€™†€•~‡€‹Š‹–‹ƒˆ”„‚Žƒ•}Œ…}‘‡‚†|’Œ‚ˆ‹v‰‘†”ŠŒ}Œ†Œxy’Œ‚Š“’“ŽwŠ–}Ž…Œšy€„~{‰Ž}Œ~vŽŒ…”–Œ“Š–†~’ˆ{‰’rŽ‚‚w‚’œ‘}†…‘‹‹Œ•ˆr{š‰ž„}™Š‹ƒ¦ˆˆ’Œ„£—‡“‘‹u…Ÿ‹„š…›•€ŠŸˆž†|‰Œ…Ž‹v–z’„ƒ”‘‘Šx‹k•‡w~•Іt’‘…‹™—œ{††}ƒ‰ˆŸ‰„mŒ†…‚‡x‰™™‡™˜™•y”Šx–‰~rŽ‹“‡”„|‚ˆžŒ„”‹Šƒ‹…†Ž€{‘„“ƒŽ›‘ƒ‚y‡’Šz€—ŒŠ}Š‹š}ŒzŽ€|ŒŽ|‡†…˜Žˆ˜Š”~’ˆ‰s‡€”™‡‰{}•sƒ–Ž‚y†ypŽ”z‰Ž‰ˆ“ƒ‰€y„Š|‰‰~œ†›‹€z„|‡‡Ž‚‹q€~‡‡„›Š‹ƒŒ…ކ‚p‡ro‰€ƒŠ‹‹rŠˆvƒ|ˆ‰„„‡ˆŠ„{z~€‡†p~„€|w€tœo‹€~ƒj‚}…ŽŽ…œŠql{–‹z‡”ŒŽoˆŠ€‚x}‚tyŠ€†…„‡y€ƒ±š€‚‹‡}Žx‰~ˆ‰†{}v|s†u~Šƒ„†~€uto{€„‹Œz¤Š‡‚vˆy|€}€m…‚‚ˆ}~…‚„y|€Šww„…l‰z€€x‡~x†w}ƒŠ€Ž…€€vm‹†Š|އ—™~†Œw“‘˜~Šy›Œ‡…Ž‚˜…Œ‰‰Ÿ‡{‚ƒ™ƒ“˜Ž„“Œ£ŠŽŠŽŽŠ’Œ–’‡ysˆpŽqˆ”‘z” Œ–„‹‡‚‡v—Š‘Œ‰Œšz…|š“‘’†n“€‰w’„‹‰Œ–“…„”‘˜uŒ‡š~˜zšŒ’Œ‹“‹šƒŠ‹pŒŒ…ˆ’š‹w’‰‡v‡“z‹”˜ˆ{z“š‰“’˜‹ —Œ’—•‚„’v”‰€š„…ŒsŽžƒm‰…–‘”—‹Œzˆƒvq‚{ˆ{„—“‹‹”•x…‘Š‡ŽŠ‚}‰•‰z†‡¥ˆqŽ}{†””„™…r{–‚xx~|…}n}w}‚ƒ€„~ƒ…vty|wŠw|„‚~tvnx†ƒsz€‚uz|€€tqzyƒ‚‹|‡y‡…ˆŠ†tuq€w{”}‚~mv€q‡›…}q‚Š„m‰Š‚ˆs}“sk‚†u|}‡o|–‡t}€†‚‚Žz‡‹qzzs„s€†ƒ€w€{’|……~stž€u™{|~n†„†z~~‡w~yp{~‚{x}Œo„‰ww{|~…„qˆ„‰qp……zy€”wŠtƒ}€‚€qˆ‹{‡™szxˆˆ‡ˆz}|zv~x‡ƒ€Ž˜“‚ƒ‚‰x‡…}rozˆ‡|‚Ž—‡|v‘‚…€‰‚‡}›†{Œ‰‚uŒ||†Œ‚‡`†„……}™ƒŠ€zƒ‹‹‚…o…qq†Žƒ†††ˆ‘mŒŽ€‚އ|Љˆ{ƒŠ‹Ž†{vv„ƒ}„pƒ~}y€tžm‹~€jŽ’„z‹Œx’†yk}‚‡{}‰Ž‡o‘€„€Œ”ƒŠp‚€†szŒt|‡}‡v‡~ªŠ„Œ†‚{x†”zŠŽƒxƒs|q‡vŠ„‚…|t~qs{„x~Šˆ‰’…Œ‹ƒyƒyv…}|z~ˆ‰„…}~…ˆƒtŽzt‰zy‡y}ƒ„Š}vƒv€…†…„Š„…ulŽ…x”}“‚€†’‚“‚‚‡—Šž‰‹”‹˜ƒ†‰‡…tދІ™‰ŠŒŒ„~••ƒ‰˜“ˆ‡‡Œ‡………w{‹‰†Š‘ˆ†‹Ž‹x€zu•Œ‹‰Ž”„”†’Š”…‹’Œ’z•‘„Šƒˆˆ‘‰‰ˆ‹~ŒŠŠ…€Ž‡z…“}”އŒ†‡‡”‚‰˜„˜…šˆ™„–‡‹…ƒ†‘†Š„Œ€Œ|Œ‰‡‘ˆ…‡†‹‚†‰Œ‰„Žƒ’Ž‹„ˆ‹ŠŽ„‡‘‡Ž‡}‘”‹„‹‰‰‹Š‰Š‘Œ‘‰€ˆ‡ƒ‡Ž…„Ї—’„ކ“ŒŠŒ†Œˆ‰{zŽ•~…€{–†„}†xz‚‚Ž€…gzˆ…‡“ƒŒƒv‘†ƒrto}…„†Š‚†•€z†ƒƒŠ…ƒ“ˆƒˆŠ•uw}Žˆ‡”…o}w†tškƒ‚~j~•…Œ‰†vŽ‘|n|‰‰€•y„…lzˆ„“‚‰yˆˆƒ|zˆ{‰ˆyˆw³ƒ€•ƒ{‰z‹–|‡‚•}ˆ{w|w‹~Œ‚|‰|‰pyrƒv‚‡‚‚‡Š‚‘†‘‘€}€zy‹‚}y|‰€„ˆ€~Іv‹€w”‡}“ƒ~…ƒ‚’w„}–‡†‹‹ƒ‚†…ysЇ{x—}œy„m—{~Œgrˆš†‘„‘—’Ÿ˜›¢‚ln“‹’}~ŽŽ‡¥•n„•™ŽŸ¢Ž˜ˆ…x„‡Œtzvˆx“~†œ–ŽŠpt‡~”›Ž€†Ž†{žœˆ”|¡…ˆ|†‰‹ƒ‘œ‚~ˆŒ’‡€–‘‡{„‘p‚…–‹{‚€~ˆ–w…¡‡†€—‡€š‰‹}‹”„yŒ•–„u‘‹}“ˆ˜Š‚wsŠw†—‚“‰Ž€”„‘}‹‡†žˆ†‹˜†ŽŽzš‹‘–‚“†yŠš„ŽŠ‰…–—ƒ‹Œ‚…‹‡˜}…Œƒ†ˆ™…€~‰—†‰„Š~•q˜~yˆ•…‹|y~q{ˆzu{w~|’„|…„…’•u‚{sz€szˆx}zs‚y|‚kƒ~z…pr{y{|dw{ˆ}‚}|™|}xx{„ƒƒvƒvx€~‚}Šjt†~r|…xuy€~}€v„x”{n‰}‚w~‡}s‚€lƒ‚~Ž~uwŒ|{w|ƒ|š€~€…~‚w{~t}w€’||u€ƒ‚ƒ‚€z}{„w|{}{‚‚uz~ƒ|}ny€~||{~z€ƒ‚‚uyw}‚|w‚‚„„ˆ€{‰z„„Šˆ…†|x†s}|‚ƒx|‚‡||{~{u{…„‚}y‡†ˆ}„~…|…ˆ}Š{€y‰„}„{‡‹‚~—Œ€ŒŒw€y„Љ~‚h€ƒ~‰…†ƒŽŽ‚yŽ„†Œq}np‚ƒ†’~’…v|‡ˆ‡o‰‚ƒ‰‹‚•}|yz”ˆŠŠpƒ~†ƒ†s™k„„}€j„ˆ‡†„ŠŒ~†ˆ{l}†ŠzŠ…ƒƒk||ˆ†yŽ‚‹r‰‚yp|…|}‰Ž†x„…¥‡…|y‡y†™vˆ‹…†€s|q…u~Œ}{€y’~…n…t†Œ{‚€ˆ€‡†‰ŒŠ„xy‹…|zuƒƒ†‹}‘€‰yƒ†vu†|z‘v}‚tŠ|€„yŽ…‚ˆ„‡‰ˆ‹‚€k‹…y’€Ž„}v‚zŽ||}‚…’Œ|—‰|”–„zŒ‹}‚…„~{gŠuƒˆ€„ŒŽ•†|œ“ކ€qƒpq{€‰‡‹|”‚mƒ‚€‡xˆ}Ž‚††‹—‹”zrzƒ‹„“o}}}jz’tŸj„…€|jx|z‹‰ˆvx‘{l{ŒŒ€Œƒ|Ž‚im~Œ‚…Œvˆ†‡wy‚|€†’ƒwƒ~´x~•yx„x‹’t‡|~€rzt†zŒvv…x‡r~p…tŠ‚}‚ˆ…‰‡ˆzŒ‹}yv…„}zt€†‹‹…ކދƒ‡uz}š~{‘|ˆtyˆŠƒ‡vœ‡ˆˆŒŽ‰ƒ…‡‚mˆ‡v„”vˆ…y|yŠŠ‹ƒ“–‹“‘•˜‡ŠŽ†t„ƒ’“ˆ“ƒ…ˆ†’‰Š’…‰™‹’•‹…’}ŽŒ€ŠŠ‹†ƒ‡‹‰‡„…•sw”–}“’ˆ†‘‡“„™Š†˜ˆ“š‹ˆŒŽ‘”ˆ‡Ž‚†–ƒ’„ˆ’Š~€‰Œˆ–ŠŒŒ‡{—…„–†…‘‹‰ˆŠˆ’Œ’‹ƒŽŒ……ކ‡{†„Œ…–Š‚—„Žƒ•–‰†’“Œ‰‘ƒŠ‡•‡†‚ŽˆŽŽˆ‘ЕЉ‘‹Š‘ˆŽŠ‰†‹ˆ†Ž‰‹ŠŒ‹Š‰‡Ž…‰Žˆ‡Œ‘‘‰…‡Œ‚…‘“‹‡„¡˜¥r€sˆqžŠzr{Œ’‡‡±’¨ojŠ•~¢‘‹…tŽ˜‚¢Œr~‘lvŒ‡•|qzƒƒqw™|³Š‘”™zvju•}p†Ÿ‰ v…›†‡t‰”|’™…vszƒt|~€Šuƒƒx¨—€ƒuycŸwˆ€Ž~ „u€‹qyn‡~©—}~{‰‡¦xxƒ„…ŠlŒy§™‡oŠ’}f‘|{™q‚–x€‘}¶­ˆ|suixŒwŒv|J¨r™u¿¬„”a}˜uˆ¨~Ž‚|—†yŠ} k‹u‚Š“—Š”wq—}v‰ru“||p€…‘‹xmœ€}‡‡ms{t€u‡‡w}wyo}‰t|zy’}z{}’ƒ~y€v€~xn‰{z„zqƒ|zƒuyzwƒrp{~~hƒ{x‡t‡|vІ…}w~ƒ„zzvz…€}w†xu†vxzxw†|~„ƒ€Œwƒuˆ„r…|}z…‚x‰{o…Ž|wr„zzr}y~–|zx‚„u‚‚wzz“–}€x€~ƒ€†ƒy|ƒ}pu|y~{‰€oz€€wyv|‚~y‚||r‡‚‚t}v{ˆ}|~‡‡|€}z…}€ƒx{‹}€x~~z‚|€v|{ƒ|ƒu€€~ˆ‚z‡{Š{…}|‡wy…}†–ž†ˆz}xŒlg…}’Œ}Y{mt||zmo‹~ˆ˜}t‘ˆ††Žˆy†vv~|p’ƒ›ˆt{’p}vr{ˆbz’Ÿ‡†sr‹•—“Š}{‡€†Š~“|“˜x…xs™\n|xZƒŠxu„ˆ€ze‰r{…y~’Ÿ‚ƒ†w{rƒsx†w€§•ƒ{•}ˆry~}ˆŽ‰m~tŒ{´~|}oƒ{r˜y‘{Ÿeo‚€‚—›y‚…v}€{„~Ž{z}i~X‡¤ht™›uy†u©wgƒ}•€‡•g„zŠŽŠ‡{†t‰t‡„v‹z~}ƒ‚‹rqsptz{yv~†}v‰ˆtjzvƒˆ„spk}~|‡dz{kpjhps”„y~pjz‚gzr~‰’}z‡…ƒ}{€Œx~tkw{†€~qjŒ€n~}sso€ws‹}ˆˆ†xŽ’riu|zrƒmw}†r†txŽ‚t{myƒox~y”„yw–q†vttƒ€ufsy}~}_~Šqu{‰ƒ€u†rqt{†ˆmkxxzz…swuƒ€}}~rzumw|||w{‰ƒ‡„qƒx{|isŒ{‚ot‚woY~wuzmtztz}|k„ƒ~n~}‚•t}sŒn•˜}Œ¤vu–’•” ‰“ˆž—ª˜•ƒ›z–‹ŸŠƒ‹‘Ÿ”…ˆ‘œ‰•£ƒm•ŒŒŒŠ“‘†‡€Œ}€i™Œ„…r‰œŽˆˆy…|}‡¡Žz’‚Œ•‹‹’ˆ“{’}Š–Š‚“Œ“‡‰ŒŽ…|ŠŒ”‹~ƒˆ›š~†Œšw‡”zw’–Œ†xˆŒƒ’އŒ‘vyŒ¢¢…‹ŠŠ‚|’ž~€‹Œ€–}‹‡Œ……’ƒ™}~“‘}ˆ„’’ƒŠ†ˆ†‹}}†’‡œ‹˜‚ЂЀ€‚Ž{‡…‡ˆŒ—~‹€„€‹Š‹ƒ†Ž„Š‰Žˆ‡„œ“Šv€Ž†Š“ˆ›ƒ˜x|q‰€}ƒrxx‡‰zŠxˆ‹{m‚ˆ{zz…|x‰•yƒ„~…ˆ‹„ƒ~–•†„–p‚pwˆ……ˆŠŽtŒƒ}{_€~‹‚}„’‹‡“wu{~š‹zy|Šg”‰t”g†‹£i‡…Ž„’‡€…qŒ…iz„‹}ˆ{q€n†q}ŽŠ€‡…yƒ…mz‹Š‚|žŽt…Нu{…‹tv‚w†‡qƒ}‚wuysŽk†vx†|x€…uŽrމ~ŠŠ˜Žw‚Š}‚Žw‰€zs~r„Ž‹’|‡“Œ„€†Œy{z‚Š|{ƒ|p~‰…xšw„ˆ‰‡~Œ…{†rˆƒpxŠz—…’}‹u€ŒŒ‰‰’Œš‰‹‰“Š’Ž„•™””„tŠˆ~ˆ}†”ƒŠ“ˆ“†¶’”“’˜•Ž‹Šˆ‹ƒ‰‹œƒƒŠŠ„’ƒ}ˆ†‘n™yš†‘v šˆ”Œw‘—‹—Š•†•t‡•~‹‹Š•‹„¦„ŒŠŽŽ‰‹Š‹‡‹{•‘…z‘ƒ‹Œ‹ŠŠ‘Œ“„ŠŠ„‘‹Šˆ†„„†‡”Œ‘”‡”‘Œƒ™‹‰‰’‡†|”Ž‚…Šˆ—‡‘Ž„‡’‹Œ‹ƒ——y„’Ї†–†Œ‰{ŠŠ‡Œˆ‘…މ„‡“‚މ“ƒ…ˆŒ‰ƒ”‹ƒ‘‡‡–‘Žy†Žx‹€€‚‚y‹{s€yŽ™~€—yˆ~s“†‚{~}‚i‡ƒ„~Рއ}••ކ„m‡moˆ‰ƒ{…p’{ˆ{{†p‹|…}…~{Š„‡Šy{sxƒ…‡oˆ‰yy‹tmƒ†„jŒ‚ŠŒsŠŠ‚Œql{‡Š|‘~ƒŒj‰~Š•~„Œrƒ~~dz€v€‰s‡­oˆŠj|…wŠpŒ‡„yuzq€ps–}{†„ˆr‰tŠ˜|‚‚ˆ™}u}‹‚…u…wx‚|z|zŠŒ‚…|Š„€y‰sz‰xru}†my‹†|ƒuŽzˆƒ„‚‡ˆ€†n‹†~z•q‰Š‹z}‡‹Œ†ŒˆŠ|•†“Љ’˜ƒ†‘‹ˆt‰‘ƒ‘ƒƒŽ‹ƒ„ˆŽ…‚†„‡’Ž•†„†‹…‰‚–‘ˆ†‡Œ‡‡‡‰ƒ’txƒ”}“Ž‹†Ž…‰†—ˆ„•“~”™‰‡’‘‘‘ˆ†‡{މ„‘‹’†~‘ˆ’‰—ŽŽ‹ŒyŒ‘„˜ˆ‹•‘ƒŒ~‘…‰‹ƒƒŠŒ“ƒˆ‰Œ“‡Œ’€‡ƒ‘„Ž’Ž…ŠŠŒ‹‰•‚‡†ŠƒŒ““”‘Œ’Ž‹‰’˜ƒ““‰“}‹“Ž…„‡ˆ‰Ž„‘‰Œƒ‘ŽŽ†Š‡…‹‹‰†‡…ˆŒ“™v¸¢}zz|މމˆ~ƒˆw†™s„‚—}šƒ€‹‹‹’…†y˜‘„˜‘‚‹”’”‚”‰Š|–•‰‘”{zx‹|~un†‡„…X¨wŽž‹ˆŒ’€~«“Š‹{†‡ž…‚‚”Ž–{Žl•v‡‰wŒ”˜‡…‡z|…•–˜‰€†‹˜†’‡Œ“‰‡…’v—‚ˆ“q”ŽŒ’’’~‹x}zŽŽ“‚ˆ£{x…ˆ†Žˆ…‰’ŽŽ”Žƒ‡„~ˆ‘w…ƒ„‰}‹’€~•†ƒ|oŒ‹‹•Ї‰…‰u’}ƒŽ‚‚’Œˆ”{u‚{~uƒ{Žƒ—yƒ}wœŠtŠ…iŠŒ™’™Œ˜m“•‘—†„‰‡„{‰|Š†ŠŽ‚š€}~‘‘‚‰–’ˆ‡€ƒ“‹{ž—‰ŠŠŠ’††‰‰w~”˜…ƒ„„‹•œ‹Š{Œw…uspŽz‚‘„‹Ž“Œ‚”’{{…‹ˆ‰†~’‰Ž~Œ~’…”¨—”…„•Š”‚“’t•‡^ˆ“„}}z…•z‡ˆ‡–}…‚ˆŽ‘Š}‹•–z„{ŒˆbpŽ‘”‰Ž‰‹Œp‹p‹Œ}Œ‘„‚u‚œŠ‹Š•o”‚®y‚††‹ˆˆ–y…‹††—‡Š”ˆ‡„ˆ…Œˆ‡”•˜‡{Š{xžˆwp‡‡—”ƒ‚€”“Œ•†–„ƒ…Œ‰Œ•ŽŽ}u‡q‰­†Œ†•‘u’„‰“Œx‚•Ї•v‹Šz°˜„™……™Ž’Œ„žy“œŠ‚„‡‚…ˆ{—‰‘ƒƒ€—‘Šƒ|—…Ž„‰q›”„w™‹x€†”œŽŠ”“‡™Œ™˜ˆ€ƒ„ƒ{—†…‡|—‰šˆ‹˜Œ‹}…Š‹qŠ‹‡ƒŠ‰–‡ˆ€…‘އ„•Ž”ˆ…‹ˆ…Ž‚‹••‡™|Š…Šƒ‚Љ‡}Š—|ŽŠ|‰Œ—“}‘‰’ˆuŒ„‘ŒŒ„™””‡€}Šˆ‘‰ˆ„}‰‘zƒŒ¦}{{‚Ž‘‹‚sŽ‘z|€z‚€‚{x„‚~˜ƒ€‰Š‹…rzzz‡~‚qk…z~ƒ}Œ††v~}†}vy}€sr‚‚‰‹…„ywŠy~†‰ƒ‚ˆ{‰Šz€‰uyx|‰‹„u‰|~„xt…}‡xi‘„vއƒt…{}€‡x‹~{‡‚s€…Šz‡”ˆ‡€ˆˆ€wz‡ˆ~{€}|¢“|ƒˆˆ€€‡ˆ†‰ƒ~|~s‚„Œˆz†{ƒ†}|v~ˆ‡„}•™‡~w|…z‚‰…‰}ƒ‚…€‡‡‚€†~…‡x€~~†|†‚‡€|z€ƒƒ‰Œ‹‰ƒ…Šƒ€ƒˆ€~‰ƒ—ƒ‹{Š{…{“€‰‹}Œˆ‚zŠ„…r„€y‰’ƒ}p††}Šn†’Žˆ…{†ˆ•€‚|lƒrr{ƒƒˆ|’€{Ž{†Œp€~ƒ~‡ŽƒŠ…vuy…‘‰o‚~ƒ‡r—t„…z‚t‰”{|‚•x~‘ƒlwˆ‰{Š„€pƒ†ˆs’…‡m‚zolƒˆ‡…ˆ{‡¥Œ‚Œ|„zƒˆ„‹Š}~€{tzd|ˆƒ~‰Š€‚uƒ€‚ˆƒ}xŽz{˜‰Š‚o…x{~~ƒiЇЂ‡†ˆ}‰€€|Іp‹u‡q‚ˆŽ‘r†Œ‡ƒ†‚Šv„zlІ}{ƒŽ~“Š€ww‡€‘|{–ƒ~—‚y„ˆ€u€z|€‹Š€fƒƒŠ†~€–‹}ˆŒ~Špqpƒˆ‚€†Š€‚vŠŠ‚…lˆ|‹y†yˆ“Œzyxˆ’’ƒp‚Œ}…‚}tk‹‡}Œi…Ž‚ƒŒ†€ƒ…{mz~ƒz€‡†…lŽyy„†‘Œo‡ƒtsx‡‚{‚ˆˆt‡}ª‹‡…’{z‰w’‘xƒŠ‹‰~ƒtzr†zŠŽ~‚„}Ž~ˆq‡r‰…y‚…†ƒ„†‘‚rx‚‡‹|€€{…€~Їv‹‰|t‚‚Žz|……{’‚‚†v‡„††„†‡~tp‹…zv†uˆxbŽ‹sl|ƒ…|~Ž„|˜…‡‡„‚|™‰{€ƒ—|‡i†}€„}„ug‚†}vˆ„ˆ‚†p{ztƒx‡•Šƒƒ‡t}„Št‡|}Œƒw~‚†ˆŽvlu|}ˆ‚r|z„}~Œ}œq„zƒf–‘wo†‡tpo}€„t…‹†…uzz‘‡€ƒ~‚m‚~‡u{sv€z†wz…ž‚€‚p{ˆxŠ’np…tzmyo‘u|€t…|‰~s€t}…s||„xw‚ƒ‚ƒƒuy€‡|€~~s‰x{ŽyŠs~vwl„s€uu‰x}Žw}~tƒ{x„…‡ˆ‰ˆ‚tƒƒvy’v†n™ˆ‡}~{€ƒ†|~~~…ƒš„…І‹Š„{|‚‰_“€’„ƒ„†k’…Ž}xtt{su†ƒ‘‚”z}‹ƒƒ‚‡‡ƒˆ|Œ‚x€~…|™Žˆr~Žƒ~xŠx•k…€…„p•’…‡”„„|ˆ†t€ƒ…†uˆƒw„†Šˆ„’…ƒ‹”Œ‚€‚‹†€€‚ƒ†¿™†‡ƒ‡Š‡ŠŠyƒ…”ކ€†ˆ{vt€Ž†ƒ‰‡‹‹Š†v…Œ€‡€‰†}Œ‡‡ˆŠ†…Š‘‡ƒ‰†˜zŽ‚ˆ†‚…€Šˆ~‚‚’}Š‹ˆ}‚ŒŠƒ‹‚}—€ŠŒ€z€„Œ†‚‡ƒ‘€‰”‡‘†‹”~‚Ž“t…ˆŽŽŠ‰„‡Š‰‰‘‹”–‹ƒ†‹Š‚ކ‡ƒ~‡‚ŒŽ‰”•ty‹{”‹‡–Ž‘~ˆ”†•Š•~™‹Œ“•‘—”ƒ‘†Œ“‚‰“‹‰‡‹„‚„x‡–„Œ›ŠŽ‡‰‰„‡ŒŠŠ~ŒŠ††‡‘‰”ˆˆˆ†Š’„““‰Š‡…ކޕ‘†ˆƒ‚„ŠˆŠŒ‡€“†ŽŽŽ‹}І‹’˜‡~—š‰ŽˆŠ‰ˆ‰‰Ž„ŽŽŒ……ˆ—‚‡„„“‹€‡Œ‘‰˜•ˆ„x—xy…ƒ…œ™„wzŒ™¬˜›‘…„ˆu–‚‚‰vŽš™Š™ …•¦uœ•‹…‚†…†‰“Œ}•ˆš›Šs_ƒ“‹lˆ„‹ƒ}ˆ‰”d~¦Ž}}‚Ž›€ŒxˆrŽw—sƒ–ƒ‚•{ƒ} ~{¤y‘„šˆ“c‘Ž‹y’‰‹w—‘•vŸˆ’‘€Š€‰x€„ž¨‡ ˆ¤ˆ€t’™‘v‚„’‡“¥m‘|††ˆ‘†‰yŠ‹šp‰n’šœ„‚’u…›x˜|–zކ„zŠ„„}•“„‡ƒ–Š”{u|„~“„Š‘ˆ™‹‡Ž†}ˆ‹Ž…Ž”{x”Šˆ}‚|}ˆ|{z€t“†}‚ƒ—”‚|y€{‹{b‰†z‡{Ž„‡…q’~„yt{u}wr€ƒ†x‹zt€†’‡‡€|€yƒ…‰uˆv|‡‚x‡…‡szƒ…z}–vzŒ{tƒ„‚||„}‹ˆ‚ƒ€ƒ€{‡†~}|y~†‰€Š†„{†Œ‹‚{‚…z|ƒzˆ¨„‚‡‰|‚…„‡ƒŠƒv~z{ˆ€Œx†w„{~ƒŠˆ~‹‚‡ƒ„€xy‚ƒ…Š‚‹v‚ƒ„Œ…‡…‚€}…Š{†~…ƒ{ƒ‰ˆ„Šw‹˜{Œƒ|‡ˆˆ‚‰}”zh…‹‡w•~~}}w›ƒwv…nm„~Šbr‰}}v‹e’‰q‚wqƒƒ†œ€Roz{t€vwŠfrqŠ}dŠyŠ{{€xŠ„y„†y…}‚ˆ€horl~g‰wƒˆy}w~„cŠtƒm”mŠ}‘œv{unn~€trz˜t}„qi}y‘sšl…t‹uhyƒkss~{‚qx”„utˆ}ƒŒtŽ}vq{ugy|]q|}‚›k‚~€z{‹Œ|phˆzy{ˆs”y†š~r€}{i†„w„ˆ…~„”s‡t_™gzp~|‡w†}p}€‰†zi‹xˆwƒ}z…‚r—Œ’‡{~€x|’wyƒkw|Žvz„Š–xc|‡u†||]v†~q|ƒdtw„snvu}tv†‰’ƒ”†y€”Ž{‚’r‡„wzvƒou…u|‚ƒ}‹|x‚xƒ€|”sƒx†‡o ‡yŠ‚{’|z{{‚ztzr‡yy…Š}‘…ƒz‚‹‚‹†ƒwƒvy²™‚‚’ˆ‚Š…‡‡…€ƒ…r|€z‡w†x~Š‚}‚x†ƒ„…™€ƒ{„‘‘‹„ƒv‚›‚~z†‡|Šuƒ‰r…{Šƒ‚€‚{“yv…€~~ƒy…vƒpƒ‰x‹ˆ|’„{’|…„Š~~z”†“€†–ƒ‡ƒˆ„ƒ–“Ž’„„”Œt‡‡Ž’ЉŒŠ’’‰‹–ˆ‰™‹“Œ“““™’Ž‹‰‹‘„‡|ƒ„Œ€‹‡††Œ…•†’xyw‰„„ŒŽˆ‰–Š”ŒŽ‹Œ“ŒŒ‰‡ŽŠ‘{‹|‡’‡w‘}Š’}ŠŠƒ€‹‡}‹…‰Œ—„‘‚‚‰ˆ†Žƒ‰††ƒ‡ƒ†‘†‰‡…‡’Šˆˆ…‘„ŒƒŽˆŽ‚„‹ƒˆ†‘…}ŽŽŠ†Šƒ…ƒ{•ˆŽŒ„†’ˆ…‡|’”ˆˆ‰ƒˆŒ„‡‹†‹ŠŠ‚“„ŒŽ„~‹‹”Š’ŒŽ„‚{w™‰‘‹ƒ~z~}{€w‚”€}‚ƒ‰—Žs‚tŠ}Œ|a’‚y…~v†}p„zŠvqwv{wuwy’}‰†u€‰}…€…ˆ‡r}x|‹ŠuŒt}‚„z‡‚t{‚€ƒ{y”qyy…r„’ކ|‘…‡…†ƒ„„€zw‚{Žy’‹ƒyŒŽ‰ƒ…ƒ‡€~}„}­™‚†‘Œ„‘…—‰„|„†t|€|……‡‚}y„‹q~~ƒŠ‡Œ}…~‘‡‚w{ˆƒ~†z‹“z‘„ƒ‰‡…Šˆ…‚ˆ‚Ž€„Š„yƒ{Š…~†ƒw‚…Œv’ƒ…Œ~‰Š~| y›–‰}›Ž{{„ƒ˜‹“€¨wŠzŠ—ˆŠŒ~‘ˆ~Ž„˜‚‹x†ˆŽ…y‘š‘§˜†…‰“‹™‘z†ˆ­”•}U€„‰‹hƒ|}z|Œ~xœ§…w¢„Š‚”‡Žj™tp“t€™‰“†…‡ˆŒ£œ‰‰‰|ˆ‘€”…“‘†sz„zŽ“‹”g•“‰ˆ~Š‚‰Š|{{–œ¦€—އ„pž™‰ƒ~ˆŠvŠœžxŠ~y‰†‰z~r‰™s|tzŒ•ƒy…r¡€}ƒ‚‡„•†‚}‰Œ‚“Œ’’ƒŒ‰p‘‰‚ƒŽ”ˆ{†ŠƒƒƒwŽ€„˜zv‹{І{„y„|‡•‚}lu‹ŽŠ{ˆŒ‡—š|ž–{€bއ…’tŒ’nŸx†“Œ~†Ž‰~—¡…zŽ›•a†ހГ“amŽ{Ÿ”›ƒ‚‰›„~€z€‰——} ‹–ކ€y¢{……€€pˆ‚‹ŒŒ|ˆ†s“‡‹…€‰uƒz}Š}•ƒ|zŽ‚†‡Ÿy‹Ž’Ž˜•‘‰”‰‰…ˆqx–ˆ“‡†|‡Ž‘„Œ„–‚‚xœ‚ކ˜u‚{—‘xy‰„ŒŒr—†€}‹ˆ‰ƒ”n–˜˜‡“|x”}”v‚‡‘yw‡ƒˆŽwn’p|cŒ€bŒŠš|y}|xŠxx|tsv–{wyzžs„|}spˆ}d’x‡|tmnw†lxwxƒsmztƒyŠz‰oŽzz„„’ˆrz‡……ƒ{oyŽŽys†ox†p„}€u‘t€‡†‰y{q{k–‹Ž‰‹€i}Ž‹€~…”}„nu{hƒt~“x}}ŽŒˆw…Œƒ…x…v‰œ™}stŠ~‰†zŒ„€qs’‚pt|x{‡yzy~ut‘yx„r|‘|‹s{}€whuŠ~†~Š~w€z|†|…„€‚€Šv„tox„|~n‚‚†„vƒ~‡€{„‰Œ{‰€~y“—Ž©Ÿ€€…x‡P‰yŒƒ”¶ƒ…„o–“…™†‚|Žœ“Žr~Ÿ“Œ‚“ލƒ…Дޖ…¢uš”…~vu‡‘—k£‹ŽŽŠ|}Žw‹œ§Žv‚‘‰‡€†‡–~’o”pŸ}Œ€‰x„ˆŽk‚‹žŽ€‚–•€””‹p~a|o‹€‹j–|{Š™ˆ|‹z‡|’œœu~ˆŒ¡r|™’ƒ|‰‚†|‰Œ•|€“~{v€Š}yˆ~{‚…‰ŽŒ…z|‚~†¢¦Š›…“u……tt€yyˆ‚zŒ˜„‚“ƒŒ‰w‰Œ†~‰|†Ÿ‡u~ŸŽ}u}vp”’˜†{‚y’s€yzkyŽxpvˆtvŠ€}u{‡zxx|z|ƒw~‚{‚zmvvroŠn{zv€„yz€g|yy{xu}¡z—zrx„zvs€{w{wn€z{ƒp~y{‹~†wy{‚Œ~~zznz}rƒƒ~nz€x‚†x{z‚x}}{|yy’uw}pt|z†‚wvyr€|{{|~twu~}ƒq~zz‚xyv|~{omxyzs{€zz}{yv{}uw}|w{}~}xƒy}~|{yu…r}‚|’}ƒ€sz{~xz~€msz}quy|y~u‚t~ƒ{‚œw}||z‘‚”‡}…‰ƒŠ|‘’‹‹‹|t{˜›Ž~Š‘Œ”Š‹‘r{€›€–Œ“††‚‚ ›”Ž{†”’—ƒpŒ†‰‘o”’†žˆ‘„~‚ƒ€¡v’‰‹‚€Œƒ“‘‡n•~‹u™m€|Š‹‘”‰ŒŒŒŽ{—‰‰–’ˆ’”ˆ‡„œ‚ˆ–{Ÿ†Œ•‡užqw”kwˆŒ“ˆ—zz…”šŽ’›’‡’„–Œ‚’Œˆz~…‡˜œ}‰‡’~Œ…~‡…ŒŒ”™‹„‰„Ž¢|‹ƒ——Š…r†˜‘’‹†‡}n“‡pˆ‹Š„„™w†–Š‹‰…|‚ŽŒ‹…–’‰‹yŽ“…“‰Œ‘€‡‘u{ŒŽƒ“ˆ’Œ‡ƒˆŠ„†‹wˆŒˆŽ”‹Œ‚Ž…Œ†Œ„†‹ˆ†ˆ†’vzk‘|ŒŒ~‹€‹’Œ„‘“w‰–Œ“‹ŒŽz†…‡‡‡††“‘’„ˆ‰’‚‡ˆ~x‘‚—…Œ•‹ˆŠ‚‹~ƒŽ‹‚‰ˆŒ†‹†‹Œ‚“ƒŽ”‚€ƒ“ˆ‹’•…‹†‹‹‹Œ…’|‹Œ†Š‘”˜Žˆ’–ˆ†…”„|Œ•މ„…Š„‡‹‹‘ŽŽŽŠƒŽŽ‰Š‡…~‡Ž‡†ˆ‹Ž……sm}•‰…z}‚‹|~‡†€•‰~…‚„ryz}…{‰q„†…„uZz„{s{†€€‘k~yqˆ„”ˆ›‹‰…‡•‹‚ˆo{|‡}|†‹ˆrzoƒ…„l}Šwxzy•l‚|‹g›“w~……„‰yyl}|{y†Šƒx„rxt‚„‚ƒr„~†{{‹ƒwz‚„v{€©††ƒ‡yyŠxŠx}||}~wmxt“n…~uŒ}ƒq~tvˆ…}~†‰„|™†‘€‰Šv}ˆ}}||vv‚{|{‹~v†}~o}ƒ‹wt†zŽ€x„x‰xuŠˆ‚„†Ž‹v‰ƒqt‹zx€i…’z€y}lƒŒzkt˜zއ~~ƒ{tŽyv„{zvŽ…}~sQvx{~‹~~ƒ€qpwz{n}†‚‹‚}v”Ž~qb‚||‰q|‰‡Š…Œwpqxƒˆustsˆ…|mˆyƒ›mŽyŒv‰z{qw|oyys‹wouom‡ˆ…€}ly€d|v…v{€vt‚Ž‹|ysw…y~r|xs„khuq’nypy~vw‚vuŠ~yy|wŒ‰n‡vˆ}wu†ˆ}||‚}t”m|…{†Ž…zŠ~tq†…†jx‡yl}tŠuƒp‰{}‚ˆ‚}{}l~wvš†“ƒ›uŒƒ’ ‡—…•„𛆛Ž{™‘Œu…€Š|„‰€•—}‘ƒ„ …™¥ˆ²…—— kŽ–€†‚†“‚šŽ‚xŽ•yw€~}²‘r—‘šŠr‹Ž{•ŠŠ’…ƒŒ…ƒ}Ž•ˆŽŽ”‡–„‘Љ{Œy”‰}šžˆ•‡›ŠŒ‘w–‰}†‰’‚ƒŽ†‹Š‚}•’“€Œˆ„š“™}˜—‡ˆ¥ŠŒ{‚{–…‹‘u…•”‰Š‰‡‡pˆƒ‹‹ˆ‘«¡š‰ˆ—ƒ„™ˆwš~“‘™“‹˜•Œ’•‡”}x†zwu‹‡yŒ‰“€‡‹ˆ‰˜Šzs{‚}—…‚|~Šƒz|Œ}”‘€}‹‚w‰|v‡‚‚xi‚Œy†‡„„†‹ƒ€…†‰‡…ƒp‚rro‚‚‰ˆ‚ƒ‘{ƒƒ‚†ˆ‚|Š~††‡€†Š…‘–voz~‰‡‹o‰yŠt£lˆ„ˆj…‰†‰‚Žƒy‹vl†‘…~„o~‚Œ”yŠƒŒo†‚ƒlw~‚€‚Šy…¥Œ„†Šx|‘y‚‚Š‹{†{{|s€xŠ|‚~‹Œ‚r†uŽ…v}ŠŒ’ˆ†Œ~|xyƒ€|~„–‡}…~‹|І|yƒ‚}‚z„wˆ~sv‘{~Œ…‡…„|‚‰m‹†uv’€„Ž˜“€©‚†“Ÿ“jš’„™št~¢‚ª{‡˜Š¦”™™–‹m‹“˜‚µp’¢†}vtŒ…uˆ‘¢—x†Ž‘^p{£‰˜˜‚y|ˆ‹¢_£’Št†wŒ†|“]r€™‰x}‹ƒƒi‡£…w€—}k€€¡†’ˆoˆŒŒŽ|”…{ly™„¥’¤uŠƒ‘|w|}£‰”¥‹Žz•Š~£tv›{w}‰x”|‚n¤Œ–š—–„‘žŠˆš‚˜…šŽ‡˜‘†~‚™ŽŠnŠŸŽˆ…{w¦›ƒqx’™r‰~{š–‘Š—s‘¢¤Œpˆƒ¢œ”l˜}sˆ”|‚‰ƒa”€‰ŒŽ|w€ „ŠŠ„–x™‰|w|ƒ‡Œ‘±‰‰‚ˆž…w–’Ž–†‹¤Œ‰ƒw‡x‰“…ŽŒ–‹•…‹p„—‚rku}…ž‰“w|…~w}Ši¨•ˆˆŽ„Š”…‰†•¥ƒ}u•‰}~˜Šz…Ž€Œ’‘~y‘~{‚ Œ…™‰‡[‡y‰†„–sw—‹‘ŸŠ†‰Žvw˜‹‹…’”‹”t‚| •Ž†ŠŽ’|gz}{†•‰…“}}ƒ…ˆˆy|ˆ‹–’—Š‚|†‹‰ˆo•}ƒ–m’…‚“‘~m•’ІŒ”’y‹‰˜‡ŒŽŒŒ‡†Š•y~|‚}roŽŒ”Š„ˆy€{€Œ‹‡‚Ž‚–Š’——€†‘†t…„Š‘‚…‰„—’‹‹‘’†•ŽŽ••‰…zŽ€‹‰ˆ‰•††ƒŒŒ†‡Š•sxˆ“{”†‰–‡˜Šˆ˜ŠŽ›‰‹Œ“ŽŠ|…•}‘„‹ˆ“†~›Œ‡“—’Šy†“…†•ƒ‡Ž‹Š†ˆ†‘Œ“ŒŽ~‰Œ‰ƒ‹ŠŽ…†}‰†‹–Œ‹•“Œƒ‘•Ї‘•Вއ†’‡ƒˆ‰‰Œ‡‘’‰‹‹‰Œ‰’‹Ž‰‰€ŽŒ‡Œ‡Ž…‹Ž†Ž‹‹ŠŠ‰††Š†‰…އ‰‘‘ˆ™}™ˆŸos†ƒ‹†Ž–‰’w‹• ‡“ˆ‹‰ˆ‚‹wŒš„{xs“ƒ—Œƒ‰•™‹¬‘’„‹Š‡‹‘|u~œ~”†dys’–‹t‰’€‡•ކvŸŠ†„‹‡‚–‚}r•~’„|“…‰“–‹‡œ£‹““vš—y‹‰Ÿ–ƒw€€†™¤‡Žb‡–ˆˆ€“œ‡–‡}wŠ¥ŠzŸ˜§rmŸ˜Œ‚Œ–‰|›«¢”}‘uˆŒŠ‚‰‘‹j…|’¡|‡o~‚«Ž›‰…‚†o‚zz‰w•™Š’’Žˆ{–}~€‘ƒ‹ŠŽ–sˆœt‚„}}—‰…‚ˆ„zƒw„‹ŒŠƒ‚‰˜~€Ž‰ŽŽ‰œ”~‚ƒ“‡t‰ŠŠŠ‹ˆ‰€‹–’”ŽŠ„‹Œ}•Ž˜•‹‡Œˆ”„Œˆ„”Œ‰Žˆ’‚•txŠy‘„…†—Œ—†™…‚ŠŽ“Ž‘ˆxƒ”€‰†ˆ‡’‚}˜“ˆ‡‰•Š™‡‚{†‰Œ–€Š‰†’ƒŠˆ‘˜Š‹……Šƒ‘ŠŒ†‰‡…‰y“…Š—{ƒŒ†ŒŽˆƒ‘–‡Ž‹„ˆ‚‡z’„’Ћޖ•Š…‹Š‘„Œ‰‘ŽŽˆ†‹†„†‰„‘‡’”‡ŒŒ”„‘‘‹„”…‰”Ž…’‡Ž‰‡š~…l…‰”“Œ‡Š•„Œ’‘‡”~˜–€xˆ‹s…ˆ‡„‰‡ŠŒƒ‚“•ލ“„‹˜“•–“Ž’“Œ–Œ‘~…Š˜‡Š‚‹‰†•q~”Œv‰•ˆˆƒ‡š‡˜Œ„”‡y˜’‘Ž—|‡‘„Ž’ˆ†‘‹ƒƒ¥ƒ„‹‘–Їƒ“€{‡†”‡Ž†ˆ’‚ŽŽ”‡Ž†Ž„ƒ…–‡Ž”Œ•ˆ„£‘Š…“Š||‹ˆ‡„ƒ‰™Ž“†‡€…Љ‡’‰˜œƒ…’‘€Ž’€†{ˆ‰Š‚†ŒƒŠ‹Ž‰ŒŽŽˆ†‡ˆŽˆˆ„€“‰Š‘”…‰‰€~}u‹u„ƒˆx‹ƒ‚{|„„Ž€œ†v¥‡}vxv}x„ƒ„px‚}€ŽŠwxwŠƒ~|k|rm|‰Ž‚›ƒˆ…€yˆ~ƒ†|‚Ž}~‰‡ˆŽ‰ŠŠppxy”„|†ou™…vv}sžt‹‡’nž†‹€‹‘r~vyysps‡w‹}{ŒŠq‚‹Šy‰†‰vwz•‹€}˜‡tƒ‹¢|Šu~€qŒy…„›{„qƒ|z·”|qŠƒjŠv‡ryr|†}”˜{o€u~}uˆw…wŒ…”ƒ„w{‹Š…‹ˆ˜|{}p„„}ƒ}‹k{|u~„„‡‘„€w}‹jŽ‹„ˆŠu‹ˆŽzŒ†Œ”†„ˆ”~Š‘Œ”Œ~Ž‘€„ˆŠ…tˆŒƒŽ‚‡‹†’ˆ‰Œ€‘Ž˜ŒŒ’މŒ“ˆˆ‚„~‹‹Œ”Š…‘sxu~“Š‚‰‹’‡’–’‰€–‘Œ‘Ž”†„’–†…Œ‹“‡}“Ž‹„‚x‡ˆ|yŠ’…ˆ–ƒ{„‰†‰—ƒ“–‘ˆ“‰‹‡ˆ“€”‚•ˆˆ…‹‰ŽŽ‘‹’ƒ’†‡Œ‹Ž‘ˆŒŽ‰…ˆˆŠ–ˆ…„Œ†‹Ž‰‹ˆ‡‰…‰‰’…Œ‹~ŠŽŒŠŽŠ~†…’ŒŽ†•ˆŠˆˆ‡ˆ€ˆ†”ŠŽ‰‚’„‘•‡Ž‘…zˆ†‹Œ…|Ž‘‚‚‡“‡‰‹Œ“œ‚†“…ˆt“Š’‰’ˆ…ކˆ•‹x“ŠŒ•“˜‰‡ˆ†ƒ†Ž‹‰Ž‡…Љ…‘ŽtyŒ~™„”Œ‰ˆ“Œ—Š™Œ•ŒŽ‰”’†‘Ž€‰”†‰|…‹|”~Š‹†‡Ž‡„Š‹{‚‹{ޙބ†„ƒ‘…‘‡‰ˆ”†…–‡Ž……ББ”‚ƒ„‰•†”’‰‡…Œ‚‰‡Š„‡‰†Ž’‡„‚Ž“…Œ”ƒ‰…}”–‰†ŒŒ„Œ‰“‹ˆ“Œ„…€ˆ‹ŠŽ‡…“•Œ„މ‘‘‚†~‹„~€t„|€~Ÿ†{ŸŽ€}‡w~„‡€‰gy†|‰~|Š}w~‹‰€‚m{on†ˆ„‘‡Œ}€t‰‡|‡Š~ƒ|‰‹~ˆ…Œyuv~’ˆŠƒn„…|vo„r¡h…ƒl‹ƒ„‰Œx|‘ƒxh{‚ˆv‘‚„Ž”pŠ„ƒ}‘‚Žtwƒvw‚|‚‚‡†m†~«Žƒ‡‡zv„l†‡{…‹‹‚…u|p„n‘|„„yo†r‚‚x{…z…‹Šz‹‚ƒ…xŽŠyƒt…‡„‡|~……€ˆ„~s…ƒ€‘w‚z…xŠzyƒx‡‚ˆŽŽƒ}vn‰……z‚v‹…sv}Ž•…–‘•‹‚ƒz’•†ž’¡…—œ‡Ÿ˜‡°“ŒŒ†}‰ |Ž›ˆŠ}‰Œ‰”…|† —‰ŠS‚Ž–j}•”}‹……Ÿzƒ“Ÿ~“sŒ††k‡Ž –…n‡‹{” ¦„‚ˆ…‡‚|›†“Œ‡m†i›hŠ‹–„„Žƒw’„™|m’‹z‰Š“Š—}•‘}y‹už§“}†™Žr‰k“šx€€ˆ’†”Ž„œ~y«Š’z||Œžn~‰—yŽ—‚‡vƒu‘™ŒmŽu˜‰f†}‰‹‚‚‡…ž–Š€}{{¥n Œ‰‘˜˜Ž‹ƒ{‹| ‡yŠ‚|w’†‰›~Xr‹]Ä|Ž“­‡‰uŠ{†|v “4vhŠˆ–{~”œvž{|zƒŠ–{§tŠxœ˜u”o‰ms(Žž€ŠiˆuŽF£…˜ˆ„®”šmŸw{k¦†“‡|³Ÿ{|Œwp…zv‹†…–ƒ£…™T‹_~¤{w›‹et–z “‡”‚†o‡nƒyƒynt„Žm“~œ¡†{uˆ™‚kªƒ}}z}‰™™v{{ˆ€m‚ƒ…‡ˆŒœ€¡}wpa†‹•ŸxƒŒ~Œjn–Œ|€pz¡‰}†‹‰z‘u˜pgš‘€}¥‚‚t‡‚}}…ž‰‰…€ ŽŸy{{j{€’{qu‹¢‡‹‹Ž„Œ„‘w†x‰‚r‡ˆ~–Œz”‡z™‹~‚„†~cw‚‚ƒƒ‚ˆ„Œ’…~‰„Œ€~pppz„އ‚‡„|‡}€…u’~†‡†ˆ„‰‡Š‘wt‚†Š‹p‚•ƒzƒ†tn……ƒmjŠ…‚„}Œx‚„}m|‚Ž|…”ƒˆ…kŠ|‚†…{ƒmz~€ˆˆx~†©ƒ€††y|Šy‘ŽwŒ‰Š~t|tƒuƒ’v„€zˆ}‚quˆ‚{‚Ї……ƒw…zo‰…{~ƒƒŠ~ˆ‚ЇŒ|‰ˆzw’~sx‚}Š€‚w‰‚‡Ž…Šˆ€ƒo†z‚{–›†Œrv…ŠŠ‡•‰}‹{š™’ˆ‹•xwŽŽƒq‚v˜“Š’”…œŽ…–‹Ž†Š›”Œˆz~š„“…k‡‘Št™‹ˆŽ†ŠuŸ’…Œ€…‰†¡ƒ€Œ}•„‘‰“ˆ‹”Ž‹‡ŠœŠ‰Œw”–’‚‹‰Ÿ’‚w—ƒz“œ‰pˆŽ‡‰™œˆˆ~vƒ©‘|—‘œŸyz˜˜‚…“|‘¯•z’‚ŽŒ~•Œ„ˆŽ‡Š€ŒƒŒv‡˜…‰|„¤’š£ƒ„ƒƒv€w…‚ƒœ’‘މ…~’“x‰‹y‰‘ˆ˜w–ˆšˆ……|‹ŠŒ†‰ƒ…‘‡}…‘}r•”†–tu§^Ÿ…‰‚‚™ˆƒ‹—šŠ›“|žƒ“ƒŒ~„ŒxŒ‹Œ…›„ˆ‹‡]pŒk‡Š}€kŒŠžˆŸ˜”“”‚ …u„Š‚‹~”‰w•¢}mŽz‚†|…ŽŠ†““zއ‹‘†Šk„€‹—•„”„–wŒ…Š‚ŽŠ“Ÿ‘r˜Œ{zŠg•„£ˆ‹’ŒŒˆwŽŒ‰Œ˜—Ÿ…€”Œ†“‰’s‹†ŠŠ~Ž’Œ†Œ‚}ƒ‰v~•‰•Žf‘Š€w‡z•‚‰ˆ˜Œ†s‡¨„£|Œ~~“„}“—w‰„˜‹z {q…„‚…”„ŒŽ|€w…€’zz„…™‡z…}wŠ{xƒˆˆƒ€^}…†‹‚…Œx†‡‚ˆosp|‡‰†ŽŠ€‹ŽŠ†ˆs}„‡‡~І–xtu‚Œ‡†oƒ‹‚‰wys¦h†…ˆiŽŒ€ƒ„‰‹|…|m~nyŽ‚„ˆ‰m„‚‰‹„ˆŒk†ƒvrz…s~€ˆt‡‚¨Œ„€y{‹w”y†‹Š„{„r{r‡s—Ž~‡€y“{}ps‰{v|…x†€‚ˆ“€|y~ˆƒ|‚‚‡‰€ƒ~…Ž„Œ~†‰~pŠtƒŽxƒ„ƒ|‰}~…uˆ~ƒ†€ˆ…ƒ€|p‹…}z‹x’Ž€{ˆ{‰Š‰}†š|…І‡Šˆ›šƒ‹‚u‘“†’ˆ~“‰‘~“‰–‹u’—‡™›•‹‰ŽŒ}ˆ’•†Žˆ‚…‹Ž™†—Œ’uzŒ„|––Œ“‚’Œ—†’†™‰Ž˜‹“…–uƒ“}Ž…~€ŒŒ|•}‚ˆ}Ž˜‚‹„’{}„ƒ”˜‡šˆŒ‡‹—…|Š„‡ˆ—‡ˆ‰•†ˆ‰…†•—Š‹…‘—”ˆ‰‹‚ŽˆŒpŒŠŠˆˆ…““‚‡~Š˜‚‹•€€}œ–‰ƒŠ‰Š‡‡—†“Œ…—|‰”’Ї†Œ–œŽ‡Ž•‰‘†‡—’‰€Œp‡‰‰ƒ”„„Š’ƒŒ’€˜—„{˜Œ‚u€‰‘‚ƒˆˆŽ{’—ŸŽ‡ŒŒ’—šŠ‹’’‡‹€‚‰Œƒ‹Œ‹‡–‡’u}•‰|‘“†Ž‹„ƒ–Š|“‡†‹˜Ž‰’”Œ‘Ž{‘|Žƒˆ“Ž‹~š€~ŒŒ‘ŒŠƒ‰‹}†‘˜Šš‘„†ˆŒ‡ˆŒƒŒˆ‹Š‡‘‘†‡…ˆ€ƒ‘ˆ•ƒ†Ž‡“„•‡’‡‘ˆƒ†Ž„”‰‡vŒŒ‚’‘ˆ“ˆŽ–ƒŠ‹˜ˆ„ˆx‘˜‹€†‹‰‹ˆŠ‹‹ˆ‘Šˆ‰•„’ˆˆˆŠ‡˜‘Ž…–ˆ‹Œ†‹z…ƒ‘‘‘‰‹…‰ƒ|‡“…’Œ†Œ–‚…†‰t‡‹‘ˆŠ‡ˆŽˆ€…ŽŒŠ‘…Œ‹”ŽŠ•Žˆ‡”„‡ƒŒ†ˆŒŽƒƒ…Ž‹tys~“‰Š‹ƒŒ’‡Š–”‰•‘†‘Ž’‡‡ŽŒ†ˆŠ‰…ŒŒŒ‘„€Š‡xŠ‘„ˆ™‹ƒ‰‹‡†’ˆŽŽ†‹„‰„˜‡ˆŽ…‰ŽŠŽ”Œ‹Š…ƒ“„‰Œ“‘‰‡ŒˆŠ‰ˆ‡„Š‹ˆƒ†‘ŒŠˆ‹ŠŠ”‹•Œ‹‘{“ŒˆˆŠ‹††‡‰“Š–ˆ‹€ŒŒŠŒƒ‡ŠŒ‡’‚‘Ї’†{“yx§‡“”t‡Š‡Ž‚u‹“†ˆ‡ŠŽ}—‡‘€Š‡ŠŠ™~œ“¦–‹Vˆ‹‹Ž•™’€›‰‰‘r‚wt…’‹…_‹ŒšŒ‚~‹ƒ†‹€’‡“‹„•|n‘‡†zŒ„“ž„}yŸ–ˆt‘†Œ}…„‹ŠŠ”‡y‘gywˆŽ“|™š’sŒŠx}Š„”„ˆ—€…zu’“’ƒ‹…’Š†Šƒ“ƒ‹‰p™†‡˜‘ˆz–|ŒŒ€„nˆ‹”q}†™}–w–†€•ˆ‡‡ˆ†Š‹—v€……ŽŠ†„†—}ƒ{~‰ˆŠ‰w˜Œ•‹Ž…y†ˆ†Ž‰„ˆ„“ކ„˜‰†˜Œ–‚…›Ž‰tŒ‡ŒŒŠˆŒ†€ŒŒ’‹Œ’މޓ—Œˆ‹ƒ‡‹ˆŠ„„‹Ž‹‡ƒ–‘ty~’~™‘†˜Šƒ’Œ’’˜„”ŒŽŽ’›Œ‡€”Š™ŒŽŒ€’€†Ž†‹‹Žx‡x‡•|…™Ž‹ŽŒ‡ˆŠ}’‡ŠˆŒ}’…„ЄЕ‡”…††…•‘•†Ž„‘‚‘Ž•‘“‘‡†Ž‘ƒ‡‹ŽŠ‰}‰‘‚މŒ‚‡Œ‡‰‹’”“}›†‘ŠŒ‚ŒŽ‰‘ˆ‰†ˆ‘„†Š|ƒŠ………ƒŠ‘†ˆ‚’„Œ“‘Œ‘‹•…ŠzŠ‚ƒ„…w•‘Ї~u¥‚˜ƒ‹”†ˆ’–}w}š˜‚„ƒŠ‚аp•Ž‚„–„š€†v™ƒ…l–š‰••‘‚ƒ‰‡ƒ›†y›‹Ž„ˆŽƒ†‰v•—ˆžˆhŠv…y”y‡}†Œ“‹ƒž‰’—~‘•ƒ’’ޓЂ‡…—ˆ…v¡ˆƒ…•¤‘q›œzwŒlzЉ©‹¨‚}‚‹“ƒ…–—„†‹ŒŠ“‰’“z…–ˆ~„‡›‹’“|y~ƒ‹{‘Œ„u€‡š|‚“‡““’–‚w€ ‚”ˆŠ~ˆ‰|•Žt…›Ž~‚k~‰…ŠŽznƒŠ•‰{vv’yy|…‚}”†…‚uŽ~zr}}‹ru†€|‡ƒs„y‰€mˆzq…zxv}z{u€‡Š‹Œy…lŒŒ{|†|{Œwv„†|„Šxvytu‰ƒ€s}”…k}‰‘sz‚p—xwuƒ„}zxz}|„{xv”…wpŠ}|šŒ‚}‡‚z€{|}€v}}z›—z…‹~|}ƒ€~x„~u{z}u…ƒ…|ƒvwyz|‰~‡}~„sƒŠn|rƒ…{|ŒŒ‚}†x€€€ƒ€……ys{†sƒ}‚„ƒ…†€‚zzw’‹……Š‹‰ˆƒ…€s{zŽ”Œˆ…ŒŽ„y‰’‰’Œ~“€ƒˆ‰‡s‰Œ‰ˆ‹‰Š‘Š…†Œ‡ˆŠ‹Š•ŠŽ•ŽˆŠ“„’…ƒ‡ŒŽŒŠŠ€‡‡•Ž’txsŽ„‰‡Š”•‡ˆ–“†‚–“Œ’‘’††‹‰‹‰‡ƒ‡–ƒ{’Œ‘†‹|ˆŽŒ‚z“‰‡˜ˆ€†Š…‡‘„“‘ˆŠŒ…‡‘…–„Œ†Š‹Ž“ˆ“”…‹Œ‡Š†‹‡ŠŠ‡ƒ•’‰‰…Œ‘ŠŠŽŠ‰‰ˆ’ˆ”‡Š}Œ‰ŠŠ‹Œ†ƒ††“ŠŒ“ˆ‹…ŒŒ‹ˆ}‰ƒˆ•…ŽˆŽ’Ž„…xau†š~vvls—xrrb|wŠƒws|Ž€ssx}|u‚e™†yxuslumy`hswzl~ƒr\|{s‚p~o}{vxvg~{z€nxxo‚w‡spk…v{y€t†vz~|…}„ˆlw|Šosx{}or}rmku`‚ˆvŒpkzsk|sxxty nyyfh}y{uqt{ƒ‚jyzyy{vjzyx_x}f{tokvxwo~qkprrwwvs~~xruvw~}sxvk}{y}sv~vwut„v~x{x~mjqhos{€ox|rsxxz~||€yyuq}|‹u|wy{y‹‘žst}ˆ}{}zŠ‹‹€˜„vˆ„{†uyŠ‚…€„qp‚}}ƒ~‚~‰„„……€~zv~qrtƒ~„‰‡x|„ƒzpŽ~ƒŠˆ…Žls~x‹„…uz‰„vw€q›l‡ƒ{h†‡~ˆ‹}Œ‡zs‚Œ~‹‘|}‚n}vu˜…†Œs††~v{}‰‚€}z}­¡‡|†ˆ}‹{„†u‡Š‡‚‚su{p…v‘“u~~~ˆ„vƒw…xƒ„ŽŠŒ…}ˆ}{xˆ†ƒy…‚‡zƒ~}‰‚y‹€vˆƒˆ€…€}„uy„x‡€ˆ’…‡ƒ…‡~jˆw}€ƒ|c~‰‘Šyuwy|©†pzdzp‘~{z~u›Šys~v‡vŠjˆ†vwwvqteƒc|uywpt{v…{h||r€tzm|„x‹yty|‚qysw‡}||vaj|vv€sz|ƒ„{Œˆxys„rryuxqqzro~yk‚€x}v|vœx|w~vv|¥v|zst{xƒsvozv~|u~‚€{~wq{ƒ‚r|}|xy{xpvztt€{uszw}vy~~v€|txw||p{xwwz}zzqy|„}xvu}}~‹{€tsutuu~~sv€vƒjv{zv|y{‚–{~ƒ{€‚Šz|}{xЇˆ’‰~†zŒ€}Š…ƒ€•„‹‹…}Ž}z‚…‹‚‡oxކ‹…‚˜‰‚u’ƒ„~‚r…rm‡|„‚ˆŠŒ‚|ƒ…{€Šˆ”~Œ…‚‚€Œˆ‰‘sx}}…ˆŒo“z~ƒt™m‚|j†…ƒ…‰‚Ž|m|Ї}ŒŠ…†‡l†|…ˆ„Œ‹~‹†€y{‚}„€‰‰y…³’|†zŒŠtЉ‰‘{|{|w„yy•€‰|‚}|s†u‹ˆ‚‹ƒƒŒ†††€€€z}‹†€‚szŒz„ƒ…€y‹{†‰}y‹w‘}ƒ…u~Šˆ‡}’„…އƒ†€rЇ}}‘z’•†~y›~ŠŒ…x‹gp‡—‡—œ{ƒzy~Ž}t†ˆ’„€‡ƒv‘›‘w~wr•…‚˜…y‡”……zp wƒs’ŽŠ‹}„}†tw‘•|vzŒ–|€Šy~’|†|ƒžou{~†w–y{Œ‹Žƒ|‰“„z€ƒ‡}ˆ‡‚”‘”…Š}†~p|o‹ƒ€oŒzxƒ€‚¦{ˆž˜’urš‡{zv…„ƒƒƒ†–cŠxuy‰Šx¡{xz…xv…v~•ˆ{}}w{x¡}‹}Œz–ƒv€uœ€x|y‡™‡€‡wtx„€€yƒ~}–€~€ƒ{”€‡|–rˆŽ“’z†~ˆŠ“Œƒˆ”ƒ€‘މ•”ƒ„‚‡„tŠƒ‘††‰‰Š~‡”†|ˆ…„Œ˜‘”‡•†‰…Š}‡”Ї„‡‚ˆsx‡}”ˆ„‘‰”‹–‹‡—ŒƒŠšŽ‰Š’‘“y‹‘ƒ’ŠŠy‡Š†|–‹‹ˆˆŒƒƒŒ‰…|‹„‰—‡†‰ŠŠ‰’‘”†ŒŠ‹…ކ’ƒ†ˆ‚Ž’†Ž…‘…‚‹ˆ†Ž‰…ˆŒ‘”Œˆ†Š‰Œ“ŒŽ‰†‰‘‘†‘‡–ƒŠŠ~ŠŠ‰‚ŠŒ‰‡‰ˆ’‹ŒŒ•†‹†ŽŠ‹‘‡‰–‹‰•Ž…‘ƒ‹‘‡xsŒ‰ˆ€zzzt|ƒyx|…{{”|y‚~•Žszrqz„rn‹w€zr|x~…n}{y„soƒ{}|qƒ~v†{€yw“|…zvzˆ„ƒw{vx…€zuŒnsˆr|€vv}†~~‹€ƒ‹u}uŠrj…€zy{†}v‡~x…ƒ”y{€q‹{vsx„„ ~{|€€}n€}zx€v‘}|z~~ƒƒw…€‚z~€sw{vt}‡r{|}z~~{~y{~w†|~{wxw}‡}r€~‡‚†|}‚yƒ~€Œƒƒ{}…yx‚€xzƒ{„u}{}{ƒy|ˆ‰{†|‡…Š}„~|ƒwys‘x}zwv†w}}‰w{‘€|tš‹„vztp{‚tr‹|tzvx€~‰q†s„yr‚~…}p€~t†|‰x~„ƒ‘w{wЇy‚qrŠ{usƒ€k|xt†…~‰Œs€y‡€lztsƒ{uˆ}y‡†yŠ|zyo‡}}x€{‰£€{‚„‰|ƒk}}{vw”‹~‚{€…ƒz‚{~‡tu||x‚ƒƒw{yz|{€|ƒx€}{xu‚~{zwƒ~y~}ˆƒ†}ƒƒ|„ƒ€‚‘‡‚€‚}…|~|ƒz€‚{…t€€{‚xy‚Œ~‚ƒ…„…‘x…}~…yŠŽš…¨€y˜†z‘x„rŽ–}Ž‹‹‡“xyŽŠ…Ž‡Žš‘”—›~–”‹Žƒˆ‚„€Ž©Š{”ˆŽ™y’ˆ„І€‰‚_•£ž£‹Š~‘Žs‘‚”…‰„œ†”ƒu}€‡l–‡ˆzŠˆ…|~Š•‘‚‹‹ˆ‰wŒ{†Šš|‚€‰vv‡ƒ~ˆ‡Œ}—•‰œxƒtŒq¢}•‹ˆ–x{‹“„‹‡‡‘Ž‹„”m‘‚vƒ~‰Šu…}zŽ…zz›‘‚‚€…†–z†ln‡™už”}ˆx{~Šˆ‰‡˜™w„‡‡‘„ƒ‹|Ž}Œ‰”}‡}¡‚„|’q…€ˆ‹Š|“z”¡€|~‰Ž†©¢~„w~‚†ƒ‡…„–|j„Š´|‚ƒŒš”~•Šz|†§}•ƒnrƒƒƒ‚ƒz}‚l{t‘…‘{u‘~v{vŒ…~}jƒq˜yˆ’›xˆ…ˆˆ‡’‚}¤yŒ„ŠŠ†‡pƒnvuŽ~|†‹“…†•Œ„…“†‡Œ{Š”ˆ|v vr|„ƒ~j‹‹•ƒ¡Šƒƒ†~ˆ‡€•~{„…v‰Ž€—~†|™u†‰…ˆ€€vˆ‡{“€”–…z€}‚‰‚•‚z‡’„‰m…~}}|€Š}†sƒˆwŒŠ„}—†ˆƒ„ƒŠŽ‰‰†t}•‹€}|ˆ€’„{Š–‘†…ˆ}‹ƒz‚€“}Œo†‚Œƒˆz{ˆ“p™‰v‰ƒŠr‚no}lƒ‰Š}ˆ{ƒo‘Š…zŒ}†}v”’{wqr‰”Šl††s~‰|—k†„€i{|ƒzz‹ƒ€x‡vqy€‚{~–…u}nunlŠ~„w˜†yy}ƒ‰x}„‰x||§Œ€yšyz€y‡|z…|…wtxs‚zˆ{}}†„|w}u“„‡~ƒ„o{„…{’|’qx||Œ}‹~‰{„w€‡ƒ‹†ˆz˜q‚tˆ‘z—‰|v‘ˆ‰„u€p€‰‘‚’ƒŠuˆ…svxtˆˆ‚„x‰tŒw‚“}s“x|Žˆ„—{|r”„‚‚ކ‡ƒŒ“†yŠ{–ˆ|Žfƒ…‰ˆƒrŠ}|‡…}ƒ€…‰†‹€Š’y…~Œ††’uˆzˆxrˆ~€mˆ‡‚zˆs~‘w“s¥~}z‹–’™{…r€†…yˆš‡w‘˜‚xŽŠ„uy‡wŠ‘‹‚y‡x‰’‰‚}uš‡Ž~Ž‘yyz}w‡vd‰ˆ‹‡•…‡ˆy˜ˆ…sŠˆ|›€’‰st‹ƒuj…††‘ov~‡…~}†žoysœm‰Š…{u€‹€‡‰uŠ‹„‡†’~zƒm‰z€wwƒ‘“›’|•ˆƒˆp‹†ƒ‡u}¡r“„‰v‰†……ƒ‘ŽŠx{Ž•ˆžƒx€’ƒŒ°……u…Ž›‘Žˆz‘‹~…u€‘Œ€—‘’„ƒ‚ˆŠˆˆr’ЇŒ‚ŒƒŽ‚™{{‰p–vŒƒ–{…‹•“ªŒ‰“ƒ‡ƒ‹Ž–„„Ї‹‚Ž“„Ž–™“…––Œz–ˆ‰|~s‰‰‘§Œ”†Š…}„”„‰„™}‹ˆŒ‰Šˆ‹Œ•“Žˆ………ŒŽ‡‹‰|ˆŠ™‡‡ˆ~ƒˆ”v‡‘Љ‹“”‹’†‘œ‹Œ€ŠŠˆƒ”•…}“ŒŽ”„‡|pƒƒ„ŒŒŒ{‚‡ˆŒˆ‚ˆ‹’{‰•††‹””‚‹sˆŒ‰‹Ž†…‹„‰“‰z‹…ƒ‰Œ’Ž“–Œ…‡ŽŒ‡‡‰…ŽŠ„„‰‡Œ‰”’uzd‹z”‹ˆˆ“ŽŠ’‘Œ‰™ŽŽ‘‘މЇ‡€‡‡…Š‘‹‰ƒ‹ŒŒˆŠ‹‚‡ƒxŠ‘‡‹›‰”ŽŒˆ…‹‘†‡‰ƒŒ…„‰‹Ž‘‹‰„ˆ†‘ŠŠ’ˆ€„„Œ‹‘ˆ‘„‡…Œˆ„€ˆ˜†‚Бޔ‡‘‡‘ŠŽŒ—‘~y›Œˆˆ…ˆ„Œ‹‹’‰Ž‰…ƒ”‡‡ŒƒŠ‹‰”ˆƒ“‹‡–‘ƒ{‹yŒ‰…†‹|ˆ‘{ˆ„‰Š‚•–Іt…“„ƒ‘ˆ’Š’z†’”‰sˆ‹•‹™–…—†Œ€”Œˆ…Š„““‹ˆ•uzu…~Љ‹ˆŠ‘†”‹Œ‡—‘’“™Š’ŽŒ€ƒ‘y‹ƒxˆ–‰Š‘}‹‹‹‡†ˆŽ|ŠŒ‰”›š‡€Œ‰…‘†Œ‹ƒ‚‰”‹Ž‹”ދЅ‡“‚‘‘ˆŠ‚Š‚“‚„Š„†€ˆ‹‹…|•††’’ˆ‹„‹Š˜ˆŠ‡›†}‹{’—…†ˆ‰†‡ˆ‰‘ŠŠ‡˜†ƒ…‡†ŠŠ˜‰ƒŽ‰~‡Š„{ˆ‡‹Š‡z…—wƒŽ‡Œw‘“„ˆŠzu„އˆˆŽ’†“Љ…Ž‹’Ž’’““Œ†‡›††‡‰†„Œ†Š‹ŽŒ”…–‰”ty~ˆ~’‰†ŠŒŒŽ‰“‹˜‰€›Œ‹‹–™Ž’†—{‹Ž‹‰}†ƒ–‡}~ˆ„„‚…ˆy‚ˆ’˜‡‰Š‰Œ‡”ˆ”ˆˆŒ‡†ˆŠ—‚’†•‰†ˆˆ„‹‘‘‘‹ŒˆƒŠ~‡“‹ŠŠ„Œ‹“†Š‰ƒ‹ˆ„“…~„…‘ˆŽ’‡ƒ†}›ŽŽ‹‰‹Š’‚…–‡•‹Š“ŽŠ‘ƒ‰ƒƒ–‹“–“‚Ž‘ˆ•„‡…‰“…Žsv‹‚‡€u„ƒ~™Šƒ‰–„‚›€}ƒ‘|ƒ^t‡…‹„„ˆ‚‘ƒy–ŠŒ‡ƒzp}sq{‚‡•‰ˆt•„z~€‚‡}„€†‹…{Їˆ”xx‚‚†’•ˆpƒ€‡„u—m…€†fk†‡ˆzˆs‹Šyn|ƒ}Œƒi‹„„‹ƒ’‡}‹…n|{v|…{‰zƒ«‹~‚‰||‹{‹‘‚Ї–‚‹‚w}w€y…|…‰x†qwŒ‡~‚ˆ†‡yˆ}{‚{iŒˆ€ƒ‚‰…{Ž€†ƒ†‰|‡ƒ~vpy}‰z“}}wŠ‚‡„Œ“‡}†…p‡|€…p‰‰ŠƒŽ{…Œ|€€}‰ƒ™ƒ‘‰‡†ˆŒ…uƒƒƒ‰l–‡˜†€~„…v“ˆ~•~xwuzo‚}~¢Œ‰t…wt‡†t†‡™ƒŠ‡}ƒ™{‡Œ{{€†„ž…r…|v~wo‘€Š…pª†€y‰ƒ}xŽ…„r~ƒ|}Œt~~Šs†‰{|‚‡Ž‡‹‘„‡|ƒ‡€„†ƒ‚~°™€Š†€|Š{Œ‰ˆˆ}}‚‚Ž„ˆƒ|Ž‚Žwx…–‡Ž„ƒ‰€†Šv‹zƒ…‚…{„ކ€Œ|Љ†x‡Ž‚‰š€{ƒˆ…’ˆŠ‡v‘ƒ‚„ˆ„Œ‹Ž…„Š‚Œy†‹‘x‰x…›‚”‹‡™ˆ—†”uŽ™˜’…‘–‘†’ƒ—ˆˆ…†ˆ{“‡˜ŠŠ„‘”‰‚ “‹ŽŠƒ{}ŽŽ€z“‰‘“ƒ{–Œ”‹„’Šš†…|”–‚‘’‚n‚•{|”vŒ‰“‘†‹‹ŽŽˆ†€…h‘ƒŒ‹‚†|ބކ…†|‰““Š¡Œ€ŠŽ{u“„’Ž€’y‚r†‡ƒ„’•†”“‹†‰{˜ˆ™“‚Ž~~v‡ƒ~Œ–Š„‰†‹}„”‰‘—‡Šz{~”‡†Žš‘~Œ‚…‘iˆ‹‘’€ƒˆu}x“ˆx|€vx‰‹‡Š…‘‹†x…w„}”v‰†‚—€{†‹ƒ{‡v{‚‚|l{~„•}Š~}‚†€{ƒr‚xss‰‚‘І˜†{ˆ†ƒ‚}Š„ˆ|ˆ–†Œ”ys}†|q€”xwxuk‰‚€k”ˆqކ‚wˆ‰nv„|’n…€m‘}~’’…Œr†…z|{„…{…†y†yµ”…Љ~y†{’}|…‡”Žy…}|v‰xŸŽx†ƒƒŒxzn…v‡w„‚‚ƒo‡…{„z‚’ƒ~‚zz†ƒƒƒq†’‹x‹Œr‹‚˜„„ˆ|ˆ€yƒx•|‰ŒŠ„ƒ€‚}r†w|„w‹’zŒ‡Œ•Ž„‰{“‰‘~–•ƒ…†‡ˆtŠ„’…Š…†‘Žˆ‚††‹|Š’“‹“‹“‰“†’‰ˆ‘‘–ˆ‹‰~ˆŽtxy’‘‹‹‚–‹•ކ”“t—’‰Ž‹“}|”ƒ“€Œ|ˆ}—~ˆ…‹ŒƒŠ…€zŽ‹‚•‚…ˆ„‰Ž”•ŒŠ‹ˆ†‘†Š‡†‚…މ†“”†Œ–„ކ’‰Œ“†‡„އ…“Ž•ƒ‰‹Ž‹„‘‰’˜ˆ“‰‡ƒ”}Љ~ˆ…Œ‡ƒ‰ŠŠ…‹ˆŒŽŠ”„’€Š€Šƒ‡…ˆ’Š’ƒŒŠ€‹Š{…x‰Š‰‹zŠ‘ŽŽ†‘”ƒ„‰‚t‚Œ‰†‰‡ŠŠ‡“ŽˆŒŒ‰Ž–’Š”„‡™Ž‡‰…Š„ˆ‡Œ†……•†”ty|Š~ŒŠˆŽŒŒ”‚ƒ˜‹…šŒ‹”–‘€ˆ‘…Š‚ƒ‰’‹”ЇŒ„ƒ‘“„{‰…‘˜‰‡‡ˆŽ‰ŽŠŒ’‰ŠŠ‰Š†”†’…“ˆ……‹‚•‚’Ž„†‡†‘‰‡‹‰‰Š‡Œ€Œ‰‡Ž‘Ž”‰‚‡ˆŽ’Œ‘‡™ˆ…}‹Œ†ˆ‹‰††ˆ‹–ˆˆŒ’“ƒ…‰—–Ž‹†Žˆ{c”Œ~}|t~}ˆ…r€‹p—‚„w€~™…ts{s‰ylq„ƒx…|v€~ˆl†v{yxv|vs‚v‹u{z~€|‹‚…tŠ{y~}|zoyƒ~u…wzƒ…‹€–‰‡vƒn…wworyu„†s‡‡q…}Ž„w{‚v{…s†œ€…y€‚€‚„v‰xz~›€‰‡t|y„ƒ‹€†n†Œ…|s}uustz{{~~t}„}}zrvˆƒn†u{x~yzyˆ„ƒƒr~†ƒˆŽ|ƒƒ„~ƒ‚Œz‚w}„w€}yv€„Œ|‰‚’€Šyƒ||ˆx|‹{}‹~xx‚ƒŒ‚y‘}y‘r„€wqxyx‡ƒzq‡x~{ƒy|š„Šo—ƒ‡z„lŒlu||ymƒŠ…sˆŽy{ux}{€v}{†ˆ‹tsoj‡‰|j€…|dr‘~–g†ƒz‡aŠ…xr†Š{Š…qu{Œ}‚„o€x‰”xƒ‡ƒu‚{‡r~Œ„‡‡v}ƒ©q}‚Š~y…woˆz„yzzxnxs€l€‹}uŠ€gy‰r‡t‚Š…}…‘Š€}‹{„}yvxv{zq{„މ‚}‚…t†ƒqrowyu~ƒlŒƒ–€‡vƒ€—’ƒyŽu†…zx•z‰Œ€—’u“†‘z•¨„‹‚xŒ¡•ŽŒ—Ž…˜ˆž…€‡š€–•w““‰‡Šš…Œ—‚’ˆ”jtŒu|U•uƒŠ‘wš™Š‡“{œr—‹z¢‚€w••š…n‹}ˆv…Š‹•…€—–Žƒ‹†”wž|•Œ”}•~‰y‹Œƒƒ‰‘–u…†z~‚‘–ŠŠ—Ÿˆˆy|‰’|”ˆ‘Ž’”‡‰‰}”Ÿ†‘˜s†}~…––€‚ŽŽ‚nvŒˆ˜’—Ž—…p•Štƒ‚…‹~•‹“Š’•ƒy’Š˜~‹ƒ€‹……xƒu¨†l•~s†’¤‚n††—•rv}z„tz‚{{˜}|Šš”m‡ywƒ”|i˜ƒz…}rys†€buzƒtr~t}voš{ˆu{ux†‚sz†ˆ†…yyx{€wˆq|‰€wŠ‚|p|Žtx‡|Šrwr“yp‡‹…‰†q||~„€‘s•zzœ{w|‹r†–~{{w‚„z‚Œ…~r„w†•~r{ˆ~…yˆ…€yw‚…p{~†„—†~z‚Š‚w’}vƒw‚~‹€˜~‰€‚xu|€‚†ˆ†„‚xz~…„z‚„€„’s|~…xt|„{|…€~~ƒvŠŠ‚…{‡„„ˆ}~wyˆ‚£‚Ž™…‚”ƒ†xp€¡j”€–‚Š‘—…†—ˆ‘‹‘‡Š„y…ˆŒ‘‹‰•—Š„qtŠtv}ƒs…Œ…—›Ž’Š’’Š|’…‚Љp›ˆ…‘‰–zl“wŒ{’”–†“Œ˜Š‡–€”ˆŒ‘Š~uˆ„‡Š{†•ƒ„‰ˆ’”’–…ŸŒwŠˆƒv…€}ŠŽ†–sЉu…Žˆ”Ž–~Œ‰ˆ…•‘„{Šƒ‹ƒˆ‚Žz“‚‰†‹‹l‡˜’Ž‘ušˆ…€z{𙋑–Œ”„p’‘†“m…ˆ‰’†’Š‚~wœsvn‚‚ˆ”‡‡ƒ†„‚‹ƒ‹‡‘„Š {{Œ„ˆ‰„y‚‚z|ŠŠ…yex‰…ŠŒ‹˜‚‡wއ{……~s{tw…‰’†€Ž€€ƒŽˆ|‹˜„‰…‰€†„—xouˆ„…—q…}…‹‚tœt‹…ƒˆpƒ……~Ž{w~x}—p…‰ŽrxŠŒ—‡‹‰…w‰|u~‡}„v‰‹‡„¡ƒŒ~‰„‚w }††‡Œ{‰€w€™w§‡v|•}ƒu|˜t|}‹…—‘}ˆ|„~€vˆy‡‹„{–„‚…‚Ž’}“ˆ„‘{‰Žu‚™‚ƒz€€x}’|ƒŽ~|}‹rŽ‹z}¢ˆ‡|…†ŠŽŒ{ˆ“z‡ˆ…’†ˆ†€v‚Š„‰‚Ž‘‰‹ƒ‹‹‹ŠŠŽ˜ŽŠ‡›…‡ŒŠ€‰‹Œ‰ŠŽ…‹‹tz{Ž€“Œ†‡Žƒ’‰Š—ŒŽƒ—‹ˆŒ•‘•xŒŽˆ‘”Šˆ‰‰ŽŒ‹€—ƒˆƒƒ„Šƒ…ˆ‹z‹’}–…ŽˆŒ‹‘…–‡‡ŒŒˆŠˆ’|‘†•ˆ‚މ‘‘ŠŒ‰†Ž‡ŽŠ…މŒŽŒŒ†ˆŒŠŠƒˆ…ˆ‡Œ‘‰‹ƒ„†’†“‰ˆŒ~ŠŽŠˆ‰Ž„ˆ†‘Ž‹ˆ”‡Š†Š‹ŠŒ†‚–Š”…†‡™†…„˜w†œ…ˆ†„‘„’‰€g †uˆš“‚ŠŽ„}”‚€Š“‚‚ƒ’…Ÿ‡›ŠŒ–„~ƒ‰’Ž}‹•~m‡uˆo’‘j~‰†„š¨œˆŽ‹Œ’’Š ˆ~Œ…†œ‹Š“o™t‚{–ŠŒ‘’•’‰„x–…‡™„˜‰•‚ދЄ€’vq…•“‹”—“u–ˆšwpƒx„‰‡’“¯~~y~‡–“‡““‘˜€‹Ž‡ˆ’‡Ž”x|‡‡Š›‚œ””uˆ…€t‡…‹€gƒ›˜šy‰‰”“‹€zx‰œ”Œ–œŒo…’˜’„‰|ˆzzŒƒwˆ†¬‡~€xv‚q¢„ƒp‰‰‰vƒsƒƒ‚{{}~…}’’…Š‹xyyy…}llˆu|‰y‰z‹…pŠƒŽ|qoz}q}z‚“‰‹v„„|xˆv}‹{†ƒ~€{ƒˆ…‚Š}tz~xnƒ‡m… |”w†~Šlh‡{s|†zoƒ†x|‡‘y…svŽ‚o‹|z|ˆ†‰‚‡ˆ‡‰wz„†z~€z¦†~€™|{ˆ‹‚rˆ„{†||r}‚‡ƒx{}„‡~xt{‡€‡}‹†ƒƒv{€~qƒ‰ƒ‹|†„Œ‚…‡Ž‚‡n„zˆƒŠŒv„‡x†|ˆˆ‹“‹ˆ‡‰ŒŠ{‚ˆ|vƒ„|ˆ‡„y‚|‚ˆ™†„‰„x‰vx„…‘‡h†‚‡†Œ€„~…ŽyІ‰„‡p|oo‡‡‹~‘o‰‹…‰‚ƒ|Š€ˆz†‘…‹{yy‡‘‡o…‚‚€w†tšk…€€‚i€‹‹~‹{ŒŒwl{‚ˆx”‰†€„k„z€ŒƒŽŒp†‚~ry‚y|‚‡ˆwƒ¯‰‡„x{‰x‡}‹ˆ€~t{r‚|‚Œ}ƒ‘}„q„s‰‰~‚€ˆ‚Œ‚‰‰…‚zx{‹‡|€~~†‹ƒ„~‹‹€ˆw‰…zu„ƒ€“|€ƒƒy}x‚wŠ…ƒŠˆŒ…†‚ƒl†vwŽxxˆ“„|pˆ{‚sƒ•y™|‰Œyu‡u|}…’~nŠz…ƒŠ}twŒˆ}v¡z{~‚sƒmlƒn~x„‚ƒ|xr€|~„y‚|…€yvƒ’‡~}rs}‚†‡~m|ˆƒnˆ‰–m‚|}tj„r{ix‹‚|‡i~w„Šx|Žƒƒ€lŠoƒ†|z~‡tˆ}€n~„p{†vy¬l|“ox†w|‡t€zŽ|€|nxn{wn‰|~„|xtvtˆ‡}€‰n‡|~‘~|vs}oxƒ†~‚}†ˆ‰†ƒ‚nru„s“p~~rƒˆ†‡sŒ†u}ŽŠ…‡ƒˆypƒƒ}‡‹w“‚ƒŒzw‚‘{y›ƒ†~—‰vƒŠvŠ{Šˆ€}Z†ƒ…©‘Žy–ˆ‚€…o‡pp€„‚~†ˆ€Œ„{‡‰ƒ†q‡|‰„‡|…Š‹“vrv„Š‹“…oƒ“}ƒ€s¢jˆ‡}…i‘ƒ†ƒ~Š…x†„|m}u‚|ކЋl†‹€•†‹r‰xmz‡v|}€Œtˆ‚ª~ƒŽ‡yzˆw™Œt…ŠŽ†|†t{r„tˆ‘~‡ƒzŠ{zrƒsއ{‚‚ˆ‡‚€‰zyy{†„{}„z‰ˆ‡€Œ~„Š‹‹{„Š{uŽ}zw}„‚„€‡vŒ|ƒ†~‡†~|~s…|w“w‡…}ŠŠ~„yŒ{‡€yyŽ€—‡{™‰~x’{‹…†n‚ƒ€‡‰ƒƒ‘zމƒ„pˆop†„ˆ‡—‰Œ„u†‡x„ކ}‡†‡‚€ƒ‰‹zzwwˆ……Žoˆrtƒrœk‚|i†|ƒˆ„„‹tjz††zŠ€€l‰|Œˆ†‹z|t}ƒt‡‹†t„…°‚}Œ{{ˆy…”pŒ‘†||{zrƒsw‘‚}{€€r…t‚Š€ƒ†ˆ~Š„…‚ƒ|‰x~††{~n„ˆ„€}‡‰‡{„zwuˆzoŠx†‚r……‹y††‰†…‡†…m‡†„€†w„‚ˆ‹‚tƒ‚w‰ˆ€œˆ‚‰ˆzœ†s{‚€‹mwƒ‡Š‹|{~ˆ~}‡†œ€m~pp~ƒ“‰—…ƒs”†‡Š”Š~Œ‚€†‡ˆ‹Ÿ|zu~Š{oyŠ}{{sjŒ|ƒŒi•…ˆ†Š‰ˆ~“zzl‚~…y„ˆŠ~n{„’–Œx…„€m{~u„|}‹w„…¯¢€ƒ}~ˆz•„{…–Š“|yt}uˆqˆ†~{Š}|mv}…‚~„ˆ‡„Ž~ˆƒ…z’†€€ƒ{Œ‰~xw~€Ž„vl}vŠz}‰}q{†z„~|†‰|Œƒ„‚†pŒ†ptŒ{{ƒ…€‰‡‡†Žˆ–‹”‰ˆ„›–‚ƒ’‹u‘‰Š‡…|Œ’“‡zŒ‰yˆ‰“›–ŽŠ€Š”„‹‹’…•ŽŠ†“‡Š’’uzŠŠy•Œ‚Ž’ŠŒ„”“Œ’‹‡ˆšŒŒ‘‹’Ž‹Š|…“€‹ˆ‚‡Œƒ}‘|ˆˆ„Œš‰†}‹|…ˆŠ˜†œŒŽ€‡Š’ˆ”†zЉ„†Œ„Œ‰Œ‹†}‚˜†ˆ—ˆ††Œ‰ŒŠˆ’ˆ‹„ŒˆˆŒ~‘ˆ‰ŠŠ‘‡’‹Ž‘ˆŒ‡~ˆ}“˜ŒŠˆ‰ƒŽ‰ŽˆŽ‹‡‡•~‡—ˆ…‹Š‰’މ‡‘”‹ŠŠˆŠwЬt~’““ƒ–l‚€˜–£‘‘’Š‘v’˜‡„‹“–‹–¥}––€=‘‡Ž”˜‡‘ŠŒxƒq…ucœ~Š‚z””Š–‡‡~…|~‹“}‘‰}„Šˆš†ŠhŠt‚‡ŒzŒ™Š•˜Ž|t~އ€‡y’“”Œ…ŠsŠ€{‡Ž„•s’‰‡—˜Ž~‹Œy‚nŽ Ž}Ÿ”‘”q|†—z…‰‚‹•~‰–}‡‰…Š˜–s–…}ˆ…ˆ††Ž~†‰Št}|€„ˆ ‚“—{…€‚‹ˆ‚€•‹”yŠ„‡‰…~Œ|ˆ‡•‚yy ‹~{–’’‚}“”‡‡~‚|zƒzyy†t}•ƒ„ƒ‰š“~{~t~~‡zbˆx‡|~…‚‰sŽywˆxn{s€vf{}xŒ‚pŠz|ƒ‘…‡‚}x~‚‰tˆu|†v‚Œ‚rx…ƒ~~{“u€vssŒ†h…†ˆŠ|Š}†ƒ„x€‹yƒ}x~|„ƒ…‚zŠŒŒ‚r‚‰~zr„w¥‹†ƒŠ…“|„ˆ‚ˆ†‰ty€u{‹ƒŒ~|w€„wrwƒ†zˆ€|ƒw{v~‚Їƒ‡‰Œ‚…‘††‘‚~ƒ…‹{ˆ††ˆzƒ‚€†z}†‡‡y…ˆŒ€Ž‚ƒ‹Žƒ}‰€~Š{ˆ}œ…“y~Œš‹v“œ•yv… sž~Šœ–šŒ‰Š“š‰rƒ„•}…‰†‡œ‰~”‹†Ž˜†Œ“‰gx„ƒŠ‹Šx‹Œ™z“žŽ‘… ‰vŒŠ†Ž€yz“ŠŠrŒœ‹¡„m‰Œ|w’ƒŽxŒ“‰ƒ”Œ“’~ŠˆŽa‹‘—˜‘ˆ˜~”{Š‘‘‹‹””‹z‘‰‰v˜~txŒz”Œ‰|Œz†„ŠŽŒ’••ž•“‡•ƒ’™‡…™w”•‰‡€Œ‡‹—ˆ†Ž‹Š”˜•†|„}Žx{›…“‘Ž’•tŠŠ—t‹‰‘Šˆw›Šy˜€“†t—€rˆ€•™’}‘|††Š{Œ™™s~†uŸš„Š’—…„˜‰‚™‹†}Š—‚ˆ–‰ƒŽ—ƒ¨šŽ—•’ƒ{‰‘‘}Šuœ†Œcnr†Š|˜“Šs}Ї‚|œ‘ŒŽƒ }—|Š~œˆž…Œou—‡t“xˆ†•™ˆ›Žˆ’Œ€…‡ž™›ƒ z¢ƒ–€˜v’†…‡’‹‹}ˆ†Œp|ƒ–›…–‘©›‚}rŠ‘v”‡’‡‰Ž‡€ŒœŒžx†’„€Ž††’Š{qŸ‚y‚‚ˆ˜«–“”ŒŠƒt{‡}›‘ƒšœ‡~„†Œ›‡ƒ{ˆŠ„’‰ƒ|Š}­ˆv…z~‹—‹Š~ˆƒ‡„‚}‹‚~y†‰ƒ‘‡ƒ‡‰ƒ{|…~“€Œ~q‚‡†Œƒ†€€zˆ‡ˆ‡ƒ|w~ytx„‹†‘~{†ƒu€‹’‰ƒŠ‹ƒ€‹ƒ„Žv~…‚‡‹Žt‚‹zˆx‘p{†{p€†z’†Š–s”ƒŽ…~ƒq„ƒŒ…Œƒ‰‚‡ŠˆŠ„ƒƒ‹†€‡®ƒƒ~‡€‡…~z‘…‡}‚~…{|€…Œ}‡qˆ}„’‘„ŠŠ}‹Œ‹‹}‚ŒvŒ…{{Š~ˆ…‚‡Šˆ„„x„{‰|’„…~††„ƒ›ˆŒ…~€„’ƒvЉy„–€…|–‚„w…‚˜~ƒ˜ƒ|—ƒ~€‰ƒt†{z„…‹€€`„€Š……|”Š|t‘ˆ‡p€op{…‡~‡‚„Š„{…ˆƒ‹„Œ|Œ„‰uƒ‰˜ywu‰Œ{‘Špˆ{Šy~t kŒƒ‰jЄޒ‡„yl}xy–{‹Š€n…}‚ˆ”}Šl‡‚xy‹x{€Œt‰z©‡‰uz‡w›s‰‰“…zv|qŠz†Ž‚…‚{šuxp„r†…v‚ˆ€‹Š†…‚kx}ކ||‚y…~‚}„Š€Žl‡”}q“…–~z‡…|’{}…w|ƒz‹„…wwq…wuu‹Z‚v–{o‚‘ˆŒˆ|Y‡ƒ€Š`…Šˆ|xrs—|}ƒv¥x`Š„€„d‡qroVkƒot}‡xŽˆxr~‡iƒfu}tŽd{€ƒrw”ˆ‰ty’‚“‰|z†›k‡Š~yt}cy†ƒy††…~opvƒ†ƒzyzk{{ˆˆy|}†Šošh‚‘Škt‡{}†rsxhˆ†wŒ‹|ƒuz‹‹}u|‚ŒguЇpƒ|{ˆuŠtr”p‹xp}p‰}u€…tzˆwyo{‰ƒ‚~|j{Ž{m‚q}wvx|s–wztoƒ~zx{hu‘‹u€{…u…zœsrˆ˜——uŽx¦…Œ|‡‹ˆ ~syw†“–—{–‚‹™tŒ|ŠuŠq–u…Š|‚n‡}ƒ…‰~‹“g‰‰—tnx„‚‡ƒ‡’“—›…Œusv†¥„{r’ˆ‚v€s‰“Š~Šˆ“‰’o…ˆw‰tzf€x˜†„v¦|‡¡ƒ¬z„›„txƒ‹mw„‡•€}ƒu’Ž|†Šª‡‚{Žr–v’‹”˜ƒy„ƒ{žŠ…‰Š’œ‡‡€¥y†{–iˆxxn z†ƒ‘|”ƒ“ˆ²Ž|„~„‡’—Ÿ—|ˆƒ‡™’“u€|tu~r‰¢„†vkŽƒ‰~z‚„w’ƒ‚€}Š‚ˆ‰u‹€}€˜|„~t€zz‡†~’wЇ‚‹z||‰ˆ‚y˜{…xƒˆx‡qmƒ‚uˆ‘Š}~y…‹‰{z|}„{vƒŒ‘‚y{wx‹~}n†€z~x•kŠ‚„„iˆƒ†z„‹Š‰•…quz}‡‘†ˆl‚}†{ˆ€‡o‚€|z}…}‚…Šx{}¬„…{™vx‰wz‡…ˆˆ|…{syt{yy†ƒzƒŠ‚}zƒt…‰‚z‚Œ|~{w}‚|…tƒz†ƒ|…~ˆ‚ƒ~‹~yuy||‚zz{ƒs‚„‹„‚„‡wvˆ„~wyv‡•z‘‡‰}{‡†”~‰ˆ„}–‚‚…u’xw†…„„g‡ˆ‰ƒ…“‹‹|w‰‡ˆ…†q†qpw„Œ†ˆˆ{zއ‰ˆˆ…ˆ|‡††~‚†‘•vxts‰Š‹‘pŠ‚qxt£lƒ‚z„i‹†‰ŒŠ‚“‰rl~yz”‰‚‹ow„ŽxŽˆ‹s‹ƒ{vy}~€~Žuƒ‡¨…‰…y~ŽwŠy‹‰‹ƒ}u|rƒq€„ƒ‚‚‹‚~o€s†‹~‚Šƒˆ‚€ƒ‚xxŠ…|}x‹‹~}}‹Ž}†yŠŽ|s‚‚y}}|‹wŒ{|€†‚‹€ƒ|†nŒ…yq|‹|’zœ…lpi~|yu…rƒ“‚‚†‹“‡~yˆ„{€‰z„‰xŠomƒu©ˆ…|zkŒut€s~‹—…r„–|‚{…ƒx…|p‚‚‡|h~~{nt‚€|…{ˆ‚‰y}”v€o}v~vz‹—Œ~y€‹}i‰ˆ‚yx~€{‘‘“„~€š}ƒsƒ|u{„u|—‚|’}…v‰¡ƒ€wŒ†ƒsp„{€…“’\Šx|p}„Šw‚|t{vs„{~‹xŠ{|Žyz„~ƒ‚}z‚‡€€„x}†‹v}Š~iy~z‚n~{|{‘€{‚‹}|u„–u‰˜„‘’‹{‹yŽ‹’Šˆ‚ˆ‘Š~Œ…Œ‘ƒ•˜‚‚‚…‹t’‰’‰“‡Ž†“}‰’ŽŠrŒ…‹“”Ž—‡‰‘’‚‹‹†€‰Œ˜†uz{ˆ€Ž‹‡Š”Œ…•‰‰—ŽŽŽ’Žx‚†‰’‚‹„‡‹ˆ•~ކЅ…Љ{ˆ‰†˜ˆŒ‚ŠŒ„‰‘’ˆŠŒ†Š†—‡‰“І‡‰Žˆ‹‰…‰…Š‹ˆ‘ˆ‰ƒ‡Ž‰Œ‚zŒŠ‹ˆŒ•’‘ˆŽ†•“’‡†ˆ™yƒ‡|Œ’ˆ‰„‰Š„‡‰‰’ŠŽ–‡ˆƒ“‡ŠŽ‰‘…Ž’‡Ž’‘„“…Œ„ˆ”•‰•| ”ƒ‡ww‰‹~|†„}€Ž€‡‰……ŒyŽ–—“Œ„žŠŽ‹„‚‰€„”œŠ™•„…„…{ˆ“†v£ƒ€ŒŒŒ›œŒ†Ž“‚u…v’ˆ‰}ƒŠ‡‚””šv‹y”Œ‰•~{ˆŒ‰˜•—“yˆ–‘‡‚‰ŒŽ‡’‰‘†ˆ€‹†ƒ“ŠŒ‹‡…Š“~Š‚y}‹—‘–ƒ‹Œy~‹ŒŒ‡’‘€€’‘’Œ’~—ƒŠ”—Š–ŒŽŽ‰…‰”‹’ƒz™Ž†ŽŽ‡‘’œtŽŒ”‘}Œ’‚ž“’}‘•†‡ŒŠ‚–ˆ‰{€‡~ŠŽ’“‚zŽƒŠŠŠŠŠz‹”ˆ†‘ˆ‰‡‘•€…”ˆ„tŒ’‡Žˆƒ|‚”‘Š}ЉŒ‰Ž’Œ˜—Ž…‘މ‚‹Œ…‹Œ„‰Œ’Š–’’tyw‰€”ކˆŒ‡Š‘‰Œ”Š˜„•Ž‘™‹“Œ‹‹’ŽŠ‚{†™ŠŠ|‘~†‰‰‡…†{ˆ›…Œ‰‚—ƒ‘Œ…‹‡Œˆƒ”‚…š†‡„„’…’“ˆ”І‘‚‚’…‘Ž…‰„‰ˆŒŒ‹ˆŒŠ‚‰†…ŠŽˆ‚‚Œ’…Œ‘–ƒ‡ˆ|’”ˆ‰Œ‹ˆ‰‡‡‘‘„‘ˆ‹…‚Š„‚‘ŒšŠ’ˆ‹†„‹—ŠwŒ‚‹†ƒ€‰Š’Œƒz•~}‚€Œ€Žnyƒ…„Œ„‚‘ŠzЇ‚~n~ro‡‡ˆ‰„’ŠluƒŒ…‰ƒƒƒ‰‰Œy{~ƒ~ƒ‰ƒoƒ~{t˜nˆ}‚€j•’ƒ‡Šzœ‰tk||‡„’ƒn‹‹Š~‰–„‹|„Šuz‰{‚‚}‰x‚¶Œ~‹Š~‘z‹‹’€}v|t‡v†‡‡Œw„r„utŽ}‚€Œˆ“‹†‰w{wŒ‹€|{|ˆ†…ƒƒ‹„‚…u€Ž}t€€wŠyƒƒ…}v€z‚‰†“‚€†~nއƒw™z‰ƒ‘…—‚€|›ƒ…Œ‡œ|„‹~’™oœˆ‚‡˜Š†‹‰ˆ‰Ž‹•‡z€”ŽŽ{€…ƒ‰‹Œ‘•‹……€}ŽrŽ€w†‡‰ˆ‚‹““Ž›ŠŽ…–†qŽ•‰ƒŽ’uŸ„‡˜~ˆ{…x†Ž‚Ž–•ƒ‘’‰ƒŒ•‹‘{„†ˆ~‹ˆ‹‹ŠŒ—ŒƒxŽ”‘‡…“†’Ž~‡ˆ‰‹‰ƒž•€‡’ŽЇ…„”‚Œ˜–|–‡„…‘€‘†ƒ}€ƒ”‹ŠŠ’‚ˆ‡Š†|…Œˆˆ‘ƒ“…„~€z‹Ž‘ŽŠ’†‚‘~‘„†€‰‘”„†˜…‹†~‰}zˆŠ’‹…zw‚Œ‰€‰“wƒ”‰‘‘€™˜‡‰‹{t…ˆˆƒ‹„‰ŠˆŽ…”‹‰ƒ”‹Ž˜“”“Œ„ŽŽ‡€‰Š‚އƒ…””sxŠŽ}“…ˆ†™‡„œ„‘›‡‹’•““|ˆ“z…ƒˆŒ‘…|š‚‰ˆŠŒ‡–Œ‡z…‰ˆ•ƒ„‹Š‰‹Š‘—Š„ˆ…Š…“‡“‡‡‚„Œ…’“ˆ’”„ŽŒŠŒ’“ŽŒŠ‚Œ’’ƒŽ‹‰ŽŠˆ•‰…‡‚“Š•„‘…‰‹‘‰Š‰‹ˆŒˆŠ…Ž’Œ•ˆŒŠ’Ž“‡Ž†ˆ˜Ž†–‘ˆŒŠ†“ŠTqiv¨Šz€~t’‡z‹}|zzŒRƒ|t|v„‰€|ªŠŠ|xnŒ|npQr‹suˆ‘†{}‡x„~‰dzxt„t|u„qv}‚‰ŽsŠ~t…tŠŒ‘…z‚†€—}“y„~juowvy‘{…‹ˆ‹q‡ry‚wz}n•zŠŽƒ„v•ƒqrmkŽ~vlov|v«k€wi‡y~ˆ“l€w‹x€†t~{qxo}v’Šy†€o–~{itw•~‚‡…v‚€„~^oxt}Š„‚~|–…o‡‡pv~qv€t{w{†x|pŒ…zŒuh„†€€‡|ƒ|‰—ˆ‚‰Œ†‡~vŠ‘{………|š…{‡€uŠ{x|‰„„`†‚‰“…žˆ€|—†Ž„†oƒpn}ƒ~€‰ŒŒ‰~vŒŠ‡‡ŒŒ‚|‹ˆ‰}…ŠŒxuw‰‡Šo|…‚‚rxs¢kˆ‚y‰h‡‰zŠŠyŒ‡{l|~{Œƒ†‡l…}Š€ˆ•‰Œs…‚}qy†u~‡y‰uˆ«”ƒ‰‹z‰wŒ{†’”‡}|q|r†u’…„€w‹rvpr†€y‚~‡|”‡†Žx|x~…†||x|‰ƒ€€~~‹‹…y„|s|vyƒ€ƒ‚~†w†Š‰€‹ƒ‚ƒuoІ~t–zŽ–|ˆr©”vŸƒ{~}Ž‚{‡”­‡u‰‡‰‘€‡œ‡†”””ˆ¥Fƒ‘ˆ\‘}˜‹ˆ—x—x‡j}‘|¦†ŒˆŸl™¸œx‘Œ§‘€{„¤{u|†w‡”s‹l™\‹n—ŠŠ|’™“‰ŽŠžƒw‹‚}}„p†z‰{‹zqw«uuŒŽŒx¢›}•Ÿ˜–ˆŒq„c‘œŸr…¡”˜{~‹‰•€…“ƒš€Žœ…„”‚ƒ‡¥–†’˜{x•{ux˜“„sƒgˆ‹Z„…}›xœiˆ•zuƒ“”¯€‹‘“ƒ‹u€e……‹‹‚މxj n•„zp„nƒ~–‹›““‹}¢ƒ††›ˆ~w†…yˆœ †‘ƒ~Ї“…Š˜ˆ†“”Žˆ‰Œ}—„’Œ‘…Љ’‹†q•Œ‹Y‚“t…‘{—«o‚ŠƒˆŒ…˜ˆ‹}‰”€|‹„•‡šoŠj”u‘ˆ~–‚™‹†‘„‰Ž„…Šy‘˜ƒ‰‰ˆ}{‹||xš|“”‹†“•Ž˜{‰ˆrs„˜Œ•“–“”ˆ|{„ƒ•†ƒ†‘ŠŠŽ‰‰Œ…†–‰{™}‡†y‘‘„Š’…q‘‚€{Šs„Š…–˜‡•‚Ž~—ŒŒ|Ž“’‡•˜“y‹ŠŽŽy|—„ƒ‹Žp}‡…£Š{w}{||Ž›‚’Œz‘{‰‹Š‘ƒ|І’€~ƒŒ†t…‹†ŽˆŠ‰‹Œƒ‰‘‰‹ˆ„‹Œ”ŒŒ•Œ…‹”ˆ‚ˆŠ„Œ…ŒŠ†ˆˆ‡‘Œ“txv‹~ŽŽ‡ˆ‡’“„ˆ”Œ‰~—““Ž’ƒˆƒ‰‘ŒŠ‡‹˜Žˆ~–~Š…ˆ|ƒŽ€zŽ’‡™ˆˆ…ˆŒ‡”…’Ž‹ˆ‡‹Œ‡‘’„—‹‡…„Œ„“‹’†’„‘ˆ‰†‡‰ŒŠŒ‡‡„Šˆ‡ŒŒŒ‹Œˆ„Œ‹Œ‹‹—‡ˆŒ}Œ‹Œ†‰Œˆ„‡‘†ŽŒ‘‰ŽŒ‡Š’}†ƒ‹”‡Œ‘Ž„‰…„wx“Žvzoކv€z‘œ†|“…‚x‡„u–†z‹‘…ƒs‡‚…‰~|jˆ†{€”z}“|ƒ}y€ƒ‘}{Œ‹tŒŠ‘t…jŠ{…„u„‰“ˆyy~‰pŽƒ„}Ž|‹m€†‚xn‰š‘~…Œtˆˆ|d{€‘q‹†mŒv‚šƒ€~‰t}zŠm€‚}‚„…sƒ~®…‡|˜uu”€‡w{nŠ||q{s‰~wy}}Šwˆ‚Š{†tˆ‰Š…”x~‰|™‹y~}t|ƒn……†z†~yyŽ…z‚‰v{p„‚{Žp€†u‚™t†|‡„‡Œ‰‡…‰‡Š}w‚†zŒ{ˆvu‡{‡…x~…€~•…x‘zw‘z|zƒ…‰qŒ|„„}yŠŠ†€rš€~†{ƒq‰mtpx|{‚Ž…€€zrƒz|||‹|}€}v„ŽŽ‚tpvs~ƒŒ|p|Š„ox€|’gŠ„i~u‰ƒx€kx}…}}~“…~p~u„}‰~…u„}ˆo~ƒ|x{„xy„£}}z†{y‹xz€z}…}yxqxx€s€‡}y{}r|„w„u‰}z||ˆŽˆ~|‚ˆvx{{~z}€“ƒ}…|ƒ‰{€‚yvmx}xq„s…‡~†ˆs}y~Š~‚z‹€t„ƒz‡|Œ‘|z‚|ƒ‰‡‰ˆ~’’ˆŒ—ˆ…ˆ‘š˜€…‘ŠtŒ‘‰…“„ˆ‰‹Ž”–‹z‹‰ŽŒšŒ†‹~Š€‡ŒŠ•Š‚ƒ…‘†•“tyŠŽz˜€‘Šˆ‡—“‡•‰–Ž™Œ‹–Ž‘Žƒ}€•}‹}†Ž†~–~†Š‹‹›Ž‰Š|‡”~ŒšŒ•Œ‹‹†ŽŠƒs‹‹ˆƒ‹‰ˆ‡Žˆ…‰{‰–„›……Šƒ‹‚–Žƒ”’†‰‰„‡…ƒŒ‰‰Œ‡’ЋЉ”ƒŒ”‘ˆ…}Œš‰‚‹‹Ž{’‘ˆƒŒŒ†‡’†Ž’‹‡ŠŽ‡‘”†„’‰ˆŒŽ‹‘z‹~–‡†‰ƒ|Š“|”€{‰…t‰‹‡‰ŒˆˆŽŠ†ˆ‘Љƒ‰‡Œ™Œˆ“„Ž’ˆ’‡„‡‰‡‰…††txx}ŽŠˆ‘”–ˆ‰–’€…–‘‹Œ‘‘’{ƒ†’‹ˆ‹’~˜ƒz†‘~y’‰…–„{ƒ‡ˆŠ•‡’˜‘‹‰‰ŠŒ…•…“„ˆ†…’ˆ’Ž‹–†•†‘…‹††‹ŒŒ…Œˆ‹“†‘ŒŒŠˆŒŠ‘‹‰Ž‡Žˆ”‹Œ‹ˆ„Љˆ†‘ŠŠ—†Œ†‹‹ŽˆŒ‚Ž•ˆ…‹‚‚‘†ƒvŠ’y{rz‰twyy˜ƒ€~Š~‹Œs~z|„€~puˆ{‚‚pq…oŠ{vƒ}x|uwxps‚‹Š„~{˜{Šz}ƒ}€z‚{|ˆ}‡~‹wu||ˆtqx{€t|—‰qyƒ‚m‰vms”‰Šsx{p}}‚”€tƒs„yrwv€z~’‚x€‚„|v‚{ys}wx•v~ƒz{†’ykƒwƒ{r{xƒ„ƒp„€z†wnu}|‚}{||ys”Š„p†t€z{y„ƒƒƒ{‹r‚‘‰Œz‚m†w„‚~}~Œz‡z}ƒ{€|x‹Œ…‰‚ˆ‡‡}…r…Œ|zzŽ}‡~ysŽb{dnvpmws{wy‚r}qp€x~Œrwjqsm{pzxp|‰v…]{w‡{{rx°z›wpz„€„s}t{”|xz~ml‰…sw‚vw{}u‡…||{xv~‘”r}sxlv~uzzz}~vˆ}xxt|vzt{}|x©uz}sxww‚vt|zqwr}x}oxz„‚s|€ˆvwyxtwxƒw{xt]ywzq{x€zwwv|mƒu|wxsj}z‰wz„}ux€z{~|Š}ƒssx}tu|qpƒw„yuy}y{{v~ƒz~„yƒ£r~{€}y˜‰”‰‘~‡ˆ…Œ}x’މ†“y~™‡‘‡ˆ‚€”†‡ŠŒ™‰t‚‡ŸšŠ…ˆ„™’‹‡…’†–‹’“‰}s’”€{‰‹’–“z~Š„~sŽŠŠŽƒ…‡Œ€™†Ž‹Œs”Š„|—z…€ƒ”‰„‹Ž‡“‚ƒ…˜‡“ˆ“Ž‹ŒŠŠ††zˆ–|•Œˆ‹‘ƒ’ˆŒt†vƒ’Œ‰‡‚†‚}—Šš…šŒ‘ŒŒˆ‰…‘y‡—Œ‚Љ†‰Ž…{ŒŠ‡‰ƒ†ŒŠ“™“ˆ‰ƒ‚Š{“v„Šƒ—˜ŠŒŽ}’Š—Œ‚†‘†‰†|Œ•†‰ƒ‘zƒ‘‰†‰ut’ˆvpm}…Žxxƒ˜€| }x†~„•gzƒx{Ÿ|]‹|u„}t‘{fƒ‚|€ksqwvf‘|u‰€vtf~Œ|t€ˆ†‡‹[|vp‹”s‚„x€„|Œ‰rx|……“oxu‰~lz{†„ˆ|„{‚‰€€|uƒz“{{‰u‰…’ˆ‚y~’Š‚|v…‚‚yƒz‡©Šƒ†€ˆ…†„„€~}Žtwt‚‡™‹z}}ƒƒxŠ~|ƒŠ„‡€‰|ŠwŽ}uŒ‚ŠˆŒx‡‰‚†Ž…”…}u‚„…s}ƒz€tƒŽ€‡w‹|€‹„€‹~Š…‹}˜yƒ~‡‡…{…xˆƒˆ~Šˆ}›‡}ƒ|ƒxy„ˆ~…fx‡y„~~|”„yo|qo|†ˆ’ˆ„„Œ„v‚„€ƒŠ~ˆ~‹†……”–yq}ƒ‰‚‡‡oz‰‚‚|tk†‡l„‡ˆ…~uŒ…yn{‰z“|€–Šp‹‚’‚Œq…†~sv€o…†‹z†ƒ³Šƒ‡‡|}„x„w‰Ž‰€r}v‚u ‡}||x}l‡uˆzt|ˆ††ˆ‰|ˆ‡zxz~wˆz{…„ƒˆ‰ƒ‡„„†Šr•|y‰w}„uˆsyy’„ˆƒˆ†ˆƒ„~ƒn‹Šƒ•~£‘„‘b{…Œ•Š…ƒ¡•r‚u¤—z…ƒŠ†‰—‘ˆ¡„{x›z•‡c}‚™Å‘—r˜“q‡•~žƒŽmyœ—tzƒu–’—Šƒ™ƒ~„zƒ‰”~~“—„‚‰ˆ‘~‹{ƒ{†vŠ|‘y}‘Š€“€™’„†…o{~ˆ—Œ˜|~†š‰‚—vƒˆ‚šŽ‰£†}Š–|~˜v~‚…–ƒƒr’—•¡˜‘ˆ ”n“Œ“„…—€€‰~mŒ•”„a’—‡›ˆz‡”‹ˆi|„wƒŠs‘y‰‚€¸Š‘¡‹‰’‹~yŠšw™qˆuƒ†’›†y“†‰‡‚“wu~ŒŽrŒˆ”ƒp•ˆŠŠ“‚މp|xqw“§ˆˆw•~›ˆŒ’˜Š‚•Ž—‘‰ƒ„…‚”‡šŽ„wš”‹i™ƒ’˜Šeˆ•†“˜’kˆy‰–‚{Œ“—‡“š—’€™”„n”v…ˆxšw’ŒŒ’•„u€‰Ž~‘‚‘{yƒ‡{„Ž‚•|™‰’”Š—˜”‹x’•“ur‘g{˜ˆ™œ‡}~‰”ƒ›‘™‘„“ˆ”Œ†…Œ”’zv„s‰Žz”…‚f…†ƒs•}‚Šƒ†Š—yŒz‘{„xž—…Ž™‘‘…m“•Ÿ…ˆw‰“nt~}†‹‘‹€–€ˆŠ“›’‹{†xŒ’Œ~~ˆ‘†‚‡†ˆ‹†“›‚‹…‹t–‘Ž“Œ~”†‚Œ„”‹Žo‘Ž…–˜Œ‘—Œˆˆ‹’‘Œ†Ž—Ћއ‡Š‚‘‡uyƒˆ|“‘‰Œ‘Š’“—Š“‰”ŠŽŒŽ–”y‡‹†ƒ”‰Œ„ŒŠŒ˜~‘І…‘‹‡‡†{„‹Ž—Œ‰„ŠƒŽ‡“ˆ~‡‹ƒ”Œƒ“…އ‰„Ž‘‹‘‘ƒŽ„‰Š…Ž‹‹ˆ•“Љ…‰ˆ‡ŠŒ‡Љ‰‡ŠŽ’’Š†ŽŽŠ…—ƒ‹…|””Œ†ŒŠ€‰‹Š“–…Š–„ƒ†“€ŠŽŒ†‰Œ…‘†‘ˆšƒ–»‘zƒ†‡ŽŽlŠ}‘ ¨ŽŠˆy‹‡’„•Œ‰Œ™ž’‡y‡˜¡‚pŠŠ–”—‰’•pŒby‡‚“–n’¬‘“‚v~’Žvš˜‚”‚Š„œŽ˜l‚mƒ”{„•‡Š‰‡™„‡ƒ›Š‰€z„—…†€•‚†‰„Šv{’~Ž“‘}•——š|’Š~|ˆˆ…—–‘ƒ™„}{‰ƒˆ‰€‰Ž†‘‚ŒŠ‚ˆ‘‹š”„…‘Ž„‘™”Œ†{’{Œƒwˆ–x‚‚{€‡‰†‡Ž›‰€ˆ‘Œ‚|‰‡„‡†r}†€˜Š‚o€{syŽ’~xxŽ“–wxyvxª{lzrzq‘~x{€y›‰xt}v„xƒf……zx|wsuub~ez€ywol~y|e{ytƒqzn{‰y}xpy}r|vry~x|€ig‰}tt~n€w}{~~…yzubtuuvnppo~ze…ƒs‹uvxtvxtytwx•t}zsryyƒttrxs|{g|{}z~uo{ƒ‚s{{|xxvuqvywo|xupzwxux~uzuvwwupyws{z{zydvz„{|vv„t|{|z‡{‚osspst~}ttu}osy{uzzx‚Œz}‚v€u~|||xƒŒƒ‹z†zˆŠy‚„‰ˆ’†„xx„‚…‡wz‡‹…„€‡u„‘€uŽ…€‡q€rq‡‡Œ„Œ‰—‚x‚Š„‡r~Œƒƒ–ƒ‰˜y|{‹Ž†o…–‚u‰€t™lzƒ‡k†ˆ’ˆ~…†ˆ†Œ|m}ƒ‡{ŽŽ|~‚l…{‚“€‚}‹|‹‡{x{~‚w’Šxƒ²…‚”u~‡z“ˆu‡‡Œ€|z{w†sv“~~ˆ€ˆ‹sˆu…‘‚Œ†ŒywŒˆ‹ƒ‹ˆz“€‚}yˆuƒ„‰{‘‡‹~†‚~tЇ~‘~{Švyˆ€‰}œx‚‹ˆ|…‡‰‚qŒ‡yz†vˆrx‹•t„wpwy|y{oˆƒ{—„ƒ…|…xwx‚“~‰ru…yˆ‚pq~‚}z…Š~y{|xhz}‰ˆ~~v‰}„v€{ˆ{{Ž…ƒ„zrzv‰wvx~†oxŽŽt‰u„€i‡rw‘†‚p…‚ux~„“zyŠw‘ysuwwƒ‘†‚u}ƒv|w€}Šzx|x|Ÿ—y|y}}}up~‚~nyqŠxŒz{~{~v{s{z‚x||{{vŠˆ‚t€u€†y{‡‰ƒ}†Œty~…‹„†z‰v~q‡p€ƒzƒ‰z{ƒ}|‚y|‹‰‹~‰ƒ„{€…w~‡w…Žq€‡‰‚zˆˆ‡|‘Š}œ‰}ŠtŽŒ||‰†ƒq†€~ŠŒ„|ƒ„„ƒ~–‡•~‰wwu‚”‡ƒŽl‹€€††}…Ї~ƒˆ‡ŒŠpx‚€‚€ˆtyƒy}zwoŠ€‚Žk–‰s‰Œ‚w‰‡ym|’s‡ƒˆˆ…o„~‹}ŽŽ‡‰u†ixƒ~€„‰v‰®Š}‹w{Šv†‰|†„‘…{zozt‘v…|ƒ‚Šwysƒr{€z††…‡‰…}Š…zv‹Š|yu{‡}†x}†„„ˆ{„ƒusŠ|y‹w{~~—w|†t…„„†ˆ†|j…„}}‘oˆ}ŽŽ‰‚…x~Š€y‚Œ~”‡ƒˆ‹…v„u{ƒˆ€ƒl|‡~„…nŠ€ˆ}Œ“pvp}~€’‰ˆ–ŽƒvŠ‚†ˆ†Œ€‰‰‚ƒ~ƒ‰—zuz…„†‚‘oy‡‰{{ƒu˜n‡€„‡kŠ‚‰‡‰„އuk}„„|Œ…€ƒ‡m|†ƒ†‡‰y‹„ƒsx~|€ƒ‹{ƒ|°•„‚‹€€‰}‡|ˆ˜†Œƒx{}w‰v‹„yy„~zou‰‹‚ƒ…ŒŒŠ€€~€ƒy~ƒx}…€~s‹Š…‚…ˆ}sy‹{€…‰xr‰~ŽŠˆˆ‡ƒƒmŠˆ|‘€‹’‘Œ~€x‡€~‘€‡€š…|“„{x|‰‚€„jyƒ††‹€…‰ŒŽzƒ‡ˆ~‚‚qƒtr††„އ‹‡“€~†‚‰{‰}Œƒ‡Žƒ‹Žwx|…‰‰Œ‚p‚Ž~}v|užl†…~ykކ~„‹Š~ŽŠxm|†{Œˆ‘ˆm…{ƒ~Ž„y‹…~}z„„€€‡‰x‚°†„Œzy‘Œwˆ‘~~‚t{t…y…Œ~}†‚‹|~qt|†}‚‡}€‘ƒ‡“„zw…‡~sƒ}…ƒ‡‡…€‰wŠ„|uˆˆ{’}€€~~†~w‹‚†…Љ~†ƒzp†}zŠ~‹‹ŒyˆŠŠ‘…‹‹ŒŽ…~”†”Œ†”‡‘ކsƒˆˆ…‘„‡‹ŽˆˆŽˆŽŒ„‹‹’’Ž–Œ…Ž‘ƒŠ‚†…Š‘ˆ…ŠŒ†…†‹Ž’uxk‘~’‰ˆƒ‡Š•‰‹”–ˆ‹™ŒˆŽ“‹…ˆ’{„‰ˆ€’€…’†Ž‹ŒŠ{v‹’‰ˆ˜„ŠŽ…‹…ˆ“ˆ‘ˆ‡‹…ŠŠˆ•ŠŠ‚ˆ…‰‰‚‘“‰’”‡Œ‚‘‡Ž‘‹‡’ˆ‹‘ˆˆƒ’„ˆŠ…ŒŽ’‰Œ‹ŽŽŠ‰‰”‘…‘}ŠŽŽˆ†ˆ‰‰†Šˆƒ‘ŽŒ’ŠŒ…Œ‰‡…„‘Š…Œ…ƒ’†ƒ…iŒ~`§}šŽŒ£‰–”¸‰b…“Šk‡‚‹“’›‰„ˆž”…¢yœ¢†‡µ”‘‡?Š—ƒ‰ƒª€— wouotƒ‹˜š†~¡Œw’ŒšŒcšš‰’‡d—‡‰‘“Žvxyƒx”…|¢°˜Ž|—’‚kv¦ŸŒ‡‰~“o‡„}ƒ‰‚’™}Œ€Š}–ІޅˆŒŠ– }Ÿ}sŒ‹­‘Žz”’’„’}…†‰w–d€“ˆ€ƒ“‹˜†œt€“†‚…‘£‡••v}–|˜‰}‚œ~¤‡Š™wv¥hŠƒ—„›š’ˆ‚o€–‰¥š‡”‚x•oxŒƒ’u‡o„q¡”‡ˆˆ{ˆ‚ƒ‡„…šˆšŽ‚‘€‹„’“ƒ|”“Œz‚‡‡‡—‡ŒƒŠ‚މª•‹“‚ˆ‰‘‹‹„’‘ž‘‡‰‡_•{Ž…‡„x‹{ˆŽkƒs…sˆ‹‚‘Œ’y„Ž‹†€u“ˆŒŠ—‰•—‘‰uƒ‹ˆ‹š‘ŽŒ~‰ƒ‘ˆ„ˆ‚~˜Ž|’’Š ƒ—‚‰‰‡…€…z“‡†~‹‚ˆŽ‹‹……‰†Š‡„|†ˆ‹‡ƒ†•Ž‹…Š‘ˆ‰‰|‰…‘~†“Œ’Š†Žƒ†…‚ˆ—”“‹z‘•ƒƒ~ŽŒ‹‹Ž‹}ˆŠŒŠŒ‡”ŒŠˆ‡„„Œ†Ž‹‘Ž‚’“’{‘ˆ‘„“’†—vŠ“ƒ“‰‰˜„„‘†Štˆ’‚ŠŽ„‘Šy‚Œ“…~ƒˆ…‹‘‡–‘‹Œ‰’~“~Ї˜‹‡…‚€Š“‡uzp‚”ˆ‹{‰“‹…“€“’ŽŽ‰ŽŽ‘z—‹‘|އ‘’‹’~„—†“‹~……y‘ŽŠ„šŒ’Œ’‚‹…‡•†ˆˆ‹•ˆŒ‡‘Ž’ˆŒ…Š’‘“ˆ’ƒ‡—†•Ž„Œ††€Š“Œ’{†ˆ““Œ†”Œ„˜Œ‰’‹…™Š‹‹{ˆ•‹ˆ…Š„ˆŽ‹Ž†’Ž‹Œ~…†‰€ˆ„‹ŠŒ’Œ…‹‡‚„‘‚¥tŽˆˆŒ…ˆ‰i”}v}”‘Šu•~…x““‹t~ƒŒ™‘•ŠŠŠšƒ‡„ƒ|£¡‡‰€„xv‹ƒ’Ї{‘’މޓ˜•Š€™”‡u‹ŠŒ{‡†Š–“}}{ƒnŸxˆ{|”•“v‡””†Š£—ˆ—ŠuŽƒ†‹…|r“„••†ˆy ™˜‡ŸŽw‹w‰’{sŽ…Ÿ’‹‡‘…ˆ€Œ—‰“““ƒˆ€‚ˆ‚ˆˆƒ•‹‚n…‹„}Œ‚Žˆ€ƒm•”|x‡€x}ŒŠ•ކ|“™€}€v‘‘Žƒ‚‚‹€•€~}tƒŒ‹‡wm‚…„zutv‚‹yy~‚{š‚{~Ž~wy{z’we‹}{}rxlˆ‚„ssszyv„}{‚w~xw…’zrt€„ztvy„…„{Šxu}}u‡~{vz‰}‚~‡„oyvƒ„n€‚ƒxy’ƒ~x…x|›~xr…}‹„“ˆ~‚|†|~€{|„€~~‚€Œ”}|sŠ}ƒƒwЉ~m{Œ„w|zx‰€z|w€‹y€‚…„|…~–vwzxyx‹~~…~†ˆwz†‚‡ŒŠ‡€}‡xt‚vs}„„{wxƒ€{Šy‰…‚u}…Ž}‡€ƒwŠ„¨Š™‡™†ˆ…yŠŽqˆyq}˜o’{‰|ˆ›†x””Ž|‚‡„—Œz™Š†‘…‘‹‰¨›ŠˆŒ‰q€†˜‡œz‰”Œ­‘’‚“ˆ†‚Šˆ‰}Ž…•Œ’‹ˆ}€l˜|ˆyޙނ}–™€‚¡…œ•‘„Œ„y…€‰Œ‰„’‰„|˜–‘ “w‚xœŠli‘¦†„ˆ”v‘‰}Ї”Ž˜|…ŠŠ€‹‡~“€“‹Ž”Œƒ{ƒ‹’”Ї{eu—’všˆxŒ~x€Œ†‡ŒŠx–“†~„€‘”„‡Ž…“‘–‡}o|ŠŒ}„‡¤Ž€ẇ„Œ’™o ”‡kžv…Ÿ¼–Š„x•†¦„•‰€†©£ˆ›ž„|”“{h„‹•£ƒ˜ŽŸ–g| ‰vtx}—xwµ›‚‘~s~……ŠˆŠ—ˆ}”‡Ž~’‹ Œ‚p•‹‚{™i‰•‰ …¦ˆhˆ‡‹k‰ƒœv€•Ž•›€Šjƒ„†–—¡‹vŽŒzx}މ…œ‹p™Œ„…lw„‹‹–“œ‰ŠŒ†~˜‹‡”{‰‡ˆ‡•‡›“~g„y‡t¢xˆ•uŒ… ˆ›|~„€|v‘ЀБœ‰‹q–šŠzŠ‹…Š“w„Ž|x{‡Š‡†ƒ‚Œƒz •—…œ„„‘ˆy”{~ŠŠ‹‰x†‚‚Š‹„p||‡Œ‰|}wЇހ„Š‚ƒ|”uƒ”…‹|q’y‚~~u~uŽ…sŒ‹‚{‰ry‡Œœ†„k‹‚ƒu{š‚‘p‹{‹‚‡t†‚‡}v‡}¦§‹t€›|y”Š…v{„…{š~‹Š˜s…‹”|—‹||€xˆqiŽzˆ{„‹‡ž‘…|Š‘…ˆ‰zŒ{€ˆ|}Œoˆ‡‹‚”‹~€|ˆ„~…oŒ}‚˜ˆ—’ˆi’wr…„†Š†‰}}|‡Šx‹w…„{…Š‚‡Œ–n„‚~Љ€‡Žw„‡j‘€‡Šx€yy“‚sƒy}|{pyx~•‚‰|}xz|ƒˆ~‹o‰ƒ}‰zyf„€x‰„‚oy}€u€~‡‚ƒw††|ir€}„vyƒ}†Œuu‚•}r‘~}Œw‚{•ne†x}…€‚Š|{}{wxŒxŽp†{v}~„ƒw}ty{‡v„ƒ{uy¡€wŠvx€|w‘|„}‚†€vxn~p{y‚†€}vyx†€~}‚ˆo|‚{{ˆy‚‚xw‡‚‰|}r}|‚ƒ~„Ž‚Œ~†{yt|zz}|ƒ{ˆ€yt„†€†ˆ†„†‚yˆƒ~~o{x|‹“{{~sv}Ÿ~n~uwŽxzz€rnvx‹u}r€v{ƒxy‹‚s„g}…ƒttt‡{}wzˆyz„|†w}’ƒuzu{z„ƒtz}{vwnq„|ƒx||‚ƒ~~zƒŒpr‰mx„†lpk‚}ƒym„{ƒwr‰~y|{‡v€†v|wt|zŒ‚{}pzv{€t}†{~€uwz‚kƒ}‡w€ws{t|}wuo}||z{Š{r‚…}w}vy…‰vxˆx†yov€„„ntw†|}{…€|x„{tz€€t~vr{z{y…v„Їwƒz…„†|z|ƒv‚th•’tzy{|—wn{…w“€Š|~|‚r{wˆ™o’z†€‹{oB…€v†}’nƒ‹ƒu|r€y•|{Š…Œ„|š•xm^i{ƒ‹{zŒ’v‡~|zy{‹}qv‡†€…„€ˆj‰x“sr—‡’ss…o|•vouvw€~Ž„|u„rx}~vxnfwxx‚p‡v|x‡~yz’“cšws‹y^ƒwws~’€txs‡im{mƒ€{‚|{l…z}{„‰ƒ‚”xˆ|}zr†{i†f€f…m~{‹•t…{…wusp‚†oz~‚qo|x{…Œ‚~‚ƒ“}ƒ‡ut…}~€oƒ€|zwtqsy‡~Œƒ{Š„…†yxz~v€‚{wxŠqxwxƒwŠtv|~}~{m~u€€ƒ€‹}•s†{{nnu‚}zr~‘”|{iir†“ƒtp~‹€eŒŽ}…r~–zl|‚wvˆ„nwЉwƒ~‚‰„€k€t‡wmŠ{ƒ~{‚€…€vŽ‹{€s|ž€~t‹zi‡x{ƒ‡zyux{ƒ‰rzzŠiŠv€~ŽwŒ}ˆ€€}{tpt‰{z„‚‚Šzƒ}’€…‰€wŒ‘zŒs€}w‘||‰z}iŒw†z‹|ˆ’•Œ€„tŠ{ƒ†w‚p{~p…ƒy}{zt~†r{tv’€{v~‘†sv€vxŠqt†||‚yu{ws„qzzyysty|oy{|w|}€‡~ty„|„tzu|†}zxyiq‰}yy~t}y|„…„w~t‰tr‚yttxƒsƒr„€}Œz…v‡zwu|w|…›{|zx|}‚x|}xvw~‹{~y{|ƒ‚v‚€€r{~}ux{t|}{ury|v|wxy|zyx~{uzu}‚{t}€†ƒ€~z~w‚|~‚‚x}xyv€r}‚|ƒs|y~z~w€†‡{€~„„z‚~}w‡…y|Šˆ‹ˆ‚x‚‘”‹Š†‘™…‘wtƒ†ƒ†‰Ž‹‚“ƒ”ˆŒ˜Œ’™”‹†‚Œƒ}Œ‰~Œ”‡ƒ„‘’Œˆ–txšŽz–Ž…•Ž~’ˆ˜…‰™ŒŒŽ—‹‹Ž—“—–Œ{ˆ“}‘~‰•‡z™|…‰ŒŽ‹”‚Š‹Œz‡•††˜…Љ‡…‹Ž|Œ‹ƒˆŠ‰…Œ€‹ƒ‹‰Š—ƒ““ˆ“ƒŽ‚”‰Ž€–ŠŽŽ~ŠŠ†ƒ‘…Š”}ƒ”‰ŒŠ–Œˆ‘Œ‹…Š‹’‹‹‰…Œ‰†…†“’’„…‹‡ˆ‘–‡†Šƒ{“’ƒ‰”L‡‹“Ž”‚–Š’~‹š‹xwŽ‹”Š–‰“’…]‘Š~„sŽ—Žˆ“ŠŒ‰ŽŒ –‡Š‡…‡’•…‰†z‰l‰y¡‘‚Ž‘“‹‹›•‹‡‚Їދ–†¤Ÿ›t†•Œ€‰€‡‰Šƒ‘†‹{}‡‘…›m†ˆŒˆ˜“j•‹‹ˆ‰Œ–‘•ˆŒˆzŒ’”žz‡y‡…——†l˜„t˜—›š‹†‹˜{Œ{Š˜—“…|ˆ”‡‹Œ€‹‚†‰y‹{š…~Žš’‰Ž~}‰}™Š‹}†’{|‰‰Œ…˜•|ˆ‘†’‡‰‹|‰‘ƒ€b”…Ž–~zzqz‹pr‡itoŽt}o€Œ˜¡yu|x‚„ƒ|‘‘w}vp‚‚k‚^ZyrpiqˆqŠwpww€wxlqcmorw‰ˆ€umqˆ~ƒlxlv–|‚|}}wx†ŸŠŽrzoŠtx}umƒ‚qytpƒŒ„€€k„}tŠkz€ƒz€ƒ›q‚yŠŒ‚n††€€n…r|}ˆ~Œ…„Œˆnƒˆzxs‹|qx‚€l’t„y~s|‡}†t‹€všyz…z}pt{…ˆƒ~}sˆ…o†‚‡‚…†ˆ‡‡vvwk…‰~m‚„y€p~‚†‰„z€}o‚’†ƒ„yw€‚‡‡œ’Š~”ƒ—•vœ‰Œˆ{{ˆ£Ž}‰‰ƒŠž›‹¤‹‚z™œ›”}ˆ‰‘ޑІ™ž‰|r‰Œ~Ÿs˜‹’›‘‚Œ„…‹„“€…ˆ“{Œx‹™€p|ƒ}‘}|Ї—ˆ‡Œƒ’Œ}‹‹yƒ”wŠŒ‡{„‰x‚ˆ|ˆ‹’”““Œy‡{…‰‰Ž„†’•†‰‰ˆy„‚‹“”†€‰’•‹–‡’–}ˆ‚‘”‰‹‰ˆŒŠƒq‘‚‹†„„‚‹“r‘z~|ƒ|w„‘‹ŽŠ“•|t‰•‰ˆ‚|‹“‹‘w€†„~‹z|…‰ƒŠŽŠ‡z„{„Œ‹„ƒŽ•}€Œ’‹Šˆ—–€„Œ‚sŠŠŽ‰‰ŠŠ†ˆ‘‰”މ…Œ‡”Ž–•‰‹…‡ƒŒ†……’…ƒ‰Œˆ‘“tyƒz–„Ž•Œ—Š™Œ‰˜ŽŒ”‘†Šˆ”‚Љƒ‰…{—ŠŠˆ‹ˆˆ†z‡’‚†˜…ˆˆ‰Š†Ž…’’‡‚‰†‡ŠˆƒŽ‡‰„Œ‚Œ’‰–…ƒŒŽƒ’’‡Ž‹‚‰†‹ŒŽ‹Œ††ŒŽˆŒ†‰†‹‘‡”‹‘‡‡Žˆ‡ŠŽ‡ŠŒ„‘ŽŠŽ’‹Š†…ŒŠ…ˆ”ŠŠ‘Œ…‡‡„†‰Œ’‡€wŽ~Ÿ~…†u‹˜†|†‡ƒ{„ty‚„‡j~…‰ƒ•‚|—„Šu‰‡ƒ~†p„uoƒŠ†‡Œ’ŒŒnŠŽ|„ŽŠz}Œ‡Š|…“‰‰yw}‡‡‹’‚p…Ž|vvtœmˆ€}†jŒ˜ˆn‡ƒv•Œ|l|ƒˆ|‘w†Ž‚n€ƒx‡—ƒˆx†„ƒ~zŽ~~…ˆx†{²Š‚…Œ‚{y†˜}‰‹…{„u{uŠ{Œ‹ƒ„ƒ~trt{‚„‚€‰xž‹Š‚~‹y~†~{~Œ€‰ƒ~zƒŽs‡ˆ~tƒ~†Š€ƒ‰Œ‹ˆu„x‰††‡’„‰†ˆwqކ€v“y…Ž{‰ƒƒvŠ€’ƒˆˆ‚|”‡€~Œ‚wŒvy‚ˆŒ‡g~„ˆ…~Š…|u‰…‚††‰p}nq~†„…‡Œ}~y‡Ž„ˆŠ‚y‡‡}ƒ…Œ”{|s~“‹Šo‚~…y|sžk‡„zŠj€‡‚†ŒŠ‰€†‹zj~†„y…ˆƒ„n‚‚ˆ|‡‘‚‰v„zz„{„…ˆs…}§”…†Š|xwŠ‘tŒŒŠ‡}s{s†l‹€†{‘vqƒpƒŒƒ€ˆ{Œ•‹„‡ˆ…‚}ƒŽ|~v…‰……|€ŠŠŠu†Œ~pˆƒz‘{†z~ˆx’‰……€Ž„Š‚|o„x{„€ˆƒ‹~„x‰}ƒ~‡~‹}…{‘‚ƒvvw‹‰„„qz„„Š”}‡‹Šˆ‚|€„ˆ~‡pno€ˆ{x‰Ž…Œ‚z‹‰wˆˆ€‚z…„…zƒ|Š…vw{‚‹‰Šƒoƒ„ƒxwys›i‹‡xŠh~‰t€Ž}€•†zj{Šx„‰}‡o‡‚ˆ…“‡‰w}v|‡……‚ƒx„}«Ÿ……‡{‡~~Œ‚‹–‘‹yz}}r~u†“‚…‚‡s|pˆu|…„~Žo‡¤’‚Ї}‚zƒ€Œ~‚o€…’†€ƒ}|ŠŽ„}…†{vyˆr€„v…‹Ž†t‡z„Š„‡€|Šqp‘…†{‰‚…˜|”†sz…zƒz}{{˜}†~~Žt…y€ˆ‹…|}g……‡†“ƒ{…Љz…‡q|nq€„…}ˆŽt–{‡‰ƒƒ~q‡y†Ž€ƒŽ…”w~u„‘‡‡o„ƒ}‰‚…sœk…ˆ{‡i„‰‚Šމ‚‹‘wk|€„z‡„‹m~}‹‘{v†~ut€€„€‹Šs†©ˆƒsvw’u‡‰‡‡|q}q‰l}™|„z‡xƒq‰x‡–€~‡‚ˆ…ˆ‰ƒ€x„‰}{}x{‚~Š~‰|ˆŽ‰Œz„Œyu‹†x—w{zrƒƒ‡w•‚ˆ‰~…‡|pŽ„|zŠxš~~Ÿƒˆ•‘ˆ¼¢‘}c‹ˆŠ}ˆ‡“™—‰Šfœ~އ‰†ˆŽ‚‚€†—ˆn|•z€{z‰|†‡Ž†…‚…¬ˆŠ‡‚ƒ‹’}…ƒ}zmŠ€j‡€‡„†Œ„’ŠˆŠ‹LŠˆŠ†‹…—‹y„pyŽt‹{…ˆˆ„œzˆŠ}ЉƒŒ†‰…ˆ‡‡‡ˆ€‘„‚‰–‡‰’‚„‹u†‹‡Š€‰€†{€‚“Œ‰…’{†“„„’~‰‡‡†…„ˆœŽ~‹‚‹yˆŒ–ˆ‘…”Š’€„x|†„‰†‡ƒ‹†Œ„v‘{‹Žˆ„ˆnˆƒŠwŒƒŠ„Š…’‹Ÿ‹ƒ…qw‰”‹nt~’‚v”ƒ™Š†|~™lzƒ‰|Šk‚…‚ˆyr‡†vj}Œ}‡~ynymno~ƒ…Š}І‹}€”…Ž|}‰‡uq}€†Œw{izzs‘‰j|}{ˆcxuœl~y‘|c˜‰‡uy‡—~vnq}€‚q„ˆ{xsryxŽ|~t‚€‚|z{ot€s{w~…˜‘~vs}‹z’™l~u‚m{wmys’p}~{ˆuŽusu€usˆq{u…‡|†‰†“„~…vs‚ƒ€z€}„wp…r{Œzns{~j€quwqzˆt~vˆ}u‚}{Œ|„‹~u„ƒt~™|‹ƒ¡ˆ…|ˆ’‡ŽsŒ‚„|{k€žs”„‰€š”|ނޗƒ~|Œ“®}„”ˆŠ™›Š‹„……x•‘ŸuƒoŽš‹zœ““™‡ˆ†’ŽŒ„”ŠŠ‰Š‰”†”†—‚’—}nŒz…v”ŠŠ“••‘‡¦‘˜‹““ŒŽtŠ~‘„„‹‡„™ˆ‚|‘–‘ƒ£ Šo–“†v†„…wŽ…žš•‰ƒƒ–‘‰Š~ŽŠ˜„’ŒŒ‹|‚–ˆ†‘|‚„Ž|†‹zˆuŒЇ‡‘‹{Šr˜†„swŠ€›’”•‘€xŽŽ–‹†‘…‘ˆ|—…‘w—r‹—ˆŽ‘†¦‰}‡……}†Œˆjv„{t€ŽƒyŽu‚“€ŠyŠ‘{‹Ž†‘Š™‰Œ‚’‚‘‰˜Œ‡‚Š~oЉnŸ‹zŠŽŽ‰›ŠˆƒŽ‹Œ~“}Š…–Œ‹…Ž™—ˆs€mœw{{“”Ž}†Šš†‡œ‚˜Œ‚~‘„€‹w„†Ž~}‹ƒ”—™“Œ—~•z‡ˆŒsŒ‹lr“˜“ŠŠoŒˆz‹Ž„Ž…™…‡…„Œˆ”~•~ŽŒ‡’Ž‚ƒ‚ƒy’Œ~‰“…‹y‡–Š“{‰‰†ˆy‡‹›ŽŽŠ•‡‡x˜ŽŠˆy’‘‰ˆ}ƒs‡Œˆ’Š‚Žtxy…ŽŠ„„t–x…‹ˆ‚“Œ‘ŸvŒ~Š£‚’„Š•“‚|ŒŽ…Šv˜‡ „ƒyŒ„‰eŠ„…•…ƒ‹˜‚]n~g†zylŽŸ{•‘{‘¤~’x „Š•‘n“ŒŠ{—œ‡~q†„w’£‘‹“‰”‡h†ŽŒŒrŒ„–j‹–‡†‹Œ‡‰|‹†•zŽ‘“‹£‘}‹Žtt„‰Š‚Ž¦Š˜–€r{‰˜ŒŠ–Œ˜ˆˆ“–‘‘šsˆ’„‚ˆ|ŒŒ‚ˆ…˜gn‚„yŒ˜Ž}…z’‚{𑛉’‘•™Š ‘›xˆ~Š…“u–‹p‰{§‡o”zm„‰‘‘‹†‹z€ƒ‰“…–‰Œ}‹‚ŠŽˆ}Œ†|”‘†…š…’Œ‰…˜„‰€‘‚ЇЉ‰mŽ‹‰Šƒs‚†‡…‚“…Œ†ŠŠ‹ˆŠ‹—‘z—i’‹‡Ž†r‹Ž‰—†uƒŒ†Ž|Š‘‚”„‡‹…~ˆ„…vŠŠ|‰†‡Š‡}‹†ˆˆ„ŒˆŽ‰Š‹—„Œ‰w€‹‰„‰‰Š‰‰‡‹‹Œ‡†Šˆ‡†|ˆ†…‹Š”ˆˆ“Љ‰‡‰ŽŠ”ˆ‚‹ˆ‰–†‰ƒ†ŒŠ‡Š„Œ‰Šˆ‰‰Šq‰Š‡†Š„•ŽŒˆŠ‡ŽŠ…Œˆ‡ŠŠn„‰ŽŠ‡‘z‘ŠŒ‰}ŠŠ~Ž€}}€†}“‡{~‘u‡ˆ’…‰„†…„†…|“{{ƒv„ŒƒŽ{ƒŠ”‰Š‡Ž‚ƒŠ{…‚‰|Š†ŽƒšŠ…ƒƒ‹Œ‡…†‡‡‘xƒƒƒ”’Œ€Ž~z€‚}‡ŒŽ‚‚„|‡€z~‘Ž…|„|„‹…ˆˆ‚y||‡}‘‹‘uƒ‚˜ƒ……Š|ŒŽƒ}ˆ’„{Ž‹†ŠŠ‚†{{ƒ|‘Œ€‹Ž€~„}‚zˆŠ}…މŒwz}‚‡yŠŠs}Œ‡—ˆ‹’ƒ†…†zy…”‰…†ˆ…ˆ„‡†~{z‰‚‰Žˆ|‚„”Œ‚‡…l}‡„‡…yu‚Šs‰„–|u„}‰’†……‹ˆmz‡’~z„•–„€Žˆƒys¬x‘‡~„yŠ€{v‹‘‰€{†–‡€’{Œƒƒ†‚w…‡–‚„’…†……}}˜~~‚Šx€t|†Š~jˆ~–q„|zc‹‘Ž‹ŠŠ€†}~}„‰ƒ}‰‡}ˆ…y„~‘q~{„bŽŒˆŠwvŠ…r„ƒws|„ww…vŠrƒ‚}€t}€‰‰‘{unvv…‚~}{{„x~ƒ{|ƒy“ƒ}|w…r€|sŽ„}}zz“x|y‰„}}q€~……€Š„ƒ{‚w‚y“†‚‚{z„‰z}…€Žw|‡…Ž~†rƒ“ˆƒˆŸ”‰Œt€{“Œ€‹{‰“ˆ‹—†‹§|‰‚wvŠz•Ž}‰c™‹€ ›ƒ‡’Š…š‰xœ‘Ž}”~`—ŠwБйo“w~m†Ž’}ƒ‰‡Œ˜ƒ}{‘‘†‰j}~Œ‘†…ŒrŽ„z‰…Œ••v‰Ž€{ˆy“mzi“…{“„~“‡…“”€Žrzzw“‹‘‚„˜‹}~j‹Š€pŸ“”u†Œb”ƒŒ‹ˆˆtx·†“n{y„‡€~‰|u‹ƒx‰ƒ}‡‹vw€{‚vuƒ^}Œy‚”{Œ‰zwoxˆ—ŽŒ’k‹œ‚Ž„‹ž}‰Ž†‰„‡•‰“‰Ž˜†ˆ‚Œˆ~‹…€Š…‡–†’ŒŒ…„•ŽŠ‡’|“„††ˆ…‰o“ˆŒs…„„††‹‡‡~€Š†‹Ž•’{•m‘‰ƒ—Št‹ˆš}{v‚‰ƒ‘}†Ž“{“„„„‰}„Šˆ}uŒ…}‹‹ƒŠˆ‹‰~‡ŽŽƒ‰yƒˆ…‘‘“…{†Œ‘‰~‹‚‹‹‡Œ‰‹ˆ„‘‡†ƒ–ˆ’‰–‰Š‚ЉŒ•‚‚‰‘ƒ}„ŠŒ„†ŒŠˆ†ˆƒ…ƒˆs†ˆ…‡Ž†„……‘‡Ž…‚†ˆ‹”Œ†“q‹†ˆ„“{Š„ˆ…ŽŒŒŠ†vŒ‘ƒˆ’–‡’’z‡vtŠŠ•~‰›‘€”ƒ†’oo|w…Žˆ†vt‹„Œ‰~”z•Œ’Œ‚¬Žƒ{ŽsŠˆ˜–—‡Ž…yy”ˆ”y‰uƒ’“Ž‹’’{ˆzŽ„‹Š“‚t‚pŽ˜—œ’‰}•™m”ˆ˜ƒ†v’m ’Ž“‹ŽœŽ……}x™‘†x‰•’†ˆ“Œ•ˆŒ—ŽŒ}…Š‚‰‹‡…‡’y‹…‚‡‰™~Š—ž€‚€‰{x˜›ƒŠ˜ˆŒƒ£‚{o”—Š‹„”“‡Œ„‘Ž‚„“{pˆ‰ŒˆŠ‚†Žu—„†–d‹ˆuŠŽ…¡—†‘…‚„}Š|Š˜Št€ˆ‘ˆƒ†ss‡Ž|Œ~”‡ˆ•‰‰‡‡‹kŒ€xŠƒ„ˆ‘zŒ|†‰–“•‚„€s~‰||ˆ—†ƒŒ‹…‰‡‹ˆŽ•~Žy’‹~…ЂЉ‡~t‡ƒ‰v–Ž~{•yމ‹…‚‹zˆŒ{ˆ‰}‰Š{zŠƒ‹†~z|‡‹–ˆŽŽ}—•€Š‹‰ŠŽ‡€Š‡‹||…†‹ƒ‡–ˆ‡€†€~‰€‡ƒv‰‡~ƒr{…}–ŠŠŠ’†“’Ž}ƒyvˆ~’††Š‡Š„Œ€Œ“„~ƒ•‰|~‰{‚††– }ƒ||‚{Œ‰Ž‚Ї†~’……‰||‰‚Ї†Ž€|‡ƒŽ{™ƒŽŠ‹Š†™“‘…˜“І„„‰Œm‘†Žƒt†‹‰Š…z‡‰‰Ž‰…–‚Š’Š‚Œx’‹i‹ˆ‡ˆr€ƒŠ~†v„Ž…|Šz†ˆ}Œ“„†Š‰Ž…‹€wˆ|ŽŠ‡‚…Ž…~‹†„†…€‹‡‡–Š˜Œ‹†x}…‰…‡ƒ˜††‹†…Œ‹|‡ŽŒyŒ……’‰‹‹„•‡~•Œƒ‰„Œ‹ƒˆ„‹‚…ŒŒ‰ŒvŠŠŒˆ‚‡sŒ…Œ‰Š„™‡Šˆ‹‡•‚”‘ƒŒŠ}p†’„‹y}„‹Š††††††††††††††…†††††††††††‡††††††††††††††††††††††††††††††††††††††‡††††††‡‡…†††‡†…†††††††‡†††††††††††††††††††…†††††††††††‡†……††…††‡††…††††††††‡‡†‡††††‡††††††…††††††††††…†‡††…‡†††††††††††††††…†††††††††††‡††††††††††‡††‡†††‡…††††…††††††‡††††‡†…†‡††…†††‡††‡†††††††††††††‡††††††††††††††††††‡††††††††††††……††††††††††††††††‡††‡††‡††††††…‡†††…††††††††…††††††††…†††††††††††…‡††††††††††††††‡‡†††…†‡†‡†‡††††††„†…††…‡…†‡‡††‡…‡†††…†‡†……†††††‡………†‡†††††††††‡††‡†††……†‡…††‡…†…†‡†††††††…†††††……†††………††‡…††‡†††††††††††…†‡†††ˆ†…††‹‡‹‰‚Š€†ˆ†„‚ˆŒ‡„…‡†„€…†„Їƒ‚Šˆ†ƒ……†…‹†…‰‚rŠˆˆŠˆˆŠ‡………‹‚ˆ…‹†‚ƒ„}w…ˆ†ŽˆŽ†ƒy†…‡†–‰ƒˆˆ€ˆƒ„‚~Š‚‹ƒ„‰„ˆ„†Œpƒ……‡†~‰ˆŒ„††ƒ‚…ƒ€‰€‡†’{†€‹Š‚†~x‰x†‚‹„‚‡ƒŒ€Žˆ†}މ†ƒzˆ…Š…‚ˆŠ„…‡—“Šˆ‰“ˆƒŠ‹‚‰Œ‹ˆŠ‚ˆˆ†–“Œ…‰‘Š†ŠŒ†‚Ž‹y‡†‚Š‘‰†…‡‚Œ‹€€ˆ†|Ž€‰ƒŠ‡ƒ–Šš„ŠŽxž~„š€o‚„…}‡uq}މЉ€‰’’’‘˜‡uox‘Š€r‚‰—‹–~š€˜ŽŒ‡Ž„‘ƒƒŠŽt˜˜’’…‹‘‰“q}–Ÿ‹–‹‚„ˆ†|˜“€„y’‡„}Š„t‚Šv‰Œ…‘z‡™{…•…†‰…†„}“•‡ˆrœŠ•~¨™„…~˜š€‡–ššŽ„‰“y{€ƒˆ‰š‹Œ•’Šœ‚y{˜‰‚Œ~ƒf‚|– }‰‹‚ ‹‘Žš|–vІ{œ~‹’~ŽŠ}„œ‹†“ƒŠ~}uv•Žˆ™Žq„Œr¥Ž”—‡ŠŠo{~Ž‹ˆq‰Š‡†utƒ“’€‰‰Ž‹ˆ‘„Œ–pm„zuƒ‘}‚{‹Ž””‚’y–pŠ‘†“{{€”Š}’€‹Šˆ‘Œ–’”v––’y™…Ž‘“˜‚t†}vŠv‹w’Œ|„‘r‹‡Œ†”Š’€™–“Œ†€~Œ…~•Š„†…„މ˜•ˆ|’–’„~”Šš„‚Ž‹ŽŽ‹‡‘”‰‡†‚ˆ‹„Œ€…“Œ•Œ‚€‹‚‰Œ„„ˆ‰ƒ‘ƒ†‰‘’ˆ‚‘‹}„™Œ†‡ŒŸ‡’ˆ}Œ•†~…‹‰…y|”ƒ–‹ƒ‹‰†‘€Ž‹ˆˆˆ€u‰‰~‰ˆ—‚Š‘“‡y‡xvƒ“•}…ŒœŽ{‰ƒ“”moˆzy”y}ˆŒ…Œ{{’’t—„’Š€šŒ„vŽˆ‘–…‘ŒŒŒ”ˆtš‘‘‘‚‡‡„—ŒŽ‡‘„„‹‹y‚†z…š€{ŽqŒŠˆ…›Œ—’Œ“ˆ‰‚‰Šy|•›…‡Š””Ѐހ}˜Œ†ƒˆŠ‰‰“Ž„…˜„ˆˆy‡‚Ž‘ŽŠw‘…Ђނƒ”Š„€ƒ„Š‚”‡†”‡‡~‡‚Žƒ†’yŒ¡ƒŽ††Š‡ŽŽ‹‘—Ž}‰ˆ’|}†‹‹•Œ~‹z‘†‘‘‚‡Œ€rŽ‘…Žw…‡ƒƒ€‹ŒŽŽŽˆ€†„Š‹“„zŠ‘†‘ƒŒ‹˜‘“Š‚xv„‘ˆzŠŒ†ŽŒl‰–‹‡Œ~p˜u‹ƒ††ŠŠ€w‰‘„Ž“‰‹{˜‘h•‹’Š|q‹…ŒŽ„Œu€Ž’Š|Ž‹…~…“†ˆ‡ˆ†…}€vŒ˜‡|Ž…‹‹‰„}Œ‡~‰ƒvŠ‚‘†ˆ‡˜†Ž‡|y‚ŒŒ‚‡‚‡„xˆ„ˆw‘‘„•‚v…‡ƒ‰‹’ˆ‰Ž™‚…–ƒ„†|‹y‡…†‚‰‘‰“…ˆ…}‹~ƒ™‰‰€“q—މŒ•ˆŽ‘‹‘‡‘އ‚yŽ–Š•o–Œ’Œz‹Œ“…Šy‚‚{w„}}“‚rƒ„x—v€xvˆ…‚w‰}‡{uª|~‡‡ƒ€‡ƒˆ‡Œƒˆ““ŒŒŠ‰z|†…Š~‡v‡†}wz€†‘‚‚€ƒƒ„‚vŠ‹v……‚‰}ƒv˜uv|}}€…‰s€{Š‚ƒ‹yv…ƒˆŒ„†|†Ž}z…‡€Š‚ŒiŒv„t‚zŠ}p~{y†‘rƒ‹‰zŠ|~žŠs‡{ˆ‚Œz…r…||ƒ}|yt||…xyq„}”Œ|…|ˆ~„„|y{yvƒŒ€y’‡|~„Œ{|‚y„…‚ƒ‡zrr„{†yx„…kƒŠ{‡ˆ–ƒŽ}mŠx‡Š‡t……‘x†vw…‘•‰zƒ…„•€Œ…xmŠxz”‹‚}’}Ž~{‹Š”€Ž}”{‡‘‡Œ€ކ“‰„z…ˆ€‰Œ‡—|–’Œƒ”¤€†–ˆŠ“y~‚}†”z†‰‹‰„‘x„‡„~†‘Ž‚“‡ŒŒŠ’ˆ~‰€€Šƒ•„ˆ„„„†“‹‡’‚Ž‘€”‹‡ƒˆ~‡…Œ„Œ†}‰„~„’ŒŒ€Š|ˆƒ„„…z‹‰„|zŠŠ‘‡t„†Ž„“„Œ‹‘Ž~~~‰|Œ‰ˆ‰™ˆ’ˆˆ‹€y…˜ˆ‡ŽŽ‰ˆŽ|ƒ†}•”€‚‡ƒƒƒ’…ˆ†ƒ~}…|ŠŒˆvƒ{•‹†lw„†„{‡—‘€yŠ}€x›rƒŠ€Œ|}‹Œw‡ƒ‹‰Œ„Žž‡Œ‡Œ‹y}y‡‚‘ˆ‹„|‹‡ƒ†ŒŒŠ‰}Š‚‘Ї’…€ƒ~‹‡sz‹uoŽŽ†‚€|“€‰‚ˆŠyŒ…uƒ„ƒƒy…sŒ~ƒ‹k‹„Ž~~‚|‘‡‚v~…€‚wwƒ‡{ƒ‚‚€Ž‡†ŽŠ{}†‚|yŒ€v~z‘‡€Œ…}|pƒu‡…‘ƒ€Švy{‰‰‘‚~zzy†Ž{}~Š€Šz|‚Ї‹zx€y‹ŽŒƒ„y„zŒ€‰†„ˆ|\ˆ–˜z‚ym€}‚nuŽ}‰„ƒ{{‚–˜€t‰€‡†›ƒ‰„‡ƒŽˆ†z|‹Œ…„„ƒ{†”‚„މ€†Ž…Œ{t€„”}ˆ€“£Ž„|}Šˆ‡‡ˆ€†„„‡‚„{r{Š}Š~~„tx„ˆz€…‚Š€{žƒ€}€˜swy{ƒ…||t~ƒ„€ˆ‚z}|r…}xrƒƒ|~ŽŽ…„|ˆ‚~z‘€ƒ„v€ƒw‚‡…~•€ƒˆnm‚‡ˆ€w}†{…†€†‰wŠ…vyoy}oƒ‚‚‹‚ˆˆ€„…‚ˆƒ~~~‹x€„•„‚…„€ˆ•ƒ€„‡~‡“†‰…y‰‰ns„‹ƒ‰„‚•‚ƒˆ…Žk„{˜‰‡€‡Šzˆ‡ƒ}‘‚}ŒŒ{ƒˆzŒ…Š‚‹“‰”އz‰€–€’ŽŠz~Š‹‚‹€{‡ˆ”€ŽŠzˆ†z}€ˆ†ƒ‡€|‰~…„‹~‹†“€zŽ‹†…|Š—‡’|І„–‘…~r‰‡„~|†‡Š’z~‰‹‡…Ї‰„…ˆ‰€Ž~„€yƒ†w‰y‰Ž‡“†y€„ˆ‰‹‰“|†ƒ…€}€Šˆ‡‡ƒ‡…w€ˆ‘„††’„~v…Œƒ|•{…‚ƒ‚ŽŒ…†ˆ†Šƒ‹‚ŽŠˆ†‰‚ˆ“ˆ‚Š…€‘“…{šŠŠŠ‡‰–‘…•zŽ‹†ƒ€•‡‡q”ŠˆŽ‰‡y†|~‰…„Їކ~ƒˆƒ‡ŽŽz“‰n‹†}”‹u•ˆŸ‰y…‡‰‘~†Œ€ŽƒŒ††zzŠˆ‡xˆwŠ~Šˆ…ŠŠŒ„’„†„vˆƒ‡‘‡’Œ{Ž‹‰ˆ„Š‹ˆ‰Œ~‹ŒŽ‡‰Š„‰’ˆ€…‘†–’”‰Œ‰€…†’Ž…€Ž‘€|„Œ€ƒˆ‹~†‚€„Šv‰ŠˆŒ„ƒ‹ˆŒŒˆˆ}‹‹†‡…t‹Ž€‘|Š…ˆŽŠŸ…‚„ކ‘Œ|„‡†us„ƒ’ƒŽ“‰…”•„ކrm’~zˆ…ˆ‘”™yЉ’ƒ•ƒŽ}˜|ˆ‘Žƒ…‚‹Œ„‘‹”„…ŠŒ~x’˜ˆŠ‚†Š{Š‹…Œ“yƒ…†~‘†‘}‡‹”…{ƒ‹z‚…€‹Ž†ƒ…Œ……‰„Œ|‹Š„‰ˆ€–ˆˆŠŒ“Œx—ŽƒƒŒ‡ŒŠ€‰†~†…ދЇ†‡€‡ŒŒƒzš|ˆ‚‹…€‹‡‚{‚ƒ{‘ŽŒƒŠ…ˆ}|ƒŽ†‘~z|—€‰„ˆ~ƒˆ‚z~‡Ž‹}…Ž•‡…‹…~•ŒƒŒƒ‚~‰—Š“•‹‚‹…~‰‹‹„‹Šˆ‚‚‚‚‰‹‡‰†{†‰}„ŽŽŠ‡‘‹‡…}‚‹ˆ”ˆˆ‡‰‹yŒ‹ˆˆ†‹~‰‹ˆ‘ˆ‡…„‡Œ‹„†ŒƒˆŒŠ‡†‰ƒŠv’І†ˆ{‡†††~“~…ŽŒŒ‡„‹{‚‹‡}|Œ…І†…‰‹†‹{ˆŠ‹ˆ……‡‚І‡ƒŠ‡Œ„ˆ‰€x…‹‰}†ƒ‡‹‹€…†Š„‹ŠŠ}‡‹„†ŠŒ„„‡ƒ{Œ€ˆ‡ƒŠ…Šƒ€…ˆƒŠƒ†‰~ˆw†Š…ƒŠ‰ˆ‡|†‡Š‚‹ƒ”ˆˆ‰‡„ކƒ‹„ˆ„Œ††{‡ŠŠ†Šˆ|Šˆ‹ˆ•}–‹vŽz…ˆ|y}…ŒŽmx„‡ˆwŠ…‘ˆ~…’l‰ƒ{†’–ŒŒ{‘”‰}‘—Š‘…“wy~Ž~†‹x’|‚„„†‹†‡Š‚‘ƒŽz‰ŠyŽŠ‡‘~rvŽx‰‹Ž}„‰z„…~Žz…“‡„‰ƒŒ‹~„“„zƒ†y€{Žˆ„ƒŒ‡{p“–‚|‡‰‹ŠŽ{y…‰Œ„’„ƒ‚‰Š}„…‹„„~‹}‚}†s…ƒƒ|Ž˜„”Ž‹‘|‘€~|’„‡„†ˆ‡„„†}|‘…€ƒŠŽ„|‹„•†z‰€vƒŠ{‰‹„‘‚„†ƒ†ˆ…ŽŽ”Š›‚ƒ‰ŽŠv†€–˜‰”ŠŽŒ‹{’•“ˆ„—„’„}‰x•‹†t†ŠŽ‹{~€‡†’‡‹‚ŽŒ€…‡‰‰Œœzš†qŠx€¨‡£Œ‚y„‡ˆ‡‘‚–ys‚ŒvŽƒxŠ€zˆ|€ƒ…€ƒŠw~„‡‡}”ŒŽ‰Œ‡„}‹‰‹ˆ˜‹‚‰…†ŒŠzŒ~‡ƒ†‹˜“‰}„ƒ}…ŒšˆŒ‹~ƒ’Š€”‚ƒ~ŽŒ‡yŠ‹~‚wŠŠŠƒ‰Œ†‰”ŒŒ{yˆ‡Š”uˆxŠŒ„„™ˆ”}‡}ƒzw€ƒ„‰‚}Œ‹‰qƒ……ˆ‰†ŠŽ„{w­yy‹‰Œ}ŒŽ‚t‚‘”‹~‚Œ•“ƒƒŠ‘x„‚€z‚‚…„˜€†€Œ‡‚„~ƒ{ˆƒ}€‡{‰y||Žx€rry}ƒˆe€ŠŒ‰€‰€‚‚„z‚~‡ƒ~€‚ˆŽ{‚‚~•x…y€d†‹‡~yv|ˆ€…ysƒ‚~{~|…’ytr–|‚…€|†{~{wzzxwƒ|x~ˆ€‡y}€{‰‡†}~z‰d{–uŽ‚…€{}{x|y~|u„€~vz€{€ˆ„Ž‚~‡z‰z‰tˆs||‡{u„ŒŒx‡—Š‚‰w‘zŠn~‰”ƒƒvsˆ‡‘{‡Šƒ‚”‘‹‰qm‚~w“‹Œx‰…ƒ”““ˆ€š~ˆ‚~‰‡z|‘|“Ž“…Ž“ˆŠ‡˜‘}˜˜ˆ‡{“™‚‡”Š‘|„…{Ž€x…‹Š‡{•w’‰Š~‹}ŒŠ‘…ˆ†‰Š{}…€…‡…‚ƒ‡†œ…ŠŒ‰€Š“‘€ƒ†„††‹Ž…‡‡‰}Š‹‰…‡‰ƒŠ’„|™…ˆ†„Œ‰€’ˆ~‚{{І“ˆ‹Ž|}”Œ•Œ‹~‘zy‹ƒŽ~…ŒŒ“‡ˆ…‡~‰šƒ‰–‹„Š“|{“‡’Ї~}ŒŒ’‰€‡…Ž’‡‡ŠŒˆˆ„€‰Œ‚r‡†}‘†–~Œ‹…‰ƒ–Ї–w‘‚†„‹ˆs‡‹‰‹ˆz‚ˆ†xˆ†Š†Œ‘y‹}‡Œ†Š´’“q—Ž„„‡wƒˆ’‡yƒ‹‚’~‡’ƒ‡w…Œ‰€„†‹ˆ€z{‚‹†‚‚†‰€…‡ˆ…„€|‰ŽŽ‘‡‰†x|’Ї‚„„…Œ‹…ˆ‰ŠŠ„…‰‡†‘“ˆ‹ŽŽˆ„…‰†Œ‘“Ž“‰‹‹˜‚{~†‘Š‚†ƒŠ‰ˆ‰‚…‡wŒ}„‹ˆ……ƒ””‚‡‹Œ„Œ‘‹ƒƒuƒ€’Ž}‰€Œ™Šxv“Šf|†‰xбˆ{‘‹€‚}‡sy|w|ˆ}wf‡~z„žƒg…ŒŽ´yY{‡§Œ‘Š„¡‡‚z}ƒ‚vˆl’ †”w†wŽ“x~†ƒŒ˜|x‰’jrˆƒm…ƒ’o}z•¨~~o‰Š}wvz’s|‘…~ƒp…ƒƒŠŽk}“‡€€ƒ„~{|~„‰ƒ–hlŽwˆ‹†}ycz{uy‡Œm‰n›€}sz‹…nx‰wuz›w{‚„s‡r•”Љ}…f„‘|‚}Œˆ„{o}wƒ }‹„m‰}…x}~~z†s•‹‚‡†“€ˆ‰„y‹n„†‘oŒŒ‚~‹t†h‹Œ‰’‚„y‰|‰‰y‹†ƒˆos‰—ŠyŽŽ—‡…‘‹†ˆ…l€„x‡Ž~ŠŠ}‡ˆ’‹”y‡†Žv„{w‹†„|‹Žƒˆ„ˆ“”ƒŠw”‰„‘Љv…Š‚y†ƒ•zˆ“„Š{ˆ‡x‰…Ž‹Œ‡Ž~’…ƒ‡ƒˆŒ†}}~‚……‹|‡Œˆ’Šƒ„~‰‘{r“‹‰x€ˆŽ}„„‚†‹ŠŽ‰ˆ‚„‡|~Œˆ‡†…‰Œ€†‚…€w„…•Š‹†|‚‹–Œ}‡{€Œˆ‘‰ˆ‚Š‹‡ˆˆ{‰‘ˆ}’‹ƒ~Œwy†„“†ƒ‹}|„†„~ƒpp‚Œˆsƒ‰†‡wr{ˆ”‡ƒˆ}‰Š”Œ‡…Œ|m‰yu‹†‘—Œ}‰w„‘Œ€”k‰€‘–}ƒ’}•‰yˆ|„†ƒ‹‰’•‹wzœ›}Œ‘”‘”}s€ƒy†‚q–Љ|Š‹uƒŽ’Ž”~•„Ž~ˆ{zty‹q“”“’~‚{‰‘—~‡Œ“~‘’’‡‹|…‰‡‚“„†}‚ƒƒŠ}Š~’’‹‹‰ƒ‘€‹ƒ€yŒŽ‰Ž‡Ž‰Ž“Š~›y„“~’…ˆ•¦Ž‹Œ†v•~|y•‰~y‡„–—{ŠŒt‡‹’Š‹—އ}…€…‹‘‡—‹’Œ}Œ„ŠŽ~Œ„””ˆ‡™}‘‹‰†„𑇖{“•‚†…Š‹l‘’Š|r~z„ƒy…‹…„‰…‹ŽŒ‘‹Ÿ“u–ŽjŒ†ˆ’ˆq‰Œš……t‚†{†’€„…‘~‰~}Œ†…vЇŒ|†…ˆ‡…ˆ}…†„ބЄЀ‰“”†z‹Œƒ„Œ…“~‹‚†„…ˆ…‰’}‡‚‰‹ŒŽ‹•„„ƒ‰ˆ‹”Œ‚’Œ„‡„€‹…|‹‘ƒŠ†‰~Žp‰…‡‡‡™’‚Šˆ’“‡‡‰†”І‘m‚‰Š•‰‘yŠŒ‰‰…ƒŒ‚‡ƒ‡Ž‘…†‹t„ˆ€‡Š„€†‡~‡„‡“„†…‹Ž|’†Œ„‹~Ž…ˆ›ˆ‡‡Œ‘wŒŠ‰‚ˆˆ{}Š„…€‘“’Š}ˆŒŒ‰‘„Œt‰„€zƒ†‰†~|ˆŒ€Œ€‰vˆ”wŠ’ˆ…‚…†„|–†€‚Š‚ˆ‰~‚…‹ˆ~„Žm}Žt†Š~އ‡{mˆŽ|‘‡‡„†ˆŽŒ‰}“‡‰ƒŠ‡r†Šƒ‘Œ—‚„‡‹|˜€Šˆ™r€‰……’ˆ€–‰”‚{‚Œ”ˆ‰†Žz…„„‚‹‰”„†”ˆ‘Œ…‚މБ„‚~y{“~‡‰}{„ˆš”‰…‹ŒˆŒ†‡†ƒ†…Š…‰…€‹‰Œ‡‡‘ŽˆŒŽ†‡ƒƒ‹ˆƒŠ~ˆŽ„†Œ€€zƒ„‹ˆ†…Š……ЋЅ”…—‚ˆ…~˜ŽƒxŒ‘‡…‚}„Ž‹ƒ‹Œ…އy‚…‡†‰ƒ†ƒŒ}€‹ƒƒ‡ˆ‡„‰Š„І…„Œ}‰‡‚ˆŽy‡‡„Љ†–†„………†ˆ………Šˆ‚ŠŠ”–……‡ƒ…†…††…ˆ†‘z€“”†„‘y‰ŒŠ‡”Žˆoˆ|{Š…‹…€Š†††Ž„‡ˆ…†……u‚}’„‰‚|†ˆŽ’‹€„}‰€ƒƒƒ„yˆ‚Іxƒ†‡‚‡~‚…„Žˆ{€zŠw‰ˆ‹Ž…„o}…ŒŒ€…‘†z”‘„„|‡lŒ„{‹…ƒ…{Š‹ˆŒ†‡Œ‹Š€“‡ƒ‹ˆ~„‚~„˜ˆ‘„‘”…†~‰—{Ž…€‘‹v†šyŒ€††w‰’|ˆ‰yˆŠŒ†z‚Œ„{Œƒ†ƒ…|ˆ“„Œu€ŽŠ˜x‰†„†Š‹€~‰‚…v„ЉŒˆ…‚‚ˆx…ŠŠ‹•‹†‚„y{}‘|ƒŽ~~rƒ„‹‹˜‰}ˆˆƒ{„†‹‡~|}„~”}Šƒ…’ƒŠww„|‚—†€Ž„…†ŠŒ‰€ƒŒ‹…‚’’ƒ“ˆsz…}ŒœŽ{ˆˆ”tŒ†po„„—‚Š‚…~”{ˆ…ˆk…yœ€|€z„‚•‹ˆŽŒ“‰ƒ„v}„~vƒƒ˜‰‰‡ˆŽŒ“‡†„‚‘‚˜Ž““Š„€’†ƒŒ…‹}v€‰“vz™‰”zƒx‚…ˆˆ‘ƒ}Œ‚Œ}†Ž„~‹ƒ‘‡u€‹…†}|‡ŽŠ„‚{š™‚{ƒ…}Žy‡‹‘xЉ}{†…‡‚†”…ŽŒƒ€z˜pyƒ{‹ˆz…’vƒtŽ…‡Š•ˆ€‚ƒ{ŠŽ‰Šˆ}}z}‹Š…|Œ‰ˆ‹Šˆ‚…‹‡„…žˆw‚ˆ…ЛЅs†ƒ“†‹ƒ‡…‹…„‰†ˆ„•‘‚ˆ‹Ž|‡ŽƒyŒ‚|‘‚ˆˆ¢‰’‡Š’‹‡–‘‘‰•†ŒŠ„‡‡l“‘†}Œq…‰‡Œ†ˆŒ‰’ˆ‚‘ƒ‡“Ž’vŠh‰Ž†qЇŠ{u€ˆ‚‘|‚‹‘ŒŽ”ˆŽ…‰„…t•ˆ‰|ŒŽ‡Œ„‰~‡…Š…ŠŠ‘‚Œ‹œˆŽ…z‡ˆ’‹†Ž†…Ž…’‰˜‡ˆ‰ƒ~Љ{‡ˆ…•‡‰…Œˆ“‘…’ˆ‡‘†’€„‹…‹Ž…†‰ˆŠŽ‘†}…‹Ž”‡~€qŽŠ‘†‚…‘‹€ƒ‹‡†ˆ•–ŽŠŠŽnƒ‹‘‹„Œy€–‰„‹Š†ƒ†~‰•„‹ˆ}†€‹Œ‰†Ž…|……‡žŒ—Ž““—Ž‹‹††“‡‡…‚ˆ‹l”ŒŽ’†Šr…ŠˆŽ‰“‡Œ‰˜…‚‚‡ˆˆŽ‘€v—Žg“‘’މqŒ‡ˆ’{ˆt‚‘|ˆ‰‡‰††ˆ€‹‰‚„t‹’‰|‰ŒŠ„‰~‰„ˆ‹…|‹Š„†–Š’‡}‰Œ€ŽˆŠŠŒ“‡†‰…‡Ž€ƒƒˆ†‡„‘Žƒ†‚ŠŒŠ“‚w‡‰‰‘ˆŒƒ‰ŒŽ‰Œ{‰‡‡Š†qŒ’‡……”Œ…„ŠŒˆ–ˆ‰„’ˆŠŠnˆŒ‹Œ‘y‚Ž‘…—ƒ…„„}‰ˆ€‰ŒŽ‡ƒw„ŠŽŒ™’‚}’‰}š‡ŽŽŠ‘„…˜’އŒ}’Œ‡†‰ˆ†oŒ’Œ‹ŽŠuˆ€„ˆ…‹‡ˆ‡–ˆs‡‡Œ‘‹ˆ|Œw•j–‹Œƒs‰€‰Ž{~wƒŽ’‘}„•€†~ŒŠz{‡Ž„~}x‹‰Š}“ˆŽ…ˆ…‰Š„„ˆ‡‡‹’……Œ†˜…‹„|z…‘ˆ„Ž“zŽ‚ƒ€’ƒ‹ˆ‰ˆ‰Žˆ‹Œ–ƒ€†Š…{†Š‚ŒŒ‡…ƒ‹ƒ‚{“ŠŠ‹‚„ˆt‰š•ƒ‡…‘‰ƒ‚ŽˆŠŽ‰‡ƒ‹„‰‘q†Š’Œz‹‚Œˆ€’‰ƒ‹†‡~…””ˆŠ–‹”zŽŒŒˆ€„|‹ˆˆ™“–ŠŒŒ‹Š–’Š•‡“ˆ‡…„~{ˆl–Љ—ˆ‹rŒ‰‰…†…’‰ŽˆŒŒ‡ˆzx’h‡•ƒ‡‚qŒŠˆy…u€ˆ‚|‹‘~ƒ–‡†…’Œ‡…‹€t|Š…„‹~Š„”ƒ„ƒŠ„Š’š‡Ž‰{–Š–ˆ‰‰ŒˆŒ„‡ˆ•‰‘~~Šˆz……„›ˆ‡†…‰–‘‹‰ŒŠ•‹„‹Ž‰‹’„†…ƒ’†ˆ…ŠyŠ€|q‚ˆ‡…ƒ”ˆƒŽˆ‹Ž†‹‹…”nŠ•…{z’‚Žˆ„}‰yƒ•’‹ˆ…‰’ˆ†ˆŽˆ}ƒ~Œ~‰‚‡•„†Œ‹‚›’”©”‡‡–„ƒƒ‹‘l“Œ†™‡ˆt…‰y‡Ž‘‡‚‹Ž‹’Š…yŽhŠ„„…q‚ƒ‰™zu‰…’{ˆ‘y}ˆ~•’ƒ‡‘‰‹v’z‰{ƒ†„{Š~……”}„‚€‰“‹œ’ކx„†—‹ŠŠ„‚†‹‹†Žˆ”Š€†Šˆ‰‡Ÿ‡‰Ž—Š‹Œ††”‹ˆ‹‘ƒ}€…”ˆ‹}‡‡ŽŽ}qŒ‚…Ї”„„Š‹‰Š’Š„†œ‰Š„{nˆŒ†•ŒyƒŠ„ˆŒ‹”ƒŠzŒxŒ‹†„Š‘Žst‡‡y•…Š“‹†ˆ„„l‡‚yŠˆ…‘Œ‡‹ˆŠ‘‹’–‚€‘Š‚z{‚Š‹€”ŠƒŽ‡‡…‹{‘“ƒ‹x‰ˆ~„”Їނ~…yŽ~‡Œˆ}…Œ{ЉЂˆ‰}…‚Šˆ€‡Šƒ‰‡„ƒ…‰{ˆ‡‘†‹…ƒ‚ˆ}xzyŽ‹ˆ†Š’€v€ƒŒ‡Œ‰‰ƒ„Ž„†€“‰‰…}‚~††‚|…„w{™„‚ˆŒ|…“„ŒŒ~„{Žƒ‚……‰‹‚‰ƒƒ}ˆŽŠ€††€€‡‰ˆ•“}ˆ‚{‚ŠŒŠ‹Ž”~ˆ}z‰ŒƒŒ‹Œ‘q•t‰…•‘Œ‘Šv‹’ƒ„‹…wŒ€ƒ…‚‡…˜“€Š‘‰‰|‚•“ƒŒ‡“…}iz‰—{Œˆ‚’”‡†‡‡{l‡ˆ—’{€Š}„–Šˆz‡ˆŠ~‹„…|€‹…€„yŽ€“‘‰‡„„”‘Žv•w—ˆ}‘wi|š—‰—{‰…„ŠŒ€„–ƒo‡q‡“¦{•ž‡Ž‡•€„y‹ˆ}•rƒ|…Š…n‰|…ŠŒv~q„…šy‰Š€~Šˆƒ…‰‹–‘„’€Žˆ›މЛ€‹|†‚„€{~Š~|’‘š–ŠyŠ’†‡…†††††††‡†ˆ††‡†††††ˆ††††ˆ††‡††‡††††††‡…†††‡…†‡…‡……†…‡†††……††ˆ…‡‰‡ˆ…†‡‡†‡††…‡†…‡‡†††…†…ƒ†‡††……††††††††‡†…†…†…‡††‡‡„†‡†‡‡†††‡††…†††‡‡…†…†„†††ˆ††††‡…„††††„…††‡††……††…†‡…††……‡‡†††…††††††††‡†‡ˆ…††…‡ˆ†…††‡…†‡††…†…‡‡††……††††…†‡††…ˆ†…††…††…†…‡‡†…††††††††††………………Œ‚|‡Žƒ‘|‹”†‚~‡tpŒ|™‡…“‘‚•ˆ‚—•um‘‚z…~ˆ”‡ƒtŠ…“„™|•ƒ„‚Ž…¡…{‹tŽŒ†®•ˆ”‡‡‡~’ŠŠ—†w|Œ†„˜ƒ†y—ƒ†~Žˆ‹w’t†ˆ‹’˜Š€ŽŠ˜s”‰’–‡nw¨p…‹š„ˆ‰‡Ÿ‚Ÿy‰ ‹…}€’Ž‹‹ˆv ƒp’z‚}‡›š‡Œ”zˆ|‘Š‚›u‚މ|„—|€—…ŠŠ|…—’¨Šž~—~˜u‘œy‡†”…–†‹‹”~‰ˆ}u‡ŒŒ‡”Žl—§~•—gŽ‹oŠ„˜”†ŽŒƒx}yˆ„v‡Žƒ‘}‡vo†|“…ˆ”…’˜‡pnˆx‘‡Ž“•€Ž“–}“}™{‚|€Ž‹}~†z’„‹“’†„Š’•xŸ“‹}“‘€‹˜Ž†•‰ƒƒw‹}Œ€‹•‘|‰t‡†‘‰•…ˆ‹•ƒ‘ˆŠ†ƒŽ……ŽŒ‹ˆ‰xž‡‘†Ž~š”ƒ{…‹‡™‹†}†}wˆˆ’…„ŒŒ‡‰}’……}œ{Œƒ’ˆމ~~~”Œ„ƒ‘‹Š}˜Š––Œ~|ˆ“‡„Œ‘Œ–Š‹—ƒ‡ŠŽ‘„„™‰ŠŠ˜ˆ‚Ÿ€–…ˆ‡y…’}†Œ‘‰‡‡††‡ˆ„…„„ˆ†††Œˆ…†††‡†…‡‡…‡…‡‡†‡„‡††‡†…ˆ…‚„††‡††‡‡†‡…‡…†…ƒˆ††‡‰„ˆ†„†‰……ƒˆŠƒ„†…‡††††††……ˆ‡††‡‡†……††…†‡††‡†‰…†‰…†ˆ‡††††……‡†ƒˆ„†‡‡„††…„‡ƒ……‡†‡†„†ƒ…†‡†‰‡‰†…„„„††……‡Š…†††~‡††…‡ƒŠ„†‡…††…Ї†…„†……„‡‡ƒ…„…ˆ‡†ˆƒˆ…ƒ‡…‡††ƒ‡„†††Š†‚ˆ…‡„‡†ƒ…ƒ‡„ˆ‡‡‡‡†…„ˆ…„„‰‡‡†…ˆˆˆ……‡„„…‡†††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††…††††††††††††††††††††††††‡††††††††††…†††††††‡††††††††††††…†††…†††…†††††††††††‡††††††††††††††††††‡†††††††††…††††††††††††††††††††††…††††††††††††††Œ˜Œ…rŠ{Š’‡uƒŒ„Œ‚rr‡‹–‚†Œ‡ˆš’…‰†rmŒƒz‘ˆ‰Ž‘{Šœ}”…‘‰Ž’„ˆ†‚Š~€w“ŠŽˆŽ‡‡†Ž‚‘š”‘ŠŽ”ŽŠ–…‚Ž…{‚v€Œˆ}‚yš‡‡’Œ~‰Œ‘}ŠŒ†}‡‰†„މ…‡Œ~†ŠƒŠ}”‚|žŠˆ…ŠŒ‚…|‚„~‹ˆ€‘‡‰“„€‹…z•€‡ˆ‡‘ˆ€‘•|‡~zˆ•Œ‡‚ކ|„—Š‹}†x€•†‹‚‰‡…‹”„Žˆƒ…‚’€š‹ŒŒ–z~Žy’†€‘ˆu~~Œ‡•“ƒ›€‹‰„˜{ˆ’Šs…Šˆ‘ƒ‹qwŠ~Љxƒ†Œ‡ˆŠ„Œmz‘‘އŽ|‘‰ƒ„†“‘‹‹…–„„‘€‰ƒ~w—zŠŒ‘–‡†Œ‡‚‰~ƒ’”ˆŽ}Œ|‰ŒŽˆŽ|ƒ„w‚‹ŽŠ~|‹w‹ƒŒ…€‰{‹‚Œ~‡„‚€Š…|}ŒŒŒˆ‚}„‚ƒ~ˆ|…‹Šx““…~~‹‡ˆxvƒŽ‹ŠŠ}‹……“~„€zŒ‚€‚|xqyŠŠˆ„ƒˆ€‡“ˆŽ‹Ž|ˆu~‰‚}Œz€‰†|zŒ‰‚‚~}‡|„ƒ‚„yt‹”ŽŠŒŽ†b‹˜d~Љ{{…œ”„ƒˆ‰~ˆ‹†}„‡ƒ†‹ˆ‘ƒ~„‹‡zˆ{‚ƒy‘…“ƒ†ƒ‚{†|•„‹Š‹|…Š‚€‡t„˜†ˆŠ‹€ƒƒ†w}Œ‚ˆ}~{‡ŒzŒ€v‹“”Œ~lŠ—†{ƒ„‡„ˆ‰—Ž„ˆ’Œ‰}…u„~‚„„…†‘†‚‚Œ„‡„}|€€‡ƒtމ~~ˆˆŽ‰„‰‚•ˆ‘‚……Ž~Š‹ƒ‹~‡Œ‹‘~ˆ•vy†{Ž}‡„ƒ„ˆ}ˆ†|ƒ‹‡†xŒŠ€…}…›ƒ‚‰Ž†‚y†~‡„Žy…’‹„ƒz…u}Š‚…€‰ƒv†‹…Š~ƒ–‰‰“Ž~‹‹†}ƒ…}ˆ†‡€”†ŽŠŠˆ‡–‰†Ž|”Œ‚‰……Œ‰Œp’‡Š‹‡Šu~†ˆ…†…†‹ŽŠ…‹„ŒŒ‚|“‡mŒ‹‹“Œu‡Š‘ƒ~w…‰Œ}‰ƒˆ“†Žˆ‚†‹Š‰„ƒw•‹‹~‹ˆ|‡Š—~„Œ…‰„Šwx‹Š‘‹”‘Œ…|Žˆ‹}ŽŠˆ……‰†€s‰ˆ‚ŠŽ†‹ˆ‘Š…‘‡Œ„‰”Œ†ˆ‡‡‘“…‰‡Ž†{‡ˆ‡Œ†t„ˆŒ„†–‚ˆŠ‰ŒŽ’“€†ˆŒ‹•€Œr…‹‰ˆ‡yˆ‹Œ‰{”™uv‚Œ}Œ™“}”‚z‚‚yt†’‰‡‹’†‰”•Š™Œho“‚wƒ‹‘‡”}‹„ˆŒ—|“…™‹‹€žŒŒy—t—Žyº—‡’ŠŠƒ”“Š€‰ˆ‹‡”„’’r~}„ˆƒ‚‡‰…u‰‘rŠ‘˜’‘zˆ’’€ŒŽ…‘ˆ{rŸk‰‹œ‡«š‹œƒ„‚t›€‡›zsŽƒ‡†ˆ†u•pwŠš¼‹Ž•š†|š’‚•ƒ€›–„k™x†Š—ŠŒ}„˜†€“|’~„sˆ¤Šˆy›}‡Žˆ„‰Š…‘އo‰’™‡’yˆ”s’‰Ž‘‘ht†‹ƒ…„u—Œ‚|x}|}…„~†ˆˆŠr‰Šu…ŽŒ|‡‘„yt°z‹‰}…’~€ŽŠ†~‡‘—€‡…Œ{‹„|‚„}ˆz‚Š}€ˆz…‡„Œ{„†y‚}‚‡„ƒ…m†qŽt}~……nƒ…†Œ‡„‹y„†~{€|‡‰ˆŠz~v‡}{c‰‚ƒuz„„‰y„xsƒ†wr€€ƒ~…vx‰†ƒw„‘‡‡€vqyz}ˆz‚}~ˆ|…}~|€|}{ˆŒ†~{ƒoz’~„…€ƒ}{{s–y~xw…~{tny{„~€†‹…ƒwzŠ}„{Іƒ†v|‡}ƒ‡†‡wŒxŽ…‹ƒ‡›…‰ŽŠ{}‡ˆ—‹ˆ„Œ‰‹{™‹ˆ†•}•–‚††Šˆ…”Žl‘Œ‹‹‡wŠˆŒ…u„Œ‘–wƒŽ‰‰fyh…‹‰ˆq‰Š‚‚u‚‹Ž|Š’y†‘ˆ„‹‘ŠŽ‰‘v{‘Š~‹‰{„}‰…”u…€y’ˆŒ‘ŸˆŽz‘Š’…Š„ˆŠ…„†Œ–‰ƒ’‚Š€—ŠŽŠ“˜ˆŒƒŠƒ’Œ˜“„‘„Š‚ŠŒ†Œ|…‰’Ž~‰‚‡qŒ‹‡ˆ–ŒƒŠŠ‹ˆ‘†ŽˆŠ•‹„|„ˆ~n‹‘ˆŠyŒ‰Ž„w‰y~„y„‚|ˆƒyˆ„{o‚‰zˆŒ‡„€ˆ…†z¤zz†…y…††‹†ƒ~“‰„††Ž‹‰†‡žuŒ‡Œˆƒƒ‚‡’Œ„‹ƒ‰…~†z‚…ƒ|„‡}ƒ‡€‰Ž‡yŠvŠx~}‡~v†Ž‡‰Š~|ˆ€~‡zŠŽ~†‹‡ˆ„Š~‰y…„‡…i‚‡‡€‡‚}„„”ƒ|r„‡Œ€†{‹„ƒˆ‹Žu‡‚~’‚u~}ˆ„qz~Šy†u}t†g€ƒ‹ƒŒ{„‚ˆ|{†…}‚}…†ˆ•xƒ†‹}yŒt‹…ƒ‚†…}|~€Š}†Š‡{|Ї‡†„‰ƒ|€“~‡‘‹y‚ŽŽ‹‰‰Ž‘˜‚€}ˆ‰ˆ|……ŽŽŒ€Ž„‡‰q•“‹“ŸŠ–‘ЉyŠˆ”wŽ‹†‡‹‹x‡‡ƒƒ†zŠš†‹„„Œ‚‡ˆ¡Œz‘ˆsx‚„yƒ‚Šƒrz‡Žƒ“‹}~|{‹™ƒŠ„އ‚†€v’†ŒŠ‹~‰‡ˆ…„„…ƒ‹Œyƒ€“…ˆ}z’„ˆˆˆŽ|„‰ˆ~‰Œ‚ˆ…ˆ{’†Šš‡Œ„•‡ˆ–€Œ„ƒ“„†‡Žˆ€‹‡’x“z‰—ˆ‹ƒyŒ‡…‰‚‚œ‚”‡„„“‰}‘’ŒŒ…‚…t„‘{‰Œ‘z‰‹‹|Œ†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††‡††‡†††††††††††††††††††††††††††††††…††††††††††††††††††††††††††‡††††˜‰Š‰xŒŒ‘‘|~‚‹‘‡ˆƒ|‹”…ƒ›…‹ŽŒ‰€™’”Љ‘Šš‡†‘ˆ‡r’‹Ž•‡x}€Š“†‹”‘…~‡ˆ‘ˆ‰y‡y’ŒmˆŒŽ‰u…†Ÿ€xƒŒŽ~…†~€„‡€z‰y‚‘~•ˆ€‚ˆ‰€ˆ…Œ‡‡‰•‹†ˆ™‰—‹‡„˜Œ‹„„ˆ˜ŠŒ†‘‹}Ї“ˆ†‹‡‰‘ƒ‹‹Š‘„~~‰Ž†‡Œ‰“‚‹‰ƒ€‘…Œt”€v‰~ƒ‚u‡Ž’……†Žƒ€‰…‰‘‰‰Š†ŽŠ‰‚ŠsŠ‚„—~ˆz†ˆŠ„Œ‚~…‹†„{ˆŽˆ„ƒ‹ˆŠlq‡‰‹‹„€„‚ƒzk‡‡z‘ˆ…ˆ~‰‹ˆŒŽ•’Š€Žz{„Œwx~|~Œ‘‡„‚Œ€Ž‚‰ƒ…‹•€‰y‰ƒŒ†‰‰z‹ˆw‘y~‹z‡Œz„‡…†}ˆ{‚‹ƒ‡„ƒ€€†}y„…†ƒu‰‹ƒ~‡‚z|™Žƒxz†ƒv{ˆ€†—|}~ˆŒ†‹Š†‰}‹„||—{{…vŠ}…ƒz€xˆ~~€–„ˆw‹‚„ˆ“Œ„|„ƒ|ƒ‰|Š}ˆˆŠ‡…ˆz„ˆ„€•‚x„†…Œˆ…t‚††‡‡Œ‰‡„z”…ŒvƒŒŠˆ~‹my…†…ƒˆŠ‰Š…†ˆŽnŠ„|ˆ†”‡|†’„…‹‘‡‡’‡††‹˜“~€{ˆ‰œ€ˆ‡†‹‚vyŠ…‡“€†z{Š”€’ˆ}yƒxŠ€‰uŒŒ’Š~‚Œx‹‚Œˆ‹Œ{Ž|Š‹Œ†‡‡Š…€„‰•†}†”Š}ˆ|ˆŽ‰~xˆ‘ˆ‰†Špˆ‘{‰v‡‹‰ˆ„†Žƒ|Šv~„€”}ƒˆ‡ys‡}…ޖЇ…”~Ž„{‰|‘’€ƒ„„ŠŠ‚ˆ‚‹ˆ†€}‰‘€Œ†ƒˆ’Œ…‹…yƒ‰}‘‹Š††…†……††††‡…‡††…†…†††…†‡…‡…‡†‡†††††††…†††……‡…†‡„‡†„††††††††ˆ…†…ˆ…ˆ†…†‡††……‡„ˆˆ†‡†…†…‡††„…†‡†…‡„‡‡†ˆ†‡†‡†ˆ†ˆ……†……†…††‡†††‡ƒ‡†…†…‡‡‡†…ƒ‡†…††‡††‡‡†ˆ„‡ˆ„‡†‡†„†ˆ……††…‡‰ƒ‡„‡†…‡†……†ˆ†………††…†‡†‡†††‡‡‡†…‡†„†‡†…††‡…‡……‡††‡ˆˆ„ˆ††…‡…‡……†††††„‡††‡„†…††…†‡††††…ˆ…†…†…†††…††‹t‹‡~ŒˆŒˆˆ’‹wŽx|‚•’‰‹”‹ƒ‹–qq‡w|”}†ŽŽ‡Š†~‰†•€u–|‘‹„–{‚“…†‚‘ˆ’‹o•‰’’‚„‚Š˜…‘{‹‡z”‚‰€ƒŒ–ƒˆ„uŽˆƒŒ”‹‰ƒ—ŒŽ’‹•‚€Ž‚”•’…‹…‹ŽŠ‡”€~„‡zŒŽœ‰}†•‡‹~Žˆ’Œ†‡Š}ƒ‰‘†Šƒ†Š†ƒ…‡‡}‡‚‹”„‰‰x†ˆ…Šƒˆ€•Œ£ƒ‹~Œ”‹‹•–Œw‰ˆŠ|…‘‡‘‹‹‹|š‘’“‚‡‡v‘Œ‹}ŽŒ‹|‚”’…Š‹…ƒ‰“Š…‰„~ˆ‚‹~™‚Ž‹‰…˜‘‘ƒ~‘‰††ƒ‹Œ‰l’މ…ƒtŠ‹‰Ž„{…‡ŒŽ‹‰„‘††Ž‹‚ŽwŒiŠ‹‹‰‡q‹‹–„u€‹‡{Œ‡ŽˆŽ‚ˆŒŠŠŠ€wЉ{‹Ž…ˆ‡†’}…„‹……}ˆ‰ƒŠˆšŒ†z‰‹Š‡ˆƒ…„†‡‡€…‹ƒŒƒ†”ŒŠŠˆ“–‰Œ‡„Šˆ‘ŒŒ†‡‰Ž………‡‹‡ˆ‹‹|ŠƒqŽŒ…Œ†‚•‰‹‰ŠŽŒ‰…ˆ’’†‰‰‡‡n‡‘Šx‰}…‡ˆy}}–~‚‘’m„އ}‰vu‡‡“z‰“‘ƒˆ•Žtn†~x}‹‡}‡|}‹‹€—y›†‚‚“‰}€••Ž“ƒŽ…ˆŽ‹‰•€w˜š‹‚Œ‰†—™˜{ˆ‡}“Œx†ŽŒŠxƒ‡vˆ‰†‡“•Š~‘‹Œ~‘”}Œƒ†tˆ‘‹ŽƒŠ†Ÿ‡Œ‹‹}†“‚˜ƒ„ƒ‘‹~‚‡€†yŠ“‹‚„‘ƒˆ›…ˆ{™~†}‘}ƒ’ˆ}rŒ‹‘š‰ˆ’tz’ŽŽŒŠ~ƒ”†Ž|…„‹’…†‡}‘ЄГ{„†‰’‡—“„†‚Ž{Œƒ“ŠŒ†…|†“‡‘†{‡“‘‰z‰tq‹’…Œ‹ŽŠ’…”snˆ~wˆ‘ƒŒ…’„wŒ“ƒ“t–|—€‰ƒ†”ˆ„Œv‘‰‹‹Š‹ŠŽ}w’šŠ•‰ˆ„ƒ‡‘„“Œ~‹ƒy“‚ƒ}ˆ‹†vŠt‰‘Œˆ‡„™€˜}˜~Œ‰ƒŽu–ŠŠŽ“‰‰ˆ˜ˆ‘‘‘|†™†ƒv‘Œ‘‰•’‚ƒŠ”Œ~‹‹‚ŠŒ‹‹ˆ„–ˆ†‰~‰}‰”‚‡}zŽyƒ…‡‰šŒŒŒ–~’w‘‡ŽŠƒŒ…ŠŠ…Љ…z™„ƒŒ‚}”Žu––†‰rŒŒ{œ†”„‹o‡‘‡€wy…ƒŒ†y’…‡p…|~}ƒŠƒ~‘ƒ†~z¬y{‡…†—uzЉ‚‚…•„†Œwz‚|‚‰€Œ‚ŒŽ~‚}~|”…~}ƒzŒy}‚‚‚~z‰~‘rz~…€nˆ‹‡†xІ‡w€‚‡„~……ƒ~u…syd„|‹z}{z|zwr{€vrˆ|€~uƒŒ„z~‚z—‡€zyszwxp|zˆƒ}|~|y„…ƒ}w‡s|”zŽƒˆ‰|jvx~‚w‰€~rkz{x„‡€Œ~|‰z{zŠyŠ…l|zƒ}w…‘Š„|Їƒ{ƒ’ƒ‰‘‘‰ƒ{‡Ž’’„zˆ†Œ“ˆ‹™ˆ•‹‰{t„’ˆ†u‡…‹ŠmŠ‹ˆŠ‡uš…‡‘~†ˆŒ„oЇ‰‘ŠyŽ}”i’“‘Œr‹‡‹~vŒ|‰‘ƒŠ~Ž‘‚‡}ŠŠˆ„v‰“ˆ|Œ‰Œ„‡…}†‡ˆ„u€“““ˆ~ˆ‡‚Ž—{‡ƒ‘‘}’ˆ{…ˆ„މ‹‰„•‡ˆ†Žy‹‘ƒ€…‡Ž{‰…„r‹†’‚„‡ƒƒsŽˆŽ‰ˆ€•’‹ŽŒ‘‹Ž„ކŒ|‰q™‹‹zŽ}ƒ”ƒ…†‰„‚‡ˆ—~œ•†ˆy’…‡•Ї‹…~‹Š›‡Ž‰Ž‹˜”•€‰‹Ž‚‚„‹†‰l”ޑއˆr††‚‰„ˆŽu…ŒŒŒcŽuˆh‰‰—Œƒq„‰—…ƒu‚Œ‹Œ{Œ‹„Š—ƒŽv‡ˆˆ‰…‹vŒŒ|–‡†Œ‡„Œ|ˆ†‡†Œ~‹†Œ™ˆš†Œ‰}•މˆ„ŠŠ‰–‹‰ˆŠ‡Šˆˆ„އ‹‹‡‡‰Š•’ˆŠƒ‰Šˆ‰’ŽŠ‘‹†‚Š~‡ƒ†‹‡ƒ„…’‚‰‡q‡Žˆ‚•€„ˆŠ‹…“‡ˆ…’‰‰ˆn„‘Š“…Œy†~ˆ‡€†–}—qˆ‚}†‰……“…y‹pw‡‘–…‹„‹‚˜~‡’po‘y{‡˜†“Š‹—~‹Ž›}{™q†‹Ž…•~ˆŠ€‚‚„ˆ‰†‘s‹•‚‘ŠŒŽŒ“k†‚y•ƒŽy—|‰…v~ƒŠ‹…Ї‘ƒ••އ™‡€€x¡}‹…—‘ˆŒ…‰‘…š~Ž“…l˜Ž¡ˆ‰~…Œ‡…‹ŒŒ‡w~|‘~Œ‚‚|„£Š‚„‡‰—‡{ž„t‹Ž…ƒ‡Œ‰ˆ’~†ŽŠŽ~~ª”‰Š“‹Ž•Ž£€u„Ž‚{ƒ†–’ˆŒˆ…Œv–Œ}‰ƒ‰‡‡‡•‹Ž†„x‰€|€‚~…†„ˆ€zˆnwƒ™……„‚™Ž†”†‡…‰šo‹‚z„‚Žš‹‡Š}„Œ~†ˆ†‰‹ŠŠŒ~€‘ƒ€ˆ€ŒŽrŒ„|ŠŠ„„~†|„Š’|”ˆxއ‘‰†‚s‚’}•ŽŠ‰†ˆ|†z‹‹Œ~Œz‹‰‰ˆˆ}‘‰~Š‹p„€svƒ–—“…ˆ€ŠŠzƒ~uŠ„‚Œ{tˆ“†Œ–~Љ‹ˆŒŒ{‹z…|ƒ{…†‹Šv†x‡j‹~w‡Ž„ˆ—„‹‡“…ˆ”€Š‚‚‡y€’™ˆ…‚…Œ„€Œ}‚}‰‰v~‡……”Ÿz†ƒ€‡…}ŠŽo‰‰‹…‡Šˆ‡…„‚‡Œ‡‡„€…‡…††‡…ˆ…„……ƒ†Š‡„‡ƒ„‚ŠˆŠ‡…ˆ‡†ˆ€„……‰‚†…†………ˆ…ƒƒ‚†…„ƒ„‰„‡‡„‹†„‰‰‚††ˆ„†„‡‡†…‡‡ƒˆ‡ˆ…†„‰‡Šƒ†ˆ‚…ˆƒ†…‡……ƒ†‡ˆ‚‡†…„ˆˆ‡„…ƒ…†…€‡†Š„ˆ†‡Šˆ……Šˆƒ„‡††‡‡……ƒ‚ƒ„…ƒ†‚†‡„‰…†……ˆƒ‰ƒ‚‡…„‡‰‚ˆ‡†ˆ………†‡‚†‡ˆˆˆ†††ˆ…‰‰ƒ‡‰†‡ˆ…‡ƒ†‡‡‡…Š………„‡„…„‡†…ˆ‡Š…ˆ…‡†…ˆ‡…„‡†ˆ…ˆ……„‡…ƒ…€†„ˆ’„‘‡‰’‚…Љ†‚„~–’ˆ†œ|’‰ŠŽˆ–ŒŽ‰—”‘†‡†|„ˆ†n‘އ‹‚s€w„€ƒŽ†‘‡ˆ‡ŽˆŽ‡ŠŠ›‘{•k”Œ{‡sŠˆ‡’€€v†‹‡Ž|†ŽŒŽ}ˆ‘Œ‰‚{Œ‹‚zt’„Š}†‹ŒŽ‡Œˆ~†‹…Œ„Œ‚…‹}‡ˆ‰•‹xq•ˆ~ˆŽŠ†…Œ†…‡Š~‰Žƒˆ†…‚•Ž”ˆŽ…—Šˆ“„Œ†”†‡Ž„‘ƒ‚ƒŠ‹‚Ž€Œ…”‹‹~‹r‹–‰„……“ƒ†‡‹‰„†Œ‰‘†‹pƒ‰ŠzŽ…„…„‹‹…„Œ€}‡„z„†‘‚Šˆ„‚|…~„‰“ƒŠŠ†Œ†Ž…yˆ‹{ˆ}‡‰v€™•‡Š‚Œ„€ƒvЋЖ‡„…‚†‘~ˆ”s†—‰Š‚~Š{~‚ƒŒvz‘”€ƒˆˆw€‚Ž•‹‡}„˜‹‹‹‹Œ„„††{…€Œ‚€‹€y‹zŒ{Š|pŽˆ„‡“š‰•…‘|†—‘ŠœvŠv†—”sˆ™}ƒt‚ƒ|€‚‹…}…Žz“px€–xƒŽ—„……‹˜„€‹šs„{w•Š–އ‡މ†‰‚‹‡……‘…‚…“„—‹‰Ž‡…‡ˆ‚~xŒ‰ˆŒ‹Œš’††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††Œ¨ƒuw”†‰‘«‘…‘€Š€ŠxŠx‘qˆŽ‡ˆ†‰’Š„†Š‡}„fƒ’ˆw€x’ˆ‡|‘‰Ž†”|…ƒ†}¦~”‚Š……~‘}”—Šz’†nŽŽxxŽ‹v„w‹„Š€oŒ“Ššz€•u…‚~vƒ„wz„¡’€ƒƒ…{|ƒmˆŒyš~‹‰’…„“{ƒˆ|‹†‹ˆ……ŠŠ†„xv‚‘ˆŠŒvv„‰{|ŽŠŒy‰~€€†…‡u‰Œ‚‹ …}v„…p}’€‚sŠƒ…~wŠƒ‚Œƒ‘˜œ…Š€Œ–…‡ˆŠ~†˜“€…Š€…ƒ‚}Ž„w’†……‡‚‰”ˆˆŒ‰ŠŒ„Šˆ†Š„}ŽŠ†‡™”‹”…ƒ˜‘‰„†•‹€‡xˆŠŠlŽ‘‹Š‰Št…„…„…Љ™ƒ…„†‹’Žw˜g‹ˆˆŽ‰q‰‡‰|„t‚Œ…Œ{‰”ŠƒŠ~“”‰ˆzŒ‰€‚uŽŒ|Šƒ…†”‡~Š„…†„‹Œƒ‡Š‡›ŒŽˆz€ˆ”Œ†”‹‹Š„€Œ‹‰€Š‡„‰vƒ…‡‘„‰‚•‰•…„‹†‘ƒxŽ„‰ˆ…ˆ‹ˆ}‹”Љ€ƒq“…’ˆ††–‹Ž‹‡“†”ˆ’‚‹‡‚nˆ‚ŠŠy‘’˜‰“††††††††††††††‡††††††‡††††††††††††††††††††††††††††††…†††††††††††††††‡††…†††††††††††††††††††††††††‡†††††††††††††††††††††††††††‡††‡††††††††††††‡†††††††††††††††††††††††‡†††††‡‡††††…††††††††††††††††††††††††††††††††††††††††††‡†…††††††††††††††††††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††‡†“‡ˆ}ƒ’|ŒŒzŽŽ…Œ€Žqs†‘‚Љ‘ˆ‰‘“~’“‚mƒ{†…†Š€ŠŒ”Œˆ‹”€ƒ‡”‰—Ž~yzˆ‹“•Œ†‹Š…ƒ‡‹{•‹’„}‹‡‡“ƒ~‚€y—~‡‹ˆ{}yˆŠ”Œ‹Ž‹ƒ‘‡Œ€“‹”‡†…}ŒŠ€€ŠŽ‘‹Š}{o“–‰ƒ{ˆˆ…†~“…|Š}†‰Ž‹†‚ˆŠš‚‡‚”uˆŽ…y~†{y‡ŠŠ‚‚Ž„ˆ…}ƒs‡ž†Š†‰|wŒ‡‰‚}…‹„‡~‹‰€Ž‹Œ~“ŒŒŽsƒˆ’Œ‹–ˆ†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…s–p€|}‡t}€‡vm}ƒƒ„‹x††Œˆ‚ƒ¡r‡}}†„“„…~…‰†‹Ž‰‹‚Œ|†Žƒz‹|~‹Ž‹t{~u†ƒˆ‚ކŠ„’{•}ˆ‹‹ƒ‘}{…„sˆ’~”ŽŠŒŒ}Šz‡Ž|ŒyŽ„ƒ‹‡…އ‡y}…„ƒŠ‡py|‰x“‚‹ˆ„Ž„y|}‚Ž‹‰}‘zy‰‰‘‰‰‰}ŒŠ|ƒ‰‡v‚zŠt…‡‚‚‹x†lˆpƒt€x‰€Œ€Œ™{Œ‡–Š‘‚€sƒ€”–‡‡€†„|xv€€…|w~u€}Œ›w‚~…ˆ‡ŠŠq—„€{€†—’|‰Ž‘|‡vs…˜ƒ„Š‘‹ƒ“ˆ„•tl’~y™…}„‘‹‰vŽ‘}—ƒ†‰‚•…„‚‰{ŽŽ—ŒŽ‰ŽŠŒƒŠy’‘Š’„‡‚€Œ‹‹„“ˆ€‰…~“ˆ}ƒ‰y‹w……†ˆ““…‘}šŒˆŽ……}‘Œ‡ŽŒˆ„‹Œ}™‰€‹Šˆ†…†Š’ƒxˆ|Œ†‰Œ†‡Ž‹‡{™x‡‰}Œ}‰€~€ŠŠ‚””‡}Œ€…ˆ“‡‡~‘|…š‡„‰€Š‰‹Š‰„ƒ€ŽŽ‡ƒ‡‹ŽƒŽw—„’‡}‚Œ}‰‹•ŽŽ€ˆ}€•‰†‡Œ€ƒ€ŽŠ—ƒ}ƒ‡˜Š“‡‹™„‰—މ…‘‹Š‘‰ƒƒŽo’Œ‹’‚ˆu‚wˆ†‹š{Šˆ†‹“ˆqyšŠj‘ˆ–Žrˆ}Š‘}‰w„Š€}…‹Œ‹ˆ‹…y…Љ‹ˆ€v“‡}–‹…Š~‰ˆ†‰ˆ‰lŒ†x†‡Š’†}tˆ‹‡’‡Ž†…Œ‰Œ€Šˆ‡…uƒ‰…’…’І‚’Œ…’‡‡†‰‘‚‡ƒ„††Œˆ‘„ˆ‰—‹tŒ‹•‹…„‚tމ”‰€†™…ŒŽŒŠŒŒ‰‘„І‘‡Œ‡‡‘r…”†y€„‰˜…–…‚…ƒ‡{ŒŒr‚‰†‰…mvˆ~’‰„…€–†„€l‡{—І„ˆv…†ƒŒ†‰’ŽŠƒ•‹„„{‡‹yqŽ{Œ‰‰ˆ‡‡‡ƒ‰€Ž…†”ƒ“…’ˆ€…ˆyˆ‰}‰ƒv‡p‘††”xŠ‚ˆ‡‹…‹{ˆˆ~‰†‰|„Œ‚‹~‡‘w~‰„™‡„„‰“…{ƒ‰‹†…‚…†ˆq‡ƒ‰r‚ƒ…‰‰‰‚ƒ‡‡x‰t€Š~‰‹|~‡v‡’‰…ˆ…ƒŒ‘…“Љ|~{|‹{Ž„}‡†ƒˆŒ~‰Ž‡‚‚}’s‚„}‘”†Œ{|Ž~‡‰‹~‹…~Œ™‹‘†‘‘‚‹ƒˆŽ†}Š…‡“ŠŒ‹›…ˆ–†ƒq‚•Œ…u‡‚k‰…p‹†Š‚„z{†w|„…„›vˆƒˆ‹„’‹b“x—‹k‰‰¢†u™‹‹Œ€w‚‡…‹~…‰‹„‘Žˆ—‚—{‰‚~‚t”¢ˆ~‰‡z˜œ‡~……vŒ…Žz{ˆ‚‰‰ƒ“‹ˆ}†ˆŠ‹ŽŽŠ‚ˆ†Št‡ŒŽ‡‹”zvr‰…Œ„‘‰‡”˜…Žˆ…‘{|~“„ŠŽ„—ˆ„‹‡•Œ‘†—ˆ|ŒtŽš‘‹†ƒ•s”Œ•†Œ”Š€|‹ЋДs„‰„‰‰~‹‚†˜‹šx‘|}{~|‰‰{ƒŽ{‚q€~‰ƒ‡†„‡†~‹‰‡xœuŠ‚„Œ}ƒ„‰†ŠŠ†’‹‹Љƒ‰‡‰†‚~~“•Œ{}ƒ•†…ƒ|‚|‹†‚Ї€…†‚’|†y€zˆ~{†“‹„ˆ|†|‡Œƒ~„€ˆŒ‚‰†{‡|}‹Š„‰‚…ƒk†ƒƒ„€‚{ƒuz‡“v|‚…—ˆˆw‚{‹||‚…€€z‡…€€{wƒ‰Œy{v†€‚„ˆ~ˆu~‹……€€~…‡ˆ}”|{ƒŠ€ƒŒ|‰„„€„ˆ‚w}‰{yŒ†ƒŒ‚‰€†‚j„„†‚†‚t}z†pŠ‹ŠŽ€ŠwuŒ}•~˜…‘Œ€Žrn‰€v•†‘€‹~}Œ…Œ“~Ž|šw‡‘ƒŽ{|’yŽ…Œ‹…‹ŒŠ•”z˜–ˆ~•”€‹—‘Š’Œy‚{‰•~Ž{‰z‰‡u†…‹‹‘Љƒ“†–„‰Ž‰‰‚ƒyŽƒ‹ˆŽŒ‡……™‡Œ€‚–š{–ˆ€…—ŠŒ{‰”|ŠŒŽ‰††ŠŽ‚’‹…z—ƒ•‹…ƒ~„ˆ~“ˆ‡“„‰†…“‹‘”Š€‰Œ‹‡Ž…‰‡ŽŽ„xˆ‘…ƒˆ’‹ˆƒ“|ƒ””Ž‡Žƒ|€‡‘•‰Ž•€‚}{}„“‡…ˆnn†’”y‘Œœ‹šˆ‚~Œj†x”†„‡zˆ’•ˆ‹ŽŽ…‘€˜ƒ‚‡tƒštn‡…‚ŽŒ•‚‡„‰š~“‘~‘}–ƒ‰’‚yŽyƒ’w‡“{š‡”}}“y‡†‡Ž–„Œ€‘…”ˆƒŽ„‘‹}…|~’‡|…”†–„‰‘|–…}†Œ“€…|pˆ„w†ŽˆŠŒŒ‰…„†‰ƒ}x‡wˆ‡‹‡†~Œƒ‡}’…r‰†™ˆŒ„ƒŠ‡’’†~„|z”†‰|‘†‡†ˆƒxˆŽ{„•‘‡‚“v|ˆ~—‘†‰}‚…ƒ†‰—Ž’ˆ~‡ƒ€“„–’†’}’…ŽŽ}†}ŽŠˆ‘”„“‘…”‰‹|v~’Žƒ{††‹ŽlЉ…{rއ†€‹ƒ‹|Ž‚‘…†Œ•Šœ“{•’j‘‰Œ~q‰Œ˜‰”t~Œ‡Œ{‘ƒ„”ˆ‘’u‡Ž…ˆ‡€vˆ‹{‰Šˆ‡…|‹„ƒŒ‚Š„…‡ˆ‰Ž”ŠŒ…|ŠŒ‰€ˆ‰…‘}…}‡…~‡}Šƒ…Œ’††Œ”…ˆ†‚‰Œˆ’†Š‹Œ‰ˆ‚‡Ž†‡Œ‡Ž„„‡Š~‹pˆ‘‚Œˆ‚”–’Š”’†‰‡ƒ‘‚”‹Š•m‰Ž†‹zŠ|‹‘‰…†Œk|ƒ‹†€‚wƒ…u„‡oƒx}‘ƒ…ƒˆ†v}‡¹}pŽ‚ƒz|{mz…Ž…™…›‘ˆ†_…Œ‰„€tŽyyyf’’›{„q•“wr„–{w‰~vpŠs‚~Œ“~–|Ÿ‡€t‡z‘†m{‚‚|x”ˆ~}‚€|œ„|z†m~–s•~`{ƒƒ®ƒqvt€{p‰‡…§sdr„†…€{ˆ€r~p{pzv”w‚{u}zy𛇇y‰{z‘Œ‚}ƒ~z{†‰†q}|s}’uvus{c„yr”™ˆ}‰‡{~‡|…hyŠ’ˆ˜‹y…{z†Ž|~{…Їy…{ƒ…zŠ~‡p‰}‚ˆ‰…€‰‡|{£ywˆ‡}ƒƒŠ‚|€ƒ‰‚Œ“‹„…“{††‚’…‚‹‰‚…Ž„‰€w††|ƒŽy‹z|ƒŽ€‚„z’z‹u|…~s†’‡…ƒ‘~“€…„{‰{ˆŽ{ƒ‚‚ƒ‰w|ƒˆ|‚„ˆ‘i…Ž…†ˆ€…„…ƒu|‡‚†}~˜†…uw†ƒŠ„…Œv}{}€{zz…~…‡r~rƒx‹~”~†€Œx€‚Š€‡z‡„€}‡€”z}†ƒ…‹~~}†„ƒ†‚‚‡†‚~ƒˆ„~„ƒ|w†€sІ‡…l–fu€n~‰ˆw‰…s~‡qŒqtt†„€Š„l•zx {Šw…Š{t‚ˆrŽƒ€™Š}…“„ˆŽ†|„Šqe‰„yy‹gya€n•x“}…°ˆ~~z„€š‚~†ˆz„v‰‰•Œ~wކ‚‘w“nmxŒe|z|ˆm‹}–q{v‡‚x••’xnx|X^~yŒ‹‚ƒ}z—Ž„p„‹ mn~|gœ\h}s}€•€x‡¤v€ym€|yŒk~šr“~WurŒ†g‹žv‹€ˆz—–v|py‡tzˆgŽ^‚‘q‡††h•c’‡to{~€••{u}©~†…–tewq†ˆ{…}‡xq“…zy z}…‹‡ˆŒuy„€š‚Ž“‰z‰ˆ‡ˆ†y”}…Š…ˆ’Žˆƒ|†ˆ‡ˆ‰„…Ž”Œ…‰~m~‘‡‰y“ƒ˜œ‡Šwu‡‡”‹€v€‹‡ƒ€†ˆŒ}}†‚„ŒŸƒ‹{‡€”’Œ‚‹‹…‡“‘|šŠ…€†‰y™—x}Š…Šˆ|‹w‚ƒŒz„…–‰‚|•~|~Œ•„†zŒ~…’vŽŠy•‚€ƒwˆ†‘}…„|}”o‡ƒ‘…‚Œ{–€†€„xˆ†„•ƒ’ƒ…{‡…„˜Œ{“ˆz€ƒ…‹Ž‡–Žy€‚ˆ}Œ†q’”Œ“‹……|ˆ‹‰ƒ‹ˆ„‹‚„Œ…’†„„„†ˆ‰‡‹Œ‡ƒ‰€ˆŠ‹Œ†Šˆ‹{‰ƒ‡‰Œ’|‹wˆ|€~†Š…•Š‡ŽŒ†ˆŽ…Žƒˆx‡…†}…‹ˆ~~€‡††Œ‚„Œˆ‹ƒŒŠ‰ŽˆŠƒ|’……ƒˆ‡…ˆƒ„‰Š…†ˆ‹ƒƒ†y†„…‹‹‡„…yˆ†‹}‚ƒˆŽ€‡‡€‡‹‡‰Œ|†ˆ†”Œ‰„ˆ†ˆ‚ˆ‚Š‹ˆŠy‹ˆ|„‡‡‹Š†…‚„„Œ†‰‹‹†ƒ~ˆ’…‚ŒŒ‚~ˆ‰†Ž…‡†‚ƒ…†‘‡„Œ~Œˆˆ††ƒ‰Š‘‡‰|h|‡Žƒp„’š„„ry‘{†ˆ‘Š„–‚‡€™tkuzv™…•Šv‹…„•ˆˆ…•€’w“u„€Œšœyyšq‘‡|Š…•‡Ž’“‹s£‰‰—Žˆƒ’“rnŒ‡u„s’|†”—z‰”q‡…Љ˜’ƒ‘š‹~’†}…Šn…–„’Š™„Œ†“€z“”ƒ{„Š’…‡Ž|‹‰–”‰ˆŽ‹‚~Š„–‰~}Œšˆ–ƒŠˆ‹‡‡ƒ¦…Žˆ‘‘Ž–|{Ž‚˜„‰”|‹‹†”ˆ|𓉒…‰n‹—€’™…rs•’‚€}‰‰Œ‚‚ˆ˜”…Š€‚}…Š“‹•ŒŒ’††‚Љˆƒ‡{’“†‚•ƒŒ‹…ЖއЋx•ƒ‚‡‚‚‡‰oŽ‹‘•t†€…†Ž„’‡ƒƒ„€ŒŠŒŒŒ }—‘mš‹ƒŒ~t‘‹‡•}v‚‰‹‘|…‘’všw‡‘‹z~…†{~xŒ†Ž}І‡‹~„†ŠŽˆ‡‰Šƒ‚“‘ˆ†wsˆ—…{ƒŠ„ƒ“}Єމ…‘ˆ–‰†…ƒ”•Ž—„†‹€””€†‡ˆ™}{{Š‘‡~‹Žƒ‡ƒsŒ—}‰†ˆŠ‡”ƒŽ•‹‰ƒƒ‚’Š”qˆˆ‡—…”|~Œ††ˆŠ}vˆˆ‡‰‰w†”‰˜z…qr†ˆ’‚ŠŽ–}•ƒ‹ql‹}x—›„†“–}•‡˜}™xz™w…ŠŒ“~†œ{‡‹~‡‹‡‰’†‹ŠtŽŽ…‡„{†…‰Š“v|˜‹|Ž}—ƒ|‰•‰}Œuƒ…‰ˆŠ‘‡’™‡‡„˜€ŠŠ‡”o“ŠŽ‰ŽŒ‚’ƒ‹…“ˆ•€u•‘І‹‡‡Š–ƒŽ‡’‹‘|†‚‡‡ƒ‚–Œ™Ž„‰…ŠŒ†‰y£…w‡•†wЉ‚ˆƒ•‡’}–}Š–ŒŒ‹†Œ’ŒŠŒrЉ‡|„•…Šw˜x–„˜‡€‹ƒ£–””‰ƒ‹€‡†”’”™’ƒˆ|’„Š“‰~‹†}‰ˆ†œ‚‘ŽŽ—‘~ƒ{‡‰‹‡‰l•ދЇr‰‡‚‹„ƒ‡Ž‡~ƒŽ„‡ŒŽŒ‘v”h‘q…˜‰”„‹u‹‡Ž{‘މ•ˆvŒƒ†‹‡„‡v‰–‹|Œˆ„‡‚•|Š€‹‡„ІЇ‰”Ž”ƒŒ{“…‰~Š„‰™ˆˆ†‡Ž|„‰ƒ…‰ˆ†ŽŠ}‡“‘‰~ŠŽ”Š‡Šˆ„Š’ƒ„€„‡‡ŠŠ†Ž‡}ƒqŠŠ‹Šƒ~’–‹€†“ŒŽŠŠ„’‡†‹’n…’“‡z‡yŒŽ‰€††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††…††††‡…††…†††††††††††††††††††††††…†††††††††††††…††…†††††††††……†…††‡†††††††††††††††††††††††††‡††…††……††††‡††…†††††††††††††††††††††††‡†††††††…†††††††††††‡††††††‡…†††‡††††††††††††††††††††††††††††††–—˜z|œ“¡•Ž‘“}srpƒ†ˆey€`j€‘ ‰Ž—…‡‹ƒyukˆw¦{” Ÿ~„z†‹s•˜gˆ|ˆ—®‡„˜ª‹r€„€‹ €›o“pl—{„ˆ{{Œž‹{tr‹†‡~¬ƒsˆŸw˜j”¤i—t‰¡‚tŠ”~“~ƒ¥zˆˆy€nonŸ”’ zvŽŒwˆˆŒ{y~zžš€¤œ‡’ˆp…uvŒ£›š†Œz•„ˆvŒ€‚Ž‹~‹|xy‰–—t¢’…oƒ]…Œ–Œƒ~†™‡Œˆ‡uŒpƒŠ‡Žw†oŠŒ}t€y|qy†qy}~|…Ž””…yˆ‰†………‰„…‹‡Š†„††ˆ…†„ˆ‚‡„Œ…‡‡†‰ˆ‡„„‹‡‰†‚‚‡ˆ†„……‰ˆ€„ˆ…‰ˆŒˆŽ‡…Šƒ‹†„†…ƒ†‰‚„‡Š†…„‚…†‡Šƒ‡‡ˆyŠ„†ˆƒŒ…‚…†‡‡‰…„…ˆ€†ƒ€ˆŒ…†Š‡‹†Š†‡„~ކ†…ƒˆ‡ƒ„Œ„…„ˆ„—†Šˆ‰Š‰†}…‡‰…‚Ї„„•Œ‡ƒ‡‹}†ˆŒ†‹{}‹ˆ‰‚‰Š‹‡‚}yŠŽˆˆ†‰‚’‡‚Šƒƒ‡ˆ‹{€‰~€ˆˆˆ„„†‡ˆ~„‡ƒ„††‡„‘†ƒ†‰‡‚ƒ†Š„†ˆ~„‚І‡ŽŠ{……ƒ{{Š€y†|‚ˆuzŠŠ†mz‚~„„‚‹Œ‚{Š€{{§u}ˆƒ‹€†”…}ƒˆ‹„„ƒ‹Ž“ˆ€„Šz†ˆ…ƒ…‚ˆ‰‰Œ{‚Œ}€ˆ€Ž‰€|‹~}’…„†{‘ŒrzŒ}|‡‹ˆ‡……}„z…‰zw„x‰‡„}„‚Œƒ‚ˆ{†Š|€Œ‡j}Š„††z~„‚”‚{yvƒ‰w€Š|u}…„‹~ˆ~†ƒ…|~y}‰€x}~ˆ‚‚ŽŠrŠx‰†‰~€‡„ˆ„†„‡†{}yy~„}ƒ}ƒw„†‹…}ˆƒwxˆˆ„€‡ˆŠƒƒ|‰€w„„€ƒŒ‹‹z|Š~“„xŒ’ƒ~ƒrtŽ’‡„‹…–ƒŽno“ƒxДކГw‘ˆ“y~”}‰ƒ„–Š…x…o†ˆ…‘Œ‹Œ‹’‹~”Š™‡…Š’ˆ„‘†ˆ„y’†”„w‰}zw“s„ŒŽš€Œ†œˆ‘‹„’ˆur¬uŒ‹”ˆ‡’”˜ƒ‹‘{‹˜—ƒo”’ƒˆƒŒˆ€‡~•…{‘‘zŽ’§ŒŽ‘“„Œƒ¢‰~~…’~‹tv”‚‚†€„“”‹Š’Š–~ƒu•ˆ‡‡–‰‰‰„ˆ€Š†ƒ}wŽ—ˆqŽm—‘ƒ“˜bŒŽy¢‡’•…š‡ˆ{‡yˆ’‰r‡‹Žƒ…„ut…„‘‚‹‰‡€…—“†‰…ql~w—Ž„~ކ|†‰“Ž}–yƒ‡ƒ†‰{}x’„Š}•‡†’–{š–‡Œ„™š‚‚•‡‰{Š~Š‚’}†{‚Œv‡„ˆ‡‰Œ‡|‰‰•ˆ†‰‡€ˆ…‰ƒˆ‚Ž„‡•‚ ˆ‰‹Š†“•‚y—‡‡Š‡‡ŽŒˆ„ƒ€y‚„“‡ˆ‰‚‡Š‹…„}’„“…†Š}‘~‹‡‹“…yЇ}ƒ‰Ž“}„{ŒˆŒ‚†…ˆˆ…~‰šŠ„ˆ•‰„‚{†”€“‘}ƒ„‚”†Š—ŽŒˆ†|ˆ~‘Œ†Š•š†}yyˆ†••›‹…‹ˆ†’qn‹yx”‚†‰Šy‡‘‡•z‘u˜‚Ž‚”†ˆ†€Ž‰Œˆ{ЉЕ†ŒžŒr—Œ‘‘|€ˆ‘”‘‹wƒ}”‰yƒ‹”€{††u†‚ƒ’Œ‡‚žŠ’†›”Šƒ‚”’s‰‘ŒˆŠ‘ƒ„”†‡’|‹šŠ…}‰”}†•˜~Œ|‚~ƒ‹Š‰‰†…ƒŠ•Ž„›‚…‘ƒŠ‡€}€|Š~’”†‹Š‰sŒŒŠŽŠŽ…™Œˆ†€……ŠŒ‹ŒxˆŠ„~Š„‹ƒ|‰„‰zŸ˜ˆŽ‹‡Š~–Œ‹—Š€„xŒ……y‡†„…|‰ƒ„izŠ€‰z…ކw”€|zuµww“…ˆ|ƒŠ~u„ŠŠŽˆžˆƒˆ“{yމzzŒ|’‚†|…’…€‚Œ€x’z|ƒ–†~‚~ˆ‚‡mvxc‘‰…~ˆ‚…}‡†…‡}ˆˆ}{z‹€ƒ„w€v{ˆxg…Œ~|w‚x‹…|su|yts|€sxy€|ƒz‚††€ˆ{yz|y{~z{{y†‚ƒ‹‹€nŒw€ƒŒ}‡tw{‰{‰‚}w{x„z‘u€v‚‚€…|qr‡~z‡{t†€„{€Šˆ‡ƒs‚‡xp„‡{€„‡…€†“{Š‹y‡‡’†Ž‹ƒy‰‘‘u›|‹‹–ŒŽ˜’ˆ}…އ‰Š‹Œl’’މ„‡–q‹‚Œˆ…‡…ˆŠ}†€“Œ‹‡Šx–Œg•Ž›„p€‰ŠŽ„ƒuŽ’|ˆ‹†wŠˆˆˆŒ…uŒ”…|“†Ž‚„‰Š|‰„ƒ…‡‰qŽ†Š‹Š˜ˆzu†ŒŒ€Š„ˆ‰‘ŠŽ‹Œ‰‹~ˆ‹„‰ˆ†Ž““‰ƒ‘…†„ŒŠ€ˆ…•…’ƒ‡‡€…Œ†‘q•“†Š‚–‘„Œ‹Š„‰‡‡…†”ƒˆn†Ž•Œw‰}Ž‘‹ˆƒQŠƒ„„‚ƒdyx‹Ž‘{‘}†”rŒz„v’~nvx…y‚|‹Ž‰³˜k}y•ƒ‡ƒ„q„p‰‡—vq|„~i˜z~¨€}…‚€{Šƒ¡…oxˆn”‰Ž‹€ƒ]vŠxk„…~m€• €w}vy‹‡y’‹¡Š…€Ã‰…‰€“ˆ‡¾iuyŠuŽwˆ‡zx„v‚…~ƒlw‰r‚‚yh‚y{€~Š€‚†~}ƒŽ™†|ƒƒv‚q“„‰˜„‰‚š’—‰“kn~…‚ƒo‹|o‰z‚†y~•‹Œ„‰x~lx}‰—}ˆ‡›‰v…‚ˆ†ƒ—n……{‚„ˆ„y€‡—n†‹w‚Œxƒ„{…}~“„†k~ƒs~€”Ž…}ŠŠˆ€o±vŽˆ†{ƒŠ|~€Š‚ˆ‚‰€ƒ‚y…‚€ˆy|‚‚}†ˆ…ƒ}‡|}wŽ“†w‡r‚‡|‡‹~z}s’yps}Š„uƒƒƒ’tz„œ{ŒŠ~v„‹€|€‚|„Œ|~†€‰y‚‡m]•€‰†xkqˆˆ„vsuŽ{a€€„txp}{…}oƒ~Š–q|xƒ{Š{x‚Љ{|s{wqƒ…‚ƒ~x‡‰ƒu}‹†…z€}tŽ{uy}„{z‡~‰„t‹|v„}ƒŽt|ƒ„|v„”‘˜€“†‚{€…‚’„x‘v{œ–†—€Œ€ŒŠ‚ˆtq˜x}ˆŒ‡t“Œ–…Œ•‹•w“–vŠ•…š‚y}{“…{„ƒ‘†{‚z‘€r“Œ”œ}„˜ƒy’‘‹w~{~|“†wˆuzzrt€Œ‰”‰‹ƒ…””‘•‘–•ƒˆˆ†z§…‘ŒŒ…ˆ”~‹ƒŽ‘‚Š‚‡lž‰“Ž…ƒ|…¯™„q’|–zŸ…s§˜Š„€ŒŠŽŽ¥‰w„‡‚ Ž|~‡ƒ‘~‹ŒxtŠ€ˆx’t›—‰†~™œŠ˜‡•ƒ‡Š{~‡€€{‰rv‘}“œ}™x‚’ƒ‡‚€€v‘‘‡‰{|†€ˆ€|І‡Šo‚„i}ˆ|Œ€y~Œ‹n~µ}sˆ}z~Šw‰mІyƒ‘­Š…ˆ{ˆ”˜}…vŸ‚ˆ„‚ˆ~ˆ||”}u”qŽ…{~ƒ|–|{y•Œ‚€gv‘m}pu‡… ‹r†€y’€xy„{‰‹ƒ}}‚|„~ŽooŒdˆ—wŽˆvƒ„|kvqЇƒv‚{k~vj‘z‚lx‡}‘€rzˆtpx„€}‚vsp}¦z„{y‰ˆ„~|‰…v~€‹}……‚‡|y‚p•v~}xq‡{l{yrŒ{ˆ~{‰wt…ƒy†”„lwzyxv˜h–‰†‘‰zˆ”}‹‡Šy}‡‚Š‘‘‰‹…ŒŒŠxšŠŒ“Š‡†‘™—Ž„y…Œ~„ŒŠŒŠm’އ‹}‚„ˆ‡ŽƒŠ‡‘‚}‹‰‰ŒsŽs”h‡…–Їr…œ}€uŽŒ|ŠŒ‘‚˜w”†‡‰……}€‚w‰ŽŒ€•†‚Œ†Œ–{ˆ„„€†…{އ†‹Œ‡›…Œ†•‡ˆ€ƒ‡‚‹ƒˆ‹”‰‹ŠŽŠ‰ŒŠ‰Ž”—ˆŒ‡„…‚ƒŽ…†’ˆ…Œ†‰€ˆ‰Œ„ŽŠŠ‰€„ˆq†—Š™‹‚ˆ‹ŠŠ…Š’‹‚އ{‹‡r„І‰‡|‹|Š“€‹z•}†‚‡w|†Œ}|‡Œ††n‚€{~~“…‚…‰…{u¶x‹‡xy…{v|Œˆƒ…••Ÿƒ„ˆƒt…‡~ƒwŠ•–ˆ€„…w‡€‚€‹Š~|~…†~||‚€‚x‰umz|‡sqˆˆ”Šw…”‚Žƒ„w†„Š{}Šƒw{‡}€}z{xƒd„z†”|z€||€ztqˆ‚zsŒƒ…‡ukf“}xw†~………zxu{yŒ|‚|ry€…w{„yƒ‹ˆƒ|}ˆz~‚–tŠƒ…x|y€|—v}xuŠ…{yyy†‚€‚€†ˆzyƒ†r€w‡z‰vzxŠx|}†‘t†„†…‡ƒ„††‡ˆ‰†‡…ƒ‡†††…†††…††‡……ˆ†‡‡‡‡„ˆ†††Œ††††„‡ˆ…†‡†ˆ†…†‡†…†ƒ‡‡‡‡…‡††‡‡‡†…††‡Š††††…†…††………††…††ˆˆ‡†††‡†††„‡‡„…††††…††††…††„†‡ˆ†‡†„ˆƒ‡„††‡††…†‡‡„†‡……†††‡‡…‡…†††„†„‡‡†„†‡‡††‡†††‡„†ˆ††††…†‡‡†…††‡…„…‡†††…†…‡‡†…†‡†…‡†…†‡†„†„‡††‡††‡†„…†……†…‡…††………†ˆ†…†„‡††…†‡††‹“–~yƒ‡}y‹v–€|‡}ƒ{€“ˆ–„”Ššv~††~‚pm–”€Š‚xŒ}†•t“Љ{‘‹‘‹v”Œ|™w“‚Œ‚‘Nw’—£Œu‚Œv€†ƒ~xœ•}wƒyƒ†‡Ÿ•šx{xžˆ€…‰“}}Š–’ƒ“}Š™†k“…Š|•‘¡pr›ˆ‹¡¡†’€ˆyŽ…™‹‰‹w”ˆƒ‘n‡ƒ†ˆ†’ˆ†z†}ƒ{ž‰–ŠŠt„ˆ³Ž“”§‡…‘™‹‡~„³{Šx•‡œw™ƒqz”ƒ’„Ž“‹tošw“’~ƒ“€Œ…‘|‡‹}‡¦…|‚“ˆž~‹¯šŠ†mƒ‹ƒyt‰‰…v™‹„qŠƒ|€‚|ˆŒ€v˜Štu°z|އ…„vކx~…‚„{Œ’žŽ‡‰Œ€‡€†“‡‚„x˜†}’u‹€xwz‹‚y‡†xn}‡ƒ……{f’t}‰~p‹ŽŒ“”€|‡‚}}{‚~~‚‡kz€€~ƒŒwdŽ…‚Š}ƒ‰}qzzr{„u~І|r€}x–z•uu}‘“}ˆ~mqwuw„|xwsƒ…ˆƒ}„}ƒŠŠ~‰l€qˆw–…ˆ}{s‘z|Š‚„„}yozl„~‰…~‰Šxu…ˆ€{‹–…€{~„…~‰}”y„‹†€Œ‰„‡ˆ†„ƒ†‡‡‡€Š…‰ˆ€Ž€‚Œ•ˆ†„„„vw‹†“†Œ‡‰‡‹…€…Ž ‹„Šƒ•މƒ‚‘›‰„ˆ‹‹Š…ŠƒŒ‰Œ‡‡w…‡‰‚‡ƒƒ‰‚ˆƒ‰†ƒ‹Š˜€Œ‡„•ŒŒ‚…‡…’†Š€y|~}‰•vvˆŒ}†zƒ‰˜š„‡‡zŠ”~ƒ„ކŸ„Œy”™…}„‚€ƒ‡ˆ†{–€Ž‰„x‚‰†›ŠˆƒŒv‹ˆy‹†‹…ko…‰„…†~}Š…|~†xzˆ~’‰Š†ˆ‚~„†‡‹…„|wŒŽ†‰Š„‡‚Šx€||Œ~‚x}€€ƒyœqu‹{„ƒ’ˆz€ƒ‚…†„~›~ƒx‡…„‚…‘…“€‹‚|““ŒŠ~}…Œ~‰zŽŒ€n~uŠz}Št…“|‰~““{…‹~‹‰…„~m†z‚„„…{ƒ‹}„{“}†„{{ˆ{—‹ƒ‰’v‰ˆ|}”“„Œus}‚{†€Œ…—}~ƒ„““†ˆ„„‚’~x—wŒy}‚‡‹Œ}€Ž}‚€ˆ€}~|‚Œx|„mŒŒ–€„ƒ‚‡‘ƒ…†„Š…p~€‹€z‚‡Ž‰ƒŠ}ƒ{€€„ƒ€x†‘†‹ˆ~{{~{‹‡|~ˆw~†††††††††††††††‡†††††††††‡††††††††††††††††††††††††††††††††††††††††††‡††††…††…†††‡†††††††††††††††††††††††††††††††‡††‡††††‡††…††††‡††††††††††††††††††††††††††‡†††……††††‡†††††††††††…††††‡†††††††††‡†††††††††††‡‡†††…††††…†††††‡†††††‡†††††††…†††…†‡††††††††††††…†‡‚‚~Љ—{ŽŸ”ŠuŒ€Ž“‡Œz‹š‚Š’’ˆ›—~ˆŠ‰ƒŽ‡‡‡ˆŠm’Ž‹‘…“sˆ…„ƒ‰‡Ž’|€Ž~‰Ž‹\’v’‡f†’‰ˆq„ˆ†“w}v€Šˆ‘|‹ŒŠ‡™}~…ŠˆŽŠ‡‰€t‹™Ž~š†€ˆ‹‡}‹†Š…„p•‰Ž’‹™zŒ‹€›ˆˆŠ…‹ˆƒ–†‰‰Œ…|‰pƒ‹Œ„……‹’”‡Š‡Œ…†“ŒŒ‡…‚‡†€…‡|†ŠŠŒ€‚ˆq‹†•†~{–Žƒ~ˆ‰ˆ‰†“†Žˆ‘„‡‰r‡‘‡Œy‰~”„†ˆ’Ї~†{ˆ†Žv„“•‡‹ytƒˆ{……‰‡ˆŽŒ‰’˜po‰}y“}€‡Š€Žoy†‘‰˜€šv›‚ˆ‘„•‹|~›ˆ‘•Œ‡ƒŽƒŒ‘—|w—†ƒŽ‹™‘˜ˆ•‡s„Šy—y{z…Œ‹y‡ˆrŒŒ‡’}•Œ“…“Ž”„ƒ~…Ž|‡‘•‘ŒŒ…†ƒ–Љ‘‚Œ”‚ƒ„‘Œ’‚‰–~•w•‡„…މ}…€ˆ™‘ŠŠ€Ž†…ˆ~‡ƒ’ƒ}…†Š”Š‘‰Žt”Ž‹Œ}›|‰’}”‚‡‡‹•‡Š’v‚‡…“‚…ŽŠŒ…œ’‚އЂŒ{…Œ‡‘‰|ˆŒŠo}Šz„Œ†Œ‘‹{‰y}•Ž„ˆz†ƒko…zyŒ‹†q„ŒŠ‘“Žy˜y‘Šƒ‘Œ~|š„š”y“Љ““ožŒ‘‘}‰†—–‹ˆ•‚zЇzŠ}Šƒ…‡šŒ{„r‘…‹}˜Œ‘~••‹–‰’ˆyzˆˆr~™¡Š–‡‚•“•Œ‹‚ƒŒ|ˆ™ˆ€–ž†ŽŠŠ‡—’‚‚„{‡~•‡Œ†}‘Š‹ƒƒ’„Œ‡€…z‡™Š„™…ˆ„ŽŠzƒ…„Ž‹Œ’ƒ‘†”~Ї¢—ˆ“•‹„ŽŒ}zˆ†‰ˆšˆ…†€š”…ˆ“„ƒ‹ƒv‹Š“‚ЇzŠˆ–“Š‹˜ˆ„–‡‹‚‚~}†‚““…‚—„Œˆ…Ž~Ž…†ŽŒmƒp˜ˆ}tˆ‹Šƒ‡Œw‰mwŠ‹‚zŠˆƒ„‰|ˆ…‡‹‹vx•„p‹‚|‘€w‡›…|z‡“Œ~Š‹—z†uŒ˜ˆwt‹†xƒv•~‹˜Ž}Š–‚ˆ‡‡ƒw“‹†‡‘އ|Š‘”‚‘‹‡„yŽŒ‡‚ŒwŠŽ˜‡~–ˆ™””‘”zƒˆ“}‰ut˜€€’‹iy“‘…‘’‹{‚Žvˆ“z€†‰†ƒ“‘‡€™†…‚‹‡”…™v„‰Š†|ˆŽ˜œ‘}–…~}€ˆ“†‰Šˆ‚†Špq‰‹‘€Œ‰‡•‡‚ƒjƒv“‰•ˆ}‡}z‡‰€‚“w†Œ~“w„‘|‘‹†‹}ˆ•†‡Œˆˆ}™‡ŽrŠ}ޓЄ‘”„Š{xˆ‚š~‡”„Šz‹„uˆ‚“™ŠŽ{ŠŽ€‡‰‡Œ|†ƒ€Šw‹Œ†Š”ƒŽ‹€‡‘Œ‚‹Ž–|z’‰‡†“Œ‚ƒ‹‡Š…ЇŒ‰„‰‘‚‹…‡…ˆ‡„€ˆ„‚‡Žzz‚•†‡‚Œ‰„‘ŒŽ|ˆ|…Š‘ŠŠŠ‚‡‘…†yŒƒ|’‡„x‡wŽw’’„ŒpŒƒ„’“x‹~‡‘Ž|ˆ–“ ˆˆk…˜„†Š‡o‰„x‡†‰ƒ††Šv‹ŠŽ”€……V~{ˆˆ€‡Œ|‡}ƒ‹€Œ‘|…Ÿ•yx‹t“އu_‡|‰ƒ‹Š–„…~‚‹–‰‚~vt†ƒ‚Ž€x~€t‚ƒŠŽ~|‰ƒ„k‚„„ˆ}ƒ‹y…kƒŽz…}‰ƒ–‹†…}€„{€w€“„ƒ…‡ƒ|…‚~†v„†‚„šƒ‚Šˆ…‚ƒy‚‚q‘€€‡‹€Š„tm…†ssyІ†…o„|~„’‰z€‡Šzu‰‡ˆvž€‚wŽt’ˆˆ‹ƒ©v††€vŒ‡ƒ~€ˆ”…ŠžŠ’€‡Œ_ˆ‘Œ…{†„’ˆ‚‚‡~ˆu‡ˆ„ˆ…†‹’ƒ„„Œƒ…‰‹„’{‚ˆ}–„‰ŠŒƒ†…‰Š„‚ˆzˆ„‹~Ž…‡…r„Œ”„•ˆŽ~‚|†‚Œˆ…™‚‚‚†ƒ‡ˆ‘‚|‚ˆ‰†}ƒŠ‡¦Š†p„„ŽˆˆŠ‘x†tm‡€‚’ƒ‡o|y‰……‰‘š}•}{•z‡¡Š‡†ŠŒ‡y„†„sŒ|„†v|ˆ„sžau†‹Žr‹ˆwƒ…Ž˜{‹vws“…Š˜Žˆ~ƒ‘yvƒ~‚„ˆ‡‚ˆs’‰Ÿ‰†Žvš‰~Žˆ„|‚’Œ‰„†—„†Œr‡’§}„‚t‹†‹ž›Œ}‹…†‚‘ƒ‰ƒŒ„‹‚‘…|ŒŠŠŒ”ƒ’”ŠŠ~p€‡‰Œ‚ŒlŒ’‰‡zr“‰‡‡Œ„Ž}…‹‡…’‰”’|–“i‘Œ‹€qЇŒ•…u~Œˆ‹|Œ‰ƒ‡’{‡‡Š†Šv‰‘Š|‰ŠˆŠŠ…‹|Šƒƒ‹ƒ‡ƒ‡„††Ž”Œ‡}…ŠŽ‚‚††…“|‰ƒŒŽ~†}ˆ„†‹‹Œ„Š–……ˆ‡Š†|„‹ŠŽ‡ƒ„‰‹‚…€ŒƒŽ†‡ŠŒq‰•‰‰‡„“‹‘‘ˆ–‡•Šˆ‰ƒ‘ŽŠ”oБޓŒŒz†~‰‡Œ†††††††††……††‡†††††††‡‡††††‡††††††††††††††‡†‡†‡††††††††††††…††…†…†…†‡††‡††‡†‡†††‡†††††††…†††††††††††††††††…†††††††…†††††††‡‡††††††††††††……†††‡††‡……†††…†„†…††††‡†††††††‡†…†††…†…††††‡†…††…†‡†‡…†…†‡†††††‡…††…††…†††††‡…††…†††‡…†††…†‡†‡†…†††††††††††††††††††††…†€†Œˆw…„ˆ‹‘ˆ„Љ‹‚–ƒy‡ƒŽ‡”Œ’ŒŒˆŠ–‡Šƒƒ”ЇІ†{‹l”“ŒŠ“…q‘‹‹‡Œ†•ކ€„‡‡†‘‘މŒz”“gŽ‘Œ†…q~‹’{†uŒƒ{‰Žƒ…‹ƒŠ“‰†‰‡‹~~uŽ–‹|‹„†Š…Œ}‰‰ƒ€‹„Š„•”˜†‘ˆ{Š‚—Š…ƒŽ…‡ŠŽ€‰‘y…“ƒ|ƒ‡ƒ”Ž‹…Šš…Љ†‰Œ…‘~†‹‰’ƒ‚„…ދБ}Œ…‡‡~…‚…q‹†„Šƒ“‹‰‰Žˆ†—„‰Žƒ’“‰nŽ–…•†y‹ƒ‹ˆ‚Œ‹‹ƒ†y‡–ŒŽŒ‹ˆ‹ˆ†z†{†‚‹›Š”Š‚–‰Ž‘–Œ…‹„€zˆŒn–Ž‹•Ž}t€’…Š€™ƒ–ŠŽ†•{ˆŽ‹œ|–‘k•{•ˆs‘…”|‹v„|†’…}’ƒ“‹||Žˆ„ƒv‹‡|„Ž’ƒˆŠ~„‡‘Žƒ†~‚’’“‘‚y}Œš‹‰‰‡ŠŠ‡Œ…‹€ŠŽ€„„…–’Žˆ‡†“ŠŒ‡„”…„†ŽŽ’“}ˆ–ƒŒ†ˆˆƒ„|‡ƒrІ†‡‘‰‚‡Ž‹ˆ†…‹‰•Œ‰p‰Œ†•€”{’„ŠŒ‰ŒŠ‹{Ž‚ˆ—‹|~‘”ƒwo…~ƒˆš‡ƒŽŠ‘‹ooˆzw˜ƒŒŽŽ€Ž„s‰€Š•„”{”~…‹ƒ¥†}„„vŽ‚˜œŠ‹‘Ž“‡z›™Ž‘ˆxˆŒŠ†•—‹uƒv„€ƒ‚Š Œv‡t™›Œ˜ƒŒ}˜…›s—|œ„ŽŒ‹s “ˆ„‡‰qŸm–—q‚›šzˆƒ–™“† ›’„„Ž{Š‹…zŠw‡•†zœ‡k’Œ‘Ž€ššy‹g†m‘«‚‰Š‹ˆ…q¤„š„Ž—vŽ›“€Œ†Š…Œ|’„Ÿˆ‘„v’‰ˆ…Š™™~”ƒ x…„mГЙžŒz…|…—“ЉˆŒ~…€ˆ“‹ƒƒŒ†‰}™ˆ’††Žœ“•‡›~’ˆ†”‡‚Ž’l‘ŒŒ‰‘‹‹v†‰‹‚x†„‘–|ƒ‹ŒŽŽ‹ˆy‘y’i‰Š…Œˆq‚…‹žu‚‹ˆ{ˆ‘{ˆ{‘Œ„ƒ’ŠŒ€v~Œ{‹Œ€ŒŒ~„}†…”{„wބВ†›‘Š‹y†ˆ”‹ŒŒ„‡„‡……‘އ…ˆ~‹šŒ‘Š™‡‹‹…‹‡“‹•ƒ†’……„ŒˆŒ|‡†“Œ€ŠˆqŽ‹‡†‰ƒ–††Œ‹‰ˆŽŽ…‰•Š„†…ˆ‚n‰‡‘ƒyŒ‚ˆˆŽ‰Žˆ…‚‡‰“…‹†‹‰€€‚€‰Š‹‡Ž†|“„„š—Ž—Œ˜Ž‰‡†”Š„‰|‡Œ‹lŽŠ†Žs„„‰‹Œ’‡‰‹—‡††‰ŒŒŒ‰y‘h’Їq‹„‹–Šu‚Œƒ|ˆŠ‡‹€„’‰|{‰ˆƒt‹Ž‰|‘…‹‰…ƒ~‰ƒ„Œ…Œt‡‰ƒ…‰‹—‹‡|z‡„–‡’ЇƒЉ‰„‘…v~Ž„Œ†–ˆ‚”Žƒ‹…†‰ˆ€~‹ƒ…’‰’ƒˆŠ‹ŠŽzŒ’‹ƒ‰q“†‰†—ŽŒŒŽŠ‡•‰ƒ‚ŒŠˆŠnˆŽ‡‘yƒ’Œ‘ˆ‚‚†Ž}…–Šw‰‘†‰tr†Š“„Ž–‡‹“„–pm~w“ƒ‰…Žƒ‹Œw‹Š‡Œ”{˜‚‡Š’‚†{€…wŠŒŽ–‰‹ŒŠ‡{”˜Œ–‚ˆ…‚”‘…”Žƒz‘†Œ{Œ„uƒ‡uŽˆ”Œ†€–‚—“—’‡†|„•ކޓ“}œ‚“‘~–›ˆ‚wއЖ’”‹Œ‡|‚…ƒˆˆ„Œ†~–‹ˆ£Œ{‘‰~–’|w‘œzЉ|…”“Œ”’}wŒ“Ž‹‘}†‰‘„|‡‡…„—‚~Œ‰Œš“…‘|}Ž}™Ž‡˜Ž…ˆ€‡Š~‹†‡}†r‚ŒŠŒ…„‡„‡„Œ€ŒŠ‚‹Žy†„„ˆˆˆ‡}ˆ‚“‚ƒŽ…‰”Œƒˆ…Їz……”‚„ˆs‰~‰Š€†„„‹‡Ž‹€”~Œ‹|‡‡Ž}u~‹„…ˆ‹ˆƒ{‡„‹‰y‚o{ƒ€†ˆ‡v…t‰}Œ‹€~}Š¢{…Œ†‡††‡|ˆ‹Žƒ~‰‚|ƒˆ€„ƒ~Šz…yy…{‹‚Œ‹y†ƒ€†‚‚„‚ƒpƒ†„‰„Œ~‚Š~‚‰‰„‚‰€‡wy}†€„ƒ€†ŠxŒ€€ˆ‡ˆ‚ˆ‹Œ„tq„~‡ŒŽ‰‹‹z€“y…~ƒ€…‡‹‚‰‹{‡ ”z‡t‡‡wŒ…€ƒƒ„›¦“‹}Œ‡Žv|‰}|}uƒ¥ˆŒjz„…‘…”xƒ|}€¨›‹”±ww–£ž‹s„‡¤n~…Œ‰“ˆ“r|Šƒ›Œ„s€€‡—„x“ƒ‰•z|xx¯Œuƒ†ƒ»’|ˆ”†ˆˆxˆµ˜ahx~‡Œ ~†¢|˜Škx‚€z“¥Ž€•“±ƒ¦‰€}•’€ty€”™—”xŽ‘o’’€‚}•˜uŸ}€ˆ‡yŒu€jž sus„†‘t¥v‹ƒ’‰šaŒ„’~„‘…›~‡ƒ“|”twŠjp‹‡wŠ}…‡‹ˆ†©Ž…”ƒz{v„~ŒŠ‰†„‰‘†Œmw‡Ž‰–ž‰€’…‚ˆŽk„yЇŒ‘‹„‡‚…‹‹‡Š~}~‰‹z‰‹}t’y†„‚’‘„•…‡ˆ€Š~‚‡{‰}Ž—|ƒŒ€‚Œw€€–{†ŒŽ{‡{…ƒ‘†ŒŠ‹€‹ƒ{‹€‹ˆŒŒ‡|‡…‘€yŠ|Œ}†‚‡‹qq‹…Žw…›ƒ‚‡‚‡ŠŒŠ‹Š€‚Ž}wŠ‚‡Œ‰„}~‰€ƒ„•………ŽŠ‚ˆ…†‘Œ|€‡…‰€’€††€Š‰€}}‚…ˆ€€‘‡‚w‘~u„y…€•}„…‰|€‘Œ‘‡‰†…Š„……ˆƒ„‰Š‡Ž‰…‰…ˆ†‰…‡ˆˆ„‰‡‡†ˆ†ƒƒ„‰†Šˆˆ„‡„…ˆŠ†„…‰‰…Œ†…‚…‚|‚ƒ…‡‹‹…ˆˆ‡‡ŒŠ‰ƒ…‡‚€„ƒ†Š…€Š‡‚†„‡…‚„…‡‡…†‰†‡€ˆ†Œ…‹…ƒ‹ƒ„‚†ŠƒŠƒ†……‰…„p…„…Š‹†’…‰ƒˆ…€‰‡ŽŒ‡v‹Š‚…}€‹‰Š„†„…‰ˆ†‰ˆ†‡ˆƒ…ƒ†„ŽŒˆƒ‡ˆ‹ˆƒ‰‡‡|‰„Œ‡‚Š„ƒˆ†}‹…€††‚…ˆƒŒŽƒ‡ˆ‚ˆƒ…Ї‰…‰ˆ„†„‡€††‡……†††††††††…††††††‡††††††††††††††…††††††††‡…†††††††††††††††††††††††‡†…‡†‡†††††…†‡†††…††……††††††…†††…†††…†††…†††††††††††††…†††††††…†…†…††††…††…‡…†ˆ†…††††……††‡†‡†††††††‡…††††‡†††††††††…††††††…††††‡†…††††‡…††††††‡†‡†††‡‡†††††…††††††‡†…††††††††…†††††††††‡††‰•‡}}u”}•u‰‰}‹rv†…”ƒ‰‘„‰‡Š…„zkƒ}wŒŽˆ€Ž|‡‡ŽŠ–‚—€–€†‡‰€Š…|‘}•ˆ‹ƒ•†’ކŽy›“†Šz’‘ƒšŒ‡™ˆ‡}‰‰“|˜y~~wƒ{Œ‡ŒŒ‡uމ•ˆŒŽ‡‡‡ƒƒŠ‹†”…‚’{žz‰†~›”ƒy—‰Œ‹‘˜}Œ‰‰„‚–…ƒ…}€‹†‘ŠwŽ€~‡Š‹vŽŒz„w{ŠŒŽœˆ~‡‰Žy~“’–|Ž~ƒ~ƒ”‰‹‡ƒ‹‹„€Œ™‰„†’„‚ƒ‹‚…Š~‘‰‚Œƒ„ƒŽŠ‡’‘“ˆƒŠ~Š’„‰†ƒ}|ˆ†‰‚—„wЉƒš™ŒŽ–|Ž–ƒ~Š–Ž‘Šz~‹m”“ŠŒŒˆq†‹‡‘šˆ˜‹•ƒ„„…ˆ…‘Šz›“g”އ‡q‘{‰‰y‡u‚€‘|‡ŽŠ‚Š„„“˜ˆ|††‚|}sŠ™ˆ|ˆŒˆ‡‚~Œ‹„‡wˆ‡„†‘˜‚“‰{p€”|—‹‹~‡˜‘{‡Œ‰”‚v}”Œ‡˜€‰~–‚’††‚ts‹ˆ‰–‰‰ˆŽ‰u‹‘†Ž†‚‡rŒ•€Š†•ˆ…“ŒƒŠ‘”‰“‰Žƒ“‘ŒoŠ’‡“—y’…–…–’ƒ‚‚ƒ‹Ž€”‘Ž‹•}Š€ˆ‹‰{Ž„z”•‰„›ƒ‘˜‘Œ‰Ž‡““ˆŒ‡€ŒŠ†m”‘’ŽŒˆ‰s}‹ƒˆ…ž‡ŒˆŒ‰‹€†ŒŠ‘Ž‹Šw™‹iŒ„ˆŠrІ—‚€uƒ‡|ˆŒ–|Šx…ˆ‚u‰Œ|~u…|’‡‡„ŠŒ~‚„‰Œ„Ž‚‹‹‰’–€Žˆ|ƒˆ~ŒŠŽŠ…Ž’~„‡Š‡‘‡}Œ‹……‰„‘“‡‡ˆ‡…‰ˆz€Œ‰†‘ƒ‰„ˆŠ…ˆ€Š‡ŒŠ‡~Œr‡‹‹„ˆƒ•‘†~‹ˆ„Š’‹Š‡’ŠŒ†‹n‡ˆˆŽ‹–y–Ž„ˆŒ‚Œ…†‡—‘ƒŠ’…|†‚ˆ”ŒŠŒ†~މ‡†‘‹’Šœ““‚„‚Ž‹…‡ŠŽ‹l‘‹‘‰Œv‡’ˆ”ƒ€…~‹“’sƒ‰‡ŽŒˆox•ŽhŒ‹‘Ž‚q€ˆ‹¡„‹u€‰|‰…†ˆƒ‰‡‰…vˆŠ‹|•‰‰ˆ„‰|ˆƒŠ†‰yŒˆ‡—ˆ—ŽŠ{Œ‘†‹‡ˆ†›‡Šƒ“‰‹……Œˆ‡ƒ†‰‘‹‰Š’“‰ˆ‡†‡Œ“†ˆ‰„…‘ƒˆ}…†‹‡‹‡Œ‡Ž€ˆ‰qˆ‘މ„‚•‘‡†Œ‹„“‰‰‡Œ…}‰‰‹nŠ‘Œ”†Šy†}ˆŒ…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††††††††††††Ž‚…ƒ€‰‡“Ž}ŒŽ“‡€†„‰’Š•ˆ„~‘˜Œ~—…ŠŠ™…—’ˆxt…’ˆ‹‡‘‹‰l‰Š}‡t‰y‰…Œ‡†~ˆ‘†~ˆ~‘ˆ…yœŽh•…˜Šqƒ‹‰‡„u“|‰“}“†ŒuŠŠ…v‰Š|”‰‡‡Žƒ}Іy„‡Œv‡Š‰ŠŠ€›…Œ†{y‹‰Œ…‰‹’ŽŠŠ}‹…’ˆ{ˆ‹Šƒˆ’‰”Š‚•……†Œˆˆ‚Š€ƒ‘…“‰„‰‰~Œ˜’‹‹‚’rŒ––†ˆƒ–‹Œ‰‘ŒŽ„Ž~€‚Œo…Š“‡‰y‹|—Œ††††‡…†††††††‡††‡†††††††††††††‡†††††††††††…††…†††‡††††††††‡†††††‡††††††††††‡†††……†††††††…††††…†††‡†††‡†††††‡††††‡†††††††††…†‡†††††††††††…‡††…††††‡†††††††††‡‡††††‡†††‡…††††††‡†…†…††††…††…††…†‡†…††…†††††††††††††††‡†††††…††‡†††‡††††††††††††…†‡††††††††††††††‡‡ƒ‰€Œ„yˆ~‚†€Œ~}ƒ|{ˆm€…˜~‹€‰‹†wŒ‘ˆ|}œt‰‡~}Š…€‡|}‰”Ž‹‰‡‹ˆ}†}ކ—އ{‡…}„†ƒ‚…ˆ†‡…’‚‰oЇx“~„‡›„ƒ€|‹{„†|ˆy‰ˆw…‘zŠƒu{Žpxz–’•m…’‡’‚ƒ†~|u†Šˆ‚y‚‹‡Š‡‡”€ƒ„†‡ˆ}~€~‡rx†‰ƒŠ~|‚W~€‰~‘ˆ††}ˆz~ކˆ€‹y†ƒz•zŠƒ˜‡•ƒlˆ‡Š…‚}‰ˆ{„Šv‡ˆ–~|„‡‡‡|‡Š‚‡‹yŒ˜†ˆ‹ƒ}†ˆ“‰Œ„~Œ…ˆ|œŠ‘Œˆ‹‹‰œ••ˆ–}ЄЄ‡‰Žl”ŽŽ“ŠŒu…•†‘„ˆ†ƒŒ—y…ˆ‘‘ŒŠmwh‹ŠŒ‹‹qƒŠ‹ž€~t‚ŒŠ{ˆ‘‡ƒˆ…ˆ‚„ЋЉ€vŽ„{‹„ˆŠŒ}†„•}……}Œ‚†˜ˆšŽŒŠyމ”‰‡Š‰‡†“ˆŠˆ‘†Œ††Ž…‹Š—‹Œ‰‹’•‡Œ„І‹‰“Œ‘“Œˆ…‘ƒ…{…‹††Ž„Œ{„…qŠŠ†‡‰ƒ”ŠƒˆˆŠŽŒ…‡‹Ž‡‚ˆ†„n‰Ž†•ŒxŠ€‡‡‰†z™‚rš{|ˆ‘~•˜zr—x†{“–“Œ“Žz„……Œ‡x©vƒ…~‰¢–Œv†‘††‹‘{‘„•Œƒ˜‹ˆ†vu›u‡yŽ••‡‰‰|iŠŠž‰x~ŽŠˆˆŽ‡‰…x‰ƒ†‰Š{…ƒ‹Œ‡€}x…x‹Š„~†›—ˆ‘~˜‹‚o›„ƒ~~‹x‡‹Œy‹ŠŠŒx‚Œ{•™v„“y{„„‚}Š}{Š…‘€‘’…puy’wƒ‘Š—„‰š…€‚ˆ~x‚yƒ‚‰Œƒ „†‡}†ŽŒƒ‰ŒˆŽƒŠ}ƒŒ}€„~qŽˆ|“Š€‹–……І„Š}‰|ˆ‹~‡xŒ‰‰Šˆ”•€Špw…‡w•Š‹—‡……l|†zŠŒ’Ž|†‹ƒ†ƒ„—ŠƒŒ™…}}Œ{p{އ‘ƒ‡ˆ~†ˆŒŠ{”„Šw‘‡}‰”†‘ˆ}Š„s‰u‰†ƒŠ‡‘{‚Ї‹Š}Š…Œ{{ˆ†Š…ˆw}„‚‚†ƒ‹†}€‘˜€’~{‡Žˆ„{†y‘‰‘„†‰Œ~‚|~††„†„†{~‡€†p…}˜ˆ|‰…ƒ—‹‰‹‰~’ƒ…ƒ~‘~}”††…‡…x‡Žƒ‚„Œ‰ƒ~…„‰€˜‘~Œz|„†{‰š}“xn˜z|Œ‹x‡ˆ‘uv˜v‰~Š–ˆ‘‘…z‰€}—y~‚†|r•‘q‡‹‡Œ‚Œ†Ž“‘އŒƒ‡hl’”Š~‚|{Œ‹‰ˆ†€ƒy}…•’~z˜‡ˆƒ†Šƒ‰lˆ‚ƒ„{„„Ž…}z|Žs‚‘ˆƒ~’Œ~Ž„†‹„|‰†v“‚~sŒ}ˆ€‰‡€ˆ‹Šz‚|z‹”s‡…Žˆzˆš‰‚€|„…ˆ•†u‰…~ˆ€t…zz~uw…x~r““„‘‹„~z{–zzu…}‚{Œ‘ƒ€ƒ’†|„ˆŽ‘…‚z‡{†‚zx‘“t‹•~„†•{†‰~}|€‡”‚ˆ|ŒЉŒt€ˆ†™ˆ†lw‰‹…~†Ž…‚“‘…~ƒ‘n…}‹‹ˆzˆƒ„„ˆŽ‘‰w‚Œ}•ˆ~wŒx‰‚ˆ€ˆ†€‹ƒˆ“‰~ˆ†x„ކŒˆ|‡wˆŽt„‰‡{€†Œ{Š€„†‡‰{Ž‚Žx†~…‰Š~y’…„Š’‚s„†ˆŽ~ƒ}ˆ‰Œwp”{zƒ†Š‡{}‰z‰€‡ˆ‹Œ‹x€‚~yˆ‚|…~‚Œ…‹xˆ‚p}Œ‰†‚‡†ƒ†‚•‚|†{}vІ{{Їƒ…}{Œ‰|}…‘†€‘sƒ{“†|Ž„vŠ}ˆ’Œ‡uŽ’†„wƒ“n‚”ŽŽ€uŠ€Œ~{ˆ‡’€‚‹ˆŠ“…—„ŠŒ‚Œ”‡}‚†~zƒ„’†Œ‹…~™Œ’“Ž„‘€ˆƒzˆ—yw‘Ž€‹„jކs‹†‚zh†Œ„€‚rƒ…{„€‡ƒ€{{‚Œt}‚˜ƒ‡’’††˜•~ˆx•vƒ†…‚~uŽ}ƒ’‡‚n‡‡ˆ…‚…„|ˆvx}zƒ~ˆƒƒ~“|~……ˆ€‰ˆ‹™„ƒ…‡ƒ‚rw…‡…“‰Š}‚‚€‚ˆ~‡ƒz€‚ƒ‚ƒŠ‚„ƒ„ƒ…€ƒ|q„†„‡Žƒˆ†x‡†~„’‹†…’‘~‡‘ƒ„…‚„‘‚š„Œƒ†‹u…•‰ŽˆŒŽŽ‡ŠŒ‰zŒ„~ކ‡œ†–ŠŒˆ„Œ™‘‘¢~–…ƒ‚ƒŠŽl•‹‹š‡s†Š†Ž|Š†ŠŒ~ƒŒ‹Œ•w•i“’††ˆq‰Ž‰œ~€t€‹’{‡‘†„ŽƒŽ‡†~ŒŒ‹‰ˆuƒ‹{ƒ‰Š’}„‚“†„‡…ŠŠ‡““–Ž…xˆ‹–‹……††‘‡‰ˆ‹“„}‰…Œ…‚„œ‰Œ‹Œ–Љ€‡‹‘Ž•Œ‰ŒˆŒ•‚y~‡‘‚…‰‡‰}‰€pŽ€…Œ„’‹‰‡Ž†Ž“‹…‚Œ‡ˆ‘ˆm‡Šˆ™‘zŒƒ…‡ˆ…yƒ‚‘€z‡„”„|‹}Œp…‚ˆ†Œˆ}Œ‰‡z|¡x…ˆ…‚€‚†…|ˆŒ‚†~‰Œˆ„‰“yˆˆ}‰„sƒŽ„…ƒ„‹ƒ€~‡~~€ˆŒxŒ{ƒ†ƒ…w…|Œxyz„{qƒ“‚†‡‰‹|‹…ƒxƒ~ˆŽƒ‚wˆˆ}{‹|…}…ˆkƒŒ†ƒŠ‡•~v€s{‚‡w„Їy‚ƒ„‡{€}‹ƒƒ†Œˆu}w{„|€…~††xt„„“’~‚‹z‡‚ƒ„‰‡…ˆ|–}€‚Œ†€vŒ{‡€†€„†‚€|Ž~‚Œƒƒ}…ƒyЉ‹ˆsƒ|ƒz‰{y”‚…||Œq„ƒ‹u†…‰qŠ„v} z‹Š…~€p†‰ƒ‚Œ…Œ{ˆ„ˆy…‡€Š~vŒ’ƒ…}†‡„„}‹†Œ|‚„‹~Œˆ‚‡Ž‡†…pˆ~„}z{‡yj…—‰†€…yЉ|x~{}‹€ˆ‡o}‡x}ƒƒŒ‚“hŽˆƒ€‹~‹œ€w}k}ƒŠx‡„z||kƒŒ{ƒЀЋrsw|y€|€€ˆƒtƒ|€yž…}}}‡w†€€„…†ˆƒ†ˆˆ}y{šxƒzzˆt‹‚Œƒƒ‰}’‰v†–†‰‰‚‘†‡††‡…‡‡††††ˆ……†ˆ†…†††‡†…†‡†††…ˆ‡‡†‡‡†††…†††‡††„‡…‡††‡†…‡‡…†ˆ††‡‡„†…‡‡††‡…†††††……†…†††……††…†ˆ†…†‡……†††…†…††††††‡†ˆ†„‡†‡……‡††‡…„‡…††‡†„†††‡†††…‡ˆ…†„†……††††……‡…†…ˆ‡‚‡†‡†…†…ˆ†…†……‡†‡†ˆ…ˆ„‡‡†‡†‡……‡…†‡†…†…ˆ‡††…‡†‡„†…‡††‡††……†‡……†……‡‡†…††…†„‡††‡‡…†……†„†…‡…†‡†…‡†††f{©g……Ž]w}„~‚}ƒ‚z~mutiˆŒ‹€’zu¨„z†„…~´˜y„›w…‹s‰vƒzƒxŠƒ‰{œƒ‚z’¡Ž‚{›{pƒtt‡¯q¢ªs–xqwˆp‰|hˆ“V|uqz€{Úsy~”n…~Œ‹…w…}ˆ„}†” ‹x‡ƒ›x–‚q‹vpg‚yz€‡…•zƒ†…Ž‚ˆ}w~h~›‚œ„ˆ†{r€‹x¡p†Œƒ}‚…‰q‘~„wƒˆˆ¡‡‹yvƒvxÈnŽ|ˆ€}‡x‰~vŽ“z‚‡l~yxˆ}Žˆw||~Šƒ~–ƒu†Ÿ‡my‹|w‰…—s‚ŠžˆŒx‡}‹Œƒ|…‘‡}‡sxŽ‘‰…І‰Œ„xvm—€yЇ„Ž‹…ІzŽŽŽ’‡‹}—o‹Ž~‚‡~~ˆ”Œ‰m‡Š‡…ˆ…‰‘“{–…‹’˜†””Ž‘wˆ„}ƒ•r„€yƒz’‡|މ‹€’‡ˆ…Š~q{|‚ŒˆŒ‡–z‰„Š•†Œ‘†~w—ŠŠ„‹‡™…†~yyz•†‹‚Š}ŠŽ‡|‘ŠŽŠ}‚“ƒ–~ƒ€†yx‚‰†’y‰{’Ž•”ˆ~‘}z€†…Œ‹Œƒ}‡‘‡~‡‡~}€Ÿ”€†}‚Їƒˆ‰Š”ƒ€p¡…†‹†pˆk“y‹{pˆŠ‰ƒƒ„Ž™†ŽšqsŒƒz‰š}Ž‘ˆ•z”wƒ‰Œ~ªŠˆ˜Ž|‡…™˜‚~ŒŠ¤‚w†˜…ƒ‡„z—‹ŠŒ“r……|ƒ„‰†‡†~Žt„†Ž…”ކ‚Š{Œ‹‡‹|ƒ—lŒ‡Œ„›…ƒ¥‚u£{…š‹~†“u‚—‹wŽ{Š’ŠŠ‹„‰”†ƒ†‡žƒ…y’ˆˆ†|±“yyšv…|Œ„†„•„™{Ž€u•‡‡Ž‡‰—Œs”mŽ{„|Šƒ—ˆŽ†‹Œ{“ƒz‡‰c„†w™Š©ŒˆŠ‡„ˆ†…‡‡„‚ˆ††††ƒ…†„†…†„ˆŠƒ„‡ˆˆ„‡Šƒˆˆˆ…ˆ~€ˆ‡†‰‡‡†‡‡ƒ‰‡Š…‰‚‹‡‘„††‰†…„І‡Š…‡‡‡‰„…‡‹ƒ††ƒ‘„€€ˆ†ƒ†…†‰€‡…ˆ‰ŒŒ‚…†„‚‡†‡…‡……‰ˆ…„…„„‹Ž€‡‰‰†‡……}ˆ…††††ƒŠ…‹„†ˆ…Œ‡~ˆ†‡ˆ‚„†‡‰~ˆ‡ˆƒƒŒ‹…††€ˆ‡……ƒƒ•‡‰„‹„І†Œ‰†ˆ†{ˆ~‡‚„…„zˆ‚ƒ‰†‹ƒ‰‚ƒŒŠ‰‡‹†‹‹‚„~„ˆ|‡ƒ…‡†‹„‡ƒ‡Š„€†‚……•Ž{…–Œ„‚ŠŽ„•ƒ|‰‰~›Ššˆ’—’ˆƒ‡Œˆƒ††‡‡‹l•’‹‹€rŒ‹‰~‡‡…“Šv†Žz‰’ŽlŠt”Šf’œ†‚p„…ˆ‰}ƒuŒ|Œ‚Šƒ‡‚ƒˆƒ„tœ‡|–Œ‰~‹}ƒ‚ƒ‡Œx†…•Š›’‡{…‰’‰‚Š…ƒ‰”ŠŒ‘‹‚ˆ{‚Žˆ‡ƒ‘ƒ……†„“•‹‡‘ƒˆ‡‰„„~†Šƒ‹‚…‡‚‘Š~…‘БЂƒq‘˜††—’ˆŒŒŠ‚–…‡”†ƒ”‹‹n„š‘’‹ˆxˆ{ˆ—†Œ•Œ†ƒ|’Œ{‹Š‡‰‚}~Ї‰•ƒwŒƒ‰}£†“–˜‚”œ‘ŒŒ|Š’Œ„ƒƒ…‰l—•Œ‘€”sƒ‘ˆ–—ˆ‰™ˆ‚ƒŠˆ€—k†vŽf‘—…‹p‡‚‰x€uƒ‡“|ˆ‡|”€‡}v‹€}tŠ—†|—Š‘‹‘~‹‚ˆ‡‹v‘Їƒ‹™’‡|€‚•}‘…ŠŽ‹Ÿ’}Š€‰Ž}”‚ŽˆŠ‚‹†“‹ˆ‹‚…ŒŽ…yu†Œ‰ŽˆŽƒƒˆ‹€‰•ƒˆ‚‚‚€r‰Œ˜„†‚”‘€~ބЄ“‰„–Œ‡“…„n„‘‘‰w‹€““Žˆ…{‡’’†Œ†Žt‚…|†Šx‘ƒy†‰{Ÿ~•‡ˆ‡†›‘”…’‰‰Ÿˆƒ†m•‰•ˆ‘t‚ˆ‹ƒ†ˆŽŽ‘„‡‹†“‰Œ{’hŒŽ‰ƒŠq€‹›€uŠ~–|†‚„††‚”‡‹†ŽŠƒ~uŒ„†{Š‹…€‰}„„”ƒ†‚s“Œ„‹Š‘˜ˆˆy{„‘Ž‚~‰‡‹˜ˆ‹Š„ˆ‘‹~†ƒ…”‹•…‘ˆ–‹…ˆŒ‚‹„‘…ƒŠ‰‰”‡…†…“†yˆ…“ˆr‹Š‚І“ˆ„…‰Œ“ކˆ–ŒŒˆŠ|o‰ˆˆ•x‹…“ƒˆ~‚ƒ€~{ˆ‹‚†Šƒ’…ˆŠlz‹…Œ„ˆŠŽ…~‘„~„šlŒ|“†ŒŠ†‚ƒŠ~ˆˆˆŽ‰‹‹}‚ƒt„€…€‚‡†€•ˆ……y‡‹‹‡x„’~‡‰|‚‡‚u{…—z†Š{~|Œ†z…‹ˆ……‚„‰‚Š|€‰€‰w~„†‰ˆ€t‡…ˆŒ}ˆz~ƒ‹ŠŽ{t~Šƒq{‡ŒŒr†—z‰„…‰Œ„Œ…~†~y{||}ˆ{~„‡}y“‡{‹’„~‚ˆ€„ˆ‚†Œ‡||†Š}z‰}Œ„‚ƒo}„‰|…“‚p„z}}{Œ‰ˆy€ƒ…„…ŽŠv{}~€…‡r„‚‡Œ™ƒkq†z{„Ž—„t‘~}ƒy«vˆƒ}y|‰‡y„ˆ„‘|†‰©‚{…|}•Œw}z~„|†ƒ‰‘‚…”ˆ…q†{ ‘‚t‘{“w~ˆ„…{ˆ†…oyƒŒup™Œ…}†‡„„~z…|”yzz|zŽ|€‚|u‚‡z{Žt`†’ˆ‹xx‚ƒ‚‚~t~|‚vqnu„oz‹l|“u‚‰…‡ŽŠty‹„w„‚Œx{‰ƒ‘„|yzŠr}{„€y€w~‡y„~{wx…z‰y€…{„ƒuˆz|zˆ‚„w‰‡r}yƒ’’wŒ…|~ˆ|z…}††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††€‰†~yy€{‚–‡mƒŒŽ„…rxˆ‡}‚~Š„†–‰…€kŠz‘„‰‹zІ‰…„ˆ}…€Šˆy†y€‡y”‡…Š„ƒ‹‡Œy‚€“‡{}›‡}~‹ˆŒ†…‚€w††x‚—’~ty†ˆ…Šƒ…t…ˆ‹€Š‚ˆ…€Ž‚{†‡†p|‡•…†‚ƒ…•…€…‰„ƒ{ƒ„‚ƒ~|w†|‰ƒ„‘‡†ˆ…‚~}…~ƒŠ†x‘‡z~s†ˆˆ‚‘„‹‚ŠŒ‚Œ„Š}†}tƒu’yƒˆ†ƒ…}ˆ†—Š‚ƒŒŒ…{†w{‡’š{‡y„„Œ…†ˆ„‹„Ž…‰‡––ˆŽ˜ŒŽ“xŒ‹}‘…~Œ€†ˆ™”‰Œ‡‹†—“•‰’’‹…‰…€€‰‹l”Š‹•‚sŠ„ˆ„Œ„Œ‘‡‡†Ž…‹Œx“x’h‹Ž‚”†q‹‡˜y‚tŠ„Ž{Š‘ˆy’Ž–‘zˆ„’Žˆ‡‹€u‰‘{‰~Œƒ‹}‰‚•‚…ŠŠ€Š–Žš‹ˆ{–Ž”‹‰…ЂІƒ„—‰Ž…‹„„‰ˆ›‰‰…Š˜Š…‰‘Œ˜…†“–‡‹‘…z†Ž€“„‡‡|†€~pŒˆ‡†‚‘ˆ‰‚†‹–Œ‡‡‹Ž…ƒ‰n‹‘„“~“z‹‡…‡Ž‹‹Œt…’‘‚ŒƒŒ‹€‚…~‰Œ„zŠˆ€ž}’‘Œ†‘›‚”Їƒ‹†‹l–Ž—‡‹t‡Š˜†‡ŠŒ„ˆŠ…“Ž‹‚Šw‘h’Ž‚ˆqˆŒ ƒuŒƒ”|‡Ž‚†‚‹ƒ†‡ˆŠ‰‰~v‰‰†{Ž„€~–}…’‚…„zˆ‰†’“•‰‘‡{‰‡“…‡‚……ŽˆŠŽ‘‹…Œ~‰Œ‹‡……ƒ•‡‹‹Ž•ˆ‡~„„Œ‰‘‰„‡‡‰‹‘„‚€…‘Š‹…Š‹€ˆ}‰ƒq‰…ˆ‹‚’އ†‰‹‰Œ‹†„ЉЋˆn‰Œ˜Œx‡€‹Š„Š‚‚x‹zyzwv…|o…ŽŽ~š„€v‚‰ƒ}o¡{Ž…†p‡„‰‚x‹…Œ‡‡“‚†|‡{‰‡‹‚€„y|•‰ƒ‡zz‚ƒ~€†ŠŠ€†‰Žz„ˆ|„ŠŠ…„zƒp‰y~tnz‹‰‚†‚”€‰~y~†x›†v{…‹†~…|Œ‚z’‚€ydŠo˜}˜ƒoˆˆ‘}y|‰†„nŽxŒ„~t…†’rˆƒŒ‹›•x†~u”xy~–~…zˆz}{ƒ…‚ƒ‹||wŒy{‘p‚†„„z‡z‹„~~u‡‡‚wx‡Œ‚„w}~{€{{{…h{‚‚}ŒŒ~ˆˆƒ†‡|u‡Ž‚‘t}‡|‰†ˆ€‘†ŒuŒqt„•”Š|‘•~‘•€‹“onvz–Œ‘‚Ž‘z–ŒŽƒœ|“y›z‰‚Ž…Œ|„˜{ˆ‚„ƒˆƒƒŠ•‹xŽ—Œƒ‹‘…ƒ•p|Šƒy•†|}‘Ÿ}}„Štƒ‡‹‹Ž…‘‡Ž”‘š‹Œ†ƒ–x†¢—ƒ…‡…ƒƒ~•†q”’¡ƒ‡ƒ‰‡„•ƒ‹Ž‹‹‚~~„’‡†‚…xƒ™‡‡†›Œ}—kˆˆ„‘‹Œ„ކ…Ї~•w‰©‚˜‘ƒ’”†‘•‚o…Œx„‡ ‹“ˆ‰ƒw“’}ˆ{Šˆ€‚‘‘’‘††††††††‡†††‡††‡†††††††††…††††††††††††††††††††…†††††††††††††††††††††‡††††††…††††††††††††††††††††††††††††††††††††††††††††††††††††…††††††††††…††††††††††††††††††††††††††‡†††††††††††††††††††††††…††††‡††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††ƒ‘rŽ—{x~ŠŠ‰…rŠ…p‰y|‡v‚Š“‚ˆ~z±v{ކކ‡ŠŠv€Œ„ƒƒ˜‹€Ž¤‚…ˆ‚ˆ~€}y“€€|’Œ‚~|zy‡†~‹}Žx|‹Šƒ€rŒƒ”v}~~†}…‹{Š•ŽƒŠ|…ƒ~ƒ‡~y†ˆ~‚p€~—~‚ŒŠwsjy}€€„‰ŠƒŒuws‚xz~}„p‰•stzƒ‰‹z…{ux}…‚|‚wv}u…|…x„|zˆ…~}u~{–ƒŠƒ‚€‚}|xoy{|ކ‚xt{nƒ~‡„‚vm€‰z‹†{„o}||ˆ|‚†††††††††††‡†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††††††††††††††††††…††††††††††††††††††††††…†††††††††††††††††‡††††††††…†††††††††††††††††††††††††††††††††††††††††††††††††††–‹x†‚ˆ{‹|ˆ‰€‹…qy…{Œ€ˆˆŽ’‚‡ƒv„nˆ†{…|v‹Š„‹‡‡‰“‹Š‘Œƒƒˆ}‡}…™~’ƒƒ•ˆˆ‘ˆˆ‹ˆ~‹›†€…„‰„ƒ–Œ…Žšƒ{}xtŒˆŽ}Šyƒ‚•‹‹‹Žt…ŒŒyƒ„‚‡ƒ…‡~€„‡{z–‡˜zˆ‡ˆ~‹’‰}ƒ‚Œ‚z‡‡}ˆ‡„…r{|‹ƒƒ…•ŽƒŠˆ{Š~†ˆ„‡†|‰‰ƒ†v…z‰‰‘„‚{Œƒ„‘ˆŒŠ„|ˆ~Ž€‡ƒˆ€…Š…ƒ€‡”Ž…‹Œˆ€„„‰}Œ‡ƒ~~‰Šz€ˆ†…‹}ˆ‰u‚‘‘‰‹~ŽŒƒƒƒ}‹Ž{‡‡ƒ›€‘ŠŠ‘Œˆœ’‘Š„“ˆ‡“ˆ‡ƒŽ’n‰Š—‹‘t„Š‹Œ€z‰‰Œ‘‹‡‚‰…‹ŒˆŒ}—i“‘‡‚€r€€‰Ÿuˆˆ•|„~„‰‚Œ‘‡Š……‹Š‡vˆ€†|‹ˆŽzŠ~‡†ƒ‡…p‹†Š“–…{‡‹ŒŠ„Œ„’‹‰‡Œ’ŽŽ€…Š‚…€†•‘‰Ž‡‹•І‡‡„‹‘‰ƒŽ‡ˆ‹”ƒƒ~‚‡…yƒ‰}’ƒ‰rŠ”…‡ˆ†–Œ‹‡Œ‰‡‘„Šˆ†“‡ˆ…ƒ‰p‰Œ‰•‰y‹ŒŒ‰‡‰‡…‹…‡†„…†††……ƒ…††‡ƒ…†ˆ‡†‡ˆ‡‰…††‡†‰„…†„ƒ‹†††ˆˆ‡„‡……‡„††„‡‹†ˆ‹…†‚†††…ƒƒˆ‡„†Šƒ†…„‡…‡‡‡‰†ƒ†…‡†††„†‰††„‡„††††ƒ…ˆ…†‡ˆ‚„…††‡‡†Š‡Š‹„‡„ˆ……‡„‡…„††‡„ˆ…ˆ†ˆ‡‰…‡††ˆ‡†‰„‡ˆ…†‰…ƒ‡„…„†„‡†ˆ‚„‡††„†Š††…Š„†„…Š…ƒ‡†…‹‡†ˆ„€…„‡†ƒ„…„†ˆ†‡‚………†ƒ†ƒ†…‚…ƒ‡†„†„…ˆ†‰„‡†ˆ„††‰ƒ…‰‡‡††Œ…†ˆ‡ˆ…t†~ƒv}„~€}‚‹ŠŒŽlsƒ}Š‘—€tŽŠ{zƒ¤r„…‚y}…Ž€‚ˆ…‰’„…˜Œwˆ}y‹Œ~uq}…Œ‡w‚‹†Ž|€ŽŠ†z’}’‰…|„‡ƒm”Šr€‚’ws“Š‹„†‚}|Šƒt~z…‚„Š€…{ˆz†Œ€{‚j‰’‹…€|x•‰|xs„€Žxx~…‹u|…x€ŽŠ…†}Šƒ~v}Œ€‰}}‚‡}ˆŒƒ{ƒ†xƒ‡ƒ€‡„{‡…ˆ†‹‚|~}…}Œz}ƒ‚Іu~ƒŒ‚€€„‰xvŽ‚{}~„†‰|ˆ~…ˆ‚„–ˆ‰~ˆ•Šs‡‰‰ƒˆvr‹ƒ•„‰Œ‡‡ˆ’Ž‚’ˆsl•w™Œ‹ƒ„zŠˆ††‹~˜y„Œ„‹Œ}w{‰Œ‚…ˆ‹Œ‹‡‘‹y•‹Œ|’Š}‰‰’ŠŽ‚{‹‡~’{ˆŒz€ŠvŽ‚†ˆ‹†‡€”€–‡‡‹Ž†‰‚ˆ…„‰‡Œ‡Œƒƒ•‹ŒŽ‹•€”‰‚†“‹‰‚‰—zˆŠ‘Œ†ˆ…‚…މ‚š„Ž‹~‡Š}‘„„|‹‡ƒƒŠ’ˆ‚„ˆ†}‰ŽˆŒ~’‡†„‹„ŽŠ‡‹ˆŒ„{Œ”~„†Œ‡ƒ|‹ˆ“€˜“‡Ž€ˆ‹ƒ˜’•ŒŠ˜•rƒ„€Š‘ƒ„‘‡||‰rx…‘–ˆ‰Œ‘‘ƒ˜‚ˆrožxz†‚“‚•Š›x…‹‘˜‚Šz˜o…ˆŒ„‚ŽŠ‰‚€†‹Ž‚…Œˆ vš„•ŽŠ‰Œ’tƒzy•…‘v}–r~Šx……Œˆ”‚Œ„™„•’‰Ž|‚›„…‰†ŠŒ‹‘€zœ•†v™“œ‚†‡~•ƒ‚‰ƒˆ‘‘’†‰}‰ƒ‹…š„€{›Š†‰Œ~‘„}™z€Œ‚‰‹†‹ŒŠz‹ˆ•~€ƒ§ƒ‹…„‡Œˆ’šˆ€‚}w„„–‘ˆ}xƒqœ€‡€†—„ƒž„†z}Œ~„“†ƒŠ}ƒ„puƒ„•†Š„‚•…‚€vk{x˜‘‘ƒŽŠŽwˆ‡Ž‡•‚}“z†Š‰ƒ‡…€‰•}†‡~‡”‹‹~‹‡zž‘‡Œ‚’•€–„‹’}Ž‚…‰˜{‚’Žy†ƒv~ˆ††Žˆ|ˆ‡—……ˆ€‰…“€Š}ˆ‰„„˜~œŠˆ†—•t•‰ƒ„‡–ƒ…‰‡ˆ‚•†ˆ†}‡ˆŠ‰ŒyŒ‚‘ƒƒŽ{”‚‰„…‰’ˆw‡ˆ‡€ˆ‰ˆ‘‹—|Œƒ„†ŽƒŠˆ…އ{}†–Šƒ†“†‚Žy…xކƒ‘|†‚…”†‰–Ž”‚yx“‡‚x„€|‰qs‰Š”…š“Ž“ƒŠ“zm†y†•“Ž‚zŒˆ“‹”‘}•|ˆ‡Ž…š€‹‹x†Š‰Ž†‰Œ‹Š‰‹†y““Šކ|‹‘‹ˆ˜€€„‡{”‘}†Œ……yˆ„xŒ‹ŽŽŒ•„–€‰‡•Ž’†„{‰Œ‹ˆ‡Š—Œ„xŽ”n—•Œ€“†y‚’Œ„ˆ‰ŒŠ€‡„‘‚{“†ŠŠ‰‘ƒ„“ˆ…~‡~{|“”ˆ†Šƒ…–…’ˆ•‘y‰‘ˆ‹†‹‰‚ŒŒˆŒ‹|‹…€€‹ˆ‡z—‰‹sƒ‰~Ž’’‘ˆ‹Š}‚”‚„‹Ž|‹}ˆ—ƒ…nz‹Š‰~š–ƒ|“Œ†ˆ~ˆm…zˆƒ‚“Œ}Œ‚†……‹Œ€’‰‡“‰x”‡„”‚›‹–†Žz˜Š…†‡ˆ|‘“І€‡ƒv‘•…ˆŽ‰Š„‰z†}††~Љy—‰„•‰xŠƒmŽwŒƒ~‡’xqw“™‡ˆzƒ~ƒ‘wŽˆ|}ˆˆŠ|ˆ‡{z‡…’އx‚’‚Š“…‰Šx“„q‚y›‡~‡‚wd„‰‚‹›Š‡Œ…„sp‡ˆ™€ˆ|Ž~†~vƒ‚Œ–v~~ƒŠˆ{‡€~ŠŽ„‚’‰„…ˆ~‰…’‘‡}€‡‰€‰›Š’z†‹†‚†ƒzŽˆ•’’‹•†‰’‘€„€‰“ˆ†ˆy~‡†m’”‰‰‰„ŒnŽ‚‰|’—‡“†“…‡€Œ‘’‹Œx˜Žg“†…q’††€y‚u‚†Œ|ˆ‘†ˆ‘‘†„‹†ƒys“›‹|Œ‡„†‰”ƒ~Ž„ƒŽ„‰~ˆ‡‰†Š™ˆ|ƒ“‘‡…‹†ˆ‹‘ˆy†Ž€“ƒpƒ’‚‚…•Œ…™„‹Žƒ‚{‰ˆ†”ƒŠˆŠ…Œx‹‹‰†…r“†—‚‡‚”…‹ŠˆŠ‘”†•‚“ƒ”•މo†”Œ…Žy’„•‘…ŽˆŠŒ‰ŠƒŠ‡‚……ˆ‡†|‰‡‡„Š‘ˆ†ƒŠ…‡ˆŽƒ„‡ˆ…}††ˆ}„€ˆˆ‘‹†’‰ˆ‰ƒ‰†‰‡†Ž†††„ˆ“Ї…†ƒŒƒ…‰†Š‚{‰‰ˆ‹ˆ„…‚‚„‚†€…‹}ƒ‚…†‡ŠŠ„’„~‡‚„ƒ‘”ƒ„†ˆ‰ƒŠ‡Œ†ˆ…ˆŒ„‰…‰‡€‚ˆ‹Ž~ˆ…‚…‚‰‡‡‚ƒ…‚ˆ…Ž„‰}‹…ˆ„„€€ˆ‚‡ƒŠˆ{†…‰…}…‚‰ƒ‡„‚ˆŒƒz†‡……Ž„~w‚~‰ˆ‡†Žƒ€‚‹ƒ†‚„„yˆ†††‰‰†ˆ‰ƒˆ†‚„ˆŒŠŽ~†Œ…‰}‰€‡…„w‹|}v…„x¢~„}ƒ‰Œm{ƒƒ‚€„‚”Œ~ˆƒ†zn³xŒ‰{†’w|œŒ…‰€ˆ“’ˆ‚†„r‡‚~}ƒ…r‘’‚ƒ‡€…Ž„~…}Ž~w{u{|‚x‡xx‹pv~‚u‰™Œ‹‚‹}ƒˆsƒ„‹}}‡}‡„|€€Œu€ˆ^‰‰•„~zcu‰~‰utv„umz…‘t|‚|‡|}€~ˆƒŠ}wvˆxxŠw€y‡|‚}‚xv}Žx‚w€|tz}€ŠzŠˆ~€}wv{˜v|‚r‡xy„y}‚€ƒ|†ƒ€x‹mwz††‡ƒz‡ƒzp€Œ~€††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††…‡ƒ…††……ˆ††„‰……†††„†††……‡…†ˆ‡‡…‡†††††…‡‡ˆ†…‡‡†††‡…‡…††…†‡††ˆ††††……†…ˆ‡††‡††‡†††„†††††…ˆ†……†…‡‡„…††‡†††‡„†‡†††‡‡‡††††‡…††‡†††…‡„††††…†‡‡†††‡‡ˆ…††‡…†††‡††…††††††…††„†‡††……‡†††…ˆ‡†…‡††††‡†††‡††‡‡…††…‡…†‡……††††‡……†‡††‡…†……‡…†‡††††…ˆ…………†††‡ˆ††‡ˆ††††††††††„†~{‹{{…~‹‡ƒr‚‚„‰j|ˆ~ƒ‘‡ƒ‡‰“{}~ªr„‡€ˆ|‰›~t}ŠŒŒ’‹”{ˆ„|ˆ‡|Œ{wy€„šˆ†|‡…}‡‡~}€z†}ŒzˆŒ†~…}Šmz€†v~Œ„w„„{Œ…€€y}‹‡„‡„†ˆ‚‹{zƒ’p{Švhz‚ˆŠ‡ur†{{‚Œs~ƒ‰zuz€~uuŒƒv€‚‹‹Švu„‚}„„vv„‘z‹†~†}qŒo‡‚}‰ƒ~‡‰{”~€yyz•…Žy|u‚y…{w|z†€€€€…‹xŽqu|’„„…ru‚ˆ|uŒ‚€„Ÿ‡}†ŽŽ~ˆ’w€””…†‚wq‡x—†‰Œ„†”’‰ml™€x–“‡€|‰“€†€‹‡”ƒ€—{ˆ‰Ž{ˆ…„ƒ’|“‰ŽŠ†‰‰‚”‹}Ÿ“‹‰†ˆ€†ŽŽŠŒŒx‰††“}“ˆ{Œv‰…ƒ…‹Œ…{ˆŠ•}„’€‡ˆƒ‰„‹…Ž‹„Œ‹‹{¡ˆŒ“„‡˜™†ƒˆ—‹…ŒˆŠŒƒ‹s}‚‘Œ‡ˆŽ’ƒˆ„†{{’‹}€Œ{|ŠƒŠ’…~‹‚‚‡’‹˜‹Ž}”wŽ‹‰y‰ŠŒ‰†‰ƒŒ”‹…‡•ƒ‘x‚’z“‡“x~‚’~œŒ–ˆ~™~†}š‰‚Œzˆ‰zx–}ˆ€†Œ‹Œ}€‡…‚|¨w„Œ‰†‡’•s„Œ…’z‘‡‹‡ƒ‡‡†pj“€Šz“Žp‹›ˆ’‚zn…„›Œ‚t~‚ž‰‡ˆ ކ‚†„„Ž™‚|t|‡…Œ‡‚vŒ£Œy‹Œ”Šx‹}ƒxŠ‘˜r…’vqŒ‡‰~†xˆ}“‘s‹‘‘Ž}…‡Œ‘„~‹z}€‹ˆ|…ƒ†„z†‚ƒ|y{{€Œ‘ˆŒ†‰{ƒ†|Ž’|€yƒ™Œ™…„…‡Š…‚Šˆ™’‰„‰z†‰r”†t•’™…ƒ‚…{ˆ‘ŠŠ~‡ƒ‹pg˜Žˆ‚z†ƒˆv††{m„ˆ‡ˆŒˆ‹”ƒ‚“‹}t‡„s‰}‡‰v•wn…Œ‰“‚„Œ‡Šn…{…ƒ†}¤€o~™œˆ‚Ž’ ˆ‹Ž–‹tˆ~~‡‚Œˆƒ”–ƒr|ƒŠ‘v—‰”s|{xƒŒ–‚†ˆ™†}‡‚ŽŠxšq|t’‹‡Š‰†’…•’{~–—‰„…xƒ“‹ž‡‡{¢z™”Œz‡’‹œs›“‡Œ—”xŠŠ€€‡’|‰Ž}x‘‡x„ †‰€ €•‡€†}ˆŒ~Љ ‹}ƒ”ˆ€žœ‡~ƒ†ƒ…vŠu€|x•Žˆ†‹s’†w„‚‰†‡•}—{{†€v†Ž‹‡x‡ut‡Žƒ‹‚ƒ…‘—†‘Œzm’|y‹‹‹‹•‚Œw‰Š–‰–„€“sƒƒ”‰‚ˆ|ƒ†€Š„€ŠˆyІ“¢wŠ›€’žˆŒŽ”z}~~y–}Ž|ˆ‹†…{ˆ‹xŒ‹ˆ‡ƒ‡‹‚˜‹‘ˆŒ€t’ƒŠ‘„‰…Ž„€—‹•Œƒ—•‡€{šŽƒŠ‹…Œ„‡†{‚’‹‹Œ‘}‰†‰ˆ‚…Š•„–‹}‚‹€‹‚‚ƒ€v‡ˆ‚‰’ˆ‹‰‘~—|„–„Œ‡Œƒš’Š“€–x€…‰€†|‹‘‚”›…ƒw€Ž›††Š…™ƒ…u—‡”z‡Œ{…twЉ€ˆ‰ŠŽ‰Š‰‚wl‡|w‘”މ€ŒŒzˆ†’Ž‘‚˜{‘…Œƒ’‹€Œ–‚އ‰„ƒ„‹Žˆzu˜‘ŒŠ{ˆ€‰“–Š˜Š|‚„}ˆ•x“‹‡|y€wŒ‚Љ’}‘ˆ”ƒ‡‰„ƒ„ƒ~„}ŠŒ‡‡…ƒ”Ž€{†’’}š’{„”ŒƒŠ„‚ƒ‰†€‚…—Š„‚’†ˆˆŠ‰€Ž‡…ƒ{ƒt“އ‹‡}„Š}“w€’…}Œ‚‚ŽˆŠ€€{Ž‚’„~ˆ}Ї“ˆˆŒ~uƒŠ„•”ˆ’’||y…y{…‡…Ї}~z€z~‚Œ‰Œ‰ˆ{ƒ‰ƒz¬€‰„ŽŒ|Ž‹~ˆv˜‚|ƒ“¢Œ‹–{‹‡‰Š†‡~Ž…z{wƒ†Š„zƒ||…‚q†ƒv†s‚‡˜ˆ‚~z{‹wu…xn‚xx€vˆƒŒ†„‰‹Š„…„‡†|‚ƒ€ˆxŒ†zi—“‰{~q‘Šx‰z}v†””uvxw…‚z|†…xƒ€„€‚{‘‚~s…€ƒ{‚”|‡‚Œ~…Š|z‚~ƒpƒŽ…xy}„„y‚‹€š~€t†y‘‚}‡|„y‚„{„‚І‚ˆyz|‚{‡‚i€{‚v‰ˆŽ‹uŠ“”„†Œ‹ŒŽ}„~‹‹Œˆ‘„{‡~†…›”—’——ŽŠ‡•‹‰‚‚ƒˆŽl˜Œ‹Ž•†Žs‡•‰Œ‡ŽŽ•‹„†Š†s‰w”gŒ‘ŠŠq‹„‰–z„tŽ‘|ˆŽ~‡‡‰’‡…€Œ‹‹‚ˆ€tŒ’‹|“ŒƒŠƒŠŒ~ˆ†…ˆv†ˆˆ…–™Š‘†~Žˆ”…‘‰ˆ‰ŒŠ‹’ˆŒ€…‡„•ŠŠ‰…‰–Œˆ…†ŠŠŠ‘ƒz„‹‹ˆ†Š‚‡Œ‘‡Š~qŽ‹ˆ‡‚“Œƒ†ŽŒŒˆˆ’†ˆˆ‡ŒŠ†nŒ”†ƒxƒ‹ƒ‡†ŠŠ‚‰ƒˆ‡‹‡}ƒ‚‚ˆ‹†‰†{ˆ‹‚•†…‹‹‡‡“‰‰‚~}Œ‰”†‰Œ‡wމЇˆˆˆ‡˜‡‹‡†‹’‹„}Š~‡‹‰Œˆ‚Šu…„‹‹zƒ‰‰ˆ€–}‚ƒ€‰Ž}…‰€€Š‡{€‡‰†ˆ‚~ƒ€‹‡‡†|‡…‚ˆˆ“††‹}Š„…‚„ˆˆ‡†…‡ƒ€’Žˆ‚‡‘…‡†ŠŠ‰Š†Š‡‡„Š…‰‡‹†}ˆƒ‰ŠŠ€‡‚…Ž‚…†Œ€„qˆŒ…ŠŠ„І{†„ˆ„‰ƒ‹›~„ˆ‹…‹‘†…Œ†‡‰Š‰‚…z‹‡Š‰‡Š‚†ƒ‘’‰ƒ‡~“ŽƒŠ‚ˆ€~‡Ž†‡Žƒ{”ˆ{ ˆ“މ–„‡œ’Š•†“‹“†Œ‰Šl’“‹tz‡‡‹ˆŠŠ–‘……‹Œ‹”‹Œ‹w•gއ‰‹q„‚‰–zu„Œ‡’|‡†’•†vŠ‘„ƒuŽ…‰{‡Œ„‹†~‡ˆ‰ƒ†‹oŠŽ…Їœˆ†ywƒ“—‡‰‡‘›‹†ˆŒ…”y…І†™ƒ’†•Œ†’‹‚Š€…~‹ˆ„†‚†ŒŽˆz‹Ž“‘‹†Šq‹Ž“‚Ї˜Š‚‡‰‚‚•‡‹Ž‘‰‡ˆ…~n‰Ž‰ŠxŽ„‘Š“…’…u–ŠŠ—zŒŒˆ„‹ps…‡Šˆ‰Žˆ‡‘‡~“mƒ{’„‹…„…”“…Ї~‘‡„Œ’†€r{‡Šˆ—‡ŒŒ†€‚ƒ{Š‘†‘‡ƒ|Œ‹‰…ˆvЉz†„|Žy‡‡†Œ‰†‘€‹{€x•‡Ž†zŒŠy{Šƒ‘†~‰}€‘†yw„އxŠˆ…z†‘…zˆx„Іޑ‚~†‰‡™|~{”xˆ€†zx“|ŒˆŽ}€|‹~Š|…wˆ›†‹…y’‰…ƒ„€€‚‚Œ}u‰Œ‰Œ€’‘…ƒ‰‚’‹ˆ‡ˆˆŠ‡…‰…†‰‡Œ‹‰‡……‰ˆ‰†…‡†ˆ…ˆ‚†„„ˆˆ†„ˆŠ…ˆ‡ƒ‡††‰‡ˆˆ††ƒ‰‡‹††ˆƒƒ‡‰‚Œ‚†ˆ…Š‹…‡‹€‰‰‰‡ˆ†…„„‚…‡‰zƒ„‡Šƒ†ƒ„‡‡„ˆ…ˆ‰†‰}‡Ž„ŠŠ‹‹‰€†„‹Š‚……„„‰††ƒˆ‚„…‡„|…€‡Š†„†ˆƒ{†„‡‰‚‹…ƒ‡‰ƒ}‡‡Ž‚‰~y€……ŠƒŽ„Ž‚‡Š‚ŽƒŒ‰…†‰ˆ†|‰~‰ƒ‘‰ƒ……“‚†„‹‚Šƒˆƒ‰‡Œ…ƒˆ€…Œ‰‚ˆˆ…†Œ’ƒƒ†ƒ~‡‡ƒ‰‰…ЇЂЂy„Ž“‡‘†‰‹|€Š‰ŽŽu•†|‘„†‰š…–Œ‹Š‡—‹‹‹~”‰‡Œˆ‰‚Œl–‹““tŒ‚‰…–Œ‰†…~†’ƒ‹Š›’z••iŽ“ƒƒq‹‰ €Šu~‹‚‘{‡ˆˆŒ’€‹|Œ‰ˆ‰ƒ~v†Š{„Œ„z|ˆ€”‹ƒƒ„ˆ†‘–“‰z…Š•‹ƒ‚ƒ…‡Œ‰‹ŽŒ‰ŽzˆŽ€‰†€ƒ–‘Љ‰—‡ˆ}ƒˆŽ•…ˆ‹†”„w…‘‚„ƒ‚Œ†q†…Œ…“Œ‘‚‘†“ЖЉ…‹‹†‘ˆŽ‰nŠ‹š‡“zŠ€Œ…†‹…’‡ˆ€‰…†’‹œyœ}Š™’Šƒ“ŽŠ„‡‰‡{¡w„ˆl†‘}}‡“|•ˆŒˆƒ„ƒ‰†zƒƒ}”~„€pކ…—‰nŒr›‹y…†’•ˆ€„‡ƒŒƒ†~ƒ…ˆ’‚€…z|„‰z„uƒ‘‰…‡“Žp€„„ˆ~ˆ•Ž…“ˆ‚”š€Š™mŠƒ„ƒ‡œ‹‹€•‡‹€|~ˆ‡€‡{”ƒ‡—ˆ‹ƒ}’Šƒv‚„‚ƒ}‡‘{Š’€‰‡z„Šˆ ™†…ƒ~ƒ›†…†’„‰š}‰‡ƒ™”‡ƒ‰„„ˆz‡‚xŽy‘£‰{‚Œ‚€Œx“|‹š‡ƒ}x–‡™‹wƒ‡…‡€„rt†~–…„ˆ‰‡…•Œ†ŠqlŽx‹~Ž’xˆ‰Š”~–ˆŒŒ~‘†‡•‘‡‘…Œ‰‚Žˆ|–’‰Ž}‰–‰†”‰ƒ‚ŒŠ•x‡‰‡yƒ‡w‘ˆˆˆ{Œˆ‘|ŠŒ‚‡‡Œ~…{Œ‡‚‹ƒ›Œ††|—•{–ŒŒ„†ŠŽ“~‘‡zŠŽ‰†ƒ„‰„„Žƒw’w‰„~‘‰|Ž|{ƒˆ„‘“Œ‚‡…Œz„‹†’ˆ’}Ž|}Œ„…‰’…„€…•†ƒ‘†…”…Œˆ{‘„‹„~Œƒ™ŠŒ–“ƒ‡…ž~ˆ‚‘„€…ƒœŽ‹‹}ƒ˜€~‹x|”“Ž…‚“”v†zƒvue‘•…˜ƒ~¦x…—†‚Œ‹‹‚b‰‡”†‚Ž…‡“}±X’\o”’–¾‰~z•…}Žo“€{€˜…‹}wŒzy… ~„v}Ž˜¥™‰ƒ–šˆˆmŒŽˆ˜…Z’”ƒ‡ƒƒg†‡˜”‡“tˆ†š”‚ ~ŠŽxƒsyƒ€›Œw”~ˆ|„i‰_Ž‹Žš}“‹js‚Œ¨ƒ^ž‡ƒ¨••o˜ƒƒ}ˆ†™…|‰w‡ˆk“¡ƒvzž‡m„“–‚ˆ›”Š¢s’pi‚ƒqƒ”‡{ª†††††††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††…††††††††††††††‡††††††…†††…†††††††††††††††††††††‡†††††††‡†††††…††…†††††††††††††…†††††††††††††††††‡…††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡†††††‡†††††††…†††††††††“‚ŠŒu‰•‘ƒŠ‰Žˆ~…€ˆ’Œ„‹ƒ{…„Š{œ€ŽŒ‰ŠˆŒœ““‰Ž€‘Œ…ƒŒŽŠŽl’ŒŽŒ“ˆŒuƒ’†Ž††‡ƒŽ’…ˆ‹‡“Ž‹v‰yŽi‰‘†Šq‚…‰|u‚‡’|ˆ‚„ˆˆ†„…ŠŠ‹‘‰‰€wŒ„Œ{‹‡‰‡…}ƒ„|…†}ŠŠˆŠ–‹›Œ…zЉ…Š……ƒ‘‹‰Š’‰‹„‡Œ„‰“‹‰Š’–‡‰†‹†Š†‘‹„Œ‹‹‰††}‡‡‹ƒ‡Œ…Ž……qŒ‘†ˆ‡ƒ’†‰‰Š‡ŠŒ†…އ†‹……n‰Š†”Œw‡‰Š„‹€’‚†„}‚x‡ŽŽ|‡Œ‰yxu‰†“Ž…‹Š†’€‘‹‡s–‚{‚Š}…‚}Œˆ•—ˆ…–ƒ‘€‹Œ…pŠ‹„…†‰‘|‹ƒ’‚‡”y…†‰|‡„~‘‹Œ‹„z{‰ƒŠu‹Ž†v’x‰}ŒŠ‰ƒ“ˆˆ”…‹‹…z‰‰€‚ƒ“z‡ˆ…Œ’€Œ”’ƒ‹‰’}€–…€~‘ˆ|sŒƒ…ˆŽ{ƒ„ƒŠzŒ†“Š~ˆ‚~ƒ‚¦ƒ…{‡Ž‚u…‡…Š•”„ˆŒ‹‚€~”Ї~ˆƒŒ‡ˆ†v|‚‚ˆ…}‡ƒ…Œ}‡z˜„‡Š|†‹†”‹–•‡”ƒt~‰}Љ‚І†‰u‹ty†‘…Œ„“„Œ‡‰xnu{†Žˆ“†˜y‘Š„•{’|–r…ƒˆ”‰}„†Š…‚}…ŽŒ‰‹˜o“ŠŒŽ}Ž‘‰ˆ˜v{’„ŒŒ‡…„wˆ†‡Œ‰‡‰†‘‡ŒŠŒŒ†‚ƒ’{Š‹’‚އƒ„‡“}‡”…s™…{’Šˆ…„ƒŠŠ„‚‚ˆˆˆ„”Š„ƒŒ‚€‚~–w…‹†ƒ‰Š‘€‰‹†ŠŠŽ€“€†€’‹‚™Š‹™‰wŠ„{‚‰‘މ†•‡yš•~Œ‹}ˆ‡„€…‘’Ž‹…~€‰ŒŽ‚‹‹ˆ„‹††……zŠŠ–‘“Ž–„Œ“‹ƒ€v„“’‰|„ƒ‚†ˆl–‘‰††ƒq‰‡…ކ‘‡’~ˆ†Šƒ“Ž–y›h–†’ˆ…q…ŠŠ‚‡uއ|Ž‹’ƒƒ“‡Š„u‰‰‚zu‹–‰|…Œ†“‰}‰‡{„‘{‚……‚–„‘‚}|„Ž‘|‰Žˆ‰‘„v‡Œ„‚–€x‡‚„‡“††ˆ”‰„”‚…ˆ…‚€€‰†…€ŽƒŒ‹…Ž‹~ŠŠ‚€ŒrŒŽ…‹†—ŠŒ‘‹ˆ’†Ž~’ƒ“‹o…Ž‹ŠŽŠy€“‰~‘ŒŽt‡—•ˆ†ŽŽˆ{ЀВ€Œ…}„|ˆšŠ’‹ŠŠŒŠ˜‘•‰”}“‡†‰ƒ‰ˆ‹‘l•‰Œ•ˆuŠ—ˆƒ…ˆŽ’…€ˆŽ‡ŒŠwŽyiŒŽ‡‹q†ˆ‹Ÿ~‚u€‹„{Š|……‘~……–Œ‹vކŒ{‹‹ˆŽ}„„–|„‚}‰‰„‰•Ž˜“ŒˆzŒ”Œ‰ˆˆ‚…‘‰†‚—Œ€‡Œ‹„ˆ€†‹Š‡—ˆ„Š‰ŠŠ”ˆ“މВ†…ˆƒ…Šƒ‰w‡qŒ‚‹†‚“†ˆ‹‹ˆ‹‘Š„…ŽŽ†‹„‹†n…–|yŠ‚‡‡…ƒˆ}}~ˆ„{ŠŒ|ˆ€~‚…Œpz…„ƒŠ‹‡€Œˆ„~”r„‡}Œˆƒ€„ƒŽ€‰‘‡|Љ€„‰€}~vŠ“‘„ЉЇ|‚|ƒŒ‡€’І„„’€‚„s‘‰ƒv}Šyx‰‘„‚‘Šˆ}„vz†ƒŠˆ‹€„w—z…„…„ƒlz’ŒŽ‰zŠ“„v€ty‡‘}||‘u†€ˆˆ‚ƒ‚~ƒŠ„~‰u{x|~‰††‰Žw}sŒƒˆ{”€{…{Š€‡†y†‚†‡}€€Š†‰‡…•€Œ††‹€†ˆ‚~Іz…„€|Їt~Ž‚~Ž‚qj‘tw†…{‰v‘”qs‚z›’ˆ„„w‚‘„o„–z“„‰Š€‰–‡„†£‘x}„’„œƒ‰~¡‡u˜š“˜~f{|‘‘‹†p}‡v„}•Š„’Š€w–‹wxpŠxmor}a{˜‹oŒ{†}‹„{‡Œuމ{†¡‘€„‘{pgqv{~‰ˆ•™ve€}w’©yu„{ƒ}cŠ¥g|||yƒy„…Žr†{€ƒƒ„€{‡“•vxsoœ|¬{ƒypˆ„o‚€„Š„‘‚›s‚w‚ž”ˆ•yƒ}ˆ‰‰€t™™|’z}„‚›y†`†ƒ‡Š‡‡‰‰†‰‡…ƒ„‚…‡„‹†„‡„‡…‡„‚…‡ƒˆ„ˆ‡‡†…„ˆ‡†‹…Šˆ‰†…‡‡…†ƒŠ†‰ˆŠƒˆ†€†‚†‰‰†‡†‡ƒ‹…‹†ˆ…ˆ‡……†‰ƒ††…Œ„†„ˆ………†‰ˆ†……‡†Œ……€‰…„„„‡ˆ…І„„„†…‡ˆ‚‚‚‰ˆ†ƒ‡†‰‡ƒ‡y‡†…ކ‡ˆ†…Œ‰‚‚ˆ‰†„€†‰‡…‡‰„‡ˆ‡‡……„ˆ„…ˆ…‡„‡†„‚‚Š€„†Ž†‡Œ……ƒ…‡‡ˆ†ƒ†††ŠŠ„…ƒ„ˆ†…ˆ‚Šˆ„‡†‚‚‰„‚Œ„†ˆ‡Š‰ˆ„†„Š~ƒˆ„ƒ…ƒˆƒ‡„Šuy‹xŠzw{~‰„†r‘Ž„ƒmŠ…šxv‡“‡ƒ‘wzq¯xxЉ~‡ƒt…šƒˆ—~Ÿz}ˆŽ…€„†“|~~„›h†{z€ŒŠ†|Œz”y|Ž€wa”—ry|†|Z‰‹‰x‘‚}„€ˆ~~ƒŒ~†w|”}~’}w{`‚yŽov{‘{‹z…xr”‹zˆ~n€€ns™’r€|‡Œ†‡Žvuqx|†}ty{‚ˆ”}„y|zŠš{}‚b~wŒu—y‡o{{ˆv–z}ww‰Œ…}wyy{ˆ€€‰„„y‡ƒ~~{m†‚w||‹ywy†‚y„“†{€Œ€~–މ‰‰ŠƒoqŒ••€Š”—ˆv–‡ƒŠ„†jއy˜†„†‘†€‚‹ˆŽˆŽŠ|އ†“€‡zy•ŽŽƒ“‰†ˆw‘‚—“ƒŒ}‹‚†…ƒ‰Š‹—†‚{€ˆ™{wˆŠx…Œx“‚‘’‡‰|„ŽsŠƒˆ†…„–Ž„{|Š“y‘†y‚”~|~†–‘~x‹‘Ž‹…€‡…„Šz‰ŠŒ}ƒŽˆyx‡…—‹z‹˜‚j‰v{Š¡†‚|x‹~Ž”‡|t‚Œ‡Ž~†}‰„ƒŽ~z‹†‡…„u•z…x‹ux’‡”ƒ€…~Œ‹ˆ•Š–Œ‡‹‰„„„_~‡‡‡‚‡‡…††~’Š”‘‘‚ƒ}~{‚’Ї”¥ƒ€“’…€‰‡†Š…xˆ‡{„„ƒ“Ž}o‚l|‹„…²€}–‘Šˆ†trŠ™…€y‡Š}zx•€}|k¡–š‡~€‘ƒ€…Іƒo~‰z…„…ˆŽq|Ž‘Œ}Ž‘Œ‘Š—†…’˜‚~„ƒi†€™zy„š‚‡z‹‹}oŒ‰œŽƒ‚z~‰„†z’ŒŠ~Œ‚„ˆ‚ˆ¡€|†„‡‘~‰‡“–Š}‰ˆ‚…’€v~—‘“†‡~“~ˆŒ†v}ƒŽty…¢„£‡……ˆ‡‡‡†‡…„…‡†ˆˆ†…†…†„†…†……ˆ‡…‡‡‡…††……†‡††ˆ…‡‡†…„‡‰††ˆ……†„‡ˆ‡Š‰„†‡ˆ……†ˆ†…‹†„‡‡……І†ˆ‡…‡…†‡‡ˆ„…†…ˆ‡………†…‡††ƒƒ…‚‡…‹‡‡„††‡†…ˆ‚‡…‡‡……†‡‡†‡‰‹ˆ…†…„‡‡‡†ˆ‡†‡†……„„…ƒ…‰‡‹ˆ†……†„…††……„††‰„††††‡†…†‡„‡‡†‡…†ƒˆ†‡†‡†„†…ˆ†‡‡†‚†‡†‡‡ˆ„†‡††……†‡…††„‡†††…††‡††ˆ‡………†‰††Š…††…„†‡…††‰‹xŠ‘“†ƒ†Š‰€‚~€ŠˆŠ‰Ž‡zЇƒ‡™—•Ž–‚Ž–Œ‰…p‡”‰‡‚‚Œm‘Ž‹‹†vІޒ’ƒŽ™‡‡†‡†Œ†Œ|˜•h‹ŠqŠƒŠ–~‹u€…|ˆ“~„„Œ•Œ„‚ˆ‰‡vˆ’|Ž…‰‰Œ}Šˆ…ƒŒz…ˆ‡‚‘‰˜ŠŽ†|ˆˆ–‹„ƒˆ‹„އˆ‹‚ˆŽ†ƒy…Œ‰…‡•…ˆ„‰Š‹Ž…ƒˆ‚Š‚ˆ‘Œ‡“}ŠŠŒŽ…|ƒƒrŽŒ…‰„”†‹’ŽŒƒ•‡‹‡Œ‰‡‚o‰”‰‹Š‹z~‹–††‡†††…††…‡…†‡ˆ„‡†††‡†‡‡……‡††‡††††…†…††††…†††‡‡††„……†††††…‡‡†‡‡†ˆ†††‡†††††„……†…†‡‡‡‡‡‡†…„‡…‡…„†…‡‡†††ˆ‡†††…„‡†‡†‡†‡…†…†††‡……††……††‡†††…‡ˆ…†††ˆ‡…‡„†‡„‡††ˆ†………„†…‰††‡‡††…ˆ††…†ˆ†‡†‡†‡†ˆ††††‡„††††††‡‡…ˆ‡††‡†‡†„†……„††„…‡†††ˆ………†……†…ˆ„††ˆ„‡ƒ††‡†„‡††‡……‡…†††††„…†€Ž‚{r–{}Š“€—‡ŒŽpr—u‡‡…•‘‡š{’Žƒ˜y”{ƒ†„€|Ž”‰„ˆƒ‡†’ˆ’‘€ŒŽƒˆ€‡pu–‹yˆ„•‰ˆ…}~}q}ƒ“”xŽ~„Œ„ˆx‰xˆ‚Š‹…„„ˆ†|„z†zŽŽƒ†…އƒ}†…z”ˆt{‚‡vŒŽ‡‡‘Ž„‚‡Ž‡qˆ{w•œ{ˆ‚‰’ƒ˜}{y~…ŒzŽ—Švƒ‚~‡w†wuy‚Œw‚h”ˆƒ—ˆ‡‰€›~€s‚‡‚‚’Ž–Œ}„‹š‚ƒ†~™z˜Š„zƒ†ƒ‡|~u‡šv€ˆ–|ŒŠ†}‡Œ|Šxƒ‹„‰‚€„}„…‘oŽŠŸ†ˆnv‰“ƒv‰‘‘…”Š€†mŒƒz‹‡zŠ~‡‰€‰Œ{’€‡‹|”—zs˜{‹ˆ†ˆŒ~Œ‹ˆ„’’‚‡~‘…€ˆ‹Š‹yz…Œw‡x‰t†‡‹†w‹†‹‡‡‰zŒ‰„v‡Šˆ}|ƒ……}‹Œt‚‡…ކƒŒ‚‰ŠyyŽ}„‰ƒ†}„†’~„‡Ž“†€‡Œ‚~„‹€„Š‚ƒ‘y‰{‡~u„ˆ‘†Ž‹’z|…ž„‡}z€ŠwŽˆ‰yŠŠ‚ƒ}‰sŠŒ€|‰Œ‚€‹toŽˆœ~}}…Š}‘ދދˆ€ƒy‰~Š’‚}†}†…|‡pwƒ“‰„„‹’ˆ”Š„ˆƒ—p†‚|…~‘‰ƒ‡…‚“„ŽŒ‡ŒŽ…‰Š„Š„ˆˆ˜Ž„ƒ„†ƒ†‚…wŠ‹…“Œ…~Š’†|€Ž‹„x‚„|‚ŒŠ”„‹|’|ƒˆzŽ‹„Œ…Ї†~—“u~ˆ‚†x|}ŒŒ‡…Šx‰‰{~z‹‹}~‘‰rˆ…‹’“|€…‡ˆ‰‰˜‹„†zyr~‘…x~…}zkƒ‚x…š‡†…‰x„Š‹‚Šƒy~ƒ}Š‚Ž}ƒ€‰‹‹{‚‰Š|ˆ‰}…”—…|„‡†‰†ƒ„…‰Š†Št‡ˆ„Ž•“Š“Œ„„ˆwu„Œ”……‘z‹…”mn{w‹ƒ‡Ž…ŠŽw‡‹†ŽƒŠv™€‰Œ~”މ’}Œ’…—‰Šˆ›ˆ‘†…z–‹Œ’z…€~Љ†‘‚ˆ~„Ž|‚œwzx“v†ƒ“‰ŠŒ€–’‚–—„‰‰‰‡€n˜ŠƒŠ‰‹—•‹–…†~‡œ“ˆ‰‰”’€„‘‰ŒƒŒ~•ƒ‹†…‰‡‰Ž•„€–}…’ƒ‚–„ƒ‡†ƒ…މˆŒ„‡ˆ‰†Œ…‘~†|ƒ¥‰‹†…Š}…Š’‡Œ‰‡†ˆ†’Š„‡u›“ƒ„„{’’“—……‹‡ƒŒŽˆ€†„‹|‡†ˆ“„‡nv‹ŠŽ~ƒŽ”„€™…ƒ†Žm‘…{‰…‡‘Š}ˆ‚‰„„„„˜‹ƒ}‘z“Ž€‹€€–‡Š‚‰‰…“Ї‹~…€w‘ˆƒŒ•‰„ˆv…~z‹‡„Œx”‚‘Ž‹ŒŽw‹‹ˆn„€‰Ž†…x|…“‘zy~Œ„†‚€„Œˆ}Š“€~x‹…‚y†’ƒ‰}†ˆŠ„‘—‡†ƒ”†y„‚~ƒƒ™…|†}ƒuw‹n|…‘ˆŽ†‹‚‰~“—‰}Œ{}zŠ|‰ŠŒƒ‚‘|ˆ|†††r‰‰ŒƒŒ|Šy–Ž“‚q‰ˆu|†ˆ•„…}}‰zŠ•‹u€Ž‰„pu„‹€†‹…†‰lŒ‚zކ‰Œ}‡‰Ž†ŽŠŽ€•‚‡‘…‹yq{ІˆƒŽ‹‡‹ˆŠ…ЇyŽƒ~Œˆ€‚”‹ƒ‘ƒ|‚wŒz‹’ˆ{…‰z„ˆ…ˆˆ‰‹„ƒ‹Š†ƒ’~„‡…ˆƒ…‹ƒ{„Žˆ”‡ˆ…‡€‡ˆ~tŽy|‰‰Žƒˆ€{|ƒ‡‡Œ‰Š~Šˆ‚€~‰ƒ‚†~€†…€{‰{ƒˆ’ˆ„„‰}ƒˆ‡ŽŒ|ƒ}„“†‚…„ˆ‚~‹Œ†}yŠ~ƒŠ„€‹€~€Œ~‹‰ŒŠŽŠ‡‡‡„”‘€Ž”“‰{€Œ…ˆ•‹„‹‰Š|™‰ŠŽ†™•”€~Ž„††‹ŠlŽ‘ŠˆŽƒs‰…‡Œƒ|„‚‹”‚z‰Œ„ƒŽŽŠ{w’‹i‹‡•‘€q„ˆŠ’„„u‚މŽ{Ž…“‡‘{‡‰†Œ‡ˆ~w‹ŽŠ{ŠŠ…‡ˆ„Ž|ˆ~€„‹ˆ‹‰„‹ƒ™Œ‡z…ŽŒŒƒ€‡ƒ£†‡†‘†Œ}ŒŽ”Œ†‹ŠŒ†Ž‚™•‡„‡†‰Š“…‚„†„z~‰ƒ€‹†Š‰ƒŽŠp‰™ˆƒ“Œ„†ˆ“Š‘ˆŠŒŒ€Šˆ’m‚–˜‹Œw{ƒ‹†‹†Šo„ƒ‡‚„€Š†r€p|†„ˆ‹‡{š¡ˆ“Œ•ˆ„‰‰}‹†Œ€„|œzŒ‡}Œ‹Š€Œ•zž†„{~†s}ž„p¤•Ž–yˆa‡|n}•kuŸ}‡ƒš€d}ƒ‹ƒ‡€ƒŠ›Ž‹u€Š†…”’ž—Œ{‰Žwƒz‹’]»o~”qŽ}´¸Œ~‰f‹„gx¨…yoŽi…o‡xs}j ŒW–s~žžŽ‰§¢†ƒ¡”‚•j‰…›‰ƒŽ¢‡†~™‰“™pf†{{v•‡œƒx||‰hši‰‘–“p¢‡Z‡£¥‘„ˆ˜h{‚tx uy†’ˆ‹Šx‡”š{‚œ”…Œ€‚‘™…r•Ÿ‹|{ƒ‡…“‰•–’‡ysŽˆ‚u‰€‹‰oŽƒ‰‹ƒrЇ‡ƒŽ€{~ˆ‡ŠvŒ}Œ‹…Œy‡y—}iŸ‰…y„—yƒwz„ŠŽŽ„„Їš†}‘ˆŒ}…}ˆ†v‰‹€Š…ˆ|ˆŽ„‚~„‰w–‘‡Œ‡“y…vz‹ˆ‡ˆŠ}’‰†ˆ‚z‰”z€…{‚‰‘ˆ‹‘ˆ‚…†‹††‡‹‰ˆ–|Ž|‡‹|‰Œw‚…}‹’‚…o’˜•†}xŒ†€‹}|„Šˆ…€ˆ}~™ˆŽtŠƒ‹Ž‚€v‹~’™ˆ…“‰‰…‚„Œ˜“|“…v‹‚Š—Œ’‰…~‰‰ˆ|‹Ž’ŽŽŠ“š—“‚€„ƒ€…ˆ”†‡l“‰Œ’‹†‘t„…†Œ…|ˆ•Š{‚‹‰ŒV‹t’‰hŒš’…qˆ’†–~‚t„|‹ŽŒ‹›„sˆ‹‚}€u‰“Ž|›…ƒ†…‹}‹‚‰‡Œ€ŒŽ‰Œ“†œ‡‹‰}““ŒˆŠˆŠ•Šˆˆ•‘„‰‰‰ˆ‹†ŠŽŠ‹‰…‡Š‘‹‰ƒ…Œ‰Š“‰€ˆ‡‡Ž‡}†‡…‚އƒ—~Š„€q‰Œ—Š}“ƒ‚Œ‹ŠŒ‚”Œˆ€“„~‹ƒŽn†Œ„Œxˆ}Š—ƒ†‡†‡†…‡‡††……†††………††††‡‡†‡†‡†…†††††††††††……‡†††…††††‡†††††………††‡††‡‡††††ˆ†††‡†…‡††…‡†††………†††††††‡‡††††††††……†…††††‡††…††††††††…†…†††††…†††††††‡††…‡††††††…†††‡‡…‡†…†††…‡†††††…‡†……††††††††††…‡†††††††‡††…†‡††††‡†…†††††‡††††‡††††‡†††††‡††…††…†††††‡†‡††…††††…‡…‡y†|‡}zŠ{…v“‚„n†‰˜}‡‰…w‘‹~‚|¥zvˆ†‹ˆ††€ˆ€ŒŒŠ€‹Œ”‹€¥††z~yŠy„y‰„‰€‚‚‚ŒƒˆŒ•€‚ƒŽ†…‚s’…Œz|~…‚i‰Œ‰ƒ‰‰€‡}Œ~†~ˆw‡ƒ…ƒ‹x‰Š{zˆyw‹‰m‚y„~…‰€‚z}t‡†„t„zt†w{’‘‰ƒ‚‘Œ„{u{|y„ty€ƒ…‰~€†_y{Ž”ƒ‚tyw‡yyˆ€†z†‰{Ž‚~†Žƒ}xz}„~ˆ‹„†yx†€‡ŠŒ}}zŠ|~w‰€ˆŠ†††††‡†††…††††‡††††††††††††††††…†††…††††††††††‡††††…†††††††††‡††††…††††††‡‡…††††‡††††††††††††††…†††††††††††…‡†‡†‡†…††††‡†††‡†††††††††††††††††††…†……†††††††…††††‡‡††††††‡†††††…†…†…††††††‡…††…‡†††††††††††…††……††††††‡‡†††…††††…†††…‡††††††††††††††††‡‡†‡††††‡†‡†…„†‡ƒ…†…‡‡†††„‡†„†…††……††………ˆ‡†………‰‡ƒ……‡…‰ƒ…†ˆƒ‡‡„†ˆ†‡††‡…†‡†‡…‰‡††ˆ‡†…ƒ††„†ˆ†ˆ…‰‡†ˆ‡†„†ˆ„…††„†‡†‡†………††‡†„‡†ˆ‰…„‡†‡…†…‡…†ˆ‰†…ˆ†††‡ˆ…†‡††‡†„†………††‡……†‡…ˆ‡ˆ…ˆ†ˆ†ˆˆ……††ˆ‡‡†„…†‡…†‡…†…ˆ††‡‡†…††ˆ†‡…„„†‡…‡…†ˆ‚„†‡†ˆ‡‰‰…†††‡†……‡………†ƒ…„…ˆ……ˆ…‡ƒ††…‰‡‡†‡……†‰…††‡†„†‡€”ƒ}Š‚‡ˆwŠ…m…ˆyr“‹Ž{‡‡ˆ•–…•–sqŒ~y†Š†{ˆŽv–’‹ƒ“y•~‘€‹Œƒ‹‹‡ƒŽ}ˆz…Љ‘”{†„„}‘‰{’ˆ€Ž}~Œ‹{……™z}“v~†ˆŒƒˆƒ‰–‡Š’„ˆ”x‚–„Ž…‹—’–‘ˆ£~{“Ї…xƒ‚t~…–Œw{‡‡‹—¢Ž‰Œ‘‘všŠ}}ƒœ‹‹}Ž¡‡€‚†Œ‰ƒ‹’†Šƒ‘‹…†‹‡‡†…Ї‰‡wŽ‚„šŒ€z~ŠoŸ††‡tŽ{’‹‰†‰yŒ|ƒ€{‚Œz~~‡—„{‹r}ƒ‘Šƒ‰„“‡…ŠŽˆ„ˆ–n‘€{‰‚‡–—ˆ†Šƒ„Œ‹ˆ“‹‹{Ž‚~Œ‘}vˆx†ƒ‰‰{‚€ˆˆ„‡‚‹w‚‘ˆ’ƒ”ƒƒ‰ˆŽm}€„y…’|‡’Š}‰Š|„€€‡}ƒ’ˆ’Š…ƒ{‹‚‘„}v„ƒ|„‹Ž„†œ‡yl„ˆˆ|‡†‡…~…‰ˆˆŠ…ˆ’}ˆ„|‚‚’‚Љˆuzz…n…„“ƒƒ†Žy‚’Œ‹Š„‡~}Ž…‡…“Œ€€„t‚’w…ƒ‡~p}yŽ™~Š{Œ‚ƒ–†wЇ|y‹„†{{~ˆ~‚Šƒu”r†ƒ†€‹…‡’ƒ€‹w€€›y‚}ƒ|‰}‰‡†ƒ€z€†‹ˆŽ††x‰…”‹|‰ƒ‡Š~‰…€…‚‚‚’‰z…”{‰‡|Љˆ‚Žq|y„}ˆŒ‘‚ƒˆ{……{„}‡~‡‡}‚wŽŒ‚„“‹‹zuyŒƒŽ›s‹„~¡{ˆŠ‰‡‚ƒrˆŠ}šˆpŽ‹“‹€r…Ž”~ˆ‡‡sz~€}‚ƒ~~€ˆupˆjx‘ˆ…‹~ˆ•…y”‹ƒ„„‹†z‡‘xŒ‡œxŠl‹z„ˆŒxƒ„~†{|z‚{~Ÿ|Їn†Œ‚“‰ˆq€‡~“|x„y’Šw†‰˜…yˆ|}†…”ƒ}|†‹Ž{…–‹s{{–Ї‚”ˆ—su‰Œ‹Œ}Œ€’†„Š“ˆƒ†ƒ{–€Œ“|Šˆˆ€“…‹t’Œ‰”}’ޑЖ„‚Œ‹ˆ‡„‚w˜€‰|ŠŒ{—†Š‘ƒ‹Š‚†}u’‚ƒœwƒ……€~Ž‘”’’†˜‹†…”ƒ–Œ‡‹‚˜„ˆ|‰ŽzŒˆ‚“’…ƒ•‡Š‰ƒz„‹o‡„€{‡ˆœ‡zˆ‹‰‚“Œ’•”€~€‰‡ƒ‡’—‹ŠˆŽ‡{†‘v†ŒŠ€~‚vˆ~ƒ—‚~ƒ‚‰”Œƒ‚||ox}|Šw…ƒ‚†~Šly~“€ˆ|“Š€“‰‚}¨tz€‹”‹€|Š}Œ‡~…ЉŒ|ˆwƒ‰ƒ“zy†yŠp}|ŽŒ‡„…†}‘v~…‰ˆ…Žq…‡„n|Œ€‹’†‘†…‚|{xŒŽ„tŠ{Šƒ‹Œ†z~‹|w„…lz†Œz‹„†x~{t‘~~‰ts€Ž†‹–ˆ}Ž|€ˆop†i…‡ŒŠyˆr‹~‚‡l‡y„{ƒ‘‡‰Š‰„†ƒ}‡x“†{›˜…~„Š„vŽ‘yƒ†}ƒ}†Š’”z‰„ƒ€pƒz„y‚v‚~{€‚~‰…~‹w‘r„~‚ˆ„Œ‰€‹„…‚}žzƒ…wƒ‰‡‹Š†’‘‰„‹ˆŠ‡ˆ‘~‹ˆˆƒŒ…z…“‡{~t‰ƒ‡‚€„…‚‘z„‡ˆ‹„„ˆ‚…|Šxƒ{Šy}„Љˆ}…‹}Іˆ|†”‚‡‚Œ‰„|ƒ‡†~„Šƒ‚o€‡}…xІŒ„{{Š}ˆ€Š}‚š‘ˆ|ƒ„†ˆ~€”‰s…~…„|„z‡}~}‰~…‰~†‚€Ž|‡x‚‚Š„Œ~Š|ˆˆƒ„€ƒ“‡‚ƒ|€€‰~wŠ€|‹|„†~…ˆxŽŽv~Ž€‹{ЇŒ„“‹Š‹x~€‡‘Œz‘†z‹z™}‘‹Ž—„ƒ~’Ž‡ŽŠ…‹ŒŒl’•Їƒr‡yŠˆ”…’‰Š‡„ˆ‘†‹Š™z–i‡’‡qŒŠŽ’‚Œu‚Œ†Ž|Š’‡Ž†…€‰Љˆ|~u‹’‡|ˆ†Œ‰‰|ˆ…‹Ž…‡z‡€ˆ…’‡ŽŠys†Ž‰…‰‡ƒ€ŽŽ‹|ŠŠ‚Š’„xŒ‡ƒŠˆ•…މ“†ˆŒ„„‹ƒ‘ŒŽ††ˆ•‹Œ…„‹†ˆˆ…‘‹‚ŠŽq†Ž‹‡‰…˜‹‘‡‰‹–ˆ„†–‹…nƒŽŒ‘—y€Œ‹‹‹’z”™ˆ…‰–ŠŠŠˆŠtƒ•…„vƒ“ŒŒ•™˜””…‰t˜”„{œ—ŠˆŽw„}–ˆŠxŠ•‹‹“u™v…˜„}ŠŠ›‚r•‹”ˆ”{“| ’cއ€n’˜—ƒ…sxŽ…‚xŒŒŠˆ„}…‰‹„ˆˆ„pƒ—•u•|“…wŽ|ƒˆŠ‚v‘Œ•ˆŒ™v‚Œz|ЉЀŒywx{–‰‡ŒŒƒ—Œ}}Ž‹‚š‹‘ƒ–ŠŽ‡y…‘{’™•}–€y‹|‡Ž…|‹œ™žf‹{†‹‘€•‰“Œ~‘‡}Ž’Ž{…}rˆ‹x„~•ŽŒŠ{‰—‡Œ{‡¤w{w€€€ q€u…v‡‡j~}ƒˆ‹€|‘„ˆo~¶‚‰‹‡}l‹Š††…~–‘—†ƒ~||„z”€‹Ši—Ž{zˆ†~–…w‰’†•vyˆ†t™yƒƒˆˆƒ†lyŠww~pj„v‘‘{‡ƒ‹}~Љm}„‚œ|…€‚wŠv„–y‹z‡jpiˆosnƒ”Ž{x|w‡ywuŠŽwm‚{{–x€w„‰‘s…q€}|…{†ƒy„z|z|}‡wŒ‰‰‚{‹p|ˆyœ„ƒy}~|‘|}~r~|n{z‡z€}€‚z…~w—ƒx€ Œ€ˆw„y†„~ƒ†Œ‰‘މ•…‰…€‰€…†„„’„ŠŽ†‰s…Š•ŽŽƒ’‡„Šƒˆ‰}Œy€{tŠƒƒŽ‰„’…Ї‘ŠŠ‹€†‚‡Š€ƒ…sІ€‰„‡‰ˆ‚‡ƒ‘Œ‡†ˆŒ‰Ž‡…|ƒ…Škvƒ‰€†Œ……‡‹Š‹„ŒƒŒŒ‚‚ƒˆ„„‰ŠˆŽˆ{‰Š†‡Ž‚ƒ‘…Œ†‚…Ž„…ƒ‘‹…ƒrŒƒ‡‚„‹y‡Œ’Žz‹„ƒ…ŠŒ•“„”‡}Šˆ…‘ˆ……‰‘‘ˆŠ…†……ƒˆ‰‡ŠŠ‹Ž‚zŠˆˆƒ‰‹Œ…†ƒ„ƒˆ†Š†‹‡yˆƒ€„„‡‚Š€‰z‡…ŠŒ‹}ƒ€‡‰†“…|ŽŠŠ€—‹“Œ‰‘ˆ†˜‹‰~”†Š‡„†ŠŽl”’Š…s‹„Š‹„…‘Š‹z‡…ŽŒŠ‹x˜‘h’ŠŽ…qކŒ–~…tŠ{ˆŒ„Ž}ˆ’††x†‰‹‰€uŠ{‰‰Š‰‡‚ˆ}‰„ŒŠ„…}Œ†‚‘—‹ˆy}†–ŒŠ‡†‡}Œ‹Œƒ…Ž~†”„…„‡„”Š“‡‰Œ˜†ˆ‰†‰‹ˆ’„ŽŠŒ‡…”‚~…‹‰„~‰Šˆ‚†‚‹q‹‘‰ƒŒ„—Œ‹ŠŒ‰’‹†Œ…Œ‹ŒŠn†‘Š–‹yŒ‚‡‰‰‡•‹vˆŽ€…—Žp‚ŽŒw†Œruƒ€…†„‡†‡’ŒƒŒŒˆm‘{”€ŒŽ|ƒ}Œ‰†‹•‚‡ŠŽƒ‡}‹w†Œ’{Œ‰ŒŽz‘~”‹ƒ“†”Š‚’ƒ‘ˆ|„{‡ˆrˆ’Š“|zƒx{‹ŠŒ†yŒƒŒ}‰Š‚Žˆ„‡†‡~„ЉœŽˆ€“€–‡~|‹…‚‚ŠŠ‰q…ƒ„wŽxŠƒ‹„‡‰‰‚zuƒ‚|Š~}”|}x‰„Š‘‹ˆ‰Œ‰™…‹„•}‰{{Œƒ‡~ˆ‡…„…‡Œ“‘„„†‰|~†‰‹’ €Ž„€‚}Œ‚ˆ†”’‚{‡t‡‘‡‰…wpŽ|•‚Š’Œ…‹”ˆ”Žmnƒw’‹Š‰‹Š}Šƒ‘Ž“~‘}›†Žˆ~“Št“y‘‹›‡„‹‰ŽŽ‘†{–š‘Ž„…ˆ“”‡‘Š…ˆz„Œ|Ž‚y„r‹†‰…‘Š€ŒŽ”ˆ‡………}…ŒŽŽŽ‹…€œˆ‡€Œœ“ƒ}™‰‡…Šˆ‹Ž†x„“‰Œ…‹†„˜‡ŠzœzŠŒ}”ƒ€•‰€€ƒ‡‡Œ…‰ˆ‡„“Œ™‹Š}{‡–…“ƒ‰Š“ŽŠ‘…ƒŒŠ„ƒ•‰†‰’}’}•Ž‹„|ˆ‘}Ž“’‰ˆ—‹{‘‹‘„rˆŒ|Œ‡rqƒˆ‡ŠŠŒ—–„rn“yŽ‹•‘’Ž“{‰‹‹”€š„†“Œ€ŽqЇ‰šŒŽ‰ˆŒ‰˜’y”Ž•€“Œ|‡”Œ„’‰‚„x“†‹€~‹Žˆ{ˆŒtƒƒŽ††‹„™ƒ‰…‰‰Žˆ|yšwŠŽ‘Œ…‡†œ‹Š•{Šž•…x—‡‰…‘‹~†˜u‘…ˆƒ‹‘ƒŠ’Ž‚Ž|”‡~Œ~’Œ‡~Œ‹‡‘ƒ…ƒ‡„‹Š“Š‘‹š~v”‹†’ƒ—‰’‹Ž…}‹Ž„‚ŒŠˆˆ’”v–—€‹‹o‡{’‡’ŠŒŽ|wŠx‹†ˆt„’Š‘}‡st‹z–ƒ‹…‡ˆ•“†‰Žpmˆ‚x”™›‘|Ž‘{–Žšy~›|…†ˆ‘xxœvŒŠ€‰‰‹‡ˆˆ’Ž˜Šw˜˜Œ„”–‚‚–ˆ”€q„{Œz’~}‹††}„sŠŠ…Œ‘ŒŒ—ˆ‚ˆˆ‡Š‚ˆ‘ƒŠˆŠ‰ˆ}™ˆŽŠ–‚’•“„x›Œ’ˆ‹Šˆ€Š|€Ž’…ˆŒ‡‡Œ††}‘™‹ƒˆ‰“Œˆ}ž„“‘„{†•Œ…‹‰–‘Ž}ƒ…‰†‰ˆ‡‰‹†uˆ“Š€‰•‘ˆ†t–|“…Œ’€Œ’••——ƒ‡„ƒvˆ“‚…–Š‹~…}ŽŠ•‚•ƒ~~„‡‰Ž“‘†ˆ…“—Љˆ‰Œu„‡„‹“o‹‰–‘„v‡‚Š}’ˆ–Ž„ˆƒƒ‡‰Š€Šz j‚“ƒ‚rŠ…ƒ“uv‚ŽŠŽ}‰‘‚”’“}ŠŠ“††{}u‚œˆ„€Œ‘„‘~…ŠŒ…~Šƒˆˆ˜Ššz‹“€•…™‰‰…~€‚‹x‹•Žˆ’~ˆ“„yŽŒ‰‡‚€˜†„Ž„…ŒƒŒ‘|…•“„|‰‘}•}މ‚|…†„t‹‰†ˆ“€ˆ‰ˆ‹‰†…ˆ•‡zŒ„‘zsŒ~{“yŒŒ‹‰Œ–Š‚††”~‰‰‹„™•ƒxtŒ{“…š‹„‹†’Œno~zŠŒŠƒ‡‘‡™v‘zœŒ’‚™…… ‹‰–‰Žˆ‰‚Ž“pqœ˜ŽŽˆ}‰—ž„Žz‚‹|–„}‚‡—€x‡‡u‰†„{‘‹‹–Š”ƒŒ•‡‹‚“ŽtŒ‘Š”ŽŠ‡zš†y”{€›†€‘„‡“†¤n‘}Ž{yŒ“€Œ‰“›Œ…w |€Š|“€…Œ„vˆ‹™“ƒ†‹ˆ‡p†šŠ•„~‘ƒŽŠŽ€‡|y”‘€‘‘|Œ…‰ƒˆŽ„ƒ„‘€{ ŒˆŠ††‹}Œ”…†††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††‡††††††††††††††††††††††††††‡†††††††††…†††††††††††††††††††††‡†††††††††††††††††…†††††††…††††††††††††††††††††††††††††††††††††‡†††††††††††††††††††††††††††††††††††…†††††††††††††††††††††††††††††††‡††††††††††††††††††††‡††††††††††‡††††††††††††††††††††††††††…†††‰†‹~ˆ…ˆ‡„‚…†ƒˆ†‚†‡…„†‰ƒˆ“Љ…ˆ…„‡€…‚„‹~‡‡Œ†’„Š…‡„Œ……„„|‡ƒ…}|„ƒ‚ŒŽ†‰Ž‹‹‹Š‚‚„‹‡‡‰Œ‡u€~„ƒuˆˆ…‹„†‡ƒ„„‡ˆ›˜vŽƒˆ‹†‰‚ˆŽ‰ˆ€€~‚†‡|…‘‰~„„‡‰††Œ‘~††~„…“†ˆ‡yŠ~}€™‡†w…ƒ†tz„‹ƒ‡‚‘ˆ‹ŽƒkŒ„…‰‹€’r„s„‰‡{ˆŠ‘„…Ž„}‡†z‡‘›†~‘„…|—¢‚’†“~yˆ”ƒˆ„…ˆ†‡Ž…‡w‚“zŽŠ†|‚„Š’”ˆ—”ŠŠ€‹Ž„‰…x•–ކžŒ“‘‡‰Š›”‹‰‡…™‹Š–‹ƒˆ‰n‹‚މq†‚†Šy‰Š”‘‡ƒ…‡ŽŒ“€Žh—’Œ‡m’‡ŠxŠp††‹†}‹‡…ƒ“ŒŒ’ƒ‚‚€Œ€wˆˆ}‚Š……{‹|}ŒŠŒz‰–‡Š’ŽŒ‡ŽŒ~Œ“‹ˆ†‹‡˜ŠŒŒ‡‰‚‡‡ƒŠ‰‰‚‰‹‹ƒˆ‰ŽŽ˜Š‚‰Ž‡ˆ„ƒ„ˆ‚‰ˆŒ‰Š„†ˆu‰ˆ†‹‡“’ŽŽ‘‘ŽŠ€…Œ~‘s‚’‹“‘n‹€‰‰‚|~Œ‹‚}w„yz†z{„z}„Œ‹~‡—ƒ€€r}€|„Œˆƒ„|{t‡†‡zŠ„€}ww’†ƒ{Š{‡ˆ{z|ƒƒv}‚w~ƒ‚€|‰y~}„ƒz~‚Š€€}€}{…€€…†r‰‡}†}|{r‡€ˆ…€}‡|‡…‰€…|‚‹…€“‹{Œv‡~„Š~„†~y{q€y‹w‚y{yƒ‚|}ƒvy‚…€‡„†j‚~€…|yˆ†|‚}v~zˆ††Š€{€„xx‹z‡…‚|„~‰€Š€w‚€…y†uxy€‹ˆŒƒ‚ƒxƒ|u}‚ƒztdvˆ‰‹wxviz‰pcv–pw‹‚{zk{•’„yxzyzo’†z|wr{qr|qyƒxwpx‰y{~c{sszm|g}vƒyss~pyrpv{‚uzg†{un€mtztƒ}Œ‰xviƒvx|twjqny{rsƒx|ƒ~uztƒs}t{xxwŸomymkww€vovvm}|fzjztyjqwƒix}{ptwuouwm|sjlrxyov€ƒu~wvrs|x~rzwuzwy{wtzuƒy|xq„p{{{z†xmpzrns~zjut|eryyuxuvƒ†w~u€w{y|wu‰¼oŽw…u•}x†o‹ n—‰–‡†‹‹‹˜Œ‰~†ƒ‡z{ƒ‡…uƒˆ|•œˆ]}“ˆ‹‹v„Dvvƒxrz†tƒ‹ƒ‰|„’„v‡p¤Škv‰~{€„’y—•‡„‰¡|~¥xŽ‹ˆŠ‹~‡}{{Š”phˆ{{€…†w}w{w‚€–w…€‰{†m{z‡…o‘†‰‚›†}Ž”‡Šsˆ‹”ˆoz’n‚xŠƒ…ox…Œƒ‡‰’€€{sŠ‘qt•{Š”Œ‚………§ww•‚w‹†pŽ’˜‹‡yŒ‡‡…†ou†Œœƒx‰€‹ƒr›Š†…ˆl˜|Š…|}€€Žƒ‡}Ž~|“—Š•“’Œ{Œ„Žˆ‰—•„–ŽŽ‰ž”˜ˆŠˆƒ„–Š’u|žŒ†‚ˆ‡‚†pŽ€xtˆ”Іƒˆ“‰–‰‰“ˆ‚Œ|š‚‘‹b’–ž”kŽƒ‚Šroˆƒ‡{†‡…”–‘~ˆ{ˆ|„‚u”‘ހޅ‡‹†’z‡v~‹‹‰†Ž“~†ŠŽƒ‡„‹“‡Ž}Š¡‰Š‘ЉƒŽ‚‚’wŠŒ…‹’ކŒ‹xˆ‡™•™„†“‰‡‰‹ƒ|Ž—ƒ‡‡€Ž„~zs„ƒ†…„˜ˆŠŽ‘˜‹Š{•…”uŽv‡”„‹“‹sŒyˆˆ‹Š‘kv…‡€{w‚{Žƒ‚ˆ~hwˆšo€”œŒw—}ˆ€v¦tx‘ƒsˆŒ}ˆv{”„ˆ“€‹”—Š|~–r˜†‰‚v{}’y”Ž‘yz‰‘Ž‘~mz”|oŒŒ|~}†…js{‹xnŒ”ˆƒ‚Ž–z‡{Š…}ˆˆŠ}ƒˆ‡ˆ…z‚ˆwyv„ˆa”ž‚‚z€zЇˆtxz~}um€x†”€‘{}‹‹y„˜w†w}z†‹~{†||„|Š{x†„r‰~|†‰„z{y„‹y†€}}t€˜yŠ‚…x…wos‡€ˆ~ƒ‚„€l…|’ƒt“‚‚‚zˆ‰…„…~‚ˆz…|~{v‹‰†~ty†‡{u‘‰|Š{z…£~€Œ~{~u€ntwm……’Œy…zx‰†tv‰€ˆ–y~k‚†tswx‰‰ˆiŽ~“ˆx{†€ƒyˆ†€z|xƒxppŒ~{}„„€‚nx…~xv…•}‚~z~}y–~{Œl|w…‚„~‚Œ€~ywws†zsyy„Žur€y~{~~s€}„€†‰xuzvv‚~r‚|s‚ƒ‚u{{vyƒuxv}‚u}ˆ…‹z~yxv~r’s|z‚s~wuyyq}‡z|y~|zu{txw”uw€wŠuˆ|~‡~—„†Šˆ{ГމŒ‰“Œx‹ƒŒŠ|‡‚}†‹’~œŠ‘…Ž˜‹œŠœ‹‘„‡ŒŽn‹…‹ŠŠ–w‹ŒŠ|‡…“Œ’‘ˆ’Š’†‰Ž}j†‹›‡oІ„Œ‚zoƒ…Žˆ}‡~‚‡ƒ—ƒŒŽ‹†ˆ{|“‰Žx‘€†ˆˆƒy‹„‚…Šƒ‹‡Š”ŠŽŠŒŒ‰Œ•ˆ…ˆ†‰‰Š‡‰„Šƒ„ƒ„ŠˆŽ‹“’‡‰–‹ƒ‚•…ŽˆŠˆ‚Ž€‡ŠƒŒ…Œ‹’ˆ~|‘w„‚‹„”‡‡‡Š‘‰‹Œ‰ŠŒ††ŠŠr‡”‹’‚mˆ„‰‰„}……o}ŒŒƒ€Œq†{•€|{–‘“€ˆ“ˆ‘‚ˆŒ”s{…xx‡ƒ”’˜ŒŠˆo‰‘‰s’‹{ˆ’yŽ™†ŠƒˆšŒ‰‹ƒ”„Œ}‰“xŒ‡––z‰˜—u€m‡ˆŠ|•‘„—}‹r†‘’“†‡–ŠŽ‘‘ˆ’†Ššm‰ˆ“”‚—‡Œ‚‚™‹”ˆŽ„ƒŠ›ƒ‡‡‹Œ‘‹ˆŽˆˆ’‘‰ŒŽ‡ƒ|Š‘ŽŒŠ‡‡™‹…‰”ކŒ‡–‰Š‹‡…‹ŠŒ˜“Œ~‹ˆ”‚“ƒ–“‘›Š‚ƒ”‚’Š~•‡‹Œ‚Ž“„ˆ~‰€†•›‘w„‡o~|†ƒ}‘ˆ†—ƒ…‚‘’Œ†—•†“ˆzŽ“lsxz„Ž€™‡}t•œ…Š„s‘ŒxŒz{|ŽŽ‹Ž„‡€‘Œ”ŽŒ–Ž‹‹y•ŽxŽƒ‹’……ˆ—uƒŠ‡Žy•‹“‚‘Žp}ŒŠ†‰ŠŠ‚ˆƒ”‹‹†Œ–”u‘”‹€Ž…‹”‹‰‡‡‹™‚–†•‰€|}Œ„ŽŠ‹…—™Š††šyšˆ™‚‰ƒ’y‘ˆ‰„Š…“˜‹ˆ˜„‡Ž…ƒˆˆ¡†Œ‹‹ˆŒˆ†ƒ‰‹…•‚“—’‰‹‹†‰‘€Œ”“‰Ž‘}Œ„‰i‡Œ†‹Š|~Š‹Œ‡‡˜‡ˆ‡‹…}€‘“Œ€‡vŠŒ”‘‹‹wy‰†‰’Š’‰˜‰‹}r„‰‰|}•‘‚†ƒ…‘‹ˆšxy–Œ‘Љ›”—Š’…ƒŠ‹w‹†‘Šx‹Œ‚xv‰Žƒ‡|”t†€–{ŽŠ„’‹Ž†‚ƒ“’†ƒ‘‹~……•wŒ‡€ŽŠ‰ˆ‹‰‚Œ‚—”€‰~…’ŽŒ†‘™ˆ‘…Œ€‡”’ƒ†ŒŒ’Ž‚{‚ŒŒŒˆŠ‡‡“w”ŒŠŽŠv|†‘†‹‹ˆ„ŒƒŒ‹Š…€Š’‚†‚—…’—‹’ˆ†‹ˆ………ƒŽ‚€‰‹†€‘}yš‹Šy…œ€ˆ}‰z†v~‡|‰…ix„œxz„„†€ƒ}y‡Àu†ˆ~††{zŠ…Œˆ€„’›‡~ˆ}€’„…~u€’‘–z|{vwxŒŽyyo“Œr‚Žr‚Š”‰‰wˆr„€Œrˆ‰‚s…†u†€}{‡‰yw‹Š€ƒ‚‡‘ƒz‡ziƒ|Šƒ‚yŠ{|€‡vmІoqv†zq‚‡rˆ…y„{…€€x‚…|u„‡|y~zw†~‹pŽŽk|ˆ„‚yˆ‹yІ‹‰}‹ˆsŽ€wn€~ˆyx‡ˆ}l‰x‚{‡vo~{qx‹y‡†‚~Œ}~ƒx~~€Š‹v}}u…‹}†}›…ˆ~k‚†x||†—‹…ˆŒ³v‚ƒq…€‡†rˆ`‡š˜–‡{“Šzy‚‡|‚|“ u€tz†u‹}•‚¥Œ…†w‹x›x”“‰‚…q‰€…qyzƒto‰p‘†Ž†„yv|{…}‘…z‰“s‚…}ƒ|•}nŽd„†ƒ‡ƒs…€~{Œtrqx€ˆŒ}|zv}ƒ‰ˆ|ŒŒ€Š…x€qy{Іxt|{l‚†zƒxyŽ…zzx€…z|Š~Œ}~}‚zxv–s{~…‡{{wwmŽy…{‰€}xyw|t’†t€v†‰ux{‚ƒu}~†€u…{ˆ‰{ˆ†€k‚‡‚t„’…t‚…†v­zv‡xy€w‚ŒŠ‡˜–•‰ˆŽz–ƒŽ‘}}vv‰™‚‚vƒŒŠ…yŒ“‹‹†y~”ƒyƒ‰…{n~Šqu{‹tk”‹ˆ‚ƒ~—ƒ…„t‰}Š‹~|}‘€~xyƒ}ƒ€†c…‰„€xz|€us€|sx†„vw‚‚~|Š}‡Œz~{rƒ€€tŽ}~…’ƒ‚|†x}‰}{€}|}~y†~„x{z‡{“u|yƒŒxˆƒxrx†ˆ|‚„€„‡€tu˜ˆ}Šwƒ‡y{|{‹w‚††€t”‹„ŽŒ•‘–|……’ˆšŒ}zˆ–„“…‰’‹’š€–†€}yˆ™Œ˜Œ—‡n‰}Œ„‹wt•z‘†‚†Šˆ†‡}’‹”~’•g–“€l…}‘o‚‡•€}‘ˆ‘‘|y–ŽˆŒŠ‡u…{“š‰|—‚–ŽŒ|}‚w…ˆ~{€Œ“‰‹‰Ž‹‚w‡‹ƒ†„Š”z‰†ŽsŽ’ƒŠƒŒ‡‰ƒŽ˜Ž‘˜—‚…šŒ„„|‰ˆ‹‡€‚ƒ†}‡ƒ’ƒ–ЉŽ“vŽ‘†Ž‚˜‰‘’‘ŒŽ†’‡”x†v’‹’‹oŒƒŽ‡‡xh‘‰xry‚ws…urwŠmyˆ‚w‚šŽ|xrxs|„‚†—‡x‚rˆpl†m‰€n{un‘vƒvsysp‚v€rurx‰{sƒwy{…{uqw€iwŠ}i~py|q’}ŽƒwwuŒm{zmvw{zqzr„{‰€{€}{ty‰}{}|“v†z€|u„px}t}Žm}}y}~„|‹s€„zr‹ˆqƒz„~}|s‚y~my„sƒ|tƒzzqƒq‚~v‚zƒy|~‰‚v}€„|€‚ˆ‰€€„ƒx}{v‰‡{p}‚zw|}zzˆ…~‚…z€ƒz††“uv~{†‡ƒ‚‘w{t‡{~„‚z‘y{‚n‚†•{{ƒ}‚y‘‘‡w v†‹‡€Žƒtƒu…‰‹‚„•–€‘‘’„Ž~ƒŠ‘“zw€‰z…{€„ˆˆ‚s‹}ˆŽ{ˆ‚€rކ‡s{{ˆxqƒ|‰‡ƒ‚€{z|†z‹{‹’|~{{ƒ€|Ž€wŒb†Š‚„„wŠ„{y„~uŒs~zu‹|~~…†‚‡|~…‹}…u{}w€|v|||~ˆ{{‚z~‰…w{z~{yƒ‚|ˆq~‚{y‰xv}{‚€‰zxn„Œ‡~|„z~wvƒ||„x‚„x‰€€Žvzm{|‚†}}r}{zm|•‡y{…„yu‘ƒxn~uxxw’ƒw„}nvushxqƒˆ|„x{…‚€x‚yt}}|€kw†w‰€v…{x‹p|vw„}m€~veˆ|ƒzu‚yz|w†ˆ€{v|}l~xvxywxys}uƒ}w†~kulƒ€zxzzxv™}wŒwmxkƒs|rk†y‡nytwztnozsŒus{xuyyrt}x}}no~qv|{{tŽ{q}vtt{vwtprxw‚~tw„„Š‚p€mxuwtŽt~wpqzwxp{tpt†xxt{vs‰€up{‡~syŒŽr€y|}‰n‹Ÿv…~yw…„ƒ„‹…„vŸy}‹€ŒŠt{~”€ƒymz€y‚z„Ÿss~~}„sxtŒ…p…†}€‚wy{•€’€|}~‘“x{{€™h~‘„{ƒ‚{•–}€ˆŽ€{‚ƒ„zxq‰‚}‚„Št›†—ƒ‡†}¤†~•ŽŒ™~‚‹z‰w{‚hy‰ƒ~xŠˆ—†„ˆ‹xŽƒ…{‰ƒp}‡„k€‡†‹‚vŠ‹|ŠŽˆ“x|}‡‡ˆ{‹‡z‹€Š†|‰}†{„ƒ~|ƒ„…ƒ}l~~ˆu~‰ƒ‹‰ƒ‡ˆw„‰€“„Šz‰ˆwІ{vŠ”ˆ}v{x‡€t€€‰|vw|{†}qŠz~†y£{†‰}ƒ{|nš„‰€uˆŽy‰‡s‚ˆz{Žpˆ~wyŠz|zˆ…~{yv‘‰‚h‹ƒy„‡x{€€Ž„ƒs{v††i„‹ƒ€vz„{|‰yzw„yxw~…ƒ|}|x…zx…id~…}~}wsyz~xrzvvps{†rx}ut}~y€~€ps…wx€y}~s|~vywt{‚v||uxu|tv}y…x{€~xyx|”s}yo}z}qyyrz|z|}ytzww†ƒ}‡vx‚‡r‚ƒ}w‹‹€‘•‚ŒŠ‡w~Œˆ’ŽŒˆ‹€•†} •—ƒ†ˆš—Ž‚†š‹†q„…„‡qŠ‹Œ€’zŒ‹€‹’†‚†‰”Š‘’‹„‚ˆƒ˜”‘d~”Œš–n‚–‡|‚o†ˆƒ†}ŠŠ‘ЉŠޅІ€ˆq‘‹‰ŠŠ‚oŒˆˆˆˆ‘ˆ‹ƒ€‰‰€ˆ‘„‹†‹ŠŠ‹‚““ˆŠ†ˆ†Š‹•s†ˆ’„€‘‘Œ“Œ~„‘‚Š—…›š—‡‚„ˆ…}‚‹…€xŠ’†‡†„}‡w‹’‰ƒŠœŠŠ“’Š–†‡v‡‡qˆŠtŒˆ…Œ‡v‰|‚’†…m‡›‹‚t~}‚†{€x’‰~mxƒš}y‚‹”…u€‡w¬w‰Œ†‚Š‚}€sŒ˜Œ…‰€…‹–„~˜Šxœ€Š{ŽkŒ‡|ƒŒƒ„€…‚x„}‚ˆm‡z†‚z€€€ƒv†‚oyŠ‚r‡˜„‡u€„Œs~…‚v‚y‰}y~ŠŠvz‰x~†za‰„z…‚rzˆ|…{‡zrttz}‰tws‰~…p~{…ƒˆyqx€{sŠ{~zv†zzy…‚v{…yx‘Šyzy}zxu‡|Œ~†~zwŠ}t|ws†ƒ{|xo„„wzƒˆƒˆxys‚}‰…u€„u€ˆ‡v†ˆŠwv”‡‰€“Ž…~‰ˆ}Ї„Ї’…›‚Œ”“|ƒ”†„†€Œ—‰‡‹”z~Ž’‹ƒƒŒŠŒŽ…’‰ŽŠ~Œ|„‘ŠŽœ}‚Œ—rЉ‘‰xˆ‰u„q„ˆŽŠ‚šŒ~“„€’ŠˆŒˆˆ„ˆŸ’†…ƒŠš‘|Ž„x‘‘{}‘‰Š‹—ƒ“Œˆ„••‰Š‰Š“Š„ŒŒŒ‘ŽŒ‡Š‘ˆŽ‘–ŒŒ‰ˆŠ}—Š„†Š“‹Œ‡Ž‰ŠŽŠ‘Š’ƒ‚‹}Œ{Ž”ŒˆŒŠ•‡ˆŠŽ—Œƒ”‰…ˆ}†ƒ…Š…Ž“Œ‰‚Ž’ƒ…„’”}u{wuƒuy…‹€~x~uux}~€ƒwy{ªƒ…‡‚ƒ†}vxzn‚tz}Œ‹‡x‚‹ww€‡w{‰‡Œ‰|z{~xwu€|ƒ‚„Šwfˆ{|‡y€†z}†z}†w†v{ƒtƒu†~€u†xx|}yx~vŠ|{vy‰zˆ‰x}|x™mr~e|~yyrx{qp„ut‚ƒfr„‰‹sm|„r~zy€u‚x€puzw}r{~|qz{uyrk|zxwƒ}uxt|tw–……y~~‰ywq’t|s}zwp~ykˆ‚{xu€yzx~n|xŠ|v€w‰qyz‡z‰ y{p”–›œ€‰¡†~€ˆŒŽ‘¥Š’{¢«€…Ÿ›’ŠŠ”z¤–…‘ŒmŠ—”‡}ˆ{‰w‹”ˆŽ’{‡Ž„˜€|…{˜œŒƒ‹•z{YŒŽ¡‡f”Ž…”ŸjŒ‘Ÿ…r‰†€‡u‹‚ƒ”’—l‘‹—”z‹ˆx“ˆˆ}Œ…‚}„€œm}~p‹‘Ž]‡yŒˆŒˆ‰„„ˆ„–†‡Œ–‹•Œ†€~“ŒŠŽ—ƒ€su””“’Ž~’{{{‘›†‹Žš‹„ˆ†uˆzŽ•††‡œ„—‹‚y{§Š‹Ž‘”™‘“~ƒ˜‰‡rƒp„œ{||‹‡s‡}€~œ–}gx…|~z{€p|yvkwŒ}xŠ„‚{p}Ž•‡|xwŒ~†‡|}ys}sf‚i}{vuqx‹x}|g|tur}p{”xƒ|sv„€r{suŽyzƒyrk‡|tr~oƒvzu†Œ€ˆ€}wktyzsxlu|px}ur‚yz‚v|x‚vv{z{y›sp|rqyx„zpxxo‚~g|u}v{ktx‚ly~suywyxysz|voxuy|ry‚{yxuv|vs{vvvv||y|{w…}|{t‚s|||{€ntyspu|yxx}mvz|vyxz‚zy€x„‘v{|€wx„yŒ€u†}‚y~}’‘„~mz‰™xtƒŒ‰€ƒŽ‘ƒ}z¨z‰Ž„{Љ…xt~oŒƒ|†Ž–„{Š|ˆ‡u|€‡—y…~Š“ywƒy…Š‚j…}Ž…y‰Œ…†{ˆ€Šsv{†sw„}†††…‚”xw‚z‰{…xˆŠvˆ|€{”|ƒxŠc†yŠ„q~}{Š{r†‡o{…€’†uz}~|x{‚‚‰‚‚{zyt…„~vvˆy}u„x{€yv’†vyu…w}•z•}ƒ}}yvyw“s{v€‚„x|xynƒ‰ˆz‰~‡}pws~v„ƒu~‰w†xŒ‚„–‹€{…’Žˆ‘‘“‡Š†€‡‹|’’„z–‹€¤“‹ƒ…˜”†’„˜‚¤Š}‚•pŠŒŽ’„š‘u†—ŠŒ…{…—‹–—‹‹—‰Œ’‰‡‹‘jŠˆ†p‘‡~~v‰rˆ‡„Œ€‘‹o‚‚“‰‹w€‹Œ„”vw‘‹—}‚„•ƒ„{Žy™ŽŽ~…‹‰“€’‰„wŒ“ŽŠ’‡¤’—…„†‘Ž‚}Ї€‚Šˆ…ŒŠ˜ƒ˜~ƒ„…€{’‚~‰•ŠƒŒ|y‹“…‡“„–“ƒ“›‹•‘’ƒˆŠ~‡ˆw|’‰‘‹•z“‡zŽ’‹ni¨ƒq`zˆ‹~Žœƒškš€wkŒxƒ”}q~}}‡’u\—€}†{ˆŒx€Œmrt„{dt‹‚€‰~st}yˆoŠu”•ŠŠŒs”„zt•`z‰†Œ‰‚Œn{–•‘‰~‚‚hzgx‡yƒ‡||vš{†‹xWspxxŒst‰t„„‰Š‹sv~z‡ƒx”~“Šv{ƒƒ…Œv‹‘’ˆƒju~‘xl|pˆwzzˆ}y‚“˜‘„mrr„‚|zƒ{||ˆ|”ˆƒ~…€~І‹w~„{‰‹€y…|‚}„‘w•€ˆ…‚ˆŒx€„|„€Œ{…ˆ„v€z‚{~~zŽˆuwˆ“vm‘‰ƒ|‡†{|w¤{€v‚‚ot~€ˆƒ„…„Œˆz|‡{ƒ}ˆ„|yyŒŠx}~‚…y}|v‹}ˆ„f‡t…€x‰{|q‡‡‡v€w‹|rŠxƒ~†y‚„xs€y}x„|vw‰yˆ{~}y“xwd‡ƒˆ€€up…|sx‡st‚~jozz„sz„~v‚xw}†€svztyxƒ~{x{yzy~uzwtƒxvxzˆu{Ž}Ž€wxvy|—t|}qyƒ}stym|„†yy}|y~ymvwŒ}|}yvŽu€ƒ}€r€v…‹~x’~€‚q‚€tpx…ƒ‚…‚Œ€yw¬yŠŠ„x‚…‡{s{i|Š‚z“—Š}ƒŽ€ƒ€‘ˆ~Œ—‘žtvvt„x~t“ˆ„zr‰y™Ž{„‚…pŠ…ut{‰q|ˆo‰„||Šƒ€{u~ƒ{‰‰zx‡‡r~€x‚{ˆ„ƒtža~~Ž€Šq‡“}iw„yr…i~x‚‹o{‚„x„q‚yŽŒwsw~}x‰~wu|}zw‰|{†yw‰€zz}‡wx‹€Œv~}ƒyw†n™s}‚ŠƒŠw{rxg}zƒ‡}uuxpxt‘s€Žv‰…xxu‡ƒ“ˆ}ƒ•ˆšŒšŽ€{ŽŽ…“†u’—ƒš‘‹†Š “‘†{„šŠ‰˜‹…‡‹n‹Ž‚Œ’r~Š„‚u…ˆ’†•Šƒ…ˆ‡Œ‰{•€“h‘ˆ‘Žn}„œ~‰p‹…‹†|ˆˆƒ†ˆ–„Іƒˆ‚u‰ŒŒ|“{ŒˆŠ‡‰yŒv‰Š†wŠ“ƒŒ‘Œ„‹Œ‚ŠŽ‹Š‚‰~ƒ‡‹„‹†ˆ††‘‰n”ƒŒz”ŒŽ†…ˆŠ™ŒƒŠŽ‰…‰ˆ‰|‚†‰ŠŒŠ‘„ƒƒŠ€‹uŒ…Ї—‹Ž‡ŒŒŽ–ŽŒ~‘†~‹”qƒ’‰‘oІ…’‡~’’‰}„ˆ‘Ž‘„…ˆ‚†‰ˆ‰~~–‡‰–y’ž†Ž…{ƒ‘Љˆ¡€›‚‹˜Šˆ‡“v}’Š|š{†€’‘|„•Ž’•yŒ˜Œ‹‡—š‚‚ƒn‚Ž‹›ƒ|Š…}w†uˆ€‘™Šy”wŽ†ŽˆŽ‰u~•†|……‰z‘‰~™•ƒ†ŽŒ‡•†•“‡p‹“˜‰ˆˆ Š”‘|‚”‰z€•ˆ‰…}•ƒŽŒŽƒ—’~ˆ‡ƒ‚˜‹Š„…ˆ‹„†‹‹‚‡…Ž’…‹u‹{Š˜‰“އ”•˜‘…‰’…ƒ‹ˆ€ˆ{†™†™‰{„Œ†‹mz“‰Œ„r…’{Ž€v~v‹…Š˜ž‡ŠŒ™npƒyu€‰ˆ‹˜Šir‘”z‰Šcˆ{v‚ƒ…¡‰‰ˆ„…’”Ž€’‹‰ž‘vv‘›‡z„†~‰“€‘p{ƒ|”tš‰}…zŽ}u€„‚މƒ„˜€…‚ˆŠ†•€—•s‰~‡†“x‘ˆŽ|•’z”“Œ€…{‡y†Œ’‡s…€|’…‰Š‘‹}žŠƒ‡–…–“ŠŒ‚Š~¢ƒ“‡y‰‡‚“ˆ€Ššƒˆ‡ŠŽ…‰’„‹‡˜‚ˆ|‹•’“„•ƒ‰‚€„~’”–ˆ‰„••ƒ†ŽŠ“‰‰wx|‡‹yu€y€…t†ut›~tˆ‘‰}vŠˆ~~x™{‹ƒy†xs~‚ˆ‡’}{“t’}††xy‡ƒ‹’vz‡z†t€{w~y˜†ˆjˆ}ƒwy~Œuz{•}„uuvˆf…ƒ}t„y{y‚x†}uw‰…|‚z}{xˆ…}wgvŠ~ƒ}u||oˆw{st|zlxŠ||~s†€tyyƒ{urt€yu~|u„}t~…{y{yw}‹txvzwuuy|‚r|xxw~˜r|uux‡w|vxsqƒ{z~}z{ƒ‰~}w„‚y…{wx‹r†‚Š~~|ww‹—zƒzyx‚z‡{ot‰‚‡}‘‡ƒqŒz‚…w£zxŠ~z~‚€nnx‹€€‰…Œ‚{„~s€€}sw|o‰€w‹€†z‡‚|‚~u’‰‚i|Œx„‹€z~|…vpx‡ygŒŠŠu‚ƒy€€}pwƒy{xs~|w€~~xŠ‚zƒthƒ„ƒ‚sx“}|ws}wwst}‡us}…r~sy}{‚€†uuƒrt‡s~yuŽxvv{†v|ƒyuxw~zv‚y~†€|}syv{}“s}v{wzw{xvy€}{†|{v„}wsv…‡|rvŒs„€€ŒxŠ…‰‘•†Šˆ‘‚Š€rŠy’ŒŒ£—„‹…Š™˜”‘•š‡Œ~…{„†‚oŽŒŠ‚“rЂЇ™‹ŽŽ„‘ŒŽ’‰…Œ™„ŽŠ…i‹—„mˆ”€~o‡€‰}އ„‚‹’˜•ƒˆ…ˆˆ{…|x”†Œw‹ƒ†Š†xŠ}†ˆŠŽ™‡–‰‹~‰Š™‰Š‹‰…ŽŽŒ‹Žˆƒ‚ˆ|Š‡ŠŠŠˆ‹…‹‘ŠŒ‚“‡‘‹”Žƒ‰‰‚…ƒ‹€ˆŠ„†ŠŽ‰„{†u‘…‰Žƒ…Žˆ†€’‘”Œ‹‰–Š…}†oƒ†~’n’ƒ”‹…€“ˆ‚ˆ}•‹’‘’ˆ—~‹„‹‰†€…x’Œ‰ ›Š’—‰–„ŒŠ‰zЇ‰‡n‰ƒŒ”‰„s…Š…Ž|ŸŒ‹’ІˆŠ‚•ŽŒ~‹i‘‹Šlƒ€Ž|o‰‡…|ІƒŒ”‹‘ŒŠ††‹{‡~yŽŽŽ{“ƒ‰ˆ—‹{‰{{Š…–…†’‰†ŽŽƒ~—‹†ŠŒ€Š‘†‡ƒ„‡}ƒ|ƒ‹‚“ŽŒ†Ž~ˆˆ‘‘—x~‹‰ŒŒ‡€ŒŒŒ…‘ŽŒ‰€‡…~‡v†€‡‚ˆŠƒ“’‘ŒŠ„–‚}t‡“…‘Ž”lŒ„‰–‰‚‰s”‹‚–‚•”y|ˆ††€Šz›ƒ›Ž“Œƒ‡‚™ˆŽ~š‘…yˆ~ƒp‘‡‹„…xˆ‚•ˆ“‡Ž„Œˆ‰‹‘•Š•f‰Œ‘‹ŽoŒŽƒ p‰Šˆ„}ˆ†“‡………“™‡„‹‡ux‡}‘”’|ŒŠˆ›ŠwŠ€}‰Š…ˆw”ƒˆŽŒy‚ŒŽœ‚…„‰†Š“ˆŒ“‚Œ…‚“p‰‘„ޔޗБ…‡‘ŒŽ‰’†€”‘Œ‹„’x„‹Œ’Œ„ˆ‰‹€y‰{“Œ‚‰‰‚—|Œ‡Žˆ‰•‹ƒ’}‚Ž‹v†ƒƒ‡‹“t|ŽŒ‡‹†‹‚‚Š’’ŠŽ‰‘“ƒŒ‹‡„„}ˆ~Œˆœ”›Š‚Œ˜œ‰”œŠœ…Œy…}~ŠŒo’‡}Š’Žsšˆ~‰‡’Œ‰“ˆ“‡Š–~’Œ‹j„”‹‹†m“ˆ‚ƒu„o††…}Ž„uyŠŒ¡†‚ƒ‘Ž‚‘}x–ƒ„……~‚|Ž|„ˆ…“‡˜‹Ž—’Š’Œ”‹“‹‹‰ƒ•Ž…‚‰“Їv‡……†‹“‹ŠŒŒŒ‹€‹“š‚‡šŽŠŒ‡„‹~ˆ”›~”€Š‡‡€~{v’|†Œ‡†’ކБ“Œ“‡†’ˆ~—‹r‹˜†{n’ƒ†ˆŠ}ƒŠ‘x–‘‰†Š’„ŠŒˆwŒ|‡}Ž|žŽ—ˆ…‚¡˜•”¤‰Ÿ„‹Ž„{n‹}‹ŽŒ™uŒ›‹ˆ‰‹‘‘’“•…Š’€„Œˆh{•Š‹mˆ‹ƒ†uo‹„‰‰|ŠŠwy€‚¤”’‡}‹zy˜x}…‚€Šu„wŒ‰ˆƒ‘‡•Šž‹ŽŒ{ˆ…šŒ“‡„…‡“ކ…ˆŽŠ†€~ˆ“zƒŒŠ„Œ‹‹†•ŽŒŠˆ•‡˜“‡‡‹†ˆ‘}‚–|Ž~Œ‹’…€}~v—y€Ž„–Œˆ’—ˆ‡•Žˆˆ‹…o…™†ƒ—m•€‚‹†‰y‡œŠ{t†u…‡~v—€}tvƒ¨vqŽ€Œˆ„}}s„Œzƒƒwwv~‰€ƒ‡|ŠŽ†zˆŒwˆ„‹ŽvxyqЉ{|†xyzw‚~w‰‚„g†y|xˆ}}„z…‰v„v~ƒl‡}|‚|…Šy€yw€wŒ{ƒv†Œ‚€‰v~}y–rv}|i|y~€‚}ƒz~tƒvtˆˆ|v|z‰zr~~~‚vwz‚}~€€ƒuuzvuƒ~~qxxxz~t{|ws„rxy‚yu”‡€~|xw…{‘s|wu€yo}zlz~„wzw||zzˆv{v‹{x„{vˆt„‹†yŒh€”|Œtx€zzˆ…|}tzˆ„Œt—†ƒsƒˆ~{ „†‡ˆ‡z‡ƒ›‰{¢Ÿ…‡|…“Š„ˆƒ{sŒƒz}{mvŽ“{zuƒ}“‡s|y„v…‰ˆu~}{xƒ€ux}qqz}Šl„“…†{zyz‹Šyzˆˆˆ{†}‚~|}~†……‡ym‹„ˆq{}w|žw}tx{~‡ux€€„yzv…‚†y‰|‚yqh‚|~}†‡xwz}~~„…y’{‚v‚‰v†…}zo}ƒvƒ…€‘~~€~~‹}€Š}‚o€{€ƒt‚}y|™‚z†‚ƒ{……~v†‡{p‡Œ{l†‹ˆ‡‹”ŠŠ†uz“}‚u€“ŒŠƒ‹‹Š—€„–ljp~‰‚”†Švs‡Ž{v‰|‡”u|”Œ~“‚ŽzŽ‘Œ›‡˜ƒmŽ‚‘}ŽŒ†‡”˜v‹Š‹Œ{˜Ž”’|†“m‚ˆ…‰‹‡ŒŽŒœ‰ŒŠ‹—‡}š‰Š“}‘”‘’Œ}“–Œ˜Œ†ƒ‚Š~€|‡’Œš‹Ž’——€„–}†“ŽŽ™{”uŠˆ’y„…‚yƒ ‡˜–q€‹‡‚†…”o‹“~‡…—‘ˆƒŽ‰Š„œ‰’‡’y‹„Žƒ‰ˆ—Šƒ‡ŠŒŒq‡‘ˆ}”{h‰žƒxˆ‰›†|ŠqŽgut‚u|t‹†s•x}v¼tvƒŽ~}v‰p„†}‡•{ˆ—¢†ˆs”„ˆwnv‰„}‡ƒ‹}‚‡€}€€›k“†‹ˆu€†w†{…†p||€|l™Št…€{•qŠr‹~Ž}vŽ‹‰y‰u’‘fƒ}ˆ~rb‰žˆƒz}z{‘ƒuq~{yu~‚Œqs„Š~z…v‚}ˆŠ}tv{‘so€r}‚|‹Ž}uŠ„}‹p{vzxwx€€„€~x|ru~…w{ƒ‡vp……}…І†{{ƒp€t”‰€Š‰‡||†{€wŠuŠwy„‚x|~{”€Š}fx‚}~žŽƒ™ƒ}ƒ²v}…rƒ‘}p…v†‚ƒ’“š{†‡z’~~t|‚‰Š‹•z‰{‹|Œyˆ{Šš‡l„x–’w”’‡‚z‚€pvƒˆ{vŠtŠ„€‚‚“u~„‰y†|Ž~~v„…~Ž‹uw“|{xj}Š˜ŒŒsz‰x‹„‹rsxt{}Œ~rz‚t‹~‚{Š€t~~{{v…~vz‰†‚~Œ‡wm{……v~x…‚yu‡€‡|~}yxw‘q}†€„yz‚uz’™t†zŒ}}„Ž}x‰u~Œ{y‹zy|}r~”s…Œ‹‘™|‡‹~‚€ƒyƒ‹‡‡€’‡”~|“qwztq‘~~Š‘ˆˆw›Ž€{ˆ‘qŽ€”uŽ™Šƒ…‹—†…‚˜ŒŒœœs{‘‚”‰|Œ’„{…†v††‘‰‰v˜Œ’v‰“oŠ’†˜Ž‰Š—‡‡Œƒ‹Žˆwˆ˜Ž€ŸŠ‡“‚ˆ˜’†‡Œ—|˜•‰‚‹t~{…ŽŒ‚‹ŽŸˆŠ…£p–”—„–Œ†y„Œˆ†‰Š{|—{Š“†ƒ‚ˆ£‹ˆƒ“Š…~—’‘”‡†…˜Ž|••“ˆ“o„Єއ„~™’zˆ…fŠ‘‘ƒz‰mƒ‹†’}ˆ†‘s€|•€|}†Žƒ‚‹“†ŽŠ–lq’s€ˆ|ˆ•…‹€uˆ”‡‚w—“‘…”„ŽŒ†˜ˆ’y“–Ž˜Œ—‹r‚‹“~…Š•‹Œˆ•–v€zދޖŒŠŸy‹€ovŽ›ŠŒ‰‰…“‹‹†•„Š|ž„Œ‹•‡•‰’…ˆŠŽ˜•–†Šy‘‹‹„‡ˆ’‹’‹‰””}„•މ}“•Š€‹ŒŽr‡‚ŒŽw~””Ž‘q†—„ŒŠˆŽŒr†‡Ž}}”ˆ“†ƒŠ…”‘™‚~ˆŒƒ„ˆ‡‡Œ‰”„‚šˆˆ‹‹–…‡‹‰{|ƒ|‚wƒ‚~~{|Ž“zh{„|zŠŠƒ{–}x}¬wˆ…|ƒ†€{ps†„ƒ~”œ€•„{•{~{}„‰Ž’u‡‰vŒ}†ƒ‚‚ŽˆzgŠ}˜ˆs…Œ}„wƒˆƒqv€‰qv‰‰ƒyˆƒˆ~q~„z„z€~wx…‰}€Šw‡w}—}}†e{‹‰ˆ‡gy–x{€Œzy€q~€w~uz‹y}ˆw}‚|ˆƒ…uz}}zt{„xvz…z~€Šƒuux}††z}z…wp†€Ž~†~|yru”s}~|ƒu‰zsp‘yˆˆ}Ž|r‚Œ€u†Šz€‡y„{Š…ƒ‹Ÿu|z{†zs{‚|zx‚•{tyƒ~|ƒy‚x¬ƒ‡‹Œ…ƒ|ytzŒ‚†}z‹‹„w‘Œy††…sy€vŽz€x†{zy}zzx~Žˆlˆ€yƒyƒƒ€}Š…ƒ‰tv€€u„€z€ˆu†vƒƒzy‡wŒ|wwz€~‹z~|x’|‚ph€t€zx~‚z€m~{rˆ†hrq}~q~z€|wqz‚{ˆƒlu„}y€v~|p‹vynz~n|ƒxr‹‡xxtx}u}€Ž~{}~zv…{Žt|wvˆ€w{ymƒ||}xƒ}ysƒxvuˆw{€v~‰q„|„x~d§€~wˆ„‡|{€…†‘‹‚y—†‡yŒˆ›{|ˆ|}‰ˆ…ƒy{…{uŠŠ‡nv„~…xˆ~ƒˆ…~”||€z€†˜…y’…ŽzzŒ‰~›†ˆ‰†‚–‰€‹q„Š‚Š}‡‡…{…{n–Œ{tƒ™~‚|˜’‡‰ ˆŠ‹’–™˜~†ƒ„ˆ{{‚y‰…ˆ…Š‘ƒ‹‘ˆ}~†‚‚Š~‰†‹€„y…‰…ˆˆŒ“…‚‰†‹‚ˆ„…ƒŽŽ…ˆ‰•z}‹€…„}~ƒ…|•|…‹|‚ŠŽ‰‡‰……†ˆ‚‘…‡v‰ˆŒ„‹¥‰ˆ€ƒyyŠzŽŽŠŠ…‡ƒ{”™ˆ™™ƒ€’‚Ž‹ˆœŽ‰‘„’ƒŠˆŠ‰“—’‰’Œzˆˆ‡‚Žˆ…n‰‰Ž‰yw‰‰‹”yo†Œ‹’’……‹™Ž‡‚’u“€ˆ„g““‡™‘p‰€‹vˆpІ‰Š|Ž„x‹’ˆ‘}†Žˆ†Ž|y’ˆ~’‰Œ~…‡Ž~‰~{Ž‘ˆ‰‹ŠŽ‰‚€“‹ˆ‘ƒ‡¤ˆ„ŠŠ‰‡‚‘‚‰Š’†–ŒŠ€’†Žˆ“œ‹‹ŒŠ„‡‡‡y„‹„‘‡ˆ…†‹|}rŒŠ‰„‡—‡ŠŽŽ“‹†„’‡‘‰Žw…”ˆ˜‰‰u€~‚‹Ž‹’rƒˆ‡‹”Ž{ƒ€ƒŽ€i}ˆ}…†ˆw“Š~}ªq‘~Š‚€xx†‚~‡˜y†‘”ƒ‘}p”ƒ‰~{u{ˆ˜xŒnˆ‡ˆ†~‹•{‘‡¡‰wˆ‰‘{wz{Œsn–‹ƒ~…€n{”‡Œy‡~wŽŽ‡wx„”b‹Œx}o€‹‡Œuˆ”z™‡Šn‰€yˆ{|Ž‚ƒ‹‚h‰†Ž„Ї}‡zrŠyt’~jv|‘…„…”}u‡††ˆŒ}q{}us{}‘ˆ†|ˆƒvŽƒ•|sƒ†…~ˆ‹}}q€…|†’Œ|€{‘„…|u“~‘~‹zˆ~|~’xh~އ‚~z~i{zvkw„vv‘†{l}“‘„}yuˆz~}Œˆ}|€zt}sl…g|vvkxˆvz€l|tt~s€syœx‹|ut‚~ryst‹yzyvvkƒ}msp}u{v„އzxk“yxyvxlt~qy|tq…z|…w{vv}uzzyxœso|qtzx‚wqyxo„~e|v}wzkvx‚‚my}suywuxxx{|toquy{qx‚uxvvv}v€s|wv|z||y}yw…~{{s‚r}}|‹{os{rou{oy€v|muz|vyw{ƒyx„’u||€ww~Š‹„’œ‘ŠŠ‡‘ˆr}ˆƒ—‹„‡€‚ˆŒŽz™‘ˆ‰‡–|¡•‚™†•‡Œ‡‹œn…}‡†˜y’–‡†ƒuƒ‚•œ‚‡”“’„…‘o“h|‘ˆŠm„”ƒ}}o‡‰’†z‹‡Œn‚ƒ˜‘‰Ž‘†€y—|Š|ŒŠw€{Ž€{‡€„‡—‰™‚‹ˆ“~—Œ”…’ƒ…‡Š™‡‰†‡›Ž„‰€‡—ƒ‹€‘‘„ˆ‘–•…†“‘…„…“‹ž……ˆƒ|„‹y“x‰Ž‘…Š€€v“…ˆ””‹Ž‘ŠŽŒŒŽŽ„‚ƒ‡…q‰”Š~m’ˆŽh‚Š‹xu€ts„uq{{o~Šƒ€qr‡–…sw~†{„v•|‚~y‚wx‹}q‰szsyŽ{€xxuwp{t~…{‹ls~|‡v€‚x†tvxywxys~€Ž{|y˜{‚txmŽnw~€{wz|uzyr‚†{Žp|pŠo‚vx{{y€sr}~~sl~sz„‹pyu{z€owy‰‰rw~x~~x{t}u}quqƒyzsy‚~sƒyu€sz|€t|‡{yy}{}u{y|wwyƒs|}€|{€€svvk‚€~wx~x|oxzw{~yƒ…|tw‚€w€|ƒv€…Œ…‡†„‹Ž‹ˆŽ‘‡……‹ˆˆŠ…‹“Œ‰˜‚…‡Œƒ˜’™–†™„‹¥‰ˆ|†‹w–}’•„„’‰ƒ„„Š¡ˆ‰›‹~“ЇqŒ‡„”“r‹‚z‘~uwŒ„Œ‡|‡Š…€‰“Ž’„”†ˆ„|„€{†’‡~Œˆˆ…ƒ}…~ˆ–„Š“ƒ…€‡ƒ‰‡‡‡‘Š“‘†ˆ‘Š‹€……„ˆ„‡w‰€‡ŽŽŠ’€Œ„ŠŠŠ”„’Œ‰…“ƒ‚ƒ|ƒƒˆ“…’‹†„‰w‘ˆ‹Ž‡…Œƒu‡ˆ‰…ŒŒ‰‚‘…}„ŠyЂމŽv‘Œ~‰yŒˆ†r~‚Œˆ“~ƒ•‚~’‰ˆ•‘Ї•‹’ouˆwx˜‡ƒƒ”Œ‰w•“ŒŠ€zt‹€’xŠŒ†…ƒ‰‰†‡“œšŒx’ƒ}‰|Œ‘†€†‰›v‘‰Ž‘‚x”’„ˆ|Žr€Ž“„‰‚ˆ‹{ˆŒŒ†ˆ• ˆ„‘‹ŒˆŒ‰–‡’’„‚Št|‚~Ž‚Œ‚†‰’œ†‹‹œ„›‡™‹•xކ‡ˆ„ˆ……‘’Š‹ŠŽƒ{‡‹œ‰‡ŠŽ…|Ž”‡‰‡ˆ…€“~‘’ˆ„—~†…“ˆ‰’}‹‹ŒƒŽ‡ˆŒ‹u‰Ž†›˜„Љr™”€…œ‹’x†ˆ‹‘‚ˆˆˆ††Ÿ”’˜’ކ‘—“‰k{•‰sŠŒ‘Žˆˆ{~ˆ}‡~Љ‹Œ‘…•‰“‡†w‹‹mˆŠ˜Œ’o‹‰ž€†rŒ‹‡‡|ˆƒ€|€–‹Š“…Št‹…{›••}…ˆ›•{Ž„‹„zƒ’Љ†xŠˆ„›•’Š‹‚‹‹‹†ŽŽŽ‰‡‰ƒ‘–t‘”‰Œ•†ŒŒ‰‡“ˆŽ—“ƒ‰‘pŠŒ†˜‰ŒŒwƒ…{y‰vˆŠƒ—…Š”ŒŽ‹“Šˆ„’€…~Šu…‡‡ŠŠs{…ˆˆŽw}|‡‘„~w€uv{ztŠ„|zrƒ{v‹Šxt‚z~~sž‚z†vz}oou‰‚‚€~…yvs{€|ryk™‚{€~ƒ„wƒ„y…~t‡{c†x€€y€„uz~xŒ‰…|vv„j†{~}~|ƒ~z{‚y}}vˆ~zup‰|…||{v’wx~ye}~‡v|ulvq~ttvtely}‹{qy…xuv||~~|~su~px|w~}r€vxnor|}vrusrwr‡yt‚‹w~wyum|’s|yu{vzprzvzz‚zx}x{t}€nsx‡~}nx†st‡‚€…{‚…}‡wx}x‰vx|„‚~y|‚m|‹„…†v€{zx¬}ˆ~…ƒ‚xxum€{y…‘†Ž„s|…‚xx|††‡|ƒŠw}u€{†„pˆ€ulz‡vy€ƒ{…{|s‡t~w{xr„‡~tzƒ~w}x{†v…~pwx‘~~|y}|x”yzŠ…ix|ˆ€xxs‡uywtszvu|‰‰op}|u…msy}}ˆ|ptzv~y~~u‰}w†{u|~w|„‡yx}yux€‚{~€yvw”s|zr|{rw€xp}„}y|ƒx|€t{w‰…{|‹v‡r‰|€}}x|lŽ‹„zŠŠ•…–~ˆy‰–’Ž–…”—‡Œ˜ru‘vt€€€‹›Ž†•€Š‡ŽŽq”—ˆxšŒ†Š’ƒŽ‹ˆ‚‡Šs…–…ˆŽqŠ‘”vމ—‰…‰ŽŒ†u™„†‹zž‹’…‹†q‘’…‡‡˜€‡†Œ€Œ•‹‚‘Œx‚…‰‰™‡’‡Ž ‡›‡‹Šˆ…™€|€ª’‹„Š–„ˆŒƒ†‚‡„‘…‰z‡}“‘’‹Š‹‡t’§‡Ž–ˆ““‚x‚Š~’‚„‡œ‚„‰Š›}ƒŠ‹…“’—†‡–˜‡‰Œ”ˆ‹“’„–‘•‚‹‡‰ƒˆ†w|ˆ€}w†xƒŠ~}}އo†‰ƒ~}‡‹Œ„xЉ‚}yªzy‹ˆt{…{…Ž‹‹ƒ’“‡‚y’ƒ˜…‚vt‚–~r‚‡‡}{‡“…ƒ„xŒŒz‚‹‡}h„€‰s||Š~nˆ†Ž‰‡~z‹}Š{u‚|‹‰~~€~t‚~‘~~ƒ•fŠ|†ƒ…v€“‡|xt„„…€zz…{Šqp…„€{‚Œƒƒ‘ƒyzww‡†‚‚w†€Œ„|ƒ{ƒŽ|}‚„y„‡{„‚ƒ€{{|‰w“y~z†…Š{†zr|‰ˆ€}}ˆ€†{‡†{y“|Žz‡„{ˆv~Œ‚‰‰{ˆ”“Љ’Šˆ{“‚’Œ†„€|†ˆ€›‰Ž‹‹ˆ•„”’ˆ‘ˆš‡Œ‡„Š‘‹n†‹†‹Žs‰ˆƒ€‡‹Š‘‡“ŒŒ…Š‘ˆ“ŽŠi…‹m†€…o…ƒŒ‰|‡‚€Ž‡”‡…‡ƒ~y“„Œ|Ž„†Œ‚~{ކ†ˆ„ƒ}‰Ž™ˆŽ‰‹„ŽŽŽ†‡†‡—…ˆ„‹ˆƒ…‚’y‚Š…Œ’ŒŽŽ‰~–‹‰„‡—ˆ‘‘ˆ……„‘~…‹Œ„Žz‹‘‡„‹|ˆu‹ƒ‡’‹…•‡…ŽŽŽŒ‹Š‹Œ‘…އ‰qŠ‘ŠŠŒn‘ƒŒŠ‡‡ƒ€r†~…t}~ƒ~~~…xƒ‚m}Š‹|y‚‘Ž‹†z¯zuƒ}……z|{‹…ƒ‹‘‹—‹~˜ƒ|‰y}u†Ž“~Œ€‰y‡x„|‘ˆˆpˆ€‘€z„ˆ{wŠo}{ˆv~„‡††€z…Œ}……}xŠ|†ƒvz„“~wƒ‚|šƒ€‰h…z‰‹…z{‹v‚|ƒwq‡{vr~‚“ƒ~v~uy…‚‚ˆ}ƒ||w„zu‰z~€„€{„wzŽˆy{€yŠy€‡~‡‡€{zw€}‘s{vw†„uy{wn‚†€„{‰‚{y€{vs’‰w„†t„Šx‰|{z‰‡l„•ƒx‡Š€…ƒ„jwƒ”|tƒ‡‘ˆƒ‡yƒ|·wzŽ‚xŒ‰z„z‹’ŽŠ˜†z…y†‰}{}†…ˆ{‚ŠŽy…w…†ŠptŠˆŠ„~……ˆoƒz‚{xŠ“ˆ‰„Žyˆ€€y‰|“|‚z‚І‰~€~‚w|…xf†‡‰ƒ€xx€~†…rw‚‹ƒts}|nzŒ€ˆu‡„‚{“}{z†€z†}x{Œv‚ry†u}Žp€Ž‡„€z|}{}~†z{…z{z…~„’zm„…|zƒ‡x{†}v}~…ƒ€‚z‡ƒˆŒ}}ks„ƒ‰~v|vz‰xcxƒv{}{n{Žƒwvw}z‹{ˆ„zxvzuiezxuvun…sxxh}rssk{—y‚|uv~€q{sw†yz‚{ri‚}ps€mv|y„’€‹ƒzvnŒly{svmsqx{uk…zzƒ}w{u‹v}tzxxx•tv{stwx„|ryxr~}fzv~yzotyƒoz~}uwyvrwxuv}tqowyzsx€‰v€xtvvzw€r}wszw{|yuxw…}|zt‚t{}}zˆ{qsvsru€zxx€w~qty{vyxz‚€xxƒ‹v||xw‰w‰ƒŒ|‚“Ž‹˜ˆ|~ƒ‰•‹š†€}„Œ–}–‡‹™•‚•‹„xˆ—ŒŽ‡‡—‹”ŽmЇ‚„Š‚|—‘Šy€‰‰Œ†…Š€‡‡‹•“v’–gŠ‘Œ‹Šm‡‹†’z‰n‡‹„}‘Œˆ•Šw„’ŠŒˆ’”~ˆ€ƒ|‘–Ž|šŽ“•{zŒƒ|†‰‰{މދ‰‰‹‘‚’ˆ‡Š|ˆŒ~Ž…•‚”Š€‰…ƒ…ˆ…Žœ’—𖇉•‹Š‡Š•Š‚‰ŽŽ…’‚†Œ†ƒŒŽƒ–…ŒƒŒx•†‹‹‡ƒ–ŠŽ‘މ†‡Ž‰ŒŽŽyކކt‘Ž’Šˆ’o‹„‡‹Š‘ˆ†‡‰˜’ƒ•–™ƒ…x•„‹—‹}ˆ„|—ŽƒœŽŽ‹ƒ“‡šœ„‰‰’…t‰‡ˆ†n……‰ƒŠsƒ‚…“ˆ‰ŠŽ’€}’’†‡”z‘€ˆiЇކŒm‡‹–}ˆoˆ††z‚{““~„ŠŽ‡†€w–‡’z˜€ŽŽƒ{ƒ„}ŠŠ‚ƒ—‚І˜†ŒƒŒ“‰‹…‹Œ…„ˆ}ŒvŽ…ˆŠ‘”‡ŽŽŠ‡˜•Œ—††‹|‡ˆ‹‡‘ŠŒˆƒ‚~‰t„ˆ‡Œˆ…‘‰…‡ŒŽŒ’‘’‹~•Šƒ}ŒŽrˆŽƒŒ‚ŽmŒ~€Šz†„o˜“‰zv‚w€‹€…v‡ƒ„kz…†x}‚†„{‰œz‚u±xŠŽˆ‹‡vtŠŠ€†—˜™~•~{‚„}€‰~w„~{†…„{|ŠŒ‹y‚tt€ˆz†‰‚{fˆ‡Šmƒ{ˆ‚o‰‰‰Š‰x{xwt„|†‰|…v‹‰vƒ}Šnw…‰YŠŽŽ}†ht‚~tzˆus‚pxxunut‰‰rŽ…{€ƒŒ‰}rq|zyy€|z{||}‹xz‡yƒ‘}{{}…u|~†sŽs}~{z”x™x}~z‡ƒ‰zŠxlЉ‚||}Œ{‚v†wŽ‚‡x‰w||€w…pw|‚{z€}x†yu~~|ƒ{|c~x’‰ƒw…yv z€€uo‡ƒoxh„qŽ‹…}}zzx~v}{™z€ˆwmonzvxy|ˆ‹Ž„|o{™…{}‰|~}n‰ƒ€~{y~…i„n‡}tx~pv…€…n~w‚{wyr‹ƒ…ww||x…z{€„mt}Œu„xu…€}xrutuu}yqˆŽbn}„zz‰€vyy~‚sk‚v|rz€yt‚‡o—}…u}}w‚r{yzxoww{Šn{‚€wzz„rŒv~ƒyk|xk†zuz‹y{zm€yy{‚{y{›~}|{ˆ‚w~€€xw~”‰y†‚„‚…y‰Ž‹”‰‚†ŠŠ’Œ‚yŠŠ—€ŽŽpzž|ƒ„‡„ˆ‡|‰šŒŒ}ƒ”Ž‹‡†Žys~†”…€‹‰‘wŽ‘‰˜—v‹ƒŽ†‘Šƒ‹……†Š{…zƒŒ|…|š‡r‚†’„{”šŽŽŒ‹‚’|ƒ–‰Œm’~z~„ƒ†‡’}Œ„‹}‹˜ƒ~†˜‹‡Œ‹•’‚‡ŠŽŸ~r‹z}‚Šˆ›ƒ‘˜}˜‰…””–‚Š”ˆ’‚’ŠŠ‚‰¬|ˆ‰{~‹Š‹‰’•‹q{„–Žy€ŠŠŠˆ’‹•‰‹z‹‹…v—†‰…‹Œv˜‘ˆŽˆŒŒˆ‚‡‘„„{‰…”–ˆ‘Ž”Œw‡‚‹‡„’‚z”’‘‚Ÿ”•‹ˆ‹‰›—Ž„œ‹‹ ‹€‚…„n’ŒŠ…uˆˆˆ|„Š‘Š˜††‰‘ŽŽ…†Žˆ•i–•ˆ—†nŽ‹„‰}}qŠ„‰…~…‰†‡Š“‘Іƒ€}w’Œ{Œ‚†‡ˆˆv„~Ž‹ƒ‰‡“„†Ž‰Ž‹€“‡Œ‹„Š‹ˆ€ƒŽ„ˆ‘ŒsŠŒˆ„ˆ’ŠŒ‘†•‹Œ–w‰†Ž……‚‚€~‰…‡Œˆ‘…ŒŽ|‚w’‹ˆ„„…’‰Œ~˜Š–‡“€‹‹€‰“s’•p‹Š†{w˜†u{‚’ˆ‰~}ŠŒ‘~y~zwŒ‡ŠŸˆ—}ŽŒ•stn{‚Œ†ŠŠ–yw‘žŒ†r›‡ˆ„Š—€˜›¡žwŠƒœ…œ’v“™ž‘~v†™Œz„†„І{}ŒŸ†…s„{‰Ž‰zŒ• {…„tƒ’Œ”Œ‡}Šš—€–ƒ‡†Ži‹ˆ…‡‰„ŒŠŒˆ‰„”¦~–ƒƒˆ‰›ˆ|‘‰‡‡ƒ¡…‰ŒŠ•‡Œ}”‡˜‡‰„w†ˆœo€Ÿ“Œ‚†‰Š~Ћހˆ‘}“z€†™Š‰”“Š“ŒŠ‚’‰}‰‘’Ž|‹“‡‡‰˜’‡‡…”Š’†|™ƒŠo€‘ŠŠˆ†~‰x†}›€~|‰““†‡‹ˆ‘Ž‹•ou•uw‹~”’ˆ†‚v…Œ†s˜‰{“œŽ}„‹“…Ž‚ƒŽ}ˆw…“‹ˆw‰{†Œ‘“Šƒ…”„tyŠŒˆ‹„™Œƒ†v†}pŒ•ƒ‡‰Ž‹Žˆ’–’Œ‰‰‚‡Œu“†”‘Œ‰‡‡„Ÿ‹‘ŒŠ|ˆ”•‰ƒ’ˆŠ‰€‰ŒŽ…‹Œ†‹†„’„‰„•Ž‘Šˆ’†~˜ƒ•ކ‰”‡†ŽŽŒˆ†‡—~•€ŒŠ’zˆ‹Ž–‚‰“‘ˆ„Œ~…‘‡ŠŽ„‘†ŒœŠy‘ŽŽr„ŠŽ€ŒŠ~“~€}ŠŒ‹‰‘‡„Œ“nvtzŽ…„›’‰Šw€ƒ‘“u’Žx”•yŽ‹ƒƒ‘Іˆ†‹‹Š…”Œ‡s†’€†Š…Ž‘‰Š‘Ž˜v‰ˆŠ‰~š‚}†ƒrŒ‘„Ž‹†„ŒŽ‘•‡Œ}“Œ|’ƒ’“……Žˆ‰™€”•ˆ†‹ŽŠ„‡Ž‘‚Œ“…††|‹„–‰Ž„‹Œ‘Ї‹…–Ї’ˆ‹Ž†ŒŽ”‘‹Š–…ŒŠ‚“’Œ…‘ŠŽ‰‰ƒ‰ˆ‹‰„‹†ŠˆƒŽ‰~„‘€‰±}mi‰‘ŒŠˆ›™ˆs‘xŠ‹ƒ†§™x—£‘’œ‡¯”}€¥„xwnz‘‘‰´‡Ž“ˆ}xx”¨‡•€‚†’ˆ^ƒ„•ƒ‡—‰x}x}{€žvz•—lš ‚f‘Žƒ€f’o‡ˆ„‘†|‹Š‘‹‹‹˜†qŽu†yv~­”Žy“~‚›Žs„ƒ““–x’—‡Œ~‘ƒŒ†—Œ€žˆˆ•…„ƒ†ŒŒ‹„ž‡}x…™•’Œ‰‘x‹Š”‹š‡o€‘˜‡Š”•€‰„ƒ‰•Šƒ…‚ƒz†–‡…މ›s’™…ƒ€–“†—p‹Š‰ˆ”’šŒ‹}…—†~™‹•‹†„‰ƒ‰“‹ˆ‹•|…‚ކ†Ž‰‡z’‹Žœ–šŒŒ„Œš’ˆ…‹Ÿ‰‘…Š€‡‹‡mŒŽƒ‡ˆr‚…Ž€‹‰‘Œ“„މ‰ŠŒ‘‡Žz’hŽ‹•†l’ˆƒŒ…o…†Ž‚|Љ„†ƒŒ–Š€‹|Š€|Œ{Œƒ†€‹z‰zxŒŠŠ‚”ˆ†“Š‹‘Ž‹†z˜ˆ‹Œ€Š”…‘Љ}Љƒ‡‡†Š‰†‘‘Œ‹Œކ‹‹Ž”„€ƒ„І†‡~‹‰”‹‡Ž…†ˆ~…w†‰‡†”ˆ…‘ޔІ•Œ‡‡•z‰|Šr‡ŽŒ“Їn‘ƒŠŠ…‰š†‡rƒ‡‹ƒ„Œ€‹•”€~~Ž˜ŒŠ’Š‹Œ“–‡”ir–wz‚‰xŠ”Œ‚‰}ŒˆƒuŽ—’}“€ŠˆŠ‰~†–„„Œy…’xŠ™…ŽŠp†‰•{‡”†Ž‰‹‹†Œ‹u~ˆŽˆŽ}œ‹|—z‰…n‘„‰‹†“Ž•‰‚„ˆ‡‚Œ€“Š…‰‘Œ–‹‹“Š„Šœ‡“ˆˆ’ˆ’ƒƒŽˆ‰Ž‰‚‚ŒŽ‹Šˆ‚„yœ…‚“„ŽŒ‡€ˆ˜yŽ’™Ž‚’‡…‡†~ˆ‰Š‡}ˆ’‚˜’€…‡‡‰‹“•ƒ†„Žˆ…‚–ˆ‰„‘Žˆ‹…Ž‘‹Š†‰ˆˆ€–…Šs€˜„‰ˆp‹|•ƒy}•ŒƒŽ…‹’•’‘nww~–„†—’‡‹qvŠŽz••‘{“š‘{¤‡“¡†z˜†“‘‘ŸŒš†ww‰|ˆ~’Œ‹›‘˜vz~ކ„€—Š‹‰|ƒƒs|}Š—ŽІބ“Œƒ“‚†w”v““„“•’‘Ž’ƒˆ™‘”Œ‰„…•‰…†Œ™Š‡‹‡’„Œ…}‘“„ˆ„ŒŽ“{vƒŽ’‚ˆŽŒŠv ‘‘ˆ‹~}Œ‰Š‡…ŽzŒŒˆ”†‚‘Œ‡”ƒ†Œ’šŠ‡w„‰ˆ‹€‡‡Œ‰‹~•†y„‘‹~š‰~‘ys†“„„sƒx…„|v”zt{„‘|y‰‰…~†Šv†z¨}€‚††|ˆt‚Љ††ˆˆ‰—‚}˜‰v‹…‡†{ys‚€ƒyˆ‘„|€ww}‚ˆkŠ{‚|w‡‡„|‡|†|…ny~„p†‹z‚‡ŒyŠƒ€x‹x‘{zwŒˆ~‹|}y‘wƒtk„‚uzy†xs„vsƒ‚uxtƒ†mv…|zƒur|~€ƒsmw†~yŽ~}xtv~q‡†v|‚wu‰‡xy~}{vw‡‹y€~|zw‘€t|yt††x{~wn~ƒzz|ƒƒz~€Š|‚vŠxs…ˆv€„s‰„‹ˆ~uކ„s„€††‘z‘’ˆ“…€”•‹„œ„ބނnsyxŽ‚—‰wv–‘Ž‹„r”•zŽtzŠ€„ˆ•†€Š„‡“•‘˜Š’‘w’Œ’Œ‹’”†‰ƒ™všxŒˆ‡s•‹ƒ‡„‰q‚ˆ†ŽŒ‡‹Š“ƒ’……Žƒ‹Ž˜|—Œv†ƒˆŽ†‡ƒ˜‡”‰‹•†~ˆ„†‡“‰x~‰}‰y”„ƒ£…œ|™‚‹‘~„Ž…ˆ…Š’’‹‹œŒ‰Œ€}‡™‰…“Š{†Ž“„“ƒƒŽ“”Žœ“‘ŒŽy‹ˆ…„†•“•ˆ‡—ˆƒ‡nŒ‰„ƒs‚”–mxz~uuzqp‚|wƒŠ~mw~˜||u€xt{|™ˆ~tv|zt‚xn€‚|tz‡†|{†uƒ~{|‹…„Š}lhqspptzƒ‹ƒzzpŒ~†’|x…}~}l„Š‚ƒy€†u}e|…m~mt…xz{v…€rxsŠ~†wx{{x—{{~nsnƒj‚z~‡€mnnxw|{fzzŒ^s}…t†rƒ†rwzl~v‚i{€r{„mˆn‚s}vz{vmwz{ƒvwz‹Œuzy€{zvi‹xˆyq€ymy|o|‡}zzjvpp}vx}ˆ™{xx}…v€qŒ…q‚–”€u„~‚Œzv„lw…‹‚…‰rƒƒ‡w¯w€‹ƒˆ†„…w~š†‡Œ…†Œ™…˜‹v–„‹ˆ|||q†‰€‚ƒ€‰„|}‚“„‡pŽ}‡€y…„„~€}†€‡s~{ˆ|p‰”††v€…|‡„t†zŠ€z€ƒ{„y‚{Šyƒsf‰ˆ‰†|~x€xr~~yvx‡wy{Šz„s|‚~ƒƒ‘wv„}tŽz~u‰}z…€zzw}Љzzzw{y…}}€€~{x}‹t|v{ˆ{}ƒxp€†€{ˆƒ~{…{yt‘‰|‰‡u}ƒwŠ‚‚‹wІƒ†‚—’”„”Žƒ„Ž‹‹‹€‰ƒ†‘‡Œˆ›ˆ–‡‹ˆ†˜Œ‘–‡ž‹‹|ˆ‹€Œ‹oˆ„Ž|xŽ…‰‘p~‰‘†•††…ŒŠ’Š’¬’|‘Šl‹‰‘‘mˆ’Š‚ˆqˆ„††|†‰”…ŠŽ•ˆŠŒ‰…‚†~}‘‡‰}‰„††‡‡‡ƒpŒŠŽ‹{„†—Œ„•ŒŽ‡t“…‰ƒ†‚†€|†……y…‘…‘‰ˆŒ…’’Ž–Œ‹~†Š†Ž•Œ‘{†ˆ‹~„€Š‹†‚‹‡ŽŠ‡Š|ˆwŠ€‰‹‰”‚‹”’ˆ–Љ„Œ„‰|Š–u†’ДޔqŽƒ€‡‰…|€{†”ƒ{~z|†yx‚‡‡|wz‚~…y{„u…x~yw¬{‹~ƒ€}{nqq}~~ƒ‹Š{†x‚~{€rxy|‰‡y}||y{w}‚€~Šth„y~‡{yƒ|ƒ†xzwpp„|†}v{~|~~{tƒv|uvy‡€}|v|w›xx…yh}v‚€ƒvsƒuwzwt|ru‚}Œxi~~uvwp~y}…mq~wv|t~zt‰}x|~|qz€v‡~wwuxu}ˆ…~x~|yu„rŽs}vvvw{~xpx‚†y{€yw†{mqw‰|v„Žr„{€v‹„„ŠŠˆ’“Œ†™†x“ކˆ•‡€‘ŽŒšœŠŠ’—ˆŠi…˜ˆŠŽŒ„{‡o†Ž‚މxt‡ƒnŒ…šŠŒ€…ކŒn”ŒŽm‘‹‹ p–‚†‡ssˆ†‹€|‹‡ˆŽ‡‹„”Œ‰ŽŠ‰ƒ}‘œ„~‡‹Š‰z~ˆ„‚s‰Š‹‹†“„‡…ŠŠŠ|‹‰†‚˜”t‰€Š‘ˆŠŠ‹ˆ•‡Œ‰ˆu’ŠŠ–|y|‘ƒ‘‚€Œ‡{}“‡ƒŒ†Šˆz†wˆš„ˆzˆ“}Œ‡œ‹˜Œ†‰Ž‚„‚€i“vŽ•‹™“ƒs‡ƒ}“‰€ow…‹vy€vpvt|y‚ƒƒ†ƒ”ˆƒxw{ƒz—~„vs€{n…x–‚v‚vvŽz‚}us‚‚€„~~nŽ‚uxƒw‡ƒ…~‡sq}y~‹|ƒ€~‰€}€}‰ˆ|xyyˆkz‡~u{{syƒ„}z„yˆˆƒ}v}…€yz|}zŽzs†hty}vpu‚‘v||zw}‘xw„|||ynx‚{}wx|~{us‡xzyzƒ‚t‡zw€„w~€{|ˆ}}x~zv}‚w~{ƒu}}ˆ{{€u}z}tŠ€oz€|pz|y|•„zƒ†}ƒ‹yxw€w{ˆ“x†„u†‚€„€‚ƒˆ€j{ƒ•~x—†„}ƒz³v|‘„v†‘‹ws€†ŽŠŽ‡‘’€|’}Ž€‹~}‚‚Š}…{„Š…Šƒ{…u‡‘އn…{‰‡x‘‚€‚…†p|{Š|v…r‚†…~ƒ•xƒ‡†|Œ…x„ˆ€‘{†‚w“w}}|e‚…Œurƒz‹|‰wsƒ‰tsxŒ…lw|y„‹z~‚ˆ“y{{}t‰~|yy{„u„ww‰{xƒzz|ƒ‚z‚yŒ|†~~}xz~v}w}Š€}z}wlŠŠ‚{‰}€}ƒyk}un|”~v‰v|ƒŒ–{…†s‚‚›}z‡ˆ~€z‹rs†ˆq”„ŠˆuŒˆzzs©t~‘o€|xlnk†„†‡‡‘‰y…„x~w‚r{xvx‚}w~~~z~‹‰“‰ex‰‚xxŒv{}hƒ‘‰v€x…{drŒ{}yh{uzw…{vu—~ˆs}y•np‚Œe€€††kk‰|z|ns~|xr…}‚{hs}p‚{{~~}…zuqont{x~yx„~w|z~txƒw€„vyxu‡ww}‹xŒ…}‚wu…t”t|}{o|€y}xmvЇxz{…|ƒyi|y‡~qv‹v}Œ”w‰€†‰„€u”‰–‹˜‰•}“’“‚xŒŽ’ޙޕ”‚—‰‡x„™ˆ’ˆ‹nЉ~‰yp‹‚‰ˆ|~ƒŒ‡†‹ˆ‡‰‹|š†‘h–“‹“m‘„ƒ‘{™oƒŒ†{އx…“’•}ކ’~†‡„v•Œ~—‚’††ŽƒvŒˆ†r‚ŒŒŽŽŠŽŠ‚Œ‰ˆ‡‡„‡”……Œ…“‡…‰w“‡ˆ€‘™‹‡Ž“‰{‹ˆŠŽ˜…€‚ЉŒˆˆ„…‘†|†’„‡Œ€‹sƒˆ†‹‹…˜Œ‘“ˆŒ‚“ƒ•}Ž”sŒ–‰Ž‰n‹‚„Œ†{“x’‰|†Œzlofm|t|z{–}~ƒ|x•wˆ|€€zu…w‚Œsqyqktmx_rl}vmt|‹{fzrƒŠxzmh‚ptuu~v…rzqtˆ„}ƒdiŠ|‹ƒƒx‚pymy‰ˆ‹s€s™–~‡syw{iqhfzxzwkqˆu|oz”¡fx’lwwd‚njvwyo…‰}‡z€lhv€gq}yy–|~}‚€j‚p|—{‡bmGc‘}’…sa‚]‹h¸…a}Sxˆƒ|‡ˆ‚vzt…ˆtp‹iˆ‰q™[on†‰imhw}pƒq€‹’yrƒx†}{sS€Šspq‰o†zl~y†z{qw˜wo|„q~…ƒ~vu|’†‡xv€}€|•Œ€‚~tƒyiur„v{pz‰|…}zwspxƒozƒ{†„ry|‚w„xx‚|w|otŠyxx~v†z|{”|Š…xyi‡q}x{{z|zutz}|€z‚‚w{v…x„uy{|zŠ|w}r}tyvs{{|…†pyv{~‚x|……m{~y|€}}v}y~~{{xmx{pyƒ‚tyt{y|x|†{x}|}x{y†{}yzƒv{|ƒ|{€€zqum€~ky~y}ty{{y‰‚x‚‰}}~xŽx|‚}‚‚mz…š{†vutv“|kjwtpŽ…xb‚¡w‹`qu€spy…‰iw‚q„}œ€‚}adŠ{yr¨‚n}†“…vp…{||w}mtpqsy†‰‘…fŠtŠ„tŒr…pq…wŒ{•kvœb„‰”lep{yb€„œu_sr„kƒ‹˜|ƒy{…uŒ“wŒpzxqpƒ|}‰f‘voŽ~‚‰…ovvq‹ypŽŒwjqdŽ]…w}yd…“o‡Œpxtlp‡w{œƒouƒw{zxŠƒ~o‚vŽk‹zzz‚o„‹fƒTi~wv‡j„w~z‘˜‘yˆxxY}x†h›~„–l€uy~Ÿy~ƒ‚~|uˆ‡“‰œ†k‚€{‰~”‚†Œ~xzw„„‹–{~”‡˜~Žswˆ{ƒz}…{ŽŒ|‚~‡…•‰†xŒ„tƒyˆ{‚€’ŽŠ‚kŒŠxƒ‚†y–ƒˆ{z{}}“y|€„Ї„‡Žƒs~„‚‚yˆ‡†ƒ|‰Œ~{ty†|¥uxwr…Š¡†~†Š…†‡{y”Œ„t}„ƒp|ƒ…v~€v‡„x…}}Š‹}y‚}Ž˜…‘}z‚„…z†yƒ‰†‰ƒ€Œˆ—ƒŒ†„u‹…‚©…ƒt‚„u‚””k…y{’“ހЀv…‰‘Ž…“Žr‹Œ‹‘•Љ…“އ‚~Ž“‰†Œ‚‹†Š‰‡‹wˆ•„‹Š}˜{Œv‡Œ‹ŒƒŒ~‚ˆŽŠ‚}„™…—}…†“‡…ŒŽŽ€|”x‚ŠŠŒ‹{‡…„†uˆt‡„Œ‚y’Š’††“ƒ‘‹†‹ˆŠ‚‡‡‰šŽƒ‹†{ˆŒ‹‡‹‹}Ž}ŽŠ…‘‹‹‡Š‹‹{ŽŠ„ˆ‹‚‘†‰„ˆy…ޑЂ”€Ž‚Œ‰‰Œ{ˆ‘Œˆ‘‹Š‘‡‹ˆ‡‚„Ž—Šƒ’…Œƒˆ‚z“…ƒ’†‰‹Œ„ЄЄ†ˆ‰„‡‚‹}~‰ˆ“~‘{}j’vwŠƒˆ‚|¡ˆˆ}nˆ^ƒr‹‡Œ†‘†p³s„‰ƒq‰Œ|tr‡Q‡Šƒ”””‰x”x}}Ž€†|}™v—u{~x‘{‡€ž~¤Ž’vsy–Žx’’‚€`’„rp{ƒ{nŽx—†™‹yŒ„[sw€z‚‰‡yz€u„…y‚{€ys~“\‰~}dq—‹„‹wq}Ž„ƒ†‡„xs{‡}‰z€†~‚wyqsq„~swˆ}pƒ‡€y‰x€•„}zw|v{rp–rƒ~†wviŸt||‰x‡yyh‡‘€‡xŒ‰‚„‚pu{u}v‘|u“†xšg}œ‹…‚vˆx„”‘ˆ’Ž“”Šw‰Œ…ƒ—“t’“‚•““ŒŽ…ŠšŒ„u~žŒ…Ž‹„Š…ˆo’‡vˆŒ‹…‰‡’Š–“…~‰Œ†‡†…—’‘dœ›œi““rpŠŠ‚†~†Žš’ŠŒ”‚Š{‰™z…‡zŽŠ‹”އ…{‰x‚‰„}”‰…‡‚“‰…ŠŠ‰ˆŒœŒŒ—Ž„ŒŠ„Žl‡Œ†Š—‹‡Œ„Œˆ”‰—ƒ~‹‹ŽŒ…~–ˆ‹‹‹…€ŒŽ€wކ‰‡Š€˜Ž‡“…ˆ”“Ž‘‚™ƒ‰v‡‘‰‚”’rŒ{‰Œ‹‚‰h“ŽŽu}}€‚–…~k~‚‹xq‚Œ‘ˆy‘Ž€tºtŽ…z’Œwyq˜}”މ†‹Ž”~ŠšzŽ|‡y…~ˆ~…‹€|†‚}‡‹~‚{„’}‡oŠy{}z‚…€~}q†Š“lƒz…ƒoƒ…ŽŠ…{…ƒvz{~‚{‰z|~†Žzz}oy~\„•~…}ls~x€yrs€‰pq‡ƒzto……z‰rƒˆ{twu{{…„}zxx…u~…uw‹|“Œz{~vyv‰wz„Šzx€~“x}yq…ƒ€~wi††ƒ|{ƒ‹~€wyu|t‘p}‹v‹v„€ˆxŒ„…€Šˆ•”„–˜–‚|“ƒ•‡Š‰„y’”ŠŸŒ’Žˆ“ˆ——Š…y‹”‹‰Œ‹‰‰‰n‘…ƒŒŒˆ‰pˆŠƒ€‘†Œ’‡‹ˆ†…Šƒ—ŠiމŒ‰mˆ‹€’u™o‚‚…ˆ|Ž„‡‡–—ŒŠ‡…’…„‚v’{—ƒŒ•‰‘ƒ~Œƒ„‰‰w…—‚ŠŒ‚‹€‡‡…‰‡†Š‹“І‹|ŽŽu‹ˆŠ‡ˆ›Œ‘ŠŽzŽˆŽ’Ž›Ž‹ŒˆŒŽ…„‡ŽŽ’‹zŠŒ~‰‰~Œt‚†Ž‹ƒ…‘†’ŽŽ”ŒŠ”‹ŠwŽrˆ‰„ƒ‹n‡{{}t}‰…‰ˆw‹—~…z‘ˆ…Šˆ‹Ž„‚Ž‘zy€y|‚†™Š‹wЉvƒ‰v“xŠŠ…†„‹‰‡ˆ“—Œ“Œ‰–t‘•‡{˜”‚‰ƒŒŸ{…ˆŠ‚‡z”Ž ˆ†uƒ‘‹Ž‡ƒŒˆŠŒˆŽˆy‹”ž‚‡”†~Žˆ~y…Œ†“‡”‰‹‹†‰y„‡‡Œ†‡„‹†––‚ŠŠ”ˆ…’€ŽŽ’†‰‰‰…‡{‡‰Š‘‚œ‘‰‚zŒ’“t‹‹Ž~€–”ˆzˆ‚ˆš“…†‡“ŠŠŽzˆŒ‰Œˆ†‘—‹Š~†ˆ€Œ‚|…€‘—Œ•x’‡‰Ž{žiZs‚~™‹‹œŽz€††“~‡Œm‚‘z{ytrŒ‚“x‰’†~~tswp–‘}…~ƒj‰‘ˆƒs„ƒyq‘©‡|q€|…}…‹nmyŠšju…t‹~€w‹opu—n•’qw|€„‚}~—‘‰…wq†‹ƒ…s„€„|–y…ŽŠu„‚‹–•‰œŽ‹}š€~Ÿa‡’Ž“}wr|€’‹ƒr‡—}~€€|z‚z|Œ|r’…Š…€†Š†i•š~ˆƒ€”‡w…Ž–~z”Љ…”}yz†’ƒtŠˆ‡†w’|ŽŒ‡x„tvƒ{x‰Žƒ†…o…މƒ’’…‚˜~€|š„ˆˆ–Œ‚‘…ŠŽ“kv†||Œ€v“’—‰xu{•Œ‚zŒ‘|Š“v—‰‘‚€Œ„Š‹‰„…Œ‘‰‚~”“{“†‰‘{Œ–”–xˆxŠ’‡Šz–ƒ|tŽxx’’‰‰ˆ…˜Œ„„ƒ€z–„‚“Š€“†‚†š”ƒŒ‹Š‡„ŽŒ–Ž~‰•‹ˆ‘‰€’‘‹Š‹‡Ž‹•„‰‰|‚—‡…‡‘‰„†‡z†ŽŽŒ„‡‚”–Ž‚|”“‚€–†ˆ‘“ƒ~†˜‹Œ…}‘ƒ…‰ŽŠ}•‡ŠŠŒ…{ƒ•—Œzf†Žw|ywqƒqn|„|w‰v~rv€‘…~vr{|xv‰r{pv…xotwƒw€ru‡€‚{{}v€zwoy†~}uz‡y€r~wz…|o€„rhŠ}v|wƒ{yw~{‡„zwu‡mzzrxzx~os{{~v|rwj‚{|zvyyw—{v‰onvw‹mzvuy}…pxyyzzos}~…nu‚}w~~us€q{{vyqp‚uzrz€r‡}t‰z|t~|ywvqwyytvu‰ywv€uzxwŽvrvtutu~wwz‚u{ozuv‚z|}{€u}…Œr~€uw‘ŒpŠ˜†ˆ|‰ƒƒˆŠyˆŠhxƒ•}t„‹ˆ‡‘Žx~ƒ°q†‘€ƒ„€ƒs…Œ„Œˆ‘˜‚€‰‘}•‡{ƒv†Ž‡~ƒƒƒ~І}…|‹‡p“†Ž‡k‘Œz…†‚Œ…r‚y‡u{†•„‰€Ž}ˆ{‚„‹x~y‚‡…uŽ–d‡{~||e€Œˆ‡‰szˆxŒtƒ‡€ywy{l‹y…‡‚yކ„vŽ{o}†{‚ƒmv‚ˆ{ƒ}~‡uy}ˆ…€|€€rw…|y†~ˆy{˜ˆ“uvƒ}‡„ƒ‡€~jЇ|ƒ‡„ˆyy†zr~}•|}†y„€ƒ€€…‚‡zŠ|‹ˆŒ{t‚„}†„|l~Žy}ˆ†ˆ~’Ž…„}®uŒ‹„‚†‰‚xt†Ž‹„‚‰Ž“}{™“{Š‚ŠŒw}‚}ƒ‚‡}~~’•‚lЉ‹y‡~ƒ}…pzz†}t…}‘†}|ƒ‹…~…{€{‡„‰y‰}}Žw‚zv„wb„Žˆr{ƒzƒ‡zrƒ…sy…~Œ€u{ƒz€v€}Œ‹y}}}v…‚~vu…{~{„…tz‡w’‰wzts|vz‘~ƒ~…}†zvwu‘s|uu‚}vzwm†„ƒ{†‚{€uytxŒ‚v}‡vŠz}Žx„z}‚Œ†€tˆw}‡€‡ƒ„m†‹{}ˆ›–‡}Šƒ‚z´z{Œ†yw‚†y…›…Ž‘’Œ‡‰Žyˆ‘‡{~gˆŽ{†r…Š‚‚z“ƒˆ…‰yyˆ‚yŒ‰~}wz‚‡q}{‰xp‡„‰ˆ{‚’t‚Š€o‚}‰€}|…}}~}š||‰h”syŠ|~}“€‚us‚€s‚{‡sr~€}}„‚„‡ˆ‹€{vz„~x‰}‚s‰|„{ƒy–y{€|}†„uzzƒŒv}sy…†v‚xr}€†~}€ƒ~}z‹qu•}‡†wƒ‡y}…œy|epŠ~€qiw‹sf~~vŠ~}zvy‚xwzuy}q•ˆl|mvtucxo„mwqy…~€{jqur|vqax…xsm|„†orw|p…~l^yy~qˆnxx|‹}……vus‚ws}ovrr‚j|zth‡u…}pvp‡vyrywvvžtq€wqpzˆxptwnƒjzuzwykrr~Šnw„pryuowsp{}tlkyrusz~uƒzvwpzt}nvsspxyzy„ut~{zq‚vxwvqŒx|vrtrjo|wju€uzptxstsz€y|w|ˆ‰t€zxw{‘…ƒ†|Ž–~‹–‹“z‡Ž’…‡„~x‹•–yž~Š‘ŒŽ‘’𒆇–Ž‹Œ“…nމƒŠšr‹{‘‡~”‹‹ˆŽ†€—€–Šƒ“£Œ|i‘Œœ|‡l†”‡‡o„††€’…”™‚s‘–ˆŒ†Œ‡€x|Ž“†|—”‰Œ–}|Š„s‰Œ‡‚~ŒŠ‹Šˆ‰Ž}pŠ„…‡„–„‘‹’z‰‡|Š}„‡ˆz‘˜–†~–ˆ†ƒ„ƒ‡Œ~Ž€‡‚x„…€’’‹‡’}›vˆ•ˆˆ“‰ˆ“ŽˆŽŽˆˆ€‡„„‡v„‹’“lŽ€‡Œ€ƒh£nŒt‹vxl€–‡y{ €†}‰‡‘‡fsx|‡nŠyi‚~~y„žˆ~Ÿc“‡œz~|xwƒ Ž‚kˆ‚Œ{pc„†yo‚’³ˆƒtˆk€‹r‹s‚€^™d~n~}|sŒx‰~r€—„…‚Ž–ž„ƒ–°‡ŒƒwÃs‹‚‘Œ–¼†“‰‘…Šs†‚qqmˆ‡~šu~…ƒ„‹Ž€Œqˆ~lt…r˜€‹„€…€vpˆ~‹’•”‰……Ÿ‹ƒ‚—}„ˆ{uŠ~u~”w‡–†‰ˆ|zˆz~£~|Šxxy€„˜ƒŒ†wŽŒŒzŒ}ˆ}„‘—un}ƒ†Œxsxu|†qdu’sr”ytql€—•zzxu}{ƒqŽ‚yx~yx}pht|‰pwll„wvxv~sp„l€l|v„uvt~‚mxjw‹x}ru{g†{qw}pzu{z™‰„{wn–wvvtjs}utyv|}}Š{sws{sn{sz{‘ttyxt~x‚vuvuv…}k€z}zqsx‚bt}yzzvmqypywyvkt|sw|z}yzxxx|rqvvz€yu|€„}‚vw‰r€|~‰}€~psztov~~wmrc{}xs{xz}|w~}yƒŒx~y|{tŒ~v–‘ˆwuˆt|—‰„‹xŒl{…v†‚z„‚Žƒ‡{ŸyyŽ…zˆˆw —†iŽŒšŠ‰ˆ—tƒŒ€˜y{‰“•u‰—x†‚’zrƒ‰‡„|nwx”–{~}‡~…t{ms‡Œ†š’‹–Žsoƒ}“Іƒƒ‘‚z‰Žr–mp~“a{…~•€y}vv{t~ƒqˆy‹q„ƒs—z’…‚q†rƒ{|‡ˆj„„}‹|n~‚‚‰v‘t‘t‰€•tŠ|”{tv€Žˆ€¡oqŒ‹Œ‘‰t~|ˆƒ‡ˆ‚‡uz~s•Œ~‹†~v{Žƒ‡\~s{vox‘”xu€‚evŸpmqsw}{ym‚’€vvw|‚“–~z€vpsqqwj|‚wtmn‡~„|p{stƒqy`ttˆ{nu{prvxyxwkgˆsp~i‹qzw€…‡xw^y˜vwswkr~m~{rh†yŒ‚tzsxq|rzyzwšonzqqwvƒxoxvlŠ|e|{{u{hrw‚jx€wpsvtluwz|smhswxnw‚lwsstzsozvxw}z{vŒvu„{{voƒtz{|yˆy€nqxrnrzpttzwsxztwut~v}w€ƒ›tz{~wuš‹’Žw•”‚Žˆ”Š}|…‚‰‘…‰y‹“š”Œ…‰‹œ—‰Œ’‹ƒ‘”ŽŠq“ˆ‚’Œ‚”s†…†‰–‡‡‰ˆ{Šˆ†‡z‰Œl‹‡Š…‰q„‰…›~s‚Œˆ†~†…œˆ~’……”‹‡s‚x‰—|˜‡‰Œ™€y’|…ƒ„€‚t“ƒŽ‹Œ€‡€—‰ƒ‹…Љ~’‹„„†‰ƒˆn‹€‘ŒŽ€’„„Žˆ€„‘‹zŒ‘†‡”z‡…„…˜ƒ’Œƒ„„}…u‹ŠˆŒ†„”‘~‰Ž”‰‘ŽŠ€”|…ƒv†Žˆ‰’o’ˆ‚|vn{„Š}xz{k{mjsŠtx}{zk}Ž„wxr{}…y’‹y|~wvwri{j{wvultˆu{|j|rq€p}ez‰vŽypw€{o{rq…xx~usgˆ|sqmnzw€Ž~‰„twk€‹yxrwjq}oq}uiƒ|x„uyr}rsxyyw–ppyqtuvƒuouun‡{f{x{x|kpwƒ€my|{stusjuwt~{rnotwxpv€ƒtwrstys~qyvswxzzw†vvƒ{{xrƒu{z|y‰ymsurns~|vst{lrxztwww{v~w–u{{|vv†•ˆ~†ˆŠƒƒ†…†‰ˆ‹‡…†Š‹‰‹Šƒ‡‡|€”‚€‚„}…Šˆ‡w€†…†€‚‹‡‚‡‘‹ˆˆŒŒ{ƒƒŒ‹‹…ŒŽzŒ‰„‰ˆƒ„”Šƒˆˆ…„~Š„ƒ‹‹x’Љˆ‚‚|‘‘„ƒŠƒŒˆ‰„‡„…}ˆˆ…‚‰„ŒˆŽ†ƒ‰ƒ‚’ŠŒ‹‡‰‰Ž‰ˆ…‰‘†„ŒŽ‰Œ„•Œ…ŒŽ‘‹Š…†…‹†‚‡ŠŠ…–„Šˆ†‡Ž€ƒˆŒ†€‚„ƒ’†Œ•Œ€†„„Œƒ‹Š‹Š…ƒ„ƒŠ‰‚…“‰‰€Šˆ‹ˆƒ„}Š‹‰ƒ‡‰‹‰€’t‰‚–€ŠxorŠŠƒƒ†„‘…§•Šœ‘‚u¢Š„—„…€{{z†…‚І‘šƒŒŸŠ¤s¤•Œ”—˜gŒ”~u}Žwƒ”„’šŽ‰‰{‡”}Œ…‚‚z’‚¡†zm‹…xœ„¥tzx†‹‡q‘‘’€q~Ÿg—xŒˆ“—‘~†ŠsŠ|—Š““›„‹„{’Œ{x|~™‡‰Š‹Œ¦ƒnކ—Ž†ŠŒ‡}Ž“Œ‹‚w{…‚˜ˆŠb•vm„‚j„ŒpƒƒŠ›‚‰vЉЀt“ˆ„„‹‹p—‡Š|ˆ‡†v‘~ˆ‰†ˆ‘yŠ‚‚’{…–„xpl…|…€€€t|†thtv{…‰}|m~Іˆ‚xz|}މ|{‚wqwswxm~„ysp}†††{i|qruq‚l{–x~}tsƒ~‚srrxyzˆypk}nr€nt{v}ƒvwhŠ…z|yykr}o…zsg‹||ƒˆx{wu|u}zyzˆrm}ot}yypzxn…€b|p|tykvy…kw€xsswxqwzv{}vnou{{ox‚†pxquu||r|yy|}}}y{w„~zyr…r}|}{†{nq}spwylxx}swz|yyvy€w€y…Žv~z€wyŒ‘ŒŸ„z’‰†‚y‹m–Š…p‡€††„‹†‡‡œŠ”’ywŠ…ƒoƒv‚†‘zv‰’‘‘ˆ‡Š„jƒzŽ|„…u–‡…‰ˆ”Љ‹Œ†Ž’”yˆ‚‘…ƒŠwŽ‹ˆˆŒ”††v†“~}…sxІ‚…‡†”€‹„ŒŽƒ€…q’Ÿ„ŠˆŠˆŠŠŒ•‡”‹‘|ˆˆzt‚‚uzyy‰‹†Ž€‰ˆ†~ƒ˜‡ˆ’š‰‡‚‡€…‹„}†x~…‹„‡‡|’ƒ‰Š€~‰Ž˜‚ŒƒˆŠ”ŒŠ|tŒ‹‰ƒ~Šˆ‰ƒ•‹‰‹ˆ€„ƒŒ†—€l–“su{„u|€xs€‹lŒŒ†px€˜††‚t…m|ބޗ‡{…ƒ|ƒq}‹|q‚€mrw˜yŠ|šƒux‰x„|zp†ˆ‡}r€‚…|x~~ƒy„oŠŽxs…}w†yy{ƒ{‰ƒxpŠpv{~}„yw‡‚|}ƒ€yŠx’~y€~’ˆ€||}q|r„~„o{~šr…Šƒ}{€v††€s}|‡{~‹ˆn€|}u|…‰s|v{yyƒ|~ƒˆ{€€{zwŠŒyƒ‚…€€‡€†€€ƒ‚z‰zz|ˆu~~|x}}y†‘„‚†€}…‚xŒƒ‰{„s‹‡„kˆ…‰Šƒ‹’ˆ†–‚‚{‹–މ”Œ‰‘”ˆˆ†”kl…ry‹†“‹•ƒ{y…„‡‚n‹Ž}”‘ŒŽˆ}“„‚“›„~†‘†—t‘’Œxˆ†‹ˆƒŽŒt–€‹Ž‘…–tˆy€‹pˆ‹‰ˆ„Š„œ“„‡Š’Š–‘ŠtŒ‹Ž‡’Š’‹ˆ…|–€˜•‡€‹‰}‰‘’Šƒ’Œ‹™Š‰…Œ†‹‡—††Œx’‡Œ~—‰–ƒ€˜Œ‡”†ƒŽ‘—ŽŠŠŽ‹ˆ‹‡ƒ—…„Œ‡’~’ŠŒ˜Œˆ˜‡†„†s‹•މ‹‰Œ”’yŠ•}Žƒ‹‚pŽ•„–‘˜…‹{ކ’”‰ŒŠ€€Ž’‘ˆ›}’Ž~˜ƒ™ ‰†™‘†t‰…‚‡„o…‡‹v‹”Œ}‹Œ†‡Œ•ƒƒˆ‚ˆ“‰•z‰ˆj‚‰‰ˆŒl‡€†p…o„…Š…}ƒ’x‰ˆ‡†ƒ‰‹”…‚…x”Ž’’‚‰‹ŠŒƒ}‡}Љ“Š•‰†‚‹’€–Ž’††‘ƒŠ™ŠŠ‚‹Œ‚…}|Š’ˆ€Šˆ•›‰‡‘‹’Š‹™‘‚—މŒˆ‡}„ˆŽy‘{‹†‡€‚‰|‰uˆ‰Œ‡ˆ’‰ˆ„‹Ž‹Ž†“ˆƒ~‰u‡…’{ŠnŒ“„†~†~‚|‰‰€tw‚{|‘y†„k‰‚{z„Œƒ}~Š…‡‚·x{‰…€‚r‡x€v†Š„†“—”Œ{ŒŽ}Š„“‹syƒŽ›…h}ˆ„w…{Œ€Ž‹‡wŽ‚“y}Œ„m†|Œqw{ƒu…„‰y€‹ƒ}ƒyqˆ~‡†||Ž|zƒ}œ~~Žc‹x~ƒy€‘}{~tr„u{}~ƒzp„ƒw…ˆ„„Œ‰…z|wŒ„€}tŠx~|€‚ƒ{€xz•‹{{~w‰|ƒ‰~Žƒ€~{y{r—t}t‚ƒ‡y|yn†‚ƒ„z…ƒ}y|„qv–z‡‰w‡‰ymz†ƒ‡‡„‹muzt‹…ƒŠz˜…‚ƒm‰}|}—ƒ|Š~{®wˆˆ‰s}ƒŠ†usŠ‹‘}›žŽ‡€’‡x‹‚‘Š|€|“¤v}[„’’€‚~y¥‡Œ}Ž{˜Š{‰˜r†~‡pr|…~j…|‡ƒ{“‚y€ƒ…}ŽŽ€~“€~‚tƒ}“Ž‹tšc†Œ…„y}Œ|€xs€‰…€}v–—„vk{Œ–ˆ}~ƒƒ~|„{v‰…‚}q…}ƒ}ƒz|…“{|w|y~…‚z~‘v|{tw™v|w…Šwz|Œ…€}{€‚‚~†vmw•~~•—yz‰z‰qy”‰‡„z‚“t˜”…z‘‰ˆƒqŒ…‡”‡Š‰‘™‹™•‘‚ˆ†‹‘™Š‡m†™‡‰j„„ˆvv‡Œ‡Š‚|uŽq€Žˆs„€ˆ¡z‚œ†Šƒyƒtœu—c”‘‰›Œp‚£Œƒto}‡z†¨•“‰„‘‹ˆˆŠ|‚}Šp˜™y‘‡‡ƒŸ›wuy~|ˆ‘||”sŠ‹™‡††€Œ€‘ƒ‘œ†“œ|Œ’”}’•iЇˆ•’–›މ“•š‰¤„ƒƒzƒ‡˜›‡‰‘„‘‰{xx”šŸ|Ž—‚Ž–ˆŽ”}«„s•Ž}kƒ’y„zzŠn˜Œˆ‡–w‡‘ƒx„}€v€‰‚rrˆ‰~y‚‹…{ˆ€zy°u€€|†}rrŒ†€ˆ……މ|„x€}†Š„w†€†“|xy}|‡twŽ}†ŒlŠx€‚yŒ‹~zƒ|††„vvw…|n{‡Š}‚ˆx‰‰z‡wƒ†€y‚ˆ„ˆ}wŠ|x{cxƒ€}€}ƒ}„zƒ{q…qq€†v…‚‚ƒzˆw…‚{€xt†y~z}€v€€z|x{Œx||…{xz€}v†„~ˆ~}zx€˜s|~|~{wny€zzƒ~|qs}wtuŒ{{‚tx‡Šv…ƒŒ|f¦Ž§zŠƒ‰›‚„‡Žt~•ˆŽ„…¦‡™}‘Ž™}Ž]‹›t„˜r|}‘Š{¤ysœs}o†™¥£z…˜Ž…§ˆd˜„ƒˆB‘‘ª…“•™¢vo“€w‚š„„{‚{†s—z•y™Š—Œzs‡‚ƒje†>©ƒ„ny‘m‰…’‰­n’¡—’†—“„‘€z“ŠŽ“‡Ÿ‰zŒ”ˆ€‘œ ƒ|†Žš™{€•¨{™r˜™x˜‰z€Š|‡‹t‘•{ z{²‚…ˆ‚sƒ‹¦£‡¦—k}~kƒl}‡ƒ~›ƒ”ŠzŠ˜¡£¢y‹ƒ€‹q•†œ¤…‡›x–—–Œi•‚ŠˆŸy“‰sƒ“{‘Žƒo~v–‰…˜§ƒ“”’Œžšiwƒ…}„€‹“ˆ‰}b‡‘—‹‹€ž‡‡^‰€uz„–‡“x‡‚˜Œ„£‹‘„“|Š™‹vš~£Œ|ˆŽy˜€›„†Œ‘‚{s€ƒtyœ…wƒ”††všŠ•‰€¨z†—œo‰™œŽ‰˜–{y‘z›•‰t’„j~yŠˆ\І”z•’ŒŒ—‚š™{“Š—|Ÿ‹€‰‡{„ŽŽª‡‚‘ˆ‚ˆ€„‘œ“‰„‹…z–„ŽŠ””z†‚œ‹‰„„œšŠw…’Œ‡‰Ž‡Žvœ‹‹…Œ“”~’–‚—ˆŠ~…ˆ‰€y‘‰”„ŽŒ€x‹”‰–‹‹Œ–~–‡‡w‡™‰‘ŒŒnŒŒ€Šˆxr‘ЇƒŠ…’ކƒ…Іˆ‰Œ‘—„‘i”ˆ˜ƒm‰„}™pƒ‚„|ˆ„Œ’†Š”ƒ††Ž~„zƒx“•ƒ””ˆ€‰ƒyŒ‡‚x~ދЋŒˆˆŽ†ˆ‡ƒ‡Ž|‰…Ž~‘†‚“‹u‘†ˆ€œŒ‹‹•ˆ„”‹††‰•ƒ€|‰Š‡‡…„‹‚‹ƒ‘„’†…ŠŒu‰„„‰‰†—‰‘‘‹’ŠŒŒ‘†’€”}’r‘”Šˆ’oƒ‡Œ‹‚ІŽ~ˆƒ‡ƒ‚~Ž—‹‰—‰Ž—–‰–„ŒŒ–ƒ‰tx”€€’€‚€”’„xy“„‰‡zˆŒ‹Œ‰Š‰ˆ…ƒŒ„…Œ†“ˆŠ‹‘……ˆŒ•ŒyŠŽ†•ƒŠˆŒŽyŽ~†ŽŒtŽŽw‡‚‘†z‘…„Žˆˆ‰„zŽŽŒŒ‹ƒ‡›€‡„Žz‹„‰y‚‰…”“Š„ŽŠ‡”ƒ€‚Œ…ƒ…†‘‰ˆ|Šš}šŠ‚‚‹„–‘‹‰†€…•‘„ˆ ’„‡‰yˆŽ”ƒ€’ˆŠ‚‡ƒ€‹”…ŒŽ|x‹€Ž…˜”‰Š—€„‚‰…‡‘ŒyˆœŽ€……†…}ƒ…‹‡ƒ‰Ž‰r†‹‹‡ŒŽ““‹‚އˆŠ’~v†—†—‹“‹ˆ‹—‹…•Žž‡ŽŒ‡Œ|Œn‘Ž€‡ƒs’Žƒ—‰–ˆ†‰ˆ‹‹‡Ž’€‹hŒˆ‘Šl“„‚‰wŒo†ƒ‰‚}…~‰‹‡“Ž„~Žƒ‚{~{‘Ž“‚”“•‡}~Іއ‰Ž“…’Š‹’„‚•‘†ŠŠ‡Ž†‡ƒ’|Љ~}‘zˆ„‰‡˜Ž‹Ž”††•Ž‹„‚”€z‰ˆ‘Œ…†“€†‹…„’‚ˆ„‚{‹w’‡‰‡—ˆŠ‰‰Ž‰“Ž“€—‡‘‰s’—‚‹”n’ƒ†ˆ…ƒ‘ˆy„˜“Œ’Žx’Ї‡†“ˆx“ƒ‰‰¢™’‹Šƒ“˜“‰‘ˆƒŸ‡‹Šˆ„|„Œo‘‰‚Œ”†t‡ˆ“{“Š—Ž”‹‚Š•‰€‡…”„Œ‹i••ƒŠm“€ŒwŒqŒ‚‚‰~‡‰rŠ‘‘˜“{‡ˆ‘€}Œ}z†‘‚…Œ‹…‚ŽzŒ}ƒ•‰‰ƒ“‡„’‹…„„†”‹‰Œ†‡‰Š’މ‹„€’‡nˆ‡•‘Š‚Œˆ†–“’›}ˆ‡‹‡‡Œ€„š“ƒ‹Š‹Šˆ}ƒŒ}yŒ†‡‡’‘ˆ|”‘Œ–ŒŠŒˆ•tŠ˜‡Ž’oŽ‚ˆƒˆ{|‚y|‚‹‚~s‚“ix…Ž}{†’†q•~‡~…¥ut†‚f‰‹~…yˆ€ƒ—ˆ‘”‡{„qq“„{swŠˆ…–v~’‚}”|z˜”„k‰xŠw„ˆ†…z“ov„”}}’‘˜„sƒ…ry‹wƒz€{v‘‚„|~oq‚}ƒ|ˆiƒƒŸ„‹ys•{’Œ‘ukx|mt…xol{‘tŒ|€„t‘€ƒsyx†Šyw‡t…|„x‡‹}…zzz€‚‰‚††~’ˆˆ}‡„ysx—~~’†‚}~…lx—~~‚}„†Šuzyn–Œ†}~€‚‡Ž„‹Œ‹}™•ŽŠ†uˆƒŒ’Œ„Šˆ„Žy™“ƒˆˆ}¡––Ššƒš‡Œ“‰€”‘’n‡~Š‘y‘™‰‰~t‡ƒ‘•šƒŠ‘„ˆs“h|’m†‚}|p‹ˆŠ‡{Ї†wƒ€˜‘‹‡’…z•}ˆ}ŠuyŒ€ˆ…ˆ‚ƒ‡“‰†‰‘~‰‰—Š…ƒ‡…˜‡‰„‰’Žƒ„‚Š”ƒІ‹’”…ƒ“‡ƒ‡•†œ•އ…†…Œ|ƒ‹Žz‘zŠŠ…€€w”ƒŽ‚—Š‹ŽŽ“‹‰’‹ƒŠ††‡q‰–‡•…–m“€Š’ˆ†…Ž‘•‹†”Š‹…„Œˆ‰††y—”‹‰“šŽ}™‹ˆˆŠ‡†‡n‹Œ…Ž‹‰†u‡‚Š{’ˆŽŒ’‹‚„ˆŒ‚Š’””iВމlˆ‚„Žp‰‡‡}‹†ˆŠ“„€”‘‹ˆ‚‡z‡€}‹Œ‹{‘‰„‹z…{oŽ‹|”†„Œ‰ŒŒ‚s–‹„ˆ‹‰’”‡ŠzІ}ˆƒ‡ŠŠ{‘””‹€‹‰‡†”‰€z…‡‰†‡~‹‡‚‚Œ’‰Š‡‡w‰•†‰Š”ˆ”‰•Ž’‡†’}‡{u‡‘‹—••m‡„ƒ‹}w‚‹ƒ~y‚}}„~}ˆ€gwˆŸ{{…“‰}…}ƒˆ´w{ƒ{‚„ˆˆr~‡‰…ˆ†Ÿƒ{ˆŠw–†…z{~|}Œ{|~‚x‹‡x~€v–†Šk‹t•ˆr„Œ‹„v†Œ~o|}Š{vŒƒ‰…€‡ˆ{‰Œ„w„}{ƒ{~„ˆ„|y„“w|†vg†……yy…|„†qq~zulsyƒq{|’y€‡{€‹~‡…„z†z‡w{…x|†}}{z†t‚Žkw}vƒ€‡€€‚ƒ…ƒ}{t„~uw‚y„‚~yymƒŒsƒ{€„|{„‚x€z‘‡y‰€xŠw…‡ƒ‰†¡ˆ‘‚bvx~zzŒŠ£‘Œ‹‚ˆˆ–„š¢›Œs‰•€—‡e‰£}t†‚gpŠ“¤|¦Š‰uz‹Ÿ„wŽ€ƒh€wŠvx“o“{‘”|“±j~ˆ›{—n“’‚‹l”§}‘x‡†v‘˜Œ|ŒŽv…Žmƒz~–’†‰a‰Ÿƒs’|}}‹°Žœ€””‹Œ”…Œˆ•…Љ’ކ‡ˆŒ{‰ˆŠŠxjy‚€„…•š‘j˜v„ŽŠŠ–x…wfˆšŒŽŠ•„†Š{Œy‹Œ…‡‘™nv‹†„xx~Œ…„‹…zœ‚~Œ}xŒv˜…†“‰Š™ w”˜‚‘’z†‚v€š{b—‚mf}–~‘r~t§z…v{‘ ƒ}€{¡w–`ƒ’Š~rj}||zŠŠçˆš™‚Š|‹q€‘Ь˜‘±ªuw\‹›n–Ÿ„‡—‰…£š}’‚†Œˆ…w…ƒ’”~w~{v¦{~™s†s•†À¦ €Š‹Ÿ ywŠ™’z…fr¢iŒ‘ž€vŽ‚‘•ž—yˆ «‚‚Šyxz~}…Œq‚ŽŠ”•މ™|Žˆˆ™šŽ‡„‘†…~lu„}…›–‡¥‘ˆ‘™€zy~Š‹|‚Ÿw¥œ†‚{r–‘ix‰Ž…|~‹’–­x™‰z€”~Ž›“t‹x‰…€wsy{‚Œ|xŠŒx{szŽ~s“ކu„Œx€s¢v‰ˆ€}„{{s†‰…‘|~ˆˆ„|ƒ…yŠ~Œ~|yŠyƒ…vypyv{†u|Žv’††ƒk„|„~y‹s|~z‡ˆp|v‡†g†}}z|uo€r~€vŠ}|w{„‹‚Šy}{xŽxtŠpeˆŒz~ql…t‰|}ts}}‚nvx‚~ly€sƒy{|„p‚€fm}vtx|~|u‚zx„…ƒrz‚w}~uxvqv~z‚x…€zyyŽx—s|whyzzr|xot~{uyqz{l|v…u}xwˆŒr~|Їy‡‹…„v”Žˆ€…€~“”Š~•‘“‡‰‰‰‹‘‰ŒŽ|{ŒŽ‚‘‡‡}•ŒˆnrŒŽŠŠ~}–‰„‰|ˆ{t‰…t{ˆŠ…€ŠŒz‘…ŒuŒŽŽ†™|†…˜ƒ„t‡‹~‡w‹‚‹ˆ„~€Œ˜ŽŠ†‡ƒ’ƒ€}”‘ƒ„އ—u|Љ}ˆŽŒˆ~‰‚ƒž‹Š‡‘ƒ‡’‚ƒ†“‚„ƒˆŒ‡y““І—ŽŠŒ‹‹—”ˆŠ‚Œw—‹ …‡ƒŒ‚ƒˆ•Œ‹—‡‚…„‡Ž–„ˆŠ‰…™}ž“‚ˆŒ‡ƒ‰‡–ƒ‚“‰„‘Œ†zƒƒkˆ‹‡Žp’Š|kˆ}‰ƒ††wŠ˜ˆ‰€†€ƒž–‚–ƒ‚‘Ї‡‘in™uz‹Žœ~›‹ƒŒ{“š…‹†o›‰‘i‰„pŒ’‚„‡‘„zŽŽ•–š‹‘–jŒ’€ˆ‰šŒ†…–u {‡Š’‚—‡•„Œ’ny~€‹‰‡Š‡’†‹„‡™†‘‹›x‹…‚†Œ…ŽŽ˜‹–‡Œƒˆ‘ˆŒ†€Š‹œ„„{Œ—‡™ˆ”r™‰Š’„–Œ……„€‘–ˆ——‘†‹‡|‰‹‰‘—“ˆqƒ††uv…’’““…„‰‘•ˆ‹‹•z€…†€”›‘ˆˆ”އŒ’Œ„Œz‹ˆ‹€‰}ƒs}ƒx„{{Šv†„mv†y|ˆ’’x„}|®z‹„x‡ˆ‡y{€Œ}‡†”Š|ˆ…x}Š„|‹‚‘zyx‡wކ|ƒ{s‹~i‰xŒ€z‡”€}…‚„~‚oyxŠ}t‡‹”„w}„‚x€|}…y€…{y„|ƒ|}z‘~{|‘bŠˆ‚{u‚}‰†~r„~zp~€ŒŠw€‰|‚t~~x†€„‡|z‚zuyww‰~|w|w}‰zyy{ƒw€‚…„~|zvv~˜s|~u~€zx|yp~Š‚y‚z}|rru‹‚y…†vŽuƒ~Žx•Œ†ˆzŽŠŠ‡Š’—ƒ‚‰~’‚t’ŠˆœŒœ‹Œ}•—Šƒ™‘¢ˆ‡‚ƒo‘€‹‘ŽŠt‹~¦Š˜ŒŒŒ‡‡‰Š„Š—§‡~‘‘j•Œ‘Œƒl•ˆ‚ƒ}‹p‡‡ˆ€€Š‡ˆ‹“|“šŠ|…ƒz€}}ˆ‘‰}™ŠŒ‘Š|ƒx{•Љ~“‚’‡“‚n‰œŽ€Žˆ~‹‚ŽŠy…‹w‡‘‰~‡~“’Š‘Œ†‹ŠŠŠ†mxŒ‹Œ‰‚…Œ†„}‘”††…‡|x•‹„€†Š‘‹’˜‘‹”yŽƒ‘‰uˆ’Š™—šm…‰‡}•‘€{„‘“„˜—ˆ‰y~ŠŒ‰‚‘ˆpšŸŽ‡Ÿ“ŒŠ€‘œ”‘ƒ“›Žˆ‡ƒˆ‡oŒ†‹rƒ‚} ‰Ž‹ƒˆ”„ˆŒ}‘‰i”Œ‰‰mŒ‡€’|…qˆ‡‰†}†…Š•€”‰‹Œ~Œ„z…‚z…Ž}—€Ž„Ž•‘x‡{xŒ‹|ˆ”‰ˆ‘‰~‹Š„‡‹‘†‡Œ‰ŠŽŒ”|}‡„‰“„}‰‹zŽ’ŽŒ‰€Ž‡‹‰”“pŒŒˆ‡‹‚ƒ}‹€ˆ„ŠŽ„ƒ‡ˆ†Œxƒ‰ƒ„‹w‘Œ‰“•„„–ƒ‰€ŒŒr‹…™‘nŠ–…‡†‹†…•˜“ˆ’Œ—‚z{‰…Œ–Œ‡~”‰žŽ‘‘‹‰Šž–‡†‡’‹‰wŒŒ‘Žn„„‹ƒx‡Ž‡‰‰…†–™}‰Žƒˆ‘ƒ‚hƒ‹‹Žm„Šš€Žpˆ‡‚‡{Œ†‡‰‹ˆ‘‰†Œ‰Žƒ}ˆz”‰|•€…‡‹‚{‹‚‰‰|„—‚ŒŒ‰Œˆ“€‘‡‹‚Š„ŠŽ‰†‹€†‰Žv…†„Š“’–Žˆ€ŠŒŠ†‡—Œˆ‰‡‹‡”}†Š‹„Ž‘†…‡Šv…ˆ‚Œ‹„”‹Šˆ‘‹ŽŽ‡ˆ†~‰Šs‹’‰‹‡”l}‹„Ž~qw“…p~„Š‹’’z‡‘–‚†x‡Œ‡€„…‘Ž‘€€ru€w|Š™Œ”‰‰”w”†”~v‹”~„‘z“˜‡‚‡Š‚Šˆ‡š’ŽpŽˆ„Œ‰w’Ž€†‹œx“ˆ‡˜…Ž„ƒ—rƒ‡ŒˆŠ†”‘ƒŠŠ‰z›“y¡‡ˆ”~…ˆ™w™–„†—t„ˆƒ‘†v„‡‚ˆœ‡Ž›y•‘“ˆ”ހЇ‰ˆ…†ƒˆŒ~Ž‘‰†ƒŠ‹›„™ˆ‰{–ˆ€ˆ‡Š‡—Œ‹„ˆŽ…’xŠŒ‹“…zŽ‚‹““†‹…‰~…šˆƒ‘‡ƒƒ}‹Š–€’ˆš‰Œ|„„‘Š”…‚|”¥‘ƒ˜‹’‹Ž‰š‘†||‰’މŒ‹ƒnˆŠ„€‰ŽtŠrŒ€Ї‹ŠŠ…€’|˜……™“~•‘i–‡š„m‹“€Žƒˆp„‡•ƒ}‘‡˜‰™y•Ž•}Œ‚}„|’‹|‘~’Œ‚ކ{‰€k‚‹Š{“‡ŒŠ‚†‡Œ‚u‹„Ѐޖ‚”‹‰{ŒŠ‡Œ‘ˆ€†‡Œz”’𕑇‚”ŠƒƒˆŽ‡}Ž‚‡Š€~†‚x‚Œ‹Œ˜„Š€—v„ŸŒ‡‡”‰‹‘‹ŠƒŒ”‡€Ž{y‡u…ˆŒŒn‰yšƒ{nŒ’Š„‚Š{Œ’‘ƒ–ƒ€œ‰–‘ƒ‘““ŠŒ”jmuz‘‰‹ˆ—†|y‡†Œ‹‡q“–‰„Ž‚€ƒ‘Œ„”…~‘Š™„…‹’ŠŠ‘n˜’y„„•ˆ‡Ž‘“už…Šˆ…}–‡€‡‚„†s€zˆŠ‡ˆ€Š–’†Šˆ”„“†Žwˆ‰„†‚‰Š‡‚–™Šš–Љˆ‘…ƒ~—‡Š‚‡ˆ††ƒ‹w”‰…z•€•Œ“{…‰…‘‘Š„¢—“‡ŠŒr‡„…‘ކˆ†tŽ…‹‚‚…Œšƒ€‹ŠŠŽ‰œ‡Œ™ˆ†|ˆ”‰{‘Ÿ‹…†–ˆŠˆ‰ˆˆf€Š‘qzw‚qxˆssn€}ƒ€€‰q}‹‹„yn€}~{xŒ†q€ƒxx€wz|y•‡v‰sv‰†{uo{”…x~–y‘‰xs…mŠr„|sƒu€|r‰w~„}y„|||k{x‚‰q}…r|u||zƒ€tƒv€„kzp‚pw|{xƒ~ŠŽi€“l{{}|{lqxw}|uxes‡}…~†|…‰}ry€y}{|pˆw}q‚sƒp’|}xu{|ou{{wy{p‰mz€o{z‡z•wzwˆwx{}{t}‚z|r|wq‚ƒ„r}‘ƒ~‰}‡‡u}‚t€|’‡ŒŒv•™“‹Š‰’ˆzz‰‚Œ“‹‰‚|Œ‰~ž’Œ‰‡ŽŠŸ™”Œ“…˜ˆˆ†ˆ–ŒŽn‘‡ƒ‹ˆ–vˆš†Œ‚Œ‰†’€–…ˆs‚‹‹h‹Ž–m…ˆ€—{€oŠˆŠˆ{‰‡‰€‡†‘‚ˆŒ‘ˆ~‡}z–’}‘‚Žƒ„yŽ‚‹ƒ‰‡}€•ƒ‰™ˆŽˆ‰~‹•ˆŽ…‡†’‹…‘Š‚„Œ”u€Š‰‘ŽŽŽ…€‘‹Š‡‡—™˜Œ‹†‡†’z„”ƒ~Š‘Œƒ€†‚w‚€„•‰‚…ŠŽ•ŠŒˆ‘‡†……q‰’‚m‘}‚…Œ„ƒn††~Œuv„u|Œ‡‚…uŠz‰€•†‹s„‡‡‡“…ˆŽ|~~ޮމx€•„‡Ž†u™…Œ‡‰‚wf–‘…tx{~…Œ~vqz{‚šˆs{Œ}|ƒŠ€vƒ{‡q|}‹~v‚ˆ‡‡x}|ƒ{”†v~~ŽŽ‡‰ƒƒ€{„…€ˆƒƒ…ttŠv…„Šv{˜}|{‚~–{…€‚Œw€›‰ˆv‰Šy„—‚q‚|€„†“w‚|{|Œ}|ƒ„–†’xƒ‚ƒ|ƒv~x€‚y„ƒ‹ƒ‚‡…†„y…ƒl‚{„u…uŒŽ|‚{—„„}‡}‹ˆˆ†|Š{tˆ“xvƒw„Š€u†’yu€‰umŽ~Š~|‰ƒ}}z¢~„‹‚s{yuqfƒ}‚~„ŒŒzx‰z~€…‚syzƒƒŠuvrƒ~w|u|…|‚…~k†x„€zy‹~~v‰‚‰zzwt‚o‡k|~‚t~€wszuy‚v…xyw|‘‚ƒt}|x“xyz„gvq„z|n|‹u{rs„ˆ€yy€rrx{r~zyƒ€v}‚|rm{tus{}wƒ€wtƒvz{wy~syt‚yvz‹}‚wxxm‘u|w~tzrymz†~{yt}{xyŠvzyŒy{Šyx‰v‚~ŠŒ†ˆaˆˆ€‚xxˆut‚y}|ro‚‚„ˆy~‘Žu~v€‰‚–ŠŠ…‹tuvw‹~«€v‰~“{ƒƒ‹xr€ƒ~w\‹†yw{x~‚†{zŒyqww‰‘x}Š~zˆ~{y‡|„uvz†…qx††p|y{xŽŽ…{|Žˆv‚t…ƒ}wz~€|ˆ‡…„sy†x‡~€Œp‹~•tz}|xuˆ~wx‹€‚€wq‘ƒq}}ƒ}nƒ|}{…‹r{uƒ…|{ƒŒƒ†x€}x~†~n|ƒ‚wƒ‚€}€ƒ|{„ƒvŽ…ƒh|}|m~}zx™Žrƒ‡‰{ˆ€…‹y|y’„wˆzxŒ†‚uzy~„xys—‡w{x}up‹…z~w}|}v¢z‰ˆ‚xvpy„†}…x€…Žz‡z‹€…vy‡{‰ƒvˆƒy|tz€€zŠ‹yf„{z~yƒ|y|‚}‡€tuyp€€z}y{€uuyx€…vˆzxvx|€‡v}{w•tz‡oe€}ƒzzqrŒv}r€ts|‚lr}{mmz‡{z‹pr|z~‡‚cn„yu||~yt…uxyƒ…q{~wr‹{uxy~zuyŠ€‘u|zxv‹sŽs|xl}}vwwyk{~…vypyz†mzv‰t{„…v„‰p‚z„~y~x‚…~މ‚u€ˆ‹z‹v}†€‚ŒŠ‡‚x‡Œ€„|‚„{|}‰†ƒ‹†ƒ|ƒ™ƒŠ‰“„‡‚{v‰‹„’}‚„†ˆƒ{€Œ~„‡…{ŽŽ}|ˆ€|…|uzy‡‘‰~€tƒxŠ‘ƒ‰Ÿ“‡ƒƒŠƒ€€…ˆ‘Š‚uxˆ~…u~‰Ї~p’y†p€x‚…Œyz}‡ƒˆ~…wŽ„€|p}†„„•†‰‚|„‚ƒ’xЉ…ˆ~|z~„Šˆ…„}…€…Š‚ƒ‡…z}‰€‚‰‡’Œ{w€…†‡Œ‡„ƒ‚ƒ~‚…ŠŠ„}zƒ…}ƒŽˆˆˆŒuŠ’•ŽŽŒ|ŒŠ‡…Ž‚x‹‹‚Ÿ˜ˆŒˆ„Šœ”—އž‡ŠŒ†Šo‘ˆ€Ž’Ž”rˆ˜‰‹xˆ‹”‹ˆŒ‚ŒŽz‚ˆhˆ˜‰ŒmŽ‚Œyƒo‹ƒ~ˆ}‰‡w†‹™‘‹…‚}}w”…Ž~€…Œˆƒ„xŒ€Œ‰ˆ€…”‡‹”’Œ‰Š~ƒŠŽ‹‹‡††ŽŽ‡…Ž‰Šƒƒ€ŒŽq‰…ŠŠ’Šƒz‹Ž™†ŠŽ‰‹ŠˆŠ€†”‡Ž}‡‚‡‘}‚vŽ}€‹‰…•ˆ‡Ž•‡‡ˆ”€Œr„—‡ˆ—m‘€‡†{d|†‚ˆyx€vsŽzty†u†€€xv~”І{v{x}‚~’‹}‚ƒv„}u€r‚Šx|ox‰y~}s}uxz}w|€yŒvv~x…yˆ‚u{ywxx†{{z~{…{|y~’~‡uxt‰q}||wx{q{z{y„{‚z}s~}ƒuz{|zŠww„tu{{uw{yx~oxszzw{wx„Ši{~xy}€rx~uzsl}x{vzƒ‡uzvŠxz|€x|‹u~v}|x{z€~qzyƒt}~‰}Ž{€prvl‡€|t}y~nyzxŒ|{‚~|‚xtƒ‚s|}hz‰†‹zwƒqs›wqwtoŠ„‚zr†—€…wu}zwŠˆ‚‚sqrwy‚ˆx~lv{„yuvr|€{p~Œrˆ…kx~uz‡ƒxuyv€u‡yv{|†||x|—~ƒyxo‹k~€ƒzzy{m€{w~~|zŒ€v}rŒ{lz{{z†x€}v†€z{{}ƒoyw{zx€zvƒ„sˆ~|uv}…p|x€lvxmwy|pyƒƒp{ysŠqy€w}’y‚y~}~u{v}}|xuƒx}~}‹|€yk€{n‚ƒ}q|x€jx{z|–‹xƒŠˆ~~|ƒ€‘y€€~‹wv…ˆ…rƒŒŒ…‰‹‚‹‘Š…ƒx†ŽŽ{}‘ƒ“ƒ€Žxvy€“Œ‚˜‡‘†u‰Œˆˆ…–‹‹~ˆ|“’˜•Œ†„†Œ’‰—¡‰–|€t“ƒŒ‚“‚t—Š‰ŽŒ˜}ˆ‰„‹’‡€–‹”•ˆ‹•rpŒ†„ŠŠŒŠˆ…‰š€šv‚š|‰Ž}‘•„˜ˆ„”˜‹‰‘•v~œŽ……‘Š•ˆŽžy‚ŒŠˆ‘ˆ„„ˆˆ‹„ˆƒ†…ˆ”•Žƒ‘’{…”}‡…“‘qŽ…~Œˆ€˜’€‰•‹ŽŠ‚‰ˆ‰ƒ‹„~‰“’’‰~„‡ƒ†Šy…‡z`® ’h‰„~on‰‡wlmq¨“ŠŽ{wŸzf€Šzy„|f‚{sŠ|†—yŽw{…vruss}qŒ…€”„…zz Šd‘y‹ynqf—ƒ‰‚‡x~uxzŠp˜qoŠ~‡‡cxŠvƒo}Šo€‚m{yˆ€‚†ˆ‚™}oŠˆzˆž˜v~€’—ˆq|}’{i{‹€„m‡ŽˆŠŒ€Š‚p…‰„x~s|r|ˆ’y…ov‰…‹•g†•”}~”‚šy…ƒt„€~r‘•w’ŠŒ€z~ƒ€–{‚x‘yl‚q}އyo~ƒ†zq‚‡š‰vƒ|†‚Ž|‹ˆ…t‡‚†–{u‰r|€‚{„†s{‡¤wz‰†ƒ~€ˆ‰{yn£z“…s‚„rsv—Š‚€ŒŒ‹{‚‰ƒŒŒ{‹n›Žs}y…Šƒw{w~‰‚‡ƒ~m‰z†‰|…Š€ƒo…†‰u{{‘sr€py…y}‹z„‚xw€{ˆ…‚yƒp~€x~zœz}~“`ŠŽ‰qq‚hx„}s~ƒit{xˆ„v{…u}‚v‚„‡†|v~wy…vu€}|{~…r{‚{y‹xpzw}}w‡›ˆ„|~tzxzw’t|wtƒ~„uzyp€Š}{~ƒu|}pnt—‡}„ƒw‰„xx}{‡vˆ–x‹™|€Œ~z‰‡}•}…ms‚˜‚||Ž”…”Ž–‚Š‚œo†’}{ŒŽ‘„„“€€ŽŽ”‰‰œˆŽ €…ƒŽˆŒ‘„ ‘}Ž—€‚‚|†ˆ•„y…{‹„„”y„}sŠuˆŠˆwŠ~|š}Žv~‹’ƒ„‚’v€™y—~z|…Š„l„{„€†€ˆys€‹zv‚˜z|z„t–Œ‰p}Šˆ„œwo‰ˆyœ†r€t“~‰z€ƒT“‰tŽž‚„Šyse†ƒŒz…~Ž{ƒŸ‚nŠr•œ‡vŒm{¡ƒ}u‰ˆz†ŠŽˆ™~|‹›†|~ƒ…ˆs†œ‡‡z}šŽŽƒz|ˆ€ƒ™ƒ|„|”›†‰ˆŽ””ˆ‘utš}‘‡Š‹˜Š|ot‡Š“…xœž†„’„†y’‡’}Œˆ‡œ‡Š…‹‹‰|˜v‰…‘‘‚‹•˜Œ|v‚‡‡—‡‚…Œ‚v•ˆ†€Ž€†•ŒŠ‹‘†}‹…™o‹~—’Š…‹~‰Š•Ї„‡˜ˆŠŠŒ’‹”˜ƒŽƒ„™„‡Š‘ˆ‚“‰‘Œ†‹€„Š™…ˆ’”Ž…ˆŒ†ˆ•““„ŠvŽ~‹|†~˜†‹ˆ“}Ž—–‚‰“‰…ƒ„ˆ…{…–†…ˆ‡–ˆ„‡‘‚‡“‰”‡…†~ƒ“•Š‚’“x‹„Œƒ†yŽ—‘‰›‘‘Œˆ’–•„˜’˜ˆtŠ†Šƒn’ˆ„ЉsŠ…‡ˆ€™ˆ’‰‡ŽŠ}”€’…Š˜§Šx‹iˆ–‚‰lŠŒˆo„‡Œ„~‘ƒŠ‚’„‘ž‰ˆŒ†~z|z™‰Ž{”ˆ˜}}Žƒ}‚‰‹Ž{’Œ‰ˆ‹…І‹ˆ„Œޅއ‹}‡…€~ŒŒx‚‰‰ˆ“œ‰€–‹‰”“ƒƒ‰ŠŒŒ‚–ІЅˆ’ˆŽ†z’vŠŒŠŠˆƒ‘†ŠŒ’‘ˆŒŒˆˆ–‚ˆ€ŠsŠŠˆ‡m’ƒ•‡‚yœŠ†tœ’‰ƒ‘„‡}ƒ‚ŒŒt‹s’Ž¥„—–‰†—š“‹š•ž‹Šu†Œ‡‰‚o‘…Š‘€˜t~ˆƒ‡°‹“ŒŒ’|•’†‡Šš£…}‰j‹…’„l†‰}Šo‡ˆ‹…~ˆˆŽ…Ї}‘™‡ƒ}Œ‰x}{|‡Œz”„’ЇšŠ|€„Œ‹’q•Š‚‘’‰…ŒŽ~Œ—‹ƒ‰‘€‹Ž†‘•y€…w„‡w†‰ƒ™ŽŒ•ˆŠyŒ‡‘…’”zƒ‚Œ‘ˆ…ŒŠŒ‰Ž‡‚}|w‰„„‡†‰†z“‹“ŒŽŽ…Œš€†~Št‡Šˆ‰Žm~“‡~}†ˆ‡Œw•”Š‚‹Ž€ƒ‰ŠŽ†r~yŽ‚x¡|”‚‹‡ˆ‡ “––šœ†Œ™‰ƒ”Šo‹~ŒžuŒŽŒŒ}’‹Š‘–‡Œ’”‹†‡•˜ŒƒŠj†‹m„ƒ‚pŠ„…‰Šˆˆ…‡…‰š…z†‰}ƒzzƒˆ{Œ€‹‡“‚†y†~†Š…Ž…“‹‹˜ˆŒŽ{{…˜Š‰†‡“‡Œ‰‡†„w‰‹‹ƒ‹ƒ‹}Š„”‹†Œ‡‡ˆ‘‹„‹††‰ƒ†~†ƒ„y‡€Šˆƒ“}‰w“€ƒ‰ŠŠ’Ž„”Œ˜”‹‹—އŒ†‡…r„•Š›Ÿl‚Ї‘‚‡w{‡yv|v€‚€tw…†t‚qz‘}v“}}q‚{†lŸy„†‚z~qrv—„†‘}z‡ƒ{{x€wyv‰iŽxxxxsr}‹yx…qx†‰}f‰}|tzx†pyx}†ƒvttƒ„n}„m{yv~u~ƒw}tˆ{yvm|†€†y}zv’z|Šag}ˆsufut†wzuttysmlq‰yizˆm~†vx~‚s{~}gkƒuwtt~yt‡}w|xm{€vzs{uwy|stzxqwƒzxx|‘t}xbzysxxpsx}vyszzq{„jxwƒt…Žqx…ov‡‰}||_‚€‚{wt{zxix†”qŒxwxy•{}vo}hu}rˆ†v€ytpuofr€‚x„no}…~u~|vw‚‚rbvŠp‚urŽyzt|u†y‡`€‹t^Ž}|€zn|t}~v‹‰Š‚wx„dy‡yvyw†ou€ys…ur•tstiv}{r€uuvœtm‹tfpwŒm‚vn~|qdsx}xqgszp…qu|zrq„mw~}qzuxppo~t‚|um~~o„qqq|svqpowzyƒsppŽ~|r€qxttkŠu†uwsszs}lrn„tzl{wrƒxmx{ƒtw{’†p{ssrƒŒ‰t}Œ‹‹ƒŒxˆ€•}„Š•‰Ž–Œ‰‘Š„•pzywj‹”‹ŠŠu“‹Œ‚}‘‘tŒ‰•y›‡†…‘†‰€€”‹—Ž‘†{‡ˆ—{Œ†…““‰ŠˆŽ›vƒ~†Œz˜Ž‹ŸvŽ}qŠ‘…Œ‘…†‘‡‰uŒ’ˆŒƒƒ‡’„Œ’ƒ‹“Š”ƒ’…ž“†‡ˆŒŠŒˆ€~‚’’Žƒ†|’}‰ˆ€™—€Œ†Œ”‹„ƒ‡€‡r’ˆ‚‹–‹‘ŽŒƒŠŽ…‡‡ˆ‡”„„|Ž––‡ˆ‡…„”‚…ƒ…˜‰‰Ž“€…‘“Œ‘…€Š‚ˆƒ“„y}„}zyz|{rŠ‚Š{{{†p‚|‘{}}y‰{~z{šx€†}|xv‚luƒZ€|~t}ކwŽ…t}„zsxŠw}Œx|uw†ux……‡w†‰xi’€˜|wx‡}€{‡{„||wvdƒ~yp‚w{yt€€zvˆz~wqz}zxz{w•yz|~jt†w~‰uxxŽ{zxt‚py}€‡…nx}zyw{r}{|‚€‚}swvv{€xn†€r˜~wu|xuƒ„‡xxxywvt…†…|}‚wv{l–q}y{k{|i~{lw„~}yy{}{z{{v’›z…uw}Šrn~{|އ‹ˆ•—‹•Ž‹„~“„ŒŠƒ}ˆ‹ˆš—™‡™šŒŒ†›…‹‚‡z†Š‹o”…~“…vŒœŠƒŠ‡“ކ†”‚‹r–ƒŒŒi†€Œm‘ˆŽp‡oˆ‚„„{Š…x‹¥’w†„Ž“€|€w“„–Œ‚’‹†||“„‡…ˆ„—†˜Ž‡—ŒŒ‰†ˆŽŠƒ„š‰†ŠtŠ’w†Ž’‹“Œ‰„ƒŽ•’œ„–˜‡†‡Œ…—›~—„‡„ƒ~‡~xv“s‚Œ„ƒ’Ї„ŽŽŽ“ˆ“„’†‘{“ŽpŽ–~Š~’n‚…Љ|†‰‹Šn’’‡‡‘‰}ŒŽŠ~Šv‹„€¡’ŽŠˆŽž‘•ŒœˆŠƒ†Žoˆ‚Œ‡˜s‡‘‹Œ”‰Š‘‘“Ž„•‰‡Œ’‹‹ƒŒŠiƒ’‡‘mƒ‰~‹o‰„‰}Šˆ€†ˆŒ†”…‡ŠŽ…|‚|z’ˆŠ}•‚‰Œ{‹…€‰‡…}‘‹Š‘’ІŒ}‚‰‰‰†…†ˆ‰…’ƒŠ€~†ŠŽqŠ…Š|ޑމˆw‹Šˆ„•މƒ‹ˆ‰•€‰‹‹…Œ|‹‚‹‹}vˆ~Ž‹‡”Љ†’Ž‹‘•ŠŠŠ’†‘ƒˆ†s‡”‹‹–l~‡‡‰„€dƒ‘‡w|p€mnyts€ˆszƒy~sŒ—{ouw~w‡s•ˆ}x‚|}}uƒ„}{‡{ypƒŒ}z‡€„v{t‚z‚wˆwqn|ƒ‰r~€v~vu{|zw…ypw}‚}}x€“y„…nxp†knu†~mzzyxyˆ{“}p|q‡rtx{zy˜~}lr„{}trs|ƒjx|{x€fu}„…nx}x‚|{uo}€ssoƒyzyv‚|o‚yv}€{{u}€z{z|{ƒtz€ƒ|sxw‚v}~{|{€hxttrx€{v~u|fwzwtŠwƒƒ}}xv‘u€„mv…€r‰˜‚~w…wƒŒ|~yƒ„k{Šˆ{{„v†ˆy—zp¬xƒŠˆu‹ƒtztŒ†‹…Š™›†‘‘}”~–‚€‚w‹ƒ€w‡€~}z†‰Ž‹{tv„y†Ž~|f‰‰n€{‹{lŒŽŒ‰‰}|ƒ€}~wu‡z€ƒ|†“y„€y‚}‚yp†–\Š€‰ƒ†l‚‡~m{†ts…‡{}{xyj|x…Œx‘~y‚‡‰Ž€xpyyzy€x~}}Œ{zˆy‘||{…z{„r”t„~‚zy™vx}ƒ€‹„€ƒwh‚†z}{~‚~€|~vŒ‰}†xw…y‚Žzt‰ˆs|z…‡ˆ‘q—•‰“ƒƒ€–Ž…˜Ž‘Š}mu‡zx•ŒŽv—Љx¤•Š„v’”Žˆbwtˆ…j†‰„€„Œƒ“•Ž˜Œ’¡t”‰”€Ž‡|‘•Œ€ŠžxŸ‚‰…x“Œ‡ˆƒŽqƒ’†Œ‰ƒ„‹~‹‹Œ…}…‹˜}‹¡}Ž…„ƒ‹ŽŽ–ƒ’†‘‚‡n†€„€{~€|“ ˆˆŒ „ŸzœtŠ”†•‘…ŠŒ|‚„ž„ Ž„‰yzŠŒ›…Ž’™—w|””…|€‚ŽŒ•‰‹Š…Œ‘†‰~‡•†‚“–šŒ|šŒ‡‡“„s”‰|_q’†•z{nzˆxotˆ}z‰†}{lwއƒ{{{x~„…ˆ}yv}tg{f{uvxn„x{yc|wwv}sy–y…~uw|rzsv|}zŠzsiŒstq~r||‚†~{wo‘ˆyzsymu€r~{wf~{{~v|svtv{zzy™rq{qs}y„qrwwo„}e{w|x}osy‚nz~svywpwyyt|uqtvx{ry‚w€xttv{u€szwvvt||yxx…~|zs‚s}}|z‘{€ptvov~zxv€xzouz|vzxx€z~x€‚ˆwz|wxxŒˆk‹’‘‡€wŠ“z‰z•{{“”„”‡ƒ‚Œ–mw’twˆ„{‹šŠ‹wœŒ•Œs–—‰zŽy•zŽ‘‰…ЇƒŒ‘‹ƒ””Ž’p‹—}ЄЕ—‰‰”™u{x†‰ˆ‘w›Œ„¥|˜|oŒ™Ž£ˆˆ…‹’Œ‡Š”}}ƒ‘Ÿz‡‹ГЅ‘„””Œš‡•Љ‚ŠŒ†‡|~‡•‘‰w›•Š”€–~‘Š•—”‘‡q…r—„œ‚‹Ž‰Ž’‘„’ ‡|‡—}ˆ€”—™š‹’‡„ƒ‘‘‘‰…†‹„‘€‡‘ƒ’‘‹’Œ€ƒ€Ž…†•–ƒ€x€“„ƒ}€|‚…~z‘‹~uzŠz„~Ž}Š{u„|wmšy†|}{|pt}‰oƒ}‡„…z‚„y„€|{q|t‡ˆx†xŠ‚{ƒ‚~…}‚”vn‡„ˆ‰‚{~…‰ƒŽƒ}o‹xiƒˆ}y~€Šu{z‰Œuˆ‹sr|†~xt}|uh‹‡}‚mw…Œ€…y~|’|†y~z‚w~„‹…†}s~qƒ€€‰„xysu„{x{z‡Š~yv|€‡|…„xxt…rx†‚…•‚l~„{xy•s~}ƒxzˆ†v}ttp…ƒ…|uƒ|wo‰‚ƒƒl~‡Žz||y}‹ƒŠŠ|‹‘Ž’~’‹€‹ƒ„‹~}ŒˆŒzž…”‰ŒŠ‰‡Ÿ“Ž–Š™‰Œ‹†‹pŠŠ|ŽŽwˆ…v{ŠŒ“Ž“†Ž‰•‘…Œj~•…ˆn‰†„‡‚q‰€†€ŠŠv†‡‚‘•‡…Š‚{‰~|’ˆ„Š~‹„|„|ŒwŠ‹€“Ž”ŠŽŽ†‡‘€~‰‹‚ƒŠ’‹Š„‹‹…ƒ‡ŽzŒ}Žˆ““’Š}ŒŠ‰†‰“‹ˆ‡ƒŠˆ‰„Ž}‰„’‰“ƒ“€‹y‰€Š‘Жކ‘ŒŽ“„ŒŠ‘‰†„…w†”ŒŠ–n€€†“ƒq†Žm‚‰Š|‰Š„‰€—…|ƒŒ‚‚‡”Š”z€Œ–pqzq{…œ‰œ…Šxu’˜‰Šo‘ŒŠw‘v{v–…‘’‡‹‚z‰~“”‰}›Žv”†ˆ{‹”ŒˆŒ†–—’uƒ†ŠƒŠw™•ˆ‘„—os’‹Œ‹ˆŠ…†‰™‹–“z…¨›t‘‚‰Ž‚ŠŠŒ‹…£–€˜œŠ…„{…‡•„Ž‹„žœ†‡„’v––†“…}—‡ˆ‡‰ƒ”“¤Š‰‚‹€†Œ‰“š{‰‹‘ƒŒˆ“~”‰”‰˜„‰ŸŠ…—–‹’†„ŽŒ{“{‘’‚‰–z‹’‡o“–}{krˆŒˆvz{uwyrss‡ˆy„s{{—‡yj~xutu~trukmtz‹„|‰€p‡…vx‚x~ƒus|}jtu|}r€u€y}…„n‚yh|y‡zs~yzsiމ‚w‚‚g€yqz}u|fqx€wzvu…yyx]{€}xzyw˜qqekt‡n„nk€ƒŠqosxwsbm|rzbtu{x„uw}y}||„qpym{}w€{s„pxyu{}yz€atyvŒowx|†…‚nmyw}pŒw€{lpx|kn|s{y‚v{n}us„€t~}†€†‚i|Šs|yp„“w‹…w‚ƒ|~{‹„€nx€“y{…‡Š‰|„‚ƒz²z†Œ„„†„ys…•Šˆ„‹‚’z”‚‰Š‚}†ox~†‚‡y‚z~ˆlˆ~‡„y‚ƒ€y|‚‰tz†ys‡|ˆ‡~|ƒŒxŒ‰w~{ކxˆ€}‹x‚{“t}xb‚€ƒ…‰uv‚y€y„zq€iuƒzyo{||ƒy~‚ƒ‡‚‹rz}}x†{~{u…z€{‚~wz‡wuŒ†zzx{~xƒ‘€‚…}~zxyzŒt|ws‡|~v{xmˆ‰†€zƒ~{y€mts‘|~‹v‚„w„‚„ƒw‹s“Š~vƒŽ†t„ˆ‚kz€‘€ˆyŠ–}}|¹x‘Œ‡|‰x„s†„~‚Žš–€’~–‰~ƒp”‹z}v€w†}~}‘˜ˆ}v“u‰y‰ƒ|}nwˆƒo‡zxeއ†‰{~~|xˆ„…q‚|ˆ†{}“vƒxƒ}‘wy‚†`އ„lr‰~w|…vs~|hs|‚xlsp†…v–‚{€†€†„rt€x{|}€zx~|xŒ†u{ƒz|z{y‹t{……~‹|‚~w{z•|Žx||xƒ}„v†wr‰ˆ}|}vˆ€…}€s‚w“†€ƒ†x‡vƒ…u‰}ЉŠ}s{‚|’}…{‰‚m|ƒ~{‡ŠŒƒsŽƒv¯uŠ‹……Œ}zuƒ”…‡|„Œ”€|“x”~Œ„ƒ€~‰zuw~‹‹€{~“Ž|n‰{‚ƒzŒŽ}~}Š„‰n|y|r‡ŽŽ‡{~‚ƒ|}}}ƒz~……z…|ƒ„{{ƒ{wƒ]‡—ƒ‡‚rvy}‡€‹~r‚ƒzqz{„…wx}ƒ„s‚|Œ€‰‚wv‚zu|~}w}~~ƒ|t{‰x‚‰‡xywwzw}{…wˆ}‚zwƒ|–t|yr{|wp†y†ƒ~zƒywttŠ|‡~v…‹t„‹tŒŒp|†tƒ}}„y~uŒ‰ƒmt„Švrƒ‘‰yŒ’y~z·x}…t‹€~v†‡†ƒ‰€›ˆ}‡{”|Ž|€|ˆ€†‰|……~Š{„„{„~h‹w‡}v„‰~ƒs€ˆoƒ{†{y…††‡€|ƒ‡q{€}z…{‡~~y{ˆ~‡‡wƒ~r{‡Š^‚……|os‹|z|‡wr}…mqz~‰zrsŒ{Œtz‚|ƒ|zzw‚zvz{x{€…s}uu‡…z~€„y{ƒ|…|zu„~‘u|uƒ…wwjƒ‚vw~‹‚|m}u’zuˆŽu‡‡w„€Š‘|‚uw‰„}„v|}~†€rt—ˆzu~ˆts‚›’zq…}†||¢~v‰‚s}}{zr|‚ˆ‚Ž{Š–…|…zu|’uy—x“}…}wv€u{x†ƒkƒzƒyzy‡z{‚{v‹tvvƒmƒ‡|wvŒ{z„sˆ„w‡„ivu…z|{|zwˆ‡†…ƒcrŒ}t}w€tŠsusqxvvnlx‘€€{t~€ov‚w‚„ztt„zt†‚~u†{w‰‚u}||vsx‰yx{zuyt„}}uyv{{–q{tk~„n~mxvtz{w~}xv€…{mvŠ„z‚‡v‹tƒ…u„’‰‚ˆ„‹‡‹”’§~‰ƒŒ‚}ŽŽƒx–‘˜‘˜Œ‹ŠŒ‘‘|‘‹‡‰„u‡o‘‰Š~pƒŠŽ~›‹›ˆ†ƒ‡ˆ…†‘„‹–”Žwj™Œ’‰‚l™Œw†p…„’ƒ‹˜‚…”‘†ƒ„‹‚~€|“~‚—Œ‰‰}‰{yЉŠ~’„‹‘ŠŠ‚xˆ™Œ‚‰}Ž“†ŽŠŒw{“…ŽŒ‡Š“ŒŠ†”‡‘‹Š“ƒx‚‹Š‹‰~…Љ‰†„‰‡„Ž{Œv“‘‹‚†‡‰Ž‡“މ“Œ‹‚—|Š€–u‰‡”‹n’††ƒ|ž‹j€ƒ‰…Œ‚‹‹‡„‰‹…Ž“„Œz…ŽŠ–ŠŠrz„~‡‹ƒ€u“Љs›Ž‘Œ€Žˆˆv„Œty”{ˆ„‰~Š~…ˆˆŠ‘”‘ЇŒ†Œ‚~†ˆˆŠŠ†ƒ—}yz†ƒ……tŒŠ‰z†~ˆ–“‡‚Љ‰’”‹…Ž…‚€‘‰Š‡Ž‡|ŽŒ‡‹…•‡‚“†ƒˆ€€}€„…‹{††ƒ›”Š„ƒvŽƒ”‰‘‹’Š‹‰„†…‡€“‹Ž‰“†Žƒ‚‰Œ‹˜ˆ’z…€Œ‹‹€˜•މ‰‹Œˆ…‰ŒƒŠ|‰‰†ŠˆŒ’„‰ƒŠ‘‘…v‹‰}{h“„{u{qy‰lawƒvsyxzu}“‘ƒxzt‡x‡n„wyvu{s^}qzsvnn‹u||kyrr€s~h|“w„wruƒ}‚pxszŒwwxvug{qr~l‚vyw”|ˆˆzvnbwvqwjtzos|tt~zv„€vysƒs~syuww˜rpzoqwwƒwnvxm}k{t|wzksx‚ly}}rtvtsvwr€|tootwxnv†x€xtuv{x~pyvtwv{zxiwv„|zxr„pz|yz€~mrsqmq€zutr~dsxyuwv|w~w€Šu|{}vvu‰†…m‘‹Žy’˜‡ˆ†•‚‚„ŒžŽ‡¥–‘‡‘ˆƒˆŽhs‘vv˜€Ž—”ƒtˆ‰‡s—˜Ž}‘xŽzކ•ˆ†„„€—Š¢–‘‰’o•Œ“|‰€q‘‡…‹Ÿt~‹Ž„”‰‡•y‹†o}w‰‘‰”†‹t”–ŽŠŒ†…•w—”’„’ŠŠ‡†’‚™“†ˆ‘ˆƒ€•…‹Šˆƒ‰—„ˆ‹£‡—xœƒ‰‹‘‚Ž”ƒ…‡Œ‡‰zšŠŒ”‘‹‰ˆ‚ƒŒ•–“•„~Š…}‰”Ž–Š‰ŠŽ‘’‘„Œ‡‚†Š„{”“„Ž~ˆŽŠ|ˆ{އ~”†Œt{‡‡Œ‹ƒ’Ž’ˆ™‚‹‹Ž’†ˆ‰Ž}””quŽyu‰‡y‰•‹ˆfz•ˆ‘‘ˆr…‰s…ˆ’tpŽy}‰‹†~……r‚”‘’}›‹“Œ‡’’x‹~ˆŠ‚t•Š}Š’~s“”—†ˆ‰‚ŽŽ…šŒŒ•ƒ{|‡œ’}…“†ƒ†ƒŽ†Ž†Œ›„“Žƒ“‹‰}‡‚„}ˆ…‡v|“‡‹~‡˜ˆ›{Ž’Ž “‹‰Ž…ˆ|ˆ”ƒ‚ Œ…‚‹‡ŽŠ““‚‰“‰”ŽŠ“Œ‚Œ‚—„ŽŽˆ‰‹‡“ˆ‡…€—‹ƒ—Ž…™…“†‘u‹‰’Ž~sƒ€€~~yvuvzyrpƒv‘y~€|y–‰py}sysvmŒ€p}{uw}niv„z}q{…z|y|yvr€|}ptlzu„t„‚pllr…|}x€teˆ‚vz|o|vz€z‰‰ƒwqoyoutxwƒut€w€~vŽ}oum‡€}{yzyv¨wy„yourƒmxnm‰wrjwwz€{lt{€‡zo~v|uym}vmxw{qg‚s{uy~trŠxu|zo}uwqzuvx|~ztƒŽ†}s€wzu€yu{sxuwt}{soxsznzux€vqy{‰x}szƒ’pww„zyŠ~˜ž€v€|‰|}Š„„|m}€–|…‡Œ„{ˆ‹~{³u‹‰„‡ˆ…yuz“Œ‡€†~–‘x‘…†x~Œs‘”{ˆ†€€‚}z|Š—‚r‡€…y‰…€…„€€‹s}z‹vtˆˆ‡y€…•|‡ƒ…xƒ{…„ƒ{…ˆ{}Š{‚€{z~{qf}†y€„zŽ~…{qƒ…xt†Šƒux|…}s€‚‹†˜ˆwy€~u‡||s…zt†‚s{Šx‚”Žwypv}x…|‡€}}„{w‚|Žs{pxŠ{{{yp…ƒ„ƒ{‡€z‡|rrs€}‚vxŠt‹~|ˆx}e„v˜ty‡t|“‰‰}{”x„|†…‹‹o„€€…“‰wx€™y|w ‰‡½“‰ƒ|Œ…{™}‘„‚„““˜†y~„ŽƒŽ„|s€“–‰Š€–Žy”މo‰‡…ƒzz’|…Ž¡”‡vƒrƒ²xˆ‚••ŠŒ›€~y‰‡…y’}r€„‡ u„‹wƒˆ«„|†m‡|˜‚xs€‚‚‡Š•”•…”“uuu…ˆ‚–w‰}‡}}‹†|‚zžxŽ|‡ˆŠƒˆ„o…ƒ“ƒ‚…ˆ•‚‚………‹ˆƒ™ˆŒp‡~‡‡…zsƒ•Š}”’ŠˆŒ„›ƒŽk‰„|xz—zŒ†_†‡’€…q–mŽyq—„}„{~‘}wp‡zˆsŽ‚|uŠ{n†—Œ•Ž|\{ˆ{|š—oŒyrˆ„…r†„‚Ÿ‡ˆ’•_‹|¡„¡Ž€‚˜ŽŠ–u„~~šow‹wv’†‰Š‹~}Šq|‚‡‰„u—€‡z}ŒƒuŽo‰–‚…ˆqv–’€†qqu{Ž˜°s†“…ozƒ„’‚p’„|~•pl–|ƒ‹soou|‚}Š‚v…w—‹‘Œ~•tt‚‹}ƒŸƒ}ˆsg†”v‰ƒ}y‹suun~t›“~|oz“z~‚w›†z–“zuŠ~w~‚|Œƒ|‚q|€Žu~†„ƒ€†Š’{†€®xŠ„}ˆ†‚‡uz‚Š’—~Œ†…‹|~‰„‘yw|„{€u‚y{ˆœ{‡qˆ|z‰Šƒƒ‚u‹ƒƒr{‡}}ƒpЇˆx„‰~pƒ{‘z‚z‡Œu…‰|‚€|“u‚r‚d†z€‰s‡ƒƒtv„xs€‚cv|†Šjt{‡‚xƒŠxƒ‚“{„†xy|~€~zs}}~lvŠu{…y|Žyzx€x|–}„||}…{y‚zu|~†‹†€u€wl“‹{€|„‚vxƒw}u‹y~x€‚x…‚€}ˆ“€˜„s€ƒ…x||„ƒ„sx‰žyt„‰‡‡~‰‰}r°yˆŽƒzŒ„szzŒ‰€‚…Š•‡~‹~’€‹“€}…}”•xzƒƒv€v†~r‹‰}o‡vƒ|zˆŒ‡‰}}}‹q~yŽv|‚„…Šx„uƒ„|{ˆy†…zyˆŒx‚~{Œ‚‚c‡y‹„|{‹|mxŠ|q‰†wrs|ˆ†u€…€…€tw„ˆ~‡yw„|yyƒ~|v…z}}}u|ˆxw‹‰{y~|„wƒŒ{‹€…}|zwŠ‚”t{xsŠƒ|}}yj€‚~yƒ„}t|xrr|}~…u‡ˆu‰€Œ{ˆ[ƒ~xƒ{}ˆux‡r}Ž„|t‚—“Œƒyƒ‰†˜„~vwsiŒm‡‹uvy|wuy}wypi~†{€lt‡‚†w}xy†}†su‰{x}q“z|t„‚ˆ‚wp„nstyr|s}|u…€{~‹‰{€{|z‚x€}‚}xn„u„ƒ{„wuƒ}r{‡w€zzn‚|„†p{‡~sv€~u~{|~|zs}w}€r„v„|x}z‚{„sx{|€€‚}}~{ˆ†~}z†uƒ‰‚Ž€‚†uwr}…yp|…zv{~}{{…€~ƒ‚}…Š–w‚€ˆ{}’ŽŽŽŠq•’“ŒŠ‹‘ˆ‘{‹„ŒŠŠ‚Œ„y‰ƒ‰Œž”›‹—˜ˆ˜‡‹p…‹‚‹‹o’†ƒ‹‘‡Šw‰™Š‘‚šŠŽ’ŽŒƒ‹“‡˜‚ˆŠ‹j„ŠŽmŽ‚{ˆoІ„|‹ƒ|…Œ’І‰Ž‹„y‰{|’‹‘~–ƒ‡Š‘‚{‹~ƒ‰Œ{“Œ…“ЇƒŒŽ–‡Š‚Œ‰Œ……‰}~‹Š}‹Œ„’“‹‹|‹Œ’‡‹—ˆ~‹Œ…ˆ“}ŒŽ’€—…ŽŠ„ƒ…ƒ}…xŽ€}‹†…’‡ˆ†‘‘’ŽŠ‹‰•€ˆtŽ–ƒ‘†•l’…ƒ…€ƒ”‹vsšŒ‘‹‚yŒ…ˆ‚މ†Š„Ž„Šˆœ‹—’|€–ˆ‡‘„‘‘—Іv}Œ’—~}“–Ž|‘Œ|‡žƒ‘‘~•ŽŠŒŠŒŠ€’—|‡‘“q|ƒŠ‘r‡˜‹Œ~q„ˆ„Š‹–ˆ€Š†z„Š–~„„‰|{‘“}‹Š‰‚Ž‘–q‚y–Œ~rŒŠ„‹“„މ}‰›~Šˆƒ‡•–‹„‰‰xˆ’ކ€Ž‡Šˆ‘œ’Œ…‹‡—…‹‹Š‡‹…|‘’Œ“†–„‚}ˆ|‹—‚ˆŒ•„‹ˆš’†—‘€ŠˆŒyŠt†‹Œ––†’|‡u—މ—Ž…ƒ„{—•ˆ‘Œˆ~‚ŠŠ„xŠƒx–•‚¡‹—Љ„Ÿ–‘•”Šž‹‚ˆƒŠ…n‹„Š…™u‚ІŠ—‹‹‘“І”““…‡•–‰~Œi‡ˆ•„lˆ…{oŒ‰‘…}ˆŠ€ˆ~‡’™†…‰Šx…{|€ŒzŠŒ‚‡†v‹||‰Œ{–……˜‰‹‹Š~u‹ŠŠ„‹‡•‡”‹Šz†wˆŠƒ‰†‹~’…““‘†‚މЉ‡‘Œ‰ˆ„ˆ†ƒ‡y‡„ˆxŠŒ†…‹w€‡Žˆ”‡‰€’އŒ“€€‚ˆ…s‹™Ž“mŠ„„wv„‡‹u|w‚~wy‰xy{‚~|y†‹ƒx…z{‹v©|y†~†€~|s}Œ„‰‰ƒ‡|Žˆu‰„‡‚zwwrƒ}x„‰‚€~ƒz‚{t€†lŒƒ|x~„ƒ|€yŠxˆqyx|€q…‘€{z„„v‰…|q…vwzxsˆx„~}{x‹uƒˆigyzw€qw‡tzts{zrtn€ˆjqz~w{ƒlq€|xˆ|jt„yvŽv}vr•z|{ƒ|wzƒuuŠ„yywxvz‚~…{{~{yvŠ{Žt}snƒvw€wq|~yyww€‰|{v‰}~€v…‡rƒ}ƒy…„‡ˆ}z‡ŒŒ‰Š‘’‘€Š‰ƒ“Ž‹Œ“„“„‡|Œ…„Ї•}—‹‰u‡ˆŠ}–І†x…ޒކ†ƒˆ†„Œ“މƒ‚‹w‘ƒ†Ž”€‡‡‘‰v€u„”Š{”†„–†yŽŠ…†‹ŽƒŠ€‹„‘‹ˆ{‡Š|†Ž…Š‘ˆ‡‘‹‡‰•‰‘“†„}†‘Š‚‰…€‘˜‹ŽŠ~‘{ˆŽŽ‚ˆ‚ˆŠŽ‰†ˆ†€~„”Љ‚ŒŽ‚††ˆˆ‹…Ž’Œ‡€‹‡€†zŒŠ’•ˆŒŽ†‹ŠŒŠˆ’Œ~Œ†ˆ‹“…ƒ†‹’Š’Š„„‰‰‚„Œ‰„Œu„‘“ŽŽŒŽƒ‚‚Œ‹•‚vŽ€‹“‹‹…›Žˆ„ž…Ž”‹Šn‹}Œ–‹rŒ‹Š~‘†”‘…ˆ•ƒ‡‹Ž’“ˆŽi–‚—ˆmކ…y–pˆ…ˆ}Šˆ|‡ŒŒ‘…‰{Š‚}v†Œ~‘‚”|‰€†‡†’ˆ‹’‹‹‘|€‰ŽŒˆ‡…ˆŒ€†…Š‘ˆ‚€Žj‘‚‰Œ•‰ƒ‘ŒƒŒˆ‹—„ƒ†ŒŠ‹‰‹Œ„„‰…‹’‡…Ž~…vŒ{‰Šˆ•Ž…“Œ‘’˜Œ‰‰˜|q‰›‹‹’šn„{x_‰y‚€xŽsƒ˜“ž”xš{‘~t††„ŒŠ€ƒ|ƒŽ…{~ƒƒŸ}|Šœsƈr‚Šw……‘€Œ—•€|‡‡¨ˆƒ„Š‚yˆ…†„|qŠŒ¥ŠŠs“†…•x…}{rˆ’˜‚†Žr”„º‚†…Žš†œ„ƒ~“‘|†—„w…yŒzŠŒ‡j›‡{‡xŽ‹š{}ˆ‰‹‚…“Ž’wƒš||•mЉ |‘‡‘€ƒ‚‡tŠtšŽŸ€¢~…†„Š||…vƒ‚„ŒšŽ†{ˆ‚ˆ|‰“€”€{€††…{k‰‚‡†‹‹’‡–…‘yuwމ{„‚…t~‰Œ{{zƒ‡€lwƒˆ€{€†‹…s‡…z¯w‹Ž…{Šˆƒ{s€Œ†ƒˆ~‡Ž™ƒ€—Šw˜ŒŽ{‡z|€Œx‚y‹ƒ~ƒyˆ~k‹{‰ƒz‰~}†‚„|…p|yŒvq‡Š‡u~ƒŠwƒ‡yƒ‚zy…‹~…w€{ˆ‚Šbˆ‹‰ˆuzƒ{ƒ{r‚~try{ˆ}w}ˆ~‡ry}ˆŒ€wwƒ~s‚|~|yƒ|{‚~x{Šxzˆˆzywx‚w~‚†~}zw†z”s|zu‚€w€twrƒ‡€z……}}„€sts‹„|Šu}ˆtŠ‚}ˆvx‘“ž‡ˆ¡“žz{Š|¤Œ†{rˆª€Ž‘s|ŒšŽ‘t”~o™x}k€„„‡|kšœ—ˆŒ‘€‘‡“…‹ˆŽ~y¦zƒŽrb¢|‘”l¡œ”©‡”{€”yˆŒ‹Ž„ˆˆ†‡|w„‰ˆ„w‰œ}“w†‚›¥‘€††}Œ‡ —Š“—lz§‰ˆ~m‘’˜{ˆ’€’’‚z‚„~l˜‡~z‡‹—z|…o‹®Ÿ}Šƒ€™ˆŒ“pŠ“t|n~…”wˆ””Œy†ª~kŽ‹|–Š~’“އƒ—ŠŽƒŠœŒ…W››x€‰”sm€q{„™€ƒ’˜‚~‘–zŠ~”‹s}„І†z‡Š–{•}yz‹‹Œ}|‰‘†…•—ow‰v~†…t—“‹wxŽƒŽ˜†r‹‘Žv‹ˆ“w…“y‡…ˆ”ˆ‡…ˆ“q˜ˆ’•w†„’€‰••†Šƒ”vu‚‡‰}‰uŸ‘„’|Ž„pŽ”‹‘Š‹€Š„…“£Š‹†v}œ–„Œ”‘‹ˆ‚‰‹…”›„•”ˆ†‹†ˆ…ƒ‡‹‚„ˆŒyŠ¡‘‚ŠˆŽ}Œšˆ’…’Œ‘ŒŒ„‹ƒ‚˜Œ‡œˆƒŽˆz‘Љބކ—ˆŒ„‘Œ”„Š„•……‘Œ‡ŽŠ’‡”Œ†ˆŒƒ‘‘‰…„–‘”‰Š’p“–‘‡Œ‡“ŠƒzŠ€Œ‘‹†yƒ‡}ž…‹‹‰‹Œ “”Ž˜‰ŠŠ„Š•o†‚Œ‡˜v‡•‡‰…Œ‹ƒ’’–”Œ‡Š‘y‹ƒ‰Ši‚ŒŠ“mƒ‡€|~p‰ˆ†‰|‰ˆƒ…†‡Ž‘ˆ…Œ‰z†~{ˆ~’‚ˆŒƒzƒ†‰Š†„’‹‹šŠ„‰ŒŒˆ•‘††‡„”І“‰ˆ…‹‘v…‚ކ~‘Œ…†•‰“†‹……•|…Š~}Žˆ‡„‡…wŽ{‚‰„•‰€‚‹‰’Œ‰‘‚‹‰ƒrŠƒ‘…l‘~…‡‰‰€w””ˆ{z†yŽ{Œ~}yuˆ£|y‚Œ‡xŽƒƒˆt¦~’”ƒw…z‰ŽŠˆ‰‰‹~‹¤‡‰vyui‰„xi†}†ƒ}‰…‚†{‚p…x„‡|~}}†x}y‡xq€s‚€ƒv~~~yŠ}‰x‡—‰ˆ…t„~x—x‡~kƒƒ†Ž|††x}€}x†…q€…r~xx}w‚wˆ}~„Š…ƒŒ{v{{xƒ‚}v}||…~†wyys‚{y|y€}x„‰ƒ~}‡€†}yyw}|vƒ€zzo{†„v{w~{s„sƒz’€|‚…|…w‰ƒ„u……vš‘€|uˆ}ƒ~€{ˆ†nƒ‹vzƒƒ‰…}ކtªz‚އt‡†{v†”‹‰…€‰’“‡‰y‘ƒ”ˆƒƒvŽ}{†„ƒ„‚€~‡‰‰†ƒ~vŒs†{‰€|p‚}‡p}{ˆoŠ…‰ˆ€z†|ˆ‡|t{‡‚‡{‡{„„w€}Šxz€“]ƒ†Ž„‰tƒ~u€‚wt‚‡~zv~vw„y†|‚‰‚…}|r{wx|€{~€ƒ„‚|{„z‚Œƒz|ƒw{‹v†y‚„{zŒx–w}}}††„yƒzp‹…x}|ˆ€€zŠ€w’‡{‚‰y‚x}„Žw€…}~ƒˆ‰˜Žœ|‹‚ƒ…ŒŽ„t•™“’š“”•‹Ž‡”“‡€Šˆ€‡Œz‡„nŠ’‡‰‡Š}o‡~‰~žˆ™‰‡‚‡ƒˆ†”‡Ž‘ ~”iœ„Š…m—„Ž‚Žp…„‚}‡ˆ—€–ŒŒ‡{‰‚z€{Š~•‚›Ž‡“Š|‰n‹ŽxŠ‚Œ‰‹Ž…‚q‰–Ž‚†‘yŠ„”‡‰o‰|„–‚y‰‹†{—šŽ‘‘‡ƒ“‰Š‡ˆ’‰|}ˆ‡Šˆ‚€‰‡…‰Œ“’†…†}”v†˜ƒ‰‹—„’‰Ž‘…’†–}‹~’‘u‰‡–Šn‚‰„‹Œ„‘s–—†Œ‘Š~|ƒ’ƒˆ~€y}œŒ“‰‹†Ž‡œ–’Ž“ƒœ…Œ€„‡Ž’n‘ƒ€‹Žw‰ƒ‚‰ˆ”•Œ…Ž’ˆ‚‰t‘ƒŒ‹h‰–”mˆŠ€x„o‰„„ˆ{†|€Š‡š|ƒŠ“’…}Œ}z”…’~ƒ}ŽŽ‚~{ƒ†ˆ„ƒ€‘ŠœŒŒŒ~Œ’‰‹‰†–Ї€‘•‘€‚}‰•w‚Š‹’Œ‰Š}‘ŒŽ„Œ™…—˜Ž‹Š††‘}…“’~’y‰‰‚‹v’v“Šƒ–‹ƒŠŒŽŒ•†‹†‚ˆ‰rŽ˜ƒ“m‘|ˆ…~g||„…uxvrŒsx}‡}|}{|{”‹zt{ƒy–„}}‚qx‰yq|zz‹z~}’€{…vq{€q~~p|qyz|}y€z|‚€zo}ˆ}|‡x|~pŠ‚†€uxx„d}}‚}w†zwwq‚rƒx…z}yqˆ‚…vw||yt…yp†~yuth‚‚˜tw{xx…|„upxx{‚{}w{x}~z~st‰pq€v{rŠ‚u††wyzz|}yt{x€lyƒ}‚€}kzz~zwvxlv{i‡~‚t{…z}jzz€Š‰zu}ƒ{ˆ‚~|‚Œu~x‚{x^‚pvo{|u–zpŠmx†ˆX~†™‰…}rxsv‹…‰€y„‡zomlŽ{w˜zidz–x†t“mrm{o€}|{™Œ“}l…r‰ˆwv~|}r‹ˆu„y‘}z}”|‹~wvn’jo†ˆ}|ƒzexnmˆn€”~‡{„sy}|„Šftykdof‚…}ªl{z}…ˆœ…z‘zz‚vw‘r”rzxxm}vv|}}€{„n{zv˜†|‚{€–{w€€t{~`m€uv‚€€¢‚“}ƒ|kƒ—„|oy€{s~|x”—€ƒƒ†ƒzt~}]z‚†ƒ€{…Š‚†ƒ€‘’ƒš…€’”„•–‰‡ŽosŽ‚€‡Š—‘ˆ~vŠ…yw’›Ž‘†‡q{ŠŠƒ}Ž„†–}’ŒˆŒ•‚‹†}Ž‘wŒ‹†‰†—‘z‹u‰Ž”…‚y‚v‰‰…‡”†ˆ€–ŒŒŽ‡Œ~Št‹—‡‰†‘”‰‰……}Ž„…ŒŒ‹†‰‡„‡’ˆ‹€Œ“ˆ‹’’Š„…˜ŒŒŽ‘…‡”|”‰’”‹ˆŽ…‘|‚Œ‰…’‰‰†„†ŠŠƒ}’‡‹ˆ—‚’’•Ž…“†‡ˆˆ€…މ…’Љ}‹‚Šˆ|`xrz}tfy“ujw”ox…Œ{dyŽ‹‡}z|„uƒzŒŠ}~wpzq\cxuxt~‡wv~b{suwk{n{–x…~nt€|otqr~xy„ypgŒ{zp|o…sxi‚‚zviƒywzpwjp~n‚{sp‰zz‚szsvs~rzyxx¦pkzplzwƒrpwvm‰}a{n|vyjrw‚€hwoswunvwtz{rmvrxyow}{wurt{opywuyw{{xzyuƒ|{xpƒoxz~zz€nrwmuzrv€u{ssx{uxwuƒ€x~w‚˜u{z}uw‰€m†Ž„{v~~‚~r}‹{pt‚–~zŒŽ€jŠ|z¢rƒ…€w|v{ny ‚…’…Œ€y‚{qŽ~|v|wŠt‡x}‰{yŒyz‰vwއƒj‡z‹{z~z‹trvŽ{i‡Ž‡€xƒ‡w„ƒ~}‚w‹~{yxŠŠ€uxz|xŽ~|‚og{‡zyyv…yžxutsx†pqr€wwxˆx„†y~‡x|~po…vp~y~{w‡|vy„~sƒ…u€{ƒyyx‹yv€t~Ž€y}u{}”t{}y}y}vxqm}wz|z||w„tsxˆ{wt{|ŠwŠˆ†{«‡rn°•‡†–‘~†‹}…‰ˆwqx‘”‡Ž‡”–¡†–“}j›ly{œŠ’ƒ†Ss‘•—ˆ‰”…Žn’–‡ml}ˆ„’’Šw‡‹Ž‚˜Š–°qŒ—‹‹†‘‹›|‰Œ“–…}‡Œ“‰u‹˜€‚{„u“vt‡}Ž‚ƒ~–‚…‹|€Ž’z’‡‚oˆ‹’Љ™–Š’Ž‹•Ÿˆ†g’Šr‚ƒˆŒ£x“ai†ŽŸ~Œ„›|w›x‹ˆ–{ŸŠ††Š†Ž›†–œŠ~‘ƒw‡š‚€~…†Ÿ›}œŒ“„ƒŽ‹†~•„Œ§…|€”zŒŠˆ}r–…”‹‘’Ž’‰•—‰‰…p‡j‡‹…„Œ‹‡’Š~~–~ƒtŒˆx…Š‚‘†‹›ol‰tzzˆ|‹—ŠŠ|€‹ˆˆ’‡oŠŒ{’ž’w—Ž‚ˆ“…„Šz‰i‹—…–t†y‘š¡Ž{‰’“‡v‹}Œ‰ŒuŸ~Œ†’oŒˆ–•‰ƒˆ˜‘‹˜†……“–}‹‹‚€‰£‡‘–|¡Œ‰‡‰’‚šˆ‚‡†¨ŠŒŒ‡–š‹‰…‰{‰“‘Ž„‡t“Š•ˆ{ކŒ–xƒ‚š’Ž‹…‚|……”z~ˆ˜—~‡“ŒŸ‚’„Ž“–ˆ„™†„ƒŒ„“ŠŽŠ•Ž›‰“ƒ†ŽŒs•’Œ†ƒ‰—{ƒƒ‹……ŽŠ„{ˆˆŠžžœ“Ž’~—–ˆ…Ž‡Šœ‰’y‰†ŠŽŽoŠ„‹‰ƒŠv’Š…–…’„Œ‹†„Ž’‰Š‚‘iˆ”Œ†m…‚‹‚p††„ƒ}‹‰y…‰‚‹•‘‹Œƒˆy‹}|‘‘~“…‘…|‰~|ˆŒ€z“Œ„Ž‹ŒŠ…€™…‹Š„‹Ž†“‰Šƒ’…~‚‡v}Œ‡ƒ•ŽŽŠ‘‹€ŽŽ†Š“~€ŽˆŒ…Š—Ž…—‰‘‹Œˆ…‡~x“Š‚‰‡…–‡Œ†”“‘‰‰’ЇŒ{†u•‹‘l“…‰†€“zn•Œ‹Œ|‹ˆ…‘‚‘xƒrŽŒ…w‡Ž•‰““p{€|†“Žw‘“|tn‰†™x’‘““v‰ŽƒŠw–‹Ž|‚†•”~›‚™„||”†‚ŒŽ”‚Š‘’™y~~†‡ƒ†y™ˆ‹o„…’„“††€‹’•–ˆˆxz’•„ž~‘…Œ‹‘‡“˜ƒ‘ŒŠŠ‰ƒŠƒ‰”‹…ˆŠˆ—”€†‘’{Œƒ™€˜…–‡‰ˆ‹Œ‡ŒŽŒ˜‘‡“‰‰y|‹”‹Œ”Œ–Šƒ~‘€‹‡Œ•ˆƒ‘Ž€‰“…€‰…ˆ…‡ˆ…‚‘†€Šƒ…‡‹ˆgŠ€‘twŠu€~|{r‰}„†ƒ|‹ž’…tƒy„‡—‚†‚yˆr|ˆ€‡s{}•…ƒ†xq†‚{{~rl’ƒzox{w†‚w‰zpzv}‡’wz|}€ˆ}yy‡{ƒv~yz…t~‚‰r}{t}•Іz€|†ˆ{‚~ˆ~ƒv{€}„‚€‡}x‹†Š|„‡{v‹uyv{q}}x“xƒ€xtŽ|~tƒs‰€~ˆ|m€|u~†Œty{x~|x‚ƒ~Šx‰x€€€yŒ€a}…ƒw‚‚ˆ‡ƒ||„„k—…€n}~ƒo€}xw•w„ƒ{……Žx|ƒŠˆz~Šw‡{wv{„x{}„–…||}„„sl‘‡‚|~ƒ€{y¨z~‰|€xznw~g‰†~}‹‰Ž…x‚}|‡ƒ|x…€‡{o€…|t~x‚ƒ‡†yi†|ƒxv‚~o…|w~w~xxr†}‡w}u|y~€xˆzvrz}y~{x›l}€†b~€…z|uouvr~ss€€jtƒ€‰rxsƒs…qw‚z…rwwwy~…~xs…wz…~ƒtzwwwˆƒzx{~vu“zzxuvm’t}xkx‚vt{zh{ƒŠzvx~zy~xpwx–{y†ƒvŽtƒr~~…kv‚„~zƒ}v…yvtŽ{{|zyŠ••q…}~}~œ€n„bz…~r}}ˆ€ˆ~‡‘‡‡~‚wv{†y}qˆw{yxt}zˆ„~}p‘yŽ~|w‡|||oˆ„y}y}g…vˆ~p~~r{ƒ|q|w„tys•†tt}{yŽƒx€Œox}~~vxƒ‹vrwu~}„ytyovuy|……sw{‚|€‚|srt‚xzw‹ƒq„y|zy{{}w{|sy€u†yƒqzy}xw~yxp€ut}|}r‡ƒv{q€y}†r}‹‘y{€‡uƒ‡ŠwŒ{s~—…y„‘Ї€z‡‹~j{‚„yƒ“˜Ž{„|¶x„‰ƒ~€ƒ}sŒ†‹‚’„Ž“™ˆŽƒw—ƒŠ‰z|‡j…‘ˆ€~…†Š}|‡€††„ry™‚x…Š~~„{€‚ˆo€{‰{e“…‡uƒ‚‹u‰Žwƒ|‹†{†“†‚~{‚€|„„{‰„hƒŠ‰‡wu‹}†††sr{v‡u€„‹{r{ƒx~ƒ}{ˆ‰zo~†yv‰|~uŒ{|‚…~{‰wx‰„}z~zxz|…}†‚~wzyƒ‘t|~}‚}„ƒwo|…{||}ƒ‚ƒ†ups—ˆ}†‹u„u‰ƒ”u‡ux‹Žƒ†xy‰xq|Žˆ{ywztŒ„‹zn…x~vxªz~†€wpvowx{€ŒtŠŠzƒ†vŠ|‰qv’z‡}…j~†v{ƒ€z‡ŒxiІ~zz€|{{ƒ‚‹zxw{j„†‚}{{ˆu{w†‡t‡€qxs„…zt~t–{‚zdqŒxxwvu‹qrws|}qutwŒ{v}u|†{w}‡s}‰~sq…|t{||r…~wކzuz}ywvŒ}vw€tw~†‹}€}zv~rŽs|~t{|r†{xot|„{xy|{z}{ttxŽ€xŽ~z†ˆw€{y†„‹{u}y{||Ї~zz„Ž|y•€‡~„ƒy~{¤}„Š€†~€yxx~…‡~‚~‰Œ…z‘ˆxƒ‰{zw€‡†w€|zuvz{ˆ~‚‰ƒl‰}‡„x}‰„}…y€ƒtws†~†|xƒ}{‚xuw‡|{w‹€‚‰z~|x›vw„{kƒz‚€ƒxyˆzzuutˆ~wtxƒ‡qq{~t|vv€{~„nvzwx{~ys†yxy}}t{|w{Štx|~}u|†}}}ywˆx”t|wu}|yp~yn|{z|~yv~tw‡…z~}w…‹r„z†„{‘„…ˆ‹‡˜’ƒ”–”ˆ||“ƒŽ“|‰y‰˜—Œ‰Œ†”}“’}’‹‰ŠŒ‰Šn’†ƒ‹‰‰‡w‡‰„~†Œ…Ž”‹}‘ƒ‰…‹˜’ƒŒhˆˆˆ‹m„˜~Žp…„…†|†‰‚‘“’†ŠŠŒŽƒ~zw’Š{‹’“|Œ„„ƒ‡‚’…‹‰Ž|‡‘•‹”ŒŒ‚‡ƒ†ƒ„‰ŠŽˆˆƒŽ}g’‡‹ƒŠ›Œ”„’‰Œ•Іƒ—“…’Œˆˆ†”ˆ‰‰…Š‘…ƒ‡~Švˆ}„Œ‚‚’‡ˆ‡Ž‡‘މ“ŒŽ†€‹‰pŽŒ„‚†’nƒŠˆ|n•y–_‡{“¢‹Žˆ†r‹ƒzq‰Žw‰œœ†žx •r}l”‡Ãki–ЇŒ§p¨™‚”e}Ž„šŠ|‰€{«•„ ‚lŒƒÌ„„ŠŒœ‹•{ŠsŒŽq›{’•oz‡šb„}‹”ŒŠyŽž¢jw‘v’|›“¯¡“…˜{€•p|¥Ox’”šn‘†‡–…œˆŽ¶v»„„ˆŽ•ˆ|ˆœ‘_Ÿ„–Ž•”ˆ•q“—Œs‘ri‘‰‘…ŠŠ–Ž‹o“’…‹’ˆv€…Šs}{{‹x‡‚ˆŒ£Žq{ƒŽ}‘¢ze„“z𱑕™‹¡†ˆ}‡†’†}Šw‰”ˆ‡Ž…‰y‰••‹z‹š™ŽŠŒ†‡‘„‘w†‘¡Š†Œw‹…‹„Š“‘}…‰‹Œƒ|…†tp†|}™…”’‰€ƒŠ†‰š‚–x”w¢…r…†k˜…‡„„m‡ž€yx…t‡‡~Š‹v“Š•‡sŒ“‡ƒ‹x~z—”Š‹…€‘ƒ‚‘„…„„u‡Ž|•†Œƒy„ƒˆ‡ŠˆŒ‡†„††‹”‘Ї„ˆ„ŒŠŠ”ƒ’…‚‡‡’…Œ{ކŒ€‰†~…†‡‰~ˆ†…€||‡‰ƒ‹‡Œ~v‹…ŠŠŠ„‚“Šxšˆƒ‚Š‚{Œ‘|‡†‰‡nІ‘ˆw™‹†ƒ†•™–‚”˜™Œx…Œ–Š…„…}Œ—‰ˆ‘““„ŠšŸŒˆ‰“…l‹‰”‡„o€…v~Š€†ƒ–ˆ…Š”‘Šw‘’‰…•uŽ~‹‹j†‘mˆŠ}™w‰oˆŠˆ„{‹‚|”—Ž’y‰š†“…x‚y‘”z—€~‹›…|’ƒ}ŠŽ„}›‚Žˆ~…‚™—‡‹…”…–ˆŠˆ•„‚‹€‰yˆ‰‘’Š“ˆ‹‹y‡‹“™–„•‰Š‹‚Ž|ŠŒ–ƒˆ’…‰{„v†…Š…„‰Œ‚ŽŠ’…“Š|—‚w‰‹s‡Š‡ˆ~Šm‹}‘„y€Ž‰ƒp†’†Œ|ƒƒ—q†{”|}ž™“ˆˆˆ’Š‘•quxˆ‹‡‹˜Šr‚—…މz—”‘’Œ‘ƒ •”‡‘‚Œ™†”•“‡–ŽŽ}y†“w‡‹„–€‘••‡uzs‰‡{—Œ„Ÿ|Œ„q’ˆ’‡Žˆ“ƒ‹‘“ƒ{ t†„ˆŠ“‘šƒŠ‹†“”•‹vˆ—ŠŠ‡‰˜‹—’‰˜‰Œ†‰ŽŽ˜‰‰Œ“Ž~„zˆ’††„Œ‹“|—އ—~‰’|Šˆ‘||‹”‚Ž”‘“‰ˆ‰”’›’‚|‚ŒŒ‹‰„ƒ…’‹…Ž‚“‰€†‹‘}“Ž‘}pp„w|{sop~}tyw‚†‹my†x|‚v{‚€‘‹yƒptƒwq€{~„sy~…{|tiw}xƒ‚x}…x„‚yyˆ}Œwƒ~yyqtˆuo‡x}|w{xŠ}‡y|yvŒ{|{€{ts~v€v}q|ƒ}p}p‚|‚pz{zz‰{uˆ{t~~|xss{rƒ”mwr{}ƒ{{|x‹vy‚zt|…zu~vvz€qvr„wyx}‚uyv…|{y€t{†}€{}€{„{vƒ€‚x{ƒq{zƒ|Œ{€~pt†{lˆ{n€„z}txy|†‡l‚~yƒ€‚‰ww}ƒƒ{{މ†m‚˜Œ„}Š”v‚x}|}–‘‚††‘Œ…Ž”mv‘tŒ‹˜™Œ‹‰p}““‡t—–•Œ“|›Œ–¡‰ƒ‘‡‰–‰„¡ˆšwqŒ•€‚ƒ™“•“—›uysŠŒŠˆ{šˆˆž…ˆƒr~ކ–‹‚˜’‚•“†‹ƒ‰‰šuˆ}‹”Œ„Œ‘‹’’„š—…‡‹‘ž‹ŒŠ‘ŸŠ‹„އˆƒ„’Œ‡}‰“}……‘Ž…{’€•€ƒ–•’‹€ƒ‘‡€Ž‰‰…Žy‹‡ˆ‡„€š‘ˆ‡‡‘””ž‹ƒ‡‹‹Š}|އ‘†Š†“ƒ}‡‡‘}’‹Œl”Žr€†ŠŠ‘‚“’Œ„Ž}|}“……xˆ…“ƒˆjp‡yz‘Šy‰–ˆŒ{uˆ•Œ™€tŽ‘™u™Št|•y}™Ž„€p„”žƒ™s•y“…‰‘‰~’Œ‚‹—v”Š‹Šsœ“yŒƒˆœjŒ‹r „Œ„Ž„•”‡‰Š‹‡…‡šŒ‚‘Ÿ…˜‘z†“ЇŒ™†•‚‰ˆ‰z—‘›…ƒ„”¨•‰ŽŒ¤o™‹˜…’ˆt†‰‰‰‹Ž}Žˆ‚ˆ†Œ”’“€‡Ž…‘z‹“†Œ‡††…œ‹ƒ”š‰˜œ‡™q…‡‰‹†…‹‹‘††‹€’jƒ’Ÿt‹Œ’}‰š…‚ˆŒŠy‹lx‚‘…mz…€‘vˆ…£mˆ†z‘‡vv‚x›w€›‹‹‘€™Œ}†Šˆ‚…w‹‰ŠŒ†’„ˆŽœ„ŒƒŒ‰—‘‹|zŒŽ‘…wŠ„}tx’—œƒy„{{|—{ƒ‚‡wŽ‚…€’–‡yŒ|’v“…‹~}r~‹z”‰wˆ‚‡‰Šƒo€‹}…†€Šw||€|„ƒ„†Ž…ƒ€t…„{£to}y‹~††uzx‡zŒ•“…n†tsuy‰‡…}Šu~œ„‘‚ƒs€‰zˆ{y”…ƒ†~x‰„w”–†‚ˆ†„”y‡„t€{}€zrxvruv}€{€ƒ‚uy~—Žƒz‚Šz‚ƒ¢ƒˆ~ƒ{{†…~ws‹‚|‘‰„|ƒ…|€ƒ‘k~}Žx‹„xsio|{uˆ|ˆƒ“…z„t‹}“Žz{‡zo†€‚{yy‚ˆqƒqƒ€}t€wz~~ryxŒ~}zp‡‡ƒy~|yu{€vj}xww~Œsvtuxylzuƒeru{{z‰|z‡vŠusx{}|€~s„€t{w€u}vy‡}wzw‚twqzˆst~|zz~sw~{uuue€zu…‹{|zz}zuzs}{‡“{‰}{ˆŒu‡‚yƒ„n‘‰wwwŠrw…ov~n†Œ…ss‹ŸŠww…w„‚n›•Ž}†y…~€‹tƒ‡ttsv‘ƒ‡„„‰t€‹wr{ut„†ruw€ou{uzx€ƒxvx}zuy|s‰x~p|…w}„vz{†p{{y{r~|xr„ƒ{Ї{‰r€rg~w~˜ƒ‹}q‡|‰~„„„y„|sw}w€mw}ˆl‡|z‚~€rw|}‰€Žzb‚|zrz‚|s|{vx~{x}x{ˆ~}|†s}‡‘{lx‚w~v}Œ|€{{qiz…u~|z~w{|ut~‚ƒ˜}€„~’y‡}…|€„‚‰’Šwsw†zƒ{u˜|‚„x„ƒ‰z‰|~ƒz’…†¬{……‡ƒ†€z…‡~—„}Š”†„“š…y€ƒuŒ™…qO{p‚{z€‚‹‹‰|‘ƒ”’|m‹ƒ‚~||…|z}Œ€zp†‡†y„{”†v}|‚y~ކ…yƒ~•~Œrˆe†sƒ‘‹†z‡wuv‹ŠjyŠ}‚xj‹„„~€‹ˆ}Œ—‹sw~ƒ‚yvƒ‚|ˆ{|~~}z„‘~y„w|…‡€|‡€€~}|{†zz€ƒˆ|x{|tƒ„|‚{tr‚„x|‘‹‚Œ~|‚{„€Ž„x|uv„w|x€vƒvmƒv{~‹{`wx™uuƒxt€–„p}mqˆxn€x`oxŒ‚†yzyq~†tzz‚†w†wkqq|usw}Œ‹ƒyoŒy‰Š{t‚}~wgŠŠ„„}yu‰m†g†z~vycw|yuxv|yjˆ}ˆww{{yrq|†lqt„m‚ow€€~uqtx€v}z‚‚[syvˆ„v{~vx‚xdyo~f|zu|‡npx}wywky{|‡ryuƒƒ~w}z{gz€Œ~l{}i€~oyŒ}w{hx|v}|މ€€p„w{v‡x~‚iƒ†~‚xx~zyˆxt‚n~ˆ‚~ty…Ž‹}u}{zŠw•Œ€}ƒ~{€tyŠ~r{|v~ƒ€‚wyw}y}{‰„yu~~|~|y‡{~zuŽyy‚~†y~y|‘|‰}wyw‡my}~v|{tvx}ƒ{‚|€u~y†y†yy}}|ˆ|w‚zv}|uws………tzx{‚|}€„ny€x‚„„|v„}zŠ{p}y{y{ƒ‡s„{v…~|{|~„{x|~}„t}~xzyƒx~‡~‚|€€xuysŠ‚€w|{qz||z‰€~‚Š}~yxƒƒ‹w}ˆmz…{ƒ|’’‰‘‹“€€Žˆ„Ž„v‹•zŒ‰”ƒ›‘‡‚€‡ ŒŒ‰n€Œ…–‰qŠ}ŒzŽˆ–‰Œ€‚Ž‹ŠƒŽ•€’jšŠ”†mŒ‰ƒz”p†…’…އދ•ƒ„‚…„†~yˆŒ‡|’‚–‰Ž‡„|Š‚}‹Šƒ|„‡Š’ŽŠ’Ž}q‹‰„ˆˆ„ˆ—z‡”ŒŒ}‹‘‰|’ƒ†|“Œ‰Œˆ‚‘†„ˆ‹•…‡‰Š†‹Œ~~ƒˆ~ƒƒ|‘ŒŽ„„~uŠŠŒ…‹Š”‘…’ˆ“‘’‘‹‚’ƒ}ˆ‘t…‘‘“–Žo‰€‡Š‰‹‘œx˜““ ‚Š‹u‡‘{}‹gyr“‹”’“¡†qœ„‘‘‡}˜ax”†z„y„„ƒp¤u‘•Œ{”–zz¥Ž~Šˆ…•Ž‚m‘…ƒ›†r‘wˆ}t}‡q}¢|zn‡‰z˜•‡…‰…ƒxˆwˆˆu…u™”‘ƒ‚v…‚‚wƒ’‰€…ІŠp_‡’‡|ƒŒ“‰s€p’Œ…|{xˆƒƒ~˜‰‚š Ž‰Œ†„œ‘‰wŠžoŽ~‰z‡hšŽ‡‘‚‹ˆ Œ™\‰{‹ƒˆ—ˆ’|’ˆ’£‚“‹ynpŽŽw†Š|œl‘€}„—pw—„€|…w€{rv|sq…‚wr~‹|xr}Šƒ‰ƒz‡€~|{p~pn{i„mztrw‹rx|X{wy{nƒutz‘|pq‚~€u}vv†€qpts‡gxq‚wxm‚…€‡†pzmwp€{vusv€mz|ynw{}ˆ~~mƒ{z|~}~|¦wo„x‡yy~wvˆ€o|„i{}~zyk„†„m†|spƒ„k{„…y{qlxz€pzƒ‘u„|wyuw‰qƒuz}y}€€{xyŠƒy€v…wƒ………xr€wtz†xs€„xyy{€}z|~€–‚„{ƒ†™v…‚…y|zœ‹–|‚™Š‘z‰Š‘„{vŠƒ‘……‹†…“‘…œ’xm“yq–Œ€†‘…ˆ{‚›‚y‡ˆ{šo…†¥‰ˆŽ{•€†ŒyŽ‘Œ‡{Ž‡ŽŠ‚Œ’Š’}™…ŒŒ’o´rv‚…’oŠ—ƒ€‚‹—ˆŽˆz”„„Š‹€Œ”‡}‰„ƒ‘ˆˆ‰…‡‘|–šˆ…~…€yƒ’‰{“š…™Šƒ‚†x›‹’‘ˆŠ‹‘„€…„†Ž†Œ‰€‰„‹¨ƒˆ‡†wŒ…”‹‡Ž‹„ˆ‰‹‚Ž““~…“‹z‚ƒ~‡ƒŽ”Š‚‚Œ…‹ˆ€†„‹‘„ˆƒˆw‡“‘‹‹‹‘’…~‰ƒŠˆ†‚yމ“}™’“Œ‰ˆŒ†š‘‰‚žŠ‹‹Œ‰Œn‘‚Œˆ‘Št‹ŠŽ‰{Žˆ–Œ’€‚ŽŒ’†ˆ˜’h’‘Š’‹l‘‡‚|Šo‰†Žƒ}‡‡‡~Š“‹…ŠŽ‚€~}z”„€ƒz‹}ˆ‰ƒƒ~ˆ‡ŒŒ}zŠ“Œˆ‡‹€ˆ‚Œ„Ž~Œ‡€‘ŽqЂЗ‹‘†„”Œˆ‡…•…ކ‹†ˆ†ƒ‹‰…ކ‘‡’†„‹}Šwˆ€…އ–‹ŒŒŽ‹˜ŒŒ„‘‚Žs‰•‰–n€ƒ…އ}~‹‚‡x}{|‚z{|w„u|‚x€€†…vˆ|…{ª}}…ˆ€~…xvy‹ƒ†}Œ‘„~–†wƒŠwy{z†‚z‚Žz~w}|}†p‘Š€m‹ƒx€††}„~uƒr~x€tv…Žmx‚{uo…x‚{zy~‰‚v~x}y–z†zf„y‰ƒ‡~v‡w„~}zrzuv‚‡nr†x{‰ot}s‡…sv…{u‡w~{r‹}x‹‰€w|…v~€xy~rv~†ƒ‚~ƒ}|zw‡vŒs}yr}yys‚zp€‡ƒ{|yy‚€xzu{‚ˆv‚‰tŠv}„n†ˆz…‡ƒx„‚€Œ‚ˆ}gz„’y‚’‡†€‹†€z¶v‚„~ˆˆŒzu‹‹…†“—ˆŒ|“‚‡x|‚y‹€„†ˆ‚ŠŽx{{™ˆoŠƒtŒˆ~‚ƒˆoy}‰sqˆ‹„‡ƒ…y‡€†}Œ~‰†‚z„ˆ}†|†€~•y„„zf‚‰ŽŠˆztˆt„€ˆqv‚su~zŽq|~v‹y~‚€†„’z|z…}v‰€}zyŠ|„€†vxˆz{‹Šz{|‚}‰~ˆ„}|vzz‘s{u}„€z}…vs…‹‚„xˆ€€‹|szv{|Œv‰x€€|ƒ|ˆŠr‘†…z†„Œ…|„ƒ‹hx~†yxz‰†…‡‘Œ€}„¹v€‚‚„ƒr‚ƒ……†|‰”¤€€Œ…z‘€Œy{މ‡‘}‚„‡|ˆ†w‰–…„k~ŠŠpŽŽ‚|†~ˆƒo…|‚{uŒy‰‡€‡ƒuˆ~‹{~{ƒ|xŽ…t‰y€€d{‹žŒ†vx}zv‚rv„pyx~{l…‹~~~w„x…€‘vuv„}}wxy|‚‹†ypŠyz„‡|}xwƒx}‡ƒ…z‡~|{y‹~’q~{ƒ~{z†utx†}‡…z‡wry‘~{‰{xƒz}|†u…“y‹€xƒ~‚€‚“ŽŠ|h€~x‚‰„†ˆ—†{xÀt‹‘…w†vqŒs{†’”’}š€Š}|ƒƒ‹‹{}}‚…‰Œ†x‰—‹r‡ƒ‚‰qŒ–‚‚€xƒŒmz~xt{‡‚€„…yy|~‚ˆ{‰‰u‡ƒ{„‘yŠ{{“v€a|’އqv„wƒ|Œrx‡‹svŒ{Š„lyx{|‰w‚…ˆ€‘~x}zx~€zxy‚v…u„uq‚zƒ’|~w~€zzŽ|Š|ƒ~‹|wvt–u€u{…}|ƒvnŠ‹…‚v†‚ƒ|o|sp|„w„‡u…~ƒ‡}“‡ ƒt‘Œ„’Œ‡†Š€ŽˆŽ„ƒ{‚މŒ”}‹„™•‚†™„ŽuŠŒ‘r™‡š†{‘†ƒ‚z’…™†•†Œ‹†v‡Ž’’pŒ„oŽŠ‹wq€‡Œ|}‹‰†r’Ž–‘Œ‡{ŒŒ€|}Ž‚”Š‹‹ˆŠ„‚ŽŠŠ†Ÿv‰†‘Ї‰—€–‹œ‰‚‡|ƒ‘Œˆ‹‰“‰ˆ‡|Šƒm…†Š—Ž…‹‡‰Ž‡ƒ…‘~Š‹šˆ…€‘~ˆ“›x˜””~~x~‡{„{Žq‹–ŠŒ†ˆ‘ЉˆŠ‹‡yœ~’ˆsŠŠ‚…{‰oƒŒƒ†r„}~yŒ•‡uƒtzu†|Œ……m~ˆ–{}¢Ž†……„‹†wº{€‹†sŽˆr€Ž•x„‰ƒ€‡‹w‘„‰‘q€€k“‡€‘~“”…ˆz„siŒ‰v~‚x{ƒŒŽ„†tu‘p~|yv~–„Š~yƒ‘oƒ„pŒ}…†€|~‘€}…{‚}—x~‰…cŒw€|~u„{…Štr|ˆysŠ„tur{{l{†z‚‹›‚„„…wq€xz•x‰|†y|}yzšŒx{y|Ž‘y†‹‹y|yp…‘w|mrŽ{}wyz~zŒ€}ƒƒ…†unu—|†Žv|‰w}x…}t”†}l’Ž“ˆ†ŠŠ“Š|€”}‚|”š”†‹š‹€”†Ž•qs—wvˆˆƒ‡›’„x‰“ŒŒv–”‰}˜wŒž†„ŒŽ‹~”‘‰Š”ƒtŽ”“zŠ…ƒš˜ƒŽ“”•v–xŠˆŠn—ˆ‚‘…‰‰s‰’ŽŠ‹’˜ˆ}…‚‹Š‹„ƒt…Œ{‘†‚™Š‹”‰‰–“ž‰‹‹„………ƒ‰”Š‘ˆ€ˆ‹Ž„ƒŒ†‡†Œ}ЉŒ‘„‡z|‚•”ƒ’š‡ˆŒŠ‡’€ƒ‰}‚y‰–’~„‘™Ž†Š‹’Œ’“‹xˆ™†€‚‰Œ‰Œ–‘Ž…‘‹”~ЉŒŠ|“Œ‰m|’‰Š‹„„†k†v—|{w“Ž‘ˆ‚‚މބޕnuŽsy‰˜•‡‰}t‡“ˆt’–|‘ˆ”wІ™ˆƒ“€‰‹‡ƒ‚šŒ’ƒt†Œ’}ˆŽ•“ˆ…›štop‹‡‰~›‹ˆ˜wŒ|oˆ“•Œ‹Œ„”Œ––‘„ŠŽ„xŽ—vŽx–ˆ‘ŠˆžŒ’ˆz™†ŒŠŽ…‹‹ŽŠ„‰‹Ž„ˆ‘‘‡ƒ…—Љˆ‘ˆ…‰‚Š}“|~Ž”‘‡ŒŽ€‡Š‰ˆŽ†•ƒ€‘”›•‘ˆ{Š’šŒ{~—‡Œ‚{Š‚‹„‡‡€‹’ƒ˜‘•o—}m„„ˆ†…vƒ‘†Œ•}‚›‰Ž‘œ’…‰–lryy˜‚|–~o˜”•Œˆq•‰u‰qŒmg‘…{’{‘Šˆˆ{œŒ”™™˜’w“ˆ…‘‹—‰Žz“™˜l–†Š‚†ŽyŽ}ƒ‘o{‘ˆ‡Œƒ‰|…†‹€Š‘ˆ„…‘Œ–zƒŽ‹–†“Œ‰”„›‡l}wƒ‹Œ…|ˆ‹}~“£Œ{‹–…Œž‚†‚¡”†‹€€‚‘¥†“œ’ˆto•˜Œ‰’‹’{~ƒ‚{†† ˆ–‹Š‰ŽŠ‰˜’–}‰„ˆ{˜–’‹‰–†“–‘†t€ˆƒ‹†‚{‰ŒŽ‹•„•ˆ†‰‚ŽŠ„Š‹}–™’“Œ„‰™ˆ‡Žƒœ‰‘‡ˆ‰…{‹…xŠŒ{‚Œ‡xŠ—Š‘‹„Žƒ‰}‚Ž¥‡‡Œt‰ˆŠ…t†y†y‘sŽ~‰|ƒŽ~€…Œ…Љ}„y…‚†‡‹{šŽƒ…Œ|wŠŒ‹ƒ…Š~‡Ž‡€Š‘Šˆ€Œz‰‹‰‹‹‹Šƒ……‰‰‚‰xŽ’Ž‹…‹z„‰Ž‹–ƒ€‹Š†€‘‹|ˆ‰ŒŒ€…‹€ˆ‰€„Š‹‚“‰‹‰Š„ŽŠy‰†‹‰’j‡ƒ‚†”}€„ƒ{|‚„{”vyz‚†„ˆl~…|zƒ~wƒ„y…Ž‚v€‚„xxxxyw{“z‡€„{€ƒ|ƒ{~”~ƒrz‚x{…‚‚‡|}…x‚~‹z€}n‰~~€|‰‚‚~||u‰s€ˆ‡|s}€r‚‡{{‚}Ž’z‚}ˆ†…}|~Œz{€v|~ˆs}pƒy’w€pƒ}}‚y‚~€ˆƒ}y„…‰|{‚†€}‚v~€~€…„{ƒ}z}„€ƒ‚x~~€€|€}x{{€€r„s€‹€‚ƒ|€…~€~‚~v‚|s}}~†ƒ~„„~z‚„…Œz„tƒ|~zkˆŠŒ…z~vƒ€tq~Œup–ƒ€{tšˆ~v}skxzxcŠ€q{~x|swt}†{~veqsp}zx…xruƒ€†w€{„…yuxuˆvf‡~u€u~€t~y}†Š„Ž{s‘pvwrnxv…t€€|‡—|{z}yq‡€€w|~|–‚}ƒwˆzzn}ƒ{e„q~}Šƒ|‚„‰†‡~|~y~ds|~r€{~y|…‰x…t…}zs„qvuyz~‚}|}‰…z{~…‚‰„„‡yz}‚z‰zn{…xhy|‚€‰‡Ž„‡y„ˆv‡…ˆ€vœw“p‚~‰Žx†‹…¨m~}„“‰”š„zr„™‚ry›•†ƒŒŠg‹Œ}¦{Œ‹u€‡‹{—‘“r}zŽ~o’…~„s’†z…„‡„_ƒ‘‹}‡š•’qž‚…z’ƒ™³†|y‚‰yt„wŽ‹‡Žv~yŽ…„ƒ‹–€‡ƒu–—x‰ˆr‹‡ƒ€„„ˆ~Œ“ˆnŠ¡‚€™™Š‹˜†Œ”“„†xx™†ˆŽ€Šyq}œ…’y{–”…z†ƒv“}‡s‚†Š‹|u‚–––|€ŒyŠn†‹–{yˆ“‘g~ˆ“œ|~z}Œ‡„Ž“ƒƒw¢„€}~БІ‹’~ŠŒ‰“„”Œ”zŒŠƒŒ‘{€”‹’‹˜—“‡{~Š—‡’Œ‚œ‰… ’ˆ‡‡ƒ{Šv“™yw…š…„…ˆ—‹Ž£ˆ‚‚†„zŠŠ”†‰ƒr‰‚¤Žt‘~{…z›s„‚}~ˆ€ˆ‡Œ“ˆ„q€yzƒ„’‹–„Šx ‚ˆ‹x{…‰‰•š‡—z~‹‘„„БЕޓw†Š“‡…„Š…‚ƒ’—‡•x•›ŠŠ…‡‹w‰Ž ‘š˜w{{~ŽwŽŠƒ•Œ”†Œ}‰Žˆ~‘z}†~ˆ˜‘ƒ‰„Ž’““Š‘~’’‘Ž€ƒ…—kˆy†‘‚€cou_–xwwq{šrd„„qŠ€|jyq‰‰xv‚||{i›yiy|rpjsizoT~v{lw…„|uvf|}pj{…u€}i{qm‚l}y…Œ…‚‚zkaŠ{y}jƒhyyjžˆ€‰|vumxuszkyˆkynrpyyt~qvf‚u„y{utuŽgstqfqyƒaxrtrƒvovptpunlz‚…duwqr{qtwwvvsvmpqptz~yxy}lhv}{lu{fv€yoxwtqv~mwl„p{vzk™u€‚ojpqdmxwku€tvsnwwt{swŠwxo{‡‡{x{lxw‚s‡‹Š{wwgzŽpxvv}uyv|Žzv|vwzlˆ„yy}vtstlykurxyv€~|}‚fyxts|i|ŽyŠvqy|zpyrr‘{w}vdˆ{yq~o{qz‚€Š|{tyrw~rvtxkm}r||wgwurvu’s{swvwv¥pwuqitv„pqsuqzvty~zypix‚qzyvvrqorwrtzuruxuvruzz|xsruuz}qwxuswywv|uyw{trƒxywww‘w}orosorzpr}txuqxyrywq‚…v{ƒt}}ˆwyzxytŒ‰ŒŒ}„†‘‡ˆ†’‹‰~ƒ‹ˆ†‡€‚†”ˆ—’‘Š…˜”…‹™š„˜ˆ†…‘Œ†zŒƒv{‡zŠ‹~ƒŽŒŽ’‡”’ˆ~ƒŠ‡wˆŠ‘ƒ‘v~|wr‰~Œ‚Œ{‰y€Š‘Š‚‘~‚Œ€’„€Œz„‡ˆ…„{ƒ‰Š‚ˆ•މ}„Šƒ…Š„ŠŒ‹}ŠŽŠ…‡‚‡‡€}}‰‘‚‘ƒ‚Œ‰‰“—††ƒ“ŽŽƒŠ••’‰|x„‡Š…}‹„ŽŠ…’y€Œ‘…‡„†‹“Ž|‡ŒŒŠ„Œˆˆ{‹‰|…‹…“ˆ…k‰„‚~‰~”ˆ‰}†‡}ˆŽ‹Œq†€pw—”‰€Š‰Ž‘Œ{‡ˆ~‚Š‚z¢„Œ…ž“ŒˆŽ•‘u‘‡}Œt‘†v‹œs€‹…™Ÿ…‹~„’…Œ“‹„†ˆˆ–‘…š‰Š‚yj’rŽ}m‘š˜€…€’wŸ†~}”|Žˆˆ“‰…‹t™~ˆz–ŠšŒ‹‘‰ˆn‘•x{‰w•…¡‚„–‡Œ†‹ˆ‰”’ƒ|“„Š€‘vŠˆ‹”Žy‡‹€~ƒyˆ…„€x…ƒŒ…˜ƒƒ†}xŠ‘”•Ž›rˆŽ€Š…€”ŒŠ‘|s‡‰„•{~xŽ…’•Œ€‰Ž€w~…–„Ž‹¡t}œ†{‘•š‹˜‡ƒ•„…{z”†š†”„†ˆ‹’ž‡ˆ•w™–ˆ}}”‘ƒ}—zˆ›†€„‹›Œ•‡–‰€”†Š’ˆx“ˆ‹{‚››lŠ€‘xl–†—‘ŒŠty…‚•ŽŒ…‹€•k…‘‰‹~˜‹ˆx‹ˆ™ˆ•މk‡ŒŽz}~‚‰‰ššŠƒŠ„…•Œ„ˆw†‡Ž~…Ÿ€„’v…Šˆž‡Š}w–‘‚†z{€†ƒ|’ƒ•Ž•}•†ƒ‚‰z€w“•Š–š™Šl~‹ƒ•|Šˆ~ƒŽŠ‰’{•~—rŠwx”ˆŠ‚‘Ž”ˆœ€ˆƒ–‹‚yˆ‰ƒ{z•{‡|ƒ„}”’ŠŽˆ‚†–‚›Œ„‡‡‹‡˜šz›Œ„s†…}“ˆnŽ‘™™Š„”~•„†ˆƒ”…“}Ž{y†y†w—{zx‡Š‹’„}ƒ{”‹ˆ‚‚‚sˆƒ„ŒŒvˆ~š—~Œ—œŽ‰‰v‹‘tq‹zŽ–ŒŠˆ“€y†Š‰{„ˆ‹„‹…†‹Ž‰Š{•”Œ•‹„œ~z‹}y…}ƒ~|~ˆ‡‘ˆ†…€ƒŠ€‡…—‡…•…‘‡Š–†{ˆˆ†Œ†‚…”~„Œ‹Œ}†rvƒw“Žtrx›txsngt hlywt’}v€pt‹soluvnsl•pu{‡ofegpg™z„mo{yw„…yuˆs}›j˜}pwohroutxƒg€tf‚}q~mrv{‡ww€zt…j|ywytqev‚}Z|vr„€qur‡zxzxtuuœpu|fiux‹orrm}jft|vyxvkumpf~|xwyqvx~vtlnoutyot~xtptpƒntx{zw~mjzxz{mr„qu}kƒx{tŠsuzjtgumnzvmtzwxksqox|~r}ˆ~}vh{…‰w}}lphstz|}{vq{lsqu“z}Œ‚xxn{ˆ’|s|{}{xpŠx}|vruskrv€wyw‹ƒyŠ^ywsxr|mŽxœykxzw~ovqo—xv|{zbˆyzn€p‚nzy|•|}„nyty‰wts|ilrv{ut}}y”‚pvtŒr|rvwuu¤kutodtv…onnsnvjytwu}kfu~mzw€ttqopqvqwzrnruuvpu|}{vsotuu}txyuuuyvtwx€t{tptyvuv–v{lrpwnpy~hq|tvzpvwpwul†uz‚t|{txwuwswi|{€|z{xk{„sov‡uv‰ƒwztuŽŒ‰vz~wv‡jš‡wv}vquskpy†vvsˆ„‚bxvs|o€h~xv‰zlv}y€ovrsyx„xle‡x{nmpyq{Ž}‹Švxp†vwt{inp|}tt~wŠ…rwv‹q}tyxvw›npwnjvv„iortn†yj{ryt|mkvlxz}rttrnswox{smstvwov€€v}wpqtw~~qxwtwzzxvxx€x{sq„szxxx’w}lpromr|~pt}tzsrwyrwuo„‘v|u~~xzxxwt†€Š…„{ˆ‰{—Žœƒ~‚Œ‹‚ƒ{|‡—œƒ‚ˆ’Š€š‚“‚{}—™…’Ž’€…{‹…sЇ‹ry‘k’ˆyƒˆ‘‹ƒŠ}Š{“ƒ… “‚Š‘tŒŒ˜’Šu–¤{‹}’r…‘y…}”ŒŠ€u‘††‡‘{}…€”–Œ„’}˜™“’x€Š|z‡Š„z”‹Ž†‰‹’ˆmˆ‰ˆ‚|…ƒˆŠ}‹Ž‚‚†Œz‘‚ŠŒ•–£‚€—•„ŽŒ|‡ŒŽ}x„ˆz{‹†ˆ„ˆ‚–’‘Œ†‹–ƒ“‚•Ž‹Œ…މ‘І‘|‹sŠŠ‰‹‘j‹…‰…Ž|~‚†‹|‡ƒ€€y~’}yŒ„x€‡zƒ|}ƒz‰Œ||vxvj€†‚|xt~‰‚}~€|‚t’„‚‚}………{|xˆ}|‚|zŠ~yzt…€}{‚“„„—}oy…y{yzƒu†z‹‡}‚{yƒ‰|…€€‚~v†v€€|xqˆt„_†}v„ƒ…†v}‡€y{ƒƒ€ƒy€‚yx{„}…†…†|~ƒz‚y€y{}…‚ƒ„|†…‚~‡{‚ƒ‡ƒŠ‚ƒ†||}|ƒ…xƒ‚†„m€ƒ‚~‚†€„ƒ€†‰‹|…ƒ‡}xhys}wvtyŒrnxžqyƒyzqyuqz{~yƒf‹„zz~wsvtrtxvxyІ‹|„k|yv~v~k‚x—ymx}yqvsz†zy‚x|e…{|q€p‡syv~’„ˆwytz{svr|kq‚s†|vm}y’sywrzsxxvw©mwvqguw…opsupˆxj{zzv|njvo{z€utsrutwux{upuuwwqv}y}xvquxy~tzyvy{zxvxwyw|uq„u{xwx•x‚}oswvor{}it}txyrxyrxwt‚ƒx|‚v}}’xyyxxtww‚y•…{zyj{‹z{ƒs—}tz}“‰zs~s}yŠqx‡~}}yu|ul~ywzx{xm{lzl|{u…v~qy…|…vy{}~€swtw–~vvˆ{j„wwszx|ˆƒ’}†—yszsvssppsu{qŒ‚vˆ|wvp„zuyyxx¤y}zuuwx€pw{zw|zv{ƒ~€wq}†‚x}~~z{wwtv{rqzyyu}wxww~}|s{ywxq|wuw||z|{y|„|{xxƒ}|z}{{‚tts{tx€€qw€u|psz}x|{{ƒ‰{„v€€ˆx~}|z„Œ…Š…Œ†ˆzŠŒ’Љ|ƒ}”‡Š~…‰„‹‡†’‰ˆƒ„¨Œ†—ŠvŠ€€vŒ}x”€…ŒŠ‚€Œ‹{yƒi‹x„|ˆ“††‚Šz‹‰‹•…r‡uŽ}‡€ƒ‡~—€|z‡†–~„€‡………Œ‹‰’ˆ~€…€‚Ž’€ˆ‰‚‘Œ„‡z’„Š€ƒˆ€‚Љˆ|~ˆ‚††ƒ„ˆ{‹Šz€py„‡…ƒŒ“†ƒ‹‚Œ€‘…‚„€Œƒ”†zr‡Ž‹‡Œ…‡‰•„€‡Œ~Œ‹‚Šz‘‹Š…“‹‘‡‚‚Š€ˆ„‡†ˆˆŒ‹€ƒƒ€‰ˆ‹™ˆzކv’ts‹ˆ™|zzozzlzƒ{u–‹wz||”‡vsyvsu…i…‹{v}wtxrk~qx„uyvm€y~_zus„v|j}–y‡usx|{qzr|…zv‚‚nd‰|wr€p€vz|ƒ}’~xrˆdsurwln‚q€|wi‡uŽ{svs†t~swuvvšq{vrisv„spuurxlxy{wqky‚€r{z~vvtrxsxttytrpwuuru€}z}xtttu{~pyvty|zxxlvxƒy{us…v|yxx‹x~ornzps|}kt~syqqwzsywux|‚t~}‰xzzyyu–“”•€—Œƒƒ“‰q€†~Š…Ÿ€|‰‘—š‹—„Š˜Š’†“„Œ——†™‰}‰Šz‹ƒ‰‘x”ƒw““‚†’¯¥Š„z{…„Ž’‘“ƒqކˆŽˆwŠ}‚Š…v€†‹€‡‡ƒ†‡€’„‹‰}Œƒz€{‹–‚ˆy’ˆ…Œ|u’w…Љމ€”“„|z‚“zˆ‹Š…‡•‡‚€™•‡‚ŠŠ~€†”x‹†•“ŽŒ‰ƒu–‰œŠ •}’ƒ‘Œ‰{~‰r‚s„‘†wŒ}Ž€…‰z”ƒ‰‘‹„€‰Ž‰†}yЉz‰Š‡~Žm‡‡ƒ˜€uct‰•ˆytoeyŠokwŽxw•†xztxЉyqyvwsg‘…zv}vtxsgznv€uwn~{‰y}{zsr„s€kvŽvqx|yotqw…ywtrb}zxp€ovqz‚}‡ywsƒtrttzim~r€}veƒ€uˆ~rvpˆq|qvurušnwspcsu„lopsp‡tiyxxt}peuoyw}vuqoxqwqvyspkuutptsw{wupsvx|rwwt|€yuutuxu{tp†t{vuwŽv|mqlmnozbq|qxrovxpwvq‚wzs|{†zwxvxsœ•‹‰y‡†…‹‰ˆ|“Œ…„x‚|† ‚‚‡‰Ž•‡”ƒ‰†„Š‘“‡ž–…‹xŒŒ‹•‹†˜Ž}•…{Š{’ŒŠq–|ŠƒšŠ{†‚‡‘—ƒ‹Ž‚„‘‚‘އŠw|y„ƒ{‡Š}ˆ~ŽŒƒ“€……„~˜€•‚‘‚‰~ƒŠ{|”€z‚‘‡|’™Ž”u„|o“‘ˆ‰žˆ”‰ˆ”•Œ„†~|‹ŒŽ’‚†‹‡•Œ‹y…ƒ‰’|ƒ’…ƒ‚’xy€……’~ކ“€–|‹}‹„|€†‰•‹”‡”‰‚Š€‘…†…‡‹~‚w{‘’‡€|€Œˆ–ƒxo”Ž~wqrxyifvyw’zxs‚Œ†up{u|tzj…ˆ{y|xuxs]~tv‚yyuzƒ„‚}e{us€u}p~¥x‘uty}{€puryŒzvwyrd‹zvrozsz‚€Ž}|ws…oqtswlm~r}yhƒ~x‹zswr€tyrwvvvšqzvqitv„sqvuqƒwiy|zw}pkxƒ€r{y€wvsryswpvzurqxuvtvyz}xvsuvt}rywuw}ywwqvyƒwzxs…v{wxx‘x‚~otsspr|hs}sxhpwysyxt€ƒx|‚t}~‰xyzyzu¥}•žŸ}…„ ‚Œ‹‹¤–„y‹œˆx~ €›su”‘ƒ’™–„†‡wŽˆˆ¤z‰‰„nsŸu’Œ³£Ž‰{x|Ž­‰™˜‰wŒ‹‘{’o†}—ƒ•s‡ˆ}‡xŠƒzœˆo‹˜“ˆˆŠp||ˆ–“ˆ‡|™†t—|qŽƒzŒ†Œ‰‘p‹–„x€ˆ•y€Ž€’zvŠ‹š•–x€‰w~ˆ|‡ƒ‚Œpˆ‘™‘ˆ„…Œ‘~—™sp”ˆ‚‘}Š„oˆ”’‹z•Š~}†ƒ~„’“„•”˜ˆŽ…}‹Œv„‰‡Œ‰‘†™‰n}w‰q˜‰}ˆ‡…|~xu‚‚tu€Ž€t—€}|y‘Šyz{|~‚{kŒ€t|~vyuv‚~~~}}h„t…xk}{z„}ryƒ‚|z|ƒ„…zwz|‰ykw‡x~€u‚~~†‹…’Šzs“sz|vryx†v‚~–~~†{~|tŠ‚…y€}~~‚~ƒx‡}|€x~‡‚{m…v€w‰„€~ƒ„‡†‡}~€|€hv}€u€|€|…‡|…‚w…|tƒtwxz{ƒƒ}‰†|~†€ˆ‚ˆ‚„‡{|}}{‚ˆ~r…zkz~ƒ‚€‰†ˆ„‡{…ˆwˆ…ˆtpu‰Š{}trc{ˆnsw{x‘‚txpy‰…sqxw|x€hŒ„x{|vsuthvktywxuˆy~zu{wrr~k€’y“wsy{xouru“zw€xb€|zp€p|oz€}€rxux†tst{jnt{}whv€xƒ€rvs‡rzquwuu£nzspetv†pppsq‡uoy|xv~pev‚~pzw€vvqooqvqxytqowuurt~v{{wuptuu}txxtxzyuuuz€u{sr„w{uuw˜v|nsornpyjp|rvrowxpxwr…wz‚s|zŒxxxuxsš††{’„‹‡”‰–‘„…‚‡…Ž£’‚Ž…Ž€ž—“’ˆ‡ˆ˜ ‰‰‘“ƒšŠ‡š’„‚Š}”‹xš‹‡—y‚¤Šz…œ‘’’—’|€„Œ£‚‡‰zy“Šˆw‘{€k|„|…‚~|Šƒv}ƒ…‘‹™„t~‰‚ƒ€€“„•~…zš€…„ƒ}’~z“…’š‘“Š•|“ŒmŒ–މ”‡“ˆŒˆ†„}}‰…ƒŽ“ˆuŽŒŽ„‡„‹ˆ•Œˆt‚’‡{Ž~}ŒˆyŠŒ–Ž„–x„„‰}†ˆˆ˜‡|…‰Š‘Ž’Ž‚†“‡€ˆ•…‹‹r€~†•„‚—„{•‡‘‘|–†‰z‰ƒ…„”‹†‚Œƒ„…ŽŽ†€…““‹›ƒˆ†o†„s‰Ž„…Ž…€sŠŸy’ž…‘œ„ƒ‚‰“ €‡‚Œv|t‰†ƒ‡„Š…‡„†€ˆ…ƒ|‡Šƒƒ†‰†‡~‡Œ„}‹‘…z€~†p{‚}‚Œˆ€uˆ„‹Šˆ„’„‰‹„|z‰¡sw…’}€•™~ƒvx“†‡†}‰Š‚|ƒ‚ŽŒ„‚„އ†‚†…|‚„ƒz{~x~Žˆ†ˆ‰‚|ˆ‚t‡„‚Ž…‰”‰ŠŒ„‡ˆ‡ˆ–~~†‡‹ƒ‚Š~…Ž~‰|~x}u‡…{{nkzqmx|v•†wyx|‘wt{u~ve‰†y}|wsxt`ttˆxzt}w|{‚k{wq~s}o|”x‚vsy|zptrs•zvz‚nc…zxqp€sz|vxt~wptswkkrw}xpx‰|svrˆtzrwvuvqyuphtv‚pqtur~vlyyzw~pix‚€r{ywvrqqrwrtzurpwuvstxz|xusuuv~qyvuv|ywwuvyw{ur…wzvww—w}orstpr|€gs}rxkpwysyws‡x{‚t}|†wzywxut†r‡z|zr}}ƒqnt“v{‹€xxr~wp}v}|xfކx‚~wsztfqvzztއz‡d{yryt|r˜x”xnxzxpvspŠywz}wcˆy{p€qmzx—|€iystƒwst{jnr}|wm|zqwt‰syrvwwvžmwtpftv…moosoŒumz{wv~nhv‚~o{w~vuromrwvw{tppvvvqu{y{wuqtus~tyyvwyywuyvyu{ur‚uzvvv¢v|nrvwopz~jq}tvvqwxqxvo{vzt||uywvyt‰‹ˆƒ‚„‹ŠŽ™~š‰„‹€‘‰Œ„~}™‘Œ‹‰‰œŒ‹‚–‚œ‰‹…‰Œˆ{ˆ…w€z|„†‰x‡Š˜†‘šˆ‰‰Ž{„‡¦’Œˆu‚Št‘{{Œy™r{‰z}~‰…’…}ˆ|~‚„~ŽyžŠ€ˆŽ}w†Œ…ƒ€ƒ’‹|ƒŽŠ‹‡ˆ€ˆt…”ˆ}Œ„‚…ƒˆ}š‘v“–’ˆƒˆ{…ˆŠ‹˜‘‚|Œ„ˆ}…Š”‡‰~…‡{…~‡‰“‡Œ†’Ž‹ˆ“‡’Œ„‹„w„“€ˆŽiˆ„‚|šz‘˜Œƒ“|‰‹–‰‚ˆ}„‰……˜w’‚‹•„‰ˆš•’ЉŒ‹›ŒŠ‡—“˜ƒ’‚Š‹…ˆ‚Œ–x™†ƒ„y’‘Žs{ƒ“•„~“™Š•…Žœ}Š}Š|v‡‚‘…‰…„sŽx‚‚„€…‚y‹~…–‰Žx}}Œ“~†€˜o‹v‡„Œ‹~qƒ‚’}€”„¡ŽŽ‘”|„“€jŒ‘Ÿ‚…ƒ“€|‘ž~€†ƒ…—›„ƒŽ„ŽŒˆ€’†‰‰„‡|™z’Œ‰zxƒ}€—‰}zˆ‡Ž”•}’q†‡x’x””‘‰ˆ‹†Œty’†‚‡„‚’w{‰ŠŠ|tyŽƒ“Ž›{‘—w†~…„u‚~Ž„€zu—“ˆ|Š–’…‰…xŠ}‡u~~…‹„…‹¤Š”‘ƒˆ……~Œš|‚€™†l‡zŠˆ†z‰‰{‰}”y~„†‘‚q•†Š}—{—’uŽzvsŒz“|‰Ž}pˆŠ‚z’}—xޑД‚ŒyŠ‚~tŒ|„‡‘‘ƒ¡f}ƒ‹{}‹|‰„Ž”Œzz~‚Œv‡Š…‰—ˆ{€Ÿ„}|~€{wu€‹‚ƒyk|Ž‚“zyxˆ{vy’ƒ‰ŽŠ‡Ž|‡Œ{‰~Š‚—€‡‹h‚Š€Œ{ƒ‚‡z‚ˆ–p“•w’q„r‘ˆŒ•xl~|…yzyxl{•xpy™xv“‰vyvt‹‡{tz|~z…n‚ƒzv~xsxtszww|vyq{|„v€ezvvƒu{k}„zˆwry}z€pvsy…|w€xf|yro„rz|”}~”xwqƒssvsxln‚r}xo‰v‚twtsswwvv¢qyvrluv„vrwvr…xuzy{x~qlxƒ€r{z~vwtrztxpvyuslwvvrv€v}xutvvxrxwuyzzwwxvy‚x{tsƒw|yyx“x~orryps|}lt~txvqxzsyws‰x|ƒu}}‹y{{yyuu{€|‰Œzz{gz‹xvzx~r”uyy—„tx{u{w„j…ˆ{v{uqvsj|nv{uxts}wz„fxtr€r{g{yupw{{oyqxŽzuy‰pcˆ|wqotzz€Ž}y—yxs~qvurvjn€qw|wl‚s‘ysvr—t}rwuvvŸqyupjsvƒopvurywlyz{y€rjxƒ€q{z}uvsrurwpoztrvwuvru€~{}xrsuu{~nyvtwyywwuuxx{psƒxzyxxŒw~oqkwos{nt}r{upxyrywv‚Šw{ƒt}}Œv{zyxuŽ~މ‡‰ˆ‹ˆ‰†“}ŽŠˆ‚ˆ†€{މ›”™‚Š…Œ’—“Œ’~’›ƒ’ˆ‡~‚†{Š…uŽ{„ž˜Š…‘„Œˆ…‰|ˆ’kŽŠ…‚u…ˆ…tއz~{†sŠ|Š{Š„—†ƒ†ƒŠ}‰†—ˆŒ€Ž}ŠŒ…Š€Š|Œ‹“‚ž†‹“~…ŠŠ–†ˆŽ‡Œ„”‰‡Œ……}…‚€‡”ƒŠŽ~‹Š‹“†…Œ}‰“Š“Œ‡’Ž…’{€ˆ€‡ˆ–„‘‡ŽŒŽ†‚‰€z€‹ƒ†‹ƒ‰ŒŠ‚zŽŒ…—†‚“„|x‡~ˆŒ‘€‡jŽ…‡†‚ƒ’ކ†‹€‹‹Ž’ˆ’ˆ™€‹ˆ†ƒ„ˆ€z—‹Ž–”™Š†}•”‰†”††›‡‚ހЅ{„wŽŠz{…ކy”ˆ–Š’Š‹ˆ–‰zˆ‹‹‡†‰u‰ƒŽŠu~xŽ{•s…|ƒˆ}‚’Ž‹ƒ‹ˆˆŠ|x†…ƒŒ‘‘…’}“‹’‡‚ˆ|xŽ„zŸ‡‡ŽŽ~ƒŽˆ‚ŽŠ‰…‰z“‰ŠˆŒ„}†‚ƒ‰Šˆ‰Š{’“„†‰y’“•Ž}ƒ‹‚€‡€‰‰’ƒ‰–‰‡~‰†€‡ˆ€|‡…ˆŽ€‘Œ’Œ‹‘”„wŽƒ‰‹ƒ’”j„ˆƒ…|’ŒŒŠˆ‹”|•–z‚„‚•‚}Ž£™‹–Œ’ˆ‚„…”…Œ—…•–‚ˆ’…‹‘€|“‡z•‚x„ƒ‡|Œ€“ˆ‰«•~‡‹Š~ŠwŒ‡†t˜†‹Žw’‰€ƒ„x„€{ƒ|™Ž„—‰†ˆƒz|‚Ž•‘˜€’u’‰‚Œƒ}ˆ}‰‚wvž‰’}wŠ‘ŽŒš…’„…™‚‰zˆ€u„v‡}“z‹“—ˆ‹}„ˆˆ‘…‚ˆ}“~}‹t{‹’’ƒ“‚މv†„~І…–q„Š’Œ‡•ˆ‚“xzuˆŽ€‹‡‰”‰”l{‘Œ‡y‹Š‡Ž‚Š„Œ‡Ž‹‰ˆ~“ЇІЀ~…€Œ†˜›šˆ‹Š”™‡ŒŠ‰›€‰{ŠŠ|Š‚uމˆ‘}‹£ˆ–}Š–ˆ„‰ƒ•„z…‘~ˆ‡„u~ŽŒ–‡t‘{ƒu‡s‰|Š}ywx‡ˆ€ƒŠ‰}}‘ƒ™€ƒŽ{‹‹†~ƒ‚Œ|‚„І‰ƒ›‘|Œ‘‹žˆ‰ˆ‚‹‰„…ˆŽ†‡y…–ŽŠ†‹‘‰‘‹‚yŠ’Š–ˆ’—‹…‰’Ÿ|”ƒ‹ˆ}~‹€y€–|€ˆ‡†Žƒ‰‰“†‘’‰{’„Œ}”“}ކ‰‚j„}‚‰}Œ‰…‘†~‹‰‚‹ŒzŒ‡Œ‰ˆ}ƒ‚Ž|˜š•€ˆ†ŒŠœ’‘‘Ÿ‚’ž…y‹Š{‹„u†„™~Œ¡‰™}z†’‘Ž‹‰†š|†p‰‡‚uv’Ž˜s‹ƒ|tzxs‹~~~‹}{|„¤‘€„‡~€‚ƒœ„y€ƒw„|ŒŠˆ†™Žž‹|†ŽŒœŒ˜ˆ†‡‰”‹‚†Š‰‰€{…š{—‰Ž}‡†‹‘‚Š|—‰Ž‡Œ“‹››‹Œ{~Š‚‚‹—‰}‰’ƒŽy€•t‚Œˆ†“{{‰’Œ‹”‹’ŠŽ„‰†ˆ|ˆ“ƒ’‡ˆj“„z„‘ƒ{btŒŒ…ztrixŽpuužzw‘…uzr{ˆr{swu…fzw}wwutp{pvƒuytz}‚~n{wt‚q{m~”x†vqx}zpurw‹{w„{{d‚{xqp{pz„’}ƒŽwsƒwnurykms~}wcw’vswsŒszsvvuv£pxupivv„nprtq€vkz{zw}piw‚€pzyvvrqrswqwztqmwvvrur||wurtwx}qwxuw|zvvxuy‚w{ur†v|xwww‚}nrrunrz€ns}swmpwyqxwr‡x{‚t}|†zxzxxt€iˆŽŒ~}ˆw|ƒ~sw‹tt‹~zs{‰xxz}€…‡‡|~{sopk~wyxlkŽy~xw|vu‚x|g}“}ƒwu…€…t}|p‹{~zxuvŠ{yv|l‰x{m”ƒ|Œvh“oqƒqxtt€nys‚“w|—‰w~x€x†{||~“rk…m€ykszyrw‡i_|vfƒ}ƒlu…|ot€‚w|€‚|wpvs{r€…z†|w}ty‚r~xvt~~ƒ€o„…|}v„v€ƒˆ‚†uv~}s…v€…z‚r{|€}x„„Š|ƒ{}…Šu€‡x—€™‹›s€z…Š—…—™y‡r‡™z…†u“‡u›rˆ“‘vp”Š£ƒ…{²Œ‹‹‚ˆœ‚¢r~† š†…fu‘™‹lŒ˜Ž‘ˆšuxŽ…“Ž~ˆ‰Š…•Š”“z’ƒ”q‚u“{m•˜…q¢‡v¯›–“…ˆœŸ{ˆŸ„vru†ƒ¸Ž˜n~—Ÿ’™wŸmš•}€†™|€›› •{‚”––•‰‹‡ˆxt–˜€›z–„ˆ‡x˜xˆzl›…ƒ¦wsu‚~~”¢‚‰Œšlž‘|qŠ‹x„}«‰‹’s€t‹ƒŽ‡ˆ„ƒŒ…‹„ƒ§€‹q‹}kvœ’†y|lju‡{~m™v_‰y„r…{€v~Žrˆ|p{ruta‹…it|ukmn~o~wss{q‰…|j~l{‚vs_{}yƒkp~rw~r{y€|l„|p]Žƒ}x~k~ovyo–†€|yvˆmw‰rwgr…i~†sc{~q™xsup†vwlˆvtu’|usocuu„ip~sa~viqxwsynq€€Šlxu€tsrvmvxlwfyosml~vr~xpt„nng}|cutgz€x}wqtvv{g~q„o{vqt‰v‚jjbqmow€mqxxqttupuss~Š|‚l{†‡xx~tuvpwxˆsx{rhvsqkuƒty{oux‰urw|„vsn“ƒsyzmsrz`yqq}p|v‚€{€vpwy}€ug~‹~štzz…l†h|rw’|e€~^}wz~lny~w–‚|vw|€xjpyiq†rl{wovw†ovk}t~pyvtu—qwwsfqy–rxlrn€znyqwsznalt}lz~ˆusvqvssox‚ppnzpwpw~t}yztztwr|~wuft{yyytwxysuqƒvztqsv€qnjtgox€ozruvnlru}wtu†p„ƒn{…vz{w~q„|¥ˆš…yy• ƒŽ˜”kzš‡‚|Ž~•‹‚”o…Ž€ˆ{‘~~v‘u±ª‰…‡“˜y¢¨‚s~’„~‰|w“ Šcƒv©¢‰”¥|z„’šˆyˆ‚‡w„Œ£™—n}}oŽ—q‡™†~‡Ž¢™•‰‹‹ši|˜Š„˜“˜’q„‘œ†‡kt”}|„}q~‡Šˆ’‹xqu¤¤ŽŒ‰–n—‰Ž|Š€}z€~Œ Žvtˆšsƒ{™w~„‰‹”‚™€”Š{˜“™Žz‡”Žˆ“ˆ‹kƒ€|w†’‰~™…Šz¨v}p‡€uv‘Ÿˆ’œƒƒ|ƒ”q‘‰Ž{yˆv}’z‹™w‹†’ˆ“‰ƒ{‹‘‹“˜‰ˆ‡‚x‡˜‚†“¢{œ‰y}~š‰Œƒvt}‡–‚†’—Ÿ‚Ž™Šy…Œ‘Œtˆ‹}•–†—y„n•x‹mŠ–’pކ}sŠ˜‘‰€†‡™l“ŠŒ‡‘‚wf†’”w‡¤—‡”~™p›Šy†‹›ˆ‡©Ž“‡ƒ‹“Ž˜ˆ‰ˆ†”|£““‡|“‡‚‹vœs{ˆ’‹xl„‘Š•yxrˆ„Ž„ŽŽ‘l—}{yˆ|z ‰•…„•Ÿq‰x†‹}Žzƒ“|€y~švƒ}fœŒ‡Š‡}ox„„|~xml{„pl}£„u‘‚vpy{ƒƒpqvyu{fˆƒu}|ysvsdzri{s{r‚ty}vxvv€wi€‡x‘uw|m‚nys|}m{q`†yy€l~pz}|‡‚}‘uwxyxqstyir‚mxyxg|}uƒ€qvp…u|ruwtu¡q|zxhnyŒrxmtt‚roz|yr}riv{…nz{„xuvowtsqytpsmyrulw~r{}ssyqrs|rxvms|y|wzty€yxus„xzsqr’v~sokrqpy}fvzsxvrtvxxuv‡~}s{‹wx}wwqtrs‚™|vupz‹onv‹|y‘„xyuz‰‚wq{svt‚mЇzx{wuwtgufwxuxtvƒ„~}qzur‚r~m›wvpy}z~pyqy‚{v‚vcˆ{vq€qxpz‰~„Žywu€lptsxknr‚}x^„‚v{svq‰s{rwvtvœp{upjvv„oostpƒvey~yw}qiwƒpzx~wvrqtrxrqztqsvuvsux{|wurtuw~rxwtxzzwvqux‚w{usƒu{wwww}nrpunqzir}sxppwyqxxs€‡y{t}}Šyzyxxt…‰–‚—“‡‡‹‹‡‰ˆ‘‰…‡‚†žŽ„††‚’…†‰…€‡}—‡‘„‹Œ}ˆ„‰z€‡Žˆ˜…‘yŒ€ƒ|“}x‹‡ˆ‡|ˆ‰„‚‰ƒ†z|ˆˆ„†Œˆ‰‚‰ƒ‚‚Š…‡‰„†‰ˆ“‹„†ˆˆŽ‰ŽŠ‹Š†…‰‹‹ˆ‘Š‚†Š‡‡ˆ„„‘‘~„Š|„‡„ˆ‡‹„Ž„„„~‰…Š~‹ƒŒ†ˆ†Ž‰††Ž„Š„†€……†‡ˆ…Šˆ‡‡‡Ž‚ˆ‚u‰†‚‹‡‰‹„…~ˆ…„€„Šƒ‰…ƒ†ˆŽ…‚…‹ƒƒ‰‚‘‚‡„„‚ކ„‹‰‹ˆ†„„Ž–‹”ƒ„Ž‚ˆˆ{ƒ‘†’Š˜—”ŽŒˆ˜˜‰’ŠŽš‡‡‘‹Š„‡}‰w˜†Žwx„’‰ˆ}‰‡”’’‹ˆŒ‘Š‚‚¨Ž„€w†‹—’x‹‰{‹{’uˆ‚ƒ}|…ƒ…ˆ„€Œˆ{ƒŽ„”}Œ{ˆ‰€…‘|‰ŒŠ•“„‹”{‚Œ„‚‡Œ†…|‹‹†“‚†„Œ„~ƒ…Žˆ–ˆ”••ЉЇˆŒ—”ƒ–~‹~wx†“ˆ€‘“ŽŽ„ˆx‡}…zŒŒŠ“…Š‹‹‡Š‰Œ‰‹ƒŒƒ‹ŒŠ‹‰ˆ‰nІ„އz{v}}xxy~€®tlŠ’y†g~|„v}xp~zxjŸpz~‹rrovujŸx|}}{„wiot~n}{s’ys~{otx}v„Œ„ti‡~‚{~v~pz„x’Œ„Šqv}}o}…|}ly‚m{j‚cs{v…‰rvxˆ€ƒn}wvv“|}n€jw~]{vm|€ƒ…lrt{o}y€zu„vqm‡o~y‚vDypsoqrƒypxt~roie‡zltuvt~xz}os„z‚d‚w}uso“s|zqp€cv|io~~y}nwsqŠ|m|ˆwyhy|xy‚z~u~~‡Šy{}€z~…vu€€}u‘}€|€{”ƒ|w€{vz|{l‡€t|~z}uwƒ}~|}~}h‚t|wm}|z†~sy‡‚ˆ{|ƒ……zwzz‰zk†€x…€y~€u€}~…Ž…ˆ{s“v}{vryw…u~‚–~~‡}~|t‚„y€~‚~„x‡{}€y~…‚{l…qt‰„€}ƒ…ˆ†‡}~€}€hw~u€|€}€…†}…‚w…{uƒuwvz|€ƒƒ~ˆ…|€†€€ˆ‚…‚„‡{|~|‚ˆ|r…{k{~ƒƒ€†‡…€„‡{…ˆŽzˆ…ˆ‹†ˆŒŽ—Œ‹‡„…m‡‚‹‘~ƒ†Œ‘z–›’Љ…“€›—‚‹Ž—€“”zŸŽ‡{Š€u€˜€†‰~z†…“™†ƒš}‘b’Š‹‰ux•…sˆ{}yxsŒ‚{z“rŠ›ˆ€šŠ‘}|„™€…yy‰†y‚}|€„Š…{€˜ˆ”„~††“‡ˆ‘…‘‚…„‡”ˆŒ‹…›‹~‡~…˜|‰…‘†}‹‘š…„|™‹‰†‰‰¢ž†ƒ}ˆ…Š{‘z‡‘}Œz€“„„‹•ƒŠy…‰‘ŒˆŒŒ‰ƒ‹‚…~…Šz…‡’|Œj„ƒƒ„v‹’u}~†t{ˆuw“‚|xy—‡st|„€~q†{}~xyufˆ‰€€y|ykw{w|zy…z€q{–~•|{zƒƒ…x{y|{p{~vŽ€xzsˆy}|…“…†yq‘t||uvvwt‚~z|•|~”‰|~u„ƒx€}~}’}v„v…}|vz„€v|†sq†€~tƒ†…y~‡}wz€€y}~~}xt{}w…Š…w|z„s‚wx{}ƒ€€{‡…}|„{€‚ˆ‰ƒ†xy‰x‡yy…zs{~‚€~~„…}„„|…‰Žv†ƒˆ}‘‰‡’‡†ˆ„І‹†Š†ƒ„‡„‰‹‚„‡‰„‹”…€„Œ™‹†‹–‡‚…{Ї‚~…ƒ“‹‹‚‚} ‰„‡„Ž‹‡Œ†}‰•‹x}Œ‘~‚†}„‚–x†’}‡xy‡‘~ˆ~•††ŠŠ€ƒŠ„…|‡~ˆŒˆ‘~ŒŒ}‰ƒŠ{šŠˆ¡ƒŽ‰„Š‚|Šˆ„…œ‹Š…’‡Œ„’…†‰‚ˆ›~|…€‰’†„Šy‡ŒŒ™‚…Š„‘„ŽŽˆ“‹—}‚„„‡Šˆˆ|€„}w„{Žˆƒ…‹z‹‘ˆ’~†‰~|t„‰„Œ~”|ƒtƒ‰}u’Š–¢z€˜†‹™ †ty˜›ŒvŠ•˜Šˆ”‹Š”||™ƒ¡†ˆƒ|…¨œŠ‚†”•{œž‡~€Žž€…wŒ˜’~“ˆ›Ÿ’…‹œŽ‚…vvŒ‰~ˆ‹š‹šo~zo—ƒ†w—‰†‡••›Œƒ‚‡”i“Š’‹Ž‚~y„ˆ—“‹ŽwŒ–Œ’„‹lŒˆzІЇŠ•˜Š‰z‹~Œ”‰‘‡ŒŸŒŒ‰‡ˆ}xŠ„‰™Œ…|z˜‚˜x|ˆ‰…•‡–ŒŠx™~ŽŠ†u~x‹•‡‘šˆŒu€‚Œ†wŒƒŒ„“z•zމq|s|•Ž‰šš•—z–Š“‚‘{˜“†{†ƒ…‰—¥~€‡”Œ•œ‘’ˆ}~˜™‡† }”–‰Œ¤—†’“„‘…€“ˆˆ|‡¡z{ž‚”ƒ§¡‰‹’€zƒ…ˆŒŒ†~“ƒ‡‚ˆtŽz„‰‡‰y„…‹ƒ}€€ˆ{‡’ˆ•—„€|€‰…ŒŸˆ–wŒ€•ƒ{•Ž„ƒs—Œ‘Ž{{‰‹—‹~‚‹ˆŒ—š‰‰Š‹‚x€vŒˆ|Œ†”|ŽwŠ€‹‚…Šˆšƒ˜„““‚|–wˆˆ“ž“އrŠ„~ƒ‹q€…†‰š‡rˆŒ“ŽŽ“‡†€‰€Œ†ˆ…†nŒ€‘‚€€s}€ˆ‰‹}zujysssy†~t˜ty|“wr{tw‹m~‰}z{wrysc~qw|vyvp}u‚dzxts}kzŒz„vty}{€pxru•{uxˆweˆ}usq{u{~…}€“{xskvtsulm~rv}yovŒzuuqŒv}swvvw¡tzwrluv‚qrxvszxjy}}zrmz„t|{xwssvtxsryvtvyuwsu€€}~ytvvuyp{vsuvzxxpvyƒyzut„x{yzy‘y‚psmwqt}nt~sylpxztzyw„y}ƒt~~‡w|{zyvx|x~–{zyupx‡kiv€|u€zzwx‰uu}tt}lˆ‰zw}wvys^}tw~yxnv„€‚hzrrƒu~o{wŽvpx}{pvru‹zuv|od‹zwr€o~sz€…}„’xxqƒyutsvlo~p}}xhˆtŠ~rvp‡s|rxxwvšq{vrltuƒnpwur‚wmy~zw~skxƒ€r{y{vvsrwswrt{trowuvru€|v}yttuvv~pxvvz~zwwxuxxztrƒwzwxxŠx~ornpps}~gt}szopwyrywtŠx|‚u}~Œvzzyyu‹x†ƒ©}{x‹Ž•“•‚‰s€§—ˆŒ•Šwž•ƒ•ƒz–“ƒwŠŒ‚‹„‚œŠ‹—‹’~Œ‹~£z› Šf}†…€}ƒŽ˜tˆŒ~ˆx‰’ˆŠ–z‘‹Œs’•ˆo‚~—}v”‡“‚Š}…ˆ•ŠŒ‰„zk…„‡’‰†…{|’†ˆ•r“‚¡†™™hŠ–wzo…Žœ“ƒŒ™¤s•„Œ’yŒ…v|‚‰tŠz”|~’z~Œ„–’p|y‡‹„‹ˆ~‚‡~w|”m‹…›‚–ˆ‹ƒ€‹w‚‡ˆ”’œwŠ~Ÿ…Ž€ˆŒŒ˜–~Œ…“zz…zz‹‘Šzk}ƒ|{}p|rqsvty‡…}{r{’‰ˆz|{vwp›Š{y€xswtt„y{Žwwqˆ‚ƒ{„fywu}qr}ˆv‚{ou{qytuzzuri‡xyp~nryt|‰~‰ƒ{xo‹‹vyt{kq|p~}uy…~zƒtywsu{zyx¢po{omzxjprvn…|k}q{u{lqw‚ly}~quwuqvxr~}umtsxzqy‚‚wyttu|szwww|{{x…zy‚{}wr„s{{|z‘ynqyunu~}tvu}nuy{vxur„Œx~€w‹v{z|wv‹‰ƒ‘Œ„ƒŽ‹‹‚”‰ƒ€‘‹ˆ}~…‰’„–މІ“†™Ž‹ƒ…Œ›„‘„„‹‰{†tŒŠŽ}–‰Ž~|‰’‡“…‰•Œ„Ž~”Ї„t‰‘“Žt‹‹z„{†r‰}Ž~€{Œ‚‰…“ƒ…“†~}ˆ…‚“„„{…‰‹{|y‰‹Š|”˜†}‹ˆ‰‹ˆ‘ŽŒ…‰„ˆ‘†‰ˆ‹‡Ž}‰–y”„zŒ‘‰‘‡‰x—‹Œƒ‹–‰””‡‘{}‹~„†€Œz‰“…{ƒ€‰€ŽŒ†‘…‚‰‹‡ŠŠ„Œ‚†}†Ž}‹………i„z‚Žƒujvz˜ryut`z‡qqx†{u‘‚wzvuŽŽwqzu}q‚e’†vv|vvwuezkwxwr€z|‚{{sp†s|l~~w‘unx|x}pwrr”{v‚|nc€yxp€orz€}†}„Žpxsˆstr{klpw~wi{€u„rvq‹pyswwuu¥n{uqist†ioorq†tk{|xu~pgw‚ozx}uvqooqvsuztppwtuptwu}yrqtvy~rxxuv|yvw€ty€wzsrƒvzvvvŽv|mqmmmqz€jr|rxspwypxvqv{ƒs}}Œywyxwtvslƒ‰ƒzvnjw‹ogx‰xtŽ|ytts||owyzse›pt{zujlmyus~€|ut~‚{srp€u{t{ŠlŒxm{qwupyy~‡}u€syc†~|x~o}pzƒs•‚‰|v|ˆqzxzpp„nvs}iyys”upvf†x~q|usu—itzmiyv€gqpjr…zbtwuw}qitzxhuuzsu}lus{psywiqtrwto~ru‚wqspqy{ow}vy€xw|puwyz~ym„vzvr”vzpprrlyy{qu}rwsrvyv€wx‡zxq{ƒ‰w}szsu~‡“‡|~‚z‚…tv‰~u{w|‚“‡}y{u~…zkŠ€v}wwvy€w~w}~€jƒu€x^~|{‚|‚uy‚z||‚„…zy{~†‚zk~x‡„yx~†Ž€…•…{v‰s}~vszx…x€‘“~~‡~|t„…z€~€~ƒƒz‡}|‡‚}q„y‚‰„‚€ƒ…ˆ†€€‡|€€kw}€v|€|~…‹|…‚w†|v„u‚yx|}€ƒƒ€~~‰†|}€†‚€ˆ‚‡‚„‡|}~€|‚ˆ~s…{o{~ƒ‚€‚†…†€„‡{…‡yˆ…ˆ„‹„|~‘ŠŠ{–††…||‹‹‡Ÿx{…„”™ˆŽˆ†›Ž€’†Ž‡„˜‘•‡—‰›ˆyŠv‹ƒ}zt‘v‚‹”„ž“wƒ€ŠŠŸt‡t‚ˆ‘štŽ ~ŽzŒr€‚„|ŠŒ€}{’Œ–ƒ“w…ƒŽ•‘~—|‘‰’sŠz~‡Ž…v•‰’Šˆ{x‡˜ˆƒŠŠ„‡“s…’‡’ŠŒƒ–Š€‰ƒŒ{ˆ„‡Œ“—œ‚~’†ŽŠ‡„Ž{v‰…‰…{‹‡†„•‡~†ˆ~•z€Ž~”†‰‘ˆ‘†‰˜‹‹€x‰rŠ“~Œ†Ž‹ŽkŠŒ†z…ŠŒ‘’Žˆ‘–…Š}ƒŠ‡„€}˜“…•—”ŒŠ‚’ˆ–”Ї„‹’‡‹‹‹‰†‚{Œ€wŽ„„…{™„„|ŒŠŒ…~‰ž}o’‹†‡v‹††}‹tŒ€y‹w‹s€~€Žz}Š•Ž~„™ˆ}}…‡€‚•„—z„ŽŒ‹~|~…Œ‹}zž„‹‹€„“†–ˆ”„Œ‚‹~ŽŠŒˆˆŽ~‚„€‡”yŠƒ”ƒ‰•—‚†„w’‹Š—‹˜‘„‹„Š€…‘‚’„Œ„€‡ˆ~Š‚‡‹Š„†Ž‡”’‰x„xŠ‹}‹ˆ€}Žj„‹|Š}xtv‹“|yruzqdušmw‚€zw|€mt{uƒvvfŒ†z{~wsyqfƒvx‹wwo€ˆŒz€oyvt{r|o~—twnu|{€otrwxwwpsd„x|o~nryv{Ž~†„}xp…truqxio€n„|tr„~y’€rxp†s|qywtvžmswmduvdostm…xd{lyszkkvly{sssrytws}{smmrvwow€~w}wxqsyv}qxuu{zxvpxww{uo„q|xxx•w}mpvunr|{et~rxmrvyswus…x|€u}‹uyxywt{‰sŒ|…r|…xtxv}u}z{–‰y€wz{j‚Š}z€{xxtk†z{„yzy{†€~€bzxwy|pz•zytx~‚s}uz‡|xtzvkŠzxu~o‡v{†}ˆ|zpŠisysvoq{s€|wuŠ~y’xuyu‡v}u{x{xœut|stwx‚ytyys{}v|}~zqt{„‚t|wwxw{wyt{|xutzxyty‚z€{uxyy€q|wwuy{|zrzz„}|{v„wy|~{Š{‚ruv|sv€~vx€v~muz}w{xw„‰y‚w€ƒˆv~}~{y˜•–z–v„Š~‰z‹ž”…xwv“ €y‘{ƒ†…Žª€~r~±†”š‰„}~w‘¤˜’‚†‚ƒ•’‡|Š}oy”Œy–™zŠ…¥zƒ}‡Ž šƒfŽ‘‰‰‡Ÿ‹’u—†yy‡Z‰ˆ–‡†™™‡…“Œ‚Œ˜ˆ’n“‚w…€‚˜‹‘~|–‚ˆ “~†sƒŒ—~”–oŒ—‘Œ©‚u˜kwm˜‹š†z•‚‚””„{‘•w†€¢Œ„Œ~œ€˜‡wž”rƒzŒ˜{˜œ~|}—|‘~’‡y‚Š‹„Œ†v~މ‹Œˆv„†|‚ŒnŒ‹…€…tŒ„‹ˆ‚‡ŠŠ|‹‰ˆ„”ކ‚Œ„ƒ‰Œ’|™˜’‰ˆ‚ŠŠ™‘Œ‰‹‰ Œ‚…†‚z‘…w‘Œ‰ƒyƒŽ†|„‡“ˆ‹ŒŒ„ŠŠ|„‘£‘„‰‰vŒ’ˆš†u‘Š|{~‰t‡~‹}‚‰ƒ†~‹Ž‘ŽƒqƒŽ~|„‚‚•†Š†‹|˜ˆ…‚ˆƒ‰}~Š‹‡Ž…›†‡Ž‰}ŒŒ†‡Š„Œ„‡‡‹‡•‡…‡|ˆ„~‰‹“‹ŒyŠ“”…Šƒˆ“ˆ“–‡|“‡“}}}‚{†ˆŠ’…~†~„~’‚‰…‹“~”Œ’‡Ž’ŠŒ†„u‹’€‹††”k‹‚‹†Ž}‹ƒˆ‰‡‡‚…•€~~‡y}~r‡™}…v†ŒŒ{•‡Šƒž€v„|ŒŒ¢y~U‹~—‰‰›sІv„t£b‚‚„‰Œ‘„„‰•Ьˆ’‘‡|——~‡„ˆ’‚™~‡p‰“z‡ƒŠ€vŒ~—uz‡ƒ˜‰‚}’uƒ{‹…„{}xu•“‘kzŒ§‚›†‡‚s—tzЇ†s€žˆ‰’‚„Š‘¦ƒ’~|‚— •z„”Œ†x‹™ƒ|r’„~“ux{š‚sŽ‹Œ‹‘}ƒ}wŽt„ž–‡~‹}…”zˆ}‰‡†{‡ˆ”uާu„r‹{s†ŒŒ„~”š“Š†|‹‡ƒŠ’qŠzˆry›µ„†‰…އ’†~{”’„Š’……„³ˆ‹Ž†ˆ|{¡w§šzusˆ€œŽw‚€‡‹‹|Œ‰Œ‰‘‡Š}™ƒy†mŽq„n‹‘u…‡…‘Š”“}ˆ„™}”Œ”‰“€‡ušŽ–t“•‹ŠŒm‹‘y|ŒŽ‘””‘’Œ…ŠŽ‰Š‰†}Œ˜Šy‘†‚‘…z‘wŠŒ‡—w}…}‘w‰“~z„”‚„„‘z˜‰‡‚‰Œ•—Љxˆ‘€’‚|‘„‹Œ…—vŽ…‘“|‚u‹‰Ÿ‹‘›—’…†‘‰‹ˆ‹’–€„pyžŠˆ}Œ‹Ž‹‰Ž}ˆ‚‚‚‰‘†‰ˆ„š†Š‘‰Š‚“Šƒ’–—“z“|‘ƒ“yƒ†q”–ƒ‰ˆ›‰‹~Ž“‘z‘„ކ‡z‘~‹‘y”pŽyˆ€r’ކމ‡“”’‰…ŒŠšwŠŒ’„„’€š—‡˜u†•ƒŒ•—…‘pw“{†€‹‘›ƒ†~ˆzŽƒŒ„ƒ’”‚Šƒƒ“€{Œ‡—‹}y„ˆ}‡Š–|ƒŠ‡ˆ‡‚–†Œœ……Ž‹ˆ…ƒŒŽ“•’…u„†Š}…‰‡‹‚†z˜yŒŒ‚ƒrv”€“qˆXž}‚Š„zŸ‡žsu‹‹¯–„•’’…ˆ–ƒ¦†»’††‡§{“’{l‹œ†ƒ……‘|~“}‰˜xˆ›€\¯†›…‚†˜’‡]tŠ„Ëzt‘{‹‚‹}˜s–„ƒ›ƒ¤tzƒz‚‡„‰…‰‰Š}…˜”{zŽˆptš•{“s¢—}‡‡xwy„¡ŽŽŒ…Žs“~w‘“€ƒž‡Œˆt‰‰‰…„†‚x‚’~‚’›€‘~‘`…‘‚…«vo‘•…y’~|’z’p†y“Œ|‡„rŠŽ‹…‘ŠŠŽ†‰•Œ}ƒ‰—{•Š“ƒ‰’Š—„{€˜ŒŽ•Œ•‚ˆ…‡‹Œ‹Ž‹‚”ˆ•€ƒ„…™…}Ž“‹‰—š˜ŒŒ…”—ކ‹‹‡„–~ŠŽ…{‡†v‘‹ˆ‡{Ž‹†ŒzЇ–‹’Œ†ŽŒŒ{ˆ‹‘†Š‹s‡‹”‡Št’Œy€†s‹‰z…‰|†‡‰‘ƒˆŒ„Š}t„‚‚Œ††}™}Šˆ|sŠŒŒ~š††‘ˆ}ŠŒ‹‡xŽ‹Œ†€yŠ—‰‘‰Š‚……„‚Š‰Šˆ…wŒ‘‹†‰{‡‰Šˆ‘’‡†‰‰Œ{}‡{ˆ‡Ž{–‚ˆŒ€Œ€€Ž‡{Š‹†ˆŒˆŽ™ƒƒŠŽƒ€{†v‚ŠŠŠ‘‡Œjƒ‚„…™—ƒ™‚‰ƒ…Š•”ˆ–y„rt”¨—„–ˆŒ‡˜¤„™€„x””‰•‰ˆ‘…“~”|š‘’|œ¥‰€qu€‘—„Œ|ˆ‘v–‹uƒ‡‡‰‰€†z”“Œ„’~’„nŽyŽp”–rŠŠˆ•xŽ”•Ї{št—ƒŽ€‰‹y{ˆ…’ˆŒ‘zŸ•Šš—ƒ”i„zƒ‡–˜†‹’…ƒˆ{’€ˆŒ‡…‰…ˆ~‚ŒyvŒ‚~œ}xr„‹…’Œzˆ†{~|‹Š}Œx˜…†”…‡|‹ƒ—‰“‚j‡~}‡…Š‚’‚ˆŽv‹|˜w‡ƒr‰—…~Ÿ”‰“°‡–Š•‰Ž†vœup–Žz„Ž€”‘’ˆ‚~†”‰‡Ž‚…‰~}‹‡ƒž{•Œ€šx‰™…m“‘—“” „™€~Ž…„Œw‚rŠ’…‰Š–‡k’n˜w€‚oŠ¥„~Œ€}ƒšœŽw‡”q‹Œ„—€zqˆ{ •†›z‰œ”ŒšŒ†m”‘“y†‹„¥˜”ˆˆ‹–…‰ˆƒœƒ†Ž~•€vŽy˜ƒ„›ŽŽ|s”“y’•x}‚~„z~‰‰™y–‚œŠ‡}††‘–ŒŽ“ˆx‰“~|{„‹Ž‰Ž‡€šqŠ“‰…œvrug†‹—“}~avŠƒyvsny‡thvžyw’„zywz„{s|vyp}e‰ƒuv|wxwsl~tw„wyrzˆz~ƒztr†t~j~€w‰vmzzypvpw‚zt}tub†yzq€ozpy„~•~~xt†ppsqylkƒry~wb…u˜|qvpŠszrwwsv›o|sqjttƒgpttqudx|yu}rgwozw{vvrpvrxmrzsphvuvquow|ytpsvt}rwwuz}yvvtuy€w{uq„u{vvv‡v~mroroqy~gt|rvupuypxvp‹yz‚s||…zxywxu‘„“£ƒzyŒ”‡¡Œ}rx˜Ÿ‘}“ŠŒ†—ˆ•„~y’—‚•‘€†‹ˆ£”“‰wžŸ†ƒ}„‹Œu| “–‚‡Œ‚–‡Œž€Š„…y˜’x‡œ”Šm|‰tlŒ†ŠŽ‹~{—Ž~€™|˜z—ƒ€‘……•€ŒyŠˆ•‡–ŽŠŒiˆ‘zŠˆpž“—‹y‹}ƒ}‘‘‡ƒ”…›‰‡Š{Œ›‡~‘x’Œˆ–Šy‘‘}ŠŒ{yƒ„ƒ‹€‹”ˆ„ƒ‹|š‡‹‡qp••‹•Œi}“†††‹‰ƒ‚Œzx’~“…v‚‚w”ŠˆŽ}ƒp‰€€u{~swwyvŽz€z}‡–|ytw{{m€ˆ~|xxuh„{‚z{{{‰‚€‚j||yx~u|Ÿzyuz€‚u{v|†}zryzn|vw~r†y{‚Œ~…ƒzq†oqyswqt|sƒ}ypŠ{{w{u‰x{v{y}z§wv}uwyy‚wvzzs‚~s}€|~sw}…‚v}€€xxzyxy{{z}yvx{y{v{‚„z|xzzz{s~xxtz|~{t{{„~|~x„x{}|‘|ƒ‚tv~|tx~syx}kw{~y|zz„{€ƒy„‹x~€|zukv‡yuxhz‹rjx€xt€wzw{‘‚zvywstd–†vr}vuysiziyuwq|‚‡zƒnysr‚s}i}tŠvox|yowqxƒzvƒutbƒyxp€ozqzz|‹~‘yxs„vwus{jn€q€}vf}t‹zrvr‹q|qwutu˜nxtpgsv„lnpsp‚ugzxxt}pgvnzx}uuqosqwpu{soputuptzv|xtpsv|}qvwsz~yvvvuxw{rp„t{wvw‰v}mojpnpy~ks}qxqpvxpwutŒw{t||ˆzwxwwsމ„z‡Œ“‘‚’ŒŒ†Š€‚z‘ŽŽ„”“”‰‹Š‰†—†|‡œƒ‘Œ‹ŠŠ‰{‰ƒy’Œxzˆˆ‹ˆux‡Š“ˆ‘Š”~†Œ‹‹Œ‡uŽŠ…ŽvŠ‚y‹…†u‹ƒ€€ƒ€†‹Œ‹Š}z‡‡~–„ˆ†…ˆŠ…ˆ}…}rŒ‹ƒ|’…ˆ’‰Š‹‰…{‘†…‰‚}ƒ“ƒˆ„‚„‚‰ŠˆŒ‡Ž}”‘‡ˆ‰zŒŒ‰“Š–‚Ž…Ž„|€~ˆ‰‚|ƒ†‚ˆˆ‰€~‘|…‹†‹…‰ˆ”‚†’‚~ˆ†w‹”|}‹‹“ŒŠm‹ƒŒŠx|zr‹‘|yzs{Œsrz†~u‘xx~}|qv}ryz}h…‡{x}xtzuh{ku~xxus‚zzc{utƒt}l|‰x„ssy{{pxrx‰|vv…qe‹}vs€q}rz€~‡}€–wxs{sourulo€r|~yg†‚u‹|svtu|rxwwv¥s}uqltv„tsyur|woy|xsky„€t{{|xwrrrsylrzutwyuvsu€z}yttuuy~pxwuw~zwwuvy‚w{tsƒy{xxxx‚~prnuqt|js~r{oqxzszxw‚ˆx|‚t}}u{zxzu’„}ŠŒŽŒ‹Œ‘…–‹¤}„†ˆŠ‰rˆ|~ˆ™Ž‹–”—Žƒƒ†—„І‡›‚“Œ‹ƒˆ„{‹r“‡{x’y€ƒyy…†œ‘†‘„‰€Š¡Ž†‡•u‘ˆŒ‹w{І˜v…„}‡‰‚sƒzŒ—Šˆ‰Œ}ˆ}‘Œ‰‹‹›v…z‚‡~~†Š„”‡™}‰‘‰ˆˆ‹…†‚€ƒv‹‘‡–‰…‘ŠŒˆƒ……†‚ŽŽ‹Š~„—ˆ‰Œ”†wƒŠŽ„€Š†Žw“Š€Œ…†€~{ˆŠŽ{Š’•ˆ†ˆ€ŽŒˆ†p•“}І‚Š…o†…†Ž‡€sŽŠ†}}uƒƒy|‚vz†|zz˜ˆ„|ty„~€y~~w|uw…z€ƒvzskŠvxp|z{u€r|˜}„{xw„ƒ„wx~ˆ}{|…yu‰€xy~s„{}z…†‚ˆŠ‡zqpx~uutx‚s~~x~|“‡|~wƒy€|~~—|tƒu‚€|xw~uz†w‚s…~~s††u}†€vz}}w~~{v~z|€w„~…~x€|ƒs€xyy{‚}~{‡…~z…x‚‡‡€‚…wx}Šw~…z~~…{o{~}|…Ž}ƒ‚}„ˆ’x…‚‡{~vqs|ozrky{soxš}vŽ‚|tv|Œ~szx€rzg™rz|rwvwn|qwˆvyw‡„x‚uzur}v{mŠ{‹sr{}woxsy“yrƒ€xa{~qp…ozy•}ƒˆrxx„„owu{hoƒrp}wnvx‡€rwr„r|q{wtu¢nxuqesy„qnmrowlxvwu|mgu€ozuvtslpqvluysouvqvsv~w}{{vruty}svwsx€yxvvx€wzvr„t{vrt”v€}oqnskqy‚lu|svpptwtxus€…u}‚t{Šxyyxzumw†Š}|ojzzrrx|r‘yy}ŽŠ|y{v~z|d‹„yz~wsyte…vsˆxxux|{„czuszq{pz†w{trx|{€otqw–zvt}nb…zxp~n‚ryx}Ž|€’zxs€wlusvjl|rv|wt‚}uwsvrr|rwvuu£qwupgruvqutqxvmx{zvohx‚q{ywvrqrrwjvztrpwuurt€yy|xuruvw}pxwvtyvvvwyv{sq„wywvw‘w}nqqqor{€hs|r{hpwxryvs‚ˆw{‚t|}†vyywyt…†ˆ‘~€ŠŒŽ‘|˜‹•†Ž‚‘‹ˆ‰}~Š’Š“‡Œ’Œ‘…“†€|—…œ‡‘“z‹‹zƒƒs‹’}y†|Œ‰{Œ‰–†ŒŽ……‡†Š©—‹†tƒŒŽ™„t”Œ{ŠuŸq‰xŠ|‚‘{y„’†…’‰ˆŠˆ‘{}‚ƒ…‘‹‡˜|œ–Œ~€|t†Š„~™ˆ‹~‡Œ}ˆ”‚„Š{‡ˆ‡‹‡…ƒ}Š}Ÿ„‹{”œŒ™‰yŽ‘‡…™—y‘~€’„˜Š‚Š‹‰‹‘‚‹–ƒƒŠŽŠ”†Ž•’ŽŽ†‰‹…Žƒ“w“‘‚“ƒ…Ši‰„~…•{ŽŒ’h……ry}ytxŠˆ}q‡jz~‰¯vyƒ{{‚mŒrŠ‚v}Ÿ~Œ{w‚doyx…sfxyŒqvˆwˆŽ{txot{{~ƒƒwv{}„‰wr“|p}‡Œ|„xxˆ†€ŽŒ”{{u‡ƒr…qmn{„o}wn‚{x™ƒvwn}‚¦v{‰zˆ„invŽlˆ{’†y‡}„€~{€”z€Ž~‚‹ho{|—stSi‚Œ{€‚i—f”zƒ‰„o‚c|~Š‹vy|~z„†„Ž}€“lƒ€†žuwy‹”z‡>hy…xr†…‹„}‘~~~}wa„v{u—yŒ„zˆˆ’x~†zŠ}xzŒwvz{z~–…}~~z€†|u€w|xzus†}~zz{wq…v„|l}zz„w€uyŽ~}yy„‚…xzyzˆ€zr‚{v‰w{rƒz}|…†ŠŽyp“s~}uuuxtz’}|‡|}v€€„y~}Ž~w„w…€}{{„€w|†uv†€~vƒ‡…w}‡~x{€y~v}}zt}}y~…Š|…€v‚}{ƒtxx{}ƒ€|‡…}~|…|€‡‚‹ƒ†xy~…x€†z}…zr{~‚~~‚…‚}„„|…‰Œw†ƒˆ~z€s’œƒ†n„¡‰‡n|‚…Š~}€}˜fŠ||c†pˆ«Œ‚€€|zwzˆy˜|†{~~ƒ¤‡|‚|zy|‡u…m zŠz}…‚xw{{„’vt…|ts~m}t|t€‰€€|q‚‰ƒ{€ry‚r„}tm‹}”ƒx‚}‡y‚~ƒ~™sq€vvz€‚†xv{pxƒq‚_~}}lz{€ƒm{‚ƒrw|}€~~€yn‡t}€y‚ƒ€‚|yv{‚†~yz{|~…}‰~y~w„v~€~€~‚‚wu€†w{ƒyw~ƒ}‡ˆ{~|zxv†‚|‚„‰|}€{{†„|†|Ž‚ƒvw€z{„{~…‚…vpƒ‡…‹{|z~‡ŠŽ‰~~€‚tzmxy‡—Œwƒxn’€{„{|{v‚q„ƒy{„~zx€€~w|}Œ|z‚~n‡|}|}‚Š„yt“t€†ƒ~tuqzs‡}€‰…u‡}‚~‚€€~lƒ…~†{{ˆru™oe}w‡ˆ{€t–…|ƒw‡z}‡‡ƒŽz‚lƒ†ƒ†}t}z~……†‚u}}t{€„‚€|ƒ€€z…t‹‚‡€‚„}†‹v~„y‡€„„o~}†s‡Ž~‚~Ž…ˆŒzˆ€~ƒ|’„•‰ˆ‚†„Œ™}‰Œ¥€Š|~{„ƒy…ˆŠ‹””’‘‰ˆ„…“™ˆ~’‹u…‘“~Œ~~‹}•£†ry†‰{Œ{{—’‹ƒ|’އˆ”Œ†tƒ‘‡‰ƒ‹…|‹ƒz„„~y{Œq’Š‘‘¡„|ˆ‰~‚…†”‘‚ŠŒ{‚‡Žwƒ•„“€’„‰zu‹Œ€ˆ|~ˆ…~ˆ“yw‘‡€€„Ž„…”„•™ƒ˜‰€€‡•…ˆ‡€w~ˆ’„„}‹‡ƒ•““~‰Š„ŠƒŒ‚†}‹ƒ†“ƒ†xŠ”ƒ€–…Œ‡y…y‹€~“…‡…}x‡‚‡‚„Šv‡s{l||~ut~crhu•zy†zxwx‹Ž†xz€x{ti’w|~wp|th‡|u‘ywy’v{ŠQzrptp|{~›vŠynxyxosr}žwvw‚ebz}n€o‡ozyxœ|…†uwuˆ“zutzhq~r|{uƒy}x‡†rvr€srvxvt•kstobsv„vpnso’vrzyws~kfu~mzx€ttqorqvhzzsoruuvqt}{{vsotww~tzxvz|yvu‚xyu{rp„txuuv¤v{lpxzno{~pq|sxtqvwqxuo‚‰uzt||sywuws‹Š‰~„‚~ˆ‡’€š‹„vŠ~Š…„™}ƒŽ‘„˜‘‹ŽŒƒ–‹‘‡œ€™‰ˆžŽ‘†Œy’…x’’‘v†“‰‘Œ‹¢‘z‡|†~‚‘¦’‡ˆtŽ“…£Œq”††u˜q‡‚‚{‰ƒƒ’‰yƒ”ƒ„v˜~‚ˆ…•‹“Љx£ˆ‰ˆ††‹y|‡Œ‚“Š›‡‹ŽŒwƒˆ{Šƒ’ˆu…”˜‚ކˆ‡€‚~‹uˆŒs–”‹†‘‡‰}…ˆš„Š•‚x€‡™Œ~vŠzŒ‰‰…ˆ’€‡”~Ž€Žz€„„—Ž’‚‡“އ˜’˜‹“€{“–‘Ї”l‡€‡‚•|uljŠ|Œ{wfqyol`tšrw”ˆ}urtˆ‘uqvwys~c‘ƒww|wsxqf‚tv‘uwr}z‡y€fwroztr|›t‹wqx{{ntow‡wv|sn`‚wvnn{mx~”{ЇzwuŽtoupzilpz{vk„|w‹{qxp€n|pwvrs‘mwtpdqu„mpkrpƒv`yszrylivn{y~strpwquhwyrnostuqu~vu{vtqsur{t|vt}‚zuusvx‚uyso‡p{wuvŽx{mqslmm|}^r|tzhouvqxwp€†yy€t|{‰vwxvws‰‰‰…z‰Œ‰ˆ”…•Œ…„‡€™’‘•†‘ƒ’’ƒ…‡•ˆŒŽ‹~‡…{‰€sŒˆ‚z„…‡}’Œ‹”ƒ‡Ž„~‚Ž‘”ˆ†‡vЉ…‹†t‰yŠrœr‹{‹€‚y’‡•ЉŒ|ˆŠ„“{}…‡ŽŠ’ˆ•{–‰’€€‹|{†‹ˆ{}ž‚…}†Š“…‚Š’ˆ‰Ž‹‡Šˆ†‚€}Šz„Ž•“ˆˆq‰ŒŠ‘™ƒˆ‰…†‹ƒ‡“ˆ‡‚‹‘‘}‚€Ž~…‡€†‹‰‰’އ‰}’‡‡oŽŽŒ„‰‚‘i„‰‚Šz‘ƒƒ„ƒ|“‡…ŒŠ››ƒƒu€s‡„“Œ‹‰‹ˆ‹„z„„™Ž’‡Žv€ž…“ŠŒ‚‰|‚„…s†zvœ„”ƒžŠ‘–•‚‹ˆ {ŒŽŒ††‰p•‡‡…ˆvs–„yqŽ™œ“Ž’‹„…ˆ—…ƒ‰Š‚œŠŽ‚‡‹€†Œ“‚€ˆ~‚„Šˆ˜mƒ‰‡}~Šv“Ž›–‰„{ˆŽ†‘†ˆ…ˆƒ†‚•‚…‹š‹Œ“{‘€„‚‰ˆ~˜•‚ˆ’Œ„{€‹†o‡“‰ƒ¢ˆw…‡‚|›•‹„˜‚zŽ…€|…ˆˆ‡‚އžxŒ‰pŽ€‡‚v†‚“…Œ”‹Š€ŠŠ‰ž€wpuyˆ†ƒ¦Œw†ƒ‡‡šŒ¢ˆx‡‚‰‚„‚|„”‹Š‡’…{„xx˜ŠŒz’†‰–{q…—ŒŒ‘€p‰mry‰“Ê…|y€…l„œ}v†Ÿ„pxy‹z……zp‡„™ˆƒ‚wŒzws†€•†p~y—‚i‹{“‚xœy“‹‡‡|‘¦‚„‘’€˜‚Œy†’ŒŒ‹‡}„‚‰Ž‚y‡‘~~yŽ€}y‚‡Š‘|~qˆw‰Ž†‚ž”†””…•{„„Œ|›|†—|Œ‡’‘……‰•„†Ž…ˆƒ•{‰ŽˆyŒ‘u‰‡€•—“–𑇋’}‘‹“Ž„~l~››‚Œ—‹}Œ~…•†~}‡•…ŽŒ}„ƒŸŽƒ—•ƒˆ“z”š{”y•“‰p‡‘rŽ•‡˜ }†~€‘‘ƒ…‘—‰ŒŠ|…‚‘„•ˆ—†…o’q•{p‘Š{qƒ’‰š–ŠŽ“†™‡’›†‡|…•~€–“‹ut•Œ“ˆŽoŠ“v‰€~‹„’އ—‘‡z“‹~Œ‚ˆ€€Ž†~„‘‰ƒ’v„†—ƒ‚|‹„†|Œ}}‡z{‰”‹~u—Š…“‚„‚t‹‹‘‡˜Ž‘‚q…ƒ„…Ž~ŽˆƒŽzŽq™}›‹yŠ~z‚š…{|€‹}}€…v{‚ww|„~t’{~{}š…}x€u„zxu‰z|z{un„~{}y{zl†t†g|{x†{qz}†x||€€ƒvzw‹xtypŒyyt~{|‚ƒ“ˆ•‡zt‘s|yuutvtz|qŒƒy‡~zzru|v}z|{˜||~wz{zvy}xu~‚ƒ€€xy†„y‚{{{{~z}wu}|{w}y|x{‚„~‚~w~{{x‚rxw{~~~~y||†€||{ƒ}}}‚~~ƒƒvxyw|ƒ}x{‚x}qw|{}}€ƒ‚}„y‚„‹x‚}}xzrz}‘€zkwx“wb}w‹ƒ~qw|‰xwnwy|sv`™t|{{nrwnrq|}~{z~ƒ|{z€q{{x|u}~}Œxo|rjvpq{zrƒ{ycŠ„…z~f„qxƒvšƒ„Švvx}dw‚†yms…sz{ix}u’{puj‚€{nuruœpvunivspswxiwzsfpvurtuk{{puw}psorr|xruavkprqxxx~mw€{t{qh{{nust€xxktvuwsƒv{uzv•t€|gouwptv{du}vwsttxw…qq~Š}xfy„‹wxwv|lsrx‰x‡}uxpz†vmy“vx‰vws|Š‚poxztz}g—„wv}wtwtm{nt…xwv‚‡ugzvstzl’x“vrwzy€oxqx‰yxƒ|oa‚{ypl€pyy|~~Žtwv€zqtr{in‚s{whw€x…twvs{ruutu¡kyrodrv…vomso†ulxuxt}mev€p{x€utonsqvrwzrpsvutquv|{vtmtv{|twxux~yuuvuyu{tp…u|vtw“v{mspsnox~jq~qwspwwpxur‡v{t|{Œwwxuxqzf|Š€{u{fxuqvvxx‚y|p|‘—…uzusu€k¢ƒzu|vsvtq€sxŽwwu‚w…qyusom}‹u†wovzpzqq›zxvpe‚xwnm€ryy€„~†Œ{wr††sxs{in{pw~tn€~wŒƒtwt”p}txwuw©nrwmjwv‚nnounzzjzuyv{kkwly{€rtssnswqy{smttwwpv€|v~wrrtz€}sxwuu|zxvƒwx€w|vq…syyyxŠx}mortlr{€mt~t{kqxxtwuqƒŽw}u~~‰vyyyvtzu‹|‡‹z~wwŒtx~|€qœ€z{ˆz–ˆzx€r}t†t`‘u||w‚twˆqzxy~{dwm€vl~yv„zsv}†u{{‚„wuw}Œ‚tgŒuqƒƒw}€y~}‡‡‡„š‰yy„suyrmvsƒtu~’€w‡{{xo‡€u{y|{—€x‚xx‚s|†|wv|‹‡‚„|ƒ‰…€€„~|||zbn|}€s‚x{{yƒ…zƒ€uƒ|vr„qvvy{~~€yz~ˆ‚{x~„‚|}„‹„…xy~yy}†}m{ƒv~kv{€~€€ƒ„‚‡w‚„‘v†ƒ„~ˆ…|…Œ“‹‚‚˜Šƒ‚†yŠž—|–ƒŠ‹ˆ•˜Š‚ˆ‰—‡’‘Ž‹{‹‚vŒ€ˆŒzŒ‘‰y„ˆŽˆŠ€‘Š•”‹ƒ‰Œt‹’{‹t–y…ƒs‰~}†|’‡uŒ‡Žˆ‹|}‡”‡†’{Š’›z}‰|rŽŠyx”ŒŽ‹ˆ}Šƒƒp‰Š…€†ГБŠ~‡ƒx‰‰ˆ~„…Œwˆ‹–˜‰„{˜‡„…Ž‘}„‰‡Žy‡}†€m€„†Œ‘Š~˜€“€…“…Œ’ˆŽ‰‡…Œ‰‰ˆŠ•…‚Ž~‚z†€~ŒŒ“Œ’j„ˆŒ|–y‰–ƒ‡}•†ˆ‡‡Š}‘Ÿ“{Šz‡‡Š‰†…ˆ‚€…š†’–€z†ƒzµˆwˆ‡„Šˆ…‰…€y‰ ‰{xr…‡€ŽŠ––ˆ†ŽŠ{˜u{}‡™‰zzŽ…‹sz„~Š}ƒ~…‚…‡‘ƒƒœ•†’„…Ž„„ˆ‚†Œ‰Œ‘~‹ˆ‘Љ‰ƒ{u|Š{„€’…ƒ~™ƒ…•~Œ‰wzx†Š“}ŽŠ~„Œ‡ƒ~{“~…ˆƒ†w…‹†uq•‹‰‚‰†‡~Œ‚…}”ƒš•Šz}„}’„zŒz“‡y’Ž”’ƒ†’€}‰Ž‚Žƒƒ†‡|ŸzƒŠ†‚†z€}~zu|…tr’„}{y–’„y€w|}ƒygˆ€t}~v{svƒ|~†{~zi†u€vp|{xƒxpx“‹x}|‚……zxyy‹‚xj‡|w‰‚w~€ww|}†€ƒ{t‘rz{tqyv„u~}…}}†€~{rz‚ƒx€}~‡‚}ƒxˆ{|v~…{n„zx‰ƒ‚{‚„‰†‡}~€€{jv}€tz{~…‰{…w…~{t„s‚wwz|‚ƒ~}ˆ…|}†ˆ‚…‚„‡y{†{ˆzq}…z€nz~ƒ‚€‡†Œ„†{…ˆ“yˆ„ˆskxz…|xqnv|}qw•i€‹|||z•†zfwy…q{m™|€tw€wvŒ|O’tqs|’…}_zzrveuy„•ƒvqz~vw€‹svuˆxk‹v}c}}uxt{¦{…~wgˆhvs{{|s†gs„zz”…u{n‰l‹txxwx§dx}pf{t|gqt`sˆgyjyv{un‚ˆ‰vcyzwik~ix~Xnqoxvxlx‚xwwtiw‚~vv‡rvv{y„k{v’wrxtƒr|{yžy€~qk€}f”wmv}wy€vx|{“tyƒ‚t|{\‰xhz…yt~|”ˆŠ|~x€Žqrwxq‘ox|€zvu‚vo{vwg“€ry~€uuj}z|€xc‚q€qd|{w‰x~suŠ€“y€{‚‚…ysyvŠwg‚~v{ƒv~~s‡{~……‡Š—zr†{€zsnyv†r~€}z˜}{…w}{sj‚ƒv€}}}‹ƒ~ƒw‰|{v|…{v„s€|‰ƒ€~‚„‰…|~‡~}}~€z~fs}~€rz|~…Œy…‚s…|zsƒrutyz‚ƒ}}}Іz€…‚~ˆ‚‹„‡yz~|{‰{oz…xiy}ƒ‚€…„t€„‡z…ˆ’v‡„ˆ€•Œ„“–€’‹…Œ•…Œƒ‚„Œ‹†…|x‹—‡’‹ŒŒŒ„ŒšŒ‰Š…‹‘ƒ†‰„}uŽƒƒ}‰‹‚‰‰Œ’‰…|ˆš‰wƒ‘wˆˆˆtˆ‰‡†ˆvˆ|}‘uŠ‚}‚ƒ{™‰€“yx‡“…†{yƒ€„–’†“|‹Š•w‚‘~Œ~u˜Š‰‹Š„†™‰‹Žˆ‚„’„‡‡‘–y}‚‡zƒ‚x‡Œ‘……€zŒˆ…‰oš–ƒŽ€Š~…ƒˆ„”–Š|{†€‰v~‘‡‰•x‰‡‘Œ†‘’‡}’{}x‡Ž€Š“ƒl‘…‰zzuƒ‹Š{|yt‚Šps~€sp—zy|x—‰vy€uz~…xdŽr{~w}twr~|{zeƒr€uu}zx‡yqvˆ†x}z‚ƒ…ytyv†‚wh‡…vƒƒv€v|z~††Š„”yt‡uyztoyvˆu~€~ˆ~|‹y}zr†‚w|~}Œƒ~ƒxŠ|z‚s}ˆ|r„y€y‰ƒ‚~‚„‰†~‡}}~~€z~ft|€sz{}…Œx…t†}zt„rvuzz‚ƒ}|}Š…{{†‚~ˆ‚ˆ‚„‡z{~{{‰}o{…xjy}ƒ€„†…„‡z…ˆ’y‰„ˆ€‹”Ž„‹—~ˆ‹|ЇˆŠ‰ƒ|€•§†‚’‚‡}„Ž˜‡“‡ƒ–”‚Š’‡€Œ‚¯–Љ€„Š‹€Œ }ˆuƒv‰š”’ˆ|‹„x‚ƒƒ„‹—Žs†ˆz†‰“‰Œw’‚v~ƒƒ’ƒ…–’‡ŽˆŠ‰ƒ‚u~„ƒ|‰‡{‰‰~ŒŒ‚ˆŒ„†s…‰‡|Ї‚„–~}Œ‹‘Œƒ|„”†‘’‹„„–Ž‹‚Ž‘}އˆ€†ˆ€€‰z††‚†„‰€ŽŠ|Љ}„‚‹„……ˆx‰„…‹Š“†Š…ˆŠ‰y†‰ˆz‰€Žˆˆ’uˆ‡€ˆ‚w‚~}|{˜iky”‚„‚}—‚u“i‡qv‡…zrb}‰Šƒž|Ž}lÀ‚w‰y‹ƒsyq‘”‹~†ž…žˆy}r…†uu€}ާŒ‚Š’€Ž‡~“ŒŽu’€vb€ƒ‡{Œ‡ˆŒ{z~‹|zz‘‚”{šwx„vl“—z|tˆ„um{p}„x†‹ir}Š„v‹y[|“„|u„g‰y…d`~zsi{–ƒƒ“¨{u€y|{q‡‚bpŠˆ}”ˆ†vy†–Š{|‹wžiusŠŠ‚†tƒƒh[…uŠ‹‹||…{•vŒw{”j{‘y}†›txŠr†o€‡tp‹‰„Ž|nŽtƒonv~{„•”|„…„€ˆts€yt–{~|{™q}}‚yiw~yo€s|z~vv‰t}y|~}gt~u]}|z„}€sw‹‚ˆ{€{‚‚…zsztyiˆyw~w~r‡|}}ƒ€‹Œ{rŒx{uqyx‚t€€~ˆœ}|ˆ€}{s„€„y~~‚~„x‡{}€u}„‚{p…o€{‰„€~ƒ…ˆ†‡~|~€|€€gvt|€}~…Ž|…‚t…~{uƒt‚vuz{ƒƒ~€}ˆ†}€€†ˆ‚„‚„‡z{}~|‚ˆ|q|…zi{~ƒƒ€‡„‡{…‰xˆ…ˆ€‘‰›¦†“‡‹„sŠ„t’ˆzzo‰ˆw„}‡‰‰~~‘{ƒ‡Š‘‚ˆ„‚‹ˆ…„‰‡‡Šq€‰‡r›r†Š†ƒŽ‰ˆ€Ž~‚‹ˆt†‡’‹y…‚Š—}…{‘‡{ƒ|‚„Œ–{vŽ‚Šƒƒ}Ž}’ˆ‹„“‰‡ƒ†ˆ‚“„||‡…„szƒ‘{¦v„~‘€‡‚v|‰ˆ’˜tl‘y~ŠƒŒ‰Œˆ—u‰‡…”œŽ{y•Žxu|–€yŽ‹x’€z‡Žxr™“†~†x|„ˆ€€„ŽŒ“€“uiŒŽ~‚„„z{ƒrŽv‰~w–|‹„•suzw…”‘nƒŠv‚‚z|Žz~„€ˆ€szŒ‡ƒ‡~ˆ€~†‰–~~uwxs~€lv{w‚–€ˆ†„}|€|x‚v€¢}œ†zy…ƒ„z‚{yˆ|€€}zˆ~~w~pŒ}}w„|Œ|n‡x}ƒ|}t}s†|v~Œ}ŠŒ{ƒ†‰|…€€–xn†t€ƒ„x~ss‰r„bƒ}zo„ƒ†p{‡€sw‚‚{‚}„‚|r€w€„x…†Š€†{|}†€‚z€z|€~…€ƒ{„„€{…t‚‡ƒ€‚†xz€‚w€…yw†„y€‚||ˆ…ƒ‚€†Š{ƒ‚ˆ{~Š…Ž‚xz‹‰‰”‘‹}ƒu}šª‚”Ž‡‰–……‘…{wˆ—‚—Œ‡ˆ†±›‰‹‡…‰‘w•€ŽyœŽvx‡r‘Ž‚€’…‹~ŽŠ‘}“ŒŠ…ˆ„†’ŒŒ€“{Š–n‘u…l’sq„‡…‰|Œy—ŽŠw‹† }†“’„€ˆtw’šq𙑋€‘n‡•“yr’™ƒ‡™žŽ‡ˆŠ‡Š€|Š Ž”x…}ˆx‘ƒ‚ yu‚~Žx„‚y”˜‘‚–|“‚Š‘‹Š†{Œ—…˜†st~’‡…‡ˆ…’€Š•ƒˆ{‡‚tz˜Œ™Žˆ€„‰’‘Œ†‘…‡|‚‡ƒ‹„~y‹˜—Š•Œ’‘|—‚—–ŠˆŠ’‘…Š”‹|†ˆ…{ƒv‡†{Š–‡yˆ‹…Œ‘’„‰‘‡„w”ƒˆ‡v‡†‹†ŒvŒŠzˆt„tˆ‚Œ~‚‹|˜s~‰“Žˆ†ŽŒ”~†ˆyŠ“‚Ž|ˆ‘†ƒ}|…‚‹†ˆ–Ї}†ˆ’„™‹ƒˆ€Šz‚Ž‹Š~„„…–z…„ˆ‹–Œ›…„†x‘Ž“ŽŒ–Œ•Ž…ƒƒŽ}†‘“y“‹Š…‰‹€ƒ€†ˆ‚Š‹‚‚„ƒ‹ƒ‰Ž‰{xŽˆy†ˆ…~‡l„Žˆ€ƒtxv€“}{v{f{zovt}{w‹~xypwŽŠ~t{zow€n—Šyv}vrutg{mwxxt€„‚}ƒjyvs€p}p~Šv—xmw}y~puru’yw~zod‡zyom~qz~|…~ˆˆvxo‚wvszin{p€}uo}€xˆ‚rvs‹r|rxxvvªnsvnhuv„footnŠxkzwyu|mjvmyy~strqmswox{snuuuwqv€v}wqqtw{~rxwtuxywv…wy€wzurƒuzwxw—w}mprsmr{qr}synqwyqwvn‚v{u~~‘vyxxwtwz|kx{„t~ovuwŠz††yzlyŠ›‰y{€y„x—‰x}xptsxn}„vvt‡‰€„Txxvvq}o€‘x{mu~yp|sw•yz‚~rhˆyyonŠpzs}~…‚qxqŠxyt{irzq}|s|}}zŒˆsy{s‚uyxyx£mnznkzw„vopul||s|oyuzhov€ky|‚qsvtmvwn}{tlztxyoxwrruy~tzwurr{zw€zw‚z}vr„qz{{y™x~mrtwms|}{uv{lsyztwupƒ†w}€w‘s{y{vt‹{ˆy£ƒ‰{‰’ˆ|„†}‘¦…~‡‘‡˜•ˆ‹€‰}–…Ž}Š„}‚›¥ˆ}‡‹v‰‹‰qš‹ƒ~‚Œ}‰©’‡†yxŽ™‘”„q¢ˆ“ˆƒx“†Œ’w}}Šz†¢“—vv„„~€su|y”ƒˆz‰t¡‡y…~|zyw~‡—‹n”q’‰‹wœ~‡yv€Œˆ‚†’‡‹“¦|€‚’‰ˆz…”ƒ‡x‘|‹•—qŒ†|¢„‘‚ªT„…“Š‚}xztxnŠŠŽ’zyœ„t|Ž”ˆxœzœ‘}Š—…Ž”‚xƒru…˜~ˆ‰r”p‹p„’ˆxxs~|”z}rvz‚smwzŒˆzvw}‘Š„uyrxy}i™ˆx}}wswul}rv…uwuz‚ƒ`zuo|pzl|›wvmxzxo{rvyu~€nb‹yyooƒoz‚{”|}Œtwt„qrurxkn€q~yvn}vŒ{rvq†s{sxuvuœnxtnhww€umuso}yhyzwv~niw‚€mzw}uurporwtsxtovutvst{{}wuqst{~qvwvt}ywvsuw‚w}uq„tzxwv™w|losvlp|jr~txqpvwqzvqw{s}}Švzxyyuˆ¨vžw{ž¬•|“Š{‚Œ~™“¨†“—w~š¢˜‰‹ƒ‹Ž t§…sS‡sž|z‹¤žs•|‘swª›‹™†op‘~€rR­¸ª~˜“«n‘q‡Žs„jq™—w|Œ{”j“‹{}—uo“‰‰yopA‹–‰xŒƒŠ\‚}†—„Žl’€©Œ¦¢~Ÿˆ’ v„•tŠ•yzur”£†Š°}‚{Ž‚‹‡|’Œ¹’†€†x}k§Ÿ}wwއx‹‰z}Š~z‹Œˆ†£™v‡p{v†|ƒg†Š•“‘Œu‹ n—oЇ‚„”|€Ÿ…†¤„†‡yv€n‚‚u›€•z |Ž}Œs«ž„uuf—†x„ž‰…‹}„˜‹‹}‘‚‚‘l–~’…xŒ†•|ˆˆšz™Ÿ’†˜‡‚…gšx‡~}†˜Ÿ„v‰ƒ’{€„‡ƒŽk¢¢˜s”†•€…’j†}Œ‘pvŒ‰t††“zŽ–’‘|||‡ƒ”œ‡•zxƒŒv ub—uv~€|œ’Šf–}Ž|‹†„˜’g¶‰–sv”œ}}Œp„†v‡’y{¢y‰…zyˆuŠŠ‹šˆ‰ŸŒozƒˆ~x†”œm—‰weƒŒs‘w€~‚‚t—mˆ¬|wlym–ˆ€{n†…‡„€|ŒŽŽ•Œ‘…Œ€‹ˆ‹‡}|‰••‰†ŠŠ€“„“„€~“Œ›‡“–’|‡zˆ„t‰‡tzzŽ‹}‹‹‘Œ†ŽŽƒƒ„‹€‡Œ¥”†‡Žu‰‰…œˆu’•{‰z™rˆz{}‰‘|ƒ‘„‰„‡y|„„…•}ž–š‘|€ˆ|{‰Š{}™‹‹‰…ŽŒz„”އˆŒ|‡Œ€‹‰‚‰ˆ…}‹|š‚‰|™™Œ‹~Ž‘ƒ…‰–~‚‰}ƒŒ…„‡‡ŠˆŒ†‚‹€‘Š~…ŠŽ‰”…ŽŒ‡…y‘‘“‹„‘jŒ„…‡‘{‹‰„›•…‡‹“~‘Œ”ˆƒ€vœ‡“s˜Œƒ’‹£€’‡zz”‚™ˆ’ˆ…€‚Š‹•Š„‡ŽˆzŠŠ“–|ˆŒŠy„™sŒ“ˆœ”Œ€•‡š€‡ˆ—z†—Žˆnš‰‡xЇ–Šq•ƒŽqt”mŠƒŠ‹Š‚„ow”ŒŠ~u’x“„…ˆ˜„~„‰n‡ƒƒ‘”Ї‡ˆ‡m•ˆ”zއy˜ƒš‰…•Š|t‚‰}‰’{‘‰ˆˆ”‰{•x€ƒ¤xЉ•„~~‚zr|—†ƒ‰Žx„“…|ˆ{{Œˆ–’˜‰r†¢Š‡v†Ž„†{‹Š|ŒŠuŽ|qƒ„…ŒˆŒ‡…‘…zŒ‹‡„Œ‹Іˆ‡‹~z„‹•‰‘ŒŽŠŠŽ•‰‚‰œ–ž…Š‘uˆ{†uˆ†~{”‘•}Œ’ŒŽ†‘ˆ—‹€…Št†‰„Ÿu“{‡|‡s‡}zƒŒ|……w‚„…~‹|€€ƒ‚’†’}™¦z‚‡|ƒŒŠ~ƒ––ˆ‘‹~‹Œ†‚ŽŒˆŽ~‡Š††ˆ’{‡„€{Š’y”„Š‘‹‰œŠ‡€“‘ˆ„’‹|˜‡—Ž~}”~†€‘‚ЄЅ€‰€—{‡†“‡‡…‰Ž…”™Œ“†•Ž‚‘“’ŒŽj’„‚ƒˆ~„‹“ƒ“Š’‘‚Œ…Љ€Œ†ˆ‰™œ”‹Š„€˜–’…Ž”‚žŒ“‹Ž}ˆ‰{‚zˆ‘ˆ{„›‰Ž}—Œš‡…ˆ‰†x„Ž«†‰wƒ‚Ÿ„uy{x–sŠ{‹€‹€nƒŒŠ•’yˆx„}y†~‡†‡|—†‰ƒƒ‘}}ŒŠ‡‡›…†‘Š}ƒ‰‹‡…“ŒŠ‡Ž‰††…ˆ…„…z‹Œƒ›Œs—”‡€‡…w…„””™Œ†Ž€}‹€œ˜~ˆŠˆ{‚‹~ˆ€‘t|ƒƒŠ‘–‘‘‘”‹‘‹•‡ƒŒ€’Žƒ’ƒ‡“kŽƒ‚‘{twy’|Šxup‚‚nsn{qsuuxqŽyytsl€ˆy™}ov{woclcjwlyu’jvt|€{z‰yi‹}k}tƒs~c€mƒp€„m…l]‰vƒ{nqi|p‹‘€Œ€u†rsz{rv„\m_ph‚ur†ouc‚z‚|uuwuŠls{|fy{œh”jl‚Šmyxvvlzoh‚ruc{}‡wo„h}vxw}…wqlo~tu~xzqxlygu~z|wvf]yxrvwt‚x‚xzmƒsyuti—t€†~qm‚ek|sx{~tylmwspuyu~‰zsk{†‰trvvg‹ˆ‰’‡ˆ”މ‚Šp€‰Ž‹ˆ„|‚…ˆz”™’…‰…ƒ›‘†Œœ‘š‹{™‘‰{‰‚v‚„€˜‰‹|y‡‹‘’›‰…‰”|„v‰‰‡uv““sˆ{|zzsŒ‰|~{‡|„š‘ŽŒ}|‹‚„˜ƒ‚‚{{‡Žz|Љ†~ƒ–‰™†|‡‰’‰˜…‹‘„„ƒ‚”‰‰ˆ‰|‚‡—|’„€‚Ž“…‡}™‰…‰’‹ž–‹ˆ|ˆ„‹Œ|މ‹Ž‚€Œ}’}‚ކ’‰{‹‹ŠŽŒˆ‰‚‹…Œ|ˆ„’„j‘„€“‚‘Ž……‡ƒŽŽŽ|—ŠŒƒƒƒŒ†ˆƒ†€{“ž‹†“™–Œˆ}”—……އƒœ†“…’Œ„{ˆ…xˆ‡€|‰|Іw‹†•‹’€‹Žz…ŽžŠŠ‹sŒ‰‹Š‹t‘‡zƒ’sŒƒy†‹}€–ˆ‘Š‹Œ†‡|w€‚‚Ž…Š“‹…„|qŽƒw›„‡ˆ}ˆ‹‹†wŠŒ‡€‹v†–ŠŒ‰~…„ƒ‰‰…†„…Žw‹’–ŽŠ‰ˆ|‡Ž‡ˆŽ‘Ž€~‹‰ƒ}‰ƒŠ“ˆ‡ˆ…€Œ€†z‰ŠŠ‘‰…’Ž–‡…Ž‘…}|‡uŽ“„†Œˆ’‘˜jŠƒ†Žyvsvˆ†‰{xt`y‡pou‰‚r”}tyyzŠrtxwvsƒn“„svyrmptgupov}mu€uv|uq‚ytj|†z‡tqw{s}jwhxŠƒk~€t^tw~l{qz~vƒ‰wyvuƒktrsymoƒioztf}ysyrte†w{pusstŸhwufgplerpswqeytvozlcvvxcxy„tsvpwtxsuurmg|qycu~uwxwpvqyw|yvtkh{xzosu}{ztpƒuyvtlu€†mmjuhnxqhu}qwkstwwwsw‹y}„e{‚„wywzpqŠ›ƒŠ‰§zƒ“‡—žŒ‰€v}™—€–•ƒ€–¨‚”~Šx¦”‚©{ow†~uœŠ¢‚Šu}މ”“‚‡ƒšŒŽbjމ™“ov|˜‹›“‚…¢v}ƒŒ›z„z‘“ƒp~‹¤ªt€‚–€w˜’u”‚”Žs¨ˆ“~…m˜‚w‘ˆ’ž‰{›…€™Œ†„‘ƒ‰nƒˆw~–t†›|v‚{…y„†ˆ‘€‰œŒˆŠ‡|€Š–…’|„ƒ’‰gxˆr‡•–~Œ„‚}“–}y‡z„~|†~‚ŠŒ‡—ƒŽqŒxƒsž‰}އ“…‘™{Œ†rŽt„t{œfm—f»wyœž“›tz˜RŠ}lu‰B‹r’‚•‘€—j‡xsÇyi‹x‹tqq“x‰‡y’‹ž‘o•Œ`ƒwK€ƒˆ™d—t„_~Œ‚Ÿ•„°ˆœ”ˆbp–sœw~‹€‡‡‘r’Švu~~Š…pm”›Œe‡l{˜q|„“}kqpš|‡{vzz~vdq‰šh¤f§‘……woq€€gnŠ‘poq{g‰©‡|ƒzˆh}Ž€†l‚us•u¡|‘†}|q–“}\ƒ¬…~Œyw™—vˆŽ“|y…€cŒ‰zu~‹wz‹s›y™Šlƒxs—t}”ƒ‚yytƒ}’{|trzxjx|t’‹{zz•†u|wzw€k…‡zw}xvxsj€xyŽxyux‚{gzus~u}o|šx†tsx~{€pwqyŽzw~|od‡zzrq‚sz€Ž|‚‘{wrŒlmvqwlm€r~|xtˆ~wtvr„s€sxvuv–rwvqjsvƒxquuq{xtyxzw~okx‚€r{z€wvtrvswn{yurowvvru€{|}wutuw|~qxvuw€zwwqwxƒx{xr†u{xxx‘x~orr~or}~kt}ryjqwysywu‚x|t~~ŠxzzyxuŒ‡Ž‚‡Š”ˆˆ‘~x tˆtŒ|‡ŠŽ‰ƒ‹z}‹—~›ˆ†‰…‚‘“Š‚yŠŽ}pŠ€“r›™x…˜…¡|ŠŠ†žŒ‘“w„’‘†–ƒ‡v•Ÿyu’€ŒquŽy‚†Š†„ˆ€x–…‹‚†€zƒw„„ŽŽ…~ƒv„€‰ŽŸ‹ˆ‹‘€t‘Œ˜s‰€nŽš|„œ—ruv”ˆŠz€‰‹uŽˆ‹„–{•ˆ‘{›ƒ†ˆ…‡{}Œsp€Ÿ†ˆ€‡€˜Œ…|†„ƒ¡ƒ£oˆŸŒ‘‹‰„€ŽŽƒ…‚”„‘†z™v~wŽ‹‰Œ˜|”‡˜lwˆŒƒ‰“”œ€Š…vƒššŒ–“…Žz™¡†”†‚w¦’ƒŽ«‰ŒŽ~sƒ‹¢ˆ{‹ŸyŒnz‰‡Œ\’‹‹†s~ —‘›Œ‘…šrŠ’€‚Œq§”‹ˆ™~š–‡m‹‡m†ƒ—„“ˆ„}qt}ŽŽ‰€‹€‘i”~‚š~z“‡‹‹wˆ‘›Š™Ž‹˜iŽ„yp„”ª‹–“•‘‚ƒ‹˜{‡ˆ‰Š‘‡ ‘|„w‰›†w–€†”}xˆ‹‹‡“†~s~ˆƒ„‹œŠ¡’Žlš‚|mt‹€‹qœŠ™ˆ‰•†t|¡vš€Œs|€‹z†œ‰|‘ŠzŠ…pŒ}‚Œuwx…z{vtjxŠnjy}}v“ƒvyrxŽ˜xnxv|t~h”„yw|tqtrczrvuxs{€ƒ~€dytpu|j€¤x‘wrv{w~nzpv”xv€€ja‚yyp€m†szzƒ~~txr…vuurzin~p~{vkyv~‚rwt‰q{qvtuu›mxtoerv…tnqspupxtxu}ogv€~nzxttqotquwvzspqvtuou|z|vsqsv|}qwvtv~yvvvtw€vzsq†uzvwv–v}mqmpnp|}gr}qxpovxpxur‰v{s}}‹wyxwxr’‹€„„€ˆ‹‹‰‚ŽŽ…‚‡~‚‰w™Ž…”’”Š‹…~™–†‚”’ …•Š’…‚|ˆxŒŒ‹~|„Œ˜y”…—ˆŠŒƒ‰Ž|‡”¥‚‹t•‹…’ˆu“zŠ„Št‰€ˆxˆˆ~†™Š~~Š‹x‡„}y‚‚–ˆ‡ˆ~žš“ˆ‚}{’Œ‡ŠyœƒŒ}‹‘‹Šw‹‹ŠŠ„ŒxŠ’…‰‹‹~~ˆ€…‰„‰†‹‹yŒ‰“Š“‰‡ƒ††‰‹‹‘o‡Œ‘Šx‚}‹y‡}ŠŠ•‚ƒ„ˆ‹„š†|†ŒˆŽŽ}‹˜Š„–‘Šˆ—y†|“ƒ„ˆ”—–lŒ„Їƒw–‘ƒˆ‡†’Ї”ƒšŠ‰€……ˆ†ˆy” Ž…–—’Žƒ€–›ˆ’Š‹šŽ“‘Œ‰‹€{Ž…z‹Œ…{„‘„†zš‹•Š‚†‘‹|ƒ‹§‰…†Žv”ˆ~ˆt|{|sŠŽ~„‰‹‹‰€†ˆy‰‰zxƒ‘މŽ{œ‰“ŠŠ}wŒ‰’yœƒ‰‰z„Љ‡‰ŽŽ‚Œvˆ‘ˆˆ‹~yƒ€‡‰„‚Šƒ’qŽ”‡†z‡ŒŽ’jŒ’‹|ƒz„‡‹~‘Š˜†„‡~ˆŠ~ƒŽ‹z’‹Žˆ’‚ƒ”~‡vŽ‹ƒˆ‰ƒ•‰‘k‰ƒ’€Š{‹Œˆˆ…“”‹‘€—ƒ€ˆ‚Š‹ˆ‚€Ž›†–’’Œ‡ˆˆ–‹‹‰”†‘Љ‹†{‹€w‚ˆ}‡‡ƒ{‡ˆ‰Ž••Š~Š—|ƒŽp‰ˆŠu‰Œ‚Žt‰„zˆxs€…}‚Œ{Œ†‡‘ˆ„‡ŸˆŽ{|І‚ŽŒ“‚‘{‹Š~Œ|{‰Šs}›ŽŒ‰~†“ƒŽŒ‡‹„†€ˆ”‹ŒŠŽˆ~„ƒ‡Žz‚„‘~ƒ–…††wŒŠ‰Š”ŠŒŽˆ‡„‡‚†‰…„|’Ž…„‹€‹‚…‚ˆ†ˆ…ޑВ‹{Ž…„y‡†‹†‘…•j„‰}~Šz—Іx|‰š•…ƒŒ “zp€e‡~‰‡’|‚†„‹‚‡‹„œ‰‰‰ƒk†–ˆŠ‡–—{  ~{y~w•{~”}‘ŒŒ[ŠŸ˜”‚™Œ–z„’ˆ™y‚†Œ}ƒ•o™ƒqŽ’†ˆ›Œ‚|€œŠ…ˆ‹…˜x‚Œ‰}†–ƒ–”„Šmƒ…‰‹—ˆ†rz‘{~‰‰ŠŒ•zxmƒƒšŠ†‡}—•…ŠyŽ“‡Š{†‹”‰yx””ux“~Š”†Ž€›Ž›•{˜Œy€ƒŒŠ€„‘•ˆ†Š‰‰u}ŽŠ‹…€’z’‚“’‚{‹u~„žŽŠ‚…„Ž“Œ„‘~œˆ~……™€~’§”‚“‘‹‡‹—Šƒ€Š‰”‰•“‘‹–Š{ˆƒvˆˆyŠsŒ€y€‡Š‹‘Š€“—~‹’‰t‰—x…t‘™yЇsŠ€Œz…}˜ŠŠ}ŠŠ˜†}z€†€‹…‹{’“€‰€|‰|m†Œ}y˜„‹†„ƒqŽŠ„|ˆxŠ˜Œ–Žˆ„ˆˆ…ŠŠ…‚Žx‡’–˜‰…}Ž…†Š‰„Œƒˆ{‡~ƒ‡t}‹‡‹Œ‹’€“€}šƒŠ“ˆƒŠŠ‹…ƒ—€|‰|€rŠŒ€‚†‰‡‘k‹ƒˆzš•t˜Œ€{ˆ€}˜’˜’z„zw˜š—‚“‡†˜™†v˜–†ޙދ†ŠŠ‰›–~ˆ…”}“}œ}”˜m’}”•ˆ“˜‚}–€ˆ„‘w—ˆ„‡…w¡‘†Š›‡“‰“pŒ|}l‰‹‰…‡……‚x†x•މw„„—y™‰•‡•z}„{’™ŠŽw‰•†“{žj–’zyˆ’ž‰‡¢¡”€’€Œˆ€ƒ‡„…p}ž‡€‰~¢…‚x¤zŠ…’~t…œˆ–‰{vv}…tŒŸ‹‹“v¡zƒ{‹…~‹’†–‚ys§y–„„{~‚’‡„š‚Ž”}Œzˆi~—‰Œxzq‰Ž‹„z~„w|wt{zw”„{|x{—€xwx|zu{Š€|€{uzto~|}x{ps€‚€‚qz}z†ys}š|‚zwx€~‚uyw}†}z~wo‡~wvrˆ|{ƒŒ~†Œ}yjŒkwyuwrs~r‡}xv‘‚y“„wzt‘zv|yz{žxw~tv{ynv|{t„s~y€|}tx}…ƒu|}vyzzz|~z}yusyz|v{ƒ€y|w{y{}‚r~xvzz}~|s{z…|{x„w|}€}•}‚‚tuxty‚|yzw|rw{~z{zzƒ†|€ƒy‚„v€{{‹Ž’ŽŽŠ‘†z{‰Œ„„~‹„—™”Љ…‹Œ™”‹‹˜„ŽŒŠ„’‹ˆ{‹wƒ“~ЇŠ}Š‹‹‘Ž—‡€ŒŸ}ƒ‘u‰…†u|ˆŒŽ”tˆ€z†x€rŒ~Š{„‚‡“ƒ‘†~{†‚ƒ”ƒ”…{‰Ž‚‚€|ˆ‹Œ{|˜†‹˜‡}…‡‘‡“‡“ˆ…Œƒ…މŠ}}}ˆ–v‚’ˆŽŒ‰……xˆŽ‡Š”‰››Žˆ}‚Ž„’Ž~Ž€‹€Ž~{‰ˆ‘‡€~‰‰‘Œ‚Ž„ƒƒŠ}‹‘„‹i’„€~Œz^‹‘|‹‚€p}…t|rw~ƒƒ}m„”އ{zy|sƒŠˆ~~}rvt‡„sxi|”}€zx||ri‚y‚„utˆ„ƒv„yv‹y{pvƒ|us}j„y{r|†‰yˆxf‰ts„v~q{~o‚{s„z’ˆyƒ~†z‚zƒ€”uf†p~€€usw|mtŠl„]‚wvg„{€†hw†}ms€v€|„xjƒp„r„†–{†|zyzˆ…‚u}wz{{€…|€x„„€v…oƒ†‚t…tt~‚r|ƒt~†}„r~~€xw~‡~ƒ}€…Œ‹w‡vz{vnŠƒytp}ƒtqtž{u“yxysz‘ˆ|w{t{|ˆf„{w}yvtsp|pwwyx|€}„h{vt|s{q{šy‹vsx|qur}{wxƒzf€}us~o€oz„™}~ˆwu…{lwpvlp~s}}wpƒ}w–xtwsŽt|sxxyv¤suxooxwƒtr{vq|yt{|y~ooyƒr{|vvvtruxjxzvrmxvxsv€|~xuuvxuqywttyzzx|wy…z{vs…wzzzy–y‚osy{ot~~vttz_rx{tyxv‚…y}‚t~€Žx||{xw‚kˆvƒ‹y…‡v|kyz…}‚}r{™{…z}}zy†–…~~}tvtq…Œ„…w|uv~~~{z|w…h†z‰yw„†„wzu‹{€‚tvxˆ|yv}n‹|{r}…Š{‹yiŠtzƒv|t{qƒ}v}‰|€’z‚|”|„{„~~›yl†r|yvxrk‰pƒ[„|zl„~‚…oz‡~qvz~‚€{otƒv„†–~†~z||„‚u~w{y{€…€ƒy„…€€y†r„†‚w‚†xw†v„u~€†~„p~€zz€ˆ’}„€€†‹‹xƒ€ˆx}wp{ˆ‡‘}xtvyŒshx•xv“…yyy‚{r|sxvzi‡{y}xvysg}lv‚wztx~z}s|wq„tm{”x‹uty|{€qtry‡{uzrdˆ|xs€rxqz…‘}†‘zws‚spssvmmƒr~}yi‰wƒtvp€uzrxwuv—r|urkuvƒorwvrvny~{w~sjy„€s{z}xwtrtsyotzvtmxvvsu€xx|yuuuvs~rxwt|‚zxxswzƒxzws…x|wxxx~psrwqs|~gs}rwmqwzszxvŽy|‚t}}Šx{{xzv‚|{“›”ƒ‡ˆˆ}‡Œ‘ƒ„†‡|‡ˆ€‡„ƒ…z†~…Œ†‡€†…„ƒˆ“x—„‹~‰‰…‡Ž‡~z}ƒr‡}{Œ„~ƒz€€ˆ‹|‰†„„ŠŠ„†ƒŠ„‰‘ƒˆ€Ž„‚„Š~ƒ‚€Šƒ‚‚‡‡Š‡}‹…‚ƒŠŠˆ}‚„Š‚ƒ€…‹ˆ‘ˆ‚u‘‚}s‹‡‚™ˆ‰ƒŠ‚„„~‘ˆ‚„}‹xx‚‘ˆˆ“…‹ƒ~†‡„ˆzƒ†‰Œ‚‰€‚‡„‚~†ˆ†—‚yˆ†‚„}‡š„“–ƒ‚ƒ†ƒ…‡‚€†‡‡ƒŠ‰{ƒƒˆ„†…x‘‡ŠŠŒ‹‹„‚‹Ž„‰€…ƒ‹}€ˆ†Š‡—•–…‹…€Ž–‹”…Ÿ‡Žˆ†€‹{‰ƒvŽŒŠ}…—‰’zŒŒœ‹Ž‡ƒ‘‰y‡’ˆ‡…u}‰šŒtx{}v‰sŒ{…~{t‹‹†“„‡Ž|}‹…•…†yŒ„ކ€ƒŽ|{Š‹‰ƒ™Š—|†ŽŒ‹†Ž‘‹‰„‡‘Ž‚…Œƒ‹|~{ˆ’z”†Žv‹ŒŒƒŽuŒŠ‘ˆ˜‘‰‰‘Ž~Œƒ…”†Šƒ’‡‘€……€s|Š„‰’‹ˆŠŒ”‹’…†€Ž“‚”ƒŽ‘j„{|’}~„ˆŽ~†|ŒwzŽwv|‚|yy›…}~~x€ƒtŠx|~vyth„~€€{}sn‹uƒyr|yz…z~oy~ˆ|zyƒƒ…x|yv‡~{xƒvˆvz~rƒz}{ƒ–‚‡†ˆznŽsz}uvuwsy‚“{}ƒ|~v€~ƒy}~“}v„u…}}xz‚vv†u‚l†}tƒ†…w}†~wz€€y~z€|xu{}x…Ž|…€w|xƒtwxz~ƒ€€zˆ…}~{…z€‡Šƒ†wy}ˆx€†y|~…zn{~‚€}}‚„‰}„„|…‰w†ƒˆ}€{‰‹zŒ‚’ˆ|{„tz‹}{z{žs€~x€ƒzuˆz~v{us‡€y~un‹z€|q}{|ˆ{sy‰‰|}{‚ƒ…y|zy}zy…w‚€v{u…z~wƒ“‚€‚…|qtƒ|vxwwƒuƒz~•}~—†|v‡„z~–}w„w…{~y|‚€wt†rm†€~uƒ‚‡…w~‡x{z€|€}yt|~‚y€…‰~…€x‚}zƒuyxz|€ƒ€|‡…~|„{ƒ‡‚‚ƒ‡yz~Œz€†w}~…|‚u|‚~}€†~„„}…‰x…ƒˆ~”‚’”–‹€}ˆ‹‰‰‘ˆ‘ƒt€•…‡~‡€y”‚……‡‚{“††‹“Œ~ˆpyŽŒƒ„–ž€‰‚‡‚Ž““{Ž{~•‰\œ™ž¨‘~v‰†w•~…uˆˆŒŠ‘z…•vŒˆ‰ƒsŒ¡‹„™…j}—ˆŒ‹…Ž‹‰…r‹–„…”‰v†ž¢…œv”˜‚Ÿ”„œo}~‡}”ŒwЉ§Œ†ˆ‰“’“~‡Œ~n”{}†Š‰|–‰†ˆ~€… ›|—€x†•‹x”y–—žk˜‹ro……{z‘©‘†„œ€z€††Ž„‡ƒˆƒ–‘ž‡~‚ƒ‰|y„…xˆ„Š„~~‹‚‹v†~‰‡‡ŠŠ”„…ƒˆƒˆ‡ˆŠ…„„Œ‚‡‰€Œ”Œ„„‚}†„~ˆ‹„’‚„‚‰„„‡p†…‚‹‡‰v‹‡||{…‚„‹Š{…}‚ˆ††Š…’„„†…Š…‡‚ƒ‹•’ˆ‡Œ†‰‡ˆƒ‡|…„…Ž…ˆƒ‰Œœƒ“†‰‘…ƒ…w|‰‹…ˆ…‰‚Š}“‘’„…Œ‚ƒ~…‹y€„|‰…‹€|†ŠŽ‰”ˆ‡‰„Š‘‰Š…†z‡Œ„‰€†}Š˜†ŒŒs‡{ˆ}„„‚„‡™‹„~…ƒˆ‚…~ކr„~|‹„‰…‚ˆŠŒ‚ƒŒ†—‡zn{†‰}uqizuvx‘tx‘ƒzyw‘to|nzvzcŒ~z}ws{sk~guwxr‚€yx|{tp|nx‡vpw{y€pvrrŽ{xx‚wdzzqp€rz}…‹ryrttnssxkn|qy}vh|z€tvuuxrvvtw³pvuogtv‚jpqup{wiywzw}ojxƒ€qzywvsqpswsyzuqtwvvsu€wz}wurtw{}ryxttxzxwqvy‚w{ws…u{xxw˜w}orsxorz~hr}swkqwysywu‚…y|‚t}}‹vzyxyukqŒt€uovxŠqf|™€}…x‰{p|‰€•ozy‚t}oš„yƒ|z„x…s‚~v|…‚t„„‹Š||u‡‚„‚{z“u•‚tyuyxx‹„z‚‚mˆv…h‰|ˆz|m|r {Œ€zw€„~ƒ}sus|‹‚v{u™zyvf€|y{vw•w‚‡siyw–d{}dh†ui}€rworki‘’rm}…qv}rswzu{zln}uy~z}qoŽv†yno}wwzo—y}|€tiqƒp}~y{uˆ~štsvƒtjpxƒq~xwt}wvz|}ly•މ‡w‹Œz|zx^|—Ÿˆ“‡Œ€ˆ|€ŒŽˆƒ€ƒxz„ˆ‚‰ŠŠ‡†“‘Œ’Œ}š•„|‘”Œˆƒy•“‹Ž’¡€ƒŽtˆ{vŸtŽŒ„œ–œ‘‚†~…ƒ‘—‹ˆ‰ˆrš‰Š™…rr~ˆ|t†Œ€’„Œƒ‹xЉŒ€…}x‹Ž‰„€Œ‰…q”‹|šy”‹„””r–tu‹ˆ‹‚¨š’ƒ™ƒ|‡|„~–vŽ”‹€‰ˆ…•Š’z–‹‚ŒŽ•…Œ€ˆ€rŠ|Œy€–‡˜ƒ”wšy…r†‚ƒŒ”Š—„›£€‘€…}†‚ˆ€’s…‹~’‚€yu…‹Ž‘‰|†‹‰‘ƒŒŠ”‹Ÿ}‡ƒ‰‡~Œƒ‚zŽŸ—ޕޓЅ”ހބ’•ˆ†ŠŒ‚‡€{Ž‚uŽ„ƒ}yŒ•‰Žy‚‡ŽŠŠŒš•„’l‰ˆu’‰‰Œt“Žx‹}‚sŠ€’{…‹zšŠ‰„€…—ˆ|~‹‹|’‡’{‰‹|~ˆ|x‹Ž‹{y™‹ˆ€ˆ„Œ…€ŠŠ‡ƒˆ‘ˆŽŽ‡„……‰Ž}„އ‹”‰‚wŽ‘‰†‘ˆ…žŒ‡‹}‡€Š‚‚Žy’‰‰‚•†~ˆŽ€‰‘‚Œ…Ї‹Œ‰‰†v–|vŽ“~‚‰ˆ–…j“„‹|}œŽ‡ˆ{‹‡Ž…œ}…€Š†}|„‚vŸ“›—ŽŒ‰„•˜Žˆ˜€‘š†’}Œ‘‡‚{ކw‹‰ƒ‰|†Ÿƒ”|–‡“Œƒ˜€¤Š~†“…ƒ…‹t‘ƒ‚‡‹uŠy“‚‰t‹“|‡ƒš“ƒ†Ž~ŒŠ~‰v‚‡€‰˜‰’~މ’—†‰|z“Ž’ƒp›Žƒ€‡ˆ‹ŠƒŽŽ…‹„‘}ŒŽŒŒ‘ƒz†x…‰‹}†Š{’†ˆ‰†ˆƒv„‰”ŒŒ‹z›ŠŒŽ}…{Œ}ƒ‹~˜ŠŒ††…‡€€v†Ž†Œ‹‹u‹‹”Œ…˜‡ƒš{vyŠˆ†Œ‰—‹‡k„‹‰wˆˆˆƒ‡‘ŒŠŽŒ‹o„‰€‹Šˆw…~z‡ŽŒt™Œ‘‚Љ‰ž‹‘†‘ž‚“Ÿ‹‚’„{Ž…w‹……–—‰›z„†’††˜Š}„”‹‡†‰ˆuއŽt††}{€‚tЇ~ƒ‹Œ”‚~ŽŒ—†xˆ†€~‚‚‰ˆˆ{‡„œŽ„€†|“‹Š}‚—Œ‹—{‡‹ŠƒŠ†„„‡‡†‹ƒ‚{…†‘€ŽˆŽw„…‘‘…‰~•‹ˆˆŠ‘…‹z~~…}‚ƒ‹Œ†ƒ‹€“~ƒŠˆŠŽ‘~vŽŠ‘‡–Ž‚†„†Œ~†–‘kŒ„„…’‚wu{~z‘}{wsyƒ~o{}s–‰zz}’‘yt~w~v‹i†|x|xw}sh~vz‰xxvnƒz~ezvt~v|o|Šxsux~}€qyrz…{v|ƒqf‡|wtqƒvz€’~„“{wuˆclvqvmo€q{|ypˆ€vŒ~uwt‰t‚tyvuw t{wrntv‚xrvws{yszy}yqnzƒu||xwutxtxqszvtqxvvtv€~~yuvvw{pyvuw|zyylwy„z{xt…v{zzyŒy‚qsr}qt~~lvs{iqx{uzxz‹y}‚u~ˆx}|{yw~z}…‰‘|€zx’}zzŒw–‡uއ…yo‚rtw„tkƒ~{}vv†|}~{hzq}a€}v‡z|u||…uz{yxwƒuuŽtmŠ€||‚|w|Œ…„~‚›‡{wŠfvxvtws|x~w‹‚w‰w{voz~wyyyy™~…z|ut{o{}{~ˆypzƒ€ƒu…‚€€~}zw}w~ll{}r…ww|xwy€}w{ty‚rzwz{}|mx~†€}yz‚€|{}{‹|ƒxzxyz{‚kw„s}xv|~z€|ƒ‹€‡x€|‰w~‚}‘ˆ ‹œ†‹„ˆ†‡‰ŠŒ€„ryš~–ˆ•‡ˆ…ˆ“„…’†œsƒ|…‘|’‹’„‚–˜}•‹|…~‘“’ƒ|{uŒ™’“‚œ’™‰Ž™‰‡‰‡Œ‹|„xއ}Ž•‚Šnx“zs•—˜n‹’Œ‡~”£•–އƒaŠ…‚‡{s“ƒ‹”{Œ˜Œ’‡•ŒŠp‹Š‡y’ŽyŒ“~‘‚˜ŠƒŒ”z“’‚…‹‡ˆ“Œ†‡}–{•x‚€ƒ•sxrŠ~Šžy‡|‰Œ‰}€Œ’ˆ{•…†‡‚sŒ†Šˆžˆw‚|‹lŠŠ…ˆ†Œu‹œv‰“p‚lŒ‡Žr{ˆŽ‹||~hz–vvyt‚wŒ‡wzxz‘~uv|vsyv‰Ž|y~wvzui}qxyxxxxzySzuu„uzpz‘z“wvx{{€qzsyŒ|w}‚kfˆ~yr€p€t||€~~wyt€ˆwwuxlq}r‚|xm~x†}swsƒu|twxyw¡qxwsktw„wsuvs„xvz€{y€qkyƒ€r|{wwtsusxxwzvtoyvwsv{}yttvv~~rxxwv{zxwvz‚x|tsƒyzyyxx‚~qsqxqs}}lr~u|wrxzszwt‚Šx|ƒu~}‰vz{zzvŒ‘‘‡ƒŽ’ˆ’Љ„~”€ŠˆŒˆ‹~‚††‹”›™†‹{…ˆ”—Œˆ“‰›ƒ‰}‚‹ˆ{Œ‚uŠŒ‡~‡£‚‘€’Œ‘Œ‘…‚•ƒw†„“‡……vŠ€£‹tŽ…z‚qŒsŠ|‹|}‹z‚yˆ„£‘w…„‡“{{Žƒ…“ƒ˜„ŒzЉ|…ƒ|ЄЄ‡žŠŒ“}ƒ‘‘Ž¥†”ББ‚‹ˆ‰‚˜ƒ‹u‡™{–ˆ…–ˆ„„{…‹”Š”™‰”œ•‰„‚…˜§”…Œ…‡|‚…z€—l‡…ˆ‘Œ†~ŠŠ–‰–‘„{‘~–Œ|‡ƒ‹j„‚‡‰{‰†Œ†y‡‰‘~’‰‰€ŒŠ‹{„~{ˆ‘‡—‡ŠŒ‹‡Œ™‰‹’‰…‹…ˆ{Šƒv‰††}Š”Š{Љ’’ŽŠ–„…ˆ~†‘Ї…ˆu€Š‡‘Žt‰}|ƒ|ŒsŠ~‰~‚‹}ˆ“‰„ŽŒ‡Œ†Œ}~……ƒ‘Ž…”{„ƒššzŒ|x’Œˆt}–ŽŒ•|…‰‰‰†‹Š…„†‘‰…‹~Š|xƒˆw†ŽuŒ‹‹‹ˆˆt’‹†ˆ”’|‹‘~‰€ˆ‚„ˆˆ|“Ž……€‰x‹‰‡‘‰†ŽŒŒ˜†”ƒ‡‚†‡“ˆ”Žj„‚€Œƒw–…wƒŒ‡~{…sz‹ou•‚{{~œ‡xq~z†„}u€y}~x{ug‹€‚€{|xp“v{zp~zyˆx‚lz}˜||yƒƒ†x|yyˆzs~„vw{sy}v„•‚ˆ†‡zp‹qw|uuvuƒs~yy–{~š{}v€y}~}—~v„w†}|„vzƒ€wq†pp‡€}tƒ‡…z}‡|xz€€x}€z}yy||€x……}…€v‚|yƒtwx{~ƒ~{†…|}…|€‚ˆ{ƒ‡xyˆy€‡zt…{w{~‚€~~„†‹~„„|…‰‘w†ƒˆ~|qoƒ‰„x{psyletŸkw|yv|Žzzwzutxc†zwvsvrg„|vŒvxp††Šy„syvt|r~o–tŠxlw{y€orryƒxxxotcˆx{o~nƒqxszŒ}…‡|xo„xuuqzin€o‚|un„€w€qxoq{qxwvv•mtvneuv‚dpstnwczuxt{mjv‚lyz}sssqwswp{|smlrvwpv€|s|wwpsyt}qxvv|zxvtwx€w{sp„rzvwwœw|lpwtnq{|eu}ryprvxrwuq‚w{u}~vywxwtŒŒ—…t{Žˆ•|­–‰yr|˜’{Žž˜Žƒ”›…–‚|{Ž˜—‹Ž‡……§•’‡•{Ÿ›„i~‰‡b£ƒ–‰}ŽŽœ”—ˆ…¯|Œ‡ˆŽw€pš‘„Š‰§•”o‰…ŠxmŽ€ˆ‡–’Š‹†y‹‘’ˆ„ˆ„Ž{—ƒ‘Ž…‰‹‡’ˆŠƒ|‰ŠŠ–„Ž’k„Š‹zƒ‚”‰‹ˆ™Ž|‘w…‚{“Š‹Š}—ˆy{¦ŒŠ•xˆ……„{’˜Œ‘‹|x}‹‹~¡‰¤’x¥ˆ{z†ˆ}t˜•Š‘Œ…ozŒ‡€“|†~‹~›~q˜„u‡x}œ††”|Š•ˆyxxy‘sur™~}|€x˜ˆq|yhzˆ{j“€t|~xxvv‚p~y}€fzr~uu}|y„}pwŒŽy{|‚„…zsz~|‚xjwˆy€t}~~ƒ…‘€‡Žˆyt’tu}tqzwƒu€~—~|‘w~{t“‚x}~˜ƒ~ƒx‡|{€u}…‚{p„t‰ƒ~‚„ˆ†€‡~€{€hv}t||~…‰|…‚u…~{t„twxz{ƒƒ€~~‰†{~†‚ˆ‚ˆ‚„‡z{~€|ˆ~q}…z€l{~ƒ€ƒ…‹„‡z…ˆv‡…ˆš|Œ€|އx‹ˆ‡~‡o¡iŒŠ˜‚•Œƒƒ•‚„ƒ‡ˆ‰Š‹„†hr“—–Ž‘ž}–€x~~€}`Œ„‡‰‡ŽŸ‰•‰šŽ•wŽ—‹‚’i›‘‰„™‰”w…m‹}urŽš{–‹Œ‡{˜’Љޑlˆ‡{‡}|—’€y‘‹‰Ž†¡’”nŒ„z€‹‚‹Š…•}•~‰€Šš—w„‚˜–Š–vƒ€}Žnv‡‰|’‰|‚ƒŠ}Œ€¡Œ‹xž‚‰t†wŒ…œŠ™ˆ’’†z‰zt†‰€…ƒu‹‘mŽŒ|…‰rƒˆ’“zwwy”Žzz}r’yuŽr‚zŒ‚€€|€}qu{}‚€g‹†y}ypyvkxt‚n„q‚x…yr{x}‚|…o{‹sxxx|w{yƒ}~‚tgˆ‚v{€‚‚t{‚ƒ–‹‚‘wx~q|{nwvs‚…~u{rƒ†wƒxwr„|zpzyxw“|wxny{‚yx|v|…uz{zƒxu}z{ˆ…z~stw|wxmzyv}rvyx|{|‚vvqn}yzyww}zx}xu††vkƒ|x|v“w}|rw„zq|yho…zzzr{xuz}q}‹~„n|€u~zu‡y‹‡‰Š‡……‘ŠŒ“y”Šz…Œ€ŒŠ†„~„Œz•ŒŽ‡‹‡Š†šŠŒˆ”‹›„‘£…‘Š|†ƒw‚ˆ™~‹‹Ž’yy„’”‘Ž…†ŒŒ|„‡‚Ž‹Šˆvz‘‡v€~yyŠtˆ~„}‚ŽpˆƒŽ”†ŒŒ|…„’ˆˆ€‡{‚‚…‚Œ}xŒ‹…|‡”‰“‹zƒŒ‰†Ž’ƒ€…•‘…†ˆŽƒƒ„Žz‡Œu†‡ŒŽz”ˆ‹ˆŠ‘‡‹‰Œ‹|‡ƒ„ˆ‡€„€Ž‰—†‚’€€†|„‹‰ƒ”’€ƒŽ“ˆˆŒ…ŠƒŒ…Š“~’ŠŽ‘ŽmŒ„~ƒ—{‘„–•“yyx‡Š†‡Œƒp€£‚…{…|‘‚•r€–ˆŒz{ŽƒŒŠœŽ‡{‹˜”ŸˆŒ˜z›§‚n~š‡˜y~š|„”tŒ‘†‰›…Ž|Ÿ‡‡‰Œ€ƒ‡ˆƒ–€œŒ‘n†xwn•†œ€‘’Šf|™‚’…‰†‰žuŠ‹–“Œ|……y˜’y•uˆŠ“‰œ”‡¥izŒ}xw‡˜Š†Ž˜•€Œˆ…‰œŠŠ†ƒƒq£‹„–€ˆ–‚„ŠtƒŠ’“Ž”}–š|‚Œzvˆ„Šp€®šŠšz‰ˆrŒŽ€…œ‘™’”‡k|•’•€‹ˆ{’ŽŽ|ŽŽ{˜zx‹„{•™‘{}~‹pzy€}{~q—~{z‡‚œ†x~r|x|pvŒz}zvztm‹x„y{{j‚p~‚i{|v„v|rxƒz}uyz~€‚tyu}’}vvƒul‰vw|t||‚~Š”‰yqˆtswtsqq€rx~yw‹„x|yxpƒ{u{xyz£z{}uuxy~rx{{vy~r|‚~vv~…ƒw}~y{yy{y|vr|zxv{xzvy‚z}v}y{xp~wvw~||}v{{…~{zyƒ{{}€}Š|‚‚ttxvz‚~q{v~mv{~y}||ƒŽ{€ƒwƒŠw€€|{prv„Ž}ytmyxoqvˆ{x‘wyt}އtpyuquƒh˜ˆyx|vxysfykw…xxt}‚w€b{vrr}l~ˆvŒvqx{yoyqn‹yvwxazxppxoz€}Œ}…‹vxu}}rtsyjmru}wd{wŠwrvtƒr|rvvtu£oztpesv„pnmsp}ufyxyv}ngvpzwvuppnqvorzspvutuqt{z{wsptuz|rvwtw{yvuyuxv{tq…v|wuvv|nqlpnpy€ir|ryoovxpxvt…wzs|{ˆxwxvxsxwyЉš€ztpzˆrkv„pw€~zw‚ˆˆvu|uyvn‘†{z|vqvrfqx‚vwo…‹Št€rywt{qh~•s–wnv|{otqsƒwwysvcƒx{n~o|qxu}{~€‹vyq{nqtszimoƒ|toƒ}y€rwqs|ryvtw¡lrvmdvw‚inusmzwgylxs{jjvmyztssrxsww}zrmlrvwow€yz|wwpsxz|rwvuw~zxvnwwv{vo„q{xwx‰w}mqosnr{}_r}swrqwyrwuq‚Œw{u}Œuyxwwtpu}Š~‘zwspyŽqd{†vx“xxtz‹sqwxzw{e‘ˆzw|uqyrk{ow†uwr{…x_zsq~u|mŸwvqv{y}oxqzˆyw‚€ja†{wonƒsyx‡~‘swr‚nsurzio‚q‚{vl~€v‚sws‚r|rvttu™lxtocrv„rnqso‡uixsxu}mgvozx€utqpxqvtxysortutpu~z|vuosu{}qxvt{yvvouxvztp†s|vvv“v|nqosno{|br}qxtovxqxut€ˆwzt||uyxvws{po‰„~xnkyicw‘~t’ywswŠxqzu|pxb’…sy|uuxtbst†xxp}y‡|s{urx}o}”v‰srzzw€nurzŒ{pzwk`…x|qm€qy‚y…|ƒŒywr‡totsyhm€pvvf~}tˆxqum€qypvust™kxvpdst…inpspƒsiwxws{nfw€€mzv}vttluquntzronwrunsrv{xstsxv}pwvqxyuvtux€wwxq…szuwtv|mqoloq{}fu~nwhpvwswus€‹v|u|…xwzwxrqg‚~syyviz‰rov„u–„wzuq”qywzvŒrˆˆzx}vsxrkyszxvwnty|~kzvq„t}jz‰y‹wqw~zpvrr{u†pd€{ur€o~q{‡‚›|ˆŽvvo…yvtrwkmqy}woŠtŠ‚suo†r€swwuužrxwqnuuƒlpwuq„wrz~{v~ply„€rzz{vvsqqsxpqytrqxuvqt€{x}xqvutwqyvryyzxx|uxƒyzus„w|xzx“x~nonsor~}ms~rxlpwzsxwrŠw|‚t~~Šw|{zxuŠ~…‹†‹ˆŠˆŽŽ£†ƒŠ‚y‰€x—”’“–‹Š~Œ—‘|’›‡‚t‰€{އw‹xyކy”‹™‡‚†Œ…‰„“}†’¢‹‰‹t–Œ‰‹‡u˜•x~„t‰~z…Œ{ƒƒ…†|ˆŒ~z}ƒ–‹‡Œ~£”‰ˆ€„}|ŠŒˆ‘y›…ˆ‹‰uŠˆ‡“vŽŒŠ‹‰}{Œ‚ЉˆŠ‡Šƒ“”‰‡‚ŠŒˆŠŒ{ŠŠŒ€|Ž{‰ƒ‘}‘‰„‚€‡“…ˆ†ˆŒ„‡~•z†u˜‹‰„ŒˆkŽ„‰ƒ€z‘‚‰›“w‡…‰z‹‰Ÿ‘‰yy€‘iŠu‰€‹†‘Š„Œƒ‡~‹…’Œ‹„v‹r‘‡Š…—€–›‡y~y‘xŠ„x”‘‡ƒxƒŒ‰‰…™…‰Š‹„}ЉsŽˆ‰…†ƒ€Œz…„ƒut‘~‚„Š“”“ƒ†’†‚Š‹„˜ˆ…•†zŠ…Œƒ‡‰†„…}ˆ‹‰‰”œtˆˆ’|‡„sБޙˆz–x’”‰zˆ‚†‰Š“›ŒŠ|”Šˆˆˆ‘ƒˆˆˆ€ˆ|Š}‚—–‹‚‡ˆ€}~‚Š~…”…‡~‹|n|‘Œ‰‰y‡|…~‰‘xŠƒ|™€|Ÿ„†{‰„‰ˆ„€w~~xu}ƒvt’ƒ€|}™Š„xwq{yxdŽt|~y{twŠ‚~{ze‡r‰wj}{y†wrx‡€}x}|€……zxy|…‚xj†|vw~x}|}‡‹•ˆ{tn}{tpxv†v|…~|…€~{p„ƒ‚x|~ƒ~ƒyˆ{{v}‰|l„z~{ˆƒƒ|‚„ˆ†‡~~~€€|gv}€t{|~…†{…v…~{u„r‚wwy{‚ƒ}}‰…|}†ˆ„‚„‡z{‚{ˆ{r…z€lz}ƒ€‡…‰„‡z…ˆxˆ„ˆ€ŽŠ†–Œr|–“Œ‰”‘—‹†…u{˜˜€˜£•Žƒ“Š‚w}‹“„ž€•ƒ…|ˆ‰œŠz†“œv˜‹x|˜‡†n“z‡ŠƒŽ™¤š…—Œ¡v‘ŒŠŽˆyxv¦‹‰|“”‹l}‰…k‹˜z‡ˆ|wo‰“•Ž|}c’…’‡|‰€Ÿ‹–z‘އ‘‰o†Œy}†‹¡‰„—Ÿ‚‰’Š…‹Š‹Š‹©Œ‚‡‚„—„…•wŒƒ‚œŒ|vƒ‘”xz‰‚ˆ‹•”Švœ„ˆ~…~…n“™“‹–—t€Œx’z‹€ˆ…‡~š}›}’Žv…‚nŠzŽ‹“”—v‚~Šr‡~‘£Ž~oz¥™„z’„œƒŠˆ‡zœ~y–Šrƒ†¸•œˆ›‹‹{„‘Ÿ€—Žjsœ|Œ z“šŠi‚‘‡‡Œ•…Œ–{t‹wއ£Œo|›to‘q–|…‘‘‹œ‹†‡›Œ—„£‰{ƒ‡š€„‹ƒ†ˆu„…І›‘m~‰‘{‹x„‘‰“Œ‚’†uz„ŒŠ‚‹„“‹…†€Œ ‘‚˜v}“ˆ„Š{‰Š|Œ“z…‹Š€„œŠ™„„„œ…ˆ‹“†tƒŒŒšŽ‘„j†‘’……“…{‡Ž‚‡tŽu˜„|‘Š„|“‹”‹}vs…‹t}zt}†wy{ˆƒw‘ƒ{{‚„“Œ}y‚r|w‚ur‰{}~€wpx{„~|yq‡u|xxŠyyy‰}†wz|€‚wxwz€xr|o‹‚xz€xww~‹ƒ“‡–}zyˆ|swuuuswz}tŠzŒ~zyq|{~w{|{z›|‚|x{zy‚ty{z|v}‚~‚{w‡ƒ|€€~}yywx|uu|{|ryzyy‚|~x~{yzƒu~zyy~}|}|{}†|{z‚||}Œ}ƒ‚wxzwz‚€tyw~wv|~z~~€‚„~€…x‚Šy€€€|nkzˆ’{szk{„nmx‡vzŒ„uyq}‹„wrvtj{|m™ˆys|urysnr`w€uwq}„t€fzsq‚r}i–wwsw{yozqu‚yw‡‚ub€|vo€ovoz~}†€”qws€zuuu{inq|}wb|vƒ€rvs†q}rvutu˜lxsnftv…snnso‚uhysxu}mfumyw~utpprqvnxzsoutuuptzy{vsosu{|rwwsz}yvuxtxu{sq…t|vuvŒv|mqirmoy~jo|rwpowxpwvt†wzt|{Žxxwvwspƒz€}v€€}ˆ}zšb€szr†R|†™ž{s…|‚‘¢w}„‚‡vwt„‰[€ƒ|xv›|—y…v|yjr}c•ƒ…mwzІ‘xŽ…‰ŒyŠƒ‘|•ydŒ‚}|k™ˆwŒyzŠnzƒ…ˆƒk~j|‹‡x~ˆy{‹y„ƒ€–Љx‚Œt}|~}p stk|y~ƒ{Ž„mzƒŽu€ˆ‰vyŠw‡j{‚Žv‡”x‚~v–z|ƒ€‡|q‚z€ƒ‚jhŠˆ‡†ƒ„“v‚†ˆz‰}ƒxƒyˆ†z„‚w…|x†‹‘}Ž€…sy‚Œ‰w}w‡{Žrm™tq~zt~†vj™q‹{‚w€‡~txsƒ€…y…Zy‚…{i€„avyt„„|Žv”€†Hƒ†r{~~€Ÿ‡‰‚xy~j~nƒz€œ€z‡r[Žz“ƒŒˆuƒ‰ƒ˜Œ|†m€’xq‚r}ƒˆ‡†ƒ~€fx†}‘{{u‚Š}vw}xxxŠx‚n^rztjxˆˆl‚Ž˜v~~xlzŠ{†–yry†x†{ƒ~zŠxttƒ{m‚|‡t‚{}‚zwwy}zw€jpz|{~‡yvyq—t‚†t{v†wixsqzwˆu„r€oyywsv“zƒcv‚x|€ur}vzr‘‰‚}uvp{qlv™qy‘zzxr‚Œ~ko|u~y}e‹‚yz|wuvti|mwxxxsƒ†Œw€nzyu}u}lw™woy|y€purt‚ywztc{zq€o}pz{~}}„uyuytrss{jn€r}|va}€y“zrwtŠrzrvvuv¥mwupftw„mppto…vezxyv|nhv‚pzx€vtrqtswtv{tpnuvvrvvz|wvptwv}tyxtwxzwvqvyv{wqƒt{xvw’w‚|nsstoqy~jr}susqwxqxwrx{‚t|}Šwxxwxtwosˆ‰wumjyikvŽwzˆxzpxŠŽvpyo{t~e”…{{|vtxsftkw„uwo~†zn{uo€ro~žv‰wow|x~ovqs‡zv‚€qb‚zxp€p}pzƒ~†}ƒmws~vqtrzin€p|}w`€w†€rvq…qxrvutu›nytofuv„ompso‡ueyzwu}ogv‚nyw~uuqoqqvvvzsopuuuqtxx|vtpsvw}rwwuz~yvustxv{tr…t{vvv•v|mqqpmo{bq|rwpovxpxvr„wzt||‹xxxvwsŒ{ˆ”Œˆ{Š‹’Šz€Š€y‘…‚€|Š‹……s„z€~’€{|{}x‚މ†ˆr}†|~~‚€‚ƒƒr{‚†„‡„€{{~uƒ}ƒ~y“„ƒ|„ŒŽtƒz„~y~zˆz†€}Žœ€‚ƒƒ‚z‹ˆ†~…„„‚†|†}‚|„…}l‡zƒd‰…„‡…‡€‚‡‚„…ƒ„„n~ƒƒ€z€„‚†‡‹„†„}„‚‚x‚{z|}~†…„…†…ƒ„†‚ƒˆ„‡ƒ„‡€€~‚€…†}{ƒ†€…r€…„‚„ƒ‡…††ˆŽ~…†‡‚ƒ’ˆ‘ŽzŽŒŽŠ†ˆ‘~Œ‚‰‡‹‡€|ˆ‹–›˜ŒŒ‡|—”‹†”Љ›„{Œ€‹‰|Œ‚w†…ƒ~Œ‰}”‡“‘Œˆ‚…Ÿ‡zˆ“|‡…„‡uƒ…ˆ’u~yŒ{Št‰€ˆ|ƒ‰{~‰ŠŒˆ~ˆ”‹Š}y‰„ƒ””…“~†‰‘‘~ƒŠ}~ŽŒŠ‚z˜‡‘Œ~†‹‰”‹ŽŒ‡~Š“‰‡Š„†€ˆŽ…Š~Ž‘‰Œ‹ˆ‡z‡“‡Œ”Š“Œ~‚Œ„”€•…•‡†‚„ƒ€ƒ€y{Š…„‰ˆ~Š’ˆŒ˜Œ~•…~Œ“ƒ‘‘k’„ƒ€}–šŒ—Œ‹…’w‹z‹v‘ zƒ‘ДВ‹š‹ƒ…””ˆ˜Œ‘ŽƒƒŠ†•Š‘•{‘‰u’xŸ‰ƒ{žp‹ƒ¢¢•ކ|“{‰Šƒ€‡€˜xŠ‚‹ƒ„s€xŒ|{‹|„†‰‘„ƒ€‰‰‡~‰~|Œ‰†{~‹{pšƒu–ƒ†z’Ž‘•’w~Œš|t“–ˆŽ®‰‰‹ ‡‚„}wŠ•…‚†ƒŽˆyއ’•†„žŠƒ|–|tŠz†‚ˆ–ƒ†’†’v‹}…‡‰‹‰•…•ˆ‚Š•|–Š€ƒ‘}„†ƒƒ•˜†s{‚‹—~††‰Š’{’‰…‚‚…„„€y“žŽ™—ЉЅ•Ž‘€Š…•’‹ƒ•Šƒ{Œ‡y†€‘}†•„‘y„…“‹•Œ‚™“|……‰ˆŠ‹s‰Œ‚t‹ƒzˆ…€sƒz„ˆ€ŒŒ|†‡‰~ˆ€w‚‚‘‰‡„|Љ‰€Ž~‹|vŽ“…yš‡†™ˆ~…‡Š‰‡‹†‘~Š{…‘’ŽŽ‹ƒ~…~ˆ†Œ‹‡w‰‰’Žˆ„ƒ{Œ‰‹‹‰ŒŽŽˆ‹{|{…Œ|Œ…”‰‰……€‚€‰ˆy‰ˆˆ„xŒ•‰…’†…||}ˆŠƒ‹‰—ŒŠjŽ„„ƒ‰€tq|v‰ˆvvwlz„vov…{t“„yx{u”†vt~uvr‡j…‰ys{vxxrc|pxƒxxroƒ€{oysq„s|mzw‹unx}{€owrv‚{u{{scˆ{xr€ovqz‚~“~†{ws…urtqvkn‚p{}we‡t—xrunŠr~qwvtv˜rzvrmsu‚gpsur€wh{}{w~rjwƒ€rzy|vvsqurxmnztrqxuuruyv}yrtuvw~oxvs{{yvxvux‚x{rsƒxzxxx†w}oqotpr{~mu~qzqqvyrywu‘y}‚t}~‰wzzyyvމ‡ˆ‡‹…’‹Š…˜{‡z…q‹~Œ†}˜‰†‰„ƒ”†›•ˆ„o|†„Œ„‚—–}’‰‚|{‡|‹€‘€‚‘Ž”}Š’ƒ–††‚‹ƒˆx‚ŒwŸŠŠˆŒŒŠ{t‡…|w‡Œ’€‡Ž‘yyŽˆŒ€z†‡ˆƒ‡ƒŠˆ}’~‚•{‘šˆ‹’wŽ•y‚ƒ…–‘‡Ž€’‡†”x‹zˆ‹„‰Ž’‰‡„‰‡ˆˆ•’~…„‰ƒ…}ƒŒƒ}„zxˆƒ‡}‡Œ‰€“‚‡~‰€{ƒ“ —‹‹†w”}Ž}Ž‚‰„†€…|„‹‚…Š~‰x‹†‰‹–ˆ…ŠŒ~{zŽ~‡~ŒŠy‡ŒŽ~”‹ŽˆŠŠ‡—ކ†’… …“™ŒŽŽŠ{Œ…tІ‡}ˆˆŠ–|Š™ŽˆŽ’‡’ƒ}„¦Ž‰‡‹u…Ž£‡t‚~yšs‰z‰}‚Ž|~–‹zŒ‚†v‚Žz„…“‚Žˆ‘z™œƒˆ|€ŠŠ€v„›Ž“}‡‘ŽŒ‰‹Ž‹‚ˆˆ‚‚‡‡‹‚|ˆ•y…Œw‹ˆ•‡y‹†‰–”€†‘Œ€…‡‚ŒŠ‡ƒ’‰Ž…€†•u€ˆŒŠ’‘ЇŒ‘‘–’†“‡‘}•‚“ƒ‰—jŠ„„“w€j…y‚~{u‰€t}v¢mwzw‚†Ut“›‘”€}ˆ}€Šª‰ƒ€ƒs‚•ŒyVrw›y‰}Љp‡rfqzf‹~‡yyq‡‚‡‚”tŽw…Š“‘}˜xzp—‹|{w’uwŠxv€oy¨ƒ€„‡†‡y|~ˆˆƒ~–}„~†z†‹†€„€¤ˆ‚~mxŒw|ntŽƒtp§x‚oz†€~‚Šˆ}…„ek‹Œr‚…‘|x‚o‚y‰y†t™|‹~uƒ‘|x„Š€ƒfu‚}‹ƒ€€›…‡~~†ˆtz†ƒ}}‚}‚„ƒ„~y‰–x‹}…|†€‚‚‡v†w’ŽupxŽ‚|wtjy•okyˆxv’…vzv{Šˆvqxu~x€h•…yy}urwsiznx{uwo~ƒƒzƒoztqu}h”vvow|y~oxqx‰zv€|paƒzxo€oqy}~ˆ}‘txr|otsszio€q~|wg}‚t†qvs…q|rvutumzspetu…rntso…tlyywu~ofv‚ozw|utporpwwwzsppuutot{y{vtpsuz}qwwt{yuuqtx€u{sq…t|vvv’v|mpjomoz~cq}rwsovxpxur€‡xz‚t|{xxxuws{ŸŠœqxŸ…‹z}€‘†™…rvœ•vtˆd’}Œz‚‚“Œw’x·”’~xj–‹‰›Šžƒ›–‹Žˆx—ž‹|}…o†‡‚”yŒƒ¤‡ŠŠŒfƒƒ{l–€}wy“†o‡…`~c’†{‹–‚…wŽ‚”“ž~…ƒŽy…ziœ}d‘‹t…{‡|”wŠ«‰w}ƒ€‚ˆ“ƒt‰}‚xƒ‡…”{Šš‰n™‘‚‡…y†ŠŠ€Ž¤z…Ÿ—‡ˆzš‹‚ƒu…u†y‰y›ƒ“m‚™ˆz|xq‘›œwxx†Œ”zˆvw“‹•ˆhz{‡z‡uƒa~~‹‰d˜uš{€|ws˜q”‘šš”„Ž|ˆ†„}‰Ž“ž|nv‚~Šs‡‰Žƒ‚›…މ’‹‹zœ‡uމ•…“‡‡“ƒ—£~~Œ”m|‚€‘Ÿ„}–‰•pˆƒˆŒš{Œƒ…ƒw…ƒ}‘„œn˜m‰{ws—ƒ›{ŒŽŒ‹ƒ™“’އބ£w•ƒž}‰y…“‰’†€“yŽ…ˆ˜žƒ iz‚zŒ…x‚•‹—“‰…†ˆ‰n£‚‰…ˆŠvŽ‘ˆ…ŠžŠyw‡Š††zƒ”‰Œy‚z†ƒuŸ}‘„™…ˆƒŠ€€Ž”†˜ŠŽ…j‡’x‚•‹~€…‰n‹v…Šu}ƒw…‰”–…’ކ““{Š’†|ŠŒ‹Œ†‚|}„Ž…˜‘‰‹ˆˆŽ›‹“š…•‡…’Žˆ{‹w‹‚…’~‹‡Ž~ˆ‰‰’’‹š}†ŽxŒ„ƒ…u|†‹Ž“t‡…z€zsŠ€~€‰~Œ†‚…މ†ŽŠŽz†„„Š’ƒŽz‚‘Œ}€‘|€ŒŠ|–Ž‹›ˆ|ƒ‡‘Š•…”Ž……ƒ…•ˆ‡“ˆ‡}zˆ’x‡x‹‡Œ††z‹†‰“‹Œ™ŒŒ||}„ˆŽ€Œ~ŒŠ…Œ…€Œr€‡‡’ˆ€u‰Ž‹ŒŠ”Ž’Žƒ‡‚‡~‹‘‰…j”„€„‹…|kmŒyw}xwu|„uxz”x|}v‡‰{{€{‹k’|~{wzsl{ky€y|x‡…‡‰d{|x|s}m…zˆyqz}{syt{|{…pth‡}}u€v~v{~~…‚†…zz‚‚rxt}ns€t…wp|€x‰|uzz“v|u}yvx¡ttztjz{ƒwrrws}zq||zw}oo|ƒqz{yuvsrvyw{|vrtxuytz€y}}{yyw|{~sxywu~{y|~wz{}ytƒu}{xyy‚~qtzwqtz€kwvyqvxywyxsƒŒz}ƒx~„{z|yzvye{€€}wsty…onv–pxŒ„~zt|’u{v~w|j•„{z€wuxsr‚uxƒwwo……‰€€ozvu{s}m~’vˆyov~{pvsz‰yy~rvfƒx|pn€qyt}’~„„|xs†{vvszjq~p}uq€€x}syuŒr}sywvw£oqxnhxw‚iosun†yl{tyt|lmv‚€mz{~sturwtwq~{tnrswxpw€|z~xvrtz|}rxwuz}zyvxwx‚y|vp†s{yyx—x}nqxsnr}|ot~syoswyswus‚…x}€v~‡wzyzwuŒŠ‚‡‰Š|™€†ƒƒ€‰‰v“ž“Ž““’’‹…‡™“ƒ~‰‡›Š“‹Œ“xˆ„{‰ˆxŒ†‹xwŠ{xŠ™‰……ƒ‰†–~‡‹©Žƒ‰Žs“‡Š‹ˆu™Šy•‚“sŠ}z†~…”ˆ|‘„Šˆƒ‰}{z„ދД}¥˜Œ…€ˆ|qŒŽˆvšŠ…Š~ŠŒˆ‰l‹‘Œ„’s‰ŽŒ“ŠŽwƒ‹…‹„‘„Šw“˜‘ЕІ}ˆ‰‡‡“‰|ƒŠ~z‘|†„‹‰Ž’…Œƒ€•ƒz†ŽŠ’‘‰Ž‘‘Œ’…}‘|…x•’ƒŽŠ‚Œ’j„‚ƒ‹{Œ‹Œ“}‡‘‡‡‡u}‘€Œ‘ƒƒ}€€ƒ–•”ˆ‹…‰Š—‘‰Š‰œ‚Œ‡„ŠŽ‹{‰€vˆ€Žž‰ˆŒŽ•‹ƒ†™‡{„|†…„uuˆ‹Ÿ”t‰ƒz‚v„rŠ~ˆ~~Ž{‚‡„—~„Š‘}|Šƒ…•†•‚{|‡†|‘|„ˆŠ†{•Žœ‰|ˆ‹Šš†’ŽŠŒ‡…ˆ††‘ŽŽz€z‡™x“†‹“†Ž…‹x”‰…—Š›˜‘Ž}€€†”ŽŠŽ‰“o€Žˆ†’ŠˆŽˆ–Š“„„‹„†Ž}‘ЇŠj’„{‚~‡ƒ†…}…n|{{{~u}zz•‘~}y‚~…}|Œ€v~{swutƒy{€wyxq‡wo{zy‚t}q{˜{Šzsxƒuv}|yt…zoŠ€zv~r…{|}†Œ~…’„yoŠtuyuupu|r~}wz‰€x”‚xzv‹|‚v}{{{¢xutw|yƒvv|{tw€zx|~rx}…„u|‚€vy{zz{v|}yvxzz|u{ƒ‚‚|w{y|r~xwvy}~}{|z„}zw„y|~}‰}‚‚tuuƒtz‚~~{‚xsw|~y|{{„{ƒy‚„u€‚{{|…‰“~‚s„•‰}z™yƒ‰{„}uk‘‚||xƒ†ˆ•u{~tush~…{}uzzu›zŠƒz|€v€v€†‚©…syƒ‡ƒy}zv~{†‚y‚}w~o‹}|z‹”ƒŒzhŽt‚wwuw„p†{s‰”~€˜y€v‚‹z„€œwq†s€€ƒyy}€so‰r„W†~|p‚‚†r|‡qwƒ‚~k‡{ryx~„x…†“ƒ†z}~…€v€wz}}…ƒz…„~‚x…v‡‚†€‚†xz}x€ˆvƒ†~„}~€‚‚}|Š’|ƒƒ†‹“z…ƒ‡|~™“Š‘‘ˆ…Œ‚‘—‹€…€r~˜¦~Œ‡ˆ}—‰•‡~x‰‚›œˆ†…®˜ˆ„ƒƒ“–z˜ƒ…t™ Ž{{•Ї•’„†„ƒ„‚’‰‡€Š‚ŽŠŽp–‰oŠ~o‡tˆ|•€“‘”ˆ’‘œ‚‹’{z“„ŒŒtŽŽ¥Š–Ž—Œp”‹Žuy‰†–”‹Œ™’ˆ‘ˆ‰Ž‰†ˆ‡„‹““„Š‘‚„‘wŠŽˆ˜€{‡ˆ€ƒŒ{z“{~{€”…†‰yŽ€†‰ˆ„}{|•Ž‹œ…š„t‚‘‰“Œ‡ŽŠ‚“ƒˆŒ|‰‰‡‘Œ€ˆ€~‚„ŠŒ{x‘„vwrvƒ‹rr~œxmœ|{€u—†tr~vxt…zfŽq{}t{stˆs}~|~ƒfqxuj|zyƒrvt€ƒy‚{ƒ…xryx€wg‰€u†w~r‚{|„†ˆyq‘rv{spwy‡t‚€|˜}|„v}zrŒ„w|~}•‚}ƒwˆzzv~…zm„m€}Šƒ~‚„ˆ†€‡}|}€{ds|s{z~…‹{…‚t…}zrƒr€vtyy‚ƒ€}}‡…z}…~€ˆ’ƒ‡zz|z{ˆ|p|…x€hy}ƒ€€‰ˆŠ„‡y…ˆu‰…ˆ€€tn}}‘{xvq|ytv†‚s“„sw|yƒytxtpxŒkˆ‡vy}xqvlrwpx|u{tozzu~hzunw~h{yƒvsx{yn{r~zuƒ†qd…}xvpxp{€{‡~~‘yvwƒfqvvvnnovxwh„€tŽ|suquuvuuv—nvuumvs|rptwvzzpv|zy}rn~ozy~wvuvwsztquwoovsvps€}yzyprqw{qyvsqyzvzpu|ƒz|uq…u{xzvŽw~qrpxpo}zot€ryrqvxr{wu‚Œx|}o~‡v}z|zuŒµ}¥£]‰uvŽ{¢ƒ—›ŠŠ{qw•žŠz‰€‡’—‹™‚”nŒ†”šˆzqŒÁ†‰œŽx—€…•Ÿ‡^†ˆ‰~“…Œžƒ„w‘z|‡”„†|€†~–‡‹w‰h{ŠŠp|§tc“—Žx‚…uy†Š†y„}“h”ˆz‹–€tƒ•ˆh‚§–Їމzqyz•‰„‰‚Šx…œƒ{Š~¢|ˆ€¥Œ†¢Š‹Œz{œ†|{t‹Š—‡|p•‰v‚‹~}xš|Š{€’”‹{…ƒ{w“€†y›š‚ƒ{{|Œ—}Œsmy…wƒzŸvˆ•~v‘y€†n’ŒhqzŽˆ…–|wƒ|‡’{†o… žŽ™kˆˆsœ†…‘…”rŠ–ˆ‹‡ŒŠ…Œ½ˆ‘‰…ˆŠŽz™ œ}¦Ž™}uc‚˜„j|†”qމ}˜i~‰•‰¢†y‘™‚—j˜•†o‚xžvr•†nŠ”†v­‘˜ŠŒˆŠŒ¢z‹|’…ŽŠx‚‰’ŠŠk„³ˆ“¦€–j•™tzvŒ‰—„‡…˜£iŒ‹‡¤˜‘ˆx‘vt…Ž|‚‹x…ƒ—{{f}„‡‰{~‹€}|Œ‹~‹{w‚Œ~zƒ‚”‚‰–’Œ…o„|ˆ€’}{„‘~‰›…Šwƒ…x€“Š“ƒ‘‰Ž‚|‘’‰{“„€‚‚‹‡‡ƒ€}‹‘‰˜š•’ŒŒz›“ˆ…ޑЛ„˜~“ŠŽ‰|‹†xƒƒ…|“Œˆ‹|•„”‹Œ“…‹‘ˆz‰’ˆ†‚‡u{ˆ”Ž‹u‘‹{‰Œs‰€…y…‰{wŠˆ‚’‰•†‡|z‹……•„~ˆ‰’€Š~z‹ˆ|yš‹†“‹~ˆŒŽ‡z‹†„Œ…–…‘€‰‰…‚†ŠˆyŠŽŒ‰–‰‰{†‡…‰„‹‹Ž‹|{‹}‰ƒ†ˆ†~€•zˆŠ…’‰‰„‹˜ƒˆ–‰‰‘}Š‚’ŠŠŠŽŒ—i…„ƒ€Ÿž Ÿr™}ˆ’€Ц…zopš‚†t‡…Œ’’…•‰Žƒ†”ކ’zŸnŒŽˆ™‡Ž„¡¡{ƒ|Š‹y‹•t–™Š“—‰Ÿ‰…}‰˜’ys„r‚”Šˆ‘…ža›n‡z~zq”—ŠŽ”šŽˆƒŠ•†‰ˆ”y—Š‘ˆ…‡oy”ˆŸŒ}ž|‚’}‹›”Ÿl}‹–z‰r‡™ˆ–““y›ˆyy…‰~Ž‹u†”‡Œ‡Ÿ“‹wކƒ„Ž~‰¢ˆ„Š—|w‰}ˆ‚t¥€¡€£‰~s˜†{}ƒ¦Ž‘‹}m‰‘މxއ„…sm‡‰z‚Št}€qƒŽ•ƒƒrƒƒˆy‚•…tzuxxˆƒƒ~qz–‰ƒ‚|z|‚‚…“‡~|}rssl€‰„ŠvzprŒ‚}€zy|}xd~šzxv………wƒxu„y€„uvw‰|xu~k‰zzr‰…‚|‹zhŠtxƒs|rzoƒ}t}Š{’†y‚~Žz†{„~~€”wj†p~€}uz~pnŠn„Z‚zxiƒ}…ny‡}puy}ƒ…€zm{r„t„†”~†}z{z…‚‚u}vzw{…~€ƒw„„€w‡q…‡‚{‚†vw~‡t~„t~†}„l}~zy€†Œ|ƒ…‹‰wˆx|rzw€~‡|zss{vqlv“v‡{yuy‰vq|vtwh‰‹yz|xwzsa~ovˆ|zx{x}}^|vq€s}u{Žyvuy|{€qsss’{v{ke‰{yr€q{p{…}’}Švwtˆpurvmmr{~yq…}z†tur|u{sxxvv rxvqlsvƒprsvrƒwoz}{w}qkyƒ€s{z€xwsrosxluzusuxvwtu€zw}ysuvux~sywuw~zxx~xzƒxzws…yzvxx”x~pswsqs}~ks}ryhqwztzxt‚x|‚t}}‹v{{yzv~r„ˆm{}py„s}x}|s{{zyw“†y|x|z‰r‡…}wzuvtq‚{ywyt{z~ƒozywƒv~p{Žzƒzqw€~s{u{“|yw~vl†|vt~n…wz~„Š}†xnŠttytwns{ry}wx‰€v|vyvšv€u|y{y¨wt|svyx‚vtxys|}x}~{~ru{„‚s|€uxxwzxyww|xtxyyzsy‚z€{tyx{}€q|xvvz||{|zzƒ~|xu„xz|~|‰{‚rstxrwyyw~nuz}xzxv„Œyƒx‚Šv}{yyssƒŠ‘y{xm{sovy}yކx{w{‡—ƒx|uww€nš‡yw}vuutl}sy†vwr€ƒyhytsqi~ˆu‹wow{yoyqq‰ywxob„yzn€o|qzy~}€’wyrƒsxvs{il}ry|tmƒu‹€rvqŠp{rwusumwtoeuvƒonpsoujywwt}neu~nyw}utqppqvnw{ronuvuptyx{wsptv~|quxvy}yvuuuxu|rp„tzvuvŠu{mqhsmpx€hr|syxpwxpwun‚Žv{t|{†wwwuwsuov{Œ…}xsx„rlx…wƒ|yzw‹…†txvvv„j‹Šw{~{uxog|q{zvyvu~ˆ{i{tt€tk{‡xŒtsy|z‚qvsy{s€„od‰{yspzpz†||‰Ž{wt†srwtump~r~}xk‚~uˆtupƒt}qxwwuœtwxtmwx}tozwryqx€{x~ro|‚‚r|z|wwutssynrvvtvxquuu€}x{{qvut|pxvsv|zxxxvz‚{zxt„wzwywx}prprpq~~ktszlqwyszxp‹x}t~€‹x{|yyuzzv†‹‹yvuky…sqwŒ{v’†xzv€‘†vu}uxu{i…ˆzx|wwvtf|rv…xzsx€y€ozutƒt{o}“x‹tqy}{pvrw‹zv{|sdˆ{wrp{sz€€ƒ~}‘wwszmusxlmq}}xiƒ€wzswrs{rwvvv¢qzvqjtvƒnpsur}wky|zx~qjx‚€q{zvvsrtswruzuqowuvsvxx|xvsuwx~qxwvv|zwwxvyw{us„wzxxxŒx}orruor{is}syppwyrywt‹x|‚t}}Œxyyxyu‹Š‰ŽŠ‰“‡Ž‹•‰‡„‹Œˆ‹…€ˆž–‰‘ˆˆ‹~‘€˜Œ‰‘–•ˆ‘œ‡ƒ‹ƒ{Ž€uŒ‹}{Š“‡‹‚‰ˆ‹’}ˆ—|„‹~“‡†‡vŽˆ}tŠ—yv‹sŠ|‘|~{œ…ˆ†–ŽˆŒ‹zŠˆ‚†Š•…Žz‹ˆ–‡|€‹|…Šƒ|}œŠŽŠ~}‡–‰’„•‰†…‹ˆ‰…€‚„|‹”vƒŽ‰Š’‰ˆ‡ˆŒ…ˆ–Š…š‰Œ€}„‚Šƒ„ˆxŒŠƒ†}€ˆ~…{‡Šˆˆ‘‡ˆ{ŒŽ†Žˆ’’’…Žƒ…y‹‹€Žˆ{„Œj…‡ƒ‰z•€ztv¯‚„ˆ­¨¨†e Œvt‚‚z|…†~‘o¤‹……k‘Žtˆ†¦zr…"‡•¥…{­ŒpŽdpqw‚„‰ŸŠ ”Ÿw…q{ЬŒs‹~§zs€Š†x„Œƒ†y“{’u€‘™ƒr™”§•y[z›Š|‹lœ^™z¢s‚˜z‘¡s„‹sbeŽ¡}‚Œw}{‚r’އˆ’Ž•‘©n{|ˆ„ˆ„w–x€}vpu{Œ•€kˆ—w‹m}y}ywŸ†w|ƒv‰t‰{‹’˜ŠvŽetŒ[˜Ÿ˜Š†Ÿ~†qjzr’ˆ“ŠƒŽ|f…w¨nez|ˆ•œ® ˆ‰|‡‡”Ž•x‰”‘Œˆz……€†~Ž€Ÿ”Ž‡Šˆˆ†‹†„’’˜‡††~~ƒw†„†y•…†{v‚ŒŒŒŠ‹{Ž~ƒ’sŠz‡{Ž‹ˆ}‰y‘ž}qztxƒ‡ƒ~’Œ†€Š™ŒŠŠ‚‚‡€˜‰Š}ˆŒ‰ƒ}†~uŒ‹Š€}•‰‰}†„Š~~„‡‘ƒ…‚‡’“†Š|††ŒˆƒŽz’‰‚‡‹œ’†Š“’–†Ž|}ŠŠ…†††w†‰‡‘‰š€‚ŽŽ‹†ƒ‹|ˆ‰’Œ|’‡ˆ…}v‹’x‡Šr„€†Ž—‰‹ˆ˜’ˆ“”–|Œƒ‰Ž…‰€Žœ––˜‚†Ž•–ŠŒ„…’ˆŒ|‡’†‚{‹~w’‰†‡|~™€~—ЉŒ”Ž‹{’žˆznŠ„‰v‚ˆ€ˆtŒwuŒsŒ‚Ž}‚‰z›z’—‘uŠ¢…‘~v‹‡‚‰˜†”{€Œy‚|}„ŽƒtŸ„Љ„“ƒ–“…Šƒ~”‹ˆŠš~†‡Ž€€‰•ƒ“‰”x†…t~‹˜‹•–‹ˆ––ƒ‰‚„‡€‰–˜„‘‘‡~ƒ…€…€…€~‰Š‡‹‰}ŽŠ‰‘Šy’|s‰ˆ€ˆˆ„}j„Œ€}z›‹€™ŒŒŠ‘w’…kŠ}ˆuy“Œ‘ˆ’}‚†’‹‘Š~|Œ’‡• ‘‰Œƒ‚v•†ˆ‹šŸv–€ŒwŽ’‹~~‚x‡…˜“””‘”Œ‡Ž”x‡’ˆˆw•†‚˜‰ˆ~w{|mœtŽyp‹—uŠŒ‰‚yœ‹ˆy”p’€‡’†€q…{”ˆ—w“š¥Žˆ’ˆŒn—w~Žƒ“‘„¨‹’~˜‹„„†‰ŠŽ˜–‰~’†{‡€|vއ‘Žzu†ƒ{~Š‹|zvˆ‚™wˆ……}‰y†ˆšŠ‘‹‰œˆ}Œ›}‚{€‰Ž…˜t‚Ž„›x}xm•€Ž“|oЉ„|}|’{w|•zvš}|}x“‰|{~wy†ys‘u~}vzto‡z|zy|zo}rzvp}{y„}€nyŒ€†{~zƒƒ„xxy‹xvˆvtƒ€xz€q}|€…‹‡…‰yrsw|tuuv‚s|€z†–}{‹ƒ||s‹~‚x€|}}~yƒvƒ}|{{‚x{„s€|†€~x‡…z~†y|€y~pv~}|t}{z}„ˆ|…€u|{{„txwz|‚}|ˆ„|}}„}€†€ƒ†xx~ƒx†z}„zpz}~…‰~ƒ…{„‡‹v…ƒ‡}€œ“Ž˜†Ž}‹“’†Ž{Іr{”tŽ…‡‰—€…Šˆ‚Œ‰‰~’¡™‰Ž‚hj{•“Š¢|šxt’{€ƒˆ‚–{އޖ”–™†—€z‘Š”q‡ˆzž‹–Œ£}fƒm™vƒyq…¬’‹…Œ|p•}œŠŒ€“p“‘‹|w|Ÿ†~”{Š“ ŠmŒ’y€’€˜•†±‘”~ˆŒƒˆ‚Ž~”‹{‹‰~•…v™‚Š•yƒ„ˆ~–Œ~y€‹‡~wƒ„…Ž™z˜ƒ†ˆ~‰…œ…šˆ}™vˆ}ƒ„„އzšvŽŠ˜xi”“‘‡Š“¡˜Ÿ‚†y‰“¥ƒ ˜Œ‚nx¦ˆ”z‹‡ˆ‡y—‹–‡x‡–‡¤‰v’zw†«‘‹‰†ˆŒ‹›{¨¬ƒ…xƒ£™z~s˜™‡q}{³™Ž‚Ž™Œx‘s…•Š‚„zy”’q‡t£‹–m‡v†vplƒˆ‘¦ˆŽz”Š“†Ž‡‘œ||‚‹‚y„ˆ™—Š•oŠŸŽœ‘Š“j‰—z}ƒm‘Š‚— ‚}xx›§‡Š„…“t‹Œ‹z‹€ˆ|‡…ˆ–™yw—ˆ—zzš€‚Œ…£{•’•{ššx’wpm¤‹’˜f‰’‘|‡‘•ƒ…‡‡z…u‰™‹†„u|‚{r‘”…„Šww’pwsƒw”uo‰€|}|€‚wˆl„|o~‚y€j¢„v„xsu~–€‰‚|†‰…}†€l{tz{yqw•~s…~zr}„Š~yr‹~|l’€}€|w‚~|yŠ|…yw{xq€‘‚}uy‡y|„†uy€s‹x|v€‘€{w{yv¥~~xthwl~rwtn}lv‡tˆxztƒƒˆ~{z}r€y|uzv€wizkx}sqrtoŒ~up{i|{mvyŠˆ}x}xqsz„{zw~{tv’ttx~su{x{ty{{‰wwyu‚xxy‹||†zw€ty}tu‹x‘~€|€p|stux‚zt}€yu‚“ˆwtzy~qƒˆ}x|yuxtf„zzƒzyx{ˆ…{ƒ^yyw~x|s|y”xux~rxuxzxw|wi‡{xs~p„y{{„~„†|yp„ttxuxmq{r€{ws‡~{ŽvyuŠvuzxxx¤stzroux‚xstxq}u}w~z}nrzƒs{~uvvv{wyu{{wrwxxzty‚~zvwxz}s|wvuy{{ytzyƒ|{{tƒtz||{‹z‚€qtu}rv~}uw€uzkty|vzxyƒŒy~‚w€‚Žu}|}yw…f‰‹Œy}—z{xp|ztuˆ{…yu‚„l|}€}†u‚†‰}}~yzwq„{†„zyqqŠz~}u~x{…y~s{¢y“~|v…†x|zz‹}}xsxy~zy~pŠx}wƒ‰„~€Œyp’tywys{~s‚y{‹{}ŠŠ{€{z}…z€}~}”yo„nƒ|}ww‚|uyŠj€oƒ}{r„zƒ†s{†}s|€w{‰~€|us{~€y…ˆy‡~x}}‚ƒu€xy}{€ƒ}vƒ…zx…w€„ˆŠ€ƒ†vxzv‚„xo~„z‚o{~~|…„||ƒ‚}…‰v€€ˆy}zxx}~„x‰q{s}wv}y‰|€}p…Š{v}€oƒt—†~z~zzyxm}uzzw{‰‰|ƒZ||z}{}t—w•{qw„}s}u‡|{Šytl†|~t€p†v{€zƒ€}zuƒp|u}mwztˆ}wm€{ˆw||‹u€w{yzz©rp|rpzz„ruxq‚~p~}|z|mty‚‚qz~ƒwuxwryz}{}wqzwz{tz‚€~€zwuw|„€w{zwsx}|y€zz‚|}{v„u|}}|‰{‚€rv|wpv~vx€x~ov{|vzyxƒƒzy€ƒ‹x||~xx{’pŽr‰†~|~xzww{~v‹{z€—|}€x{}s{Ž€€}xyuiˆ{†||{…{„~Y{{zzy}xy™|ˆ{yz„v{w}zqzvpŽ~yx}r†y}~“ƒ„„zrzz{tusw~s„~z€‰~|Œ{y|u{€w~{€{œzv€uyz{|y}|u‚|~‚~t{…„v~ƒƒyz|{}{|v|~{xx|z}w|„‰|‚~x}{}z‚sxyv{}€}z~|†}}yƒz{~‚~•~ƒƒuw‚‚w{„|}{ƒyny||}|}„…{ƒz‚†‹w€ƒ}|ƒwˆ‰w€ˆ}}€}uz‹uw‹|…|w}—ƒ|~‚„‚€‹€w}~wzum‡Š€„z|~t’zƒ~y}zyv€q{|~wxƒ„…x}yz„}|v{„v~yy}r„{}zƒƒŒ†zosuxuyr‚~w‚|~Œ„{v}~„z‚~~{r„u„}xy€us‡rƒk…~|qƒ€……u|‡~ux€z€}}‚€|vzz}‚w…~…x€|{‚u€wz|~€ƒ€€{‡…}{†x€‚‡‚€ƒ†wy~ˆx€†z{€…|‚s|~‚€}}€‡‡}„ƒ}…ŠŽx„‚ˆ|Œ„…€{‹€•Ž‚‡Š€‹„r…zŠ““y•†Œ‹€–‡™Œ„‚Žž„“”Œ‘ŠŒ…{‹…v‹…’‚{‡~ŽyŒ‹˜Š‡“†Š€~“Ĉ‹‘t“Š„•‰t‹z€˜s‹}Œ}…‘~‘’Œv†‹ˆv‚~{x€‚‘ŠŠŽ|¡’‡€‰|z‡Œƒ‰x™ŠŒŠ|ŽŒˆsŠ‘ˆ†‚z‡ˆ…Œ‡††‡{‚‡™ƒŒy“‘Ž•‡‰|Ž‚ˆ“–†z‹ƒ{‚~‚{{‰Œƒ€ˆ~‰“ŽŽ‹’ˆŽŠŽ†•‰‰Œw€‹ŠŠ‘j†„…„–v~Ž}Œm‰Œ‹Š}~…wƒ‹|…z}“ˆ‚‡†ˆ‰ŒŠ€“ƒƒŒ˜’™‘~…~x‚yr˜Œ}‚šo•›‹‰œŽ†ƒ…‡|‚x’Ž…‡p‚‹ˆ˜‘s‘’n‹ŠtŒswˆ·qsv‚‡Œ††|†‰tuƒ|ˆ‡„xww’£”wŽˆ‡„l~„Œ†‡‚ˆ‘^}•Š}€y|y{’œ‰–ˆp‚~z‰‚š‚Žv˜ˆ~ƒx›„|ƒ…•k‹Š’y}‚…ƒ ’š}‡„‰ƒ˜‰~˜ƒ„’~˜ƒ‚qŒ}”ˆ•ƒ‡†s‡z‹vˆˆŽƒ…‚zo…‚w|u~}Š„•m†††{}x‚ˆ‚vŽw}|~’xr}…„x‚{€~‡‚z|~uzx{‚~yˆnŒz‚yx€€„ƒr~t‡‚~ƒ‡‚}xˆ‚r„}‡€‚€€w‡‚}ƒŠ……”sƒ|Š~yw‹w…ƒ‰“ƒ‡‚w‡„Š…€ƒ˜€†{‡{}|{„ƒ‡{mˆx‚eˆ‡‚„‹Š…}††€|zˆ…ƒ‡ƒn{~}~z}€…€…‡‹„…„|ƒ€x‚yv}|~…‰„„‡…ƒ€‡ƒƒ‚ˆƒ‹ƒ„‡†ƒ„…†{y„†€…l€„‡€‡…ˆƒ…‡€†ˆ„|І…~„Š–•ކˆy‚„”…}¢vzp–¡‹xŽ…†€‘„€Žpu‡‹}•ŽŠ‚z¡Ž™˜Œ„ˆˆx¹{ƒ‚‹”Šzx†„‹n}ƒ‘ˆŠ~’x‰ƒ€‘†ˆ‚w‡‹ˆ—v˜q„zžrt‰†ƒ…•‰‰ˆ“‹Š…Œ„‹l…‡„€‰†‚‹‘‹ƒr‰’Œ‚Œ^}‰|~Œz‰‚„‰’Ž€xz† ˆ|Ž–}€‘†{ƒ{œ|…z‡z…‡‘vw…€‚‚†}w„‰‰|€x†Š‘v”‰q”€”~{{ЉŒ‚Ž…„rr”†ƒr‡ƒƒƒŠ~€‡uz‚}…†rƒ‹„‡†ˆˆˆƒ€ŽŒŒ”‡‚ˆ€†ˆƒ‰~‹““€’•Љ‚ŒŒ—Žƒ‡”‡†‘”‹Ž„‡{…wŒ„‹ƒ|Š…yˆ‹˜Œ†ŠŽ“}ƒ‘ Ž†‰tŒŒ‡—t‘‡zˆ‰s‹~zƒŽ|…‘ˆ|‰‘……‚„Ž{~‚ƒ—‰Œ{•Ž˜†‰||‡Œƒ}{˜‹“ˆŠ‹Œ‰€†Ž‹Ž…Ž}„ŽŠ‡Ž‚‰ƒ‰’y“z‹Œ•ˆ‡|ކ†‡“Ž‹‘‰~ˆ‚‚†ˆ‚†„‘…‘…ƒ€ˆ€‘ƒzˆ‘ˆ’‰Šˆ‹†‘ŽŽ€‘‚Š|Ž•‹†ŒŽ”jŽ„}wruƒ„zw~mx˜smyrztŽ€yyy{˜zst|rss{eˆys}vxvse{hwxyqu„€z€mzsrˆu|j|‰wuqw{{pyru†zw{zkd‰zxq€n}rz{|}~’uyq}ttrxko€p}}wb„uzrwtŠryqwvvvp{uqiru…lprtq€vlzzzwrhw‚p{y|uvrqsrwst{tqtwuuru{t|xtrtv|}pwwuz€ywvyux€w{sr„w{wxw…w}oqloor{~ls}r{sqwxqyvvŽx{‚u}|Žxyxwytqjv}„ƒ{ywfyŒpm‹vxvwwЇrswz~t}j”„px{vsrwgufvuwsx|{ss‚vyg‚x“ssu|z}oysu‰t„ƒu_€z}u€ooy|zŠƒ‚Žtwy{ztvszjt‚iv{wfyu‚ƒuvpƒv~qzvsužmyvrjpyˆnqqsr€vg}uwv{nltz~iywutyuprurzsrosxrynx~zyyytvtrz|pvvmx|y{z{tw€|utq„r{usrŽv€|spjokrx€gw}twoouwwwtv€ˆx~u{€yy|xtsqwt€~Š}|umype~vŽ€{xu|Š€tt{yytrj‰uw{ztqpnzkt}uuu{……yqzsw„x|g~Œvrs{tv|muuv{k{{_†{|snmx~{€}zyutuwrxlr…p{ug{€v‘usupyw~nvuu™qywpgsx‡pnxpiwhwuwuzojv}„oz{|vtsnquuowwopqxszqx~xw|yu{sou}mvwk}}yyyuux|uvs„q|utxv€|mnishtxƒmw{tvtptxzwup†u€‚q{„Œvy{wztupqy~xssyunhƒ }xƒ{{nxƒ‡mrzzwxj”ƒuz|{rxykzppˆwxq~†u~hwwv}y|q—z•sqv€w}m|x{†vt‚q`ƒ€yt€p…mx}Š~ƒˆuwy|oyuxiq‚mx{wk{w…†pwvw~qzvsu¢nwzrhn}Šwqorkxe|uwtzljqzsy{usyossvl|woouwrwlww{swwrot|nxvp|€y{vzuw‚xxtq†u{usr•wzprsojrz~bs|vxpmvwvwus€{}|v{~’s{|sur‘‰€Š‡„ˆŽŽ€—Žˆ‰ƒŒƒ‰‚‰•ƒ‚~……Š’š’Ž‚ƒ‰“’†…‘’˜ƒ‘†ŠŒ‹Ž}”~sŠŽ~¡ˆ“yއ—Š„~—€‰™Žu‡‹“sЇxˆ…‡’‰xŠ—yˆvw|ˆ{ƒs…™ŒwŠ‰ŠŠ|}Œ†€‡‰‹~Šˆ…‚ƒŠ~|ŒŽ‚ˆ|•—†Šˆ}ˆ—‘Ÿ‹–‘†”|†‘ƒˆ…‡œ†ƒƒ}…Œzˆ‰Œ…‚‘„•†€{‹ŒƒŒ‘«ŒŽzyˆ„ŠŒ¡~’~–~}{xˆƒ€€–s‚†’Žz{}ˆ”‡„”ŠŒ}z„…’Œ‰…†ƒ…o‘‡€’|}x_‡”|zpxax‚guvvzw‘|}zns ytyqvt€pœƒzt{wuxsixlx†wvmv†y|}‚{rq‡o€l~u’xpv~z€pxrw•yw~reyypm|tzƒ„„‰~vrŠvtszipzow~tox}w„„tvsŒq}rxxsw qvwnjwvƒinouo~ym{syw{mlw‚€nyz~tttroswm{zsoxuwwqv€}y}xrrsy~}rywsz|zxw€wx‚xztr†u{yyx‰x~nqmqmr{€ou~s{cqwyrwww‚’x|u~~vyy{vu‹˜zˆ†˜~|Žˆ“Ž‘‹ƒ„s|ˆ™‡•‰“‹r—˜…“„†{ ‘‚|Œ’„ŠŒ„†w‹˜‚•—x‘‚}£|‚Š‹Šn“~˜€†•މ‹‘~€Œ’’‹}yž’…™Š—’€pŠ{–npˆ”‚‡‡Š‹z‹}œ‰€…uˆ†‹Œ€…‚zŠˆx„¤ˆ‘š‰Œh—ž{~ƒ{™Œ„™”‘‚ŽŒ‰‰ƒŒ„zƒŽ†q‚z~”ƒ“{–…{ˆ‡~y€†ˆ‹…~v€Œ…ƒ‡‚Ž}“y †€’|‹€~Š†Žš–‰yr‘‡‰~~…ކ…š}›}–Ž{‚€mwŽ‹Œž—œ‰š{Šz‡zˆj‰w†mzš™…‡Žv‚‰‰†—†€}‹‡‡’’˜†‰Ššy‹‹Š”–zšuˆyšˆs|‰z‡Š‹˜“‰}……Œ—{{‹ŽŽ‹sƒ‘Œ• ‚†hl’lŽ}n‰š˜o‰…Ž|«Šš…‘…œ˜ˆ†x€„x–‡~”u˜—ŽŸŒ‘n†Œ’y†•‚”£Š‹‰{“†Šƒ†„”„’žxˆ€’Ž|Žu……‹‰}w|‚‚ˆ”Œv†Ž€‚‚…‡Œƒ‘v‡”‡‡|ƒŸ‘’‘ƒ“†rŒ…{††Š’ƒ‚†’o‰‡–~}„vš‹——‘ˆ‚‹Œy{{ˆ”“xƒ‹®w›zt…–z“~‘ˆ{“ˆ„Œz}ŠŒ‰Ž˜•ƒ€Žm‹Š¨‘€†”u˜•†{~šzŽ{o r‰‚u„šˆŸŒ›„œ‰’‡˜m˜”††~•Š–s†…‹wjŒƒ‚—†|wxx’ƒ|ƒ…£m“~œ‰ŒŒz†ЇŽv{‹–Š“‰ˆ™n†Žx~‡‚˜‚’‘œ—„}ˆŠ•—‹€ˆz ’ˆx¡’ˆ‰{ŒzЇž€‘Ђމrju‚{‚ƒ‰œ…}¦ysi‹y›Ž}„|g…–u•}‹xu‹z}v–p–unˆ‚p‰ƒ‘â n¥©’’ž®y±Y¬k»…sxz‘›’ h£„w¤›~ÛocU´œm¦p’~du:ɸ¿‹¯…—L{{c¥Àj†w‰ÀŽ (¶Z­¼íšš’Uˆ…܉ˆ­Vâ¶Aˆ±·qŒ’m~¡¡®mE—–¼Œ†nn|R¢+’~ª¿¶µsÕ¥V¬‡^6ÈpÏp¦tÑS¾p±GÀ¦F‡~'Ñ•P+)@Ï:0q>y‹:P43‡DEf°2HðD 5H?% .€;«^ÌRzªŒZ|JhspnUVt5/iË&Y=( ×™Pai|7ê¥2.>qB%AZ3]Y2_TsoQ A:DmcFz&T=(YTlQfXIE€FS8mcaQ2KQXsgJ2,3DX<>JAlO[v|eI^b,ENCJFddSC[ZXM:Yr; 4AKr_]LgP;FKR8<:Q4dfRJg€=Y;MW --–XM?97®Ó¤æ!QcƒVá_k”á1’–@R5ŸépPP¢LL†Vœs&L[–ªA•­Âp;?&Ê :}PNdqÎ:4}´¸…— oECm_yrEn ×Aè˜d’I¶iV,Z®XÆ©Ž“FÙW^Q+fÌ£!eZ|޵¼ÊRKÿC¨laj¢©Q}¨ŠY©“(msMIFK;§ÒNn—ÝŸN{c–›¶`~LŠ’i;Ü9ÈUzc`$‚CR‰‹Hdgtx?‘yw\K`©Q­c†£j1oXdaGœÐvÁp>b©_¢JޤšW4FpH6£TÊPêz£ÏK-Z¼$àiÒi?’[`ec`hch_dflfY]h]cdcdef]`^m_cpfifcabn^^hjjjj`egnege`cnUdm_cYeb_gZdXe`g]cd]bfkdd^b__]effi]b_hh_bchccmieg``gaiffcXdghkffac`[]bgibaWjg]Thchfafe`kec`Og^bebd^_dcgbdhah]cgihic_\\ibb`^[_]kjjblUZpaggceg`b`_iadla]edbabcZji_`ZYeb`bl__cafn^ae_^i`ff_\eedq__]bccfgffb[f`flcegafdjVkd]Ym]^h_defdZfd]dnlRfeb`bhdk`Ynbbsa`mlgclimdjihXei[bf^Vo^^W\jd_mo]iZde`^f]aki\hlhekbfdod`]o^d[f``WcDfb`V\k_bl^^oc\\nT[da[jctcch`q^[ch5_cgkidmbej\l]bd`fabecd[cb_ce^bi^ahggf]mbcp`a_accZk``a[jp\cafmb^mb`baej`cgWcp_ld`cdfcgc]ibhik\aq]g`\bil_e`cTc`dahaYac]gfcpZdbcab^gn`^^ehfdoidaa__ke]df[chjadae_e\ch\bdi`Qe_c]`[aam^ib]^^coh]g]d]ea\be`V^ie^bdf_i\\fffae[l`efjdnecd`c]\degYZai^^qg`gc^`dbd_X^b_haw_`ci^a\c_cXacifd\]c`dbeihl]fcd_lckj[c`mej]bcdfe]bm_blYedj`jgdbfkh_iae]fZaj]Ydgnelc[`ddeckdafj^cbjajfgcm`caf`ccehgmdijbahddj^`b_]eh]baei_g]^_^bqfc\ab]hf\ifcoi[jgj^Wi„pc^`\rgZbigggbaeifj[Xich[]\n`e\`d\gbfjnbej[cgbdc[oc`jhhlTeg]^lgebdbd^ahbf_f`d]c]f[ehcnb[`aRU_efj^ghiZbcf]_Zha]g[]dccfecj[bjeadf`ajcaObc\ld^]d^cfbiZU[gcfd_odaf^c`dRb`jZcha[a`ea^[kg`^]e`bbem_aecbb`b]hg^eabd`befZhcb^hgcbb\bY^de`bd]gcadcbeb[bjheda_cddbbccf`cffdhcgefj^aiifg`\_fb\_d`cjif^gkjehai]kkbndhcainV`YeebXigen^had`jefhbcecb\]h_jTjgck^ajgiehf^j^afbdegldoagdc`dfbh\\`aifkdg_cach`acgehggb]a[_a][\fbe]ji^`abdi^\abbah_bb_hcdacnfedaf^dakhg_bf`g`hh^jie^dng\gjafa]l_c]f^Zk\fd\[bb^_afie`\_kVia_`gr\heb\i]`icdk\^plia\gcZbhdd\abt^d]m^h__bfZpcd`abgdla\fcf_^aj^baefbdmae\`ceh`acYednkbd\][``iY[^e`hq_Zhcjeecea]da_]hqham_]fge_ee\\bZbbrcc_ZfZc[beg]^lcch`e`apdm[e^aZa^g\gabami`e^g^_che_`di\_do`ab`hcb_i_]sbhe_`geafj_c^_`add\hb``aj]d\fg]`^hbifk_`gccgcbb\hcfd_eddbf`^bdlej_ghdcea_f^d\`dd^_ac[dbeab_d`bcfbghmbdeef`ec_`bcjgb[bbfaj`bceb_`ihfeb\^cbf^ia`b^d`i_e_gaec\hbihcgYca]_`Wc_bc^bqe_f_ebdh_idhdhggc`c\`kgibedb^bbckeh\]b_``aa`ccdgecdackdcl_e_fehfkc^fg_^f_afe_dcb`aZ\cbbcecfacgg_f\hbd_bbbb_]_dibihg\b[gYa_b`]aic]egdedhjb^``cdcf`hg^ab`af`fda\bkkgXiica`[dajhakdadc`fg^ah[adbgddf`hlaaj^ade`becbddmtdbM[jdpbeb[__jcdhf_gn^]gkg`_^g`fcad_ab]\`ec^dbagedcc_c`hbe`dica_df_^^f]`\cf`d`iab_]deWficbcbigfcc`g`_]^h`bgc`a_hgdZ_b``iia`f_`deoacag]jdflgcfkiihabgZUilkho_dd\^beaih\bk`xkcbZkf^\f_[f\dd_\eafae\glfYihafZIf]ghbkmaf^pfc[diZZfc\f_hbbgi\``eii`^f`Yf`ga[^lgo^cc``ccaa\cedniYbalacc^_a``Ye]^ebdbb]kZdej\_ca_Yj[fa`fa`jd_cgkjcfa[gfbfa`ebc^i\ldadi]`bjdbj`ffbc^ii\`jbdg_cdedie`cdg`a_fejhgdf\cjNjaf\ehfeaachb^i_\_eeedjdfcbj]fige`e_bao\k``ce]hdf[h_e`^e]engabeZ]cb_bba`cfhfYdc^_ddedeaajaidabagd]icZga^d`c`df]iic`aih^idbe]_ideddhbckiZ_fa]dhcd_e_acfl]gd\gbcbdecdkdoje[eiacaa`ob`gfcgc_`Z]ca_d^ai_cngfb_eelfkbbdhgbcg^lp\acaaZde]kZ``gc[`j`_faebb^ee_cicdfbak_jk^Wecb`iZbjafj`e`icg``aeade`c^b^f^_ecff^afbeffd`bec_`bceceeccc`heehdfdccccgf``aelbc\cfgdk`bcbaf_daccadfeedf_daffdd`adfacaaafdgbdeb_cef`dbdcc_bddecbfb_^f^c^bceegcbecafdbk]bd`dcdd^ccbeebebc_cbe]ca`fgbebfeee`cdbh__cg`babfdaafehbgfccabfedababicb^d^ccgeaaadba__bccbbbcfceg`f_c]cebeacicZ^ebhi_dgg^e`dbhfc\ba_gbpcd^ceja`gfe^_eldhikdidjh`id^b^^b\f]nac]degagigfnfa_`]fabZ`gb]bYab[aichb\]_ca``djab_heee]__l`ejX`]h_cicf`fdajfcehcahbaXfbf]jh_acbl`c]gfi_b]f]dg_d_bn`]a_de``h^]jZfgd`f[ab`]ed[jd`c`\a^ceglgc`efed^defg_e[^fdleZceiea^hca]ddicbeahj`a`iddl_`ddggdidc`eh`jgeib\beedcejmd^d_`[^je`fb_[kg`^a]^k]cccbnmdgm`[a^cc_e[b_cXae_fcbd\`ecej_bbmjb]_gbbj^ch`acmb_mgjkjcddgjane`_ghf^c\_hib]_gofahci_ebcfdeSaegdbbi`d_ceb^edcjgadeg`ab[ek\pdcc_abffjcec]gaWbc]a^fV_g_b^_mg\hdqbfa^Zhkja\cl[]Yba_d_aa^fgi]\\]dpakagfcdddddcddcddccccdcdcddadcedcdcccdccccddccdccdcdcbecdecccdcddcdcdbcddddddddddbdcdddcccdddcdccdcdddccddedddcdddddccdcecdbdddcdddcccccdcccdccdccccddccddddedcbcdccdceddcdcddddccccdcdccdcdcdddfedddcddcecceddcdbdcdccdcdcddeddcddccccddddcdccccddddddddbdddcddcdddbdbdddebcbcbcacabdfcbbddc`bbbdadedfdbbddbccbccd_bcbccbbeccaccdbcbbfccbbc`ddccedabdbddacbaceb`cccecbcaadcdebfbcddbddbcccb`dccbdbabfebbdbaacebddccbcadbbcacacfccfbcccdbaccbabd`bccadaebbccedbbbcbbccdacdabfedcdebccbbcebbcecaccedcd`babfcbcaaaddbbbcdedacbcabcacaaabhd]j]ece\bagfedlqgf`i^eee`_cddfg`bje^b`fqbc]^ihi`ja]`lWX_^b]\akl\^^iiddbeg^gacZ_g`kccinh]jg`bZ\dfb^l_fecamaa^b_cd_lhafdafcfnchZk[e`j`a^nc_gfW`hdge]ea_cnh`lfd]hff_]cicjcXdcjjmancah[e_`c^_UelbjbheX^dhd^acieefd_h[ideedcpic^dbcf]ff_Xfgb`^bbeihc[^fXZ]bYh^lficdccdcffccbdcdbdecdcccbdbcddcbdcbddddcdfecddbcccccddcdcbbabdcbcccccdcbcecddcbcecbdedcfcceedecbdcefbbcccdcccdecdbdcccccdbcdddcddbcbeeceedccccddbeddcecddccdecddeacccccdcbbebcaecbcccdcddcddbccddbdccdcccbcdccdcbbceddbfdcddccdcdcdeddcdecbddcbdccdcbcbcbcceecccbedbd^cdfccccffa_bcaeeda_`e_^g_dcbcfhdf`cbcbgdfgffd_^cfee_jh`b]_bc`d_`d`ai^agda]bfhcfafe^ecc`gbdecehiaecacdaebccgcgcehdega]fjdbb`cZfdggfd^ga`ffcffh][ed^cdelZh^[deabbdceabYaffcebab[dcb_ibedgha[gced_bajl`fga^cgedega\idde^gb^f_dcdek^dac`_`^`_adb__cc`gecfecef]c`hcbbbcabbccbeebdcedbcbccaaccbccbcdbd`dddbbdcbccdb`cddedcacddc`cbaccdaaadbebeacdcbddecabbbcbbcccbcdacddabcbbbcccdaeecdbddbddeecbbbedabcdcddcbcebbcdbcaacadccdcecbceaccdbcbacccebbbbdccebaebacbcdcebbcadecbcccadebcdcdcdcdbddccbbddcecacdddbcebc`cccdbcaccdecddbbcbcb`b[Zf`ef^e]jamaafjfeZebgoagcd`^i`eYbXhak^egiTiciXgl]^jhidbn^_daeedc`ekia\icYc^e[d[cc^ddgh[cfoefa]^o]_cb[gdltfZvdhchcgdigb]cefc`f_]mfa`eccbh]ge\ikelefd`_ch`f]hedak`e`^^lhefd_niYnc^befc`fdX`\ilahied_`l\cg`e`bfcfiYf_dj`b\ie[f\gagW^^abhdldhee^bee\se_edfdeg[^`d^b`iil_cbaccb_ec``dagcc_`_i_k_bccebdgggbeg`bcY`ec\ijiVjfce^^^b^hgcf`_acaaadg\^]d`ccgec_bc]hch]cefh_`_fbgca`YagUb\^^aaYie^i\e[`ga`ebeaa\^Zcbfh_gem[a]b__n\hfdf^``igie\chkgc`\d_`a]idfff[bidig___ij^eadb_becbibiagpb`fc`ac`j_]c_haf\cg`]biccbdecchag_ea^d^a`lbhegccccccccccccbccccccccccccdbccccccccdccccccdccdcccccdcdcbcccbdccccccccccccccccccddcccccdbcccccbccccccccccccccbccccbcbccccccdcbccccccccccccbccbccbbccccccccdccccccbcbcccccbcccdcccccccbccccccccccdcbbcccccdcbcccccccdccccbcccdccccccccccccbccccccccccccccccbcccccccdcdccbcdddddcccbdbddccbcccccdbbdccccdcccccccdcbccccdccdcbdcccccccdcdccddcccdccdcbdbdcccbdcdcdcddddccccdddbcddecdcbccdddbcccccbdcbccceddcdccdcddcacbbcccbbcccdcccdcccbccceccbcdcccdbdcebcbccdccddbdebdcccddcbbbcccdccedcbbccebbcbcbcccbdcccbccccdbdcddccccbcdccc`befa`[eag]iYddiWdcd\c`jbgd^eih]j^_Ze`hgbefacd[bgijX^hd_ckZ`]hheidZakabgk^lihjg]fdgl^bdgdbd\`\_jfn`cchld`_fiqcdR`zjl]bb[aUZ`_db^\cblghdncahcgefggO\fb_dbX]edaa[lYba^gdelbXagd`ki`ih_dbekebbgccY\dfc`bed^cdd]bj[biabf^`cf^g^fnic^X[dbal`kf_jchedlga_pefbf\`cobe]bba`i]af^beh\clSdZh]d_mff`^lh`e_f\fhbeh_c`_a`Yd]^gga`ff]hbae[^`\iqhcaaZafe^gcjf_[g_iebccVcaddjlfad`\g_ga_kdac_df[c`fZghZc[]f``cdi\hafcbae_ei]]g_gax^djhgdda^adf]`][]onmi]gbj]ei[_gdcc^jh_dahmbih\bcYg]i`^h_\\c^ibjlbdehT^_dbU^`cxae\geea_me_`gibajhaeYYb\aagfbf_hhcilcbfg_hcfcdejd^fj`ecbcck\fbeqm^_gl\ec`^h\gZif``eZddakhi^oihapd\accj_\`kifge`_gfaccfcnbed`a\`abeeWghkdZ\fijc_geljnfdacjfh_chcgcZ_W\l_kg[fe``cb]]kdbbnbO[be\h_j``_X\gXeWfbfekben`^]g`dnocbZeb\edcegcbb^hb_fea]dcfaffe_caq^ciZe[g^eecimdWZi^f_ij^^gi_`[bcdj[ciac^`ch[_d_bd`g^ngb[g^jdje^begdap_biZe`f_ajebWdj]dbff^chimbbg`c_aghjZ`ecdidh]gjYc\Za^_g`hadbc^gfkioc_ejef]c[jkkf`Ydbmeocbc^b`eifkdd`cZc`eabhbddY_degheggkgeafhiib]i[_db_cbfcchbcfbnb`_ed_d]b^bTb]bei\Rj`ekba`]a_b`dkm^fdcdefcgdhaedbYadebc[a[d`dl`ih[ci_`dg[bgf^]^f]^b`mp^h^afT^gi]bf`lj_abb\Ycbf_^cagbhehfg_ibcdaig[jg^ejfdeecded\gfbacgheecm\e`^fcheijcd_cdc`je[]dh`\dfcde`ab^hane`c_lde_ibkcdge_jcYfjX^`_a]]af]fdff[``]ag`dlsbaadeg]dmjZee]f_ldbdhhi]c`d\jfY^dnmeemXgZenh]eibdagcmeeg`f`ajdb`ebdcbabd[le_dfggcdaekdd\g\d`[`^bcaVccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccafcbd]be^`fdcbmbef^j[```aadcd`ecbag`_`dbhj[l_ab`fbecfafdd_`dc_gef`ebfbc_d`_\biebcgcddefcfgdgdkifjdhed__gea`cadf`bf_hi]gdbdabc_iae^_bgbde`af_egd`i`mbbifec_hca`ddledajbaecegh_egbcjcc`ceadiiabcbb^ifecgh`beae\eb_i^aY_`cd_aedhge^\_`ga\`eb`fja[daab\lag^b^_`cb_^gfe`cifddje`gd_agab`a^f_baZYggmfbh[[d_jcj]elhehab^c`fgdjjgc_cdla]^`_e^^ZaeZ`agbd`mdfgb`_gd[ii`^bbfdh]^bheaZkhg^cVjefY`jaebbbhg`]aUW`cjeagXadcflg\gGh^`_abdcg`bf]b`ch\\]Yf`f]ff\cgfdbgidgjggac^[]d^bd]dX_[ghe^ehna_f`f_`ia`fgbg`afiZ_\idgl_W_dhg_^m_a^cf]`i`\^clc`_\h_jc^b^`gdh^gbkldeeYd\fbh`d_g[a]ljk_aghadeeddfcbf\[kga`Zbed_^ehjkagc^bgcifdhf\aib]hdfgaedc`[]gg`]cf\id`f_d`bcgcabieje]]_]`ag`\aZbacacflc`]_\bfegcbiac`^abf^bdd`eZ_gddadd`[dfegemciZd_`jcdm^idjfa^^^dc`cgi_\cfcg`nba\`b_hbi\debedgg_`bm_hfaj^bgf^nf^b]g[f`b^ac\nkfaahYjmd_leX^df`i\`dkd_d_f[^rdbh`f]feiZfhgdghhcihacgf\`gg^mo^e_aZc`k]bekhabg_feedd]hXndXg_Zd_W]f`a^bah_^fchbbl]dcd_ffheaYhafghfi`_djroa]copafgaKf][\fhcbfcecaj`bi_U__a`igheaabeZ_^dcafk_gaf^^Td_kec^chf`cchf`fYcbg_hgbdcjggd`cikdd`icf]f`Y]cbg^k`cZbg`n_jZg_ebcbccbcdcdcccccdcbcbbcbbdcdcdeccccdccbccccceaedaddddcccecccdcbccbccdcdcdcbbddddecdccbedcdcddbbbebdbdccccbbcccdccccedcdccddccdacbcdddccbeabcbcecdcbbdcbccceebdedddcccdccccdcccdccccbcddcdceccbdcbdcbbcdbeccddbcdcdcccddedccccdccddeccbcddcaccccdcddcccaecbccdbdccadeccccdccccbdcbbccdaccbccbdcccbddcdbcdcdcbcbbcbccdddcdbdcbccbccccaddcccccdccbddcdcccbcdbbdccddccbcccbcccdcdbdcdddcccbdccccdcccccdddcdeccbdcccccdcdcdddccbccccccdbdcdcccdcddbccccccdbbdcdbbcddddbccbdcdcccdccccdbdbcccdbbcddddbcacdbcdccdcdcdddcddccccecbdcbccddbf[c`ccd\g^\[aihYadafil]cgl_i`fbdccdeVdkdf\]_beg`[eejZ[‰cVgjc[Zgbdcbbamtndi[f[X_\[]im_hg_f[\`cqabY\bndbZZdf]cajc}ehbfhVXbc]lfcag`lbaug\qQebgbV_i_qzdh\je]YfcbdihdTYfmK]Z^kdmiWceaie\eebiVPdb=nleZebjcge`vXYclbUcqaUh`aieai`backbhka\df]e`gr[bb_]o`d`bnge`dhec_[bfccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccdcdccdccccccddcccccbccdcbccccddbcccdccdcccdcbcdccccdccdcccccccccccddccccccccccdccccccbccccccccccdcdccccdccccbdccccccdccddccccccccccccccccbcccccccccccdccdccccccccccccccccbcccccccccccccccdcdcccdccccccccccccdcccdccccdccccdbccbcccccccccccccdcddccbcccccdcdcccbcccdceccddbcddcddbcddcddccddcddccbcccbbccdccccccccdccbccdccccddcdcccdcdccccdbcccccccbddccbbddccbcccddccbcddcccddcecdcccdccdccbccbccbdcdccbcccbbbdccdccdcdbdbddddddddeddccdccddcdcccbdbbccbbcdddddcccdcdccdcdcccbcccdcdcccbddbccdccdccbdcbcdcccdccdccdcdcccedcddccdcbbddbccbdbdbeccccdccdcdcecacdcbddcbdcdddbcbcdbcdccbbbcbbcddccabcbddcbdddbbdbcedbbaadccecccccccbcbcdbcbcabbddcaabdcddcecdcccc`dcccccdbcdabbccfcccabccbbbcdeecbdcdbdddbccbdcbbbdbbcbccddbccdcbcbcbcdbccbbbcccccbcbdddbddccbbedbbcddacdaebcdccecccbc`acbabebdddccbaaccabaddbcc`bcebbccaacbcbcgcacdcaccbcbcdccacbccbbbgdbccebcabaabbbcabbacddcbbcbcdabdacccabacccbdcc`bccbccbcf_dddbdccbc_cacdbcdbccddbbdbcccdacaacbcdccdadecbbbbadcacbacccdcdde`ccbcdbdccbacbcbdddbabbbbbbdccadbdabcccbccbbbcbbdbaaccbccbbcccbbcbdbadcbcdbcbabidbc_gcdbccbe[c`fcbabfgddca``e_cfdadfaadcceedebfdceeaaem`affeejacebbfcabbe_bfc``ead]ac_bdfded`a_cace^efeccbaahaacacfbfbc``k`cb]ccbgbeb`e_deeaga_``bb`de`b_jbddadc`ec`a]ed]bdadbec`cehbdbabgdbddae_bccdacbeddhbcedeab`be_c_d`e`d`cadfabechcac^adcf`d`bddegg_cle^hcccccdcccbccccdcccbcccccccbbcccdcccbbddbbccccccbccddcccccccccdcbccccccccbcdcccccdccdccccccccccccccbccdccdcccccbcccccccccccddccccbdbcdcccccbdcccccbcccbccdcdcdcccccbccccdbdcdccccbcccccccbccccccccccccccccccccccdcccdccdcccccccccdccdccccccccdcccccdcccccccccccccbeebe_ceeccbdfdebjac_f\dedbfeca`ebbebdedfeceffggdccecd`dbbedbecfiabedccccagbb`eebcddbcdehaedagdiecebdeffebbcbegccbc_iefadebdcca`acbfjddgbfbaecddecedgeac_gacadecgfded`ddda_bffebfefd`ceaafg_ccffcbcd_cebecgbfchbf^dgafgcbbdbefeaeegeffcdb]_ecccbc`ce^`_`abfdeafcZdam_ac_h`b^fbh]a`gedgc]_f]agpf]`\bYTbccccfaaffg`]\jdeh`Wdce`gibb^afeg^`gccco^c^d^chf^f]ggdcebb[_edj``\Y_hncmgg^`iebe\abdafe`_haahel_egd\ajhhnfa_Wfibgd_]]dfhh_^hgafai`Y_hhgejilhc`_kgk``fdZgcddf]_fe^d^]bfc^g[ggad`ait`fep^ka_dc`fachh\bZkgdi_ei^ccii_db^gh`_gpZibY`gdj_iagn`]gcTib_aaa`djbdc`gaccdofb^^j\efldUjedaghSd`giWf^_[elc`e`agfb^dg_aqicbbo^fdbc_dc_hg`cln]ac^fb_fnggkdfda]b`^\ihhcgifbkshef`mfmdffcg[[[a]gaab]he^_Vc_ifcae^fcg`^kj\_Y`_Yedin^bZTmccg^\Uddab^eba]kef]``fgXf`S_d\h]dkckagheg]d_f‚_e_Wca[d`\fbifmkh`eia_cccccccccccccdcccccccccccdcccccccccddcccccdcccccccccdcdcccccccccccccccccddccdccccdccccccccccccccccdccccccccccccbccccccccccdccccccccccccccdcccccccccccccccdcccccdccccccccccccccdccccdcdccccdccccccccbccccccccccccccccccccccccccdccbcccccccccccccccccccccdccccccccek\Z`]g^_i^`ibba_[ff_^jhfgk^d`_nid[^o[iagab_hc`aj_g^YZ[edmc_g`jiefidaf\j_bYb\_bedd\b_^jgh\^bhahcadboegacac_msh_hcb]kd^`e^cie^ib`dmicbifllg\a_gcef`_gfmn[\cfY_b[agbYadaf]b__d`^hma`Zbcm`ehUYnb_efa`egcac^[`]gc\Wicmf]f_See\\Ue^ccZXhcch]_kwelhde^^f_ch^dlh`fdeh]\ccccccccccccbccbbcccccdbcccccccccccccccccbbbcbcccbbccccccccbcccbcccbcbbbcbcccccbcbcccbcccccccccccccbbbccccdcccccccbcbbccccccccccccbccccccccdbdcccccbcbccccdcdcccccccbdcccbcccccbccbcccccccccccccccbcbccdcccccccccbccccccccccccccccccccbbcbccccccccccdccccccccccdcbccddcdcddacbccccbccdbccdebdcdcccdadcbcdedcdeddccdececbecccdccccdccdddcdfccbdbdcbcdddcbcdddfcecdcedcdcdadcceddddcefdcccebfceebcdccccccbdccdcbebbddebbcccdbebbdbddcdcdcdecccdcddadeedcdedbbcccddcccbcddccddddcceccdfeccedcddebcbdbcddbecddeccceccdccbdbdcbbdcddbldae]je]ch]b_a^k]aadaddcfcfVc`eggldebhcbb`ebag`dggedbef^ggacaddbeida_ccefhbbceeh`cgdbcha]^bi`hjafbfgd`da`cbcicfcidage_cd\cjbbdbd_cgdebc_^dfead^cfcbcfaf`hbcdZbhaadf`[caagd``_addd^eaaedfbefa`hbf^bce^f]eb\^hh^ecbec]afcgjc^ffdj_b\bfdebcggeca`dfdb`^`ffbe_c]bbc\cbdcdccccccceccdbccdcccccdccdcddddccbcddcccddbdcdccbccdeccddccdccdccdcbccbccdcbccbddeddcbddccccccddccbcdccceddddcdbedbdbcbccdccccbccdcddbccdccdddddcccccccccccddccbcbcccdccccbdddccbbdcdccbcbcbcccccededcdbccbcccecbccceccecccdcccdcccccddccbccddcbdcddccddcdcccchfgdU[iceb`bgeefdcg]g^g`ghb`bc^__oab]i_daa^k`rZg]adcjijf`emh_Zcd]kg^ide]afg`dj`kf[dia`efjbfeY_je]aijed^`cdcafgfchcchg`badciidf]heide`aiej_fW_\Xie_c`]_b`fajgcXdakZZgi]hha_^gieghk`aic]h_c]b__boYb``d_^ejhdfhh`de`df`c^ebgejegc`hbg`eOhc_if]jae^h\`le\dbcad]che]dceebbadcaccabddbccbadbcaddbe`addagabdebccbbcabacaba`debbcbfbbacdbbacbbca`cccbdbdbbcgcfbbbbcddacdcadadb`adbdcdcddfdcacbdddbdbbd`bdaddadddbbccadada`fbaba_cdaccdd``aacdbadbaedcedcebdbd`abcc_acehbbbacccfccc`abfadcdddabbbc`e`_cacdca``dbcccaebacbcceebb_dccbdbab]bc_]md^dXejebjlcbd_i_Y]_c`Sc^]e^gfnkefifb`c]_i[d`ak^dqo_e_gadefgmc`dgifdeZhjZ[`d[d`jitf`\bbd_fkjj]jaTc`hdegYcclg_`gZ\aaccZjac]acbjemei_blac\ajijb\icZa`iclhbekXccd]Ui`b^hagf^fijmhfhgdeZdlZfi^j_aaZdf_fd\dgcXhd]gh_g`]i`kfkWgeb_`_jh]ajdl]a_]ec`\e_bcb][hb`cbZ^a`eqfpdeebbia\hc`ic\]gccbg_e^^`dfkhd^madc`_aab`h_agggdn_af`addea\f`f]faeeb`e]md_ebdke\^ii_i`\chechhf`bg`bfldc_[\hd^[[eldji_hcae]ch\dchd`h`cp_imbdY`ca_bhh_gdl]iea\gab_afaheac[bb_ap`c^bc^icWg]`^lf``]dhgefbd[hbe`Vbncdm`ob`o\fcdaaZ^hd^^aZfb_cebc[dgge^cfdfdbkgfb`^_h[hfccfame_e_cc`gbbhakgjf]\eejacidcc`dg`g\e`bcjcbc[hacadg`facifa]chdaffaaddh^__ceb^dbbe_cbfbfedd`bdcbf_afh`wa\f]afbea_nd`i[h`addajdc`_c`agia^j`bfh__gkbbhdccabfc_ah[cad_fca\_cgeaipbaigej`c]cghahdei^gfcg_feicn^gebcia_cbcjeeadbfgdlbhie[adaefbcdladei__ha``cccdcbddcdccccccccccdcdddccdcdcccccbccccccdccbdcccdcccdccccccdcccccccccccccccdcccccccdcccccdcccbcccccccdcccccccdccccccdcdcccdccccccbccccdccccccccccccccdbccccccdcccddccdcbccbccdccccdcccdccccccccccccccccccccccdcbccccdcccccdcccdccccdccdcccccdccccdccccdcbccccdcccccccdcccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccdccdccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccdcccc]\_kq^fd]e[hfYZeedfYa`\dacsfY[i_e`\hkck[d\cgRsda\chg]bdb_fgfbc`][e`X`ehcga[Vi]ibe``dej^j^gdqdadhc_lgced`h]acfgpfZfklcah_agbcca`kc`k^f]aZd`fb__``zh`Zc_a`cZ\]hi`_h]kfe^bjcadeh_\_gc`\ce``ebedbdZb^gfleadgbmlgZmi\_l_`hdeg`gfdajkchfd^cf`ea_ge\ejaldd`jf\j\i\bdl\b`bc_be__bbc_aab`ccfbeeaadbfbhgkab_aYcad]`fcc]ded`ababbd^_e_a`ebbcacedc^_\ebga_ba\icbdaa_affc`c`d^ddb`baacecdebh`dfcba_bfccb[a`c_`fdadeb__dagcge`ccdjd`cafbdbecacbce_ecbdcabd_]_db`_bjb__ae^decbc^_cadj__daacb`eahaefccaf_gbdbdifaaadfe^dh]e_dcbf`fabf[`fe`ecb^_beccbdcedcdddceccdeddeadccdcbbddcfcddccdcdbcbdcabdeccecbbedcbccdedbbbddeccccdcdbbbcdbccefceccebbbecdcbcaccccbccbeebedbecccbeccbeecedeeedfcdecaecccdcdcbbabdbcbdacbdbbcdeecefcbccbddccccbbccacdddcccccccbbcccbbceccbddeccddbccdbdcbbbecbdcebcbbcdddbeebbbcdcbddcddccbbebebbdcde`cbccdadedaaba`bagbedb`d`bbbbb_ddbccdaebfecdbcdcdacbeccbdcagbc`ecbfdeb`ccfgbbdbe`accdcecccecd`bcbdbaecccedbchcccccebacddabbfdecbfbaeccdaaedbfdfbdcdcbbeadebecbbf`bb`ebacdcbecddb`abcdaeb_babbdeedebcdedeeaeddcdedacdeegfdcdabcccbddcbdabcdcbdcdcddececccdccabdecdcbedbbbcdddbcddeabedcaddcecddccccdddbbcccdacccccfcdccbddcccddfddaccbdecbdabcbbddaddbbebcbdccfdcceeedebcdede`ebdcccbeecddcdddeccdbbcccdccdddbdcdeccdccdcadccbbfbdddbdcdbdbcdcccebbbccbdddcbcdccccbdbccbdbeddcccbdbcdca`cccbbcdeebcdcabadddbbfaaeeb`dbYibfYiX`^dc^c`bc^ih]bef`]g_ZgbZbabcabklZ_`^ach\Y^jZiYgmgaiZa`^_m\iZ`dfg_dZR]ggi[koafjaed_ghdjdj`dd`egdbdadW[\kS_e`gbgfg]kiavcf_cb`ejkkd][ebdbdah`befYe^akW^gOib[Ye[p^b`ebd\dfahe_`jc^kfhaeT[shebg`fYWbc]eih`agbcl]ff[eifZb^`figeeivfwjWdhagf_g_c_bc^a\Z]f[ogiccddbcccdcdcbbdcccdcccccdccbddcceccbbddbcdbdcdbbcdcccbbbdcbbcbcbbcbdccebcccdbdbdbcddccccdedbcddddcccbbccedbcdcaccbccccdceccccbcacdddccbaccccddccdddcdcbcbcdcddcccbbcbbcddccacccccccbcbecdbcadcddcccdbbddccbcbdbcbbcbcbdccbcbcbcbcbcbcbbcbbccdddcccbbcccbcbcbeccc\a_`id`V^abuZcgh^ab^X_YffncZfaobeY^h]fd^id]mh_[^_hUYkPcbef`ca`eebb\l`[bfbhggb`e]eX`rihkgg_^ceem_mi_hZ^fmdWidYo`]h^ie_db[df\fis`_aVcgdf_jg[\diapiddahh^ij_`gdfe_]f`c`dbfekkc`^cei_maZ\g]f]le\ddY\qgia`Ogh]Zla_agaifeaUa_jc[\Zli]V_\gaobafj[ef_eZ`f`gZfhfbe`e^ifZcdcddcddcdccccddccdccccdcddccdccccbcbbddddcdcbcdcecbcdcdcecdccdecdbdecdccbbddccddccdbcdccdccccccbbdccccdcdddccdcdcccbbccdcdcccdcdccccdcccdecccddcdccdcccbbccddcdcddddbcdccccdbcccccbcddcccdddccddccbccdcbdcccdbdccdcccdcccdccddbccccddcccccdbddcdcccccbdccbcbbccbfhc```aadged[djeb_laeZ`cecba^bcccadcafcddeamdbafe_befl`bff_ddZc^age^eac_hb`_feagecblaha^d^eacfhddbdcfbfceeffec`ddfghd^gbcheh]f^id`d`dfhfbb`d]c\gbbe]_c^h`cg_chde`hZfe``fjced^gf`hhae`ddcaafhbcfbbY`\hbgdabgedZbc_b_iecbfd_chbdbj`e^b\gc`i^aabdffdbeeh_ebai^_g^_cccccccccccccccccbcccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccbdcccccccccccccccccccccccbcccccccccccccccccccccccccccccccccbccccccdccccccdcccccdccccccccccccccccccdccccccccccccccccccccccccccccccccccccbdbdccccccccccccccccccccccccccccccccccccddcdddccccdddccddccdcbccccdcccccccccddccdccbdccdcdccccccccccccdcddcdccccccddcccddccccccdcdcdcccdddcccccdddbcdbdcccdccdcdcccdcccdbddccccccccddccbddcccbcdcddcdcdcdccccddccccccccddccdccdcdccccdddcdccccccccdcbccdcdddcdcdddbcbcccccdccdddcbccdbccdccdccdccccccbabbccbbbcdddcbcbbcbccbccccccbdbbdbbccdccdbccabcdbbbdcbcacabcccccccccbbcdbccbcccbccccbbbccbbbcbbbbcccbbcccbdccccbccbcbccbbbccbbdccdbccccbccbcccbcbdccbdccbccbcccdbcccbbbcdccbbccbdbbccbdbcdbcccccccbccbbcbbbcbcccccccdbccbccbcbbdcbbbcbcccbbccbbccdcdcccbddbacccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbdccddcdcccccbcccbcbbcbcccdadccccbbccccbbcccbcbcbdbccdbcccccbdccccbbdccccbdcccccccccccdccccbcccbbcbdbcccccccddddcccbdcccbbccbbcccdbcbcddcdccccbcdcdcddccccccbbccbcaecbcddbcccccccccdcdcccbcbccdccdcbccccdbcbccccbcddcccdbccacccbbccbccbbbbcccbccccddccdccdcbcccccbcccccccccccccdcdccccdccccccccccccccbcbccccccccccccccccdcccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccdcccccccccccccccccccccccccbcccccccccccccccccccccccdccccbccccccccccccccccccccccccddcbcddcedcbdcccccccccccdcddcdcdcdccdcddcddccdccdddcecbcbccdcccccddccddcdccbcdbccdcbcdcccdddccddcccdcdccdcdcddcdcccccccdbcccdcbccecccccdcbcccdccceccdcccdcbbdccddedcccdccccccbbbcdcbcddccddeecccccdcdcddbddcbcbccddccdccbddbcccdcbdeccdcdecbcccdcedcccccddddcbcbcc`]_g_cdch^gdag^]cge[_megdehf]ie_egWfVac_`dgdgkcUVcnXcƒeYdfcdef`]admeeb\gcg^c`bdkW_da^cfngfdUekabp^dajpgdk`eda_\ac^ccccaik^l`ceid__gc[Zba^bbjglacdeadbafce]kh\edbfeZZ^cbpb`_fagcdj_d\hXbj`ecbjdcakk`\h\gddfab^hdadeeakdedgg]`_gbc`[g_d]b[[g`fgVcaahceimd\hdbdl`cccbcccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccbcccddcccccccccccccccccccdccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccdccccccccceccccdcbccccccccbccbcccccccbbcccccccccdccccccdccdcccccdccbbcccdccccccdccccdcccbcbcccdcddcbccccedccccdccccbdbcccccccdccccdccccddceccdcccbccbcdcccccdbbcdcddbdccccccccddcbdcdccccdcdccdccccddcccccbcbcccbcddccdccccccccccccbddcccccbcdccccccccccdcccdccccccccccdccddcccdcccccccddccccccccdccccccccccdccddcdcccdcccbcccccdccccccccccdccccccccccdbcccccccccccdcdccbccbccdccccccccccccccdcccdccdcddccccccccdcccbdcccccccbccccddccccccccccccccccbccdcdcccdcccccccccccccccccdcccddccccdccbccbccbccccccccccdccccdccdcccbdaagj`ef_aaedd]\dd][__a^f]]^le\dbj`fi_gbaece\ca`ebeib^lf\chmegZacbe_eebbagafhciabbfdfg]fekbi]\_[Yai]`ceada_db_maaca_daebachfe__ibdh_ea_Xjb`ai]gfgdfe_e]c]ldkd]hbdca]fad[igbdcbdceaWhakbWgaficbac_dfle_fmmi`edcgdcbhYgdaeibace^b_db\ecffkeae\feghfj[fh`ffd`^aaeh]^[]mdej__bZ`i^]c`^j]hjYdfifffce^`[hfcbafd]]`Yl`_ja]j`7^magiY^k[`af^cdc_c^ddg\Yefa[eabfdg_b]fYl`_f_lffdg\^\\bmcoc^\ifg\a]a_bcd`^idgi`eck]`_`\edhfz]fcd`aedcb[\hh_lYbm`tcaZZd`gPdga[hendd^gZ„agece_lijed`bfgmcZhdheefjgSdfib\hkdfVh_jbe_aluhbg^beeh`]dab_mdgfih]cdeecccdcdbccdccccccbccbdccccccdcddcdddcdcbcdbcdccccdccdccbcdcdcccdcccdcccbdccccdcccccccccccddccdcccdcccdccccdcbccccbddddccbdddcccdcdcdcdccddccddcbccddcedccbdddddccbcddbcccbdcdcbdccccddcdccdcbdccdcccdcdddcbdccdcccdcdddedcbccdbccbcdcbcdcdcdccdcdcedbcccdcdddccccbdbbcdeebcccbdbbdbbbdbdebbbbccdbbcccadbebcdeabcdcddbeebbdfcccbdcedcdcceeabccddccbaccadeeddcedbcabcbbdbddbcddfcadbccbcfcacdbbcccddabdcbbccccacbbccddcdcdbaccdbceedccccbccccccb`cdacdddccbddcddaccdcaccddcbdcdebdccdcccbaebbdbcccedcccddddabdcdcdebcbebbddddbcbcccccdcdcccccbcbccdccdbccddcccbccbcbccdbdccdcbcccddcccccccddccccbcccbcccccccbeccccccccdddccccddbcbcccdccddccdccdcdcdcccccbcccdcccccdcccdccccccccccccccbcdcbbdccdcdcccdbdcdbccdcdcdccbcccccdccdddcbccccbddccdbbccccccccdbccccccdcdcddcdcccdddcdccccccbccccccbdccd`bc`bdb`ebfagcbbcdadbccbbcdbbacacccbbfaedaecdccchaadfacgb`deccefe^eadbccbbbebddbbfcdedcdfcb`bdea`fbaeccdgbcbd_aeahccc`gcaabad`ccbc``edbadcbfb`ccdcdcacbdeb`bgbcbcaacdbbecgfddecdecgcdbdddccfbbbcbfbdbf`cdaded`cbdadcdic`dddgb`d_ecabdcdgaaeffebaca]facabbcdcaehedcccccccdccbcccccccccccdccccccdccccccccccccccccbccccccbcccccccccdccccccdccccdcccccccccccccccccccccccccccccbcdccedcccccccccccccccdcccdcccccdccbdccdccccccccccccccccbccccccccdccccccccdcccccccbccccccdcccccccccccccdccccccccdccccccccccbccdcccdcccccccccccccccccdcdcccdcccccdcccbcccdcccbdcccccccccccccccdccdcccccbcdccccccccdcccccbccccccccccccdcccbccccccccddcdcccdcdccdccccdccdddcdccbdddcccccccccdbddccccbccdccccdcccccccccccccccccccdccdccbdcccccdcccccdcccccccdcccccdcdcccccccccccdcccccdcccdcccccccdccccdddccccccccdcccccccccccbcdcccccccccdccccccdcccccdccbcccccdccccccbccccdccbbedcdddccccccccccccccbcccdccccbccccccccbcdbccccccccccdcccfccccbccccccdccccdbcdccccbcccccccbdbcccccccbdcdccddddbcccbcccdccccbdbccdcbcccdcccccccdcccccdcbccccccbccbbcccccdcdcdcccdccccbccccccccccccccddcccccccdqe`iafdbhJ^j]_mcfYnchfk\V_p^Yig^\YbiVi^df\m[_ccga[_}f^dc\egngfd`eodid]\bad]hh`[ibf^g`gbc_\kicae]bbdc^dfic_edTlmdQa`i_ghgbbkcbccalpZb\]dfkjchc`Wa_op_gm\]`gcf_bdlcZlc_]g^e_e`db_cadhZgW^iNfcerd\k]e`abefaaea]jdp^rg\s`aXbcdhdcUcaggr^Zf^iefnf^hbc]ebadb[^djf`dcecdeccddddaebdeccdfddbcccdcedcdcdcddabdcebdcbecdccbeebbddedcdfcdcbadccccabb`cbccceddddedcddbccbccddebccdcdcdcegbcccdcdbcdcbcccddcdcaebdccddccdebdcccdebcbbcdcdbddbeccbcddbcdcccccccdcdbddceddcbcddbcbdbdddbccddbcbdcdbccdeebbdcddcddccbcebeadecbcccbbaccfdcddddccccccccddcdcccccccccdccccccccccccccdccccccccccccdcccccccccccccccbccccccccccdbccccccbcccdcccccbcccccccccccccdcccdccdccccccccccccdcccdccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccdccccccccccddcddccbddcbcadaaacbbedecabc`bdadbebcdccdccbbcbaaecbccddeccddcbbbbcadcadbcacddaacddbddcbeccbbceddbdcdddccdcbdbbddddccbcacbbcbbbcbddcb`cbcccbcaedcdcbebccdcbgcgbcbcbcddgcebcddacbcbaccccbaccfbacbccbcaab`dddcdcbccdcccbdebdcdacccbadcdcacbbbccbecbbdcbfcabacdfcbaeccccccccccccccccccccccccccccccccccccccccdccccdcccccccccccccbccccccccccccddccccccccccccccccccccccccccccdccccccccbccdcccccccccccccccccccccccccdcccccccccdcdccdccccccccccccccccccccccccccccbccccccccdcccccccccccccccccccccdcccccdccccccccdccccccccccccccccccccccccc[bcedckha_hdbabac_eadge_d`ebd^d_camee^dleb``abea`^e`_bcZfg^gehbgfb]bYijdia`bgei``e_fe\cih]edafb]eZ^daedic^g_c^_Z^cgbcheheh[ijbae_c`fbfffdgfbcabbhefbaca`ekcfejeec`^fbecca`g_fjac`l_feb_gajbheh`efc^dcbg^iaf]e`ecedcceicefc_gh_ibgdecfcfefggdgifec_d`b`f_e]daadb`dccccccccccccdbccccccccccccccccccccccccdccdcddccccdccccccbcdccccccccdcccccccdcccbccbdcccccdcccdccccbcccccccccccccddcddccccbccccccccccccdcccccbccccccdcccbcbdcdcccccccccccccbdcccddcccccdccccccbcccccddccccccddccccccccccdccccccccddcccccccccccccccdcbccccccccdcbeieage`bic[ei`ca\hb]cdeb`^Zichcaigebd_a^fkchmcfahh__hef]\ff^\ghodbdi\bbbbbedZlbc^d`b`b`fdba]bjif^_c_ccfcdfbc\ca^abd_[ffjed_bgYegce`ef_a`gh`de__dbamaddcihbgbl_^hgdheg\`bcefaabfdd`kgl]Vhafe[dbejbia]`g[fde`cec`ebfaidd_geag^[akeg_g_ae_agaechbhegd[da^bcab^hdefcbbfcbebageeahbbebd`bc__b`dbdd^^fbcdadeje`d_gdbabagfbf][lca`cc`c_ababbbbcedbddd^iaab]\cd`acaaf[afgccbba`dhf_cdcbffbcdbfbhhdd^_hY``\ghjae`_fd_cbgdaa^facdbccbbbfb`debi`a\bbj`cebfdg`adb`jcceaejbgf\bc`e^deckf`c`decbeded_e\dicdg^eedcadedca]daae`bddbdei_fb`__g_ca\c\h\_hXc`l`pgjc`f`qeCbZeTageiaWjX\^j[^kbgour]adegoTdlixhm`bmflP^gq\dV^dilfeijaZUebVchagYgn_a_Yon^fbdijfee`fcod_bf]bd[__dU\OZf_g_\`_[gdeqa_^Vodeeceb_`balXg`Yeh^e\db`ealdgkdZb\\_dgamZ_ioaXcle[ak]]emqkW`e^\dVcpbaiaicWpebbdeYcdvWbUbfce_bhb]`ad_^gady[_^tXsct_eccccccccdcccccdcccccccccdccccccccbccccccccbcbbcccccbccccdccccccccccccccbcccccccbcccdcdcccbcccccdccccccccccccdccccccccccccccccccccccccccbcccdcccccccccccccbcccccccccccccccccdcccccccbccccccccccbccdccccccccccbccccbcccbcccccdcccccccccbcccbcccdcccccdccccccccccccbddcccdcbdbdaddbbcdcbbddcecddeacddcbccabacbdcddccc`dd`acbddbbdeebfbbdbccbcdbecaafbddcdcdbbccdcdccebdcacdaddcbdabcccdbcbdbeecbfbedcecbbabcbdcddcccaddedcdbbcbcccccdddbfbeccdecacba`acdccabcccdbbbccdcbcbbbgccbdcccdbdcdcbccd`bccc`bcdcfbbgbccbbcdecdcddcbfdadcbceahdb^Xf[_]^e^]iekehbccbphgd\\eb`^cc`c]deidg\d`[def\_e[df]ibck\c`d]^ake[n`]Tg]b_edlYgdheab]bi^fkTakhgfkf\`Yf``_`aga^cb`icdmfgqbmgfdc_h`hfnZ\d]g^ed^id\b`^dc_fbd__ff_dXj^lacfibhjck^cedadefg`a`afg`gc]l`c_dcd\d`haihbi_fiecdha[c`_c_bdfoei`ddbgchdcaf\iZddckdhdhlec``b`eaebcdhdeddddcdcbcbebdadff^ceadae`c`c`ccdffeed`fecehddb`edcca`cabhdcccfa_hcbdedbcadcebhhbabeacecaeebdbbcbb`debaa^gbecidaggdb`dcedaacafcbec`gedbcbdchddbbbcd_bad`cbecbab``debcebc`ba`bd`cccbgd`dagb`ddbcf`cacddaabecdfcdddebdbdcddcccc`dg`fee`bbcddcbe_cabdcccffcbcmf\`ayh`YY_gj_fpdWa]ujbgmY^a[__bjb_dd^RmWmXa\chj{bRqechjhj\e]kgWXb]Z_zc``dil`ef[^\^\iehdUdWjco[bdffTh`owke^[diX_de\^^_^`ljKggd_elX`f`ggbiZbdZmhm_U\k^Zr^`^neecYUa^hfjdi]]el\\glg^yerchbbeifali_mWbc^]]f[]wfcL_~XUVbv_jache\ei`cbXdfcfY`gZ^bYdg[b[^]iRX]^idcdbcccccdccccccbccdcddcccdcbcdcdcdccccccbcddcccdbcccdcccbccdcdddcdccccccceccccccccccccbcdccccccdcccccdccdcccccdbbdcbcccccbcdccdcccdccccbcccdccbcdcddcccccddcbcdccccbccdbcddddcccdbcccdcbcccdccccccccccdccccdcddcccccccccccccccccdcdccdcccdccccccdddccdccddccccccccccdcccdccccdcccdccccccccccddcccccccdcccccddcccccbcdbbcccccccccdbbccccccdccccdccdcccccccdcccdcccbcccccbccccccdccdcccbddcccccbccccccccccccbccccccccccccddcdcccccccccccddcccdbcccccccccccdccccccccccccccccbcccccccccccccccbbccccdddccddcbccccdccccdcbcccccdccccbbcbccdccccbbbccbccbcddbccdcccbcdccddcccdccdbdccbbccddcdcccccddcccccbccccccccdcdcdccddccdcccbcccccdccbbbdccccbcdccccbccbcbccddccbdccbbbccdbccccbbccccbbcccddccbdccccccbccccccdbdcccbdcdbbbbdccbccccdccbbdccccccdccccdccccbcccccccddcccccedcbdbbdcdbddccccdccccbcbccddebbcccbbeccccddcacccdcccdbdbbdecacdacdcbdccagbcdccbecccccaacdbacbdcbcccddbcdccbdecccccbbcbcbbaccddcccbadcbcecbcbccdedabceaddbbcddcccbccfcaabbcbbccbbcbaccdccabcccbccbbcecfcbcccbcbchcdbccbccacdcdcccdbbcccccdfdbcdbccccccbceebcccbcbedcacdddcbbbcaccbacbabedbdccccbcccbcccccccccdcdcccccccccccbccbdcccbcccccccccbcbccccccbcbbccccccbccdccbccbccbcbcccccccbcbccbccccbbccbbdbccbcdbcccccbccccccccccccccacccbccbcbcccccdbbcbcbccccbdcccbbcdccccccbccbcdccccbccccccccccbcccbcbcbccbbbcbdcccbcdccccccbcccccdbccccccbbcccccdccccbcdeafaebeeccecgcba`ccedbcfehdbfcbbc`cgacebcbaddfbdd_bafbaccdccbedcccbdedecbcbcceecddaeba`fdddfdcfa`af`ecb`ed_bcccbacd`bfcccag`bced_dcdeaabefcbbccbgccdcdc_bcdeeccbbedddecb`ec`caabbdeccde``ffafedddcebeecbgbefaccdddd`bbfdcaedddecdbdegaeeddb_ddbcagfbabacf_fccacccccccdddcdcdcccccddccccccccdcddcccccddccccdccccccdcccccdccdcdcdccdcccdddcdccccddcccccddccdceccdddccdccdcccecccdcccdccdcdcdccdcccbccddccdcccccdcdcdccccccbccbccccdcccbcddccbccddcccbcdcccccccdccccccccdcdcccccccbcccccccccddcbcccdccccccccccddcccebccccbddcccdcbdcccccebcddcdcecdccebdecdcebbbcccdcbbbdccbddcccbdbdbcdedbcbbccbcebdcbdbdbdbccdfccdbcdcdcbbdcccbabbccdccccddccdcacbccdcdbddbcdcbdcbcaccbcecbdcdcdcbcbcbccdceccccccccbccbbcdeccdbccdccdcdbccdccdcddc`ccddccbdccdcddedbdcdcbccbbbdccccccbccbbbbccccccebebbccdbcdcbddccccdcccccbcdbccccdccccccccbcccccdbbcccccbccbccdcccccbccccdcccccbcbccccbbcccccbccccbcccdccdbcccccbcddccccccbccecbbcdbccbbcdcccccccccdbcbdcccbcccdcccccccbccbbbcccccdcdcbddcbdcccccbcccccccccccccdccccccbbccccccccccbcbccdcccccbccbcccbccbbbcccdccbccccbcdbccdcccdccdccccccccccccccdcccccccdccbcdcbcccccccccdccccdccdccccccbcccdcccddddccccccdbdccccccbccccbcbddcdccccccdccdcdccbcbccdccccccdbccdcccdcbccdccbcccbbbcccbcdcbbbccdcccccbcdcccbccbcdbdccccdccddcccccccbdccdbcccccccdcdccccccccdcbcddcddbdccbccccccccccdbcccccdcbccbfebZa]j`_gbj__^g]\fe\^cbicagmgjja_`ecceg\fXkagbf]VVf^_ihfbed`djdY`dhk_g^^gdne_[_`jckjff[\eeha\abk\h_d`\]Xkgrkdedbkledd[cbgeaVhjdbdaeWgcYW^g\ecej_eeedp`i\g[defhadb^e\dg`bfe_c^]jic`jdbhcff]fec\]dbd]dal]^ikddhfaeag^[ak^h^ebindd]heZ_ahe`oig^eafcdbfbleZk_eee\c^g`ica_af^^bcbhgeja[eggeZ]V^a[Ze[sg[b`^e[e`QbYeh_hgredehSbm_eY`YmdhXjWem__addabhfeka^\aah_eY[kxd^geeba]b\b]gghfY^b`b^hgdoijboh[fd`^ZZmbffj\_lqcfXgbjrajpgndj_dgfflfhSiZ[[ahd`dbjjY`Zkg\ccbdb\cbihimZacghg_ic_]abQaib]pdfna`X^cecee^bcaScgbnminedhbfb`dZ`daec`dYVaeddccacdbccddbccdbcccecddcdbcdcccccdddcdcccdcccddccbcccdcbbcbcddbddcccdcbccddcccadeccbccbbcbadcbcbceccdecccebbdbdcbbbcdcddddddbccbcdcbccceccccccdbcdedcdccdcdcccccecdccbcbbccacdbdccddddccdcdccecccdccdbdbccbecddbcdcccdcccecccbacdcccbcccdbbadccbdaccddbdccedcccdccebdbdbccbcdcfbdbcacceddbdddabdedfeddddcdefccacccbcabcdcabbbdaeccdddbdddaccdbdecbfecddddcbbbecebdadccabcdceccdbcbddeccdccdccbedeecbceeecebcbcbdfcdccfcdbccecdbcbeccdbd`ceccbbbeedecbdbdcabbcecdecdbbddcacbbcdccdfccdddececccddbccdbbgbcfcd`cdbceacccebcccbcfao]dcp_YZcfgbShZn__P`cV[rk_i`eTgXnekeUcl]ddeceg_^bmjgX`edjk`]c_\\]ghbf_kchpifZbj\]eQcebdZ]keXl]foe^b]]lk]ccdYe`W^`hf\kfX`XZc^gmhbUv\iehf`j[][c]hbabX_N[_dqh^de[bg\ZYa^cfga]_Y^a[h`_lgbMiaVoWg[g[][g`lchbmbcfgmdmoe_]lePnqabMcbdbfgkecbaerbkc`kjddcfgl]kjch]jqmfjXhe`a_g`jV`lm`nj\\__p]df`bYYhbe_fc]ldb_fj\Xbafaa]cXaf^ijvbddnea]Sagj^[cgdacfabZd^Zeg\dbe]Yi]jjh[de^cgghdZgc_m`fbeojccha^ae_]ebgcZid`c]g\d]gh_Wabbiofc]p]ag`geinbg^[\Y_nfaiaag]akgdkbeiZ^jjlbWd^fcm[Tcbcd\jadgc`fdjqd__coljc_jdb^am]_Yc]a`ia`ahdddhbmchngccY_Wdedbccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccdcccccccccbccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccdccccccccdcccddcdcdccccccdccccdcccccccdcddccccccccccccdccdcccccccdddccccccccddccdcccccccddddcdccccddcdccccccdcdccccdcccccccddccccccdcccccccdccddcdcccccdccccdccdcbcccdcccdcbcdceccddccdccbccdcdcccccccccccccccdcccccccccdccbcdccccccddccccddcdcccccccccddccdddcccccccccdccbcbccccccccbcccddbdcaccddbccbcccccdcddccccdccccbccbcfcbcceccccccccdccccccbdcdbccbbccccdcccccbccbcdbbccddcccccccdcdcdcccdbccccbcccccccccdcdcdbccdccbbcccbcbcddddcccbbcdddbcdbdccdccddcbcddbcbcedcccbcdbbcdccdcddadccccccdcdbccccdcbcbbcbbccdbdccbcbccbcbccccbbc\df]\j`oj]`eafebjchgff`dm]ipfd^eW]becdhc\f__`aiib][_ee_^d^c_^beec_]fiegeefa`dXb[`bgd\bcfcbaaa[_gdidah[k`dceg^hagdda^^]cehd]^]eee_akiceg^fgbda\hbehigh\c_ffg`acb\h]bgd\k_a\Z^d_`fhcgfaebeadadcddifge_Zdk]agcndcaf`abjglf[adfecj`edeb^kfcggfa]dfbacbediedca\cf_fgcdccbcdcdedbacbcddccbddcccgcfccadcccabdbccdaccbbcbebddccddacdbbbfcbbdcccccacadcbdebcdcccccdcaccccccddbdbdbcdcebaadcbfccbdcddfdcbbcbcdbaeddadcbccdddbdcccbadbdbccdcdedcbbcccccfbbdebcddafccdcbdcdcbcbdbcceacbb`dccbbccdcdcbbdbcdcecfebbcdbbccccccdcbccbdccccdbcbcd`fcfd`bfbace`fdaadgi`a^beacgf```bffbeadebb`hhaed`dccceebc`fbbbef`cgadae`dbdfbgf`defbecadkfaacegjfaaef_eefb_b`hefbga`caiebcb`bbebe`dagc^bcbbfgbda_^hagbfeb_bahfabacaddda_ecdc`fbcbaibb`cfcbf`bbcbhfacbadbicdfc`abebedceadbbfjcbbbebabdbag^adb_bacdaefcebcaa`a`abbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddcccccccdccccccccccdcccccccccccccccccbccccccccccccccccccccccccccccccccccdccccdcccccccccccbccdcccccccdcccccccccccdccccccccccccccccccccccccccccccbdcccccccccccccccccccccccdcccccccccccccccccccccdccccccccccccccccbdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccdcccccccccccccccccccccccccccccccdcccccdccccccccccccdccccccccccccccccccccccdcccccdcccccccdccccccccccccccccccccccccccccccccccccdccccccccccccdcccccccdcccccccccccccccccccccccccccccccccdcccccccccccdccccccccccccccccccccdcdccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbdccbdccdcbdcccccbccccdcccccbcccccdbcccccccbccbcccdcbcccbcdbdbdcbcccccccccccdbcccccccdccccbcccccccbccdddcccccddccdcccccccbcdccccdbcccccccbcdbccddcccccccccddcdccdddbbcbcddcdccddcccccccbdcbdcccbccdbcddcccccccccccdcdcccdcdccceccccccccccbcccccccccccccccddccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccbbcdceedbccccdcdcddccdfcedbbebcdbbdbdbcbbddcddcc`bcedcbadcdecbecbbdddccbdbdcdeccccddbcbeeecceeddfdeebecdcdccdbdcecbdecbddeddbdceaccecdcdc`dcdedbdbdfccdcbbcbeceecccededbeeedcdddbcdcbecedccbddddeecbcdccccde`cacbbcbdddbfbcaebedccadadabdddedceececdbdbedbcdcdddccdcdccddcddbcddddcccdbcddcddddcdcdccdcccdcdccccbddcdcdbccddcccdccddddcdcccccdcdedccddcddcdcdeecddccccddddcdcdcbdccddccdcdcdccdcdcccdcddcccccddccccccdcccccbccdccddcdccdddddccbccdccdcdbdcecdddcdddccddcdecdcdccdbdcdccbccddccdcdccdcccdcccddcccddcccdcccdccdccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccbccccdcccdccbcccccccccccdcccdcccccccccdccddcccccccdccccccccccccccccccccccccdccccccccccccccccccccdccccccbbcccccccdcccbcccbdcccdccdccdcccbcccccccccccccdccccccccccccccccccccccccccdcdcbcccccbccccccccccccccccccccccccccdcccdcccccccccccccbccccccccccccdcccccefgfeaa[difa[bbj[d^acghf`g`]edebiilaeeegk]dbc`gaiedcb^jcd]bcddonf^`dlgfa`ehb^def^`bfefcbj^g^\fib\bebefdj[de`be``ibfbgfdec_]kihVcdg_f_bd`ZdchefeaZc^fgfec_[bf\Xbgfih`]`^gbac\d]c\fhadhhc``eqgbddeW`ci_behgbdcni\dg`dffabd^_bcbci`]hj`bcdcbfhbYjf_^aYb`]hcdhb]ikgdccccccccccccccccccbcccccccccccccccccccccccdcccbccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccbbccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccdcccccccccccdc]`fdi[_caaei^ed_ceag]hccglfdaem\bija_le]cbgie^dfglb_a[]obafbcahaiegejbbhceijZdfjg_[higi[j``cd`fcaacgicbaef^bc]bf]cge_ec_d[^f]ge`eddje^dd`b`fb]`j]cfbodceda[h`^bc`eacjmggg^ajaeg`]bab^agd]_df`ce^fc`cnjajfbaeggcc`klZca`fc_abid^_\dah\fhcblc^dhacbacf_b_afhccdbecccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccbdcccccccccccccccccccccbcccccccccccccccccccccdbccddccccccccccccccccccdcccdccdcccccccccccccdccccccccccccccccccccdccccccccccdccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcdccccbdcccdcccccccccccdcccccccccccccccccdcccccccbcdcccccccccccccccccccccccccccccccccccccbccdccbccccbccccdcccccccccccccccccccccccccccdcdcccccbcccbccccccccbcbdccccccdcccccccdcccccccccccccccccccbcccccccccdcccccdcccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddcdccccccccddcdddccccccdddccdcddccccccdcdcdcccdcccdccccccdccccdcccddcdcccccccddcbccdccccccccccccdddcdccccdcdcccccdddccccccdcccccccccddccdcccccdccccdccccdccccdccdcdccddccdccccccccdcdccdddcccccddcccccccccccccccdccccdcccccddccccdcdcccdccccccdccddccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccbdcccccccdccdcccccdccccccbccccccccccccccccccecccccccccdccccccccccddccccdccccccccccccccccccccccccccdccbcccccccccbccccccccccccccccccccccdccccccccccbdccccdcccccddcccbcccccccccccdcccccccccccccccccccccccccccccccccccccccccccdcccccdcccccccccdcccccccccccdcdccccccccdccccecccccccdcccdccdddcccccdcdccccddccccdccccccbccddcdddccccdccbcdcdccdcdddcccccddccccddccdcddcccdddccccccdcccccccccdddddcdcdcccccccdccdcccdcccccdcccccddcddccccdccbdccccdcbcccdcccccddcddcbdcdcccddccccccdcccccdccdcbdccccdeccccdcdccccccccdcddccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcdcdcccccccccddcdccdcdcccccdcdccdccccdccdccbcdcccccdccdcbdcccdccdcddccddcdcdccdcdccdccccdccccccdcddccccdcdcdddbdcccccccccccddcddccdddcccccccccdcccccbccccddccccccdcddccdcccdccdcdcccdccdcccdcccccdcccdddcccdddddcccdddcccdcccccdccbcddccdcdddcdcddccddccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccdccccccccccdccccccccccccccccccccccdcccccccbccccdccccccccccdccccccbcccccccccddcccccccccccccccccccccccccccccccccccbcccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccdcccccccccbcccdccccbcbdbccccccccccccbcccccccccccccccccbccbbccccbbcccccccccccccccccdccccccbcdcccccccccccccccccccdcccccccccccccccccbcccccccccccbccccccccdcbcbcccccccccccccccccccccccccccccccccccdcccccccccccccccccccbcccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccdcdcccdcccdccdccccddcdddccdcccdccccccccccccccccccccccdcccccddccccccdcdddcdccdccdccddccdcccccccdccdccccccdcccdccccccdcccccdccccccccdccccdcccccccccccdcdccccdcddccccccccccccccbccccdcdccddcccccccddcccccccccdccdccccdccccccccccccccccdcddcccdcccccccdcccccccccbccceacdcbcdcccaddccdceccddcdcccdddcdbecdcdccdcbbbdccbdcdbdcdcddcdcdbdbbdccddcccbccdcdcccccccbfdccccddccacdddeccdcccddcdcddccccccbcdccdbddcdedecdcdcceceddcccccdcdcdccbbcddcddedbcbcbcddccccbddbdcccdbddecbddcccddcbcdecccbcdcddcdccccccccdcbcdcdcddcdccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccdccccbccccccccccccccccccccccccbcccccccccccdcccccccbcccccccccccccccccccbcccccccccccccccccccccccccdcccccccccccccccccccccccccccccdcccccccccdccccccccccdcccdcccccccccccccccccdccccdcdccccccccccccccccccccbcccdcccccccdcccccccccccdccccccccccdccdcccccccccccccdcbcccccccdccccccccccccccccccddccdccbcdccccccccccdcccbcccccbcbcccccccccccccccccccdcccdbcdccccccdccccccccbccccccccccccbccdbccccdcccdcdddcccdccccdcccccccbccccccccbccccccccccdccdcccdcdccccccccdcccdccccccdccdddccdccccccccbcddcccccbccccdccccccdcccccccccccbcdccdbccccccccccccdccccccccccccccccccccbcccccccccccccccccccccccccccccccdcccccccccccccccccccdcccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccdcccccccbccccccccdcccccccccccccccccccccccbcccccccccccccccccccccccbccccccccccccccccccccccccbccccccccccccccccccccccccccdccbccccccccccccccccccccbcccccdcccccccccccccccccccccbcccccddccccccccccccccccccccccccccccccccccdccccbcccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccbcccccccbccccccccbccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccbccccbcccccccccccbcccbccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccceZcchbgdbib`a]abcb_^gjblb^`ma\ao\__f_b_[bjccbaca]UchXgga_ifamdanf]el]efcbc]^cZdfd^``b\]phcchbcf`fbe\fae^dkjmcXaf^kgaiga`hh\bc`j`Whaeecd^ghbdeecY^bhe\i[c`nca\]bdd^gncgeblgbee]_be_jgfk^fb^Za\\df^a^aiadce`[igkbj\gidaga[dbb`kgbclek_p]ddchZh]ice\ade`dglgYfeRgi_ecdceecccddecdbdebbcbdbcedeecdddcbcddeccbdbccddecdbcddcdcedddccccbdeecccabcbccbdbdcdddccbddcdcccdcdccdccccddbbddeccccebebdfcceedcdcbbdcacbdcaddceecbbccdccbbbcdcdcddaceccccccdbccdccdccddddbbdccfdccbdcddddeccbddbcfcbddgccbcddeecbccdbecbfcccdbeedccdcbdccccecdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccddcccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccdccccdccccccccccddcddcdcdbcccdcdccccccccccccdcccccccccccccdccccdccbcccdccccdddcccccdcdddccccccccdccdcccdcccdccccccdcccccccbccccdcccddccccbcbddddccccccdcccbcbcdcccccdccccdccdccdccccccccccccccccccccdbccccccccbcccdcccccdcddcdcccccccccccccccccccdccccccccdccccdcccccccdcccdcccccccdcccccccccccbcdccdcccccccccdcbdcdccddcccccdcccccccccccddcdcdcbccbccdcccccccccccccccdccccccccdcccdccccccbccdccccdccccbcccccccdccdccccccccccdccdcccccccccccccdcdcdbcccdcccccdcdbcccccccccccccccdccccbcbccdccbcccccbdccccccccdbdbdcbddcdccbdbccbdccccdccccccddccdcccccccddccccddcdccccccccdcddccbcdcccccbccccbcbcceccddcdcccddcdccdcccddccddccddccdcccccccdcccbcccdcddcdcccccccdccdddccaccbcccccdccccdccdcccccdcccccdcccccbdcccdccbcdcdccbdbccdcbcdddcdcccbcccddcdcdccccccdcbccdcccdcccccccdccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccbdcccccccccccccdccccbccccdccccccccbccdcccccccccdcccdcccccdcccccdcdccccccccccdcccccccccccdccdccccccccddccccdcccccccccccccccccccccccccccdccccccccccbcccccdccccccccccccccccccdcccccccccccccccccccccccccccccbcccccddcccdcccccccccdddccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcdcccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccdccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccdccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccbcccccbbbcccccccbdcccccccccdccccbccccccccccccccccccccccccccccccccccccbccccccccccdcccccbcccccccccccbccccccccccccccccccccccbcccccdccccccccccccccccccccccccbccccccccccccccccccccbccccccccccccccccccccccccccccccccccdccdccccccddccddcdcedddbedddcdccccbedcbbddccecdbdcdcccddececddddccbcdbcdbceaedecdecdcbbeadbccccecddcccccddbccdddedcdcbbddccdaedfbdccbdedcbcbccbceddbbacdcddcdcdccccabbbcdddecccccdcdddbcebadcbeccbbcdedefcbddcdcdecdcbbebccbcbbcbccbccccdbeccdcbcecddbddddcdcecdbcedcbebddccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccdcdcddcccdccdcccccdcccdddccccdbcccdccccdccdccddddddcdddccccccdcdccccdcccdcdcccdcdcdcdcdcbccdcccccbdccccdcccccdcccccbddddcccccccccccdcccccdccdccccccccdccdccbccccdccccdcdccdcbcccccddcccdcdccccccccdcdddccccccccdcccccdcccdcccdcccccdccddcccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccdcccccccccbccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccdcccccbcccccbcccccccdbccdcccccccdcdccccdccdcbccdcccdcdccccccbccccccccccbcbbccdcccccdcccddccdbccdcdccccccccddccccdccdcccccccccccdddccddccbccdedccccccbcdcbccdcdcdcccdcccdbbcbcdbcdccdcdccdcccccccdcccbccddcccbbbccccdcdcbccdcdccccccccdccccbccccbccccdccdcdccccbccdcccccccccccdccccccccccccccccccccccdcccccccccccccdcbcdbccccccccccccccccccccccccccccccccccccccccccdcccccccccccbccdcccdcccccddccccccccccccccccccccdccccbdcccdccccccccccccbcccccdccccccccccccdcccdcccccccccddccccccccdcbcbcdcccbccccccccbdccccdccccccccccccccccccccfbccdcccbbcccccdcbcccbcccccccccccccccbdccccbccccccccbccccccbccbcccdcccccdccccdccccbcbcbcbcbcccbbccbcccccccbcdccbcbccccddcbccccccdbcccccccccccccbccbecccccccccccbcbdcdcbcbdcccdccccbbdccddccccccccbccceccccdcbcbcccccccccccbcccccdcccccbccccccccbccccccbdccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccbdcddcccccccccdccccccccccccccdccccccccdcccccddcbbccccccccddcccccccddccdccccccccccccbdcdddcccccccbccccbdccccccdccccccccccccbccccccccccccdcccdcccdccccccbcccbcbcccccbccccccccccccdcdcccccccccdcccccccccccccccccccccccccccccccccccccccccbcdccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccdcbdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccdcdcccccccccccccccccccccccccccccccdccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccdccccccccccdcccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccdcccccdcccdcccdccbcccccccccccccccdccccccbccccccdccccdcccdcddccccdcbccccccccccccccccccdccccccdcccdcccccccccdccccccccccccccccccccccdcdcdcccdcccccccccdccccccdccccccccccccccccccccdcccccccccbccccccccccccccccccccccdcccccdccccccccccccccccccccccdccccccccccccccccdcccccccccbdcdbcceccbcdcbdcdccbccccccdccbcbccbccdeccdcddccccccccecccccccdcccbdccebcbcddcdccbbddccbcccdccccccccbccdcbcdccccccdcccccbcdccdbdddccbccccdccccdcdccdccccecdccccccccecccccccbcdccccdccbdcbccdcdccdcbcccdccccccdccccccdccbcdcdcccbbdcdccccbdbdccddccccddbd]ekmg\``]_]_cY\^d^^mfe]cgjk\_ng]`d^b`ckgidghf__dki`lhhgdcfap^fdaPe[ad[jfWbedid`mijegb`_Y`dg^dYa^ffbi_cdbZid]e^fceeo_^hc_fWahde\baiadbhYjc`ii_gaZaa^le`dij_bj`d_a^nd\d]_ia`dae]beef\l^debbh`befjgeimhf]f__ggdcgf`eb]fcface`bk^agadYefd\`fdpcecc^becafk`aXibZ_c`cdddcccdccccccccbdcdcddccccdccceccdccccdcdbcccdccccddddbccdccdbccbccbcdccccccccccccccccdcdcccddcccccccdcddccccccccccccdddcbcccccbcbcccccdbdccbccdccccccbdcccccdccccdcddcddcbcbbdcdcccdcccdcccceccdcddbcdcddcdcccccccdccdcdcdcccbdcccccccccdcdcccdcdcdcbcddccccccccccccccccdcccccccccccccdcccccdccdcccccccccccccccdcccccccccccccdccccdcccccccccccdccccccccccccdcccccdcccccccccccccdcdcdccccccccccccccccdcccccccdccccccccccccccccccccccccdccccccccccccccccccccccccccccccdcccccbdccccccccdccccccccccccccccccdccccdcccccbcccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbceebadce`dbfdbdbdbcbdbcfeefeccdddbbbcdfbdccebccddbddfbbbdcedcedccfddbcdccbdbcededbdhccedbfbcbbccbeceabdcdadfddhcbecddcfbddbdedbdabfadccbcebdbdbdfbdcbddec`dbcdeebbecececdcadbcfcccabcccdddddddbcdddcddbdbdddf`facbfddeaccd_ddgeedccccdcafecbdegcccd^cbeeddecde`cccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdddbccdedcccccdccdceccbdddcecdebccddbccddccdcdcccccccdbabcdeedddcbdcddccdbccddcdbcdcdccceccdccccdcdcddcebdcdcdcbdcedecddddcddccefbdddeccdcdcccdceededddcbdbdccecdccccbedccdccbddceceddccbddcccddcdccbcdbbccccddccbddcccbddccdddcddbcddddcccbccdcccccbdaddcdccccaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccdccccccccccccccccccdcccccccccccccccccccccccccccccccccccbcddcdccccccccdccccccccccccccccccccccccccccccccddccccdbcccccccccccccbccccccccccccdcbccccccccbcccdcdccccccccccccccccccccccccccccbcccccccccbcdccccbdcccccccccccccccccccccdccbcccccccccccccccccdccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbdcddcbcdccbccccccccccddccccdddcddccddccccccdcdccdddcbccdccccccccbccccbcbccccbccccccdcbddcddcccdbcccccdbdcdbccbdddbbccdcccccdccccccccddccccccbccccccdcccccbbccdccbdcddcdcccccbcbccbcccccccbcdcccccccccddddcccccdcdcccccdcdbcdcdccccdbcdcdcdccccccccccbdccccdcdbdbZa]b^ed`^jef`d\c[`i[^bai^aVmZWbgXc_]fi`ig`nc[cdjsWp^ZdbbnmicdXb`i^e]hgacf^\dbdaaXXYigbd`_aZfoic]ke`ahbgc\cblagacdfUd^fi^eg]g]_`ccicbhdhdgZ_aafcbhjhjd\adae]`djniaiabajtffck\^lkOebhcb`hbf\b]cni\cjYibc\pk`jabehgi_ggeckf\]kf_dbic_[he`bb`fecdedkafed^caghgj`[bccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccheacch`ed_[jhbad``fa`b_gdceb`ccaidbdfhedlcad^bg[fdgc`fdcdZdddcaiecgif__eceeddf_b_bjacd_d^ccad_ifdf^`d_f`_fg^b^\jh[cacafggccc_c_hg_ej^da^_bgba^cggn\dl]ia`jicZbd^dia`cc_e^^dcf`dfkhccb`a]ffcbdncbea`g_^`beddabageifbgf]dcgdg^fmde^\ccbhe_jab\dfdfgdecb`fggodel_ddccccccccccdcccccccccdccccdcdccccdccdccccdcdccccccdccccccccccccccccccddcdccdccccccccdcccccccdccccccccccccccbddcccccccdcccccccddcccdccccccccccccccccdcccccccccccccddccccdcdcdccccccccccdccccccccdcccccbdccdccccccccccccccccccccdcccccdddccccccccccdccccccccccddccccccbccccdcccccdccbccccccccccdccccccdcccbcccccdccbcccccbcccccccbccccccccccdccccbcbccccccccccdccccccbcbcccccbdcccdcccdccccbcbccccccdbcccdcccccbcccbcdcccccdccdccccccccccccddcbcccccccdcccbccbcccccccccccdccccccccccccdcccbcdccbcccccccccccccccbcbcccccccddccccbccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcdccccccccccccddccdcccccccccccccccccdccccdccccccccccccccccccccccccccccccccccddcccccccccccdddccccccdccdcccdccccdcccccccdcccccccccccccdccdccccddcccccccccccccccccdcdcccdccdccccccccdcccdcccccccccccccccccccdcccdddcccdccccdccccccdcdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddbdacbdcccddccedcdcbcbdbc`dbdccccaeddcbcedbbfbbbddcddecabdcbccccfddbdddddccdcdcbbeccbdbbccdccdbeedcbccdbbcdcdcebcdbbcccbeecdbcabdcccbdccccceeccabcccddbeebecdcddccdbbccdcccacacecdecddccbbbcddccccddbcdcdbcddfcccddbcccbdbbcddddbbbdccdde`dcaddcddcacdfecccdccbbfe^_bbkad_kch_mifbadg]dZh\^`f^]c_ageedbe]f`cj^ead]hiahe`_f]bh[cch]fdf]cjeditfe[dke^`^cfig`bdhhamol_cflha`c^`dcW^ada_fa[jeag`X_bb^c^_d]ne`iYw_`_`Oabgec[fi[gafdjgcliqYj`^iaagblcg^`l^fi^l]hbabddbe]afhagcnfd`mk`bdhdfehgchi_arfhcgicgadecc^i_b_clac\[cfk`a_gabd^bdZ_de^dcbg[ckb_dedg^bfbmf[jagbfdagaalb`ah]aa`ebe[agb[h[b]eheZlhd[j^nY^d\^`fZ[_f`aigei\begeagfjcbg^`hddccmfdeahf[hbbedf__bgZ^becm_`bcY`\daj_^_bd_oq_ef_fec_a[db`i_c`gglag]_e`cZaakcaW\cadhbZdabaghjhd`hb`ei`__c`had\^`e[g`g]_Zhkacejigb^j\Zd_ljaeadehfbbgd_elcak\hb__\iababZigd`ZefffYjlb\hcbijZb`diQ^\agZcamhc]g_bd^aphhcpb_abWaaf\dh_``f_e]fo[]acdfYnd\ahcaabbd\anhfbii`X^gf`WeVf`hdbdf[febghh`a^gahfljkdapb]mfeWcbk`dajddht_fdZbn`hWbm]lab]ei]gXji`boa^XUf^fcdgcd`e]gfj^_djdd\[b]bh\bdmnblh_lnbc`ecc^``ciffcdb^g]akfhccf`cieb_c_egonQodcZdk_Zafak\ec]beabe_ef^hcYflbZegah_me[pjcdje_g_ffba]kjkcjg_`ebehee^c\^ee_eh^fYcbhg^gh`_``doj^c^bi^^__^fTe`ee]ka_hghacnY\_e\dmfc^bab[^bljcgolldc[jfac`^iek_gfaZbgfcai^Y_iaieW[edjd^cib_]`Wiaggbbf[f`ab_^eV]^e]gZbjWkcjrhZadagd]i^jeboZhjebbg]dbbf]aajcio_^modaa[hhuaddak\acdihj_ehXe_dcbdia[kZf^TodbeYk`mdrWfVdmZ^hkabnXbbgfa`^fnmjag^V\^ja[]aYbcg_iegkUi^[[g_lgh^f_c`V\^gf^`le\Wfe`Yhmfha`bhX]\Zpkacgkrh\ig_oa]cccgabiV[e_hgfaX_a\d[dl\a`^g`mgZd`oak_^n]e_`eb[\`d^ag\ThahZ[bj[ee^qg`b\UbfcenejdXdUSicjhbmc^djc`ccegadfece`faedbcbc`dehdedc^beddefbfeedb`ffdbbegeegg`geb`g^fagcab`i``fgbab]bbd_ahkaccd^ccbbecafachb_gfcfaecebeeddfcabf`fgbgebfae`bceeacb`ab_gdffced_``cccd__e^cebaefacfadgbhdge`cci`gdbee`fa^ebecgfdbcb`gcabbecfdbf_cdddc^d_cflaic`bfabaafib`ce]a_d_ddeaahc_chbagbchcagcddcbccdbdcbedbcdbcecdcccbddcbcdbeddccddeccddbcdbbccdbbcbccccbccccddcbcdcbecccccbdcdddddabbdcdcbbbccbedecbcddedfdcdecbdbccabbaddddcbdcbddcccbcbcceccbbbabecddcdcbcbdcbcdecccebececedbdbdaccecbbbcccbddccccacdceebdcbbcbbdeccbbddbdacccdbccadcacdcdbbdccdccddccdbe^bdhldiV_fg\gnpnkfe\wbbcicZccZieVbch`dWih``]fWea[\fgRfpeSZkg`c[idfb_kee_\_ecjgi\e`c^_]jikggbdfbhb_]fac`iZe\b_l^oaceekn`afS`ghh^bZUZlbR_gcmhclgi`bd^knhef[dihc[ejegWkgghfo\[]ip`_gi`UofaidjV^dmnch`Xch\il`ceddi\`ccbf_h_caj]Recc^dbgeg_KgCa]cdaWfiddffem`_]]lfYZskmehb`h^cfe`X_cqfaiaddgehfce]cd_lfhee^ggZ_ajgckV`g`akjWcZejfl^_c]k^ac_j^Yaeecef`elgaf`d`dge^aaZ_ckZe]he_i^]_bddg]jffd_hdgXf`legcah\]dfdgdiZed_kg`acdcaeWg]c]dgibcZd\gfb__\agcccjlRfaZccnki_^d`kefdabbdhbXjenmkbd]gdbbaciee^dhfjdqfi`lcbWUe_fVba^fo\aid]h^bZqbfYfddbaaabb`afacdec``de``accfde`e_fe`feabdcdeaebbgeeedahe_haeecd_bbe`dbdecbfcfadecaf`dccaa^afdacbafbddacbdac^ccccac`bcdd`fbc^ccdde`eca^bcafadbbacedddcbacbfdefdbbdhbdacccdbab`e_bedbadeaccdebeadceabbbedbecacaeecadedabddjdgbace`aedhaceceadf``dcdaddecaidbadb`bcb\^f`hb_U`_dgiaidXg][hWf^^fZep`dZfbXhj]hcegkcec^ghjj\fb_\_dV]\]ffedfcneci`aeigf\b^eacbiaZ\b`afWdghbi`]cghdfapea\ag_f^gg]bddg[a]_gc`eji_d^^\c]Zkcd]a`e`gg]j^`lclff^WeW_`Zkdehebf]_c\gbfXaf]]henghYbecgh\ijboi_g[a^a`^nddmk`e^\]fi\gb_gajb_pc`gjadnagggdcljb[`i]]Yf`dbbcYd[h^]cN]hdgadh`nWfdvbfk]bg_bU_\ej^_\Z[mmbedfghh\bW^oj[ehedl`WfbdehjcY_^fhkeh_kZchegXb^Yjh[S_fhdf`Xd[f]l[`ggc_cebcuocakjqi_k_bda^pdd^balZ`cgYga`o^dhjhca]e_jc_e\kbfe\`ic`Zc[]hbbXaahaj_gfpg[ofhdbYbcbYpdd\maacj`daknVWYko_hl`o_^r_bac[fneadjecfd`ibf[h`V^nbbejf_gdpb``cl``_]f^cmhde`cmfgibejfa\a_hh_egi]_dgld^hccjdabcadge`ahada`dbiag`g]]a^eaddbde^__cff^d^deh^gg[kfcdee`ljeffafbec\baeaabbdgdja_ecbfgedhba_ddfb``^\be_ke_fcdeech_i`blcbbd[bf[jqicddgdgb`Zcdaaddcdfd^^d_^cllaahlk`cafcje`gbbdcefg_bkfdfaccfhbacbaeccc`da^eeeccc`dccbaeabbabdbdfcdcddebde`bcgdcfbcedcdbb`cdceddcdafbbddabbccecdcaea`dbacc_dcadadda`abade`ecbcde`bcdccbdac`eedbccceeedccccceaagbdcacdebdbecefdbecbd`_bdf`gcf_bcdcabac^bcdbedebbceebcebbcbbcfcbdecddfbcb`bddbdfcbae`adeccbcdbbcdbddcededcaaeeeab_cabcbccbeabcXj`bc]i]e`]jhY\[`aq]_lhddmihgfajahbdf_o]hle]]\ed^baa\X\[`[babcbpaiY]X^facboca`]gYc^_^i^qkYh`^`cdbe[mfjbhckbch]`k^`li[ddg`nW\enggeia[`edlkfda]lZkcff_npdkib]leY]^`ed_egra^[jea`cla]adUmWahb`qj]\d]mpekhdahSaac\fj]gii^_hpffTZb[j^ZZhe]sf`eaj\bgj^`en[]Xgcjkdh`cc`ccbcbbced_dedefbdfbaccabdcccdedaeecdcfdbbcacbcdagceecbbcdcbdcc`cfdcbacedeedcdaeccdecdbddb`dccabeadcbhbdbdcdddabbfdaedbeddcedcebbfaddfabdeddccbdccaadc`bddecdebceeebabbdebceeeedfcfdcbbgdbcddecbbbcdecdcebcbb`bacfedbbddcbebceddbebcdcccfcebbdcdddb_ebbeeccecbdcd[cgZpa\ie^ebekak_bb^cgob^dckefcR]`lgZk\dbh`jabc]]cXdjdhjac]cdflej^`_cgcd_fe\fdikrddmfdemhefadb`c^_]]egek`dZb`\cjhWcZdge`bc_cgajef]]ifa`dchd][]ecfrc`bb\fhejedc^`\ccil^bajdhZelb`]e^d`ccfUjfg\a_Z_lc_egX`cafhcdkWaeWk\f]c]l`gYbc[\ecfab`ehe\`ngahegYeh`acn`fk_ffhbbcccbbcccccbcbccccbcccccbccbcdbbdcdcbdccccbddccccccbcbccccbcccbccccbccdddbcdccccccddbbcccbccbcbcdcccccbcbccbcbccccbdccccbdcdcccbcdcccccdcccbccbcbdccbbbeccccbcccbbcbdcbcccbcccbcbcddbcdccccbdcccccccccbcccbccccccccbccccccbcbccdcbcccdcddcccdccbcdbccdcccdbcccb_WkNi[Tbdda^gm`gdb[d`Vbghc^obWa\m_ciVdiWbhZ[]MkdagehkNjfXhZi_SVke[Zbgbdcgmh^_if\`pV]^kRYUadjqojp_h]]f`e`kf_bhe]_T^`gheZgSbZUj[mdaiNnYnkhg^X\eb`\hrjpPekinghdieYk\\q\ida^gu]kX^mig\obcFf^ckfnk`dRZvejl]kegdocXgfR]f^]a[etZo]dYrjUl[hr`da[j`]ijebh_lhecauwbncncYegdcdaeabfcdc`fa_ddcadb`cebcfgbdeeefc_^bbbfbd^b`abbfehbdbehbbfgcaabcbd`baaceb``cfdddbd`cacd`dga`abh`bbeaaee^aadabbc_`cebbebcbafbcbede_bbdedfdc_cdceha`eefeebcadba_abcbeadddcec_bcafcd^ccabecbiccbbag`addc`dcbceadadb^b^gdifbb`cdcdcfdadcccdaecbfc`cbadbcdcbabcaffcccbccddbbccccccbcccdbcddcbcbcbcbccccbcccbadbcbdbcccccbbcbcddccccccccbcccbcbccbdccdbbcccccbcccbbbcbbccbcccbcccbcdcbdbdcdbcdccccccbbcccccccdbcccbccccbbccbacccbcbcbccbaaacddcbccecdbccbcddccbdcbdccccddbbbddccdccbdcdabcccccbcbcdccdcccdcccbbcccccccbbcdbccabcbccccdcdccccccccccdccecdddeccddcbdcccccccdcdccacbccbcdbcbccbcbdcccdcadcccdbcdbccdbadbcbbccccbccbcccbbcbccbcccdcccccbdbbcccedddbbcecdecddddccdcbecbcdccccdccbcbbbcdcaedccbbdbbcdccbbdbdbcdbdccddbdbcccccdbccccdccbbcbcbcbcccdbcdcddcabcdccdbbccdcbbccbcbbebbbcbcccccdeg\^e]`jY[kkmgim`^fo_gb_[YqSe`Zkshk`kY`jcji^cbbSgfjcZjhjhcZhbb^_ggh]gjeo]bbj\hf[b[ee\hcdddd^ddjf]rbgghjiiTfinamj[ldrcbj[[Z[banh^ipYea_[egehaacoj^k]]befgJcddjY_k]^^Xoekjg`al\dbf\epXdemee[_bYe^iZadjckjblbg\dgS^djZidi]cdaikoYk_U][\bNcikbaecjdf^^fwb]_`h^iiri[mlhggiadfkbk^l^```ie_eabg^bja]_c`_bf\bb]ghanf^ndabhic`jeh`Zgcegeedeg][c`fi]babibgca_de`aa`eahdeaXhe[cdigdhaa`cgb\f[ee_dgcaak^d_ce`b]aedaefcjdbcfickcbgfjfae^aceai_dcekbd^fgm`bgcdjlgcchcaededckhfi^_ddab_eb`[i`e^lcceeb`Zc`^[e^ao`ebeddf`b[laegae`ee^c`[ddb^dee^g`^hkbb_`hdb`ujmcnbn]b_hZZY_dcjjWajfep\pblhe[]`ifjWi]edfn_a\_c_dm`^adefZfed`hif^ed]na_g]o[g^]a]]vcjb\bdpkVdfeg`Z`e_ada`fflfSXdUjhk^lhib^bi_efh^d]`Vlddap^^_icSb`\ebf_[aVhVddooaf\\i^^mfcffjh^q[Z_fh`fnbn[]ga[e`]c`g^bgeeZejoedZ[Wl`ecca_h^bgmWdck_W^hd_]aav^tWgcggcejddgei``ik_ef^_bddeiaaci^aahkcacgp`bgid[ia_g^a]^dge^ebeafa]ahbkmi`g^e_c[YleXbc_d`alZj[Vd^_Zgmc`ij^gcf]eVn`[_omWZb^[ebmf`gae`^gWqdb[fahj]dReieZsZendh^_\_bYd^elj^i]W\_f^^`q`icWa^\icZejhakf[]obffce]eZ\`b`a_bWbiibhgX`ehd[gd_gec_g\][`gtl`_g[]^_\\a[WZjbddafd]Yd[a]fia^`hbadea\ccppc`bfg_fe[g\b]fgi`dgg`eflYg_aaac_a_nl[medhgbfc`dd`^j__djg]fi]a`\offgk\bkeabgc`]hgeba]haecefjbaddcgldkgZcdgcfd`hhe`^ife^ba_[gagb]a_`c[d[f\d`]df`f\a^bhd_akcng]eiccdgaa^fghgjf\\fh_a^fg`icf^dea_beei^]ef^h\]cedec^]eaX]e]``fbddf^^d\eZ`bl_`^g^cdccddccccdcdccccbddccbcccdcdccbddcccccdccdcccdccdcbcdcccdcccccccbcccdccdccccddccddcdcccccdccdccccccdcccbcdccccbcdcccbcdddccccdcccccbccccccbcdccccccddccccbcccdcccccddcdcddcccccccccdcdccdccdddcdcccccdcdccccdccddbbdcccdcccdcddeccdcccccccbccddccddcccccccccccceb`mcafs\falrfk_ka]cbhm\^bYgdXdhbdacuaZU\nZkGhg[omk[feil\`dk`fnnhjcdSmei^TcZlgqoep[]`^cq]cXaY|dV^gddqa_c{d`\^ccek^dafVmcfe`mhhqm`\U[gifdeaekq^kW\dp]}p`boh`ccjbhcsoSrS[kc^]LYg\bbaWdX\^Yabl^nkoTjemd_chX^j\nc`cYbe`RfuT`XX_Y^edb[]^pcZbf^_d]fe_ZdfYjmZdkOb\bm]Tf]l]c`jecfe`mfhdb\ci]bafbebb]fmdWcaWghh_mcghadpad^eY]_gfeaa]W[cif`p`g^c[bid]hkf_cc`bigad`_hgab_jchcfgfki`fdddgb`Vfdd^_i`]jbldbc^i]gi^kdba`jiYbf^eaMbbebbfdeafgeckg`a_^bac_fgeedj\dcaff`d_l`feegf\k`Yi`eh[cfg`c]_deb\rd^gaf[b]ieai`V__bidbhmfdadbaj`l\k_egk``fck`fb_dbjl_afdfcpeX_m^acdaj^\Uc]f`e_bjefihdiddee^dc\k_]daffeVg[b]^gkjhiZb^`bfchbj`Yaedl]beel^ee^ceZmgjb_eekblbf_\^[ad]f[dgbYb`k^Z`eff]h_bbegi^gWdhee]ackr]dbflcgVgiVbdae`iid_c_egh_ede`i]gd]d_as\i^af_^jia`bfgd^a]dghoh_jabb_ba_`]ejYgaei]ghfeeaa`eh]hf`[fel]l\eglfdaekZc`c]ijd`_[beVgddbemeafahd[ydgibbX^gc`a]ahie`fd\dgiqccdoWaffdc[`cbha^fgeeb`gkdfcbilaac]fcid^[bcjcd`Za\e[_icjldbYcrbci`f]jceclhc^_`foff`XaoeihfZb_Yg`__```bag_e]cdOgbddhgb`f^]a]_akaffi_dYeagX[dkge_g`ad`dekcg]c^ddfagfZm\fb`[hcc`_d`ddici_]dg[gda[ej\j`fcZ_d`eaceajhZbai^dfb`bbcif`Zaajbhea^accbgh_ka`e_ah\Zb_`j\ag_^f]ecf`a__becccef[`fgf_ajdgc^cccef``e]_iiegad_`b\akgbalifachbfgabhiZdaacd^hcfb`Zfebb^abc]]bfgdd[a]i\f`[cfgchih_gdc`e`m\bddcgkbdgbfccsd_^gaZ^[fdagi^^]`\ff^adgef`^cg\a^a_egc^bcihh[`ee`_eg`]e`Zbc_cdfj^dg\ccdccddcacdbdbdceccbdccccbbcdbbbcbbcccdccdcccccbbcccbacccaacbdaccbcccccccdcbbecbcdcbdcdcccbbccbccbdbcbccccbdecdddcddddcdddbccbbbcdccdcccdcbbecddddccbdcdaeccaddcdecdabbccbdbebccddcdccbcdccadcdcccbbbadccddcedcccdccdcbcabcebcccecebbcdccbccebddbecbaccdbbccbbcaafdc\ea`he^c]cmdb]cebb]fga]cbefddacaabcddb__af_a`a`eb`jeggb]ffabbcbegdelafcf^cebddddaabdc_beeeaf^cfg[gbfbgegdc\_c`dff_bfceleidebfh\eec`caedbbffcfdegbh`cj_hfddbac_ce`__bff`h_cddaee`da_c\_bbc`icecfcddee`e]`^aae`bhe_eededgeffcaec`ai_eca`^]ceehfdbdfbefahha__deccccbbcccccccdcccccbcccccccccccccccccccccccccbcbbccccccccccccccccccccccccccccdccccccbcccbccccccccccccccccccccccccccbcccccccccccccccccbcccccccccccccccbccdcccbdcccccccccccccdccdcccccdccccccccccbcccccccccccccccccccccccccccdcccccccccccdccccccccccccccccccccccccgdmgf\jodhbd_Wdeddebcjbbjbg^bfaefei]cdX^Zddg^ehgfagc]ndMk^Xiba`f`]gjbagc[eib^egVdbggecbdfeaiddcYf[a^bbge`cja]d`_c\cefebecgek`hafaiiS^`dee[`ibXaahhde`agaicg^m_ckahcZpklda^ebgfbfeiSbdj_a^\ac_ldom`cZZef]^ff`^c_]lZbfddgbgbekbkbbafega\ghaar_e`cboYg^`_f]_caii`^cbccbcccccbdccbccbcbccbdbcbcdbcdccacdcdbcbbccbccdcbccbddcccdccbcbdbdcbbbccbbcbcdcdcbbdccbdacccbcccbdcdbbdcdbccccdccccccccdcccdbcbccdbccdcbbbbbbdcccdcdccbdcbdcbccdccccbcdbddcccccccbcbdcbccbbddccccccbcdcccdccbcccaccbdccbcddccccccbcccdcbcdedccbcbcbbcccdbccccdccccccccccccccccccccccccccdccccccccccccccccccddccbcccccdbcccccccccccccccdcccccccccccddcccdccccccdccccbcccccccccccccbccccccccccccbccccccdccccbccccccccccccdcccdccccccccccccccdccccccccccccccccccdcccccdccddcccbdcccccdcbcccccccccccbcccdccccccccccccccccccdcccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccdccccccccbccccccccccccccccdbcccccccccccccccccccdcccdcccccccccccccccccccccccccccccccccccccccdcccccdccccccccccccccccccccccccccccdcccdcccccdeebbedebbccdbde`cgdbbbedbbdbadececbdab`bcdcdccddcbbcbcbcdaecbdbcccddbgceabcbdcbcacacdecbccecbadbacbccbebddgdeaebcbcddcbddcadbecbdbdbcabeabcccebca`dcdbebdacccdbddcbdbdccadcbcddbbdbecddccebcbacedacaefddbeddbbddbccbdcddfcdcbcbdddddbbacbdaddbdbceaacdcbaccccdcccdccccccdcccccdcccdccdcdddcdccddcccdccccdcccdcccccccccccccccdccccdccccccbccddccdcbcccccccccccccccccccdccbcccccdcdccccccccccccccccdccbccccccccccddccbccccccccccccdccccccbcccccccccccccccccccccccccdccccdcccccdcbdccccdcdcdccccdcccccbcdcddccccccdccccccccc\Yj`teb][`ihj\uQTsajl^„\hm>aoT^oheYN_R`O\]gXWAeN‚qUccUshAZU]HayUpXav`gelZ8K_Y\fZi^XqrP]wcTR_Kv`WKcL_eV`me`i>]jLcf:]gWwb\`UmaeiV\_lvPdZooTzVtjXKKfMkhYobKz3tiZ`_hqNls]wdlkuMuYWFViGwWgvffjjan\ZlooM[UkXZtbe=fU?€eVipp[j]ylGnYghBPtWe4cqrk`}Med_\Vr}]PNZW@jc]Zycccddccccccccdcccdddccdcdddddddccdccdccddcccccdcccccdcccccccccccccccccdcdcccccbcddcdccccccdcdddcdcccdcccccccccdcccdcdcccdcccddcccbcddccdccccccdccdccdcccccccbccccdcdcdddcccbcccccdcccccdcdcdcddccccccccbddcdddcddcbbdcccdccbcdccbcddcdcccddcddcccdcccdbbccccccdcid^feebdYZeo_X^gee_`cedb`_f`h[Xmeb^ca_a^bed`icc[`ccmceg[kebf^aa\ac``Y^ab^cZahkle_maci_c[]ab`iakXm[n_abd`pb]jjbbeeddgfeahdgkagel]^eg[`_cabqe`eggcig^b[gc_ed[hchcdcaYdgbf_ba`ackbeacjg^d_dli\oadgl^ia\bcdff`_afigfgWeibd]ggdXdif\feb`[dbeh`ddfebc[`ia`Xfh_jW`Y\`_\bdbdbdcbcccccceccdccccacdbcbbccccedcdbcdccccdddbdeddbddbcccdcdbccdbccccecebccdccdcdbcdcbbdccccabcdacdcccbcccccdcbbccdcddcbccacbcdeccedcbbccdbbccdfcbbdbdebceecdccbccbdcdccdeadcbcddcccdccccbbcbccccdcbebccdbbcddcccebbbcdddecccacbbbbbcccbbdcbccdcceddbbbcbdbccdqibghfahcSZ`j`\ea`je^jbebeecZbidmnocl[e_jee_VibZcUgaZ]jfg^`di]csedm_\c\kd_ahUl_eWblkXcZcg`cege`kc_cnlhlf^bbcja^`bd`eddcdgee^ec[amg`fce\ebdfa\^chdjYf_fg``h^hf_be_e\`af^afdaceloaak_ebbZdafgj`egjaZ``jagee\`\dbig]\c\W\d[k]l]e\af[jkcb^_^i^f_\occ]e`geUbdipkckdab`cbcccccdbec`haebfbeegacedbfdd`_cbdfeefccdfbc]d_bafc_f_ha`a`fceeeabadf`fh_dejbeabbdefbb`dfa`eacibcbdbddbdecb`haabgcb`ebdgfeafcd`g]degcdddedaaddbcaea`b]fcdedcbdcdaicebccbcebbabdeidd`cebbcc_dddgdcciddb`e_aaabcbcdcdc_cddfcd_dfeaa``ciccfb``acd`gc`dbbacdedceac_bcbccccccbcccbcbcbdccdcbdccdbcccccbcddccbccccdcccccdbccacccdbcccbbdcdccbccdccbbbcccccccccdccdcdccdcccbdcbddcccccccddcddbccccbcdccdccccbccbccdcccccccdccdccccdcccccccccdbdccdcdcccccdbccccccbcccdcccccccddddccccbbbddccdccccddccbcbdcccdcccdcdcdcccdcccbbdccdecbcc`]h]qcf`X_]afdbhgdcace_bcjgc`ahahn`i_echbej`cfdf`\gd`qhh^`Yfc`cdgdfY__]ff_hhdbcddfghcjd\hdefe^mf^ddjfb`dh\]d]_^eqbo`bfckb^a\hbUcc_iedfbddc_k`ef_\chc`\`geaidnhdkgelaoemfddkbfhbckheagbffZd]lhhkee_Zcbieg^^egejk^`fbmegjb`ck`hcZfgka`\_^Y]bg\aceeacjbgcd^lc\d^a`[jan`Zhdgha_kbfckYiqd_W\e`k_\cb[\dgni`efmegeg^]_[``___bhag_Xg^b[d[f`aZ_lfd__jcfb^iY^\fjhgh]aaobhf_emkigfee[_ckj`fh^i]beebi_`jj`akob`jc^]fd[i]`\dh]ajdmbbuk^fqpicbd`fha]elhbjbgdaiXcf_dVclbghh`fqbe\b_b`__ZaabZgk\ae^joadcSec]Ybbgjkiceb]cida^gmb]dfbiUih]plddnbgp\n\sW^c_qdZ_jih`jad^t`m]iggh[__eWp[S`lbf[c^zfiZ_fhacfalZ]ahc[`g]ej`he^^glh^[egckWYdnWZjvliafX`yhj[`Yja^`dc]UjfgebaZof^^^felmZjY\bdrf_fmp^e\e]]LlcY_cWa^febffVR^coXUb`_jka^dp[h^\nhcffemUeVd`^`oPb]YZgVuml^oiph^hcUla\[bZlcfdkcgmc`\bW]r^d]fl[]`hh^ieddaie^Uhul]b`aadod``dabd^l^`e_jca`fddfieab^]c`_bd_da^eagabd_ae\^eg_c`ca`beclbcc`cbj`bdf^\da^cfid`bid[e_\f[]ffae_egbafbcg\d\gacffd`bja``hf[gbdeeaeecia`]b_^e_facc__ajaifb]_abb^d\jbecdcof`g\]ddcabchebb_be``dYb_fdcfkeei__`k\fblgcf`e^_`af]bhbgbace^ccdZ^ecedhchde`^gdc`bkik\Rcmas`^baZnefkseTYbr^jib\\Ted^dbjike^bhniahf]jfhgej\hoicg]efpqo\bZSdfjihkahp^Nda^bYen_gf_bcl^jkag`dfimfcfjpYmZkecekPWlcbdijmq[f]dsgfknbpeUmSfd`j[[fdNcU`PnfkegYb\f_Wlb^X^_fe`etjggdniahY`gVmh\sdegYehY_VRabLS]nQmdgcg]ecn_i\idedW_icZhnipdYWWh^_Zk\`\]_Wjlc^p\bjceabecld[`m_fcjd_baa`_gb_^cdb__odacYZadh`_eck]d]mgeadlbfe_^_l^aa][cbcjbmacih[iefdkekc_lcahbhf_`coh^`afg\eb__g]\da]Y_]eann_eefcc]ghd]biam]ghgffibRjaffdlmkc^fYfig`l]ecdk_]cfbah_iYdd]UbcjbdXckcfd^aac^fjefabdnhe^d]fiedjhg`c^lcabaf__i[c`]ebchhbc][ccch^cc`^^iadbc`[``heb_eff]ddgcca_]\`c[\ki\dbd``dcaa`_c^^cc^j`g]becidm_ee]ccacchgf`efb``ndeae_jccdffb\bd]cfbd_hfde_hb^fefbaa`f_i_cabd`ecb`fdecgha^bc`fa_bi`fhdkhmYd`eufadc`cdecbfba^cagb`kc]i``eieZhc_dcgd]idccacf]cgbheid`edd^jie\dj`gecai_i`ik\`cdfa]ebcdde_be`\gggchcidde`dccccccccbdcccddcdcdcccbdcccccddccbcdcbbbbccbdccbbbddccecdcbdcdcccccccbcbcdcbcbcdcdcbdbddccccccccdcbccccbcccbbbccdccccccdcecdccbdbdbcdddbcccbcdbbccbbccccccccbccbbcccdddccddcccbbbdcbbcbcbbdbdcccbdcccbbcdccccbcbcbdbcdcdbccbbbdccacccccbccccccccccccdbcccbcbccdccccbcccccccccccccccccbccccccccccccdccccccccccccccccccccbcccccccccccdccccccccddccccccccbccccbcccccccccccccccccccccdccccccccccccccccccccccccbcccccccccccccccdcccccccccbcccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccbcccddcccdccccccdcbccdccccbccbdccccedccdcdcdcddccdcdcdbcdddccedddddccdddcdccccdcdddecccdccccddcccccccdddcccdcccddccdddcdcccccdccdccdddcdccdcdccccddccdddccdccdcdcdddccddccccddcccdccccdccdccdccccecccdddcccbccdcdcccdccccddcddcdccccdccccccdcdccdddcdddcdcdddddcccdcccccbdccddcccccccdddcdcccdicc_bqcfkkdWkaZabfajd_giiXgkhbcg_g_TgebgcckcaVgmd`geecX]a_h]ncf_[hj_c[fde^^TUh[icdg]ZdcVddgmlj\cj]X[bfbdjigbj`glibeifd\j\^`eaTb^i``g[j]]^[ccZhc]h{ged]`]]_dY^[dbgeahkhi^i^d]ed_Xihj_[md\bmenmaiccb^Waab\j`abbcockc`W\\[_fZ^`f^ajefhgchc\jYbbddahdqhefkadfb\a]`cedbcdcddbcdcc`cbdcdeccddecdecbdbcbcccdedcccceccbdbdcccccbcdccbdecbedddcccccccdebcccddbcdbcdddcccbccccadccccecbedbccaccebcdbfddbdbbdcbacbbdbdacdccbddcccccabccbbddccbddddcdbcacacbccdbcdcccbcdccddeccbdcddccccbdbdcbcdcacdcbdbceeccbbedebcddccccbdcdebccbcfcacecccccde`ecccbdcdcdabccddebdedccdcccbdbbdbcecddcdbbcbcdccc_cbecbbdecfcabccbcccdcbceddcbbcddcccdbdccccbecbbcdcbbacdcddbbebdcdbcbcadcdcceeddececdcddcbbddcccccaaeabddbebbcbcccddbcbccbacdaedcbdccbcdccddccdddbccdcbbddcddbcbacecaaddcdaaacdebededccbddedbdceb`ddcbedcdZc`aab_pc_de\kjhiac]edcbce[^``^[j]bnafd]ca^b]abbbk^ed_j]^a`baf^_ggabZdfck`gblgl[fo^fbhdbdaaW_keefqj^bcjk_dl`e^bX]^[h\_d\ac`fd_f`amYX^^h_eUbhlb_c`\e^Y^cgnp__iZ_pfctbsblg]`cjhgbgkWei\Sj]g^h^`b`\kadjecfs`dfa`og`[c\ei]fpfWYoajgb^goic`]ac]dn`a_fcehkabgfhegche_egg_df^haeefbbc_bech`^bcgdccedfcaadgbafdbeeafaebdfehihd_badeacceaiccdadg_accbbfhebdceigchdbdiaha`ciafgdbc_cfb]cek``h\bcfe_hZfe^bdaddcebhbbcdi`af`fhfccbbjgafahZac`dgfebaecae`bh_`b`acaca`bhbc_cdbbeeacc`ggggejefada`Y`dac`f_c^`e^efaca`d`ddafgbcabd`cb`ccaegdaefhXaf]o[]WdY[eZdbefXd^khd[dhcfiY^daRVhagcWltQ[cefci[SZnWkZ^ma]fcdhXYeb`Vf]jca\ZS\clc[snagm_cbfnoklbj[hiighj`ZnhKW_c^agbjbjerdrm\uhl_WhZkriib^^k]`Veani`ge_]bgdWfdUr[UYd^oaa`mfg_kfjgbbgjYjkdbYa[VkpjbnSf]Yabeogf`[eY]fXil\if`YZYaedchh^v`l`_jkefegg^_bhh_j]]ilUrghccbbbbbc`ccdcc`acdcdccfbbddccccccbdcdbdbdbdcdcbbbccbccaccccac`acec`cbbcacbccccbccdcbccfcdbdccccbcabbfdc`bcdabbbdcddcbbabecabbdcddaceeddddbbbcbccaecbcbbbacadacbbbddbccdddcaecfdbbdad`bbcbbbdddbbccabcbdccdddcacccdcbdcabcb`_ccadcdddbedbcdddbdcbdbaecbbbbcbdaadcZ^jflgbc]`VoVdjbUh[\`hZWcxdabcl^hWakZ`e_ib\mia]b`f]YpVWfa_il[`_b_a^`j[YWgckk`bgfXeXesbhgdd`]e^gefa`bgY_`ljSbfYe^ZbiiagfecaS[eqi[\eXkkehkdjbdb[Xqk]edjiZi_a`ghce_ctb\aadc_ofcoadpcYehdTcejdonfcj_[nkf^fXcfebn_ab]b\dcdTgif`ac^h][Y_jnKwcKWhd\glc_gfbd[d]]dpijqhd]ccbcbdccbdbcccbbbbdddccdcdcbccbcdccccccddbdccdccbcddcedaccdbdcccbbccbcddddccbbcbcbcbcbbbcdcccdcbcdbcccbbbbccbccccbcbdcbcccdccccdbcccacccdbcbcddbcbdcdddccdbdcddbccbbcddbdccbbbcdcbccdccccccbddcddbdccbcbccdbdcdbbdcedcdcccbcdcd`ccbbcccdddebdbcbddcadcccdbccccca``hb^gecgcecjdbbc_agfacedfcidbe[abacfcc`ab`bc_`bdbbee`bbadddebidd`dgjedf``kedbeaab\eddc_effibccbefcbhe`chececdbj`fbh`dgc``_jecfaea\daffec_ge`adddfggddb^c``_`edebedad`ejeai`ddcgaccccbgdechbgc`aea_c^ecgbbdb`dcab^dZfgd_cabbfcfaac_iag`ccae``f`fgf^cdhac`acabfafbc`ccbdbdddcdacdcbccca`bbcdddccacdcdddccbcccdddccbcccdd`cbcbecbbbcccdcbcbdab`bdcbccceccbcabcbdcbbbbbdcbbacdbbbcebadacccdddcdcbbcdbcccaacbbccdcacchccccccccbccbcbbbcbccbccbcccebcbbbcdccdbccbbdddccbcbcbacdccdbdccddcbcccdccdbbdcdcbcbbcd`ddbcbcecbccdccdcccddbdbccdccdbdcccddcbdceddccdccccbccccddcccbccddccddcccdccdccdccccccdccdcccdddcdcccdbdccddccccccdbbcdccddcccdccccdccddddcccdccdcccccdedcccccccdccdcccccccdcccccbccdbdcccdbcdcddccdcbccddddccdbcccccbdcccdddcbecccccccccdddcbcccccdcecbcccdcdccdccbcbcdcccbccdcddccccdbcdcdccccdccccccccccbcccccccccccdcccccccccdccccccccccccdcdcccccccccccccccccccccccdcccccdcbccbcdcdccdcccccdccccccdccccdcccccbcccddcccccdcccccdcdcbcccccccccccccbccbccccbcccccccccccccccccccccddbbcccdbcdccccccccccdcdcccccccccccccccccdccdcccccccccccdccdcccccccccdcdcedbccdcebdccdccbbecbccdbcceddccccdcccdccbdcbccbddcdcccdddbcccbbddcdcbccdccbdccbecdccdceccdeddcccbcdcddccccdbbbbcdccddccccddddddcbcccccccbcdedbbdddcdfbcceddcccddbdbcdddcbcdccccbccccddcccccccddcdccedcccccccdcedcccedcdbcdbbcbccccdbbccbcdddcdccdcdbcddbecddccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccecfebcedeabbhe_dc_`cdddab^a`aacjdcdbea^daabe^aedff_cbh[gefeeece__dd_aaabc`bbfc^eebc`bac``bbecaf^]`dec`bbeafbbdaee^daccbfa_fbcd_cbchdfbd^`ffcccehb`cddae_accaahcaaddgbb^^aa_beeaccabagegdgiafccc^cecedaha`gcad_addea_cm`b`dkdcd`gfbcce`dahecc]``aaaeaccabacdaefbadccdcbcdcdcdcccccccccdcccdccccccdccdccccccbccccccccccbdbbcccbccdcccccccdccbbccccccccccdcbcbdcdcdbccccccdccccdcccccccccccccbccbdccccdccccccdccccccdcccccbbdbcccbccccccbccccccdccddcdccccccdcbccccccdccdbdccccdcccbcdccccccccdcccccdcccbdcbcccbbccccbbdcccccdcdcccccccbcccccbcccccdcccccddcccdcccbccdccccddccccccccbcccdcbccdbbddbcbccccccccdbcccccccccccccccbbcccdcbdcddcccbcccccccccccccccbccccddcbdcccccccccdcbdddcccccdbdcbccbccccbccccccccccccccccdccccccccccccccdccdccdbcddccccccccddcccccdccccccccbcccdcbccccccdccccccccccdhehh`k`gac`[hf\hb_d^gV]ckY]cgghei_gcd^\ffZkjbbqcf`Y`fejb^[`cdf\_`bfc_ae`aa^faee_cjedbe[iUcf`]`kdd`m^fmhdahfbg_^cda_ahh\lgelbhX\gbbhc]]Xh`c`^efdg_a_f`\abhmg__]ejhced_g\cZdcejajdjikdm_ggde]^]bdlkb\mcUfeaYb]dgbngcegjg_de_^egX`gmg_\^Zea]\_^eae`efafbhgg`cddckn`cccccccccdccbccccccbccdccbcccccccccccdccccccbcccdccccccccdccccccccccccdcccccccbccccccdcccccccccccccccccccccccccccbbccccccccccccccccccccccccccccccccccccccbdbcccccccccccccccdbccccccbccccccccccccccdcccdccccccccccccccccccccbccccccccccccccccccccccccccccccbcdccdcccccdccccccbcccccccbcdcccdcccdcbbdcccccccdcccccbccccccccccccccccccccccccccccccdcccccccbdccbccccbbccccccccccccccccccccbcccdccbccccccbccbccccccccccdccbcbccbccdccdccccccccdcccdcccccccdccccdcccccccccccccccdbccccccccccccccdcccccccbccccccbcccccccccbccccccccccccXgkWf]`_degdbec`efeiYx^ZcUbf^b`iViheeec^\iaef]akdenfldTigdhag[cla`\W[aj`jadk_`ihXa^\[j]fi_f[mZhl^aomgceee]`dmhbb]eh`fiaeYfWljebYlcYkejgkihhgabf[fvnf^sra^dajc`fjZ_ijai`b_jd^b`cXf^Yfj\cY^a`ljbnc]Y^\njV`ljabgWdeZ^kdQgZej_gg_g_mVefWq_h]cgTf_nYgem^^][qk\rf]\j_\dcccccbccdcbccdcccccbcccccccbccccccbccbdccbbccdccbbbccbcccccccccccdccccbccccbbcccbddccbbccdcdccbccccccccccdccbbebaccccdbcccccbccbdccccccbccccdcbcdccccbccccccbbbccbddcdcccbbccccdcccccbcbccdcbccccccccccbcbcddcccccbcbcbcccccccccddccccbccccbccbccccbccccccbbcccZb`ctiff`dafYdgZf]jg^saXeil^aakmWi\cmh^Xfe^UZ]mZhq_Uai)cZ_feh```hclbYc_e``^ic\\km]Zi_dlgiV\_i`lW^f[rkabik^\[bhie^``fffe`Xdbkfad`cmp_ekjm^b]nRfheev[hig^gfdgebXma`lX^khse`TVe[iTagVXegkgf]MX\vmcaYfkdp`]beimlU`^ibfehjJ_r]ajapicXacoaZc`n€dbfecebwdXf[b\omdjkq^gccbccccdbbccccccccccccdcdcbccbbccccbcdbcccbcbbdbdccccccbcccdbccccbccccbcbbccbbcccccccccddcccbcbbbcccccdccbdccccbbbcbccdbcccccdcbcbdccdcdcccdcbbccdccccccdbcbcccccccccdccccbdcddcbbcbcccccccccbbccccccccbdcdcccccbcbccccccccccccbcccbccbcccdcccccdbccdbbbdcbdcccd^icm]fd`dgn>nnf__q`fefaecng]dfXb`le_cc[doV_b]hi`fg_Zcfchgkogbab\sYofeh_m^`chigwbn_icl[hb`k\gfqad^eWmj\``mh\Wekhgn\hfpl^ZgijYa]hieZ]`nd`incl`lin^kfagibX_XeUbgdbam]gZo[b_oa^ckf^g`r[]gkofeZXeaiipbbeeidcfhcdagn_`af]YofIfS`f[e^h^obcjcVk[Zabo]Z[f_`hadfXi]`i_l]idccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccb_ffbg^ff_be\me]d^ece_]bc_[hdb_ak``i]c_dee_jdgbijji`^ekdk]dg[b]kdh[j`_gbbe[d_fieblacXcddaff`h`bddc_dfj`abh`e_`gjm[j_c`fhaa\e`j\d^d\edibebekcee^b\dbf_jZeb`Zcbedai]aabp]Ye_gccale\ck`]eibageaj_ffdha^c`efZccaagfZheabWdjX[Y]l[bXhaieZhbW``d`db`i`c]W\jb`S`\e\`af`occcccdccddccdccccccccccccccdcccbccbcbcccbcbcccbccccbdccccccccccccccccccccccbccdccccbcccccccdccccbccdccccccccdccccccccdccccbcccccccccccccddccccdcccccdccccccccccccccccccdcccccbccccccccccccccccdcccccccccccbcccbcccdccccdccbbcccdccccccccccdccdcdccccccccccccccccccccdccbbcddbccccccccccdcdccccccdcdcccccccccdcccdccccdcccccccccccddcdcccccbdccccccccdccdcccccccdccdccccccdcccccdcccbbcbcbcbccdcddcccbcccccccdccccccccccccccccccccccccdccccccccddccccccdbcccbccccdcccdccccdcccccccdddccccdccccccccccdccccdcccccccccdcccccccccccccdddddcccccccecbbcdccdcdcdcdbcdcdcbcbcccdcccccbdcccccbdbbddcbcbdcccddccccdcbcdcccccdcccdcccccdccbccddccccdccccdddccdcccdcdbbccccbccddcdddcdccccccbbbbdcccccccbedccdddcbccdccccbcbcccbcccccdcdcccdcccdcddbddccccbcccccddcccbdbccccdbccccdcdedccccbcccccccceccdcddblkcmdgsc^i`iI[aeaghm[x_\`ajAWr_zskfcch``fabkTu__gffcYhfje\\^iYrame`kigfbS^]k`Ygf]ZfauVohsa[ggnnfcfaredY`hgi\ZceVkif]hehYdfogdiZ]Zva`lV\S]fhbgbcfm_^bisfjo_^a|Thcbf`b\pcW_e[g[fYdf^[`\nXeU]i`]iiwcWi_^dfha_`a][^gWk[l`Ri\c^n_cncbF\fjf[cQasudYo_YaZlV_RXejjgbcQgccccccddcccddccccccccdccccdccccdccccccccccdcbdcccccccccdccccccccccccdcccdcccccbdccccccdcbcccccccdcdccccddddcccdcdcccccbcccccccccccdcbdcccdccccdccccdccccccccccccddcdcccdcccccbcccccccdcccdcccccdcccbcccccccccccccbccdcccccccccccccccccccccccdcccccccccccccbddccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccbcedccbccbcbdbccccccdccdcddcbcccbcbcbcccbddcccccbdbbbccbdcccccbbccbbcccccbcbcbbcccbbccbccccbcbbdcbbbccccbccbcccbccccbcbccccdccdcccccdcccccccbaccbcccccecccbcccccccbbccdcdcdbcccdcbcbecccbddccccccccbdccccccbcbcdccbacbccccbbccbbcbccdccbdbbcbdcbecccdcdccccccccccccccccccccccccccccccccccccccccdccccdccccccccccccccccccdcccccccccdcccdcccccccccccccccccccccccccccccccccccccbccccccccccdcccccccccccccccccccccdccdccccbcccccccccccccdcccccccccdccccccccdcccccccccdcccccccccccccccccccbcdccccccccccccdcccccccccccccbcccccccccccfhgmemjgdbdgnXcVh\fibe[^m\bbW\ee`kgfd`im\aeS^Xfjchq_]dXaeidejaTk]h\aEda[ho[ehhb]]fWa]WjicSe]^f`eePfhabib]UeadfZijia\bicmk_Ysefa[mjnectnstc\na[dUoi[e[`b[cbfgacjfbfSbcpik\X_dmZjdgg[fi]bf^dcrvk[h`^[[eccc_ZbchTjm^^kmgm^kki^dfibcq\i[dadqaq\dhbgij^fZc]mjdo]bVkl\ccccccccdccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccdcdcccccccccccccdccdccccccccccccccdccccccccccccccccccccdcccccccccccccccccccdcccccccccccccccccdcdccccccccccccccccccccccccccccdccccccccccdccdccccccccccccccccddccccccccccccccccccccccccchmk\a^SigUWldV[^`elXas`a\[[wfdilLhsd_haeSec]oioe^clrjm_bf\rVfkcucWdpLmfXdb]cOfb_NZhbQfiipXdg\YbhYTah[_lbaaa_X_W`dhddQ`ilnlfqe`^eedqnhfqblid]mV^i`bmh_]`ke``^oa_u_c^xS]\`gohfe`c\]dj_mVK_\`j`\egf_`Yd]ZYenlcjc^`l\]doXccUr]mm]oajnkZZaZ`hej[Zihige\^deYgXjne]m`jfdcdebccbcbbbdcbcdcbbecdbdcbcccbbbccdcdbdccdccbbddcccccbacbccbdcbbdccdcccccdbdbcccdccdcbbbbbccccacccccbbcccbccccddbccbcccccccbcbccbdbbbcccbbdbdddccccbccbadcbcdccdcdcccbbcbcbebdddcccccccdcccccccccddcdcccbcccccbcccbcdcdbecccdcbccdcccddccdccccccccabccbbbcccccbbekg``d`dfa\kb`fb]hih]ihdbgfgd`]`ceacbieaccak`bgibdckcdfcgcchbe^aefcgaeadge_dbe`afcdifb__dgjb`egdagc_ibbbdad_bekbcbe_faad`dZbhi`ce^c\fddi_`^]ea``eec_dfbk`dg_gdbdbjebgefa``ecb`bfce`l^bckgafcgaehcbcdfdd__bcgd^c]b_`edcjbcfbackab_egc_eagchbaief\chf`figbkagbgccccccccccccccdcccdccbccbcccccccccccccddcdccccccccccdddccdcccccccccdcccccccccccccccccccccccccccccdccccccccccbccccdcccccccdcccccccccccdcccccccccdcccdcdccdccccccccccccdcccbcccccccdcccccccccccccccccccdcccdccccccccccdccccccccccdcccdcdccccccccbccccccccccdccdccccccbccbafdbddcdeeacbfbdddbdcdcceceddcbdcbbbcbcagdccfcbdddbbddcceecdcefddddc`dcfcbbeaccbdedcbbccdeedhcfddcededccadcccdccdefeffacfegebecabbcbdbecfefcbfejgbi`dgbdaddeceedceedefbc^edbdeadecadbdbbcddfbbdebe_dfabbfbebefbccabcbc`efbaadcbabdcdeecbccdcbedfd_abbbcdcbej`X\X]raUX]]iQZ\i^jml]_zfFhU]_kcWXjdW\brsdjKWeT]hoaebWisfreeeScQbjac~j[v\^ErVonklrX]acjW^^df[ekJbdX`jljXrCii_cc``rbjc[aae_kdncccseiXc_i_i]`ZdmupkeejN_g]efcamn\PlfXe`bPhcdlchgphZ[kiakpemsboOach_hacqaqW^XhT]bgWmfc]Zbe`Scy^d`Zbn^cihgagd]dkfjba]aa]_Kh_ajmdnfr_dbdeddcbabddbccecd`d`dcbdedebdbgbeabd``cfecc`eaebbb`eccc`becddabfddcebcga`ccbccdccgdbdecbbcccdababbcacfbcffb`adcfdcbabdbbhecddbeadecd_dcbde_ccbcbdcddbcddcacfbcbgehgadadcdbccbaceccbedc_bbbdbch_eccaceadcdebddcddb]cddcbde`caddddeeddcdac`ccfdi`dfgbddc`cdb^bccdqhoi]d`fi\XjnkWX]`fdcWfj\p_y\bqk_dWUljk][g]^Wk\ckieiwn__effmVnbgV^m][faf[abk^nTagnnj`kt][]bcZ`g]dNcqdd``pn\dda]ee`d\fWsZhg]cZgb\hfTcOQfTbaZel[bppjcZeXfee\ca^b]bbw[hh_qj[r\hhieXb\ie^ffT^`^ffrZfhie[fmcVmh_[bgau[^cZ[eOhrbcfguf`r`ddgc[`iu`fYbkj[ajaqcgaj_^kaas_\^tWt^phhccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccjljcdTby^YfjccU`gcs\^o\X[UaggwndUVi[SfVg]ke`Se`feabbgeT]^_fcm`eYcYkajf^[\cZgcnbd`_bfdgp^bgVhdn_]^bcjdWX\dda]]og^^mbla`achcja`^uZd^lj_]cgeil_gYkj]xngh]ceQ_a`wjk`Zj`wlX_ZcgleYe_dj`__^b\S]hfa\^d\okcfWgcNgnn_idZZj^iihllJ^bodbe[eYf]fcVfd]_mdWm[aXSabg[^W_hcpqecegg`_\Xha^\`agXa\jcail_dmfRf\`egaY^e_Z`cqkejV]l_fdo``f]ka[p_]a]iX_fbaldaq\aPgZkjimc^cb`l^aXde[doWadVdkjdYkJcc\bc\ge`_]``]dgjkt]g\ngiZf`kidb_]]boflacjTYe_fcdbgiaZhc^c^]Wkcefcbdld][ddfijecf_bWadejh^glahXX[g^\cfaj`]d]fbaYdk^b_`eeaiehc_ic^bfjg_hh[``j`d_dhcbmkpcdccccdcdbdddecceddbdedcbbcbcccc`decdccdcccbcdeccdcccccbbbdcbbccbcebcccccddbcccddedddcbddcdbdccccdcccdcccbcccbbcbcbdcccdcddcccdddcbddddddebdbccdcccccdcccccbdbcdcccccdccddcdacbcccdcdccdbcccbcccdcdbdcdccbcccdcddccdbdbbedcdcddcbddcccccabccccdddbcccddcccdcccdcccjkibeeie^aaj]]\Ygpceo_]bbwchmg[\a[dfah`[ka]\o[kWXXhibW]Tn[^inilbhZchT]i]^Zxechkfl_d`Z_i_amhh\WgYjcpabcdeVcTqose_X\fWdhe_fgi[dplBlfeccrTyb^`fZeYc_Sobh\V]k`Kt_^bhclhNV_^efeakc_Zr[`ftg`kildjg_]ec^oiemPcg\[]d\`xjgGa|PMXbr`e_dgaaag_f]ehe\c]bcR^\UagUY\Z[eVY^cibdbc`acedcaaddecadccaeeebdacae`dbfbcccecddbbcaddbabadbdddgad`baaegbedbcaeedeecbagbhe^bdfafbacecc_cfdabcbeegcdaeadeddfbcbd`ebdbfad_edbb``bbdccddbddgaacccddgeffcdedffgcedcaeadb_ae_fccef]bccacaacbeaeb`bdddb`adedc`bdcgd_aaccddeebddeddddc`acfcced`ffdcbebbce``cdTgdmhtQ_f_emkhefea_`ifad]hi_flcp_ZQdsi[Zmc\c`ffhYYWfm\\b^p^ei_iiaYU`i^jldecbmj]a[e\WiibYfdjc]odpj`e^gkckv_fcbafe[idZbZaX]^lblan__h[^\gjjnghaYgdfkemcjf`sgg\`doajeW^nchgjdfcjbm\fg^t_^W]afhcnd\l[`\nn]diQc[dWc`f]ahiqYceZhjebd^X^\Y^al]f_b[c^^njN]daachbiddg^ckfgccbccccccccccbcbcccccccccccccccccccbcccccccbcccccccccdcccccccccccdccccccccccccccccccccccccccccbcccccccccccccbbbdccccbdcccbcdccbccccccccbccbcbcccccccccccccbccccbccbbccccccbccccccccccccccdccccccccccccccccccccccccccccccccccccccccdccccccddcbccbccccccccccccccccfddd`^cbl`c\_djkaib_bd\bddbYded[fb[`cai^i\gabcfcerh`hcca^bhaddf\e_Wcnihdf`^g\ccnhhbccYf]d`jfe_d\\c_ele`fkVh`bi\\eTe`ieafnhhfag^lcdacdeng`b`_kcbkca_bZea^aZifacXecabXadb]Yfcedeeb\^b[_`iibe^^dhaleededYfcbjaajbadh[ehbic_ffkYabchffjfdcacac_m`iaeccfbhd^adebibaliccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccbcccbccccccccccccccccccccccccbccccbccccccccccbccccccccccccccccccccccccccccccccdcccccccccccccbccccccccccccccccadccbcfcdcacbbdecdabadcdbe`cbddc`edb`ccddecbbc_e_bdcbbfcaadfbdeedbccbcbdba_bfeececddddebdece`dabbaeedeffccecadceccdbbfceeccdce`dbbcfacafhb_baeaabbbdccdcddadcbccbcfdcadddcbcbbcbeeceddcbedfccbccefaadebcgccdcdad_cbabed_dbfebcbcaedc`cbbe_adacca`cgc`ccbcbdbc_edcjomincffinangi^cfaZehaf€hc`b^`y^\foag_a^ji`dVc_c_aeXda[aReZahgir`]aaca``geme^g^`^`dcbmmWejgcfdi\g^`jk\djbgjb^gdmfhd^jgXg[Zah][Q]ag```m[aa^ak[gbeYmke[`Y\d]Z`dmb``ZgrbijXdb_jb`[bibTaiedWdfdiUa]ifXfmegi`h`e]eealkigVqch_K[]^k^Z^ZdSkc`dea]]_fdldcfciZ[i`aagk[qdccdbcddddccccccdccccdcccccdbccccdcccccdbccbdbcccbbcbbbbbccbbcdcccccccbbbcccdcccbccccccbddcccccdbccccdccdcdccdcedcbdcdccccbcbbccdbdccccdcccccccdcdddcbcbbccbbdcccbbccdcccdccccbccccccdbcccdcdccccdcdcdcbccccbccccccbcdccdddcdccdccbccbadddcccddccbddddbdbdccbbcc_h]e_pm^chfV^gf^hb[a]`f`ekfa^`\ba`bjk^_aclZc_\\^^]bZbjjogdki`Zeeifs`cddlS^bb[[beg_ao_dg`fidZdbf^c_dnfiXiZiWegcdilXcsha^h]ane^ndgelaf_ch`a_`dYh_hh~Yhai^aedhhd\gfai[ahfwb[ae[coYbbfcdc^^f]d^`_f]egVem\khg\\ej_`hicb`l`_ecjdb^a\cb`lbaZfe\gglco`fj^hkbdc`XoXgebb`ijib_ijbmghfeh_e^k]bnk_]ehebcbaeeUlfZbffciXi_kcebdjY]kY]aWakbffeUbfnejfWrfehedk]kYXX_bbjdgePc_dj_Zm[keheYrgef`lko_aib\[cdo`iek_jke[ef\Wfa__occba_aji^c_Zhgae_m_e_bf^aa]_^njgdgd[`a]dc_h`[adj_[blch^ddZ]_i`Wbaf_^dc]fbgebRmPlicb^h_fhigec_[jYUgd\^b```njXbjeaOzeemab^ea^fbdfcgcebi]ffcae_bdebegjjdda_`bjah]cffal^f\hadfdeXb`b\fag^bebfeaaf^gbdcggei`cdgccaibcbccfcjcgc`d_caf`medcdbge_kba`fehacbccadhcga_\Xcd`dg`abgc^he`hg`cfehhcfafo_`feedc_d``_]b`__idc^f^bd_cXdbc^e`a^ckgdhggef_e`_`g_i]g_ad_^\a^\fjga^f]d`b_caf^fej`chafddb`daSl\dW^kYfie`s`mr`Wn_kaZdVb`\Rfcoc[_Y_\SifRcTelbmkdca_`kcp\c]`YsjaSiX`qZgem_^ddXcmW\_db^Vj[[ltindim[k\hZ^Vhneg]\Tf^`mdco^^rhcanag]QVfbidqX\]v[f]ahjdbpvfkbj\abhke]mQqc^`Yfj_Ugcjb_[b[SkTac]abaicru^bbnmi_u`gac\R_d]_neaucc]aZsjZc^hjgT_^cfhdhjdmfdfhb^pn\han\T[bcbhadchdbc_aXbca][f^Vg\_cl^dddfflgc`\deZ^]\addkga[Vck_n]ahc\_`e_`bbgZcd^Z\dp`g`[ceZsmafeha^ffcch^ei\b`^hahcki^eahcefbfaiddfggXa]cgZ]ee_`h`^gggdabdjh[_adlZhekdhg\eaed^db]gccbie_ae`^dh[b``c`adgbdhcgd_`lcd`pdm`j[b]ib_jhpbYg_df`ij`b^icjfjb`nhejbffbgc``bdfe_ejhcbbccbbbcbcbcdcbddecbbcccbcccccccbccbcdcdcccbcbccbddcdbcbccbccbcdcbccccccccbccccbccbcccccccbcccccbbbcdcccbcbcbcccdccdbdcccaccbbccbcddcbcbcbecccbcbcccccddccdccbccbccbccccbcdcdcccdcdbcbdcccbbbccccbbbbbbccccccdccdccbcbbccbcdbcbcbbbbbccdbbdcccbcbccccbcccccabcci`d`ca^_dphXVc`e^[TagQ[lhge_a]b`pbclSgdc\bcfhk]a_mhhYZU`gilbb`ecWcd_e^fffbleaghhdlZdd_e[doaYjfimdhfZRcfhjkkYka\\]`i_hj]_TdbbfefeR}X]b]jcqU]]l`haf_h_VechjmZ[fSdcm]b^fZg_^_c`h_^fg[jgeSkc^bXiZ^dc`igpc\dubed[jfgia[ZniLmydbNefimcahqebcfkbhhikdcgfib_Ynphkdgdpff\h_[`_fanViaoeoo__^_h^n`dfeajYdZeh`ga\`ibaU\^j]ebgUdfYhkqZd^fkZQX`bceKaca`dgZ\^hZbdci_affcd`inh`ei_]gmm`W_[aida]ppeedf``dlmflfelTkd_bgb]ia\ghWb^[kqfabp[`da`dgc^lZ]\\`ncbl\[gfbpc_lXYh[df[laUfimkk]Vb`k\ded^k`ebcfaicTltls_`mkk``h\_[becib_Ydndfby_d`fo_egSaWhYg]ojgam^Zifcdfjkdi_aXe``]echad_dactj\ekZdg\bk`c_io^g\gdbgg_e[e^caacf_^`^[ekbcbZ_aceg]dbf\a^edhtk\j]eted``bgllcgdaedaccg^^jeglapeZ`bk_df^\c\\b^^abcgd[iWc^obid]]ebbfgbcgm__iahdae`aaY]ck_kgRie]i]eYgh]^``jfUfceceYecc[ligrcgbea_\`ca_gcifag^[[\]ddidjeedhbieba^]`cabccccbccccccbccccccdcccccddccccbccccccccccccdccccbcbcccccccdcdccccccdcdcdcccccdcdccbdccccdbccccbccccdbcccdcdcccccdddcccdccbccccccbcdcbcccccdcccccdddcccbcccdccdccddccccdccdccdccdcccccccccdcccccccccbccdddbcdccccdccccccccccccccccdccccccccccbcdccccccccccccccccXbiik`drdocX^hnbRgq\Qyelc^ape`aZ`pa`gh[]fQbag_j[[W]mQ[ajlf[kesk_dqjZi[\`a`ikY[a^Qead^hnjc_cb]VybgUV^^`Xqmlfp[cUj]`x]hi_hX=K]dr`fZ_`bhZdgerhlje^^dcdmjjiLbb^Zbf]k^dnp_]XYachjY^`]dg_di^ffX[neWd\c{eWxd_ufeZe`]ckWfZihUYkV\vkdgaifgTZpcaIUaDk_W_]`me_bddijteRbje^Ybbl]iXocWah_gVY_jagtqqkc\YykiajL\bc\bhmSd[`]d]dgVTk`jgnchgWfgqdd_Tnqjhef`mXmJ`a\Xof```k[]ad]XVk_cWWf]ebfed_Z[\cc_a^XXd`o`iYUngf^Xun^jaY`Zf`a]fabak_n_cfa`b`YnUU]^`hg_v[aV^\gcR_`bg_`jcla_]egc_Zmjjfb`fP\jgj[a[hfldtccqNblueqq^md]W^qoahf_aVjaghk^c`knd]XY`shheilfc_]h[g_]^ca_\g]_Z\c\\riegcdUk]dlbhc]hhjTf_uhhV\sbceapSbijehfUUaj_`ja^udc^^Okhc\gb\^jY^]be_aeeg_`hj[gdidZU]gjdtc`[dia^j]g}abqdeflbi^hhhelgU_fcqgoP_K[^b_he[bedbZcWgMXN^ulceb`]]b`j_cMkaYef^Sgl`V]egc^Xrha]_fcjdfffg__cg`^aieg\affddaiY^qjc_lZ`i^o_dfjl`jcjWkefYdcedfaaffd``dggccecbaf^_cbdebc\ldc`_`b_[_ec]`fdbic^e^dn_`eee`bdegXecdghde\ccbagehicdec_hdf`dfgbi]fgbl_beeecib_gabgadbcfgfbccjbibh^aejddabi`gdcg^c`fche`en`dbedec`ce^h[de_d``agfd`ld_ab`cigg^cbfleidbbaj]ag^hbe_`b_`^fj]`def`f\baiad`b^`j]`e]`jfgb_Yda]`b__``Xc]abcc_^daide_cka_a_cdZcjbdca^ajjWbbgeakchmo]\WT`i``mjfkkXbf^cbc^jZ_adbdbhglk_eb^d]bii\amdd^abdd\did_cqb[jb`__hiWVgebbh^eX^gl[aU`a]fahm^a`e^]ia_ki^Xkg^h\ka[cgcd\bbeliih^jYecbYafaamUbdebic\gcshck^_]iic_aaalkdd_dbcV_dfgebbaihkbha\hddfebcde`^cddb_k^ahfgbXhjia`m\ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccbccccccdcccccccccccccccccccccccccccccccccccccccccccccccbcccccdccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccdeeeddeccddccdcdbcdbddbcdddcfccdbdccddcccdbdddcddebdcdcdddfdddaeddcecdbccbccaccfceddedcdebddeedcdcddddeddbbccfeecddcccfeedcfbbbcdddddcdcbddcccbecdcccdcdcdbecebeecccbdddcdbebbcbdddbedddcccdeddccacddcceddgccdbdbdeecdcdcbddfddccdceebccdbccdcdcc`ecbdddcdccaW`]cYbja_W]\fhfZbecm^WjtgbXqfia`^an];kbddmble`abkUo]c_hc\a_i\^khbijhfehgafg\calcc]hdZTehY`fXLo]Sn^AJghf\fWgcjfhjggg][ae]n^ke`bucXZflbhmmm[gcm`T]dcjdib_hjdcio\f^cjjfqiicae_``^cloeefV[`aeh]cqX\Vbr_^jccd_klhfjgh^pWX`YbiWaecllbijc^jjrnbb^fcohehb^ial_caegbcieddfg\]Lmn`femcUNjZacejf`dgf^]jieTkQ€XaUfZrZ[][lhhbbiiiYdabb_ejlo`kjeb^WahnU]Zbadfhlmndedga^[hailj;ecle^Ze_hZc`enre]e`bc_iejghkgk^YqimVm_uX^]ddhmkX_hbj\iY[`bW[__hk]j`mYi`eii]t\`_fj]Xc``hdlg`bbdofYccUh[kf\kh]aqlkodcfbf`cjSbnscY_bfcfjddd^ff\e`mcm`dgemdZq^aUaTl]ccbccccccccccdccccccccccbbbcccbccccccccccccccccdccccccccccccbccccdccccccccccdcccdcccccccccccccccccccccccccdccccddcccccccccccccccccccccccccccbcdcccccccccccdccdccccddcccccccccccccbccccccccccdcccccccccdccccccccccccccccccdcdcccccccbccccccbdccccccdcccdcccbccbccjg\aab`r_Xqclcllpcqhgcge^b\iqcRie`QXd\hlh\Saj[thnlfY^fgkiijX^XZ_hXUdlbcfock]abXie^\do[fajf`okeigladmjcjdZOeiWod`igepbanl`oYZS\^cqbpnhpiXll_pii\q\jYWloQkkj`kfReOiq]gscjeZfckflhb`\ephdS_cl\\iWbnh`fh[ec^[_ggxfs\iegddghbQlj_adjb`hUmmahc^`\[q_[BUqibiefegftblW]i^biY\e\dccjk^dlchfd]vdijabbqk_][_Z`_vckaeho_gg]Z_Us^`ane_ogg\bfhgdn]f[mdbpaYqkbi\fh[eagZp[Yhaj]cijod\g\eXqtagndicfdjhdY]`i^p]Z`rg]>hmff^eeeWhZ_ie^dT_eiejc`^haa_cfTdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccdcccccccccccccdcbdccccccccccccccccccdcdcccccdccccccccdccccccdcccccccdccccccccccdcccdcccccdcccccccdccccccdcccccdcccccccdcccccccccddcccccccccccccccdcbccccdccdccccbcdcccccccccccdccccdcdccccccdccccddccccccccccdcccccdcccccccccdccccccdccddccccccccccdccccccEYe]gsecWg`W]obifj`e]g`Gg`Yffoe`\i^gjfYVgabXa[odab\gqc\mer^h^\U`k\eimorja`bkj\b`o_[\jp`a\m^geaSd[^lf`^j\fYnnhhgfcffgvch]QYaiamdabcYnjTicpoReq`cU[rrkg\[b^cgc[_d`\yYbWk]bkd`X]fi[glge\c]b_a\l\]k]Pddfgf_hkikiiidcZhl\nlaeahidm``et^]`t;hnbjhejffr^ac_dQZgQ_ch\ec]f^ombd[dYcRccifrZcafbh^qgpg\aoiUlchh[dn`nl`j]lW`aca_p:]]g^[ha[`R]_igffZ_Ye]bfj`kS_W_ojada^[h^Vaek_UUphhe`j_el__dk^hi_g`^_cPVhdjTd_adgjiddtnbilfiXeZfanXi`_djcf^\m]dadjcjajgbgafil`gaa]mgdkmgghhT^ppelb`cb[ebc_jib`bdbYlh^]gg]aj^i_]e[njXbXNd]g_^khad_e]feccbhmdaddebb\cecbede_`cgdbfhdbgbcecdacbdfddcdadbefbceccdeecafccabbcddbdc`dcdbahad`abg_ccebeeebdaccbdf``aecddefcdcdbefgcbgbdfead_cbaacagbdddbbdeccebafbccb_cbedebbedbeddbdc``geefggbcedeb_fccbfgcadceeddfbabdcdcbbeecdcbhdccedabebcgac``hbdccdbdeeechcfffcfcgeedfcadbecdccbcbccdcbdcccccccccbcccccdcccbcbccccccccccccbcccccccccccccccccccccbccccccdcccdccccccccccccccccccccccccdcccbcccdccccccccbcbcccccccccccbcdcccccccddcdcccccccccccdbdcccccdcccccccdcccccccbcccccccccccccccdcccccccccccccccccdcccccccddccbccccbbccdcccdccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccdccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccdcccccccccccccccccccccccbcccccccccbbccccccdcccccdcdcccccccccccddcccccccbdcccccccccccccdcccdcccccdccdccccccccccccccccccccccccccccccccccccccccdbcddccdcccbc`qmgaZbrd_heaefdi\bfamdZcb^d]hk]\`gfdZcbYfadaffajabcWdYhid]bbh`fa^hi^mTdbgg]i_bghc`]dYebagbmd_Aj_ddbhb_ee[bYkgcej`d_ndeV]mhj\id^cdkefof^n`qd\]e^ci[ebdbd_\bgd_hge`\^jgl_aU^h_d[h\gR\^]lbafaleln[b^gd]ejW^adfhV^`hg]ctejbhclmdgkjhebfcWd`jfafm^eedgh_cb`\khfghbdflhdepm`fX`]a^aZihaaVbgbZbah_o[i`hb_bjb[dcp`g^cdddiZffgZa]`^ih``^`_ib_aX[mcQ_abchhe_`gk`h[aeeekfc_baab_[igigheSZ_kgfh_acl[gb[b]ocdfk`aghcg\a__bdefr^d[[bghag_[]l`gjXcmjobe]cdfbdgjccfbegVdihlie\^ho_c[ddd_WddebaTgd^if\fmdah\\\c`mcgkefejf]s]gfal]dea^cb^cdcojhlccdcccddddccdddcccccdccbcdcdccdcbcdcddccccccdccdcdccccccccccdcdbccccccccccccdcdcccddccdddccddcdcdcdcdddcdccccccdccdcddcdbccbcccddccccccccdbcdcccddcdcdcccccbcccddcdccdcddccdccccccdccccccdcdcccdccccccddcdccdcccdcdcccdccbcccccdccbdcdccdcddccbccccccbcbccdcccccbcccccccccccccccccccbcccbcbcccccccccccccccccccbccccbcccbcccccccbccccccbccccccccccccccccdcccccccccccccccccccccdccbccccccccccbbccccccccccbcccccccccccccccccbcccccccccccccccbccccccccbccccccccccccccccbccccdcccccccccccccbcccccccccbcccccccccbccccccccdccccccccdccccQk\k_]hcm]\a]hk[khe_c]`[mlcWhmknacdda\eidWZ]`ohhje[d^gffd`f^dbkYbadchogdZg^k^VhbVj_hjdcXTj[Yhkdi\Ybhimflgb]]fYbiiaeeq\abbXZ`[iflgd^i__U^m^Zhu`fkan^lkdcnW`fefgbl^aWd_fbi]YZl[cdgjjhc]jWigVc_geruflg\d_[a^bddif`m`iqgl^fblcqaijoYneiak_febfelhodh_deh^Zbec^ghNYhTfajinUM`NMe`cWefhj]amhfnW^clrpfUw^oek^[lWgfhe^_ba_liY\\dka\ibjTNhbaoc`af\jhpY^kjYZ[alvZgV`_ktXScZOkq^op\^XT`YfQcldcikag\cocpcrZV`j[kiZnenb_cadecZbVhBebho\jefhn^_cV\Sncdkl^[\Wjibl]dhdghd\``[_a^rPehhiiV`ck_jb_dy]foofo_o\qb_diioapfgYbliafb_^gihcf[gledYlabosVbdcddbcddccbbcdbcdcccbcdccccdddcccdddddbdcccbccccddccdcdcbcccccdcceccccdcccdbeccbcdcccccccdcdcdccddccccbdbdcdcccbdbdcbdcddcecdcccddcdbccbccdbbdccdcceddccbdcdcdccdddcdbcdcbbadacdccccccdceddbcccddcbdccddcccccdbdcdccecccccdcbedcccddcbdccbcccbddddeb`dbdbddcbddafR]ckZd_W[a\l`dfd`]Rhg\gkqYrjk_[l^Wcd^jVjliToa`[c^mijhcZdY`gkg_ffdhbubhr^jXk^iiaqkdelq^dgc\naR_[b[fkfcec^hbl^keiSbamegcXUegU]df[gac]dKknbh`^[j_^dh^d]W^Wdgebi[X^jmTlpeciph\^i`jkkpjf`h_i_c[f\Y_e`^h\pjggldiZdgd[kms\flfh[acbjeaZb\`mZ\`ge`hiieekgcbaafileXkhceb]cccccccccccccccbbccccccccccccccccccccccccccccbccccccccbcccccccccccccccccccccccccccccccccccccccccbccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccbcccccccccbcccccccccdccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccYZ]jsogjYVfi`_Wbcg`hmdRgc`]lffaf`]adfddegacicljkk_`[fVihj]ihb`g_ldadeTYf[g\fgd[a]h^dqo`_gff\ginJghkcdd`gSkUmbeZeTfZkfTcghd`]jnec`eba^a_i[f`eaokig_dg`_baf^ge_l`g]^`]b`fcfdlhyfcqldm_g]daX_g]dagdlZga^]abgadnX]\jUieibba\T`V]igf^W^[i_fld\N^e^cacc_Sefg^bdh^^bfjghfmfjm]hajanW\e[jcbf_jc^^Y\mgV`bZa^j`em_f\g^cgXl\g`f`jlne^bilibohjjf_rdfg^hfcfa^h[gelcbjgilec_bpfd_NiX^lbni]^Vhf[gmfna^di\ig^cfdebdb]``[_ncbak`ZXdd^`oaY[gaggiYb_m^Vbc]_h\aUdfpklW^cV\bab\idedfZd\e`kRfa_jcab_c]igipb`fYchgajdYXfehgehmWke_ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccbccccccccbacdebbcdbbdbeadcefbdecacddccbdbcce_adcbdbccdedcbcbfbcdddcbccdcfccccbfacadcecedce_ccbcaegddbcaaccdebfc`cddecdfdddddbdbcddbcfaedafccabacdcbccdcceedcbc`dc`ebbcbebbcbfbbdbbcdbccccedeaebdeceacdcccdbbcdadddcccabbebbddbbbedaedcddbccdbdbecacacbddaccbbbccccdbcbcdccccbccccbccccdccbcccccdccccddccccccccccddccdcdcccccccbcccccdcccddccccccccccccdcccccccbbccccbcbcccbcccdcdccccbbcbcccccddcbcccccccccccdcccccdccccbcccbccadccccdcccbbbcccdcccccccdcbcdccccccbcccdcccccbcccdccdccccccccccccccccccccccccbcccccbcbcdcdcccccccbccccdccbbccdbccccdcdcbcccbcccbcbcbbcdcbcccccbcbccbcbccccbccdbdcccccccccccccccccbdccadcccccbcccccccdcdccdcccccdbcbbccccdccccccccbccccccccacccbcccbccdccdcbcccccdccccbbcccbcccccccccbcccbccccdbcbbccbdbcdcccbdcccbbcbbbcccbccccbccccccbcdbcccbddbccccdcccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc_bXQbŠjkhZcbda]hbihab`fW\YdcYo^Sfg^iseZhe_Vc7[^_ia_a_^V[\\[_gabeedkfZ_gid[]^j_Yc_\lb^\gdTVaffu`fbn[chebgf_gblgd]hkh[g_ddfd`Zg^_l^b]]gsU\Yga[ahmoi^awddgekabW]ej\meed\ak\^dd`Z]dYflcc]lgZkfgdpgf]rdoa[bp[ahe[mcfZfc`Xhkcbfi`b_\]d]kbjhfbij_i[cfhd]p_Zbk`ehjf_fX\ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc`c`deaccb`f`ddee_dcfacebc`afdccdb\_fa`fgbddcccea_`d^c`e`cfcdcdaadca`bh`ggbdcbbfccedbcbdbbaecdaabb`dddedc_c`edbabffeccebbdebccdheb_chddcedbfd`a`acddb]cb`bbced_`ddcacdaacaddk`hfcdcaecbaeafdcaddbaaaab_`bcagcbaef]dabdac_bh`dcddefacbbddbbcebbdbcaccgdcacbadeccgacdccccdccddccdcdccccbdccccdddcccdccbdcdcccccccdcbcccdcbcbccdcdcccdccbcccdbccddbdccdcdccccdcdddcdcdcccccccdccccddddcccccdddbccccccbdccdccddccbddcddbdbccdbbccccccccccddcdccdcccccdccccccbccccccdcbdccdcdcdddcccccccccdccbccdccdcddcdcccccccbccbdcdcdcccbccdcbcdccXYQ\ekgf^edffcacfiocc^egZeeb^^\`Y^[ax`cWSqakkfe[g^efocmg`dadbjc^aUrn`bffkccgc\\bccnjb^[^gfmgY[hhincaegbcZ_`lcZmajl^i__eX\fgogWqf`]gh`abh\cpgagVdfbm_eebdea_^c_hhibi`jc`dlifhedn\f]c\jjhll\]XgpcfaU]Wjd[j\_dabdabTdfkYih[ra`cZglhce]cbl^reba\niax_f`dcjfaibcd\\kcaUXOacd]b_bb`d^hdh`_pZkjdSbpich_lrbm^reZ]_mc^flgpglib]bkbcZc]e_lihcjdmma[bj_lsd]khfhfra]d\f\][ndhkaah`egd\`\ZheginkVehdfZ^k`a^]lmbZcc_c_ah;_db]dZeiiR\_`]hdfeck\hkm`[fd]kiTe``_e]ckcg`_ZXkegomb_ab_^oambjicdmidena]]dgWdcaaa_Y_jmb`_t[hoge`klYgiikgh^b[l^Xad`Xega`fbdfgfcddc_agdacfcb`fdcagddcb_aedb`_cdddcd]aab]]`__ea^fbacbef_aicdabadcdckg_bacdfjgd_a]fa_dfa^eedc^eff_cgcf`a`gfacbb`afa_b`gecfdfd_db^d\hccgdbdagc\b`bgefeg_dcdgdcbjeedaehcfebdbcdc_caceabafacgacad``cdegbbaad^bedebcaba^ecghbcagebce_dfi]agabdefbdca`dfbabcdfcccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccdccccccccccccccccccccccccccccccccccdccccccccccccccccccccccdccccccccccccccccccccccccccccccdccccccccccccccccccdcccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc[c[`]^jcc_ikhdf_`blga\ifkfdYf\Y]a^ccZ^[[qq`ml_dcfo_pbgb^]ucikgWbggbhXjh_cmcZgebVdS^cijdifdaYeqmihdc[`febg\bWmah`d^]Wg`gac]eabkeel^a`ccf_h_Wddd_g\pdbeebegadnYdnf`idcc]jwfj]j]addNien[^cfd\^aZ_hf_^cZj]dcmd]icleYjhcccqnj]]_eadcdcd`Xc`Vh_hXhdai`ncdide``kfikdYb^dcagYhl_ZdXaeXd_iffcjhnlbmre`ajdbo`Uid_bbhkQab`]lY_Xn^]_^g_jk^cgecdRfkcagg[gahYf^ga^oYYcdde`bUPhaaifhefZc_Whg^fd__ae^d`^cq^__WeYVaibgh^dZi]kRe_dgk_`Vc^eg\ga^kf]e]gj^lWm[haXaU_l`hdafcafgfwTgdj`lddf]`UnhaZckc^_`Ye]n\pf__bqick`a]apiiij__g^adia_sa]aieYd]^\ad^cdcbdccddcdcccdddccbccacccccccccccccbcbcccccccedbdcccdcccccdcdccdbdccccdcbcbbddcccccbcddbccccddbcdcccccdccccdddccccccdddcdccdccccccbbccccccbccccdcdcccddcccccbcccdcccccdcdcbcccddbccccbcccccccdddcddcccdccdcddcdcbcccdccccceccccdcdddcccbcccecdcccdebcccccbcdcccXbjY]jchmUdmjecgiba^nRgacti_\e^Nc[ajbZap_bm`j_YdUbgO[ai\d]r[`d\LdWhdvaahi^oqk`g^poYaV]a]fmdZfgOZ__hgWX_`Yae]bzje[^\c`g[\bncn`_^`gj^cdhgefd]g\d_nhjij__bZfcbo_Zh_an[j\hfjifnhcad`kVW_gfk[b_q\_nbddVgZZeeddnfbhleafelcjejk^fY^cZa__kegXggumbt[ns`i\brfgc]`kebeSYchdg]hShhb_fmb`cfZeelhc^bfk[sP\aii[ihhbb_cbZflic_iai^_in`bfknadlXk^njWci`_[b]^galYig_\caiicc`^[mgYbgbgd`__dg^gdhof]geem_je`]a^`cdiq_i\g\_g_bXg_ccig`jglgf]ij]ggg]bhg_abe_ljd`hh^gde]a_jmYc^QYZekoukk[ck_]add\`ddVnglcYikV]dd_mh^Sd]eZeami`be^hlcfma\faac`edbm^ZgfcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccbbccccccccbccbccccccccccdccccccccccccccccbbcccccbcccccccccccccccccccccccccbccccccccccccccbccccccccccccccbcccccbccccccccccccccccccccccccccccccccbccccccccccccccccbcccbccbcccccccccccccccccdbcccccccccbcccccccccccccbccccccccccdcccccccccbccccbcccccccdbcbcccccccccccccccdcccccccccccccccbdcccdcccccccccbcccccccccbccccccdbcccddcccccccccbccccccccccccccccccdccccccccdcccccccdccbcccccbcbcccccccccccccccccccccccdcdcbccdcccccccccccccbcccccdcccccccdccdcccccccdcbcdccbccdccbcccccccccbccccccccbbccccccdcccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccckcaYcYdo`gbTbbjjh\`ebbfnj^bam`eeb^ojX^dk`d_jemmedhYif[[]d\fbb^\jegdikocaai^Yco`bYf\`\c[chni]fd]mVfZZhd^a`anggVgbjdadfi`f\fQbbfX[idj[YdYU^Ze\cgjdZ^`bda]idfcgi\]\siZWmbmhh\]gc^gf_bfa^ckeeidcbZde\ofdYPdYcqjjdl`W`h[_uXe[[_miaejfoccjY_bgga_bji]d^jmibbbmf\dalgl]bacdbicjbdh_gdk`\`_k^``ahXmac_kfbe]Z]cW`^^\a]_el\Zbcaklb[gdahgjii`na\fe`bUg[Zbf[f_lmYbcdi_q]dj^`[ie`\_fejb^_gc`i_\bd^eedcefld^ca[hY`hab^`XW``dc_ee[gc\c`g[gYn[lbfgacclfobikdahea]h\_gh^c]`[bdca\bg_Z_[^gbjfi^k_n`^\bibjgj\blbaZ_`kcgla[[]aebcd`kZo_\n\\]qdY]eh]dccccccccccccccccccccbcccbbccccbccccccccccccccccccccccccccccccccccccccbccccbcccbccccccccdccbcccccccccccccccccdcdcccccccccccbbcccbccccccccccccccccccbcccccccbcccccccccccccccccccdccccccccccccbccbcccccccccccccccccccccccccbcccccbcccdcccccccccccbcccccccccdcccccccdb^e^hnk[\lrgbgrnc`n[YZvlF`gbc^dacdZe_kj[^oifb]cfjcgpeW_bdVamcggca``ekniZbV`]bZTYi_OQ_fgbjtiYal`w^eY^hnam@eojelS]l`^bWk_a^j``kLZ`[`VfcWf[Tpa]aZql_X_kjjkh\f\bfZlgx\]cehe^[^beeda_`q\i_hdekdkcdifXeXZc^d``ZlXi]_aimfgeheo\hnelh[UXZ\UgV_idUY]tpeflpigej`[mY__ktqfgij`TnbmdiYgbqdlm\ffheaelkekW}kYcnpjkggjYc[\ZdbkdT\\jTfg^g\b`aWX^Ygbdo_eX_gfk]hVcbnbYm]k]_]oeVXhkb`hadj`b[i_ia^SVlhYbe__`pecfpmidiVUbapeh\g_eo\a`V]e^oYocil]d_Mceg]cWbk`f^`]Yaajcc`hb]f_[Raeeg`ZgbfclqgVa[[\gg`c]_gaecohehgai[`ngdfrpVidc^Zbghlds]hX`hcjbn^bkg`]^]]`blib^cgdfhji_h^e_cge_Zeceadfgb]ee^ag_^_ec[ab`bfe]gbVfhgce_i`bfh^jbkbf_f`c_fc^W]ckdc_eZdahkbfef_ffd]dZc]llaegh\_cjdf]a`gdedhc_bYe^idfc_ddabf^dc`bdgidn^n^b^e_]_b`idfcbcj\aafb\febbmhheebd`]`_ic__`dlbecge^fbabccekafecgZa`bdfbd^ead]ej`fh`eekdcjalfage]a__e\hcdde\cabfd[lXcarhf[fgaZg^\hWdhiWbh^hj[_a`gjjdt`ehmfjlhiblgcWdn]cd^Y`gdecg^bewadebi_Zie_mf_beZ`mffggbffp_dfc_`XcHa`e`]ccake]ha_fiXae[ee_k^lg^nZ_d`=e^aa\]fjZcX^`emb^ikadc_^Xfmh`bkg_k^kecj]gkfecjeb^_ecc`cbd_hhkdXfc`i_deikYacmaibkc_egafXdage^a\cWUa[edoXife[e`]b[chjg``ib`abdb^eehqcfiflgk_bffd_cnaZ_jgfig^dcgic^egXd^hebfj`]eaf^g\]ab_dbjfXXce]`ghhd_^m\iif^_bgfYafghaYfeghcfkgdagk`da``hcbfdb_]kcgfd[kafd`]c[cficddc\XYga_ge`^_X\_mg_cdjk_kg[\debcabgf^ai^gc]gaf\oajkdcdea^`ecc^ga^gde\^deZaehegcbhbca^i\ddhe`kee_d^\ih_^dgbigddfc`bfgbcedabbd`b`dd_b`aacaeabbfagfaddbdc_afad`efceab_b_fdcea^_bddaacdbgfdcdgcbjaadbaa`^bffd_cccbdbfecafe_cb`jfaiab`eagc`cfea_cdhbdebchbcbf^bffgc_]caeciagfb]edefff_d_de`ejecddbcc_aeadh^jc`bdddbdghbbjfidicia_cdeaecfdkdbhieecjg`aegdb`cadfb`c^cgebddcdelebecadcbgjj[aee]eecdhfd[i_b[eb]ak]Zacja\r_jeea\l_`ajkbgfqe\kich`cbaeeedgdb]_ccbcd`bf_d__ddc]Ygbfddfkl`igZc_dgc`a`eadf`c^bhdfdbc^X]]baahce_ea]aed_j^`hiccbgd^g]lg`cd`fe`d[\haea\^ebbb_hgbhfehgid^hYcc`ba_bhd[bbdaa__cicfVbbdhfbgba`eei]abacecgaci_g^bciodijda^i]gf`f^bbfbjWgbefgc_hacaebmdhldacd[jbgfiaib_ceac[mgacehd_^i^`ggh_caaemhb\bebecacbehhdgc`aaeidfaf]`fj]b`b_h^kbegfghd`\k\_fcbhdc_b][d`d_jda]e^\]aceeZcZafcfeekid``h]iddcb[efhei_b^Zf`d`bfdj_fhjee`gdcafgcjgc`cahaffcakgd`j_]^cefccajc_^i_`_mb`g^c]Ygcbg\eb_^c_ba^`^^X_e`fcccccddccbcdbebcbdcdcceccaccccbdcddcedbcbcbcabdbcbbcbdbbcabdbbbcddcbbcebccbcdcbbacdccbbbcddccbbdbcbcdbbabceccccdcabccafcdcacdbcecccbccbbcccdbcccbcccdbbbdbcccbccccccbddccccccddcbeddbbbbdddcccdcbadcbaecddcbaccabdbcbdbdbccdcccccbcccdbcbccbccccacbabbccbdcbddcdcdgchkcc`ead\^^bccd`]gbi_aaeadek^ama_bafg\`ib`dbbe^h_^bmk`]bk`ekc_ceea^ajh_^_ebac`gaddc`ceebfb\ae[d^geeccbapl^mkbaeshdc_b_dgbh]dfbia]`cb_bg[jXgc\^a]jbbdYk^^^beYcdfjc`_aece^k_`^ce`_bema`ffc`^dea_akidfghgeaji`\``fba`^[`Zd_bb`[_kfc_`ieaga[aai`fe^ba_dcbdk``acfcccccccbcccdccbbccdccccccbcdcccdcccccdbcccccbccccdddccdccbccbcccbddcbcccccccdccccccdccccccccccbccccccccccccccccdcccdcccddccccccccbdcccccccccdbcccbcdccccdcdcccdcdcdcbcccccccccdccccccccdccccccccdcbcccccccccccdcdcdccccdccdbcdcccccbccbccbccbcdcccdbcccbcdccccccbeae`hd_dfe_aad_daibdc_befcaffad_cfdeccacdbbbhahbagcdf`beeibbegbd_dcebfefgda]afffcj`accedbgebafa^daffdacbb_afcbfad_fbbafce`cdbafg`ccachf``e\bh_cccfbehhb^`aa`bcdfbbecafbdababdc`cdbcebb_caeafebbc^imdcefd_bdcccbe`a`adaac_eeh^gcebbbed^bd^_cd_fccceb`eef`dbfdbb`cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccc`^[Ykzd`gc__efi`_`]dd_gccefgaa]`_ia[_jdldeg`hbhgd`igecb^__f^_`dch`ecZcbbf`h`Yef`a]lp_`jacZhaig\dcdck]e`di`h\fef^db^Xbaf``\Zig^c]^lXec`]hk]dbbh^[a]fa_\ccnSoWma`Xaeebbkakcdceala\_cfXijae^e`hldf[`b`[ccclkf`kdh^dabacd^ej`e^iZ__gfdbddr[`^bbajaeh`g`iib^^g`Z]bbmgcccccccccccccccccccbccccccccccccdccccdccccccdcccccccdcccccccccccccccccccccccccccccccccccccccccdcccccccccdccccccccccccccccdcccbccccccccccccccccccccccccccccccccccccccccccddccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccdccccccdcccccbcccccccccccccccccccbccccdcdccbccccdcdcccdcccccccccccccccdccccccccdccccddccccddcccccdcdcccccdccdcccccdcdccccddcdcccccccccddcccdccdcccccccccccccccdccccdccdcdcdcddccccccccccccdccccdcccbdccdccccddcccccccccbccccccccccccdcccccccccccdccccbcdcccccccbcbdccdccccbdddcdcccbbdccccddccdccbdcdccdaedccdcdcbcccddccddcccdecccdccddccedccdccddddddccddcdbcdccddcdcdbccdcdddcddcdcdddddddcdebbececcccdedcdcdddccccbdbcdccdccdccccbccddddecdcbdedddcdccdbccbdcddddcdddddccecccdcddcccddbdcbbdccdbddccddcdcdccbcccddddccdbccdaccccdcdcddacfegb\jdc]dngibjgajbccce^_jjcf^ifedbfcbmaiiafd]k_cbZ]heeaeaf_hgcagoabgceddZe\bg`[adc`]c`aZecgd[_iibdfbf\]^h^ebb`[hedcd\f]ea_ceh```bg[h_bab]^dc\bdef`]ai`e\lb_g\c__``_kbff_m^`begdgbheh^]e_``cdW^cb_ehf`Z`akb`_j^hZk^]afYkdh^f\ic^g^`lfafccbc_kec_`fgicbcbe\fiebe^eeedbc\b]dhahecded^ah\_aa]gch`]^kcfafcZa]b\`bba_hkkbab\cbchffc_bcccbcg[ccece^flgiiejg\ebccgfZd\ahcce``jZd`Wca_dh]eca\bbijYia]bkgZh_jhd`gb^bgjfa`bdi`adelfamd^ddheg_ag^bYbc^`^gb_h]biVh`ggchgfdeddhhkfe_dtcheec\hYe\Zf_k[kd_fgb^dbd^a]hh^bicf`fe_^aZbbgffbd`Tdjddecacabdbbccddedbbcdbbefccdccefecccacccdabc_bdecbgabcbbdfbfbbcdedccdbbeccbaeadbbebcdaddabbccdcdbabdcadcbaabbdbbdcecccbccbbbddcbcefbbbcdcccabddecbccbccbc`aeaf`caccbcaaefccbcaace`ad`deeccbbcdbbcedbeedcbccccbfcecbcccecaedcdedabebcdccbca`adedcaeceeddeacbbaeaedeigdfddakfb_hbfcgjd`egedfgacd\ik`da_a`ba_cg^hbcec_^f_c_ehaadic`jeka`bb[eaj[`d_^g^_dYf`b^Zf_djab^cajeZbab`ababbhlg^_^fcdjbacc_e`debi^hbe`e^h`bbcbb_]_`[db^bc``[dcih\g\`cW`Z_fe`fajfeb`kclbcaec]`g^`ebfg^bbhfcf[fj]f`_daach`hg_a_hfahg`cedgk`]`[afcmqZbgaadicba`d^`caS]g\d^f__keccfYjgg_`hbeeiald]eia`cdcchdad^^lbbecac_`jcd`][]]efq]iedkddeaaag`faghd[ae_]g^eaef[a\cecec\dYdgmc^hek`iaa`fcglde_^bmX`ga`f`acabahaachcobafb]cj^[ad`hcbc[[]anehd_`jbahabbej_`bhXmbjZabdhdZecdjdfc]`eheg^abbdcX`hiafcg_icm^e^ciabid\ibg\fe]]hgfcb_Wfgdgf_]eebabd`eic]fcgaf``edaaeada^_dbef`efedcaabhace`hb^efjc`d_edibc]a__ead^g\fe\a[idacgdbac_caddi`a^j`cjfh`\e[ldjg_^Y]eflagddg`bgj_gde_]big`egic``[ahcceal]d]\ffhj]gib]a`dh_f`ddd^gj]_j_hd`cbfbc]ebcegbacc\hcc_fbheh_kibhi\\m^eehbbd_gf]cmibef_fiefd[bbdbcg_daf^]cdcccbccbbccccbcdcccbcccbccccccbcccbccccdcdcdccccbbbccbbcccccccdcdccdbccddcccbcccccccccccdcccbccccccbcccdccdacccccccbccccccbcdccddccccccdcccbccbccdbcbccdcdcdbbbccccddcccccbccccdbddcdccccccccbcdccbbbcccbccccccccddccccccccbbcccdccbccccccccbbccdccbcccccbccdccccccccccccccdcccdccbdcccccbdcccdccdcddcdccccccccdccdddbdccdcccccccddcccdcccccccccccccddcccccdcddcdcdcccdcccdcdcdccccdccccdcdccddccdcccccccccccdccccccccccccccccccccdccccddcccbdcccdccdcccccdccccdccccccccdcccdcccdccccccccdccccdccccdcccccbdccccccccccccccccdcccgZfdabd`dgijdksbcijda`ae]``l`c\agkhehfbd\a_]]`]\pnre^[tcYqT_dbb\i`Xchhsi\^eQW_mcpcadf_deaXh_Xhkn^_YfzZ_Zce`QU\ZRknWmo_e]k]iea]_`gc_jf`\dY_`dahif_aS_ejgdoeg[ba`]YZt]heiƒgcghfg[^\ek_[Wpi`ijbjcVXemd``fk`\iiaYekkafrXdpobbe`kbcaMe^a[fYVqPg_^a\mi_cRtkj_cOg_gch^odfecb`dcacdiagccchbceefcceeaceeb`gebf_ceeacccef`cfccedebabebbcc`cccfcdffcbbdcfefaddbdfcbaaabffdddbacddcbcebaccc]fcbabccdccecdfbf_eda`eccecadcbbbbaa_e`ccebbcfbfbdabcghgcceeb`bbabgbdbdcebdde_cdfdd^aedfafbddadbeeaebdccdcdb`gdcbc`dddecdecc^`eecdbfbfbcbbcafhc`c_c_i\hdfjcglbfjc[daa_gae[_gahgb_geac`gbc``_f\[fjcfa]agf[cgdd_eebd`egafbb_dc_`hddgd_f_aiee`l]_cjd_iedbccidccaie`eeiib_debfh`f`a^f^_\_fiaabc\b`dfdcY_ccfgcj`fgicegbbga_fekXfbdabjg_`bacdeedee`jadchd^f\ae`emdg^hcgi`aci\ea_kaddh[`bagaadgcb`bfff`e_adfdea_ffe`dd^c`acbfbcf``ageceddf_fece`cdmedefah]fgcbjcfblcdX^`_ddcg^ifc[`j\_aff[cecbgcbZnedj`a]`cecfg`iea`jdcekee`hg___ediecb_dmbkeba`a`^abg`d`c]cbhaffdaa]d`cgibgbjgaYbejacdbccj\dhdfcljgcf_cadga`cdgcfecdlbd_f_`dfk^gdca[a]ed`^ca`ff_f]d`]`e`bbd]eb_^Xb_cgabehffccbf_hb_ga_hdcgaddbbffiadd`ffa`acd^aceejfbcbhc_ab_ddgeh\hdcdc``fdc]adecec`fb`fcdafbac^eabbeg`d`edee\e_`dfe`addhb[`d_^ddbf^did_hceaabedaaeed`_de`bcb``ad`figecmecdccaaadddeaaeeabdeecfcdaeea`f`cbdiecde]bb``ahbd_iacdbeigibhgadechbgeiadcffejdhd_cdgbagjcachceijbdd`^fad`edc^ccbbcdceafcbbccbebbbebceecdbcbabdceebbcddccddddecdabcebch`efebbdbcccecccefcdcbfcbbdcecbcbeeadbcccdacbdcdaebddacecbfddbdcbd`bceccedccaddeeefbebbdchcfbcdcdd`fbadcccddcbbecdaadbdecccecdedbfbdcccdacbcfcdddadcedcbadddcbcbccbbcededfec`dfabcd`dfdbdfebacfeaeddbaebibbab]adcceddbefebec`c^be\a_a`jbffbdbecgfcd_ai`i_fcbbffgifcbb`agchdeebc`befcbbbejgfaehfa]]dbbbca_ga_a_ded_cghbc`bcdofabfbejgacdahfa`dcfa_c_edaeedidg`cef[acaagecebaaedaacacgea`e^e__aah^aa^d^c__hddbbbcbaefcdga_abcdbdd`dh`befa^dfcg^]gfcbbea^`bbf`dcmebe`ide_dedbehldbffaeh^baddg]ffif`cd\\m]oladdejaf]eeodhf`bhda\ic^fd]d``hfhcagchd]]^_cciaXcbbddca^egabc[\jba`j`afhhg[affgcU^a[Yaggga_Y[bhfc^b`_e_fja[]bgl^a`Ocdddhhhge^`[cljdbcel_`\dXefchc[difk\bnhghh^`[eZfaajdgcf_c]d^b\eo\`k_a^bcfd]Yakh[_fagWcgaf_f`d_[rbZna^ehc_hcmg_ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccae^]YdcamfabV`e_`^db^[ag`d\iflha`\`eYdbeQb`aidbdaWcb`dm[Zgn^bmeb``bbb`iafZibaVbaebpf]ddng`ng]d]cVebkZ]`d^i^ddfh_adc\alec`qgg\g[ebicibggg\^Whgq]ecWgadc__lchdhjid``]aPf\`afdb]cbad\_dlegee_Zag^ZVb^bjd_`\ck`eaogo\]hfbhr^hbjlfgfhg]_YhgajcddcgYfjae_]ml^fhcbb`dbccddecdbcccccccddddcccdccdbcdcdcceccddcccccbccdbdddbcdcecbcccbcccbbddbccbddbcdcdbddeccdccbcddccccceccdcccccccccccdccccbdccddddacbcbddccdcccbcdcdccdbdbccdecbdbcdcdccddccdddbbbbccedbddddbcbcdcccdbcccdcccdcbccccccaccddccbdcddcccdccddbdcacadddccdcbbaccebcdcbddacadbdecedbccdcccddbdeddcdbbdccbdccdddcbbcccccbdbeccccdddbddccbcddbcddccccccccbdcdcdececdbcbcbcddbdbcdcddccdcbccbbdcbccddbbbcdbddbcbcccccdccdccccccccecddddbbcbcccdcbbdddedceddbddbddcdcccddcccbcbcdcdccdcccbccecddcccbccdecdbcbddcbddccccbccdccddccdbcdcbdcccbbca\cgd^``_aj]fcYabb^egbnglgb]j^eh_cn`]_gebb^gg]c]f_bhcaggka_h^Zebca^gcfjjcedfa_ee_b^acla]c`c[kgg\ca^_di]`\e^gdddr]hljj]ahfd^a`giYld]ibXi\^d_db^^aa{_m^ghi\egcfgdhYanke]d`i^k\gdcfab]ga`iedia[cbedcfc^keegeYf\iebdoec`dabdb`^hbceedce_gcfZccjafmbhba[m\bfYeeef\bjbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbbbccccccdccccccccccccccbcccbcccccbccccccccccccccccbcccdcccccbcccdcccccbcdccdcccccccbcccccbbcccccdcccccccbcccccddcccbccbcbcccbccdbcccdbcbdccccbcbccccccccdcccdccccddccccccccccccdccdcdccccccdcccccccdcccbcccccdcccdbcccbccccccccccccdccccbcccccbcbccccbdccccbcbcccccccccddccbdcccccdbcbccccdccccbccdccccccbcdccccbccccccccdcccccccccccdbccdcccdcccccccccdcdccccccccddcccccbccccdddcddccccccccbbdcbcccccccccccbcbbccccccbccbdcdcdccccbccdcbcdcbdccccccccccccccddccccdccddcdccccccccccddccbdbcccdcccbccccccccdccccccccbccdccccbcdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccadiaebcb_dc_kd`ea\]c`afc^`_fddd_fcfhabaac_gahde]gb`hac`qaaca_ag_e`f]_babcbeece^d^bbaiaebeg_gbbbdcagebcbcecbdbfej`dcc`dbead`bibd_a_gddaedbh`_a`\chbcdd`ccba`cbdb`e^ddca__aecjaggbehdaa`bhbgdd]`_a^d^hdc`ebafeabadbgc[]c^cbfff_bieibdbc^addgb`__f`abadd`bcbfda_ece``ddecddcdae\caadhfebbeccgaccdddbc_c_eg_effcdcabacaeaababfcb`cb__dai`ce_fbcbe]b]b``e`bjb^d]b`cbbcaafdgc\dcdccfc^]abccbdfcd^fiagbbccb`bhda`aec`_adcadcbcfg_gaedchbffafeceghag`cadb_acfbcccca_bfbbdacde^^ceaaaded_e^efaZccabeedif`cbcfeaaaccbfig_bf_fbeai`ifbei_akbccccbcbbccbcbcbbccdbcccdbbbbccccbcccbbccbccbcccccbcbcccccbbacccdccbbbacccbcbbdccbcdcbcbcccbbbbcccbccbbcbcccdccbcbbeccccbcdcccbbccccccccbccbccccbbcbcbcbbccbbccbbcccdbcbbddccbcbccbbcdcbbbccccccbbbccbcbbbcbbcbcccbcccbccccdcdbbcccbccbccccbcbbbcccddcdcccbcccddccccccccdccccbcccccccccccdcccccccccccdcccdcccccccccccccbcccccccccbdccccccccccccccccdccdbcdccdddcccccccccddccdcccccccccccccccdcccccccccccccccdcdccccccccccccccccdcdccccccccccccccccccccccccccdcccccccccddddccccddccccccccccccccdcccdddccdcccccbcdccccccbcccccdcccfcdb^\^g^d`i_\_`bba`igfidgbcgrcmccicXecab`hdk_`\ei^hjf[hd]kf^ah[_deiZb^`Ycabjj_c_c^njZaYjec`hbcbiafe^a`UmegfbgeiXn_d_`^aY]mggaefccggZgd\daei\ed^`cab^jgg^`gbffWla]bg`g]bddlbagabfYladZbc\cahb\g]ckcbic_dchfgb]cfjgdf^_bclca^df_i^bd]fhbXhag]efc_e`eknfdbbgdfij_igd`e`db`bi``]^daeb_[diaecjefeeY\bh^fcg_`^_Zbdhea[jpef`hb]`ag^``a_cdheeg`bkdVafefeebcgbbddbdg`dc`cb]e_g\__cebckdij_fagcb_fmfce^_^`dh`ccfedbacepb^_ace`dcc_obc_a^balbd[[cfeec]f]baiiXhbbdY[bfef_jm`\hgcbeiamddgkh^bZ_cigd^_```ieaaibecc`habg`dd[_fc`a_c`hed_ideb\^cccbcccccbccdccdbbdcccbcccccdcccdcbccccccdcddccccccdddcccdcccccccdcccccccdddcbcccccdccccbcdcccccccdcccbccccddccdcdcccdccdcdcccdcbcccccdcbcccbcccdcdcaccccccdddccccbcccddcccdbbcbbccbcbcccccbdcbcdcdccbcdccbcbcbdcbbdcccdccccdcdccbcdcccccbbdccdcbccccddccdcccddcgc^g\h`blab`cc]`gZbfc_fdb`heb`ZaddZfeac_kgc_ehh`b`q^]bab_hhc^bhj`b`fedfgbdhc`ecc_ecg^`fhca^ddefbh`cebhiceYgepgb_]k`h`^e`afei^bb^c``agihiiid`bjhcd[hh`ek[Xbo^\aeca[bdb`bcg_i_`djgfjcdcb]`d\bb`bafcdejfbhffga`g\bhf\ddac`fidXej[^aa^f]bd__`d^bh`bb_l\il`dhdjagbd\hcccccccccccccccccccccccccbbccbccccdccccdccccccbcccdccccccbcccccccccccccccccccccbcccccccccccccdcdcccccccccccccccccccccccccdccccbccccdcccccccbccccccccccdcdcccccccccccbccbcccccccccccdccccdccbcccccccdccdccccccccccccccccccccccccccccccbccdcccdbccccccccdcccccccdccccbcccccbbcccccccccccccccccccbcccccccbcccbcbccdcbcccbcbcbccccbcdccccccccccdcccccccccccccccccbcbccccccccccbcccccccccccccccccccccccccdccccccdcbccccccccbcdcdcccccccbcbbcccccbccbcccbccccdcccccccccccccccbccccccccbbbcdcccbccccccccccbbbcccccccccccbcbcccccbccccccdfcebacbddcecebdadcdbdcdcdddbdecedcbcbbcbceeebebbccddbccbcdccddebbcb`ddbdbecbebecbbdaccddcbcdbcfbbecdccdbbccecdfcebfbdccbdbebcbdaaccddcdeceec`dcdcddebbccbbcbdccebcdccbgcddbcaddcacccdddccdddbbacdbddddcccddbcbddbdccbededccddcccbdedcbbccbbaeccebaebebdee`bddbcccccccccccccccccccccdccccccccccbcccdccccccccccccccccccddccccccccccccdcccccccddcccdcccccccccdccccccccdcccbcccccbccbcbcdcccccccccccccccccccccccccdccccccccccccccccccccbccdccccccccccccccdccccccccccdcccccbcccccccdcccccccccdcccdccccccccccccccccccccdcdcccccccbcccccccccccccccccccccccccccccccccccccdcccccccccccccdcddccccccdccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccbdccdccccdcdbcccccccdbcccddccdccddccccccdcdddccddcdcddcccccbccccbcddccccccdccccdccccbcccdbcccdcdcdccdcdcccddcccddcdcccddcccccccdddddcdcccdcccdcccddbdddcccbddcccccdcccdcddcdddcccccccdccdccccccdccccdcdcdcdccccccdccdccccdddccccccccccccccccdcdcbccccbbccccdcdcd`f`kcccedbc``debac_fibabe`]g]dlhjja`icfea`eaci`k^eac\^k\_behgehdag_bhaeeiacf_c_k]affgbcicaahcabbc`a]cfeb_ae^`jhe`]`ia^`calcged`fcfdd`g`_adeaeacbg_]bacbc^j^g^dcfd^ac^bcbcbcbb_abha_ijjgbcjec_\f__fcef_gbYgceb\gceacbab^_]cd_adacaakbe_gcbedbbfccb`d`^cbfa^cbgghcebd`gaebccedhbf`bbdb`adacad`caededbdb`edebdbd``afcbecbbdcbb`dbaab`acddgecce`cgbcag`efcf`bcacddbeedcbdcf`decdbchcchdfdbf`bccfbbdae`cbfadd`eafebcbebdcacbfebecbdfcbdeedbbcbcab`cebgaeccb`daafbbeaddcegccafdcbcgdcacecdcbfdebcgfccddcagegccdacchcebdabcehbebefcbbb_erVoTgYS]igqorWWl_idcodkdOal]`gigXH[[e\hbgekljbdpcccccbccccccccccccccbcbccbccccccccccccccccccccbdcccdcbcccccccccdccccccccccccccccdccccccccccccccccccccccbcccccccccdcccccbccdccccbccccdccccccccccccbccccccdcccccccccccccccccccccccccccccdcccccdccccccccccbcccccccbcccbccccbccccbccccccccccbcbdccccccbcbccdccccccccccccdccccdcccccccccccccccccdccdccdcccccccccccccccccccccccdcccccccccccccdcccbccccccccccccccccccccccdcdcccbcdccccccccdccccccdcccccccccccbcccccccccccccccccdccccccccccccccccccdcccccccccccccccccccccccdcccccccccccccccccccddccccccccccccccdcccccccccccdcccccccdbcccdccccccccccccbccbcccccccccccccccdddcccccccccddcccccdcddccccccccdcccccccccdccccbccccccccccccdcccccccccccccccccccbccccccccccccdcccccccccccdccccccbccccccccdcccdccccccccccccdccccdccccccccccccccccdcccccccdccccdcdccccccccdcccccccbcbccdccdccdccccdcccbcccccccccccc`]abekkh\`k`bb]`c_ggkghacgfpb^^jaeecmhhi`f`gbZh[Y]_]`eYWdcbei^id`hja_gbda]^Wbebb\ci\be_Zec^^df`ae`_mbfa_]i_bcl`gdYajl_`adeechb\emcafab]_bca`^Zjda‹e^_f_cbd\be`ebcb_efdd`j`ccfcd]fd_hhhaa`jajabcah^bbhbccfbce\_nc^^i`b``eifcabbfnbrilah]^`\e`_`ci[fdabbg```b^gadgccccccccccccdccccccccccccdccdbdbcdcccdccbdccccbbcccbccdccdccccbccdcccdcccddccccdccccccccbccdcccbddcccccccccccbccccccdccccccccdccccccccdccccbcdccccccccdcdcccccdccdccbcdcccccccbccccccccccccccccccccccdccccccbccdbcccdcddcccccccccbcccdcdcdccdcddccccccccccdccccbcccdcccdcccccbbcbacdccbcdcdccbdccbbcdbddbbdcbcbdbbcccdccdcccdcccaccdbccbdddcbcdcbcccddbbcbdddabbcccbccccacccdbbdcddcdcbbdbbcbecdbbbcbccccbcccccccdcbbccccdbdccccdcbbcdbbcccbcbccccbcdbbcdcccbcbbcccddbdadcdcebcdccbbbbdcdccccbdcdcdcbddcccdbcdbdccdbddcccdcbcdcbdedebc`bddddadeebcbb`acceceebbbcebcbecbccdbddbdbdcbcddeacebcdfbeb`cdbba`eaccbbacecfabcccccccicddacedd`ddbfgggcccccchbddddcbdccdddbadbeeccbbddbbcebfeedfebadabdeaccecbbebddeddbccaca`cbdcbabadcbddcccdbecdeccddacccdbcbddbcbdcebcdce`dcdcddcedecbdddcegbbcbbebdcbdccdddddccccccbdecccccccddcccdcddddccccdddbdddccdddddccdccccdcddccccbddcdccccccddcccdecccdcccddccccdcecccdcddccccccdcdcddcdddbdcddddddddbcccccdccdcccddcccbccdddccdddbdddbcbcccddddccddcccdddcccccbddcdcadbccdcdccddddcdccccdddccdcccccecedccccddccccdcdcccdcdccj`bcbh_]g^[ee`f\e``emhb`defde]W_ed]`jba`emWa][[jh\kdgbi`gfcch^]dajYec[ffcfc\bdc`]nec_ecba`[afimi\Y[dadiblbfmb_TgibcbUcbhhchdhbgimk`c_afnba_g[fa^c]hf\bm]`aed`eeahZc\eejhg^Z]ihoee^g``bdbda`\b]ajge`^bebfde`dbbbej\``hhfekcdd]^dgfggakjhdfafmcedbe`^`afdk_``dfk`^ccdccccdcccccccccdcbccccccccdccccdcccdcccccccccccdcccccbcccdccccccdcccccccccbcccdccccccccccccccccccccccdcccccdccccccccccccccdcccccccdccccccdccccdcccccccbcdccccccccccccccccdcccccccccccccccbccccccdccccccccccccccccccccccccbcccccccccccddcccdcccccccddcccccddccc^eegdheaccYefcjgae[bacechg^chabd`_abc`f\hddgdee]iaacbbaYabeachgfhZea]b^^efd[[edbgh_`h]biagdaa`cdb]aambbi]`^da`fef^_kcahcdcqjca`bab`hhbieb`fgb\fcbb`bga_i^``ec^efgn]]d^amaa_k_cbc`bdbbZckg`bh]ehdc`egee_bhb`f^_fabj^`dgbdd`dfhkd`a^diZee]cfe\k`e_dhZg_ad_cdb_`jigccccccccccccccccdcdcccccdcccccccccdcdcccccccdccccccccccccccccccdccccccccccccccccccdcccccccccccccccddccccccccccccccccccccdcdcccccdcdccccccccbcccccdccccccbccccccccccccccccccccccccccdcccccccdcccccccbcccccccccccdccdccdccccdccccdcdcdcccdccbccccccccccccdccccccccccccccccccccccccccccccdcdccccccccccccdccccccccccccccccccccccccccccccccdccccccccccccdcccccdccccdccbcccccccccdcccbcccccccccdcccccccdcccccccccccccccccccccccccbbcccccbccdcccccccccccccccccccccccdcccccbccccccccdcccccdccccccccccccdcccccbcccccccdcccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccdcdccccccccccccccdccccccdccdcddbccccccccbddcccccccccccccccddccbcccccccccccccdcccccbcccccbcccbccccbcdcccccddccccccbdccccdccdcbccdcdcccccccbcccccccccccbccdcccbccccdcccccccccdcccccddcccbcccdccccccccccccccdcccdcccbccccccccdccbccccccccbbcccccccbcdbdcccccdcbdccdcdceccddcbebccccccbccbccccdcdccccccbcfcbceccccdbd`cdcdcddcddcccdccbdcdcdcddcdcccccdceccdbcdccdcbcdcdcbbdcdddcdccdcbdbddcdcddbedcccdcceccebdddbcdcbcddebdccddbcdcbbcbddbbbccccddcddccccccddcdbbbdcbbdcdcdcdcbcddddbcddbcccccccdcdcccddcbdccbccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccabggaccfabchb`ceddaef`ddaacbbgccdg`cddcdecfb`cadjaecbcb`c``ceacac_ccbhebcc_abd_bbcbcadcc`cadfcbagbbej_e`ecdacec_efbfc`defaba`dacgdgchcbahbaeebce`_cgbeeaefeddcadgddb`jbdbcbcbdaadeabccdecccadf`cedcbddf`agbdcbbacccaffefcbfdgeaadbacfccd^`ca_acc_cf_hfbea`cfdg`acccccccccccdccdcccccccccccccdcccccccccccccccdcccccccccdcccccccccccccccccccccccccccccccccccccdcccccccccccccccccccddcccccccccccccccccccccccccccccccbccccccccccccccccccccccccddccccbccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccd]aaedYif`dekg`e_`gedhag]gjcfdjefedbdacab_fiea`b[dfdkabkq]bdgagcfdibg_fhg`b_a`eggdf_cgc`mccc`_^`a^_efhcgegdehaccec`bdc`jahb_fgeagf`ecg]b`lkeifcc_c^gbdafeef^cbjchdhcfcc\hiiefeefbcagadadiefd_beebcglebgbchlgeccabeebXajdc`Zedff`_bbbgfeaZ]j_dcj^ac\[dc^`f`f`cba_fa\a`bcdfdcgbd`^cbcbbhbcbefdbga]eb_bg_`c`_ebbbdbee\eid^cfc`ce`cea_`df`bbac`dbfeg`agaabbebchcfdbbbfcdbbahgfddccebbebeccbfbbak_a`ddfbc^`c^`ccadkbdc`aeb``cbaecaaebfigdce_ddce`aeb_habecaef`debafa^_iehacdfabggddeed`acdfbddacheebikbcedg]ac`aaieafa_bf_`ebaa_bdeccbccdcdcccdccccccccccccdbccccccccbcccccccdccccdcdbccccccdbccccccccccccccccdddcccccccccccccccccdccdcdbcdccbcccccccccccbcccccccddccccbccccddcccccbccccccccccdcbcccdcccbccccccccccccbcccccccccbccccccbccdccccdccccccccccccccccbbcccccccdccdccccccccdcccccccdcdccccdccbdcccbccccccbccccbbcccdccdcdccbcccccccbcbcccccccbccbcbbccdcccdccccccdccdcbcccbcddcccbcccccbcccbccdcccccdcdcccccccbccbcbdccccccbccccccccbcccbccccdccccccccccbbbcccccdcccbccccdbbccbbcddcccdbccbdccccccccdcddccccdbdcddbcccdccccccdcdccccbccdccccccdccdccbccccccbcccccccbccccccccccccccbcccccccccbcccccccccccccccccccccccccccccccccdccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccdccccbccccccbcbcccccccccccccccccc^cj\ad\ge^ddb^l^Wicagchc\kchac]bfaccaef\\l_^adgbhde^iak\_]ggcifbdhdgaih]agfbd^dak[bfcee_i`_cf_^d__acc`ac`c_a`a_ccaebW_h`c^ajd^e_p\_cbdgk_[bcmai`ahheddfaj`ccgdYh]jf_a_^i^fndfddecac_ncc_ecgci[^am`hbhnZbirc`gf^[^k^e_caddh^a_hfda^ciak`cbjihjadnghe^fbcg_`g]`]\hcccccccccccccccccccccccccccccccdccccccccbcccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccbccccccbccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccdcccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccddcdcbcccdccccccccccccdcbdcccdbccccccccdcccccccdccbcccccccccbccccccccccccbccbccccccccccdcccddccccccdcccdccccccbddccdccdcccbcdddcccccbcccdcccbcccdccccdbcbbccccccccccccddccccbbdcbcdcccccbccccbccccccbccccccdcccccdbcccccccccccccccccbcccccdcbcdcccdbeccbcccdcbcccccbceccdccccccccbccdcccccccccdccccdccccccdcdcddbcdbccbcbdcbcdccbbccdccdcbdcccdcdcddcccdccddcccdccbdccdcccbcddddccccdcccccbdcccdcccebccdccccbdcccddccdccccdcccccdcccccbdddccccdcccbbddceccbbddddccedbdbcddccccbbbbcbddcccdddcbccccccccccccccccccbcacdcdcbccccdcccdfbcededccacabcaabeddeccecdcecddebbcdadbcecddcaebbbdbcdbecccccccdfedcdcbbeedcbbdbb`bccbd`bbcdfbe`dgcccccdcdcccbceddcdbbcdbdfcbadbbdbedcddcecbbfcbecfdacacecbdecede`badhcedecedacbaccdcaccabebdbccbcdadaddbbddbeacddfcbcccdebccccbbefcddebedfcecbedaccccccccddebcceceadcdbccbddcdccdbcabdddddbcbebdccbcdcddeeddeccccccdbbbcbcdbcdbcccdbccecccffcedcdcccbbbccccddbbccccdcbcddcdd`bdedec`dcccccebccccccccbcbdbdbdbcadcddddedbecdbdeccbdcbgceddccccdbcdecdceccdcfeeddecbbdbcdcbdebcdcaddcdcdcdecdccebcdccfdacddfdccccdfadddcbdbccdbcccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdbccccccccccccccccbcccccccccccccccccccccccbcccccccccccccccccccccccccbcccdcccccccccccccccccccccccccccdcccbccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccbccccccccdcccccbcccdcdccccbcccbbcccbbcccccbcddcbdbcccdccbccdccbcccbdccdcccccccdccccbccccccccccccccbbdbcccccdccccccbdcccbcdcbcccccddccbcccccccccccccccccccdccbccbcbccdcbccccccbccccccccbdcccbcdcbccccbcccccbccccbcdcccccbccccdccccbcdccccdccccbccccdcbcedebbbdcccdecbdbccecbccdcbcdcbcddccccddbdbcccebdbddbbbcececbdc`fdcbdbbeccbebbdeddddadbcddeecabdddb_aachbccbfbdcbcbcbcabcecfcbdcbdc`bddbccbeedbccceedddbbac`ccbdbfcabadbbeba_febbccdbdaacaddccbcbccebdd`ecbcdcdccfdcdcbddfbdabcbbbbeccedcdabacadeaabebcc`baccf`ccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbdccbbbddcdcdbcccccccbbccccdbcdbdcccccccbcbcbcebbcbccddccbccbdbcbbccbccebccdbdccbccccbdaabbcbcbbbdcccbcdddccccdcbccbcbcbccccccccbcdbbccccdcdccbdccdcbcbcdbaccbcbcccbcbdbbecbcdccbccccccdccdcbadcccccccccdbcbbccdbaccdcdccddddcdbccdbdccaacdbccbbbdcddcccbcccdbccccccccccdccbcbcbccccccbbcdbdccccccccccccdcbcdcccbcdbcdcbccdcccbdcdccdcdccdcbcddccddbdcbbdcccccccbccdccccccccccccccccdccdccbdccccccbccccdccccdccccccccccbddbcccdccccccdcdcdccdcdccdccbcccbccddcdcccbcbccccbccbcccbcdccccdccbcddbccccbccdcbcccccccccccaddcccdbcccb^dYb\ecabfid]]idbi_gc]]eaaee]bacjcfbebaaf_^dc`ce_`bfcdmcf_bekabbf[b^j_hmfe`e\_gbjfccdeWeedidk_]dcafaakcj[`cgjh^``bc\ehe_cbiikdc[bZb^_jcgbbefaicbe]ca]^_adhcaf]fabcacj\`ca^\`^^l_aid`b^gi_f[ed[ihban]dca`cldYhfcb^]mh_`ik\df`i]fecihbfdalk`ebclc`gbf_geihibidig]]ccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccbccccbcccbccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccbcccccccccccc_h^cgceddgca^fc`ca_^degcdd`cbccec`b\kedbcfa^aahg^f_c_hbhbgc`_aecgageadagbbbgf_llib`h_adfebc`egef\cdibcdac`ebhabdbegd_ebf`fgjeebc`edcegfadf`adcgdc___dc`gedbdgc]cdb`hdacc`bdd_ee\`c_bkda_cc_kdbgbd_chdcb_^abafbZcbbdcff``f`e`dbdac`fhccfebcf_fkc`bbda`_fbhbbdcdcccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccbccccccccccccccccccccccdcccccccccccccccccccccccccccdccccccccccccccccccccccccccccdccccccccccccccccccccccccccccbcccbcccccbccccccccdcccccccccccccccccccccdccccccccccccccccbbbccccccccccdcccccccccccccbcccbccccbccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccbdcccccccccccccccccccbcccccbcccccccccccccccccccccbcccccccccbcccccccccccccccccccdcccccccccccccccccccccccccdcbd\\dab^idgjicgjTab\fafd\hg^bdcdadpdec[]a_cfdYheg]adhj`aX_ca\cfalfe^ikad_e\ej_eaaf_`c_Ubgfcccfj^`hg\fhef\kca]`__gd^jlfeb_a[dSiZd`]eaaj[\g`a\le`l`_gbac_`dbgfbagbi_dbd]clbbdeefeZgbicmfefadhacce\[e][lafj`Wgl`cgbjamcibbgjf`jehf_c[h_c^cadija_hccmfhp`eadafglhd`efh^\f_`aibicmhff`gc]_feY_]dci_b_cadeajaejffbce`km]bhkjefa_bdh^igkdh`faccbd`iccecg_fcecdclja_edebb`cde`abd`bh__bfaadfheg`fcbc`cadgahgdefdeg]ddba`dd`]d_`^ddeee_b\b\ce]iefgfbgb_afc`j]agi_cdgh]f\]Xcbii`_fe`_a`dd[dbeeb__cjhdgk_k_^bf[cificdc_df^`f`dld_kibceicfbddbdcbdcccdcccddcbbdcccbcbbccdcdcdcbdccccbdbdcccdcddccdeccccccccbccdccccccdbcccddccccdccdddcdcdccebcccedccecbcbbdccccccccdcdcccccbbbdbdcbcbcccdcbccccdcdccbcbbcccccdcccccccbccdcccbbbcbcbcdccdbbdcdccbcdccdccbbcabdbbccccedccbbbcccecddcbbddccdcccdccedcdccdccdddccccbcdcccddcccdccccbdcccccccccccccddcccccbcccdcdddccbccccccccccccccccddcccdccdcddccddcbcdddccdccccdcbccccccccdcccccccddbdccccccccccddddcbccdcccccccdddcccccccccdcdcbedcbbbcbcccccdccdccbcccdcccbcdcdcccdddccdcbccbccddccccccccccccdcbcbccddcccccdbcccbcccdccbfbdedmfcda`]fgccfgegedieacda`_f_agf^bedghcdb^\^_gea\c^cc`ecZa`lbh_dbbf_c`e\^_e`dbafh`_fbecad[fddcb`ahgcba_cddebcdc^_b^ecc_fhbbehdcadecbfeace_`bc^dcceb```_f`cdbba`e`fidlbce``ii`bck`adigcgdhdeea^e``ebihb\dc``cbeeddfdbbcbib]agcab^gad^bdc^fa]bebbdgfc_bee`hchhf`bhbkca_egd__acg_bf_aa^caebicbedc_adbbbga`hhdbeddb]a`^fd^abddfgeadc`gdc`ba`baeded`ddcdfdecg_cfgfdabbbdbicbbadgcbceccbe_dbbfdcdc`ed^abb`b_^a_dcbcd_cbbd`acfdgcggegdbbecbbe`c]d^cbceccjeebecicc`ccagjjdeachge_fb`ej_`dbbca`cefcdd`ebhj`ibbecbecbpeaceg_ccfe^cee_bbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccabccdccddaacbceebcdcdacbebdbcccccccdccdeaabdgcc`a`bbdcaddbcbcbcdddbbbcceccdbacacdacdfdabebdbcccefcbedcbcdabedfecdeccccbbceecdddebddccccdacdccccefdcafcdfedfccccacdbdbeaaddccccad`dcbcdccdecbcbbbcbdbcddbbdbaeabbdcbbadccadbcdccdbaeabcfdcfcbaccbccccbbddchcadcccbcccbccbcccdccccbcccccdcbcccbbcccccccccccccccbbbdbbccccbbccccdccbcccccbcbccccccbccccbcccbccbcccccccccccccccccbcccbccccccdccccccbccbccccbcdbccccccccbcdbccccbcccccbcbccccccccccccccccccccccccbccdccccccccccdcbcbbccccbbcccccccccccccbbcbcccccccccccccccdbcccccbcccbcbbccccccccdcbccccbbcbcbccccccccccccdccccecccccccdcbcccccccbccdcbcccccbcdbdcbddcbcddcdcbccccdcdccccccbccccbdcdccdbbcccccdccccccccccccccccbcccccbbbcbcccccbbccbcdddccccdcdcccbccdccccdcbdcdbcccbdcccbdccccbcccbccccbdcbccbbbcccbbccbbcccbccccccbcbbbcccbbdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccecdeefaabcc`ce`cbbecdcccdccbb^cagbcbcecbcd`ddecbfcfad`b^ebaceccacde^aceadbdcaaccdddebdccbddcdaaacbecbcbccbbafbeedbabgacedddec`fcafdbcfcdc_gagbbcfcbddab`addb`dbedbcchbd`cdfaabadcbddbcbaebcbfcc``ccefadedcdc`fdbddjceccdebbcdbbddadccb`ffbadaddfad_hb`bdbb`bdde`cgedagchdhgV`hcbdbZ^_`dba^_lbe_cdac^hec`gbc\cZiZcaqahh]]b^^cdeb[acf]db_aaaie`gcfchlbbea`d]afdea`e^b^fcccei`f]d\hbgc[]\hke_ee_a`adcbeba]c^ffdhe`a_bh\dbggk`jkbdhf`dgcgbfcd^ebdabjaedi_ekf_abegbdbeadgafcbgecjgge`_^faWgg_\deefba`hbahah`a__ifjfg^afachbakbffbgffcddbdccdcccccbcbbbcccdccdccccccdcbccbccdccccdbddcccccccdcccccccccddcccccdccbcccccccdccddccbbddccccccbcccedecccdcccbcccccccbcccdcddbbccdccddbdcccccccccdccbdccccccdcccccccccccccccccbcddbccccccccccdccbcdccdccdbcdcccdcdcccdecbcdcbddccccdccccbcccccbcccbcccbdcddbccbbbaebbcbcbebdbab`cadbbceba_h`dcbc`deaddbecdgbebefccddbchdeb`abcdcedfbabdaddfebdb`bccaedbgddcdedcdaedebedeacadcdd`bbfddccbba`c`edbcbbbaaccbedge`lbdde`fa`dddbcccedbaeddabdabhbbbcebcacdbccbec`cbcdbaddgcceefbcbbcdccbcababbbdccebcccb_cbccebdcddd_cabdbcaddc`dccccccdcccccccccccccccccccccccccccccccccccccccccdccccdccccccccccccdcdcdccccccccccccccccccccccccccccccccccccccccdccdccccccccccccdccccccccccccdcccddccccccbdccdcccccccccddccccccccccccdcccccccccccccccddccccdccccdcccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc`ca]bcabac_l_d`c`da`Z_b^f`bliikghcb`]iYd_lZjj__[f^hbddjff`gdf`edcckib[kcdcegfa[_afkjkke^kaf`dfgak`fZa[^_]kcli^h_adbaeec`aa[`aeede`^b_bdbZ`jdg_^geegakm`bceabeefafgm]`ea]dbe`fbaehl`c_cfcefgagea^_\`abe_bckcbc\cXj``_[\ihe^bahjgaacb_cbh_`deijeaff_]`_pf^iaeec^d`cccccccccbdcccccdcccccccccccdcccdccccccccdccccccbccddccccbcccdcccccccccccccdcccccdcdccdcdcdcccccccccccddccccdcccccbdddccccbcdcccccccccccccccccccdccdccccbbcccdddcccdccccccccdccdcdccccccccdccccccdcccdcdcdcdcccdccccccdcddcccddcdcdcccbccccccccdcdccdccdccccccdccbccbccbccbcbcbccbcbccdcdbbbcccccdcccbcccccccccbdddcccccbcccccccccccccdcbcbcccbbccbdcccccbccccccdbcccccbcbccccccccbbcbccccdcbcccccccdccccccccbccccbcbcccbcdcccccbcbcbccbcbbcbdccdcbcbccdcccccccccccccbccccccccccddccccbccccedccbcccccccdcdcdccbbccccdccdccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccd_acbacddec^_fcbeaZegYehhbiebdg]hebccbejccbd_d_g_ddhZd`\gfb`ebbdacgca^bbfeg`achgckbaccebddc_gceeeiaaagkedegbfd_ebacdida_`cgeabbdcibaabdcid`eciccdfaf]fbebaeba\dcf^bbl_gagcccagaiccdc`cc`_b_d^_abaaidcbgf`bceedgeaaebb[bhd_]efbdc_ogededee`ffeebcdhdc`egcgad`hfab`bbbbaccdbbcbaebacdbaccbeebccdedbcdbbfdcbbdcdcbabccedaaccbbcbadbebbbbbcbcbcdabebcbcfddcacabccccccedcaacaabbbcdbaadc`cae`ebecaccacdbdfadbaebecccabbcccdcddbdbcccdabcccdcbcdddcdbcbbdbbaddcbcacbccccbadcbdeccacbcbcbdcbcecdccebbbbbdcacdcdcbdcdcacdabecbcbaccbcbdbccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbbcbcbccccbcccccbccdbcccbcdbcbcccccccbbccccccccdcbccbccbccbcdccbccbcbcccccccbbdbcbccdccbcbbcbbcbcccbcbcbbbccccbcccccbbccccdcbdccbdbbccbccccccacbbbcccbcccccccbccbccbcdccccbdccccccbccbccdcbccbbccbcccdcccccbccccccbcbccccccdcbcccccccbcccbdbccbbbccdccccbbcccbcdeabccddccbcac`cbcdcccceccc`bbbdcbccdbcccccccabcebbcbadeccabdccaccdcdbccb`cdccbdaccedebbcdbacbcb`cdabcccbdce`baabbabadccaccbabccbbdb_bbcce`bdcdcbccecabdcccdcdcbccbcabcbbcdcbccecdaccdbbbecbbbceccdbbdbbcbddbbcccb^aebbccbdecbdbddcccacccaadcccccabf_ebcccdcbdbcbfd`f^^blg_ag]aacfcfbcfcmf]ilef`dX^^eabdaaj]adedhg[b_ahfbce``hgdfk_\`rhkhdeaYb^l]a_h`X`_caecce[^ddg_bhagcbbhac_aaeab`faccde`]aekhecgacjd_eYe\ea`d`]gbfbh^pddZ`fbY]^cdacp]_^\``f[cg`dd\d^`^cadigfdgepf`ef[\c`ebbbgib`ggnh^cXbd`b_iaaaekobmeg^bdbeabgii^ajda`co]af`ccccbbcccccccbcccccccccccccccccccccccccccccccbccdbccccccccccccdccccccccccccccccccccbccccdccccccbcccccccccbcccccdcccccccccccccccccccbbcccccccccccccccccccccccbccccccccccccccccbccccccbcbbcccccccccccbccccbccccccccccbccccccccbbccccccccccccccccccccccccccccccccccccccccbccbcdbbdcccccccbccdbccccccbcdccbcccccdcbcccdccccbcbccccccbcbcccccbcccdbccbbccccccbbccbcccbcccccdcccccccccccdbcbcbdcbcccccbcbccccdcbcdccbccbccbcccccbebdbdccbbcccbcccdccccbccdcccccbcbcbbbdccdcdbdcbcccccccccdcbcdcdbdcccccdbcbdcbbbadcbcbccccccddbcdcccccccccccdccccccccccccccccccccddccccccccccccccccdcdccddccccccdcccdcbcccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccdcccccccccccccccccccdcccccccdcccccdcccccccccccccccccccccccdccccccccccccccccccccdccccccdcccccdccddccccccccccccccccccccccdccccccccccccccccccbccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccbcccccccccccbcccccccccccccccccccccbcccccccbccccccccccccccccbccccccccccccccccccbccccccbcccccccbcbccccccdcccccccccccccccccbccccccccccccccccccccccccccccccccccccccccbccccccccccbcccbcccccddcccccdcdccdcbccccccccdccdcccccccccdccddccccccdcbcccdcccccccccccccccccccccccccccdccccccdccdccccdccccdcccccccccccccccccdccccccccccccccccccccccdccccccccccccdccccccccdcccccdcccbcccdcccccddcccccccccccccbccccccccccccccbccccccccccccccccdccccccccccccccccccccccccddcdddcdddccddccbcddccbdcdccdcccccbccbdddccccccbdddccdccddddadcccdcccdccddcdcdcbccccccccccecbdcdbcddcdcebccccdcbddcccccbbccddcbddccdcdddcddcccccdcddccccecccccddccdccccccbccbcccdddddccccecccdccdccdcdccbcccbcdddcddceddceccdcdbcbcccdccdccccbdddcdcccdccedcbcdcccccccccccccccccccccbcccccccccccccccccccccccccccccccdcbccccccdccccccccccccccccccdcccccdccccccdcdcccdccccccccccccccccccbccdcccccccccccccccccccccccdccccccccdccbccdcccccccccccbcccccccccccccdcdcccccccccccccccccccccccdcccccccccdccccdddcccccccccccccccccdcccccccb`ielchfadd[gqjgc`edhlijb]jej^l]]clYjeaegi\a`_bbibk`aZhqj_q`f_i^`bga[``hi_abbkZZei`g`d`Vp]gdcae_g[`\ag^e_che`Zi\jZWjV]abZnf`o`d_e]Znfgkajij`f[o^`fh\iedbcshbiib``nXiahjaVXeadcdbdd[]lhYjfec]`be^efdb_dggc]`\e]bbmiab_amedbbffW_e~h]a[`jk^dfd]Xhgfe`^Sidbc\ligah`kcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccdcccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddbbffeccdccccdcccbcbfccddccddbcdcbedcbbbcccfcccdbcccdcbbccedecdccccbebcccdecceccddccccfdceccdbbcccdcgcdddcccbbccdabcddcbfdbcbcbcceceadccccbcdgbdddecdbcddbcecbecfdcddcaccccefcbddedbcbdebcbccedccccdcbebdccbddccddcdcce`cbcbdbcccbbdcdecabccecddededddbdcbfdecebdbddcbcdbbcecdbdcbcbcccbdbcaaccbbdcbbeccccdbcbcbbcdecbeccddbbcbeddbcddccbbdccccccaccdcdcbdebccccecddadcccddecdecdfcabbdbbdcdbdccdbdaebccbddcbdccddcdceaebdbcceeccccddcccdbdcbbcd`bdbbdbccbbcdbcbbcbcddcacdc`dbaccfbdbcabbfcecdcdccecba`bcfdddbebecbccdcbdabcdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccbcccdccdccccccccccccccccccccccccccdccccccccccccccccccbccccdcccccccdccccccccbcccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccacaaad`begbb[``b`a`be`addfb`ce``gdee^fhdcedbfe_e\dejbceZ`bdcacba[bbd`dcbdfddb_bbdbegbdc`bbacebfbefa_\cegedfdbcabdefd`a]dddebecddadbe__cad^eb_f`aedee_fdjafceccbebbe``ec]bbef`^`bfcedcabdaa`bdddc`ceecbdjadadcccea`cg__egccabdecbcb_bdchfebdcg`bdfce`_eddhadcdcd`ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccZd`efeegmfdNakd^[fggZdabbm^icid]e^f`[^chdcfhkdjdgb_f_bg]df`gcXfj_ajkehd[dilaajgal^adcZdb^bb^clZocbd[co`d]lkaf`dee^bclpe[d_ZfjbkeY__m]beob``Zl``Udc`glged]a^b[Zec^fjbfd^abZagc^]`bf\bga\[X`X^m`]b^h[ebbjh]kecgcgm\`aghY]ndfcklbibh^aZbffj`b`e`hbfdjqg\]icccdga\e\cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc[[khja_ddi[c`\ccacjcin``aei_ojfkagdddg^Z^ifaahbh_`cfcZjpebichhiibaedidd^^m`eele`dfdehm`Wcg^cb`jbh`e`^_k_eea]__k^aidn[Z`d`_jc]`gejeca^WbebbdaicidW^fjlbbfb^]g]_dakd[l\Z_laiadlabho`j_embemdif]_dlgaim`i^bmd]`igdechida\c]e\if\`dc_]eibbgZ[^cf\Zccfead\_ghXig^b_]`cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdbdbfcbcbbbbcbab`bddcbccbdcccbcdcaccabccbdbccccabcbccbedebccccabbfbbcbcccebcbbacbbbccbacaccbcbbdcbcabcaddcbbbbccdcbcbbbccbabdccdbbbcccbcccccbcaccddabcdccdddbccbcdbcabbbbbccabdcddddcccdeddbdbbcccccbaacaccbcadbdbddcdefbdbcbbdddacbbcbccacccabcbccbbbedcbdbbbdbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcbccccccccccccccccccbcccccddcdcccccccccccccccccccccdccccccccccccccccccccccbcccccccccbcccccccccccccbccccccccccbcccccccccccccccccccccccccccccdccccccccccdccccccccccccccccbcccccccccccccccccccccdccccccccccccccccccccccccdbccbccccbdbccdccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdbccdfbddededcff`eeecebcbcdaaecddbdbbfcccbbceaceccadgcbcebcdddecdcedbcccdbbebc`dfbffcdbhefececdabaeceddccddgfdcaadcdebdcecageccbcdcedfcedcdbccedccdeebcddbb`fbeeffccdgbicfdcdddbbbdbdcdbcbecdecbecbadbdccefhbeaccbeabdbaeddadeccccbccdcaaddccgcdccagecbccccbbfdecccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccdccccccccccccccccccccccccdcccbcccccbcccccccccbccccccccccccccccccccccccccccccccccccbccccccccddccccccbccccccdccccccbccccccbccdccccccdccccbcbcccdccccccccccccbcccccccccccccccccccccccbccccccccccbccccccccccccdccccdccccccccbcccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccbcccccccccccccccdccccccccdcccccccccccccdcddccccdccccccccccdcdcccccccccccdcddcccccccdccccccccccdcccccccccdcccccdddccccdcdccccccccccdcdccccdcccccccccbcdccccccccccccdccccccccccccdccbccccccccccccccccdccccdcdccccccccccdccdcccccccdccccccccddcccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccebddebcdcdbdcccedeeccceddecccdecdcdcdccdcddccdcdcdcbdbcccbdcdcccedddcdccccdcbdccccddddcdddccccccdccddccccdcccccccbdccddccccddcebccccdcccdcdccccdcdccccceddcdccddcccddcdddccbcdbdccccccdecccdcdcbdecccbddcdccceccdcdcdcddddccbedcccdecdddcddbdcedddcccccddcdcdccccccccccccccccccccccccccccbcccccdccccccccccccccccccccdcccccdcccccccccccccbbccccccccccccccccccbccdccccccccccccccccccccccccccccccccccccccbcccccdcccccccccbcccccdcccbcccccccccccccccbcccccccccccccdccccbcccdccccccccccccccccccccccccdcccdcccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddcddcccccdcdccbccbdccbcdccdcdcccccbcbccbcbccccdcccdcccbcccdbcdbdccbccbdcdccbccccbcccdcccbbccdcdbcdccdccccdcccddcccbccdcccccccccbdccdccddbcdcbcccccccdccdcbcdbcbccdcdbdcccccccbcbcccbdcdccdbcdcccddccccccecccccccbcddcccccbcbcccbccccccdccbbcdcdccbcccccdccccccccccccccccdccccccccccccccbccccccccccccccdcccccccccbccdccccccccccccccccdccdbdccccccbbccccbccdccdcdcdcccbccbccbcccdccccccdcccbcbcccccdcdbccddbcccccdcccbccdccccccdcccccccdddcccccbccccccbcccbdcccccdccdcbdcccccccccbcecccccbcccccdbcccdcccdccccccccccccccbcdcccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccbcccccccccccccccbcccccccdccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccbcccdcbccccccccccdccccccccccccbcccccccccccccccccccccccccccccbccccccccccbccccccdcccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccca_bedafcech^ed^dadcbdgfdid`ihbafabadb^f]eficbbeee_cgbeccbfiabedeeaf`cbcgdbg^`cacecca`fcdcbddffcd`cbhdbdcaecedeb_a^ecdcbd^dhdeche`_ccgdedfeddbac\cccebbdafdeg`bbdaccfdbcbcddcgacbecafgcacda_e`dd_bcdgegef_fcea`dbbdccbg`ibda_d^addccaj^edgciacdececa`cbgeaeef]g_bdccdcddccccddccdcccccddccdccccccccdccdcdcddddcbcbccccccbcdccccddbccddcccccdcdcccccdccddcbccccccceddcbdccdddcdddcdcdcccbdcdccddcecccdceccccdccddcccddddccccccbcdcccdccccdccddcbcdccdcccbcdcccddcbccccdddcdcccccbcddcdddddddccddcdccccccdcdcccdcdccddcdcccdcccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccdcddccccdbcccdddccdccbcccccccccccbdcdcdcdccccecdecddccdcccccdccdcccdbccbcdcbcccdcdcdcdcccccddccccdcccccdbccdbcccdccccddcdcdcdcccddcccccccccccdbcccccdbceccdccdccccdccdcdcbccdccccdbccccdccccddcccdcdbcccdcccddbcccddcdcdbccccccbcccccdccccdccccdcdcccccccdccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdbdbcdddeddcebddddccbdccccdddbdeccdcedcddddccccbbddbdcddccddcdbcdddcdecedcdcbfddedcdbdedddccddfdbdccccceddcceddcdbccccdfdcdedbcccccbecccddccccdeeebecfdddbcccdeccddccacccec`cbdeccddcedccdcdfdeccdbceddcdecdcddddacbdbcdbecdcccdccecccbbbcbdddccccccbdbdcbcbdcdaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddcccccccccccccccccccccccccccbccccccccccdccccbccdcccccccccccccccccccccbcccccccccccccdcdccccccccccccccccdccccccccccccccccdcccccccbccdccccdccccccccccccccccccccccccccccccdccdccccccccccccccccccccdccccccccccccccccccccccccccccccccdcccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccdcccccccccccccccdcccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcbcdccbccbedcbdbcacddbcbdccdcddeeebcdcdeccbbbbebdcebccbeecbcbbdccbcddcdcccccdbcdcbbcccdcccdceeddcdcbdbdddcfdbcefcdbccbccbdccbdddefdedacbebdccddccbcbadcbcfdccbdcbddbccdddbcbbabaccbccdbccccbbbccedccceaacbecdacddbeaccedcbadcbccabcecdfcbddbeebcceccdeddadcaccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccddcdcdcdddccccccdbccccddcdccddcdccddccccdccddccccddcbccddcccccdccccdccccdccccccdcdcdddccdcdcdccccccdcccbcccbdddcccccccdcccccdccdbdcdcdcccccccccddcdcccdcccccdcddcccbccccbcdccdcdcbcdccccdcccdccccdcdccbcdcccddcbccccccccccbcdccddcccccddcdbcccbccccccdddcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbddddcccddccccdcbdcddccccccdcdddccccccedcdcdccdccccccdbbcdebcddbcdcddcccccccdccdcdddcedcdcccdddddddbddecdcccdcddcbccdbddcccccdcccccbccccbcbcdddddcdccdccbcccdecdddcccccdcdccacccdccdddcdddcdcdccceddccdddeccccddccdcccccdcddccddcddcdbdcdccccfdcdcdccbcdccdddccdcccccdccccccdcccccccccccdccccccccccccccccdccccdcccccccccccccdccccccccccdcccccccccccdcccccdcccdcdcdccccdcccddcccccccccccccbcccccccccccccccccdccccccdccdcdcccccdddccdcccccccccccccdccdcccccccccccdcdccccddcccccdccccccccdccccccccccdccdcccccccccdccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddccccdcccccccccccccccdccccdccccccccccccccccccccdccccdcccccccccccccccccccccbcdccdccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccdccccccccccccccccccdcccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddccbccbccddcccdccccccdccdcecbccccccccbcdcccccbcccbcddbcccccdcccdcccccdcccccdccccbcddcccccbcccddcccdcccdcdcccdccdccccccdcdbccccccccccccbcccccddcbcccccccdbcbcccccccbccccccccdbccccdbcddccdcdccccccbccbccccdccdccccdccccbccddccccddbcccccccbcccdccdcdcdacgcacfaeaf`efdcia`ckh`agee_e_``accffafbg`feagafbdhbdf`^b`a`c`cfbbbcdc`chebd^cbbai`_dfb`edbdag`efadbeibahc``Zidea_e_e``dc_d^aaeadbd__dcibba_bba`b`ebcbabef`f`cahdgbchdl`abcb^ace_gbed`abcgedaedbedaf`feba`cdfbdbabcccbeiffbaebbfdf`ha_eiabfibafga`gbac_c`cfdddgaccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccdccccccccccccccccccccdcccccccdccccccccccccccccccccdccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccdcccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccdcccccccccdcccccdccccccccccccccbccdccccccdcccccccdcccccccccccccccccccccccbcccccccccccccdcccdccccccccccccccccdccccccccccccccccccccccccccccdccccccccccccccdcccccccccccccccccccccccccccccdcdccccccccccccccccbccccccccccccccccccccccccccccccccccdcecccccdcccccdccccdccccccbcccccdcccddcccccccddcdccdcccdddcccdcdcccdcccccdccdcccccdccddcddddccdcddccddccdccddccbdccddcccccccccddcccdddbccdcccdccccccddcccdccccddcdccdccccdcccccdcccdcccddcdccccdcccccccdcccdcdccccccdccddcccccccccccdddcdcccccdccdccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchihh``ibca[abhag^egi^faceacdghhdkfdce`dgcdff]daed__bddek_ibbda`edhegjec_egbcdc][a`jb_fegV\dkcf_fd`fd``e_aabde`fX_\f]gd^cflZ_``ke__fj_lh^badd_d^djgfgiacefn^jflncaajdcc`fjgcb_]_fl]dgbe\dba^agabc`iecadk_dgZbl[dc`jXfacgheeehdcj`fh]gdii]ch^faedefhc_^cnebeehkbb]cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcbccccccccccccbccdccccccccccccccbcdccccccbcbcccdccccdcdccbdccccccdcccccdccccdbccccccbccccbbcdccccddcbccccdcccccdcddcccccbccccccdbcccccccccdcccbbccccccddccdccccdccccddccccdccccccccbcbccdccccccccdccdcccccccccccdccccccbdbcccccccdbccbccdccccccbccccdcbcedcbddccccbddccdccccccccbcdccccccdccbdccccdcccdcccccccdcdccdcbbccdbccccccccccccdccdbdcccccccccbcccbccccccddcdccdccccccbcdcccdcccbdcccccbcccccbccccdbccccccccccccccbcccdccccbccccbccccddccccccccdccccccdccdcddbccdbccccccccdcccbccddcccccbccccccdbccccccbccbcbcbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbeddcbccdbdc_dbbdaecdddcddbbbdeadeeabccdcbdccfdecbcebcadadgddddcbcdddceabgebdccadeccc`ceedcdbadacdbgcceddcbbaccddceddcdacbdbdbcfbebaccdccdeaacdeccebedaba`aaaeececbbcbcdcdfbeeabedcacaacccddebcbdfcccdcdfebcbcabccacbbdcdccbcbedddcdcbdcbbacdedcfbfccccadcdabfbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbdbda`dbbbbdbdabdcdddcbcccdbbbcbdcbccbcdbbdcdcddbbbbaced`dbbcbdcd`cbdbcaabdedcddccbbcccbcbbbcdabbacbcccccdcdadbbbcbdccacbbabbbbccdbbdcccccbabcc`c`cddbccecbcdcccccdbdccecceccbccdbcbbebbbbcbbcccdbcbdbcabdbbdd`dcdcbdbbddaaabecbdaacdbdbccadcdccbcbceddbbdacdbbdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccdddccccccccccccccccccccccccccdcccccdcccdcccccccccdcdccdccdccccdccdcccbcccccdcccccdccccdccccccbccccccccdcccdcccccccbcbccccccbccccccdcdccccccccccccdcccccccccdcddcdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccdcccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccddccccccccdcbcccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccdcdcccccccdccccccdccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcc`d`bedcdfibecaccecc`bcdacfdicdccdcgadbdedbedbeacbbaadccb`c`aceccccddcbdbddaedgaefbbcbdcbcbaeaecbcebbeceacc`ecadcid`ceeebgecccddgdhagbacdedbed_cc]dbcbbdcdbabbeeadacadccddcde]ce_dddebddccbfcddf`dfcdbdcacdcddfbebdb^cbdd`dedbecdccdcabdccdbecdbZhededcacababcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccdcccbdbcdbbccccccccdcbddcbaccbbccdbccdddbcdcbcccccdccbdcccccccccccccbccddcccdcccbccccccdccdcccbdcbdbcbdccccbdbecccccdcccdccdcbcbddcbbdcdcdacccdcbccdcdcdbbcbbccbdcccddcccccccdcdcabccccdbcdccccccdcdcccccccccccbcbbcbcccbcbbccdbccdccdcdedcccccccdbcbcccdcbdcccbccccccccccccccccccccbccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccdcccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccbcccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccdccccccccdbcccccccccccccccccccccccccccccbcccccbccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccdccccccccccccccccdcccccdcccccccccccccccdcccdcccccccdccdccccdccccccccccccccccccccdccdccccccdcccccccccccccccdccccccdccccdcccccccccdccccccccdccdcdccccccccccccccccccccccdcccccccccccdccdccdccccdccccccdccccdccccccccdccccccccccccccbccccfaake^fmdY_bigbb]ciXaZfjkghfagiTp\_bd^dfj`efafc[b^dd__ie^[b_g\ahcaWalZWejfef_jccVbf^bf[ifhhemhiih__hcZsjddV]_cU_dbkcekggdega]efjceff`h_k`[gYkcbhiYad\]gb`_dgibeeg_Wb`]^Zf_f_cc]bca[d_^lgdhhgbmh]`haab`fb`gdeechbpf`fbWfnbabe]gif_behZniTte\Zhhdehhe^bciehtceo__bbgcca`ababcc_dfkfgg_abcca_bbfed\ehf`cah`fdb`\aeeggcedecaddadcccc`ief`he`fa^cbg`cedfdafcb_hdbfdbcdfjdcgef`cdcfcbadd_bdbbbaefdebecbbddedcafafhcibfcccc`e`jeaeeddgfbbdedfecb`ed`ecabc^af_fdccbebcebdeceeif__gccce_`cd`ccbdhcaaggffZbbcdd_bdecc\bcebacn`i`bbfc_g`faccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccbcddaccccaceccbbccbbbbcdbccddcdbcbbccdcecdbccbdcccddccecbcbdccbcddcdccbcccbcdddbeccdcccdcbddcdbdbcbccccddcddcccbcccaddddcdccdcdcccccccccccdcdcbdcddcddcebedccdcddcdcdccddcccbcbcbcccbdccbdcddccbbccdcccccbcceccbdccccdcdccecddccbccbcbcbcbdcdccbdecbcccccbcccc`bfRagc]c]x[e^le__mj_Wj]^e^lfrjqk[mddd]_^ndXqcZiccd[W`al_YKiqUf\eZ^c^`kj[]lsgn`^k_Vlcge_YYdajjdfbkb`emprg`wschLXnlt^_[Zf_dedaeaUjc]]akhWgjYzQYY]:\Xjcabe~Lf\k`flbhenZjYbcT]a^\^keahYlhae_gaid_\bY`bbbh\\c]_nnp`[^_^ub^m[b_aeii]bhg^oahbTm`d\fXZg\NkX]kr[dhkWidWbbcccbcccacbcccbbccbccccbcdcdcbcbcbcbdccbcbbccccccdcccbccccbcbbbcccbbcccccccccecccbcccccccbccbccbccbcccbccbcdccbcccccccbcbdbbccccdbccccccbcccccbbbcccbccddcddbccccbcdcccccccccccbcbcccbccccdcccbccabccccccbcccbbcccccccdbbcbccdbcbcccbccccccbdccbbbccccccccccccc\fd^b`h_mjfnei`^Yfak`cagl]]^_igug_bgdc]m\dQa[ebbdaX`\^k`fqaf]Zff`j`f_]o`cld^aZbZc_Vifdbh]ed[hccogpe_^ddl^hk]fZfki]deojf]Zajlflfjci^_[fZYlb`dj[paebc]knbmR`fb_f\diW_gXgkeb_mZgZcj`ghc^be`hjVe[ZZbjhpg[b][itie^fna`blcYZpefu`\fj`iRfhU_ecgh_hmgia\h\gfaijj__h`gfiakb`^]ag[gbed[[hcubbqd[bcg]a^cZ`kaW_iriheaj\eh^bfe^j[dVbTe`Z]fXdgbhiobeg[^de_`a`daa_]VdcddehgZ[dlkVYYem_`cceqa^egce[j_eikkoVhbkcfdb``^hg`dj_caa]^^]oa`j_f\dd\^dg`pca^U_h`Ub_gbdeaXZfe^gfef][_ce`h_^e\ZYc``dhd_edaXlbc_bkhbXikaeifedegeoZfbfWi`Zb]cbagZnh_`dafiim^mjaW]]a^Sab_p\]adca[i`fh[]hbkY`[^ho`gdhehe`pg]j\gkqf]jpggca_ec_rhfeaohjfemfb\ib^a]g^ccmfc]^aei`k\d\hjcYchbYfbaef]bibd_b`_`Xga_ihcjWrc`]cdhk`b`\afvg_baqmhcdfi^j\_gffaW[^`eVUaZm`Vncabdch_^jc`lYmWa^^af^idVbjhjZ]fbkeghYjW]f\f_mb``X_Z_gjjiejfr^gY\Z[YVnb^d`kh`__bebbbd_bcaebchdbfcbc_ehbdnefdh`_ebaaa`egd`jck`bege]faf_ccag`_ee`cbebec_ae^_hgabch]`^cbbaacecedggeacdedabbg`eaeeef`bd`bdefdhhb^a`\adkccfi`ddfbc`d^d\gd^^bh`_b^bhadfbafcdbdcdcfda`cdaaecdhba_edfd_b`bf`e_`b_ah`c^gfghafgcdf_baf`cfcgaccibgfhiabfdaefbadecbdcea^jbe`efdibececc^ebhcbjebbdad_df`becdebcad`dfdagebbhbbea_eccaaabg_baef]ca_a_bhd_^bcfdced^iecbeabdbb`dfcfehgbbabafbbeifddkkbhf`dedf`\`gagfhedga_af`\^afdda_b__``[d^cebceaf`badggde`geadgcdeeeicccecbad]`gfggbdebebbbcbed]cdebaddbafba]gc`fb_ge\j_`aaagedafaiccg_bb^e_eccccccdcccccbcccccccbdccccccccccbcbccdccccbcbccccbcccccccccccccdcdcccccbccccdcccccccccccccccccccccccccccccccccccdccbcccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccdccccccccccccccccccccccdcbcccccccccccccccccccddcccccccccdccccccdcbccccfjmfge][jjabVZeej]e\fl`Zaq^\ilio\eY^fe\akM``crdgchccehglkiqffn`pha`ddaUljaaj[dcifXxeg_e`ojfhea`c`bik]bZi`fcdcgeQ`[blnW_b[hoi_]efgb]_ccnk^am\Zfkend`ghnemVlgec]ja^__bUUfZ`eic^d[aei]ga`c[cdgjTdk`aYdr`eWilP[cba``fbkb]_[Zja`dcdY]`bebdfi\`V__ga_^hgll[igabij\^_habedccdcecccacdeeecddbdadebdeecdedccecdebbbdcfbecfdebeecdceecbbcdgcebdcdebcacceeccecbecdeacddacddaccdebccdfccbdcebdcedeadcfbbdcdeccaeccbcdeabcbcddbcddcbdccddbcacbbceaccdcdegdddcdefdbbfdcbdadbecacbdcdccbbccbcedeebdeddddcccdcdcfcaacbcccdaccbceebcecdcccebfdcdak_dWnmV_Zddgf]e`Z^Vke^jh]d`jhadhhj^brgV[_aV_`_dh`]Zkm`ilh`cgh^Vpa\[sqXje]gkfZeXZd`d_\ibbSajieWei`ghaZZ]hYb\ydKkheR[]i_bkc__ge`\kafZdU^eaNfo`Xbifesj^bjgk_]mbkhhYh`mb\de_ds^]g]db]KW[j`ldji^]]\idgWjc]TqehvgegodT``Rh_iqfeomeYm[dbb^l_m]UiZebrgaliqcVi~aeaUc_`Y`mddcdecccecdffcbccbcbabbddddcdcdfecddedceccecfadedcfadbbccbedfeadbadacedccbfcecccddedcccccbbebacddceccaccbdadedbfcdbdceaebcedbddccbafcddebddacabcbfdcdddcgb`dbbbecedbddceccaceabcfcaadbddeeccecbbccaebedfcbcbdcccdc`cccedbcbbbegddaeceebebdcbddedfcbdadeebccbbccal[e\[`r]coakbb`hiP`baf_h]^jqdobg]ecijWdw_lhcdf]q[^Yb]^`agi^c__je[mgmc]c\c`^Ydf[ecb^agh_[^c\lc_]an_qfLgg]enli\]e^cXbOcY[b]ihegf]`gfhVZ]cT_[kWbmleZdZoUcdfffjf^[i^i]affcehg`fcn_eegZ^ev{\Uio^j^_gcqe\fXbra[o`ahebgicbfrVeUai`_Yjafaf_jbi`ogggWWLdj`moaga[jdanbcb[kdedcdccbaccdecacccdbcdddccbcdecdcbabdcdddcddcdcfceccddcbcdbedcbbccbcdccdcdddaecdcccccecdbcccbccddbdddcdccccbbddcbecccccdecdbccddbbcdacedeccdccddbddddaedcbcbdcbdbdcdecddbecbcdcbbbdbdcbacccdbecdcdddddedccdcccbcebccdedcbbcbdbdcdadbeccdddgddcdccccccdbbcdbeccdcfgfd`in\heZfqb`i_U^gU]eie\oebbpcdh_djbYuofsdfi`fUalVWjkgfleblaekb_dd`e[kc_fd^`e[\]]hie[dk_gp^cfhgi^h^_fc\amhl__^_hflm\ZcYhaeafiiRdic`ucd]ie`\nY]cOiq_ec[mdsdkZ\`dU^cgl_^gatddXg_e^cahp\df^Wj_aQ^YeRkaajgdWhYpaee^dY_Z^dcj]`^bZ_lbm[Zbie\gka][ak`[uf_pdc^iqnc_shkfciejeb_iZ^_Yqeibjhc^dea][Qedfa[`ceic`q_f`]c]^_mbi^kedfY`_\wfc[[fZ\ag\gWjfeebkSagjlkde_Zdhcdi_]egje]deg^^_f\Ni_be]iRb\fdajje`]cdaXgcd]\ibW_eWXb_o_lƒcecgsmfg_^alZbpcblde\c]fYe`vj^jmbScfgoaeackk^i^fe^_ngh`_akl\d`_[[igdcx]bVsacbfi]^\ml]Vf^iadjckob_bfchhih^^ga`cdfbddbfcebdccdfcdabeedccbdcebccbbebbdbddbbcccebcdcc`daabbdbaeccdcedccaececedcbbdccbccfddebdddfbcddbabcddbcdbcdcccabedddcabcdcccdddecfbddbcececbdbcddddbecccebccccbcaccebaaebbccdceddbbcedabccdcdbcccchcacdbdcbdb`ccadf_acdbf``decddbccbcedcdddcebddbedbccdedcacbcbcddcdbccccbddcbcdddcccdbccdbbdcdccdcdccdbddddbcdcccccccccdccbacccccdbcddccccbdccdcccccddcbceddccdcddccdccccccccccdddccdcccdccdccdcccdccdccbcecdcbccbccccdacddccccddccccdcdceccdcbcccdccccdddbcdbcdcdebccccccccbcebcccdcdbccdcbcddbccccdbcccdccddcccdcdcdccbcwjio^b\ana`Saf^iVgc]`jceccd_fcbdo`W_[TlYl_kh\Xj`j\j_a[gceegeil_]_X\`kdgca_fcda_^Yhejkejb_cYggfce_`^afg`_fd\aasbfel`f]c_ld`fU\[iXeUagceelaffaadhbeacpc\\\Zc_^UjfifX_ebeafggfq^l]knfl`bc[iagcbfgb_khldjmeb`YZWb\b`olZXbk\Wgc`kg]a]iYd`heh^^dlfcdfg^m\l_bW[ceicd^Z]_edbbggaegdb`eabbec_edbfddcace_d`fbbdbeccfgebdccbffbe``djde_e_cd`abccfeadefdeccdbe``bff`bdfedbifdacbcibbgcdbecdaaf`ddc\bab`bc^aebhabadacadde`eba``ddcac`_efahfadaacceggaeeagdja^bfb^afdea_dfhfdbaghcgedf``cfa`ab`a_`eadef`e^difbbbcebbb`ed_be`defdedcfffeeddc`efcbddccdcdcccbcdcdbcddccbdcdccccbcdbddbbcbecccdccdccdccccbacbcbdcadedccccbcdcecbcdcdddccbacbcdccccdbbcbddbcdccccbecbccbdcccccbcdcdddccaccdcbdccebccbbcbccbccbccccccdcdcdbdbbccdccdcccccdcdbcdecbccccacdcccdccccdcccdcdcddcddcbccbdcdddbbdbcebbbcdcceddcccbdccdccdd`gdia`je_bth]VgfakYbc[iWagu`_oXc^lhf_hfch[_dgjefbZ_^mlooac]ffblcal^Xechdgbdb`cbh]_fgk^`^`[bdmf\_]che`oYRjVv\^^\Y_cYU`^dhcikg^jed_lfe^fjfebdjbaX__bbhVicyc^a`[``gjYeg][dilc^ggpafkfhbn`]`gpXd`daqfXYad\d[hg`aejaj`gdj^`Zf`_eZ_di`jhb]fduecf]dbcadgTd]Zjdcgga]d]_dbfbcfcaacda`ccbcbegabbdabbddedaccacdbecbecbgbcdabfcdbabafcbbbca`bbcdbc^dbccaebbccbdcdcefeefaaedd_decccecbdeadcedebdec`dfabdcec`dbdebdcdccdddc`c`db`cbbddbabdccbfdbdddceafbddebaccdba`ceeddcedbecbadabd_bccfccceddeddcdadaa`efccccdgbcbbbb`cbcdbabbcacacbdcc`ceecccabcbbabccdcccbcdbbbbcbccdcccacbcbcbdcbbebdcbcacdbcccccbdcbaabbbbcdabdccdcbccdbcabccddcbbbbbaddbcbccc`ccbccbccbdcccbcbbbbccdaabacdccccccbbdbabccc`b`ccecbbcccacbccbcaccdceecdcbbcbbbcdbcbcb`bcabcdcdaddadbccdcaccbbbdbcdbbbdbcbcdcbcbc`bbcccbbcbaebccbcbdbcbabC``ugb]Toc`hNmhSz`bNWcfZir]b^nfXWdgcbhjec]adjdOihqp]TWjf_[mDc`qnakla[eLhfUVgfogah]`cblbFhe]\k^fdodQeoc`cfhZbijdje[vfjjleb\biW[jl^aba\memce[akdjeejVdclcajh`bflUecca_\_chekccifebkn]Zfl`jhY`^jfirjd`gi_a]rYcbaif]dk^bbe`o`cleUYkda\oZhhWU`cdced`a[dmc^\_f`ecZemfc^Z`ejf[M\[fa[QWVham_[ckUl\n^fYd_g`ad\iX]keh^[kgjYcb]hZWQddkc[ic`^h[]i^]`]i[jilfccWahiZgcif^bsXej\dajX]rqhbj]ddagllcjfa^^u\]ae]b_heqtceafe_ahSbofc^gZ[jeWl^pi]l^ohgch^qld][pTZphZeU`hYjdie_v[g_l\hap_\HcibSe^^qik]eZeZXrb`_]hfejjniW_n\dZfmmfjjbidx^bfbjp`h]dVW`edU[`m_\u[XaVqkcY]_agd^mlqpcQ^_on`mmdVdjZ^ka`mg\ecZ`Vgk`^lLdibehdpcdMfd^\m^[`]``ag`]]qhUZPdX^SekZZ^d^`jfe]`gZ[g_\ckg`nch[\]qelamjcYTdoigi[f^kgmdfdp]diiqk_chX_kgfcnmVcWv[uY^^_`bcT\c\idfd\g^`jkjcYae`b_i\j_iaZalg`ae^Wcd]bbd_clkdkeik^^^^qeif_eighcif\gXeodah_aeT]go\dfijbe^jXlac_cseddjhk`ceg[b`da_hjc_^gjj^geae_e^bbigiTd_onugf_iaicce`hf\bfbj_gYjlgfcT`f`]n^[hed_ddfgaf]^ijfbWXc``c\eZbSnhhi_\Ze^adfdcdh^i^`eaWadnmicb^kbg`^vdighXjbmklccbcbci]h]cebg`elhrh[aib_`k`X_fge\chikcm_a`dmbf_c\gYdb[`]dakfiXh^g_hbi`Webddgbf_^b\hkcfg^ekchb`ahgg]hgYmg_bcc`gg]f[^gffhf`nhhkjflajchebkjhefb^e]d]gmid_Z]eca^jXaenfdagdidiba]if`_kd__[_ae_ae^i]gnj]m_``][_bRgfa`m^d]iiX^d\a`jdbk]eYau_efckcgad^fdcb_ecehgaccebgVdO`hbdcbfoh_ckh^cjdqc`cZ_fbeai`geb_b`Zb\de`hYWjdfh`Y_d`jadce`]^nc_[noe^epe]kf\ajba^[`Zm[_ebf^c`dd_^ga`ebckeihabcjkada]`b_`jccm_geehng_aidieaeggn[k^[hfe_ac`jhcYt`cagbff_g_\dbbgdTkjii^Ybcb^_fgkZcfe^_c`Zh`eMiefYj_Xaejbj^f_\bciae^^c`dbad_c_ZZb^`la^XafcaZhgbajbej_\bia_caid_b_]ajaeWeekdSYhbdct]n^kl^bha`^gmfdan_\bd\e_ed[c_k`Wfb_fdbafeeb^\dWcbecfi`feeek``fdfcce]ggjZcbfhi^cdcdafopdef^Year`dYcqh`hhpaa]d`\ci[g^^Z^Padgd^bU`ghfbb[`[fbcb`dk`cco[fb`_`]eYka_d^gddUgaf_kpbhheoafgba`_afb\gaidegc\pfj^Wg_bdbjXa]V`edYX^ctbiacYehb\nigeg^c`bbg[jb_ehecf__]`ddf]cikddiX_foladla]eg_d^a\^_dgdahbjanjeak`d^hgd\__cjfbeacaaahaheb`e_]k`cck_`cgj_aaeccaeddbaeec`cbcbbebbdgfbaddgbeabgbabcbddfecedfddfa`aceddgcddcceaaddcccaddgdbecd`dfd`decfdbbfe`bded`afbbccbdcgdde`ffdeb`bdcdadceeddbfcaddda``dgcbcabcdbgaecaddceaacacbd`cejeegcbbddcfbcfcd`c_bbdgccccadbfdcccdcfbdafdediadbdbledcedeeccedeceeef^fcacdebagcccebccccccccccccccbcccdccccccccbcccccccccccccccccccccccddccccccccccccbcdccccccbcbcbcccccbccccccccccccccddccccccccbcdccccddbccdccccccccddcccccccbcccdcccccccdbccccccccccdccddccdccccccccccccdccccccccccdccccbcdcccccccdcbccccccccccccccccccccddcccccdccbccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccbccccbcdcccccdccbcccbccbcccccccccccccccccdcccccbccccccccdccbccccccccccccccccccccdcdcccccccccccccccccccccccccccbcccccccccccccccccdcccccccccccdccccccccccccccccccccccdcccccccccccbccdcdccccccccccbccccccccccdccccccccccccccdcdccccccdecfbdbcdcabedeaadcbabdccccdbbedcdacccdcdcdeccdbcbcedccecbccddfb`dcebddbdecbceacdbddbcdbaddbecdbcccdffd`dceaceabdcbedccdddaddceaebbbdcccaeccedddec`bbddfbdcebbcbcdccddadedefccccbbbddbdcccecccfdeddecdccbcccccabbdecbccdeddccdfcadccaccdacdceddcccccabbbccfedcddc_dbec`dgfa_jchlhe_dfcdbbcdbahdf`ie]hcldgafcdgT`cgibc]hbmc`ef]cg`agafdg^fjk]anghk^aad`j]b[`_e`^j^c`h]bb`bldf\c_hdagc|d`a^^delcdlibce`cafnkig^ej^`]_b^`kXdkhbb^b`cefcehjafmeai`abcYg`dcehad[]Xifa]cch[eaf_cYd`dlj\bh[bm`b]a^`]c_lifkbebc^Z``ch_bgchhbbfee_heefbmkbcch`]fSZfd[_eUefZcbefn?\bt^dWbck`bX]dagr[`e[dg^jbbhn`cdb`g`bgch`gl`nj[ee_Vb_Ul`^^^YddhZdgfe_heid_]kh\hem`ffhaiiYfj[`bbim^`gc]^[cfjcked`i`]hdZjW_[calekcaa`a]j]lgjcpaqaitbe[f_hilic[fh_a]ogoah^daY]oeqd]ahkbabm[d\qhc]]kb^akf__\c]eb`dlchVg]cb_\fagb`defe]`ebkbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccagcahegc[g_^cd`dX[^a[cgdeeQag^`hgehggc`efa]e`]fdcdaac^`fac`baffe]a`_accbcbc]bhb\bga`fejiac`bbf]i]_jgcbedfijfgbdacbcjcc``^b_dihQhgdbf^ge^abbcfjgeZbacbh_db`e_ba_adhgef\^cbdebcab`g`idhce^ahhbh]ad`bbdc]he`cjgdfn`hcdjigb^dcfhhjma``a_d]`fda`i^acffh^fh_eg\aae^ghibcaccfdabdccc`cbddbdcaddcbbbdaabcbccdbbefddceccbcdceccbdbcccbfeccdccbcddcbcdcbbdadcdeaececcbbc`bbddbbaddddfcdbcaebbccdfbedcdddacceedadaaddcddedeccb`dbad`becccebcdbbadbcccdfddccaccbbbbbcccbcbceabdbcaaecbdccbcdafaedaddccedbdccdccdccccdcececbbdbbbda`debccdddedbcbcbcbdcdcdbcdeecbdbdcc`bbccbaccbddcdccdccbddbeccdccdbbddfacbacdcccccbbdbcccbdcbcbcbddac`ebcabcdccdbccdccaaccddcccccdcdccbcbdbabbcdccbcccdbccedbbcdbceabdcccbcbdbcdccdcccbbdbddbcebdbcdccccccbdcddddbcbdebcceccbbcccdbcfdbabcdcebcdcbcbcccdaddbcdccdadaddddbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcbabcdccccbdccacbc`dcecacacbadbabdbccbadbbabbcbbbcedceeaccdddadbdcdcbbbbddbaceecdcdddcdbb`dcebddbdbbabcbdbbccbcbadbceccdccbebbdfdbbbcbcaccdbdcecdbbgbcgdbecbbcabdadabccbfdbcdaccdcbcadcbddabcecccbcecbccdabdddbdaacaccbbabdbcccccccbfcdbbbecebcdadccaadcecccaddcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdadbddbdcccecdccdcbadaebccccdcccdcbbbccceccccccbcccecbbebdcedbdcacccdcddbcbacbccccbbddcccddcbccbbdcbccdbcdefbdbcdbdcbddbcccdcdcdddceecccddcdcccbaccdcdcfbcbdcccddcccccecdbdccbbebbacbdcccccdcdcccdccccbcbdcdcbcccabecbeccebbccbcbccabcbcbbabbcdcdbcddebcdbdcbbcbad]eacc[cafcccacedeccbf`fcdebdbcabdaceddcb`f\gd^`h`^ceac`bhcaccc^cacc_bb`gebegc\ebegabfec`ade`ciba_dcc^bcaadddh_bfaeeaaefZcah__^adaedcehbd^c_`c`cdaceaedgcce\a_ae`bccd``lbaidccegag_a_debddbbedbcb_b_eabaiedcdcaabfg`caca_bdeedeefc_gdc^bccfdcbecaecaeafccceacbfkfekde]hcldfi_^YcchcYde`igda^ikg]]d`ebhd`e_ffdfa`Ya`f]ld`cg^]ebi`gZ`lc[heehaFfkb_a]gdad]`]hjbc_bdg\fckjhj[^eiefdefagdcjh`befgheYe]afb\jd_hcib^bl]_cdX[dbjeh_fcn`m[e^_abjgaa^dcgb`jc^]c`f^Z`cbXemgeb`cgjcba`a]ba^b`faddhcc`_d_dlib]gakc[hhae_ccdad`d^fkc`edhbjg^ccccdcccbcccccccccbccccbccccccccccccccccccccbccccccccccccccdcccccbcccccccccbcccbcccccccccccccccccccccccccccccccdccccdbccccccccccccccccccccccccccdcccbcccbccccccccdcccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccbccccccccccccccccccbccccccccccccccccccccbcccccccccccccccccccccccccccccccbcccbccccbcbcccccccccccccbccccccccccccccccbccdcccccccccbccccbccccbcccccccccccccccccccccccccccccccccccbccccccccdccccbccccccccccccccbcccccccccccccccccccccbccccccccccccccccccccbcccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccbccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccdcccccdcccccccccdcbcdccbccdccccbbcbcccbccccccddcccccccccccdccdbbdbcdccccccccccccccccccbcccccccbccccccccccccdcccccdccccccdccdccccdbccccdcccbbccbcccccccccbcccccccccccdcdcccccccccccccccccccccccbcccccccccdcccccccdccbcccbccccccbccccccdcdccccccccccccccbccdcccccdcccccccbccdbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc`dcb_dgYdbi_c`engbYWZ\``mZ^`bge\ghdk^dlh]e]QUidcd_ekj^a_e_a[bkbped``\eoecfkf`c[Yifd\icnk]`bnegjc[_aaaScb_gahgba\g\c`bocl`efcg[c_]dbjecei\jfh[ecle`bbd]hj`ag_gii^[bjcfbca^blcfh\X`ahefcekZ_e^j_kN[d[aY]eagdYj]p_feaae`\cbYe_n_be^e`[bj]ddd^ZX]jihf\ahcdfmdfc]dp^eccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccbccccccbcccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccaabfacdc`ddbc`accebadbdddaccbadddaccae``bccdadbccbe_bbde_aedcdfddfccbbdd`cccfdcaccadadecebbaabbabebdd`cdec^dagccaccdccccacabdccb`cc`cbbbecadfeccdcbc``dc_cfbddcgccbdcca_cdddccccfacdbfbad`b`bbcceabbcbadebdaedfde`cddbfdcabacbcc`ebacaaaebdeeacc_cdcfdacdbcbebdecccccccccccccccccccccccccbcccccccccccccccccbbbccccccccccccccccccdccccccccccbccccccccccccccccccccbccccbccccccccccccccccdcccccccccccccccccccbccccccccbccccccccbcccccccbccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccbcccccccccccccccccccccccccbccccccccccccbcccccbccccccbcccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccbccccbcccccccccccccccccccccccccbccccccccccccbccccccccccccccccccccccccccccccccccccccccccbccccccbccccccccccbcccccdcccccccccccidg]iEdh`Srcei_]m`hda\kecfeflc`abec]Yicmdigcfd\a\`d_`hgfd^caec]kaZd\bifbeegeb\c]lj`db`il]ebkjZbgha\ba[eb^eN[ei\c]f]ajgYebdaaf`k`V_li`Y`mn^j^^odnjdnachema[f`loh\bZcdigkadok_cfYc\__b]d_bi_e_deb^_k_ac[kek`^`\d`figabfaia^ac^Y^b\i]aace`[]dif_d`nW\gafhf^hde\faab_mjkWd\koklck[dmVefkf[`rrd^cpac^UqWcW]e\ggi_jl\aflYdmchcebndcaefcadbcm]haehYZl`Y`lhe_Zi`dcab[ni_gio\a_ihcgibcgdaa[_`]fccj]\cl[mjjd]`afhj]\hbgi_al_bbiaidf\fah\fk9iiUg[][f\f`bc`_ghdef\\b`hdgliejc^^]^cX^YcIieejhfdac`cbg`cidbCdgadckej^WjbeYddagdjdbc_li`cj\ihf[cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccclQ\e_fcch`bdf_\hXh]e`mc`dgdadeb]j^^khc`gdjfbedkfaeicg]cfdcbjbdeahiahgckf`gd_bgahb^gael[_iZd_dM`]_eficci^egicd_`d]g`hcjbcfgd_ak_ca^b`eek^bf^``eg^Pdja]c\Aa_a`_dggecgd]backea_bah^bhld`dccahhg^fff`dfd^^befld\`ccUbfU\_m_`i_f_knchh[_cgccec^^f]`dr`^gcgd_]]agddgehccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbghd_ag\\dciogclWfe^bed^il`fk_]_alY`f`gchOdRdgVf\Vebhd^f_ecZY_f[`dV]ikUhWbacbp_dfdVUglfadccgcoh\l`rdmbnifkifcf`afagcccndhfai^ba`g^ihj^^j_\cmicj^fdcod[``aeai`gjdU_dq[bXYldfZ^`dc\bglecfl^d]feb`_hkebZhqbdpcf_bbdkbefma`hc^ifbkfdd_d[ame]fbTaYjfQocbgbjbbk_Ylgb]bbghgahYgae`eaeebd_XZgb^\ncagNa^_c_hftbjps[cbckhjda^Vc^gchhde`n\^_\`ogccaghYc_[hmhafflkahacYffcOdgaedmhcbdek[hedd^ffck_bfcX`cmje[bcad[_g[n_eedchhmheehce_dhbdabc`p`]h`h`b\^ha_dge^m]dgXcgabccRgUbcdkiicd\sekZ`cd]ageehgd`fhc_qqgdf^a^adc_flgbec`Z_fa_codeb_if[__eRbZe^bgg_`Zdkie^e^bc\]bWjah_hfa[_bdgbg\g[\dXbeede_fc^^ehbahfafhad[`ifj`fXgcdh]im\j\ceedg`ee`ek_g`f``jbnhdhZbh^biddidd]k]__ZiZh`edd_cc_VdiaX\rh`cagejm_iga_fibjfecgccbc\eYWc\bfkkegfjZf`djbdggkoj^fb^d`a]cfn`hcadbfpbgc`aheh^kakfc[aZkcjjd`]hgicgdccbWbgjeae`S_d[cccccccccccccccbcccbcccccccccccbccccccccccccbcccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccdcccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccdcccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccd^Xhdq`eaV_dk^[`agi\mlcbbchbhY`_gdebaib`ad``]]esf[bjhl_ag\fgbh^^idb]ib^iafhmffhfkhejccbmjbiao[_Wgidc]]baa\eaj`abcfgS\Ye``ba\]e_U[ajf`deebg\a`_]^cc_hdZ[dga`idbhUf_]`dhfneeZSc[joY]fcbd^g^g`_cfffg_c_hdlZi`kkce`c_haag`cf^\eaebd^^\`^dbiWck[ahwb_`fZh\\Y]e^bkbn`Xfbbn[_ctglPahfdaafecb^ejlfb]efib``od`fVcenlbmeafdidig^ccdZkh`_h^c^abcL]nfZ`i\_[`[`jhjgPhlnfb^ja_aeodg]`f^mdfdVRhkfagaZboPig`X`]macbfcnaTc_jd`h`[]aadW`lWa`^b^fpli`e_g]Vc\egb`d`f]XXeef_focecklf`_bc^`j[aa^nk]naacbcgij`ahclad[ld\Z``fUdebcbfmZfumiaedgaj\eabf\faZdXkeiieb]p`iWeemlX>X^dZjaSa]^]_oT^cje\^cmedXd^kakb`dmej^acibd\kd\lg`adfxd_W[fdil]`[cfwfch\o\k`mSbc_]`ZxXkd`ndd_gXhhdillZi`biUcZ_jfmbeab^cmdk_mmqgchq`gfceg]bjhW`meii[k`lge`dg^dfd\aagabh_c^m\le\`ih[bb^_lcgmd_d_ahf_Yj^Ufg]`c_jbeiUe`^ep^belfgcXe]`beeigg[kh\fmkdm_Ocejmc`^jc_\[fk[nd`hl^\^dcQaZlgcgbgib[^gcfkicfXei`bb`^beZZbca\gbeThhnc_c^]fPjh_gdic_gbgemilbVegmcgheeldb]^^eXe``a\cYfkk[]o\bbd`P]eebbb_a`fc^[idceg[Tdabd_afrk[hiicdld_gbac]a]`i^o[ffc]`aiiZg_g`d^e\clt`[cj[][c_]hggdedejg]bdS^\_edba_bdfhacnW]n\fk`fWjaddkocadcfi_dc_d`h`dgfcadb]eabacabbacbh`aeeadbbb`ddgfg`f^bbdbacdaefddebdd`eaa_ee]eabbadbdf`cbfefabee^ccggdda^e^ddbb`gaagcbfbhcbbbcdfaa`b^becda`eagab`eh``gbdeegcdebbcbadaabbcdc]d_bcbgddachecbab``_dbgdeadeaaa`dcdaecdb`bfc`dfedacecbadac``dcfc`bcdbdaadgcibgebdec`abdccccccccccccdccccdccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccdccbcccccccbccccccccccccccccccccccccccccccccccccccccccccdcdccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccbccccdcccccccdcccbccccccccadcbcbbcbbccaccbcbbcbbdcbbcbbaccbcbcbcabcbbbbccbcabbccabcccbcbbbcbbbccccccbba`bbccbabcccccdbccbbccbcdbbcccdabbbacacbcbdbcccbcccabcbbdbcccbbdcabccccbcbbcfbbdbbcbbcbcccbbbbcdccbcbbbcbcbbcbbcbcbbcbbbccbccbbccabbbcbcccbcacccbcbccccccbdabccbdbbbbccadaccbcccbbcdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgcYeZdff[iV`uhWg^cbgn\^dmc_bii]gjTfacmadWjjmaa`eg^gdk_`gae\c\hfc^`ffSRgcUfa\`mb_dja\fjabjYf]^dg^WWcgbme_lgohhYeoekfenhdZffXmdga_efa_b\ajafa[edZfagakecc\Za^aYhenccohk^`kdY_cc]af^i_bbg^^bk_e^_^VZekfa`g]aceZihcip_^c]j_Sb`n\]ggZdgbcoke\[g[nffagse```_]^mcdn]h\gfhfecx`eohg[debd\h`labeed^[be^^mf_cficbdichmdbamee]`mf_^fg`g^_idiZdb`fcimb^ead\ee]nibVqcgfb`ac]eclaXgabefbeec_dbcele^_c]ib`fgcbga\g\]imadce^\_m`hkgad]Y\jh[ccZib_gbkke`mia`^dc_bh_bff\[f_hcjfdajc_gb`ZjaTcageZj`bgUc]id_fka`d`gifjkbdkdfg\h\f_aaatZdha_c^[a`mjigccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdaj\leLkggj[ag^mgdjhfdhWqdciXiac_i\im\pdio`bqhacbZ^^e`d`^dm^cc_]b[ajlb]cfc_kaa^ad`^ibflhfkgflkqdiicf_^aY[nab\bhaHic_m_agjUh[d_p\ccaj[cjaU^ec\na`pbfggnglcamicdlTe_c^el_ddWkbjdX`ck`ecm`gblf`b_Y]aj\iWhiYafZ^eb`h^ih[_Zb_g_c`giGc]daj]caUac`\fb_Xaifdghch^fa\`b[[ccccccccccccccccccbbcccccccccccbcccccccbbccccbccccbccbbccbccccbcccccccccccccccccccbcccccbbbccccccccccccccccccccdccccccdcccbcccccbcccccccccbcbcccccccccccccccccccccccbccccccccccccccccccccccbccccccccbcccccccccbcccccccccccbcccbcccccccccccbbccccbccccccccccccccccccccccccccccccccccccccccbbccccccccccccccccccccccccccbcccccccccccccbbccccccccccccccccccccccccbcccccccccccccccccdccccccccccccccbbcccccccccccccccccccbccccccdccccccccccccccccccccccccccccccccbccccccccccccccccccccccccccbccccccccccccbccccccccccccccccccccccccccccfmg]`jXghcX]cmhn^k_ei`_]h^f`Y`gaZ]_aqYl\]fbm`cbW\X]eagZ^l]b]_^ogaaicVk]h_g`fXbgndnVd_chch^n`ami\dl[Yoin^ge`i^ccdnab_hbfhcbli[p^ZfZ^^\je]^hYcf_d`dijd\ccZ[Z^j_hcji]Wdddbba]_]`acias]^ecsg[\\^hbgjabbmfifefggUa^cd`^ejkZ`ci_n]ae__egdreYeghafn^dfZcmp`ed[aab^dpfbgcbcbccccccccccdccdbcccccccccccccccccdcccccccccccccbccdcccccccccccccdcccccccccdccccccccccccccccdcccccccccccccccccccbdccddcccccccccccccccccccccccccccccccccccccccccccccccccddcccccccccdccccccccccccccccccccccccccdcccccccccccccdccccccccbcdccccccdccdccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccbcccccccccccccccccccccccccccbcccccccccccdccccccccccccccccccccccdacama^f]l[[bjcd^hie\W^b`ia``eim_kYZdedWjae`ngabbfb^iic`b_Vg[bhaj^aZWbjcd^aagen```k_gheZc`iifdl\\ccc_k[Vic`\nbX]hZe_bhp\`big`nk]jb_`lkadab\ak``c`cg[bg`Sgjbcggc^eea_fjmaeie`hlbemagbdfgdh^cc`ihgebid]hlfbYg_eih^[ia]^ljkfcb[afg`ebj^f^^g]`YbgpecUZbrg`eda_kbl_c^`hjaibdmbbfnYaejbfdk^fqf^\YccccijVk]elj`ekdd_djZ`cd_nmgdZbYghlbd`f]kfcpf]g]\]_djYa`]im\Zhdc`ebpdxbcfe_cdi_bm_f^kah_gdg``Y`U^i^dgdcV\gXibnk\\_fa`cghck\]dbe`]_c^icfe[^cW`ZXTap^cbgo^_Zfagcac^\eZcecdX_]^d^hfm[bajU`^s^jYd^hTabdfoge^`hf^eeb\jlfjed`b`pf`^`]i]_d]\fa]^cdm_[acfd\hcla\ZgXle]^\aYbffcbV\`ZpXjcfdcg\dcY\`_gdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdpVmhfbabnfibljhd\c`[e\bbebc[fdcmab[e]^_c_a`ffbi`iZdgk`b_l^`bkc`bdcae_dehm^b]d]fibkaT`cbjfjbiebmYdpg_hbjXdm^fgb]dag[mbedVewge_Zdgeabhd]_Segi`c[YjZcacb^js_g`e\c^_dfacjja_ZgeL_cc`ccbebchSc^heb`]de^bd]a`Ndag]_]f]iai^`geheabf`j`dT_`mmgfkbe_]fe`bhkgr_ecfb]iYedjcccccccccccccccccccbccccccccccccccccccccccccccccccccbccccccccccccdcccccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccbccccccccccccd_dabgljgcd_^eVhf`g`a[X]h[bVjk`bja]g]hccp[]\b^dYbsi]j_abcdaebeiZX_i]qihede^_fan`ibtae`cidk^b\ZgdgZ[`kZ_hc_\^nm`[jjaudbabZ`d^ZVddf]ai``iedbZf_f]e`naei[cePc^]`_k_adk`bf_qbbjfgg`e_cffabcibdea\e^ccj_fcb\^]^dk`cYhdd]Ycid\ce\jtmZ^b`[bdc`Z`Z_Xceihebaj\o`icjd_Ue\ZZY`]ig]abOc]gcgj^e]m`]e[f_eheae`fih_l^fehb`^atgc_^ZWbh^bed\Yei\dhbq]dmjim__fbYefmhfcbcabW^`b\d`cakecYVshcacjgb\hdeack]djkam_egbbQ`ck`]```[lheg`jhcnhd_bbfZjbafc_aqajgZb[kne_]Xacb`cc`dk^dRackb`d_ecgebegj`a`]fbhcefafhef`_mejncqfj`bh`adoeaWbffhaffbkfgeR\]b`adeccdcccbcccbcccdccccccbcccdcbcccbccdccccccccdccdcdccccbccccccbebcdbcccdcbcccccdbbcccccccbbccbcccccccdecceccbbcbcbcccccddccbbcccbbcccddbccdccbcbbcdccbbccccbdccccccccccdcddbcccdcdccccdcddbcdccccccccccbdccccccdcdcdcbcbdcdcbdcdcbccccbbcbcdbbbdcdccddcbcbcdbbcccc_eb]Vyifb^^jaegamdeflcdbhXah]okY\iafhbZ`f_ld`fe`m_aflegen`[he[WZc[]_^deoZbacjYY]fllncfal[]cg\aiYd]if^bialamdfcde_db]kf^jefV]ki^hacTTg\jdfk`c``aal[feaigdibffjZMngi^cdi`X_gZegZtj`p[fdbdb[b]aijhc^_fjgg`eo_`^`me[l_`hdejh_k^_a_bkfegriVhcodafih^hoccWl^eaa]ejf][f㨓‡£lvPœ“{€®°§{¶R€»ÿŽ™cb¼”¾€w…y£Ž˜Þ@wŠQ`tŸ¨¨ˆnƒ‰p‘ƒŽqm+ˆ¢¬y_®†N¬­½g…v­Z–^ ´Œ£­›Q„«\>w{º|Çsº„s„]gÙ¸Yç„[¬tŒ¡µ‘²·bÌs—«©Ê•[°’’N¿—¡{ºR¢h TÁ%¹œŸ<ä¼}ÇA¹¨‚®””Œ JŽ£r™’¥¢}Œã°‹½xêo¬¨Ášg°‹©™p{’ž‹¨ªÙ"ŸÀ²¾{€‹½ÞÎny›³Zqpšàjƒ„p¼Åvœ•Åêé’yóë8˜Ð†z•‹¹€ywÀs»…‰uA6*C191-1GCPF}I‹$,E(š@?(,2@:‡,?9.5F7(JIZ–%h)7Ü­B?Jï(X2·{.*64,$(Š,ATq4/=NS"\eEL5D'%4&@J?JJI *7 A:+Pã'+@³@?R-I(,2GMXˆ(;24] Ñ+u';B 8 A)Q+?°Îa[6-&+"NdN%UÀ5ÔkXà?Ó 37È!T1?$=9/:&M£9=6C,D'„3ž+:¯9W+0.T4J8Ým=•QC&;ÿ-0Q>53: -4,AjC™s1@¶>6C;¬’ŠCkŠ|pŽ“¨ˆ]KŠj–†`f‹UM}@˜jjœ¡t‰’L|±upgJ©›³uv“À|ŽBj|¥œ|–_Ž(RÿUž‹K†gzB‡¢¦µ¿Œt“Ò_‘v×}¥­lr‚l°koX¹6}—‘³w`z|V^Š…IbˆÓHy˜¬n‘‹Ž¢Ž½TœPWN®ƒáu—•sGk^{Mj’²àd’©œ9vmi’Ÿžv~mC½Bª±’zx‹ypIw–W‹e£6Zmh…tŽW”‹^±ŒiœzvšÁjWV¢•EeŠD¬c„oY“:hÂÂwmo‰]ˆÇ­HY_~6v”…” n‘_k—nsººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººÀ ¸¸«Æ¼Ä±·ÍÀÿ¯¼ÀʹƳº¸¸½¬·Á¢¹º°¶µ¸°ŸÄøƼ¾¬Â¹°Â¯Å¸§³µ¹£¸Â²¹Ç³º­¼²¿­´­ÊЫ©±Ê½½Å–º´¹«À¨¸¿¶Ê¸Í½±¦¬¹¿º©¯°É¹º¿¶²³·Å¸¶ºÃÕ«»Ä«¾¿º¸·±¹º­¨¼°Á§¶ Ê®¦¼²®Ñ•¾À¼¤¥®¸©¨µ­·®µ½¶ÁųwÀ©™ÉÞ¼™°­–Ÿ¯¾¢“˼Ÿ±¯¬Á³Ð µÑù²¾§—À¦¯­·¼·Ê𲧍­¥¥ËĘ̀¶¯²§±°ŒÀ¸¯¬¼»«ÀÊ€»¶½³¨ÁÀ´ÄÀŸ¯»µÈ­›©´¹Ã§¸¾À²°¯·¢²» ¹À¹ªÀµÄ´•µ´´¹­›Ê²¿¶¸µ½²­§¬Å·±¹©Â¦¼ÃÀ¼Åк·Àƻ¸ïɾ´·¨¿³¿á•Ȫ±ÄÀ«µ±Æ°¹Ã½³¢¸¸¹¬½¢Ì¹ È˿Ŀ´±Ãº¾´ÈƬ®­°Ã±±‘³µ¯¸¹Â¸¿³µ°»Êº¶Å¶ ¬»˜¬¼Áɽ¥¹žº±Ã‡Ç¾²¦®¼¶²°¼µ¹®˜²½Ñº„͹µ³²µ»¤Àº¾ÌòʳøŨ¤¼É³¼ÄйÁ·¨¶¸½¥ÈȰ²Ç·Ãųº±ÌÙÆÁŸ¦˜©šµ¡¨µÃ»­«§µÁ’½­©»¿ÀÀÊ̶À²y¸²¸·Ã±½Á«Å»½¯¼Æ¹¢­²¼ »¼·¶¨Ã¬¶Ë»À´®µ¸ ¹Â²Ã´È¼Ä¯®¹µ¶°¥™µÈ­¸´·µº´Ä¼·¬³¸Êƺ¿¿Õ¿š·Ë®¹§Âº¶©¯ª±ÅÀ³¶Æ «š¯­Íµº¯ÖѤ°´³»±¸¼¶£Â³Í¹®¸¹­ºÂÊħ±©¬Ï²Å®³ž¯™©¨½·³¹¯±Â»»Æ¬°¢Á±³Åª¾·µÀÊÅ´Ç­µ¡¦·©½´Ç­³°¨¶˜²È²ºÆ©¬Å¦À¦Ë¼¬¡±»Âµµ¸ ¹Ï¦²¯¯˜¿­º¢Ä­©Å°©¬±±‡£¡´±»„ÈÃ¥Ÿ¨®·›®®´ª¾©¸”ÉÖ³¨©¦¾²ª²ÃÀ²¿²ËÆ´ÆÉ°À¼Á°»¹¼µ¥½½È¨´Å¸Äº›~º©¥¹¹³¹Ç´¢Á½·¼³Ð°½›«¾»°®¹³Â­ª»°°¹³¯«»¢À°Ê­Â´¼µ²žÐª¼¼ÉÇ¿·¶´Ÿ²ÂÈȪµµ¶§Â¯·ÌµÃÍ¢¸±È»¾º¬¢Ä¦©¹¼¾­°ÃϮǻ´±ºž²£®¶´Á­ Ç²©¦¼¸¨¤º¹š¥¤Ãº˜µ»ºÌž¯µ¾Å¹ºÄ͹Ѷ¬Ô³¯¿³«®½Ÿ¥·­·Ä‘­´±¯§¬ž–ªÄ²´­¸¿®¤¾°¯²²³ª¦Å¨´¬¼¹¹Óª²¤²Á»Ä¼½ºš¿¤£É¸´ ±¬¸¼¨©Ãıª²¿²«¤ÃÀ¸¼»»Áǹ¼º¼©¸¸¶Æ³´³·µ¬¬¯¹º¿½¾«º¿­­¶ÈºÂªÆ»œ½À¨µÅ´²Ò¸§¤ªÃ³­¿µ­»»¿Àú»¹­®©Å½±Ç½¸µÅ±Ê…°Ã¹ž”£±Àº±§ÈÇ«›§Å¦Ò©Æ³É©±¼¨³·Ÿ®­ª¾¬²´¸¨œ¯¶ÀÄ£¬ ©Œª¨«ºÃ±Æº¾Ë´Ë­²¾¸ÁºÔºÍº¤¬¸¥¿›¯¹°¶«À©È¦Ã¯½¼°»œÂ¥½Ì·¨·¸²º³¿±Ä©£ª¥ª¬—§¯­¯¸±¸Ã·³Ä¾µ¯°¶žž¥µ½ª´¶³¿ÃȺÀ¨ÌÐÉ© ¾Â½—¸²£ºž»¾ÁÆ¢¯¾®£¿´¿ºÅÄ–©¶¸«¡ÇµÉÀ¹§¬¯Å¯°Ã»¬«¨µ²¹£³·»¢¶²È¼¬Ä´™Ã»¯©Ú¨Á£§´ ¯²œÇ¼¯Âª§Â°°»¶¸¹Î¯ÀÁ®µ»¬··¹°Öº¬Ç·Êª§¨»©³¶´®¹ŠµŠ¥¦¾´ÆÈ¾Â°¸¯´Â‹»°¾º®²Ë½¯½®©¾®»Âª¹¡¢š¨µ¶¼²¥°ª½±µ­®º¯ÂÅ¢¥¤«¬¿«–®š³¦®š·¿¿¾¥·­Á“À¢Â¨¸«£´ §©µ·¬É¨¡¥©«­¡¡»£»¯¯žÂ¾Ã§²¨Ä´¨·Ë™¹¯½¬¸³°®ª®±¶¬Çº°¿§ºÈÅ ³Í¦­Ë¹¯¨™¤¾¸«£½Ãºµ«¶«¦¿µ¿¸´Àǯ®¾ªªº°½·¾±¯µ¬µ·°­¸Ë§¸¸µ¿®¶¸È½»»®°ª¬±ª±²¤®¿Ñã¯Ä¼ºµº±Æ¾µ«¿¿¬±´¢ ¤µÁ¸±¶Ã¸½¾¼µ¬®¹´¬º¿·À¼ÁÀ°¾Îª·Å½©¹©«µ¸¯®³ÄÁ˼µª²Ì´¥±µ®±´¢¦²Å¢­²³¿Èģã±À¿µÇ¡²¾°³¨Ÿº´§¾©¢¥£«ª©±´©»ŸÃ¹Àœ¿´±£­\·¬¬¦¶¶¹È§Í±·Ä¾¼½¨©½²¤¡º¯¾¶²»¼š­±¯²Ÿ¬£°Ã¤Æ»²¦Î¡À¸®¦¹º¹žŸ¯§ª­®À²˜ÆÉÅźºÆ´¸¶Àü»µ°¹³ÅΧ´Ã¸»Å­ª¶½¦µ±®³¯²²Ã®©¾µµ±±­´«¯®°¯¾·³¹»–µ¨³¶´¼©¿®¯±¬¶Ã£¼Ìç››À±Ä­¼Áʰ­µÉº¬©¬¸ÇµÁ¸º¦¨«±´´«¬Â²Áʦĺ°¼ºÊ¥Ê³¼ÀÁ¾Â´›Ä¬·È­ž¹­£¡¡º¹¬š½°¿©·µ¨¶”Ê—­Åµ¶µ´¬¸µÃ¤¯»µ›©¡Äɼ¹ª˜²º§¼¹¹Ã¦»´¯­·³¶­­¼¢“²½È˜¶µ»ÚÅ®œ¹½¾žŸÁʹ©¶¯³¬¿²s¨¤º¼²µÅ¤¤Ç¨ªÉ´¨¹·Åʨ¯£Å¶Ê³ª·²Ã¯º¸¶¹À¹¢¹¸ÁÂò±³·­¹¿»Â¢³µ»°Ì»¸Á¢Ã›´¿¡°¯³Í»¹»ºŒ¶¸«¼©¶¨§³¬ ½«°²Á³¹¼´±¨¸¾Î¥¸³³»¥º¶¤¿Äè­Ê¥³¦Æ¼¹Äµ®²®­Çº¯ÅØ®´˜³Æ¾¿Æ¢²À¿º¯£²®¼°ÀÄø°¶¹½œ´ª³³¯œ™¸Âµ¿¼¸« ÈÁ¶½›Ê¥Ã¯½¶Æ¾½¯Ò°œ’§½°®¡¶¤·§°†´¾ À¹²Á¯¦¶Ë¸£Ê¶¥¾£ªÄ¹Ë•°°¦ É´Ä}¸®¸Ä©žµ¹¸«ÁÁÏÂÃÁ­®¤©º¸®ÄŸ°À¶²¶­£Â—º¶©ŒÍ³œ´ªÑ³¾¾£¿­¹Æ¼«¨¿ªÆÃ½¯ªÁ´¾µ¶À²´É¶£±«¬»±¸±ÂƵ¤Á»·¸»²¸½Å²ºµº«»­·©¶·«¹µÊ°¤³ª¹À½ÅÀÃ¥³ËÁ¹š·À©Ç©µË½›»®ÃÁęϤ¹¶¼¯¾±°«°³¤Â¨¼ÁÈ­Á´±­¹Å³®¿´À¼¶Á³¾¸¹®¼¾»¸±©­¼­½ŸÀº¸µÒ¯®¶´Ê­ª©ÃÒ´¨²·À¢²¹¹¡±³Áį̲±Çͨ¯¶¶¯¾¸¸¯ÂÂ×¼¶¥§­Å¼¨ÇĶÀ¤²¥´¼Â¶½«¬©Ÿ€¯«ªÀ—¹©¼¿Ä©¸»Å´Å·©«Ê±²½·«¦²²¨›«ÒÊEϲ²¥µ·¸À°®¶´¾¾©¨À¼Â§¼´³«¶¾¯ºµ¸«Á»Çɲ¹Ä£Ö¯´®Ä«°´£­À¶®¡Æ»Ã¯¹·À¨º½Å­¾¶­¹¶¢µ·¦ª‹­Ó¨Ã³»¼°¸±´¥¿µ²ª¸­¬¹ÇÀĽ»Å¯¸¹³¹¼Æº¹¶­§§µ¶·¸¬”¾À¿Á˹²¸²¶°¨µ¡©œ««±­¦©°¶´¼£§±”›³¾»¾Á¼Å£Â°½¼¬‰­²·­¦®¹ª°¯µ¨®œ¹¦¬²½É¶¿¦Í«Äƺ«¶»Å¥·¼°±È¹Ä¡ÀšµË­°ÏŤ¤´ÈÌ´Ÿ°¾²Ì¯—°¨«—¤¾¶À¸¾¨¥²¼§¤£Áxµ» ¸®¹º·šÊ¶¼¶µ²Ã§»¹µÇ®¶¾²Ã¿¹Ë¸¹ªµžª“´»Ò°±µªÃ¾¤¼¿Äº¾´Ÿ·Â­»¯®¹³¹¿Àº¬°Â½É²µ½¸¯ ²ÂË®»²»³­¤¹½¸°¿i¯¾À¸¶¸ÄªÂ´¿®À³º¢ª±œª²¹¿´¬Áº¼¼Æ»¾Â»ÄÇæ½Å¶§Â¾´¤¯»¬±±±ªºÄ»¯¦¾³j¼¥´œªƒ·©Ê°ÁÀ¨½¹Á©©«²½§¸Ê±Ö¯©¯ ¼¬ž¯¸·ËÁ¢¨Çµ¬À©®²·Ä¦·¸£À·¦­«³§Ó«¬º¹±¯Æ´»Ä·°»±¶Â±´Ê§Ç¨Êƽž¶Ï»Å½¼®¹£»«­Å±®§´Ð»Ë¦»ÄŸº¬µ½»§¸²¿Ä·»®º»°²Á³¹¿ÄÌÇ·­Ä«°¦³º°°¦Ëª°°Á¾¸±­¤¬Äȵ—¶¹³£ÆÁ³Ã¼º°¥µ¸¶ÁÒ´¼µ¸¸ÇǶ±Ãø®¨°¿¢—­±£¹±»±¯Ð¦Ÿ«¹»¾¸ÆÏ¸Š·½³Ë²¸¢¬´£Ç¿À¬ÂÑÆ¼¤ž»«Á£»Ä»Å¶ÅÑUÙ±¸Ä£ª°¿³Ÿ±©¯¦Åº¿¯¼ÅÀÁ³ºž¿•µ«µ©©´Â¡£¨³Ç±£Ð»Ä®¸¿³¶¬«ŸÇ–µ´Ò»½³Õ©ºËǯǩµ±¤®»¹ ÏŸÄ¨­§´«µ›Â¦°Ò´¹®¦±œ°ÊÑÀ´ŸÑÀ¶¶Ä¯²¼Ç¬ÀÀ¾½ÀžÆ¶Ã¬·©µÁ¾µÂµÅ³È¾³Á¼½Ä¿¿¤¯º»¸¬©­¨Âø½°¬´¼¾¯³¹©­¨·±²»œÅ¯˜¶³·¿‹ÁÇ©¬¢¿­¸¨¸Ç·»·º©¶¼¼Äµ¶¢È«Ç£§Á¨¥¬»º©¶¾®°§¤ÁŹº±±®Á²½Ä¿¼¶¿µ¯µ–ªÀÃ˼†±œ¾¡°¸ºª´ˆÀ¸¤ º´ÀÁáϧ¶Á¡¯£‘춣¸À¸ÀÏПª¥¤ÂÍÁŸ¹¶·°º³Ã³¬¾¬®—£±¤´ÏÁšÑ¬³µ½ÀÀµ´±¶µÀ¢ÃÈ‘ª¿Çº¸ÂÀº°¿µÏ»¥¥«¨®±±È¯¾²¯´¹²½Ã­°Äñ¨Á½¾·«·½¼­ÉɳÍò¯©«©Ÿªˆ´¨¶º¢œ½²¹¿À¹Ðͬº½¶±Ƚ¬°¤Óµ²¼¾À¾˨­¨Ã¾§Â·©´Î¬³¡ª²½Ì»Í­«½ˆ®ÒªÀª®ºÓ¤ÀÀ³Ç¬©¹¸­Â±À¸ªÁ´´Æ¼Á¹µÈÁ̬³Ì«Ã·º¤ËÿÎÊÄÆ™©«º˜ÃÅÌ¡Ì¹ÒÆ¡È¸ºÆ’´Å¾Ä®©Í›´²Ò®ÅÎ˶¨µÇ­À¿Ë¦Í¸ÅͰ­´·ªÁº¹­Ì³Ñ¸Ç»§´·¼¹µÐÕ·À À²³À¿©¹ØÇ¿«¬¼¶Ê·¹§Ã¾¼œËÇÌ¹šÆ»¹Ã²¯Ç´Àˤƻ´µ¹ÄÂÃ¥º°»¿°½Ã¯µ®¯À½ª±¦¶ªµ®¶º½¼³µ¹¹ŸÄ¬ºÁ¸ Ä´©´·¬Ä´®Ÿ·¾·ªÅ³µÈȲ³ºÁ´¶°ÌбÁµ¬®­¶©©Ã¬¯¹º±¥¶Ãµª¼µ¤¯¹«¿ª®§¶®•»±¶Ã¼¨Èµ°¢¶©Í´²¹¿¹¶©¯Á·«½±§¶¿Å¬ÁÄ¿­´¬¾¢œÂ¢±¸µ¶¡Â¯¨¤ª·š°©²¡¬«¶°¨¥ž¦²©®·Â›§¯·¶³¡Åµ¥Ç޵¥£¹Ê²»©©‘¼¬°·¸¦²™°®¦µ¯«©µ¤£®³­¶«¿ÃƼ¹­³µ½”«¦´}©¬§¼£Ò´¤¬£Í·´µ¾™­¨©Â¡¹Â«¶­³·›®¤½ºÂ¬·ÍÂü¹¤Æª¾¼´º»¢©Á¾´½®´Ã¼¯¶Â¨¥©¯¶»¼µÅ¾¬É½¨§¶¸¾Å¶·§¿ª²¶Ã¼º¿¿«·²±ªÃ¸®œ¯©«µ¶´Â¶¡Æ§±Ä»Ã¯¾»¶œ°½«¿ÂʪÀ¼¬œª­µ­­¨À´Àµ¢¶¾¬®¹Â³–ÅvÄŸ»À®µÒ³ž®¿È·Â®¯¨¼¼·¡¹¸¤·Ô´¬¨½«££®²½¥³”¨‘°’³…°¨¬¸Àº¨°›£¹ªÍ·©¶Ã¹¯¯Æ¶“¬®½´£ª²»Ñ¹¸¯°¶¡²°Ô¬¤Ç°Æ«§³³¶»ª´«½¡Á±¤¹È±¿¿¹¯ µŪ¹ºÀ¸É°º±­°¤¨ºÊ»¸¹´ÈÔ»§ÌµÇ¸¯©¾¤©®¯º­¼Â§²ƒ¸¬°ÄЙɶ¨µµÀ ªÏ±««³ÄÖ²»½¶³¸ª£¿¬Æ½§Ìµ­Ì¢Ð¦³»¾®¾½»¬­½°·«É¥¸¬³ª¸³Ê¹©Í°²·«¶Æ¬¾à±Ðµ·À½¬¤°È¸®¹¸Ç·¿³°¾ÇвÙŦÀ£Æ©¦½ÂѬÀ¶Üݳ¼Â¸±»¸ÁÐÈۤ¸½«àŘ¼Ë·¿¾Õ¸ÅÀ«Ð»±ÊÁ¢¹À¹¯Á¹¢³±Ýº¸¢¯°»¦«±¹º­Â¨Ê­¹²­›¶®Ù¾¾³Ê²Â¨Õ¯®ÍµËÈ´³¨±Õ³³¬´²§§´›À±Ê­½Â®È­·«Ä°Ê¹»·¼¸²ÄÈǸ‘¬³×»¶º´ª»¨±Ëɶ·¥¯ª Ä¢´»·À·Äɵ­±Ãºº°Ë«Ìºº¼²Á«»¾µ¨Æ«®®Í﩯¢ªœ¿º¦°¹§Á¶Å¼»½šÁ·¯¤Ãº¸ª¡»¾¶®— ¨¼ÂÂǾ«Ã¨ÎË»¿¶¹´£Á²´¶¼Æ´Ã¹¹¹³Ì²¾­³©©¸¡­ ­³™Ÿ¿±À¨¨±±ÄÉ»ª—¸•¨³¹¤¤±¸’¦›¹§¯¾±µ½«¸Ëº¾¶Á¤²Å¯¦º³µÂž¾µ¾°™Â¬Â³Ê­¯Â³Ë¾»¬Ç»Ç¶¶ÃªÂ®¶­ª¬ÂÁ°«¯ËͧÅÀ¿¡½›µÂªÅ¸·ÇŸÃ¼¶¸³ÌªÂ·½Ã¾®¾¦º½Á´°²¼³Ÿ¼Áťź³µ¾¨³¹¶­Ä²È­È°»´Ö©Í¾¶¾À©¸¨··È¿Á·¬ž³©À±°µÀªÄ¹–¯´¹­¯É¯›Ê³¤¶©°µº—¹¼µ—¤°±¾º¬©­¶Ä³­¹¬Á½Àº©¶¼¶Â¥ÅÊ´ÇÃÂÀرµ·»Á®£Ã¸Â¾Â¸­¹ÂͰ½¶½ÍŴú¬°¶»³µ°Å¹¨Á¢¨Ò±¶Ÿ³¡ »·¼µ—£³1¨Á¶Î¾œÄÏÄ ¬ÌÁ¦¬ž¹¼§¸¶¦ ¸Ì ®ºÆ¼ÀÁÇ®»À¥‹Ï®¤¨¯§ª¥šÄ·¾Ç›°»¿¿Ç·µ·½®Æ¾¦¦¾Ž«¦ Â­À¹µÄô´¾¯Â¹±º®¬¸ºÆ³¶ÄºÈ³ÂŶ½Ä´¶Á¹¾°´»´¼©¼¬¿±µ·¿·¸•´ê¶Æµ¬®¹´ªÃ»¶»¶««¹·Ä¶ÆÇ­¿´¨É­¯Î´±¶©Å¹µ¦³µ©·¶Â¹ª»Àµ¡ºÂ¼Æ¹¶¸µº½®¶·²¬º¿ÁÁ¾¸‚¿¹Ì¤ œ²º§º´´¶¶¹Ð¤¼›Ê­©ªÃ© Ä•½°¶¾£¨¸¨¾Ã¦Ÿ£¸µº–ÆÇʱºÆ¤ª¬©³™¬¸­Í¾³»¯¯¸žª—§¡·ºÁ­¹·§½½¼µ´“½§¦¾¯«³²Ê¾µÄ³ž¸¹¹Ÿ¶Ê®©¨²º²ÄÆ»¥×®¸ªº­Ë¸·Ë¿³¤Á¿¾¸½²³­«°µ´ÈÄ«¾°°±²È¼¿¶»¸¹º¶Õ³£º¤Æ¼À¹¾¤Íɸ±³¼ª»§»²©®¬²Æ¶²¹º··©³¾Ã¼µ¯²«­Ã¾©Ã½­Ÿ™¸ËÈ¿¬«»»«º˜ØÈ®Á°±Ë¹²‡£¾«§³µ¾­ÁÃÍűº¦¥¿Ã«¬ºÃÄ£´Ã²Â¼»—²ž³±©³‰¼°§¬É˹¯´¸’¨²´²Á­ª©¯­Å³²³¦·´Åº¼¾¹°°˜À´¢·›­·¿°¬µ§ª£µ°¥²´¨¸·°›¶´Ÿ¿Ã¥¸¾¹³¦Ÿ¶´®±·¼¬­¹¾¿µ¯Â·¸¼«Á»¬šÄ°®ž®¿ÂŸ€¦ª¯«³Ñ¦¢¶¿ÃÂǾ´É²º¿Á´½¶Ý²ÂˡԸ޽¸Ð§¯¼¿®¸¾¡¥Àº¿¹Å ¾½Ì¾¿ÁÅ«¸—µÊª´¨¿®©Ô®·«Ä¡²Ç¨µõ¾ØÒ¨Ó©®Å­´³£»¦ÅµÂƺ¥·¢©Õ÷´Ä²Ô¤°¹¿ºÎƮĮºÎ¿¤ª´¶½µ­ºÈµÓ¯¬°‡ËÌÓпÅɸÁ»¬§µ¿¬‰ÊÏÚšÆÌ¿¸½´Í²µ½¥Ô²½«âƧΤ«±¿¾Ê¶ÎÁ«½Ú¡Î¬²´Æ»©Ù˜Ð­¥¸×±·¸Í½«µ±®¯Äµ»¶Ø¿Á®¬­Ã±½¿©­Ç·³¦Ëɬ®¨·Ä¯Æ³¼ÊУ»²ªºÍÔÔÎ¹Ä¾ËÆºÙ··¶Ï´°¶Á°¹½Ä¶¶¶´°®¶Ã´Â¡Ã±ººÀÆ«´´“©£³·®¶¨¶ÃǸެÆÌƶ¸®•¶³²È¸»´¼¾¥È•¨º¿´µ¨Ç»·¢¯±°­»šÈ£½¨½µ¹¶³¸žÁ«ºÃ¯»¾¯­¶²´Í§À̼ƺ¼Ã½½¸µ«²À­Î¨©Ä¿¤¼®¸±«º·«­šÅš›Ã«Áù¥±³¹§°¹¯¶°¦–£°¨À¹º†¬´¸´Ÿ¯¯¾¾Í¨¢··½œÂÏ´ª¨Áº´½À­´˜Ê¦Ç¿¸½Àµ¬º¯¬»ª¤°¼Çº¡Â»»Á¬Æ½žÉ°«Ÿ¹¾±•¥»³·Â¾È¿¡»º´¶­·¾· ¨©µ­µ¬¼Á¿Æ°£Ä»¤¼µ¦¿¿¹·¯¡©²®¼³Â³¼±–Ê­¶—¹³º³³³¾«¸¶¿™½½º½¤¹³¹µ³Ã¯»±«ÈР¨Áô¹¢·§½žŠÍ®¤°±´ÄÄ©¾»»ÁÄ´±ª¼Ì¸ìŸ¯¸¶®¿²¬»´ÄÀÆ«°¹»¬§·ª°ÇÑÍ®ª·­Å¹À¶¼Á´´ªº©£¼j¿Â±³Â£µ²­Ÿ—ǧÈÄ̬··Œ§Á» ²¾»œ®®½Æ¯œ¢¹—Ψ¹¡³—¼º·«Õ¨˜²¬®·Ê©¿­³½­¼°Å¾´”£»¸¢¿»¬¹»¨˜£²µ¤©«ž¼´´¬²¤©»«È´´¶³§·ÆÌž±³Á°¤©À²«¼Ã¸¶­²Á¹¢¹»«­¸®°¿Ìɸ­¡É³Á½Ž¬½¥´À¸²¸®½Èµµ·º¾­µË·¿¸ºÀ¢Á·´ªÁ»´¿½®½Æ«³ž©©²²¿³²°·´ªÇ¯Ã­ÂÁ¼Å¯¼·¶À¤³¶‹­¦—º À«¼³“½ºÂɪ¹¾Àø¯Ë¾¼Ê§°½±»¾½·À¼¨ªÃ/­¸³­¤·¹¶™Ì¦¶¶½¬µª²´³¸¶¡¼¸§¸°´®²¶šÊ¶¾®¼È¯Á£«ºÁ½©¬š²¹¦§³´ŸÁ©­Â³¶¿ž¸°²Áè°¶®¶¼¶¡¬¹³º°³·«º©¥¬Â±¹³½²ÆÂ©ÈÁ›µ©Ù§¼ÄÁ´©Å«º–Ç¡§½¤µÃ±³³¹Ê«Ÿ¨Á¬·À¯³­µÒ¾¼¶´½É»Ÿ¸£±À¿À¿³Æ¾º¶·µ´··—±·ÅµÂ¶®¾¢´¾£Î´¿Â¶Â²³¾“§Ý¦¨¦¼¼«¤·²›¨¤¼Ì¬‘§ªÃ¸¯»¯¾¹ÄÁ¼£«¬Å²µ²¤Å´´œÂϽ¯´—¨¨Õ´·¢º»µ»Å¼µ¸Ÿ³¬˜¢¬¦’¢¨³›½Ã¾¤¨±Á¶·³¿¹©¬±¿Ã»¸¿½¤­­®®º¼¤¸Å³Á³¤´¯°¾¾²È¿¨ºª½Óм©¼¤Î¬‘»Ä¬Ç¥²¬½ºÁÀ§ÌµŸÇÁ¼‰½Ä¤¦½²³¯¡¿·×¦ÀÁ›œ½¯¸º½µº¢«¡¸Å¸›¨³¬¯©Æ¡²¸Áº¸±Á£´Áº¾¸Î¹µ»«½¼µÁ¸³²­¼Á¬º³Ï·¯Ã¶Ê°ŵ·¬­´³¬«¡Ã»¡ºÂ’½¼¾¸¿Â¹³µ¹ÇºÃ³¬³»¿·—®¹¢½¨È¾½´³œ­®©©®­Ê¯Ä«Â²œ¾±¾¸·­¼°°¯Ä³À±°Àº¾Á¹Ä™®¶­È­³³²³¬©¤®°À¨Å¬§§À°£¸´¾™¬Ê±¸¹¥¶Ä·±¯²¹Ä±¸Ä…·¹¦°ÊÁ º©•½Ä¿´¿˜Ê¼¥¶½¾¸«¦À±Æ©Ç¦¶ÀµÊ®¨¦»¦ÒÁ°¾ž½»§Ì¸8©¦¡³¶¿¹°±œ´¶¨¸¾¨­´©¶´°º±¸ª¸—µº²¬Å¶šµÄºÂ½Åµ©¥¼´º³·ÃÁºÂ³Á¼Ç¯Áµ¾µ¢´¯¤¶³½¦¯½¨Áίµ²º¾¿œµ¨§¸¼¼¿µªµ´©µÂ¹®¿ÊÂÀ´Á­¯´¤Å´¨Æ³Î¡·­À¼É³º­¬¼¤—¶Êº¹¶Î¸·¤´»°©¨¯Ë·¦Ä·Æ²Ä©¸ÇűǾ¹³»¸¯½´¤Å¾§¸³¶‹²¹¾¾±»«¨¦´ª¾²´®¹ ¼¬¤§·®¿ ±¯À ¦¹½³²¯ª»¨ž³°¾ÊµÊ®¸Ê³Š¸°ª‚°¹ª°¶¶º¯Æ¬Ã§¦Ç®²Ä§¯·µÇ½¨°³«Ÿ±©²§¹®²¿Áû­Ò¿º°µ¾À¥À®¿Ã¬·¦À©³Æ¸¼Áϧ©½“¿¼±­±¸¬Áº°°–´®¾ÇǨ¿»¼²¸Á´«Í¸¢ÊÂñɘ­À¶®¼»ºº­±Àĺž¯¼¼²½¹°ª·º²Ã¯À¯··©°«¾¸£º²¢­¯¸ž´²Ò²Ÿ·­³¦©³Ä¤·Çµ°·½Ê¿¹·Á¾¸··¨¿ÈÌľ¯¢Àª¶ž¨¾Æ¯¿±ª¸³¿«¸¸p° ¿œ­²¤¯ºÆ±§Ë£«³ª¸¥¸šµ­¼­¸¹¶ ¸·¤­™—À©½«Ì•°º¶¯¨³¤¬¹²ª¨Á°¨£³¤É¸›ŸºŸÈ°­¥µ·“³¤µ¹³ªª”´´º©º´¬º¨¼À¬µ¡¸·¶Â»À«±·¯¨² «Àºº¹±´¶¼·§Ã۰²´½³¸º¥±Ç¨µ¼½Â¹±¦°¶ÃÅ­¶Æ£±ªµ¾·²Â“ƹɻ°µ¯º»¿·¾ž½¬Ãº´³ª³Ê¦¯¬º¿¨²Â»·¬¥µ§¯©±©°È»¸£±¼¾©§±©¾¡¬˜½ÈÁ³´¬®¿­ª­À½¶´Å¸³®³•·±´®ÆÂ¼«Èª¶³´­©¿»±®ÈžÂ³¹½°¤Ã©¬¨§®§º²$þ¾²±©²«°¼É°¹»³ª³ªÆº›Â¶¸Å¥¬ÒÈ·²¹¸¥ž¶·¸ÀÄ˸Áœ­¿ˆ¾Ç¶Ä»¸É¸¡Âº·±®£·«º¸º¤¼³«À´¥ÄÀÆ®¦‰»½Í¯µ¶Ê ¿Í°¦Ê°¬Áººª»¬¿À©¹Ï¿Ä«¸º¼¶ªµ¯Ñ»³¾¸ÈÁ·Âº²´µ·²·®Âº˜ºµÑųÀ¼©©±³º²´¯¦½ÆÊ´¤º¼±´°¹³¶É°¾Ì¦¿´Î˺¦¼»¬µ®¾¼³Ü®¹¯°¿»Á¬ª§µ¬­­´Ã»¿±´¾²»¾­É·¾»¤½¸ÇºÁ¼ÊǬ­·¡ÅŸµÂ¢¬½Ó¨ËÂáºÊ¦¸±Å˼³Ð½¤¿ÈÆ¢·ÅÌ®²¦¶§·â¾¿Ë²Ó–›À³¿Á¹»¾»¸¼´©¸¾Ë¬±ª»Ò°Ñ¸´¹°¤¦Áµ°»¶²ª¸¼´¿¸¯¼»³­Â‚£¶¯˜µÂ±¿±¹ŸÇ¿±ºžÐºίÀ‹°Á¢¢¹´¶°¸À¶ǽ¹½¼»³›À¸¼±³½¬¹È¹´»°´°ÏǹÀ¨¹®ÌÀº±Å¿»Ç³¹Í¹ª§³²¼Í¿©˜¯²­¹Â¬µ±¶¶¶µ«°Çı±È¶°Â¶¿¹Çª·µ¸¶·®´¼²¨³“¶Í¥»¼¾¿¥¶ ¸»ÔëÈÊ·¼Â½Ãµ°Áŵ¿Å¨¼ÅºÈ«³»›‹°~½¼±²®£ªÓŠÀ²„À«››ÉÀȳº°™¯»¹¢­²‘ž©©¨±²·´Á³¾Ÿ›Ê­Ą̀´³Ï§µ¸Ñ»Ã¬Å¡½¹‡Æ¦¹Æ²½—´§¸© Çı¾¹Ð”¶¤¼²ºÏ¿À®¶¼ªÇ¹Ñ‘͸°¾¹­¸Â®»º¦·¯§ºÆÃ®À¸µÊÈ«›£¾µ›´µ¼³·§¯®¹Á½¾³°½½Í¶µ´°¶È±°¶¹¼¾½ž»»·ÀÀ°Ä²«Å³±Ä·«º²³ÀÀ½®¹±½¬·»¾³¸¶•µ¹ÍÁ¼Ä¸¹£²¶¨˜À°Éº·³Ä­Áµ§À³¯ÈǺô¹É²¹Á¨®¶À½·É³Ã¾¶¯À‘À¹·Á©½°ž²«Î¦¦ª­¼¯¯¯·£¨­¢¤ ¿¥¬´´±µ¼¹¹½³­¯¥¼¸¢¤ Ÿ¡®«“±£º¨½¡žŸÁ¿­®´¯Ã§±µ¢®·£³³°±«¤“©º­¸ÃͲ¬¹Ð´³ºÊ§%»¬ž¨£­ºÍ¬Êdz©»©¿¶»¦Á©Ð­«¾¶´³»½¡Ï¼°­Î¼À³³ª¹ªµÀ³Âžµ´­¶Ç˼¿¹±»®·¬©°µ”¶°ÂÂË¿µ¿¹Á²µÊ«Ê½«¥¾¸À­³°À»Š»®È«¸±¶£­µ©Á·¶µ­­ÊÙ²¾ª¤¾Á·4»¹Á»¬µ½¼±±­Ê¨¥Í¤°¹¨£ËϺ·ªÄÁº·±º´¯¸¸”½·È˜‰À¶¹ ¨¶¦ºº´Á¥¾¾Âѧµ½¹µ¾ª¤­Ä¸±´¹­²½º´³Â¨¾À³«º³¹¯³¿«¹¬»°½ÉŸ¸¨Ë··¥Ëº«Íº·®±»±Á›´¯ÂË›½´ª¯ª²£¦ª¸¯¤´Â½°µ¼¹»Ë£¥­·¯ª¨¸²Î¯À¿¦¼±ª°Ì»Á¼®Æ«·£´ª×É»ÌÀ¬¤´²º¶¹·Ë·Å¸µ­À½¶¹³ªË¿Á¹Í¾³Ó½©Á½»ÇDz··´ÇºÊ¸¹ÁÄÆ°¾±ÂƩϥºѷ٭´¥µÁ¯¼½¿³²ÊÚÀ¹Á¹º­Ì³ÀÇ¿Á¸ÆÓܲÊÌ«³¹·º¹µÃͱ³¸ªÀºÓŒ»°§¯²±²ºÅ¿´Ï“¬Í®³³ªªž¯¸©²Å”ª®¶¼¬Î«Ò·ÃÁ¬ž˜¨°¸Á®¶Í¨¸ž±šÔưǫ½®Ï¥ ¹ÚÑÈ´¼¬­ÏÅͮȴÀ®ž´¸—Ó°¢«›»Ô¨Ç³Ìɰ¹¢´Î©º®Ëª¬´Í¯ÜÛ¹«½©ªº¬¤®°½®°¹±§¶²Ã¸À³Á¬Á¸ž±³¶±Â¢­­¹Á¸¶½¿·¯º µ½²¶¸¸«´±µµ¶ÁÊ·¹¶Ê¶¶©¸·Æ¯È¸¹ªÀɸ͵µ¶½°´µ¹»Ã ²É¹«¶¿±´º¿¶­ÅºÀÆ—·«¶Â»Â´¼Ðɨ¶«µ¿À¶»±®®´±Ä¹°¨Â¹¨£Ä·Ÿ¬ª¼´ª·ª¦Á+¯¶½¢¹µµÁ«ª¸¤ÅŸ¶£­¥¹ªš¾ª£©œ¼ÂŸ­ª«£»Á´«º©§ª©ªÜ¯½¸° º«¯—´¾«¹µ§©¹³©Åž¬·¸¶Ê°Ï¶‘··µ­•±¨¶Ì¶±Áµ§·›¸ªµº´¯¯º°³Å›¬Ê—¢²Ã¯Æ¹¯Ìº©´»Å­ªÀ¶®Á³¥¹Â«º®ªº±­¡ Ì»Ë«Í§ºÀ»±¹­Î±¬³¥—È·­®Î°°³Ÿ¡®ÁÁº¼Ä¶®¥¾¿¶¿Å¯ÃÂÆÆÂ¥µ­®³¸À´¬¾¶Ä¸±¯ªÂ·¬§¾³ÁŶ¾®¾ªž«Á¢À©£Äª“¾»ÃÉ··µªÃ¶³µ·¿ÇÆ­§¹¼¶°§¹¼­ ˜®¤½Ãªº¤µºÄ¿Ã¨¦²º¥·¬ÉΤ¾´¶ª·§¼—¢•©·²¦˜µºÔÅ·¡£® ¸Ç»®¼›¸v¬¡¬¹Ç˜´°·¶©³·ºµ±­¶¶§«µ³µ ¿Ã½Å¥¥š¯šÓÖ¶²¿®»ª»©¾¹º»²·µ´Ÿ¾¶Ÿµ¯»¹È°ºÁ²Ç¾»¼³©¹¯Ã°ªÀ•ȸº¾Æ·ÁÁ¯»¼À¿™›°¥®¢¶¿¢ÇÍÁ¦±Åº³ÃÇÁœµ¹¾Í¼´ªÌµ©¿¹¸«Ñ½Å©¸«¿»¶§¨—麻•ªºÌ¸±¼³²¶Á›¹¶³Á²·½·Ä®Ë·¯²»º¸³³Ô³´¶¾Â³¦ ¥»Ì¹¾ Î§Æ¹ªµª³©»˜®¢´¢½¾´¹¬¥µ¶­º®¨²¼ÃÁÇ·Á¨ÈÏ´©·¹¤½¼µ£¡¿À£¨¢Æ¯—¬ËÀ¨¥ÖÍŸ¦¹¾±Êº˜—š¸¹·»¬‰´¹·Á骿¶œÌ¢¶ÉÄ®³²°¨¿Æ«®¬Á³µ¯²¯¦²ž•­Ä·º½»µÉ° ¸©Áµ²«±¦Â¸·¼¿Â­­¹´¿ºª½Áº®ÁǼ³ÅºÂ´»Ë¹¯´¾Áº¬Ÿ´«°·Á¶­¯—ººÇʬ½¶½¥Â°¸¤§¤½¶Ì­™Å²°³¹†Üº¹¢¯®È§µ¯·¾¿Áú¥¾ÅÀ´·¿¯©ŽÆº¼Ä¶Å¸È¼¾½½Ì¾²µª½Ãº¸®ÂªÈ»¿Ïĵ¤»¸ÅÅž°º´¨´¬¬¿Å¸¿½­µ©¸ž²Ì©´¸¶°·ÂŸ»Í­˜«¶Ÿ§µ¯»»²­Á°µ¯¾°ÉÂ¬š´¼©¼®±½¸±º¬¿¶¢¼«²¶¦¾¼°¬°¾®¼¿Ç†¨¿Ã»¥¿²ž°W£¢®µª±Äñ­¼¯¶ª­©³¥ÃžÂ° Ç®¥¶½µÆ¿¸—ºÂ³º«ž³¦¡µ½¤Â¼¸¿§È«Ã®ºÇÀ¹¼ Äµº¥µ±º¸š¸´±Ã»š±ÂÈÊÃÁ²°Ã¼±¢´¡¼´½Í²ºº¹´±„³¿¥ŸŒ¾¶»Ã²¯«±žÀ¹¢¾¹¼¶È¬¾¬¯·ß¯Áº½¾ÈÁ´ÍÂÊý¨®¸¹±œ²¬°Ã´¹»Í½ËǺº¬²»Ð°ª¥¯Á¹£Í¼À¸¿£À»±¬¡¼µ£±²¨®»²Â³“¥«°§¸¨´©ª¶ºŸ³·²¹ªÈ¦¹¤º°Ãº”É¿µ³¯­­¤§¥³´§Ê³¸¯¶¥©ª½¹³°º²Ð¯¬ŸÀ §¡ £Æ§¥·§­Ç¶Óœ­´œ®ÆÅ¶·¼¶¸Ì¶²ªÇÀª»Ä÷®¢¼º±²µ´»¿³Å®²ÅÁ´·°À­¥³©¸®À¶´³²¼¶¯·Æ¿š£«½Ä½©¸¼·¬Ÿµ‰À¬²¬¸¶±¶»º¹·ÃƵ¥£¸»§´¤¸·¿»¶»•®°»º³¢½»ž¸®­Ã¨´¹Ë¤’±³Æ¬µÂ»½Ç½·À·¦©£²¹»¨‘¯±¾¿±·º¡¤ª£›³Å«§¹¦£”¯Ãžµ Ê›±Îªºµ°¥À¿©Á±²¥Å ¶¨ º»»©©¶Å¯µ¬°š°«Æ½ª¯ÁÏ­»˜¸¬š¹Ã³²³¨²²± ±¢¹Ä’ª¯Ä¿¸Æ»¸·¢¤°®·¸¹¶´Â¹»¾µÇ·ª»µ™µ‰²®¿¸³¶²³¥°¦²Æ¿À¾·¼ÆÄ•¿½°²ÇͰ³Æ´º½·È°³¸¯«»¹ÃÁ¿±·¨½°º½´µ¸¢¿¿ºÀ¡·»¶¨²²Å«²Ä¶Ç–·¤º­­°¦¼¿›¨ÍɲÁ³Ì®»«Ò·Æ·´Ä¸ÁÉ©‰¶È¶­·Åõ¼Ò»®¯¼ÄÄ·Æ­ÀÅ¡µ½±¹µªÆµ¬ž´ª®Ë´¶²¯§­™®¢½ºÈŒ¼£Ã·Ã©¦ºŸ¸©µ š´‰®¾¨¹œÄî®§­¬Ñº·¹ÂµÃ´¨·¬¿±ºÅ™·´¶Á²Àž«ª’¦Â¸½ÆŸ¸Ù†´¼›´Æ½·­¶°ª©¯½»ž¬¯ÁÁÂ̼®žÃšµ®¶Ã³Ò¿µÃÀ«¾À¶¯¿®Ÿ¹·®´µµ½½º½©º­ª¥¦·¤Ç½³ª»®µ·¶¶°º½Ã¾¸£­Ðº»©˜ªÂ¼¤¿±®·°·Ã©ÁªÀ¯¯¯´¼°¼¼Ã—»¸»µ®¶¹ºž¸·¼ž¸· ©³±«Àª™¯Àµ­ÄÕɰ£·°¬¨¾¦¹§»Ç¼Ô¯À¡½Á»µ¯¼Ä¯¡µŸÃ·¸®¾¿º¬¨”È­ªª½›²¸µœ­¯¯¸Á͵¼¨¸Æ²Ð¸˜µ¿¬´Î­ ¡¯±µ¿¶²™«°§®±¤»Ã¿²¼¤±Ì±¬¥ž³¯Ç³¿Àž–ªÀ½¤§­Â³¹’‘²´º¿‘ÁË·½«¿®¶À•©œ³±»°¨·ª­¸µ¹º¾˜¶®·±¦Ç±»Â®·œ¤´»¸¿¬º·¼´ÄÆÁª¶´²¶ºË¸»«º¼Í´½¸½Â°¡µ¸Ãò´¢¨²±½¦ºÆÅ¾¸°ºÎ¿á¸²µ¸µ´±´±Î¨Á£©À¼½¿¶Ñ À°ºÈ¦Éɱ¥Á¾¹¨µ±·›˜Ò¬°µ¬·±É™À²²£Â¹ÀÌÀ½Ä¿Ä¸½À¾´Ò°±Ë²«°·¹Å£ªµ¹µ °¹ªÄ§®¶›¤¥®ž¾§º³±¼¿Ÿº©°¾¹¡¼°­«º¬µ¯¥º²Â¹°Ë¸½¯©ÃÔª· ¯¹¤¨¬¼´­·Å²±•ª»¼ºž¨¥ªŸÁ¶¹½Ê©¼¦¶¿¸°¨¹¼¨¼«½Í¾º¶Æœ¾ªÂ«²ºÐ¶¼­¾«Î¢·Ã¨§¡·º¶Ã³Ñ´¯™¸¿ªÄ¾Âȶ¦¶º²ºÌ¥¸ÁÁƽ¦¯°±»¾À®É²¾¿Á¡¾Äƽ¸½°¼ÆÍ»ÁËÎÆÃ·ÉÈÙ§¿ª·Ã¾®»Œ­˜§½³·žÀÁ»Ã£ç̽ÉÄѼմ»§¶Í¿¼Ç·¨·¬ˆß´¿Ï¼»¾·¨¬°¹Ë·¸ÃŸÏ¯Ä¥»®ª¹°Ä¯È½ Ÿª«©²°¸´³Å¦ÇŸ¾ÓÁ¤³µ¡¥¿“űª¦¬µÅ¬¹±¾¹´­ÀÀºÂª¯»¤Í¶ÍÀ¦»Ö³§¸Í¯«°Äæ³È¥Á¹ÃªÁ¯›½¡Ì¼•¨ Ë¥©Íµ»³½¨¡§¥¡Áªµª³½Â¿Åή¦°±¯™°¥·ÂƵ”ª‹´¿·¾Â´¹¼§µÅÅ®¾Ä°¾À°Ã©¾¹Ê±½«ª³ª¼«¸­¾³Áµ±¿Èº¯¥Á¥·º²½¥Ë»²´Ÿ§¥½–³À¯ÉµÌ±½«¸¢Å ³Ë¥·¹§ºÃ·´´±Õµ®±§À‹­£³Ë¼µ³Æ¢¦À¼¥À¯°ÄÁÂË€»¶¶±¯¬¹¶¡»«Ú¹½²½¶ÄƸ±§½¯·»­Ð³©¿ªª¼º¼´²­¬ºË»«¯Ó³³Ã¯¥Áv¯­©µ¸¦½¨´©Ì±½¹©ÑŸ´®´Äĵ¦ÁŶ¾´«³¶¤±˜µÈ¤Îȷ´ɹ¨ÂÅÆ²´Ð·¸±’½»”žÁÅ«º©Å¾©´¹«³¬½¦Ã¹Ì´ÊºžÆ®³Ð±­®Æ´´ÃÁɸÄż©­¦ªÚÉ·ÎÂÁµ®·²È®´È¾¾¶É´¿¸¢À¼¾Ë¸¾©Éɦ»§ÀÄ¿¥Ã®·ºÃÇ­¬³¬¿¾µ¿«©ªµ²»ÜžÆÂ´ÆÅµ¨®»À´È™¸«Îǯ¯»¥±½¬ª¾Ç´²¼¿¤¥­¶¾ÁÁ“§­Ã¹Ò½½¹Â´Ã·½ÌÀ°¦ŸÀËÅ­¢·±°žÁ©¯µ¿µ¹²ÖªÁº—¾¼´Ë¨±¬Áº˜®¦©¶µÀ»¯Å¼¹Éçɦ¯Ž°²£ºÈŸœ¶³­³É½»¨¢µÀ–Ǫ®³¦²‘°§Ç¹Á¦¬Â©³µœ¯¸¸¸Ï³À¦°ÕÀœ§¶« ¼Ê¸­Ã¨©›Æ¯¦º©·µÅº³½ÃΘ¾³³²´½¿Ã±|º»©¸È¨ªµ¼Áµ°¾§»¾»£µ¸²Å¹®§®×¸®ÇÁ¬º¢¶¸¸¥±±³¨´Ê½µØ®®··¿»µÌ¬¼ÃȲ®¸¡ÀªÅ½¸©¾•¥Ì³²ÃºÃ¥¸Åͬ­¼®½³¡À®«¾´ÍËʺ´Ë¨ª«±®©Ä¶ÇÍȤ¡©Ã¿¼ÀÆ´Ÿ·¯ËѺ¸ØÇȯÀÕÊʸ¡¬··ÄÚ¹®¿½°“¾´ºÅÇӯʱ£±²¦ªÆ©Ðµ×›Ä¸´§À®¹²¶¶Ì¶²»¤ÖÄγ´¨·²Ë¯·µÊ¸³ÂºÄ¦²¿¸Ô«Õ«ÓÅÌ·Ê®ªÀѵ±ãÁƹ°®Ï¯“Ƣ͵À¹ÊµÀ¸Â³¹É¨²ÁÆ«¦¸¥¹¯½¾°»¾¸Â¶¨¸´£¼­¼¯Â°»‹ÍĬ¹ÊЦ¬Âñ¿´¬±°§°ž¥­µ³–­³‚¿À¶±Ÿ©Ê½µÄ±¨®¯§©¯•¯¨®«²¼Å¢½°¬ªÂ¶±ÉÀ¶¾¾¶£¶±¶¬¢¾¸À¤¶Ç³¬·°±µ±»»¬”Ïj‹¸®°¾±±Ã¹°´²­¯«µ¨§§Ç› ¯¹ºË®š¼Ã¬¬«Ÿ¿´¼¸¯¸¼œªÏ¼®©š³Áª×¯­Áª«··´Í«Å©½±Àž¨»¬©Ã¬½±¬Ã«¬±¬´ È¨¨ ©¼¥±Ä°²­¦¿½¦¸Ç´¢Éº¦µÈ¤ª¯²²©˜°³¶½²²®·»Ä¥´ ¯°«¼¾¹¹·µ¼°½¸ÉͰ§¹ÀÆÉͧŷ»§¹²Á°€®µ²ºÆ¬Á««ÐÆÆ³´¥ÂµÃÈÆ·ª¸¬µÇ˺µ¸¤´¼®»«²£É ³³¼Ê»´ª¶¶¾ÌÎÀ˪°¿·¨ÃųµÁ¼¶²Ãͽ¼¿»Ð©¬»¸ÆÀ¤¸­½°¹´ŸÇÔª½Å¯¥Ûº»Á¤³‡¶¯³£m¹˜¶¢¹¥À¾ÁŬ³»¡¡ÍµŸ½Â¡¼ªµ°ÂÄÆˆªŸÂµ£««¨À¿¨Â«Â¥°¿Å³Ãž¬¬¼¼‹È¢©¼‘Ǿ¹Æ¼®©®¢ÀÄœ¿Ð󴼪Ҳ¢¯®²«³»µº¯¼±º·±Ÿ¹Ã¾­µ­ÆÁÇÄȰ·¯Å¼¯¹°¶¼¹»º²±»Ä³º¥«§º©Ä´½µÁ¦Ç±½º½±¼Ã·¸·«¢­¸¹»®¯ÅŸ¼°ÄÌŹÉĺ©Î·É¬¤¾¹­ª¶³Áß¾®³¨²Â¯Ã«±¯ÉǸÐÙ¤»Ã³¬È´Ë°¢»¼­·½ªÄ¦¾²¯¾Ê µº¶³´©®³É¼»¿Ã¬´¶É£«œ½²­¾¦Ñœ©Ì§±ŸÈ±¿¼¼ÅÀƵ‰£©±¾²ËÆš²µº¤ÆÇ½£¦»½¹¦¨¯¦´¯»Á°ºž­¶½©§Ë±¬²Ê±¢§Ã³œ·¸Áµµ³µ­ª¯´¡½­¿­£ÜÊÁ¬¥­Ä궨±»«wÈ–£¾·¹ª§ãÀ²·´¹ÆÁ±À±§¼µ¶Å½µ³º·¸µ½¬½¼¿³žÏ½ÈÁ±³¶±¥®½¨º±ª°À¿®ª¥¦¡Ê¼À½³Å©º·¥«µÅþɣœ½Á´²£©¶º›ºÃ¸²È¥»Á½±¸±¤¯¿´Ä̸±žBÈÑÁ°µ¾¸¿Úž´»È¹°¶Å¡­­¸¹Èñº²«¶ºÇÀ¦Ÿ½¢°¦µ¨¿ƒÕ™¹°°¨¨²©¸º¸¶§´À¯¹´«¶¯£ÀŸ¡š·œ²¹¹ªÄ­À¿·³Ä˾§¬ÀµÈÂÇ ŽÆ«¿§«´ž²É¬¸¯Ï§©¾¯¼Ä³®ºÍ»´­Ÿ—°¬ž¸¿½ª¨À·ºÆ¯¥Á¶Å³¯¹¶¹ªÀªÀªÏ³ªµ²¹È®±´¶Çµ°®Á³¤¶«˜ÀüÁ²Â¼Ç½¹·®Ç¶È·Ì²¯Íº­º¹·¥º®¬±¿¶µ­´Éŧµ½¾­¿Èĵ±¾¯Áž¾²«½»ª¹Ì¿·ÀºÀ²º¶µ¡¤ÁÀĬ½¿«¦Ó¿Ê¾Ã·¯¹¢¨µÅÄË·»¬«¼É¬ŸÁÀ§°¯²Ä¦´°±¢¼± ¼¶¤¡¯»µºº×³»±À¨É ©¯Ã ·§ÈƤÀ½¼³¯%¶ž¹£µ¼¯³º½Å¨§¨½Í²Ö³Ë¿Çű¶­ºÁ«®§¯«°ÃȺµ·ÀÆ¡µ¦´¯³¸À²«È´Ì¨«½³­·®š«Ä´¨¢¶Á¾½Å¾¹«ž¾µ§Ó¸¿´¹´®¢¥ÀÆÈÄÂÀ®¸âĹÆÄ¯³Àµ½­ÅÁ¶¸É´½±´°½£³¹ ½ºÁ»­­´·¼¬¼¹µ°¤º·°™°¦Ê¸¾º²É´´¸¨¬ ±®·¶©²­—¶·Ç´³¹&¾Õ«Ç¹´˜¿Ÿ°—­¨µÂ¯²³·©Æ©®Ð¯²»»¯­Ä¾±É¾±ÈŹº¢¦­Å˜Ç«¹¨Æ§ª¹¼±Ö¦­¶È¾®° ˜¥¾ºË§Ä¤±Á¨§½¯·™¤»¾²´µÄžÀ²¹ŸÐ°¬©­´Âºº™ª®À—Õº¶·©Ÿ§¶²Ãº˜··¾¶²¾ §ºÊ°½¯ ¾»³·Â²¾¢¿´½«»ŸÃ¬—½¥¯ÃÆ¿¨¬°ª»½Ëŵȼ©º«¬²²¾·µ¿¿¸Å½¤»ª¿³µµ°·´¼À¾¾Âµ­½»·¹·»É²ÃÀ±»¾¿´À«ÃÀ½¹¶¾§·Ÿº»µ´·ºÂÀ·¹µÈ©¸»°µº»Àµ¶¯¿¼²ÆµÀ·«¯´¤¯µ¬¹Ç¾²¸±¤·¶¯É£¶ÅÀź»´¬ª±½¹®¾Í¦ÁƳ¡¹¶Æ¡½µ­¯·Àº¼°§´È¸¶«È¾Ç½Â½›»¹»µÀ±À»ž»Á®¸¾½°Î±¼·¥¦Å͸³¼±´½Âª»‘Èɽ¬µÈ¾À³¹©«´»¾·¹µ¾¶¼³´ª¹½®··®¿·¯Ä§Á»”À¶ÇÇ»½Åº¿¿ÂºÇ¤¯Å·«­¯º¢°½²Á°µ³Å²°Ä¾Ÿ´›¸¨³Ê°µÃů“Ç Çů·Á¶›Ô«¾È£¾¾»¹Å¹««©¥²Öß³¾¸¾²Á´Ì½²É¸Ë»´Í¼Ç¸µÇÊ̦¼Ô¥Å¼Å̯½Ç¦Ï«²»žÀȵ©±Ø¼ÈÄÈŲÈÔµÎÒ®¾¬ºÔ²´µ¬ß¿¢·»Ëʱ´±ÌÀŸ¾¬Ê¿º¨À®²¾À³¥™Ç¦Ê¹µ³Êʯ̤Ƣ§²µÏÔȹ¶±©­º±Ú¼Àӯ¨ÃϰÑĵÍÓ¬¼Ó­¯×Þ¯¿Ê¬È¹¾·°±ÎÁÁȸÂÔÛÜȲÂǾ®²»Â±Ñ·¯¬¿æÍ±·¸°²¹¾Ð«¦¯Ó³ÔDz³½²ÉàáǤӨ¤°À·ºÇ®®¹Ï¶ª¿§»Ã¾´Å©¶²µ·µ¹½¿¯±¹Â·¯¾¨¯³ËšÃ³Ç¿°¦ÍŬ¹°¾µ·ÅÊ͸·³¿±¼µ¼©Æ§ª­¶±­º³Æ°Ã¶½¿»¾¬ºÄ·À§ÃÁ©¼©Åº¿¹®Ë·µ·ž³Å§šÃ¹Ÿ®ÖßÀ¿±½Ÿ¦±¸Í¨¹Ç¼¼¾°¶Ñ»Ç·»®»Æ¹ÂµÀ¯Â´µ¶Ä·”¼·¯©ÆÒ¬ÂµŸª²¿©¥­¹Î½»©Ç±¯ˆ¥¸¸Ã­¼¼¥µÄ±š±µµy¬È²¼¯¨©¿·¥®¬¸¯¶Ã¹¢­« ž²®¬ª·¦³¶§Êš¿´°¸¯¿©®º²Ã¡°Íμº­±À¸¯¤±Â±ª¥»®ÆŒÀ¾ŸŸ°»±¨Ã³Ã·Ã¬É¸¼²¹·«¼°¹¼¶¸µ£³µ»Áª¼°²Á Æ¼¥™±«Îµ¤¬¿±µ»¸¼¸È¨Â¹³³½³¿¾¿ÃªÐ½Õ»ÌºÆª¯ÆºÇ´¢³µÁÀ¸Ì¹Ôµµ¹Ê°¾”¹¿–Äп·¾”¯¾°È½§Á®¾œ©¹¯½³³³¸¬»±ÇÀʬ¶»¬®·‰º¹»³½²©·Ë«ŸÃÇ¿ŸÎ·É³°“¾°À­¦Ç§§±¬¥²¨À·º©¦±ÁǷ̸¼¬¥Ä±Áš©Á£±Â¿³°À¥®µµ¾²Ï°½£³ÂÉ¥º¶³–¾¼²Í¸ËǦ£°«½Â®“©ž¹·Ã–‘¾¸µ©Â·¬’½À˨¼¡°®³«¿«œÎÁ“Í»´§¦°¿ª¿Á»¨ª·³¼¼²¯²ª¸®Á°œªÂ±Ê–Ÿ½¯ª¸Àº¹»¹»¾•¸¯µ˜µÉ¹¹›¡µ«Å·­»Õ³¼¿º´·¿¹ÿÃÂɩѹ³Ä¤Ã¯¹Ç¸´ºµ½ºÅϯ½¸œ±©Ô½×˜¶Å¾È²ª¶»¾¼«µ¹±¶Í¿ÍÌ´±Æ°»»¨Åų»¡©À­¶Äš¥¦ºœ–¨¤¾¬³Êѹ¨¿¡¡¹Å¼£¤¨¶«ª­ŸÉÇܰ¦Í¶¨¬°©œ©¥¬¨¶¿°»À·±ÍË­½Å ¯ÁŸ»¶´³ –²º­§½ÛÄ®ÍÏ«¼¢³²­¶»ÊÓ¹»£³³´Ã±±ª¾µ»™¾¯È¡²°¹¡À»¶•Á³Ì«ÅÊΰÄÁ±Ã²ÁÆ­¸Ï°°ÓÉ¿­®Å¿º¸¤·²µ´¯¸ÀÏǺɯºÎÀĬœÀÃÆ¿¾ÀÈÁƼͿÆÂ¶ÁÑ«¼³¯³š®Î¡±¶Ñ¯ÂÅǦ¾Ìҵº¥¸©Ê¥¼·¥µÄ­Ù¸È¾¦Í©¼ÁÅÆ´£¸Ê¹™³±ÃÌé³±§´Ë¯Âѹ½¸µ»®»¨¶»¯º¥ª©©¬Ðµ¥±´´µÐ¸Þ´´¾½±Ð¿º½»Ï­ºµ¿¶½°²Ò·äð§°ÃØ­¯Ô®ÁÄ¿½¿ÛâÁ®Ç¶¶±µÄØÔŰ㵶ÌýǴÁÀйˮ£¬Ö°É¬±¶Ç¯Üº¢© ¶£¨µ³±°±£µÇÏ¿½¼·½¸¹·ª¦½«»¢¾µ¿½Â¯¬¬°»²¥Ã¬¼¬¡®Ï¡®Âµ«º·´¾¹Èµ±°¬Á²»¬¦­»Ÿ®¸¼£Î˲·­Ã»Á®³´Ì®»ÕŸ¶«°¨³£Ï׸¸¦®œµ¦®³¼»²£¢¾¥Â¯¥¨¨´½¤®‘´¸»³²²¹ ¹ªÊ¹ÈÀÒÅÇË©­¡ª£±«µ®¶Ô¿¥µŸ©´¬µ½©¯¿ª´Ü¬®Æ½­¾°´ž³¦°¡¨´³»­¸°˜¯¹°¨´ÂĨÀ©œ¤À£²¯¶´±™º·ª­¹›À§Ä¦²¼¨½¯Ç»³­Ì¸µ¤´§²¬·£ª¤Þ¶Â¹¤Æ¿¹¯¶­Á¹Á¾¼¦¡Ã±œµ°ªµÚ¯§µÂ²ÀÁƯ¤žÈº¯Ä¾Í¥Í¹¸È²³¾¶·°À¤Çµ§ª¹Áº§ž˜À¶µ°¹¸¨²¹¹ °·«´¶®¼³±¤Å’Áư²Å¹©ª±¶¨Á»¸¹¢ËϹ·À¦·Î¾¦¶µ²Ø°¾²¬¼«·««·ÒºªÌ»½Ä°›»³®£ÅŸÀ²®Á¾¸ ÐžÄǯ¨Á´´Í¼’¥²º®®¹¹¤ÁÁ¦±Å´²£Ñ»“¹¹«µºÈ®º¾±³´¯§Á²¼”ÁÄ¢º ¸­¿®¢½­®Æ¿­±¾¼¾§¸¹£®²º·¶µÊ²³´¬¸Ö·ž¨²Ìª²·Æµ—´»µ°¦¹¾»¾ª¿¹Î·¸ºº¡Â³É¥±­·ª¹Îí¯Ì«¬¸µ±À¿²¸Í³Á¾·»¹©©»¸¼´Ã§º»µµµ­·­°—²»­É¥´¼Ã¾¦ª§µº³³µº¥´¸À½¯®È­½¾¸¿·¶¼½¼Ã¼¶««Â´­ª”º°®¤¶’®Å¼º˜Á¬¸ºÃÀ­·½£·³¾·³¨¼µ ® ²½¯Ç°¹¶»°¿Éµº¿¡«¶¦Ì¡¸º©›¥²±ª»¿©¡¯­¨·§¢¥ƒÇº§¼¶°·¤¹«•©™º¡Œ·¨©®ª±z§·¤®«º»µÎ¸œ¾«¹°œ®½´¼ª©Â³É¿¢§¿º¯±°´¹³¹µÀœ¬š·¼Ä¹¸²±¡¸œ»³¢µ® ¶¬¿Ú¦«¤• ­®¡¼»²·©¹Ã«¶Ç¨ªÇ²Æµ¹±º¨¸º«»Ëᄬ£¶Ý¸±¥»È·³´«ËDzʱθ®¼ºÙ¢¡Ö¤®´¸ÈÅ£º²¿»®¸ªÈµÁ¶®Â¯ª¸­Ñ½¯®²¹¸°µª®¯œ±¯Ä³º¸®Â¡Ç¾´¥Ã²¥š®µÂªÇÈ­°¶±¶·¯¯±ËǰºÉØ£«²¬¥¹Å͹Щŵ··µ¡Á·½¯ÊËÕɹÃÜ˽ª·¿Íɺ¥ª·©°¿À¬®ó©¨Å¼Ï¹Í¯¶Ç¾›È¼¦®½À­Ç¸É³®½Êº¹¶Ä¯¬Ä³«Å´°¿®ÆÁ̰À¤ÖØÃ·²½µ¼¤ÎµÀ®Ã·´ªÊ³¹Ì¸²Û³¶Æ°¾·¢ªÙ­ÆÐ¸ÉÉ®¢ÈµÃ¯ºÉ¹´Â±¼´´µ·¿¢Èð¹¹À£¸½§º»¯¬¹¾¸Ê¯ËÊ×αŸÇ «ÒººÕ›Äº³À³¯ÆÇ¯¶ÏÁ¨¸Ã¼Æ¿È¾½ÂЯ¨¤Ã±·µ»ÓÂÅò±¸·¸¼¿Åׯ»½°¯µËŸ¼Â¬Áǵ¿Ê·ÌÖÍ·½Ì½¨¾°Ó¨­Çµ¶¯¬µÁ¸·­¼ªÆÅ¡Â»Ã¨Ãóʺ¨Å¯Ê¯¦§¼µ½Õ¹Â´»¹µÆµ²°¹´¾°¾½Êž¢~ ¿¥± ´³±¥·¶²¨ª³µÌµ”ɾªƒÅ»½µÆ¸¤Ÿ±¾»°¡¼±Õ¥¨½·¹Àž¿³ÑÌʹ¢²½­«·©²»¨ÉÉã¹®Ó½×µ±¬ÁÁ¶Ï¶»¹º±´·¾Á¼Á¹º¬º¨¿·µ´´¾ÂÀº³¹ÉÁ¬§¡¯ÍͲ¿®½¼´±¸Æº¸Å¾©¯ÎœÃ¤Ã¼»¯¹²¸Áº¾¿³•®Æ¹´·¯º°²§»É¬ÃÁ ›®žÄ±µ²Óºȴ°´¿µ¦»ÄЯ¢¾¹¾¹ªÈ¬«¼½ÁÜÁ®²³®¶±§¹¶›°ž®ª¨Ä©²¶Ôµ§»´§’»¦¡½±ž®¸¬Ÿ ½—¶Æ©¤¤¾¾—̱¨¢³­©²Çž¤µÎŨ¥Ê±²¤¯« ”½¨±ÃĹ³‰¿Û·Ê´Á£Á±©·ºº¼®½«¶aª¬©º–ª¯º±¥¬Ã¶²²¬À¶®ºÄŸÃ²°¾¿Ë°½®ã»­¤¸½Ç¬¼¿¼´²¿¹¨º­·®±©ÀŸ´°´Æµ™¼¼°¾œÀ¢ª«º´¿¿ÒÁ±¿°»¦À´µ¼¿˜­°¶¢Ä¼²±®¯º±¶Ÿ£±°Ç¡†­º·§²¸¶¼ ´»±¸»¬¹Ò¼¦²³°´±º¦º¼¸³²µÀ¦¯Á´±°­¶À¹º¸£¿³©¶·º¼§¼­Å¶ ™£¿—ª­µŸÁ·Ä©¹³µ²¤ßž›±® ® ±´Å–¢ž´ª¯º”¡¼È«Áž­Ô­§°Àµ°Ç¼®—¯¾¹¼Ä»¸«±¾²ˆ·³¹žµ²¾­¸•¦¶±°··²¶µ²°¨ Æ~ÄÀ¶¸¯Á¼£´±Ÿ»¸Ê ©ÀÀÀ§Äǽ̱¸©¼Á¶µ±»¶½¼°´³¤¸ ©·¯½©ÂÁ«¶™º¿º©À™©½­»­¡Ãº®·°°¸·½§¤¶¸±Í¬°À·¡®º¾´ÀÀ²·•À³Â´·£±Ê¶ª¶«¾®¾Êº¸±°²–¿´µ·ÃºÇçšÍ‘©²¯ÊκªÃ½´Ì³Å£±Ã·¹¬ËžÂ–¼¯²Ð´°Ê¶­¹Å°º£©¥·Ç¶­¸¶½®Â®´®º±µÆ­¥ž½®Ä¶®§º¸¿· š§Ä·Â®¶°¸¿ž¸ª¸¼¹ ¯©¹°¯¹³±¨Â©½´­Æ°µ­®´¦ª´Âf´Ê®©»Áŵ´¦±±µÅ³§¶Ê¿·¦©²Ç¹¸Å­›šÀ½²±Àš»·©Ê¿¦Ÿ«·»»·³¶¹º¸¼¯¯µ«²½¯¹Á¹·Â²Â²±´¶­Ë·¼¯±¬¶²»Àì´Á®µ¬»¸­³¶Í«»¹°¢¾šÅ»¯²µ»¢Ã½­¥¢»Ï«ºÄ·ÎÅ£´¯¹¹©Ä¥»­¨Ÿ¹”¦µ¹Ã¹¾¼µ©Áº³µÁ¨˜¹¸¦©­¿³±Â²´¶´·º±ÁƹµÆ­·¹¨¥—µ±²µÀÇ´¼¹Â½¬Á²§Â­©³²¿©´´¯½®®«²¸¬¥¬ÊµÂªª¬§¾º§°œª›©À¨®¬·¯²Å«²¨³½x›¾È—¯º¤¢Á´©°¥¶º¡±ÂÃÀºµ·«²¹žŠ±¬²¿¶¸¼ÃÀ¿¸ÅÀ™µ²£¸£¼ ¬Å²´´¼·É¶ÂŽ¿µº±¯šÄµ½±¶Áž»§½¬Ã»À´¸Âº»²­º©½Å½À¹Æ·¬›²Ä³¯½½²£¼Á­¿Äˬ°À½¯»Á·±´§½£Ã¾­«¥­¹º¾Ã²·Í³³»±ª¼Á£¦¼®ÉÆÉ¨Á¾¸¿²º»¶ºº½°Ä±Ë±·´¡À­¡²·¾¦º´ŽÁÈ®½Ÿ¨ªº¶®´±®°¦ ³ªÆªÄ¼ ¹¹´™¨ÆÃ°À›­›µ§©²‰·¾Ç¥®•µ¡¥«¬˜—ÂÇ›ž¼ µ¸¾ª¯±¼²©µ½¨Â´¸¦µ®·­´¢Ì•½À¼³«»¹³¼§¼˜½»Ê¿Ü¼¹»´¦¿¿º³¶¸¦¹§ª½¶Ä¯µ’¬·¹­±¿½¸Ãѵž³º¶¯»±¾½¯¯»¾Ð¼¬ÂÇ›º§´»©ºÂ©­µ´¯Ä²»¢£·À¹°Ç³³²´ÅÄ̽Äȶ³ ¸®­°ÃÓ¿ªÎ³³º‘¥¯¿ž¯´¶¿º¦¼¶¹¤½ª«ÁÄ¿½•Dz ¾Ô¨½¶¹¼¶Çª¶¿¹Æ¬ž®Ã¬ª³¿ÊÁ§­¾ÅÀ» Ç«­¨ž®«¸¼Ä³¬·¦¬Ã¥›¹½–¶¶™¬¿²§Á¨°º¤·°¬« ®Æ¿±ÖÀ²·Ã·Ä³¸¢¯³§·¥ž¦­¹·´©²¼°®£ÆºÉÊ¿»µ³±¢¶Ã¨µ®´¼¯¼ ¹µ±©°µžÄ¾´«¨´¨½»·¸¶—¸¡¹¾µzÏùƜ½Â¼Æ¼½Äº½§ºº¬À«ÆÁ»¬´°·ÃÅ´²½¶°©²¶´·ÄŸ®²¸©±¡µÁ½½¹¼©´¼¼Àº¹£Å¼­¹±°³ÅÀ¾¸¯Æž³§º³•­©§¾±¿À¸¸·£Á¼š¯µ¿³¾³º¦¹À¦¥­»²¿ºÁĸ´³«¼¸°¬›¥´·ªÉÏÆ´Àβ§¯´¬œK¢£¥º®´¾«´ž²É·®Ì²µËº¾¯¢£µº¾«¢±³¦®¡¹° ½¾¥«®¼¶¹ªÄ°²µŸ·½º«¾À©˜‘¦¼ž¾½Ë—¯«»Â¼³¢³½¹µ¶¿§ ²¼¸¶§¶¤ ¾žÂ¸¤¨Æ¼¥ÀÛ¤©±¼²°¤Á¨Ÿ¡¸Ä³®µ˜§ËÈɬԭūɨÅÌÁ½°¥»³¸ØÄ¦ÎÇÇʦ¯Á¶ª¨¸´¶Ä½¹¿Á­»ª»®Àô¾»Ä²Â¦à¥¿µÃ¾©±Ç±¿Â±»¸™¸ªžÁ§©§ÅË»ÀƹÁÎÍϨͲÀºº¬ÂŲ±¡¨»ºÂÀ¶ÌÊ¡ÉÐÕ¾¬ªÁ¸¹¾¿²ÂÁÒDZ¬«´¨¯Ò°•𴦤¤È½°±­Ã²µ®¼Îø¶±ž”Å·Ò«¡¤¯•¯¹¦¬²Ì² Ê¤¦Ù­ÇÎË£¾È¬ÆµÎ©Å²¹¤ÐÄĵ±ÆÉ—¢Ç¾Åµ«¥Î°Ó³¬°«Ę̀ƞ¯Á³½Á»¹§ËµÉµ¶¸º±ÁÔÉ·³½´Â³Î¨¸²“ž±Æ¯º¹À¬º¾»¾³¸²´¶´¥°µÂÀ»¹³©¼Â¿½¶¾Å¬·¶Æ»Á§Ä¦ÃÂÓ³¾˜ ½Àϲ¢²¹¯¶¢« ½¾¹§¨¬ª»½¾º««¼À¶Ç¤«·µºÆ¹Â¾¼ºÊ¼©»«¬Âº½±½¼¤§¢¼¦´®³À»§¦¿µ­Ãª­¶¶ž´³¥¬ÙÁ¼®¹²­³Ä±³«£¹¬È¤¬¬À·À²¾¸¹ª¥Ê©¹Ã«œ®Á®Á¹œ±¦º­„™±ŒªÄ¹Ä¥º´±…»¼°¼¢±•·­ŸÕ¬µ»¸¬Á”«£»Îº¸Äµ¼¦®¶¢½Å¨¼ÉÀñ®º´º²¦®­¸¨«´¾³ËºÄÅÁºžªÇÉ׿ø½ËMº½¹Å·¨Ó¦²µ¶´¯Ê­´½º¥Á¶¶Í½¾§¸µÆ°Çɼ¶³ÉÀ»™Æ°Î«˜­Ô´¿§¼¹¹º¤¬ ¦Ã¹²³¾Ç¸½·¦´¢È«Å»Éµ›°¾¹§Ã´¯¿²¶´É´¯±‹¾µ±À¿£Â÷½È·Ä¯²«Èªª¬½¼¯µ³¥Á¹¿ºÀ¯¯½Â½¨À·»´º··–ÑÅ”±Óž¡¾ºÅ ¸¤§¿·°²¸ÄºÁ¼¸©©ªÌ£Ž­¾ª¦°Ÿµ¢‚²¯´Ö¹¥»··˜¼É²ÃºÆ¡»¸ÀÀ²ºŸÁµÈ£­±³·È¸º¤´–£¬©À®©Ä¿ÊÚ¦¾À¬´µ©§³°©À™¨¢±Å²ÁÈ£¶³¸Ë¾©¨©¿ª™±Èž°·¹¾²³Â—³¨ÀÉÁ°µ¢¤¼´¿·«­µÄõ»¶¦Å“Ƨ¯½»ÊºÊ¸µ·¾É¸°¹­±¸¶Â´Í¸²¿¾¹½Ï­¶¬°»È»·Óɾƾ¾º¾»º²¹¼ÁÆ›´Å²¶«¸ª­¶¸¥±¦¹±Ä¨»¹¿»£º®Æ¬°Â¨´Æ»¦»²É²À¼‘³¢§Æ«®»¯­¾©·²²Ã¤Ÿ¨£œ·°Ãȱ½®£¸°¾»¿½¸´¶«²—¯·¯ª¹°‹š¿¤tÑŵͫ¢Ã³º¢´©³¼ª¶¦¶£®±¼¿¬®È³¼»®Ç¯Ç·¸°Ð“ÎȲ£¶ÅÏÏ¿¦¬ÎÅ‹²©¯È¼¹­¼ÂŸ«³Ä®¯®ªÄ¶¯§°°§½¯µ¶»§ÂÊÁ®­²ª´¹µ½®·«Ç²§ºÀ»¬·¨¦­°°¸©²°µ©ÄǺ¸¾²ºÉ½Æ¼®µ¾®±­¥ ­¹µ½”¹Á¿¶°À¹¹¿œ·¸¯Ÿ¾´¶°Á¼À¿³³±¿·²¼¼ÊѵµÃ·©ÆºªÁ³º¦°¸¤®ÀÁ¿½¼¯¼Â¶Ä¼ÁµÀ¼«¹§´µ°´¾£½µ´¨²¿«Ç±Â§Ãª(¢¶ª¬˜Ÿ¹¢µ¥¶­š¼²µ²¨ÆµÃ¹ ¶¨½³À¯·¶´¬¼¹¢µ°¸¯´¥’¬½¶¼¤Ë® ºÍýºÁ¨À¨¨´”®ª´Æ»¸¬©À»«°­¿¬¾¶Ã§É¿¢ª¥»£©¼­ž §¨º½È·ª¡¥ÁÔ¸§¾·ÈÂпžºÁ±œÃ¾À±¨¹Ð¿®¹·³Æ·É¾À¿™µ¬¹´¿Ÿ°ÈªÅ®­¶³Ãº­³·¯·©¶¬Ç¸®¹±žÄ±¸œºÅ­»§­¹¨Æ²ÆÃÁ´Ò®¶ÃÇš½¾¡ÍÀ­½ªÇ¶›«¼±ÅµÄ¹­¸¼ª²¹À ¬«¯«¢¹º¼§É´Æ»Çʮ˩¼º±«ÇÊž¸ÀÁ³ËÅšžÈ­·µÄÄ ¶¼¶¹¹·ÅɾºÑ½¬º¸Â¹²¸´¡¶µ¼­Ì”ÃÈÈ·£®©¶ßºÌ¾žÆ¦¦³º¸Ì¹¥É²§ÁÑø»Ä¹¶ÀаÀ¹ž™­Ì¸»¿Áº±¶¤°Å¶É¯«Æ¯¬Ò“°Ä—µÆº¿¼º£Ÿ©±¶¹´³·­¸½»µ¹À¸¿Í»Ç´°´§­¿º½Æ±¶¾¸¾·Ã¼¦±±»´¾ª¶Ê¸½Ìù¶Ã½¸À»¸–®¾¹°¹¶¬¿À–³Ô³»­·¼«¹»«¼¸°ÇƳª¿À¶­µ©·Â¾À͘·¾v·Î¶ÁÁ³±Á´Â¤¸À±«¶À¥¬µ¼®¸Ã²Ê­¹´¹›º¸²¨š¨µÓ¼¿°Ãµ¦¬Ò³¯·ÊªÂ¼´±»¹¾µ¬µÆÏ𼱏Á«àñ›¦´°©—¡ª²»½¥ª¶³Ÿ±Ì·¾¯®£\©¾±Å«Ÿ®œ´¿´¤²¿»¯¼Ï£·Ÿ ¼­Ì¥³ ˜¸¡®¾­Ç̤·¨Å¨¨´¹º¯—®½»Ê¯­³­Ç¼¸¶ºÅ¿º«°¼¡Á®²°»µ®º¦Å·¼¹«¼Ã³­¼¸Æ¸¡¿²À½·µ½¼ÇÁ®À¸¶°¸ª¿¬¼ª±µÍ™Çº°ººÂѾ¨Ê¨È¤¸©ª¸®µª½¬ËȾ¾¾··Å¹¬šÀÀ²Á»¼•½©Æ¨¾»®¶ÇµµË´£¿¾ž´©´£µºµ°·¹–¤¯ÅѰ¬­³‰Âª°Î±´¢°¿ŽÆ·²q¬´¶·Â½­Ä±·µ¾»¹Í±¥°®´±¼¨£­ÌÅ«°ÂÀ±¨¸»–¼²²¦®­°¬¼Ä¦¤²±³Ç·°¸²Ä­§¢¤£Ì¹¨Ç¼º®º¥Â¦²Ä½Ê¯¸´³¶Á¨²¢±£­´¾Á«­¦¥ž°¯¤¿­»ŸÁ˽±¦©¸™£¼¿³¸Ã´²»´½¶Â¯¿©´’·´—«®À°´Àº¿ÃºÇ¸±¶¾ºÃÁ»¸­¾­ ®Ä”¶º¶²ž·Ã½Æ²°³«Á·«°©Ä·ª·£§·±®°Â¾¼®º¼·Ë‹¶¸¸¿º§Ç߬©¢°¨¯¨¿µÆ±Á·µÂº½Æ–ºÇ¦¹»°º´¬®ÇÄ­©®©£¦ž¿¯›Ï­½ƒ´¸º¾¶»Âµ‘µ•Τ§±°Ž°½½´»¢”Ä·¿½ÆÉ¹µÊÀ®¾¦±¹¸Ã¾£Á§²Ë»ŠÁǺ»¶±­¬—£¿œ»¥·¯¹Ç—®·¹Î“œ¶¾¾ÆÆ™¦ÀÆ¥ºÎš·´À³«·Åµ­½¿•­´ËÁõ³½À©ŠÎµ»¼¾®³Àºº´°¨©•¾À̱¼¯µ¿µ»Ò¹¬¡±®ºÃµÌ¯¿±Æ¹¼£Ã§³¼À¼Ã¯Ã¯¼Âº±½½¸´¨¢Æ²ºµ©µ­¬°¯ÀºÔž³µ¸°¼¾‰À¨±º°º¼Êº©³¯­¾¼½ºÔ³¶Ã¿½¼¼´ªµ¬³¼µÃ¹ÂÀ¾¿»ÅºªÈ¥¾¥«³½¦­³À·ƒº˜£·¢»µ½®À¡­È¨¾½™«†»­¬¼²Æ§¸«ž­¹®Ã°­³¾¸±°À¼¼¶¹™ªš º£É±µ¼›Á½Ä¨ª©¯»À°¹•µ§·Éñ§±ª¥¼©´Å»¼¿´Ë¹¬ºÀ²¥š¬¶°¹¶Â»®Ç¸Ã¿ÆËµ½Ã¼¾³¹°¯À¿Îº¦Ã»¶Ã­±¼¶´ªÂ©¾«²ÁµÁ½·±Á®³¯Ã²¼«±µÊ»»Çµš¾«¯Ã®µ½®·½¸¶±Ã¸­ÍŸ¢Æ·¾‘Òº¬ÆŸ¸¸Î«²Å¶¿¹Áš¿±Ä»¾»¹Á¨˜¨¸¯¡š´§¼¸Ì¹ª±ÁÃŽ·ºÊªº±¬»¿ÁͿɯµ»Í½²Žš»²£É½ÇØË¢³­ÌÍ·»¶Ë³°¬¥£Ã³Ê³¹§Æ¶«À³ÎÈ©£Î׸ű¾Ç·®½¶Ô¼©¹¢Ì¯Á¯¸ ´©­­¥°ÒªÃ²–©¨´Ì¯¸µ¬¹µ©²Ã¬·›Â¥¿²¿¥¬½¼³ÆÂº¸¤¦Çɱ¹°¹½¼ÇÁ¿ª»½»¸»Æ¹°ºª¤³° ªµ³¾±©«¿°«¨¢¡¶¯£¸Â¨­£´¸©»Íµ»¿šËÍÁ¢§ÀÆÂ¸ÆË­ÅÁ¿µÃ°Ç³À¶ºÏ¸Áªºµ˜³´©¯´ÅÀ˜Î³ÁÁ­¼·¥Á©¼¿½œº­ª¨Å¿²´µ¨°Â·«´¸¶¿·À¾¸ÃŸ¿²ª Ç£ª½«³º§°¸µ©·ª²Ž¦¼©Ë¼±²§°¿¶Á´¹´¹¯´¸·nô«Êª¼Â¸¡ÌƷû©Ç£Æ©ÁÅ£œÊ¶¹´±»¬²¶Ã¹¢ª¡½¹´µ°Ã´¯¹ž˜Á¸Íͪ¹ÀżµÅ£´°¥¾±½¯Á¼¥·¬»³°Æ µ¾´‰¶Ç­¥°¿À©Æ·¥Œµ³œÉ·Â¹È¥±»®¯¾¶°·Å®¼º©®§µ´´À¸«¸«£¸¦»Ã¯§¸´Àº¯ž ÁÁ¯»´©¹µÁ¹°¯É¾»¶³·®¹¼§¸°¦¶¸´¯»¼´¯¦¹µ²¬®Íµ ³Ã¼­µ²½¨­³¾¦®´ºµ¶°­·º±ª±Ã¸»¯·¸¬°Ã¬œÂ½Á­±·²Â­¦Ä“®”±»£¯®³¸ÁǨ•°·©¶Ä«»·µŒ­¬Ÿ­®¼¡º¯›«½Œº¢Á§°§¿¸£ÀÀ²²¬¿£’®¸¨¾©Æ©©°»¿¢¨›®Æ¦§»±«š¸ž±»¯È¤È«¹Á¹–­¢²´²£°¼Å¦µ²·¹×¬Âµ¶°¿²¢¸³ÃÀ ¶¥ž½­¬¡¬±¿¹¨É¬Ä§´»¶Á¬ÈÀ½À²¿»³¶¯È­–µ«Ä˺ÆÌǯǬ±È¾«´²¸·¢¹£Á½¹ÆÅ±Á°°´¯Ç¸Â½¾¾²¾¾ ³¾»È§¨µ“«¥¿ÎÀ¼­¾¹©­¾ž··¨Çº¶ÇÆ®²¹´¦¶¦ÈÀ¿®Â«Ê³À¿Æœ»Å›¼ºÃ•°Æ®À«È¤°›Àµ½‹¹«¸Ä½ª¨¬¾§Œ¡«»¶¶´®¿À¨Ç®¸¢§Õº´Ž¯À¼µ‹Á¿¶«Æ»±¹ºÀ»Ð¾´›È¯´ŸÄ©œ¤³«Â¾¿·¹´¿¾¶ž¾¬Æ­µ»¿Ä£”­­Ÿ¸¦¼²¬‡Â¢ªÄµ±Ë™ºÅ»®ÉÈ–¹±¹µ³±¯¸ÂÀ©¿ÄµÂ¨¦¯²¼¹¸Ê¾²È¯¬½¸ÎÑŸµ§¬ºÌÔ¿±¸»©¨²£Í·´¸¸¡Åºµªµ°µÇ±Ã²½·Â¾±½Ç«°Ã¢º¼¤»²Ãʱ¯ŸÅ¶¤Á°Â±À°¯ª°¶½²Ä±®¨º¯¶¡¯¸º½¯§¹¸˜¾²Ì¹»¶°ª³¯ª³µ´«ÐÍɸ¸Ÿ«Í¸­¼««ÀÂÌ¥»šÉ𝳩¬¶¼¤Ùå²­ÄÁ½¬Á¹³°¹¥¢¦¯£¢¨šª¿ÆÊ²µ¬«—°ËܹÀÌ©ÔŪ·¯À­¤ÂªÍº›®Ç´®Ì°±¥¡·»ÃÅ´©£®Ã°®É¬®—Κ´ÆµÅ¯µªÍ¬¼³Â¿©£½¡ÒŸ¢»µ©«¾¿¸¸ÂǷ®¾Á·½¼¼°Å¸³°Å¯¸±¯ÊÃÁ¹³Á°Ãµª¨¶±¼¶»³¼½¾»¦¹ÂÂ˸¼ÇÁªº¾ÇÒš™ÌƶÅ̪¥³¾¦¨ÆÀ¸³¯µ»¼Ñ¸À˜ÁµÉ¾¼©¯¤²¯§Å¤œ·ÆÆÉưº¨¬Í½Ã½¶¤µ°¾Ë¯¹³Á¹¾¯ºÁèĒ´¸ª¼Å³•²š½®Æ¶È¿ŶºÃºÅÎɭɹ¼­š«¦½ºÆË™»Æ¿—¤²°½£¶›¼Ç Â±³Ì®Á¨¿¥»º·¥ÁºÉ»»«¯º»º§´§À×»¹ÇÄ™·¸•IJ²¼¹ÄÙ¹ÃÃÁ~²ËúѦ­§µ»¾ª¸¨¤²«±¬±·¸¯³µ¹ºÂ©¶´´½®»¬²°Á¬¸ ®¬¶Â¬¬±Æ´¬Ì­Äǰ¹®«¬¿ÃÅ®®±²³±²—µÄÇ©¹ŸÉ¿º¹´·®ÃÁ¼§Ê¤¬¶ºœº²¹¤¿¬µº¶±¸£n°²»ÇÁ¿ºÆ²Å™»Á®Ê´°±²«¹È·Á¾Àº·Ï«°²¼À˺Ʈ¼¶¾Ñ¤º¶Ä¨¤§«¸ÄŸº«Ä¹³´¯¿¡Ä¶³ÀÀ¬ž À©º“¹ª§™¢¤¤±´¨¶¯¦±¸¹ªÁ¸·¨¡¬§±Á¬¿ÅÉ£«¨ ¼²´ÄȲ©®¹´·¨ «¹±£¬®ˆ¤­ªÇ²· ž¸·º»ÅÏ¿ª«²·ÂÁ·»¹®¶Á¥ªŸ²²Ã·®‘¯²¬°¼Èó»°²¹·¯ª¸µ»²»¯¡´¤µ®¬½·¤¤¤»±Ä·¬¹­Ë±Á͸¼°Á¥¬¸³Á£«½»Êµ­·«Æº§ºÆÂ·´Àª°È°ºž¶¹´´º²Æ®·®ÈÁ±É³³Ä¿ºº¿ÂÆÂ±§Í‹–¹¦¾°Åµ–·Ê³«Â¨¯»²Ç³±¯·ÌÀ£·Íɼ§«Ì®¥¨¡±žŸ­°´½»¸ÊÁ½Æ´Âº´—²¬”ºÉ­¥™¾¡º´š«Å°±¨­·Ï«´Íͱµ¶¯µ¯º¹®ÌĨǼµ£§È¹œÁÁ©¹±Â¬£°É½¶Á¾Š¹«°Æ·¯¼¿ž®¾¯©ž¨È¤³·Èǵ§®Ë»°­¯­±±·Æ·¼Ãª¸±Æ¿Åœ·³£Çº¶£¶À°¯¾µºŸ±µ¯¼¿·½»¦»»¬ ´¿©»²´¬­´ŸºÆ´µ¬½¾«°ÄÀœ¸³³µ²ÃÉÀ·ÄÂ˰²¦¥»²º·ÄÄÁ°¶¾Æ¦¿«ÇÆ¿¤¾»´°°§ÀÄ©©É¯Æ»¶½ª¤¿Æ´·¿°¨Ä®žÂ¿¼Ç½¦¿ÂƯ®±¾„¯´µ•‘¶¼©·®À¹´»§¾º½¦•È®¼¬œÌÀ£³›²­¢£³²¾À¥ª°º®¿º¶­«Å·µ·µÀ°²®¦Çª³Á¦¼¬žŸ³°²À̈´§¬Äª»Ø¸¦¬µ±±°¬´±¦­¨“¹¤¹´Á¤¾»Í´©²Ç¸µ¨¾Ä®À¸«¼µ£²µ²¸½´¡¯Æ´È¨©°®°ÄÍ´±¯º®·®´²²½¸Ç»½ÎÀ¥¿º´ÇÃÍ´²±ª¢« ¯Ô½»¾¾Ížͪ ¯³Æ¶Â½ºÏß´°®¯³³®´©Ë³È°½±“ó˷ˡ¨¸»º¦¥ÏœÄË¢¶¼¿¥¶¬Çª¼½¿¬¾©½¼®¾§ž¾¾§·©´Ÿ³¸°‹š©²¨´£µÄ±³¬Äª²Ÿ¯Î¾¬®¼­·”À¾¬­´¡¢¼¿žÁ¹Æ²¹±¦«³ÂºÈDZ½»¹·¹¥¶ª›¶«º¹Ì·¯»¶©¼±³¶¸¬¡¬¨¿¦­£Ë¨ºª¾«ª½¼«®¬£¢¶¹¶²·Êɸ² ¬ °·º¿¢­§®¤¦£Â¨Ã¼¤´ÃÅ¿¼²°ª´µ´È»»·µÃ¯¯±¸À±ÀµÀŸ± ¿Ã°­Ã¹¿¨¸°±¸·Ã«—½®¹´¬´°Ä²µÒ¹»¢³¸¿Îº°ÄǨ¸·¤½´Ê¾­º²¦®˜¹®¬ºµ¯¼»œ¯¹±ª®Åޝž˜ÁÀ»¢¢¾¶¹Á·­«­Ãº¾¿¨³ª°¾¿¸À··¹­£°¶±¨™·± ª¾µŸ ¨¹—«º²­¾²ÁƼ™¸£š¶§`¢ªÃ³²™»¼¹ØªÄÁ¸¬¤«¶ÑË©¹¸À©¹³´¯ª½¬´§¸±±°¶™´¾¿»§º£•¿Äȯ­²¥ª°·’įµ¹º³¹¾¯©£­ÉÁ²³®Á¦½¥¡¤·²´µ·À²ÄȺ·¯³ž½¿ž°À­¹±­®¼¾Â¡È¾¶¢´Å¯¬µÉÅ•¶¿Ëµ¾·§»±­»¨º²¨½Ç¾º½° ®ª·Â§¹Í»©¾«·Æ¿œ¿°ËÄ´Äг°¦´·¦·—´µÒȼ˪š¼ÆÁ¡¯±Î¬¹Ãµ¶Ä·Ã°¿ º¤Ê¶­§«Çµ²¿®½¥»¯¯ »¸´ÃŤ›º±´·»ÉŸ¿´ºÅűÀ³®Æ´œ«¹±Ú¯˜!½º«·¦¼Å¡¿·Ï°³»¯À˜ºÀ¹®µ³µ¨½ž±Ä¸¼¹¾»¹›¬¡º¬À½¤Â¶¾ªª¯»µÃÀ³£ž±ÂÌšÀ¤¿­ÀÑIJ±¯Ç°©¡Ã¡ŽÍ ¹±°¸Ÿ­¸Ñ³¶»Á»÷·§·Ð毴з±Èº¶ÎÅǽ®ª½½¸£µ³¯¿³®¶¹µÁ²¾Ñ¬¸°¾½´±³À¯¬»Æ´¿½¿Ó¹º’´Ï»À®ª°œ²Ï·¿Í·¾ºÀ®¸¼Ñ³µµÂº¾±ÆÅѲ¨½¨¶š±¸¾¸¥Á´Á­­Å®·ºÌ¤µ¹Ìµ¢Æ·¶Ï¶Ã¬Ÿº¼¡­¼½¼¼È«®®°²É¹¬®Äʽ±µ¬¯¨¨¦¾Á¥°Ž¹³½§¶£·¬¸·­ÂºÄ´´Áº³§Ë¸µ±°±°¼®¬Â¿¹²´Âœ½Ä¬¦°œ³¼»Ã²žº¥ÐÊŲ¹¯¯ªÍ¬°»­É²¬Æ¸¶Ç¹·²Å›µ®ÈÈœ­°«¼Ì¾°º¿ËÂɾɫ¹´¡ÅµÀ½¸¼¯»º¸°¼µ¢²³­É½­¹¶©¯¼¯¼É¯¼¶«±»¶Ç·ªÁ¹Â¬¢½¾­·´Ã¯¡½¦²Ëº¨±¯¾¥¨ª¯­½²Ã¿²°Ì»¼¦ÑÁ«Àš½«Ãϼ­Ñ¯°¾¶®Â³¾½Ð±°¶¿«¸É¨¢Å¸Ä±®¤±ž¹¶©œ%·¨½¹¬Á®»×«ß©å¡´¿Æ¾¨°´¸¸¬—±¼¾¥¸°»´¥¨£¯®¬¿Ãµ¢²Ã¨“±¶À§Ÿ¸‹°Ä§±Ì¨¿¥»©«Ÿ®¾Ë¢¾½²¹µ«¬¢¬Ñ¹¤ÆÃ˜²©¿®Ÿ´¡Æ®´¾³¨¾º±ºµ®¹±²µ´°­Æ›Ä·µÂ“¸¹›¯­¸´Àµ¶ºª¹¬¾´¶©ÀÉ´µÈ¿±°ºÁ¼¸Â¥°§¸Â­²··¹µ»ÂÁ¸¿§·º°¨²¸Ÿ¼ÁÉ·Å£¿¼®¿¼Á±¼­¾­¯¾¨¿»Â¯¨§¿­À³ºº·Â«ºØµ˜«ªÄ¼§À´³¤¨ž±Ë£©³É¬Ô¬‹´Ç¶½¶½½ª¹·Àǽ½®ÇÉë³»½ ˜¸·Ü®¾º˜¬Íϲ²¸¦»¹®·¸Ù›Ž¸Í¡¯»³¤½Ã™¾Â©—¹£•·Î¦¡ÙÅ®º²Ï¶šµ»­’«§«£¨Â»À¬Ë¹ÌÒ²©¬·±¿É¹ª¯È´Æ¯ª²§µ”¾©®Á»±¸¯¶¼¶¶À®Ä¿»Õ¶¼¸¾¦¥º›¥¦Á­º¹À¬·­Ê®´¿Â·©«´°ÊÁ´³Â¼´·¿³º½²Ä´±²Áƽ°¸³ÊÊ«£±·¼´­—²´ÃÇÍŸÅšÁ´µ½¶¯»Àµº©µ³Â¶Ë¿¿Á°¯±Ã¾¸³‡—»´±¶Ä˿éÀµ°½²š»±Á¶¶¾«¶²§·¿¾Â´¹Èµ³²ªºÂ²²Èªªª­²®eª¥Œ¸Ç½È²®›Å´°Æ¢À£®µ¿ÃÀ®ª²Â¡·µ½ª¥¹’»–ÍӲů«´±¤³±Ç²‘»¬¦Ïœ«¼¸©¿›¤Å®«Á³—½ÆÃ¶È«Ã²°¹À¹³¸¢Â¥Ê’›¹¨Ã°®¼»µºÅ¬«ºÀ¼—ªÌœ±­¶–±·Ì¢ÎÅã´°Ç´±¿´±±¬±²¡º®¬Ã¶°²¿ÄÄ´¸¯²Å©´º·¨½ ·»£±­­¶Ã³¢ÄÍ©½¿©¥¿Ä¶¼¶Áº ª³¹¸®¹¹«µ¯¸¼³²»²Æ¤»Á¿¬½ÂÂÉÄ·½²´¬¼¨¤°ÃƼÁ¶·§¿¾³Ä¯½Á©³¶¸±À­º®º¸¯¾ÐÁ¯©´»Î®ÁÀˤ…¤°±m³Äªš¨³­»ªºÀ¬¶ÆÁ«©³³À¼·®®¸¦¸¬–¬Å³²º½¼³´®¸³²®½¶¢Ä¯¬…˲©ºÆ²»¨³Äºº¸µÓ¹¶ÊªÂ·¡²¿¶Áª¶¿¾ªœ¾± ª³¾©Å³³¾ºÆ¾Í«Àż”Èŵ´¥«¸±´§ª°¿¾Ã·»ÔÀ¬¼©¶º„½½¿¬‘ż®¥¿£«¼´ªÅ»¹š°º½–À¥±¸¸Í¹´ª©°ÀÅ«Á¯¾²µ•¯¡­¢¶½¶´Ç´½¥ºy·¨¯µ¿©°¯°¹‘¹Â±¹¯º»§’˜À¿º¼°¼ Ã³»—Ͼ¬Á¶²¹ž¯¨ª¿§³º¼Æ»½¹½º¤ºÊ³±Çª¯±¿šÄ©§½µ­¼¿¾¹ÌÆÎ¿¹¼Ì¨Õ½³ °¯ÉÁ¯³Ô¶µÅ´À³ÈÅ«ÁÈ·Ä£º¨Ä­½À´Ãº®¿Ã¹º®±´Å³Ã¯Ÿ¿³¦·ËÀ®°«¬Ë±Åµ¾²Ê¹šž¾©®®ž³»®±½±È˸³»½½¶Â¤Æ«Æ½½Â¶®·º§ÇȮýÀ»º´Ôż·Á½¨¾Ò¾½±´«´¾Å±°¹¼¾±·Ä°½¡½®³±Ä¶µ¸¶Ê¦Î±®¸¨¬ÃÁ¤­¿¯À®¬½¶»®§Å±±À¶´¼­œÀ••»ÍÁÅ»¦©¯²¯¾Áµ½É¸·¿°¬®«Ë°Îȯ¿Ñ·Ëº»½À¬©­­·¶ÆÂº¼¸¼ŽÂ¬Ð½¯¥±ÄŸ¡Ê©¿­¸²¬±¾¦Á¬Ä˜ÂÀ²‘±´žÎ°„¥À’²Ì š·£¸½Ê¾¯Å¨¹¶ÁŸ½°·¾´¯¼Âµ ´ž¬¨¸Ã¸ÐÁ¼ÄµÆ»¬¢´ÉºÁÁ·¶¸Ò·¦È¹´¡ÈÁ¯³Ûš”±¿±­¸Å™·¢µÀÀ¸”¾¯¬ÃªÆ·¬´Äº½À¸½¼¨¹ÆÃ¸¬¼Ç¸·º»©¨Ã´¶ ¾£¼¹±·¤¹¸Â½¯º·¼Æµ¯ºº¼¸±³§·»Åɼ¬¦¾¹­È²®»»±³£·¨Â®ª¼»¯ª«À§¶¸·¿Å¾ÁÁpµ¥­Â±»²ÀŹ¡¶¶Â°¥Ç¢¬¹¯¯À¡ž­¼±»ÈªÎšƲºº§´·¨¤°§²¼²Ç³¾¯®¸¯¼ª˜¯²¥Â¦²¤­¼¦´¹±­Ÿ¯¨¤½«®¨­´²³ÆœÐ¡À¼¼³µ®­¸ª¼µ½º´³}·¦¼µ´»Æ§½´©°®¢´°¼ŸÌ±É¦·Á¯žÄ³¤¶›±³Â²µ ¯Åµ±Ë­¢Æ­º°¿Å»¤»´µ§¸•¬§ÄºÀ«¹¢Ã´±·¹½ÆÇÀ¶­ªµ”­·Èǹ¸²®È™¸¹¶¹Ç»¼¬º°Ã¬Ã¾Ã³¶«¦ª±¹·À¥Ï°¹·©µ½Á¸¡¶¾®´à³µ›œÀ¯¸¾º­Ç³¦¶£ž«·˜¸¯Ç¿µ£¦­¯Ðƶ»°¾½¿¾©Á¸´‘¸¦²°Ã†®¹´¾À»ºÌ§§¶®§¯œ¦²¨¹·´²¡³’¸°Ð¯Å±¹ÄÇ•¯Â ­§´«ª¿¸™°¯¶µ£Ö¦žÈ”¶·µµ¾¼´¦§´¶§°•²±±˜·Ÿ¤°º¼²³½Ãº¼¶½¿œ—®½«¨¬¼¤·Ê¢³°œ®È¹¿½›š¼Ä¹ÀȲ¯ÈÅΞ©³¤Â³¿¨¡É¬©¥¶¾¹ÂżÀÄ­½²Ä¶º¼²¹¸¼¯Ê³Ì¶“À˵´±£Å±ª§¸Û§¨£º¿¶°Ž¸¯»’²Ñ¿¨Àª³Ã¹Î¼¿¶­ÂÀ¯Íµ¾·…®§½¦³±´¾ÄƯ¢É¿¢ºº²ºÓ¿´½Ã¹Ä¸»Äœ²·¯¨»±½ ¾¿žÀ¹œ¾«Â²²¯³Ãäƺ¸¨º«¡¼ÀÀ½¼°©¹¬²‹Ëª£´½»ÇÊÆ¼´Å¯ÃÃÒ¯¤ ¹´·­ÃÃÏð¹¯Ç«£½²¿Â¼«¿º«·®¶²¿µÄ°©º³®ž«Ù¶Ê§½Ê™¾ª³¢ºÖš±¥¶°½©Ä½¶Â¤µÊ°­²¥«³¹ ¼È¹¾¡ÃÀת Ä¬µ¼²¤Â³³»°Ä´¦¬º²¸ÁÅ¿´¬È±¶½ÃÀ¹Á¼¬Â¥¢µº¹§¦¤À·º©¸´Â¹ÉÄ»¶«¥³·¹¹Å§±¸µÊ§¸»Çº½¯ºÇ»±¡»¥»·©¾¢Ì°È¯®°°©¢¼­·Ã–«½±«®¡¹§¬µµ¶½´¸·ª»²¿º±Ã¶º±Ì³Îº§¸°Á©²¥º¤¹†®§³µ«¶³¸š½±±¹Ç¼Â²³¹¹œ²·¬¸¨±¯¥É¼®²ÅÅÁ¢¹¼ªË½¹¹¼®µ«´Êͺ§šÄµµ³´ª¡¶½Åµ½°Â¿°ŽÅ…¹¨¯³®µª¨²ª™³´®®À‘³®®¹Ÿ¬·»§ª°¯©¶ªµ´º¬¸¾¦°•±ƒÆ§ËƸ¯¹¯²³§½«Àûƪ¶¿¸®µŸÆºË¾º¶½±Æ¬¦¹«»¦±´ÏÀÃÃIJÀ²´¯³½§Á¸À¼²†Â±½Ä­¹½°Æ¿“®Ê¸¢Ã½¼´Ãµ¯¤¶¹±°´ÂƵ«œ¶¢¯Ì¾¬´ºŸ¾¾¼±¬¾Á«§·¯°´Ç¾¯Åº­Í²»µ¹¸º°É¾É¼­š¼­¨·ÀÏ«¬­¦¨Å–Í¡¹©‚¼ºŸ¸Ï³¼¿·¨Á¥¨°¥Ì‚´¼Á¯Ã¥¦½¿Â­¥ÉÏÄŸ¨À¹¾¹®ÏÊ«ÄÄ·ÔÄ´²©½“˜²¬¹¸¤´—»Ç¬¸®·ÁÃ£·¸²¾½ÍÏĸ´ž±¼¹ºÉžœ™œÁŽÀ¸¢£°Ë³¤¿½Á¹¯¯È¶·¸À¿´¨ÃÆ·˜¸¯¹¶´·Á¡¬Ï•³¯¨¼°²¬­Ý»ÇÁÇ®¶¶ËÀ¯ŒÇ¹¾Çµ·¡Á˼²ž¿Æ¬¢°®È£ª®©¹ÅÉšµ²ÍºÁŽ¦Ç¡È©Õ®²¨¨·Á´Ô׬¿Î°¤¸ÀÆÅÄ˼¾¾­±Àª®Ð¯¦»Æ¨°µ²®¤°©¢¦¯µ±º¿šº­«ª‰¸¤™£ÏšªÃ½¬½«£ÇÀœ©¶³››™È¹Á¨¦¿¬ª ¨¼Ž®µÇ¦¸¤œ¢´¬—œ­¯­Â«¬¹Ê¾¸­½Ã®¥Æ±Ÿ½¶¯½¸¶Ÿ«¨§—§¨›µ¡¿¦†Ä¹Ÿ¿À»Ž¢¸½­¯¨¬œ¦Á·²œÔªªÃºÐ»À±Âµ³¾€›ÄÊ̶·´À£·°ÃÇɲ´´¹¿§¹Á±’­²»Ï±­¼·¹ÀÒº¡šÈµ¿Ç§»»¯·¥²ÄÓÁ¿Æ¦ºÄ´°¯¼­¥´¤É”¸£Ä½·ÆzÁ©¿±´Æ¯Â»®Ï´‘¯É½š¯¸Ì¹¬¶ÅÈÀ¼Áº±Â´ÉÊž¸Ë¶³§­¢¸°˜«¯Ÿ«œ¯­¾ªÄÀ«µ§Äˆ³¤Æ²¿È¨»¯©©ÉÀ½»Ä¦¢³¦¹¤¼²±Ž˜ ˜º¿°º­¥Áµ²¾¡žÂ·±µº¨ºš”º¼©µºÀdzÁµ¾¨±ª¯Å²¶®µÁ©·Ž¨¸œ²Á¸­²¹·©±Ç¾¡¶±¤¸²©° Ê£«¾´«´ÄŸ«¥Á¸Å¾²¯¸»¸«­¡À³ººÌ¨¨¤™½¼œ¼´Á¬¼¼¬¹¿»¯ ±¼ÂÆ¢¼Àª°ÑDZ­½¸«¨»À®½½ºÈ´¾ Å«½Â¿¼³¨ººº¹º¾²Àò©»£²¿¡ª¹¸ÑªÁÎÓµ·À·É´²°Éª¿Àͯ²³Æ·¶Å²®Â¾Á´¶µºŽ¹¬”¥¸œÀ·Àɨ¹Ë·§§°¶ºÃ¼‹—¡ÃŸ¹Æ·¸ÈÂɬ›«°¢©®²³‹±À¯Ã·½§¦¨ÁÁ·“¹¨¬«®Ÿ§´±œµ–Ç¡¬±»®­À¿Ê¾ž²»³¸½¡½¹­¿½¸²©´µÄ·¦¿È½ª«µ¶Éƾ£ºš“ĺ«ÅÆŸ¥¡Å´ª¾Ú´¶ºÁ¾ÆÅ·£¨¬Ç§¾§ºÁºÆ´´³¸°©Ã£Á ¡¾««Á»Ñ¼¨²¹Å°½ÁµÎ¿Áº°»´¿º¯¼¤·¡¦»¸¿°Ç·«À¸Çα˱Àµ®¹©µ˜³‘Í–¶¶¼—§­¦¸¯ÃÚÁª³²µ¶¼°¶²¾Ê´¯Ÿ´Â «˜²®ËÁÐÀÐÆ­³«×¾Ÿ®³£¸³° «¾»¬Á­®º©Á¢¼­µ¨¯Ï§£À®±Ã´ ¢–—¸”ªž¹¡Î£²À©ž¡ÄÄ¡¾»©¯©±¯¶Ç˜´£²»®²ª•®©»°½À¼­£³²¿¹¶ºµ·´‹¡¤¼®Ÿ¡¦£»¸È¯À±¿¼©¾™ ¡¯«§³ ´²¶ÁÀ¨É°ÇmÍ´¹°¿¼«Á·«·›±µ³¤¼·ŸÇ½»¹°·³ººÀ©ÀÈйn®§¹ÆÏ»¼¼ÃªÌʸÀº¾¶´Y©°ª­É®µÁʳ¸¼²±ÃÉ’ÛÊÁº¸Â¨¸Á²Ò²±¢»¯Ïſ¬½³¸Â¶ÂÉÈ«»¾®Ä™ÇÆ¿ÈÒÍѵ¸½Â½È¹²»«¨¢±¶—ǻȦ̮¸¼º¸™¶ÒͰ­¸¹ŒÂ»°©¸¾£œÁ´²´´¾²¹£³²¦¹¥³Ã²¬±¨¦ ¸¼Å»Ç½ŽÆØÄ¢±Ä¾½º®¹³Ú±µ»°ªÌÀ¼ŸÀ¬ÉŸ®®¶Æ±Á»¸Ê¥ÁÆ»°Âš­­·¬Ä¹°ªµÉ¯²­´Ôª©¹Ç°Ö±³²³¹¾¾¶Æ©µ®¼¸«À³¤º¹Á©²Ã¸£º·¿ž¯«§Îµ´­±¦¦¦Â¶»À©Í¶³­Ê·µ¿¸À £«®¯§°­Ç¾¼Í¹§®µÇºÂÅ»¥¯Ä²·³Õ®¶´¸º¾½ Ñ¬¼´¹Ë°·¾¿¿¹ª¯¶¼¬»Ò¾´½¯¿­¡µ¼µ²Ã¿£±¸¬Ô¬®È®»½ºÉo³š ¹Î¶ºŸÄž¹²¶µ¶°°–Ô´±¶Ìœ·Æª™¹¤ÆÃ£¸Ã©•´±œž¨Í¨¹¡³µ±ÁªÁ²¶á—ʤ–±™™Ê¾©®µÊÀ­¬µ™ÁŹ¥»®É¿Â¬±¾¹Ÿ…®§Í­¤ÃЮ©È¾˜´À«¬²®»µ¢¾¤¹¥¹ª¯Â¦¢ÍƱ²ÁÀÁ·¾¼¹—¥´ÁɹºÌ­¹º¿£¼¯µ®¤È¹È¤È°¼¼…»³ãݰÇÁº¯ä¶Â´ÊƲ¶©ÆÉ¢´¸Åµ¯À­Á­È®Ä³ÀÅ«²´Ã¥¸¨Å´¤´·£Í¼´Â®­º­§¯®µ¾À³À¬­¾¹ª­Ñ¾ÅÊ»Ḛ́»Ø¯³Ô¸µ¶§¬²ª¢|«Å³Â±¤¢ÁÁ½œ¨³›¥·Ä»¨°¾À¼Ážª³•±¶½¨¦¹©¹´ÉͰ–µ ¨¬³¼³Ý°´®º¸Ÿ¿½»µâ«¼›±Ã¦Ã½®³»µ£½“¨ØÀ»Å¬²É¯»Å««¢Ñ²·Òκ¥ ¡¸µ¶À©ª­³›´¯¹´Âǰ´µ«–µ¨²­º¾Í«È­Î̵¬ÀÂÇÇʶ¹Î½¶Èºº¶ÖÈ«´­´ÆÄ½¾®À¹»ÆÎβ¶Å½¿Ï½Ä­Í×ÁÇεº©ÕºÍ®°´¡ÉÏ¢¶»ÔÕØ²Ë·£¸­ÌÀÄÇÌ®¶ÏÕ˧ʵ¢Å¸«ÇÀ½Í·¨¼¾·Ç«Òµª·Ò¿Ë®ºÄ¿¯´Ë¢Çß×Û«¯¤±º­Ç³ÁÆ®£¶¬Ë¸«¨¢´¿µÂ³¼Ñ·¾§®¾ÈÀ¼À®¯º¯´³¶¼½§Ò¤®°®¥Ã§¬ÃºÄ§Ñ«»¯Å·¨²ÓÒÆ¬ÐÀ©ÈÒªάÀ­¥ºÖ±¿­¸»ÍÐȹӿ²²­Â¬°¶ Ë®Ä°¨«Ë«È¼¸º¾Î´°¦¬¯¦­¢²Â¼¬«µ¨ÊÁ½²¡Æ¾¢¸º‰¶·Éâ컑¸Ñ¹³µ¢©¶¶§¨¥Áž³­É¸Ž¿£¸£š¦Ç¯±¤ºº«Å—®¿Î¼Ð½´µÂ§®¯œµ•¦µ®ÀÁ½¬§ÊÆÅ⩸¸~¤Ʊ¤¡ÎßĭĬ¸®½¨¶¨Àû¼¥¹Æœ°”°¤£¶Ì¸´¸Îœ¼²Éí¶;­¢´Ÿ¤¯¾³¨ÁÃÈ”¦ª´«ÓªÊª³ ¥¤»±´§² ©°£´«šÇű¶¼µ±¤¡´¢®Ìª´¨§ºÈ²«¯ž ›¾¯­º·´º¿¨°¼Ÿ²—¬¸¹¯²¾´ª§›«±¹²š¸³Â¬Ä¸Á¥¸¹È¯©œÈº¨Â¬»¬¨¯´Ÿ©Ä»Ÿ´¸½¿Â¦Éµ´Á±Ä¹¾Á´º¼­½»À¹¾»Åµ®«º¶³¯º³¬§¾¤»Ÿ¸·»À¼ªÃÆ´´®´¬®¥¡¤µ»³´®Â£Éɹ¨µ¯Â¸¤È·¬´Â¥Á®¬¹ÀüÁ°·²¬Å¥¥Ç§¸¥¶Ð§¼®Á¾º¯½¿´³¹º¼¿Ã¸½´«¬®¿­›¯ÍÁ®¬«º¯Â˜»º¿´¬È§Â¹¤—°¸›Óʸ¾©³p°Ç´¬—¯¬§¢¹¶º¶¹©µ«Ð´±¹¶¨§Ã¥¿½¼®Æ²Ä¥¶®³«¬¼ÁÀ¯¼º¹Ï¦°¼³Ç³ºÄ«ºÁ¶Ä•°Æ€¥¸›¾Í½§¼¼¸¨´½ªµ¢¶ƒº¯­·µ¼ªª¹©’­À°ÁȺ»¹¸±³²´¶ª¥½µ·¶¥¼Á²ÉÀɵ¶Ãº“´³¼ÃÏ»§½µ·©¶Áɸ֥»²­®Ëµ¨ž£ÄŠ®¿ÄÅ…±¾·«²Â¯µÈª­º¤“²­¶±´³¿¤¼²½²µ®ÊŸ¬È¼©²º³Æ¦Ì¾¨Ê«µ½¸­«³²¹Áµ§¶®½·¦¸¯¾¢´ºª´¶¬¶Ÿ®²Ä¾ªµ«Ã¶·¾¯¤¶µ©½Ç³¯©¦¥¾Ã¢°Ÿ¦ž­­¶³¼²¸À¶i¶¥¶¹¶—«º­½²®©£À¶²žª©¯¯·ª ·ª²·©½Á®£·¤°¶··¸¯¶¤°¸À¯°³¼ª»´«Â£¾ª¾Ã¨¹µ¯´¯É›­¶¬«¨¨¶±²žÈ»¼¶³¶Üʰ՞ºÌƪ¢­º¬Ä²®¸¹«½Á·Ã·¾µ¾ªË¸©¼º¹¼ŸÇ«®®®ºµ¨°À¶Æ²´©­´Îº©Ð²©¼­á±¯×²³¿µÅëÁ®­¯¶°··«Ð®Éðɰǣ­«Ð³ºÅ©Õ´¬È›±©²¾¸¿°·Â Ä²±«ÉÇÔи°µÈ®ÊËÅӯō¸Ä¶ÇÌ¿¶ÅÊŸ¶±ÍÈÐÇÊ¥´±×´±Â×´›¾¢¿·À±±ÄƯȸ¡«¸¾¨»»ª¶¼ÄǶ«¯§´µËµ®«µ±Ù®Åɹ¯º¢Ä³Çµ´±Ç·Ï·ÈþʭÇ×Çɲ·Õϳ֯¨¸¾Ì™ËÂÒվƪ¾Ä¬³Åº¦¾¸¾Â¾¢¶¬œÁ¹§¬Í¸À¹Â¹Ì©»¿°§¿¨³º˜½¬Á³¶¨®«ÂÄ­¤´·»È½¬¬ Â¼¯¬¶Æ½Ï³Åº«Ï¿À»Û¸¶¢³£¿½Ðª»«²Ä³¸¾´¾³¸Í¢®ª§¢£ÀÀÀ¾Æµ®º±¬¸§¸¦¹¿¿½º·µ°Äµ°¿½½©µŸÐɾ̖ϳ©¥£¬¯°¹¦¤´­®¬«¬«©·½­«¾¶Ã¿¢Ìµº–½¬›¿±±¸¯Ê·®±°¸¶²¾¸¨³›µ¯¹µŸ½Á¶©½´­K ¬²ÆÀÂ¥©¢¨¦²Ëĺ½»ª­Š¸³—½º¬š´¤Ç©ÕЙ³¿°½¯·²“Á©¿¬½®ž¶¤±¡ÄÅǹŸ¹¶´Æ¹­±Ê½º­Á±¼·µ¼«¹Çƾ°´®³¼¦É«´¸´·¹³´Í ¯®¿Ä§®­³¸½®ÂÇ›©±ÇºÑIJ¹¸¸Â¨­­¼³À¥¶»±¢´®®¦±³À¯Ë¯Ä¦¿Á²Ç̽¯²¾¬¤Ä­¹¬±·ªÂ·¿´®Ã¡’¬Ãµ¼Àæ±Å°µ³½Å¹³²Âº¥º½Á²²Ä³À¸É̲³°¶³Â´¸¼­¾Î–©´Ÿ±É³¬©È½¸°Ã¸œ«³Ãʼ½Ò²±±½µ©¨Ð¦«º¼¢‘µÂ¯¶¯·š§¼¯¯§·Ù²¡·É·µ°­Ž¹¤ƒ¯«¶›Á¾¹´»·­¾ÆÁ·¶¯»·ÇÁª»­Ó­µÂýĴ¸»¸¬š¹¥¯Á¿²¬È¹²À¼ª¾¿¢ÀËÆºŽ¾¸¶Â¸º¨±¼ «»¸¿µÀ¹ÃĽ°­¿Ä°²ªÎ¨¼µ¯Ç¿³°´®½ª°Çƹ³°Â¥¾¾®Ð¹­»»¯¼¶¶¿¿Ñ¸§¬º®¯¶Ä°©¾¾±±¨¼Ì±Â»½›»À¹À²œ«ÁÁÁ¶¸­È³¶À§ÀÕº¤º¶º“ ¦°¶£§£ £¬‘§¾µ¶¸¼›³¨®ÂŸ«À¹©®º»¯£±®¯Âµ¹µ´ÅÁ´Å³¸´“§·º¥³±ÈĦ¹²ÇƼµÈÆÃ«¶³¸À°²®Å¹¿Á§§ ™¨¶ª«ªªÈ¥£³»ÁòƲªÅ¬«µ¸ž¯ª·µ¹¡¡©Å¾®¿Á¸¸¡ÁǰɶÀ›ª¼µ¹´­¬ËÁÀ¿µ½žÆÀ÷°¿»¯»½¿¯°ªÄɫǬ»Ÿ¡ºÁ¼¼½¬±¬º¹¯½Ë½¦Àž·¶°¥ÀªÁ·ËļÄ뾻ð»Ç·Ë¡È¾ºÈ¶±µ|Å¿±ÁË·¿½Â·³®ÁÊÁ´¼³¸Â©¹Ê¼µ”ɶ·À¬ ²¸¾˜Ì¶µ»¥É±¾¦®Â¬Ñ»°Cµ¸¶°°°®‹Ç®´Ã¨µ§¾­­¤ ·ÂÄɰ’½Ò²ª¢ºÌ´»Áµ­ª¬»¾¶°¯¼É¯µ³·³Àƾ¥ÄÅ˱·²Ï®¾¿´«×ÆÂÀ­®¿«¶êÄÀ°µÄ¼²¶Ù¸Áª½ª¯¶¹Á®µ™Ê·Á¸©®¬¶£½¿ÅÀª§Ä°È½©Á´½µ¥·­°°™´»Æ³°­µÂ¸ºº¶·¥·Å³»³²°¯¹™Å¸®¹«»©´ŸÅ¦»¼·±Ð¶½³·¿ ½Ç¼Æ·Á¥²¶·»©Å­ª¶¶Á³°©Ë¹§ÂÀ´¸–°¹¿¶¼µÔÅ°Â¡ËÆ¶±°¶Â¦´Å¯©±¾»±»Îݪ²±¥º­‘¢¸¯ª°¼Ä¸Á½¸¶ª¼Œ£ºÇµ±°»¯´µ¤¨«œ³•°·½³Ê¿„œ™´¸´»¹ºÁ¶®Â›¢·Ì¹´ °ž ®Æ±¸ŸÑÁÁ¼º·°Àµ¦·²À¦»¸¹·¬°µ°Á·È«Ó´°Ì¹Â¼º®º»¿°¾Ä »¯Â®Á«“¬¥¸µ¼¯ÀÀô·®•³¯¶Å³»º©®Â¹Â¾´°ª³´®ª³º½­¾§¾¼®®È³®¹º¬³Ãº¶Æ®¦»¶¸–µ¶Á¨Áº¿Ç°¾¶Î¹©¯´µÀ¢³ªº§¿®¢½´¹¯¤¢Â´§»ÌÌ·˜¬±Èϱ«¼»ÎÈ´ÀÒ¶À¹È³¥Ã½·½¹¬¹ÇÇ°Â­Ð¾š¢¤©¶¡º¶µŸ¯·¬¸Ì®°¯ÁºŸ²ÃšÅ­­Ä¶¥®´µÃ¥ª³°¡Å¥Ê€¿«±ž´¾²Ê£¬Ã»³±¶··ª¹®Â¨¥·º¸Å³©Á›¡Á±È­£ °™«¶ËŸ«ª²·¾¾ÃºÊ»¦²ÄÏ»º³·Â¾¶£¾¬©ª¥¾¥·«¾¼¡¶¸¿´ÅºÅ¢¢¯¸¤¼º´¸Å­Æ¸ÆÊ¯±¯º´¶œÇÉ¢½ÁÄ®¥Ã¥ɳ¬´³¸¦¬ÃǼТ͸À˼¶«×²½Ï¡®Åº¹²¼¡ª·¢½¦¾¤Á¦¶´¶Å¾¯«¿Ë³Â°»ª»£«²°¬©¸Ê¯Å¹À·­¬³¼©Çε‘³Ëº³Æ«´º½Á¼´¢¦»¨ª®¿Ã¦µ¬Ÿ®À¿¼¬£Ã¸®®ºš¬É¼±º°³¶²·»×³²¶©­¾ž¶µÇޤ©Ÿ»¢°½·º¡¸¼®Å¾·º±¾ÃǺ®Ã­Àœ´· º³¯Â»¬žµ°˜¬­ƒŒÀ¼£Á³ÆÏ´­°§³¬Ù¾¸ ¤¤»¿°´™¸Æ¸®¸º½¹º¬­§·´»¤£«»º¸¹Àƹª©¾µŸ»ž«¼¯²¸»À°´ÄÃÀ¹«¹¿Áµ»»´Â­­··²¸²¿Ã¹»º²ËºÍ¥À¾°º¶¥Ç’°«¶À»®«®«£¿°Ä¶˜¢Âµ·¸ÆÅ­°¿ÂðÁµÅ¬­Ã³°¿Ä²Â½¢¸¶»Å¶º¸¼½ÃȫƵ³˜Âžª°»:Ë­»¡¥Ê³´¼Î¯­¹©²¨¶‹ÃÀ··Ä¦¸”®ž»±³¸¦ ™ž­»«²Ë¼ÐÉ¥µ£´µµÈ›¢°§®¯²¶±¾­Ö¿»º«·Ÿ¿­±§¾Â»±³Ÿ—³º¯´·¬È©½»¶¶½©´Ä¯£¸°¸º¦ÄÉ«¸ Ë³·¡²¸½··´µ½ÇªŸ·µÈµ»·²´«¶»Ì»¶Ð·¸³Â®©µº¶´¶®©Çµº²·¼¼±Ð´¸²ž–£¼¿Ì¤Î´Â²µµ¶¸¶Çº¥™Å·¨»¾´¹¦¾¿³¼´ª³“±Ã¸™Ä°À¶¸·Àɺ©Ã‰¦»¿¹°»¸»¸­§«¸Ò®Åɻŭº³±Ê¬Á¾¹Í°Ëݰ·³¶±ÂŷŬ¹¸³´Ò“£Õ¶°³¨À°¼½’𷫞ͥȫ²©È²¿ž¢Æ¨»»´˜“²²Å±™œ¸´±· ¨¨§µÇϴ׿­•À›Ï¨¼¦¬±¢¹°Ãº¸¢²™°¬µ¤±¦Å¼°ª»¹¶Ä¸ÈËÁž¨Ê³º³–´°ž§Â«³¹¸µ³»¡À¼®·¹È¿´©²º«¦¨½ªÈÆ©À÷§®¥Ïä֬µ»½¯Å¸²À¸µ¶ÀÊ©¶º˜²½·Éµ¡°¹¸·½³µ»¸¶½²°·¡Ë°‘µ½¹©ÌŤÁŘÀ«©°Äµ½¼Á¶»ÍËЦ¶µ¶¶³°Æ±±Á©Äǹ꯰¸»Ç¬È°À¼°±¹¿™³µ¬Ïœ¼¨È²¬¨³¾Í³»¥­ÌÑ·º½¥Ë©«°²“´«¦§­·¥Á·Ä½µ³´µ¹–¹ž½±Æ½¨±Ã·¹I¤»¥¾ÆÎ¦¨ºµ®©¶µÅŸÐ¬¾Â˜ª®Ë¸­²Áº™Á®­ÌÀµ»»®¾°À¹ª³ÅµÄÅ›¬±¨µ£´©°–¹²³½Å¬¹¸Î¹µ¯¼½Ï¹Ã³®·±º¾ÃÁ´¬Æ«Ì¢¸·¸œ´½´Ç¹±²¾ÇÁ¯½Æ¿£·±¿«Æ§Ÿ¯Ê°»°¼¥·§¸Â»» ÃÃÆ±´­»Ê²ÂÄÄ·«¨³¶È±É·ÝÁ¤³©¨Ë¬º³p¶±Ð—¸É±¸»“´Ç¤¹Å½Ç·¯¥·™¾¶«¬¶§¦¾²¬´Å´´§º­Ã¿¼­·Á ÀǶ¾¿§·§ªµ±¬¿¤½À¥¥¡½¯¿­ÁÓ¯»À¯¾“»²¶¿ªÅ±»Ã²¸Â»¶¸Ä©¶ÒºÇ¹¢ºÄ» Ù¦»½’͵¿Õ¾Ë±Á£§Í¸­Á¼¸ÃÀÈø¶¹ž³­¹¸Ì®žÊ¾®Ç«®³¨›É­·°¼»Â­¯§Ã·Â©Â¹Ë¬¿¯©²¦¿À»Î¿¦±¼·Ã½°¦µ¹²¬ÆÃɾ¼Æ¸¦»³Å´ÊÔļÁǼ»Á´¯×Áº¶Á±Æ›¤ÇÄ®ư±´º±Â·Ëñ®¹¯®£¸¸­¥ªÄÈ·ÏШ¯ÊšØ¶µÆœ§¸Ä¤À¹¸¯ÃDzÀ»¬¨Ï¬±»¶°¤²ÎºÖ£¯¥ž¾Ð¦»‘͸¶«¹°ÂÀ¼»´Ê°š°«´²©«»¼¥®¶¼Ï¹ž¥ œ¿½¼É±¸ª™·©¹¾Ïª” ¬¸¤Ê¹©±½¼©¾³š¬Â§¶¨¯¸¥±½¶Ê±Í¢¬·¤¯‘˲³§¹»Å¡Ã®«Çª¤¾»Ì§®²¨¾¿Á¬²­—¼Õų¢·¹À®¹¦¸¼±¤¬¿¾²´Àž²·«Å²Ä¯¹µ¶ÈÀ­Ä“©¼·»Å²¸º·¼½ÌÇ´©Ä³¿«½¸¶³¦Áª°´½´ÄÁµÆ·«»Ë°Âµ­•öÀ­¬¯º­¿°–¿¦Ç¤¤¸¯Ã¿¸½¯²¶¹¥¿·Ä°ÅÊÈȯ±²¬´³¾ÅÁ§Ò½²³ª¹½¿ª¡Àº·À”ªÅ³Ø©·º¼›½Áƹ³°¨ÅżššÉ¸³Ÿ¾Á±ª³¯µ±´µ»¯¤Ì¾À±²¬Î»«¹¹·¨ŸŸ¶¢Â¶ÁÅÁžª¾šÇÌ·²¸®³°´£™¶¶¦½¨¨º­»Å¬®µÀ±Æ¯ž¶º¸¿¼§±°´Õ¯ª´²“°´Æµ½»©¯Í«Á’¶ÎÀ­Ì¨­ª³¿¶²±½Ð­º¸¶¬Å›Ç¸°³¶Â“º¼©¶«»®°œ©Á¶È±®©¬¹Î§ƽ§Ö·Ö¦²ŸÊ·²Â¾±³»¼±Ð§½½ª·­Ó»Â»Å¯¸¿ÂµÉ´¶Ç¯µµ­¼°³±¸»Å²¸ÀŢͻ®¥ÙµÇÁ˵ȿͭ´»¾½Ò·´Â¬Ç±³È›¨“¸ÄÏÇØ¶¯£¯µ¼¶¾ÕЫ´»ÁïÕ±ƻ¸É⟲¡¾§¾Æ°½°Ã¸»²´Ä°´°··¹Ç¬»¦×Ì­¶º¤ÂÃǶ·¶«³¹ÀϹ¾¾¤Å¨ÀźÅʱ²Í¸¯Æ¼²ÃªÁ¤·Ú¼½»«ÁÔ¹«±Â»¹½À°½­¾«¹¼¿Â¾Â½¹½¨¶¹Á«Äº±Ì¶¥Œ³§›¦Ä³¶™¾½Ä¨Â®Ö±°®°¿º¹ÃÅ»·Ëį¬ÂÆÉÀ¿´§´·¿¸»¥»’¾Ĺǩ¥°¾¼®­¨¶º­¾Ä¹Á¹”ºÈÃÁ¹¶²¿··©¿¹­¾«¬«µ³²¼±»¶¿ª®¿ªª§°Ÿ³««¥Æ¼¨Ä¶ªž³·GÀ¹É¦¾¸§¿Ïɲ±´¦´­”©«µÒº¼¸Æ¦µ˜©É§¼Å¬¯§½¾«·¯Ã·Ó¯Ê©° Ÿ¿¸¿¹ÐÅùµŸÃ´¾³Â¿¹«ª¾Å©°¶ ¶¼¡¶¤ Å™¹³¿¯ÁÀ’¦²µÊž½¦¾ž¯Ì­º´Æ¾§­µ¼¶¾À¨Æ²¯¯ª­·¯³º¡Â«°¡ºÂ®ж¶©»­³¸ž¸¢µÀÉû³›¾¹¡­­±º±µ¬±»®¼²¹±³°º¼¿½Ã´³°¶®¬¶È£»½Â¬²¹±¸¶¸Ä¶²º ¼··´±Â¯•½¨¨µÉ½µÃ´Â°¹¼º±³©²¯±Åº»§³¶Ï·´¹º³¾¤¦²½²´§µ³¥°³¿¸ˆ·¦Ã¦Ç§­­¥Â¹½¬³¶»¶Ÿ½¤½Ä§Â³½°¬¯¹™Ì¶¤Á·¬®“°¿©¬±©É°®¯ˆÃ»¼·Â”›¼Ê´º¯ªÁº´·¹®Î²°¹¾®³Ç©£±Œ´Ã¨À·¯°³³¬Ã«ª™£Åµ«“¬©È¶µ»»µÆ¼ªÁ¼¬¶µº··¼¸½»ÄºÃ²­½·Ä¯½¹Ì¼ µ³ÂÁ¬µØ¶ž­Å·­¼­¯­Áǯ˨¾¼­²º¸¿»¼´²Á°¶½«°Æ³¶¸¨¹©°¶½»É·´¼´¨¾«³§·µÈÊ »­¸­²¨µÃƩǩ¨»­°±–»¬¯ÂɶÀ¾³³¨º¡Â¨¿Ä³Œ²¹Æ£Ã³›Ã²¤´²Íªš¯®¨ÔÉÁ²“ĘÁÉ£“Ƭ±¦µ£¦§³Ÿ§·Â·¢·¡Äø´¡ºÊÁ¬¯Ë»¶ª˜Ÿw¾¥µ¨Â¹¡¾Ä°¦¶¾¸­¥¿¤®¹µ®´©Ä ¸Ä­³·ª°Ä•·œ¬È«¼¨¡Ãž·ÏÁ¼¹Â©¾°ºµ¼·Å­Á´Â¹Å¬ ½½®Â±¹œ»±ÁÉœ¤šÕ°¼¹°³»­²š¬º½¥¨À®¯§¹¸¸È­»ÃÇ´ÆÀÉ®­ªÃȸ½Å°Ã²ÄÈÅÈ´®¶œ¿º¹Á¯£œ»Éµ«¤¼Áɨ¤º¯¸³Å¯Â“²ª®²ºœÆ£ÅÉжij¾Å€µ½¸²²£¨¤·©ÅÁ¹µ¯«¼À©¹±¡ª¸Á§º±ÖÀ­´´¾¬¶¿¾¼±§Ä‘¤µÁÄ¿µ²¥ˆ¶¹¸Ã¿¶·»¹¯½ÆÒ¤½¬¾¸¯²¼µ²¸•Á·º­¿°¬¶É¨¾µµ®¬»­ž´½ª×¹»¨©¸Ä¢À“©À½µª¹Ç¸½—·°¿¬º¤±¶¸¢´º°³¦±Å¨¸µ¶º¿º«¥°¢¼®¸¾Æ¾¯´¹Âµ¹°·¶¬°¶À¼²ÂƩĶª©¿Ä»Éª®Ï¹¹·¼­Ê¨­¿·ÀÁµ¹¸·¶°¹¯¿ÄÀ¶Ã¸¾·²ºÀ¦­·Àº¨ »©šºªÆ·¦Ë·¶©¶·¸¼´‡³ÇÎÒ»ÃÅ´¾«²Å˶¹©º¿ªŸÂ¹±¥µ¸Æ¾¨º·¾®¦¼¾¯§Ô±½±º¬¶­Ÿ®³½¹ÀÓ°¼¸ª¹¯Ó°»°´À¨™²»½·µª²µ³²¯¯”®´È£¸¶¿­¶Á³¨ŸÊÉ ÀÅ·À°­ÃÏÃÆ¸ÃÅÀɨ©¶£½«`¹¿²Á°¸Èù«¾±ºµ§Ã¾©§š·³®¯±³·”Ç´¿ª¨¼µ®º°ÁÁ´´ÃµŸÂ¸³Â³¿Ä¹¨¾Å£¸Ä¼­¦ª²ÀÅ´­¥¹²¯¼¸§µ³œ¨®¥»®¿µ³¹Á»®§·¸¼Í³Å¢Æ°ÄºÂ´Ð´¼§¬½ª·§³°¸¶±¼«ª¿¢Í°Ä¨¥Ã¿¹Î¥À—™§º°Æ¼Á½Èµ¨²Ã°µ¹¯£œ­º²»Â¿¹¥¹¼Á¸¿Â§±Ÿ®‰®´¶«Ÿµ¦›Îºœª»ºÆ½¶´´°¬»µ¾«Á¿¼”£¿´¸Ã¡¬´Ã˜Ê¬²¾½»¾»§Å²¸¨Àè« ¦»¼ÌȘªª²¤·§»±²¼¸ µÂ»»«½£¤¸ªµ²›¹´Ÿ¸»–µ°²¼«c·¡«¯¶®ÄšÉи¬–¼®´¹Ï§É¸Ä®¾¯Ì·³½­¸Î°£º·Éª·Â¿µªÂÁ³¿Å¤¬Ì¹Æ¹¾«Áº½¼·Å±­³¹›À²¸³Ã½²´ªž°ÌÈ¢Ö´¡É³Äœµ¸Ë±ÈË»·ª¿Ã¯´Â½»¹«À¯®½µÅӴż·ÈÆ©ÈŭȲ«Ì²®¢´ÐÍÆ³¢ÂºÞ¯®¯ÂϿָ·Æ³¸Å£»ÐÑÄ­³ÆµÓÈÕѰµÒµ£½ÃÓÎÐ¥¹´È¶»¥¨Æ¤¼Á̺ÉÇ¥ÃÄÊÆ¼ª¬ÊºªÙ¸±³Æ¹½¹Ã§½®´­µ³·È¸á®¾»²²Ç¢Ç£×÷·É¹¿µÄ·ÁòÒ×Ǻ³§Ëزñ®¸¬Ü†ÛÁÒ²¼Ã³¶Äí¿µº½®Ä´²µ±ªº¼°¸¹µ´§Å·µº³¾º¬¾ÀÅÀµÀ´‚Æœ¿Ž˜«Àɸ¯¹¸À¼¹»©´·²­ÄÀ­´¹Ë»£Å¹¦Æ²Ã¯Æ½¶­©»¯¿Ë‘¾³ÀªÄǰÁ¦·©©“¬»·À­Ã¥¨º«·£Ä¹¦À¶Æµ®®´¯¸¸›½¼µ¶Æ¼¹¼³¶«·µ©¦¯£¾§½¼²º½Á¤±§´·Çž¸±¯¿¬Æ¼Í¾²½š•šÄ¢Ä™¸À“œ¾·Ç²–Á²¶´¼¹’½Åµ»¹Æ¿±±¿´¿¼²³´µ¬Áµ±·ÄÂʰ°·|±Ç £³­’¬·Ç©Ÿ¾¼¦ª´¼²Â·¨¼¨¹³É²®ºž©Â´¯³›¨¸Á¯Æ¼»¾´¦ºÁ²°ŸÖ­Îµ·Ç¹¢¾Á¾«¼™À©¥¹²À·¼¢²À¶¦¯¸œ§Æ¹¶Ï´ÉÁ”ÁµÀ¬¶¥¼Â®°¾ªª°¬³­Æº¹©¯Åº°È²Â¹ŽÄ̬·²Ã»À›¸ººÅ¶°¿§¡°±Î­ËżÆÐ·°¯·ÂĽ²¡Ð¿½°Æ½¿À¹ªÂ¯¶È º¨¸¨´¹¬Î»Ç‹¸³ÄŸ¢Äº¹¯²¨¹½±®ß¹±®¯´È·¦¹·¾º¬µ¹Â©²¼¯¢º¹¼¨ª±Ã°´µ¯·»°¬¥±¼§ÊɧÁÈÁ¥¯°º·¦U°µ«´º²Ç·»¹®·¹­Ÿ¯·¦½Ú¹Æ¸°¨§Îżǽ³¯»Ñ±³ª»¿²°¼Á¬¹Å®§±Á·¯±¦°¾»µ¯®µ¯ »¸À ¼Ã¬½°½¹Æ ¾¹½¬º­§¬´¼¾¯µ¤½º³§ÀÅ»Á·­»²§¸«¼ÆÂ´¤Ó§µ¸­¹·Ä¨¥Å°Å¬±®¸µÍÆËµ³±šº¤¿Âª´µÉ£»Á¸²¼µ»½£¥¦µ®·±³»¨Ù¿´³­«±¦Â³©¯£¯º¹µ­µ¼½º¾©¨Ã¯«Ç»¸·©¥Ã²¯ Èžª®À°Á³¼Õ¬§©«¯¶¬Ã©¢Â¾¼½±ª¼¶Ç°¤°¸¢«²¦ÀÈÆ¨¯¶¦²¿¿«°¬±±¹¯³ªË“½¢¤¶®…½Ë¶¼¿ÂDZϤ´›ªÄŸŒ»1«¸½µ·¦µ¹¹®´ºº¯ª¯²­›°º¯º¯ž±±²²´¹Ê¾ºÄ¤¥³¿­·Ã®²«¼Â¯¨«½¸¸ ±¯ªÃ·É·Ç°£°¿¾Ë¿ª½©¼·³º²¶¹²Ã´•ËȪ¸À²¯«³¬¯¡Á´¼Ô¦®µ¥½Õ¦ÂůÀͨı»±®¿¿¥©³É·¹Â¸¶¤³¾»Ñ° ¾»¾»¹À¯½¡´¼ªÂ¾¹½³»Â¦Ÿ©º¥¹¿º¯¿¹²¥¨¯²ŠÇ²¥³²Çºº½®´¼¯À̲ɖ«»Ä¡¬®Ã§¼¼–¥™Ÿ°ŸÅ³¬µ²Á¬ÃÄÄ¡¶¦¬£·¶À¶µªº«¥´Ÿ¾š¸®¼´­»©©Òº¨—¶Ïƶ¯Ã®ªÇš¾ ÊÁ¿²›À¾Ç✺к¸ÄÉÊö¶Ö¿¸¼¼­¶Ê¿º·Å²Ã–®¼ÀšÁ¿¬Ã¿¼¿¯®½¾¶½²ž¸¦¤œ¬Õº¾±Á¯£¶Ä»²½ºËµÁת¿À³¼Ô³¯Ç›Äƪ¹¸µ¤Ä´²­Ÿ»³·É¼¾Õ¾¼¤»¾¥¯½›¯µÄ¸§¸·±¿®®»¼·œ»¹¶¾Ð·Öœ½´œ¦´Í˨º·ª»¨¯Ãµ¼Îª­­»½Ä¬²²°´ª˜«·›š¡¿¶µÔº¬Â¼ªµ­¾¾³²È²¹µµ¤¿±ª·¢«©´µ’¥¨£µ±Ñ¢¦º¢Ë¿¤¶Á¾Ç¬ÀŸ¯¸¥¶²²¹Î»´±Èµ·Ÿ´Œ¿°¹¸¯Ê¦¹£«¶¹ž§£¸²Ï1²°Âš«“ÆÄÁÂü¥¹¸«Ì´˜Õ´©³Ç¼¤¦ËºµÁµÅÇ8´µ³¶ºÇ¼Â®³Ä¾Ç¼¶º½µJ¡Ï«¸¯¾¨Á¯±¸·®À¦¹ÃÒ¬ÄÀ»Ò·¼³ÁŽµÂ¢¼ÁÅ ¯¦É£¥¶¼½Ä«Âü̴µº½³®´¢Ã´¹ÆÀ˜½­¨Ã²Ø¤´¨ÀÅ¡°É°£«¥¸©¾Ê­§Á¹®Ð¿¬ª¥Í­§¨º¤²¥”»±£µ¨·´Æ©¾¯¶¼¼¡³ÇÜ´ô³¥Å¼±¾ºš¬°¾¥™±Ð°±­Ï« Ò»³¬»ª¶§Ì¶¡©ÈÄͽʳ°¼¦§¼±¸²½£Ÿ£¸¡¯¹Ö³³©­È¿°»¤¼³ž¾­´¿µ¡ÈÁ¶À¹¶»Äª­¶¨±ÂÁÄÆ»¶·µ°«·½¢É°¹±Ä¾¹±Ã¯©ºÈ¼¹±®µ»­µ®¤»­ÃµÃÌǬƾ´¹²ÉÁ̾Š¸Ç¦³´Ç¢ªº´°Ã¾¬±¼­ÄÂÆº³Ê¸µÁ»¿»´ª˜ªÁÌ¥µ¾Á¿¾°¬ÇÔ®¹Ë½µ®¯Ä¸µ¡É·Á´¬™¾­ÊÁ¯¶±£·¯³»«»½¼¹¹ª°¡»Î§®±Å¸®¹·´•¸¬„ʬ¶®³³¡ ›Ëª¯·À¸¢¡¡®½©Ê±¾¸¶¶Ê¸®µ¼ ¦¡¶¸Æ°¿´ŸÎª¢µ·±ÃËħ¢»¯¼¸²·­ÁÁМÀ¿´Ë¬¥œ»·¯·ž­˜Ô¤µ°´Ì‚´Í£¶°Á¦¯¹§²Çºª¸³³ÈÀ³®¡®Á¿Ã¸¥ÆÔŠ«Ñžž°³¼»¸™ºž§È¥¼³ È᮲À¢À•°¦®ÌÃĪǯǶµª±º¸·´¸‰’ÁÁèÁÆÀ´°¶±·Ã½¾ÄÃÅÉ·»»»°³—µ¥»«»ÀƵ¯¹±Ê·À¼Ê§´´¶Ã¨½Ã¡¦§£¤¤Ê²•DZ¸¥‘Ä»¤  ¢±²¸«©œ³«¼¾¯§µ¡¿¥¢’«Å¯­ž·¢º«™•º˜Á«¬¤¨¦È¯Ÿ™º¹¥¡´©™·°°Ÿ§£ª¢¬´¾¯»Ãº±¶Ì¸ šªŸªª¦¶¿¹š°Â½®Â «­—¥«½§­ž¬¦¼µ­°²¯©À¸¾¼À«¢®ž»Ì¦±¼¦ÁÁ½·Ã̼¹¹¿¿§­µ§¬·Ã½®²¬À»ÂË»¾¿Î°³»¢²¯¬¸©¦´Í²Á¡ÂµÂº¶¿¸µ½Â¨Ì¦·¶—¶²¥¿·º­¶¦Ì§´¯¬ªÂ´µ¶¸¢¸¼ž©ßÏǸ¤ÁŸÂÃÍдó³µÇÚ¶ÀÆÇÂÚ¯£ Î¶²±º¥®µ¼Î¨©©½ºÅ²§¢¥°Ð»À·žÌÀ¾ºÍ°Ÿ›±©»²¡š»¾´BÇ®¢°¬¼«ª¦³¸£É²§±µ³¿¸È“¸¬À®°¨±³´­¹º¹´·²Ê¨¾´·´´ºŸ°°¬¡Â¥­ËÂʾºµ¹»£ ¿¡±©Ó³¿È¯ÅÚ›ËÑŪ¾³ÈÃÀ®©®ÀƼ¶°¾¶³¹®Ã´ °¹»®¸²¦¤®´±Â¾Ðğȸ¶²°²Ì­Å³Ê¯µ¬µ“¢Â¶²Ã¯»ÆÆ±·¼Ã¥³Ç²Äµ¨É·°¸‚¨ÉÀžÂǺǺ²¸È®·¢ªÌ¿­Á­°µ¯º´Ã¨É¸¬Ëª®¸½Ã½Æ©¹¸·³¬»·Å›¸£ ­º¥²¨·¥ªÄ¥´¨°º§²¶¯°¯¶³³º©µ©«§ÄÈ«¥· ¼«¥±›À±Ë©»¶³¥Ÿ¨·¨¬¶¹…ž±·¨¨©ÁÀµ§¿Â­Æ¬¸¾¹¸ª°Áº¾¹ªÊ½­¾º”¼¼§¯¤ª{Žº¶¸¥­Î¡À»œ¡Óµ®¢°¶¡™“È®­·¾»Á¶±ÃºÁº£¹µ»Â¦´¯¼¼Î»±À®ÀËþÁ¦§Æ¬ÃÀ³¼®Å¹¾Å±°¸Æ²¹¿ŸÀ®©¶À³Æ™Í·¬É©Í³¾µÈ´Â¿Ó³¸Ÿ°¿¡®±·½¼Á³³±¸Á§Å¡¿›¯»Á¶É³À¾¸«¸¶¬Ï»»Ê½©²Ã¶¼¹Ì¿¯Ä¥¶¹½Ç­Äʲœ•¥¶½™š»¢È«ÆŸ²¨´Ìö¶¥¤É¼¤´»¾®®¤­¾¶¯¦°¾–²´µ¶½¼¹±Èȵ½·¸Ÿ§½º¯º±°ªº¸°¸‘¤¶µ¯•—¿·¼Ç·˜§°·º¹ž¼¬±ª¸±¹½®Ÿ»²³¤¼ÃׯÁ¯ É¿É±›Å¾±¿­¶ÁÇ´ÆË¢ºŸ´»µ½Ãµ¼´­¹¯¼µª¨º°¼¶«·¹Æ¸°²ÂÄ»·©­¶¬¼²¸¸ªÄ·¸Åº¬¨Ä°­ÅÀ»«¬ž»¦©²¹´¬µº¶¹µ·¡¾À¡³µ²¾¥¦¼«Ã±µ££µ°»§ÃÄÉ´½¹¾²Á¹Ê±¶®ª±º¹ÈÀÁȽ±·Â«Ãºº¶»Æ»¯½Àº²Ó¶´ª¾Â´›¢¹µ¬ÄÅÉ¿³º®¾©²«±Ç·¬ºÑ•­ª™«¥µÇ¦½¥Ð(²®¾Ë¾š®»Çš©‹±¸¬±É¥±º©¼§¸ª¸²»´½Ä·³Ôµ³Áز´±¢Òº¨­—³¼­¯±œÁ¯¸£±«Æ¸ÉÀ·ÂÆ¿žÆËɜִÁ™Ç¹¾¾ˆ·›Çµ«Ä¾¸À±˪¦¶Á ×ˆ¯»«É›­ÄÕ³Þ³ÑѤµÞÔÁ¯¸¼Ãµ—Æ´²¦Ä»ºÅËÂÄ­°¬Ã¸â¡¿°Ä§˜µ¬¶ÁËõ¥°{§­¬½½¾©¢Ñ¼¶½ºÉÉ‘²·£´˜¹®ÃÒ²ºªª¶Ã²ºË¿ÏÒ¬×Åݽʴ£¬¶Ã³ ÁÉ©ÐӸĬӶ¥¿°©š¼Ãµ›¯­­Ã¯¯º‰ºÊпÕǹ£¯»Âº¯„­¹º¢À³´¸¸Ã¾¶¿¯ê¶¨§­Å°¯Ä½ÆµÑ͵ÎȶÀ¤¯¬«±­¿Ç¨¿ªÀƒÉ¥Í¿·Î¿¶»š»«´­·Âº³›¨Ã¯½»×±ºØ«©×¾®¶¶µÄ®¿ÂÀÓ¿«¦³Ì»½²Æ°Â·½¯»ÏÃѾ¶ÀÄϸ¶¹Ï½»Ïº¬×»¶«Åœ¦µÕ´ÃÂÀų°¹»·ËÅÃdz´ºÎµ®Õ²½ºÍºÅ·¢ÀΥ̸Ñȹɽ¸Ú¥À˘ɮ»¯ÈʸÏÂÞÓ¨žÚ°»Í¶À»¹ÂÆ¡²«¼Ì¦½ßÀ¾³ÀÉ÷§ÊŸË¼Æ³µ´ª´Ñ¯À´ã¼­Ã¯´Ä̰ɧ©ª¯ÁÅ Ô³§²·¿ÊÏÄѱµÄÎÐͽ·ÎÊØ­½¾¼«º°º¿Â²¹×¬Ã²Û°ª¸Ô¼Ê®Ð»¯ÐÔ»²Ö®Ä¯¾ÀÓÄÀ·¯«”ÄæµÆ´É­ºÄ²Ì½¸Î°Úʰ³È¨Óƻּ¼©½©«¦·È¥ÀÈ·­ÈʹȨ̧»µ²¬±²Ü¬ÇФºª£ÀϽµ´ Ç¬¹´Ã¼º¦·Ê¬¡¸¶¾Ð©Â×½´¢´¸³›µžÏƪ°´¬¶µ° Ç¨¥Ú¹ÙخȻ·Ã¸¿¸¶·®®ªÆÄ¾²­Âܽ¶¶£Å¸¬µ¥Åʵΰ±À´¥Îß­¨­½ä¾¾ªÖ±º©«œ¯ÒËÈ;Èϰ¦´Ô®¨Ê¼ÈÏØÌ¥ÀÇÆ¥±°³µÊÓŶ¾²À´·°¿”ˬòdz®Ã¸³Ï¬³¼¼µ¶½®Ý¬»¿Â·´­µ±Å¼²±Ìе½ÀÕÇÁ±Ä¸¼µ¸¯­´½´¯È»ÀȜɻª˵ÄÌǮ߯±—³ÜÁ½«ë¨ÇÅ´ÅÙ¸º¸ÂÈêȬǹ¾¶ÄÌÅ­Ç¢«È½ÊËÌ®ÆÁÚЛ´À¾¬¿·¾²ÅØ­­ÈØ«¯À¬ÀͨƧÀ·¿¾Þ¬Ç»ÇÄɴǺ®Ó¼¢³¯¼À¨ÃÀ¬¡¬¾Ç»ÑºÆµ«Ôɶ˳¦Á´°ÜÉÃÓ©µÁžÉ½§µÃœ¼×¿Ì¯¯ÙÀ³«ÄžÓ¿Ò¾±©©±Á¯Â ©¶Ä̲¤Í¶¦¢¯¿¾¦«¾žà°½¦²¨™Ì³¸¬µ²À¥¿ºÇ’ºÐª«Ê¦ª©©ºØÏ¶µÓ¤©°Ã³º¬Ñò¹»¨Çßľ¦à®½§´²Ó´»¯¼·ÈÉÇ´ÐÔ¯¾´¯­´µ™°®¾­°±»³Î¹¶ª´Áªµ¯¸°·¹ž¬¹©³¿ÂÈ··µÄ¤º­Ä¨¤Á¾­°¸¿¶¾³¸Ó°ªº·ÂÆ»¼²¿¾»Å¦²·¢§Ä§º·½¼”¦®·º²Å¾•ÄŽ­ÌÀ®È²²Ä»Á­š´¼´¦·¸º¼ÁëƳ¨ÅºÀÎÜ·¶¾¤»²»´£²»Á­’¢Í¾¸ÇÉǼ³ºÖ½¨ÌǺŸ§®«¯¾ÌÊø¢¾­±È­œÉ§ª¦½¬¹¯ ¥Æ±¾¦½µÆÇ¼Ì¶Ê´›¼«¸§Ã𝶲´Æ¨Ä´£½±£¤¶½¨ÏºÑ°­¹Ï®ÍÀ¹¼² ËÖ¬ÇÉÆ´¹ŸµÒ¦«¡¬ÇýǰÏv˳·¢­µ¦´¾¡º©½¯½¶¾¿·¯¹¿Ì‹®›´²¾ ´µ¶°µÊÈ»À¸µŸ¸È³¿¿²§²Ã¢¿¿Ê¹¬°Å·ª·¾Ç¬™¼±£°½±¸º±ºÂ¢Â³¾¯ºµ½ž¸Ÿ¨¿¿¶ÊÁ¹ÀŸÀǾ¾Ã»À¼¼£À°É¼µ©À×É·ÃЬ³¼¶¯ŸÀ¨½Á³··Àªœ¶ÆÕµ§º¼Ö¿¿³¿©´º¿žª»¸¡³·Å²ªÎ¯¾ªÂµ´£©¿¸­·¤¥”¼Å²±¨º¤®´¢­Ëº¸Ç«ÄÕ®¢µ¤±Ë¢Â·±¸³´Á¸«ÇÁδ™ºµ­Ä¿¶ÏÂɱ´µÀ¯µ±°™É¼¨²Ç«¸·¨´©§¯½¬¿¸¹Â¥Ë©¦µº¹Â­¾­­ÂÄ…¾¼«W¢¼´½±²²«·¹Ã¹¼Ã´¾µ¬Çº¸Á°£³µ¸µ®ÇƱ»¼¯Áº³¦³ÑÌÀ¨­¾©¸±Å§Ȧ¼¼Ï°±²¨·º´®·¹ºÀ¦¹¯Ç­Ã©²´°»¾´¶¹¢»¯À¾¥µ³µ³¨ŸÃ̸ֳ¥Á¸¤¦½°£­¢ËÀ¾¹¨ª£¹®»´Ï¬¿·Å¿µ¶¸›³¼µ³»²¨¶Æ»»´Ã¬ª¶¹­¨­¶­·²±ž¡¡¯­·³²µ—´«ÉÑ«²°¹¤¼º¦¥­®Ÿ²­¢›ª¿´½³Ã¹¼¾½É¾©±Â¥›¸¹«Ä©µš»´¢Ñ°¹À½°ž¹¶›´ª«»¾ºº·°›—°§«£–·›Ä­Áµ§¬µ¯¶²°«¢¸¢µ¨Í™µª¾Áž­¶Ó¨¿¹Â°µ¬Ä¶»À¹º¨µ¶°¬¹¶°Ã²µ¶´¸Â”°µ¦´›»¶ÆÃŸ¼¸±Ì™Ç¸±±¿Ï¼¹¿±¶¨§±¿Ë¾¸ª´­¼¯³¾¼¤¼°wľ¸½¸Ÿ»³¯À©¯·ª½¾´³¿´¶¼´¿¾±¯²¯¹¹¯ÂÅǽ·Å¤®° ¿ª¢¿»¹Ë«²Ù¾±º£ºŸ²ŠÆ©¦Â­³¾£««Ì¬±Í¸œÄ¼¶¬°°ª²È®¦¸²²«³Â¡©ž°ªÇª¥¦º­®Ö¸£¾¼½®©§­ÃÁ°½£µ¶ Æ°¯µÇ±£Á¬¡½¨»¤©ºº½Ê¬§¯©·ª¢·¦³Æž¶¶¼­¬Â°½Í£«Áµ»§È¾¨È£³™¹À°¾®¾»µ®Á©¾»µ¸´Í»¶¼Á±¾¥²³ÆÃÊÁµ¿®¬µÌª³¯’½Ì¿ËÇÑ®¶ÅƱ³©È±¬¼¬Ê¬¹ª¬»©ºÃƼ®¸Ò±»¢¥ÂÀ¸´¿µ­°³Â³ª´¼«¶ªÒª»¹²³¨Å©²Ä°¬œÈ»´¶«Îŵ¦Ä½É¬°Àƺ¨À¨¶®±Î²§»© ¶­§µÆ¦—ħ¢®¶¿µ¬Ê¹µÅ·¤¾½¬ª¶µŠ±U¬½§¦±«´¦±±¿µ«­»¼®Ã£§É™¶ªÆ·—›¡¼³¤¨¹²±¦¾º¶°¥¬³°„“ʪ¾¹¬¼Äµ£¯¤«µ ¶±­Ë°Å©Ã°ª°­»®¨–µ²¥«˜µÁŹ©·¾Â¬¶Æ»½®§¬´Ã­­¶·²ÈÁ®¸®¦£±½¬Á¬Â¶Ê®°Ê¼´´«º·Ã±³¦®À³¬²··°Æ®­¢·“»ÀÁ²±È¾¼²Ç¢Êµ¿Æ›Å®¸º§¼¨µÀÆ£°ÃªËº¬¯·Ä²»¶­º¯—µ¼Ã¥´²¼¶¹¦«Æ®¾¶²º«¶½ÔϪᬩ¶¨»¸¼·¿®¯µ¶¾°©ËȤµÆ§¶ž­ÄÊÉŸ©Æ­³½Â´¾¬¤¨µ¥­˜£¿¼›½¨¼§¯Ì´£·®µ¯©´³«»¦¯°°®²³ÃÁ–¼³ÖÅÀš°Á°Èº¨¯¼ÁÁº}”®Ë©šµ¼£–´³À®ÆË»¹±²º¸³³Í½«À¨Ð¹«½»°¼·¶Î½·¾»Î¨©´µÈ·­Á®»©½°·µ·¾¹Á¹²­À³°Ç³¾Ñɹ±¹±Á¶·ª»Åʵ®´¸À¶Å³¸ÇÉ´Æ´±®¼¶¿½¬©´±ª°ÁªÂ۵µºŸ§¬ Åɺ©½È¶¼ ÄÉĸ½§Å¾Â±¢­º³»ª¯È§±¾À¼­Ê­¯·«¼³Ã¢¬·µŸÌ¹•±Ÿ·³À°Å©ž·‰¼¤°«ƒ·½ª­Ç¾¥É«¸¹ ¨« ³i¥˜¸¹¶­‹Ë²¦©Ø¾¥¯§±¾£¶¾¿¤Êɽ¦¹¹Íʏ½º¼Î­¯¶ŽÂ·°±­¡·¥¹–“¹¸¥µ¯ž§Ø¿¬´ÃÀ¹º²ªÏ¾°ÍƵ¿¶®°¢¦¨¾ ¨²ª¹Á»¬¡¬·½³³À­½Å´³®µ¹§§½¹º«©«´¿¸£¾¼¢Á—ÄÆ´Ç²®Â«»ª»´½Â£© ¸¬Å»Æ½¸À®Î³ž¿º½­À³Æ·Æµ¬°¶Å¦½º ¾Å¹–³Ãƹ¸À¬Ä¸²‘¯¶Æ¿¯Ë«­³ºµ¿±·”¿²´±Í¦·ÄȾ¾¶°ª³ª®¬¢²œ®ÄÌ¥¶¸´­´½¾¬¥Ä®Å·°¤»¯±±’©·À¨¥½©”¿Çƹ®·¼¯Â´Î¶¾ Æ±®Ë¶§¸É¿œ³°½´£©º¤Æ±¨µ¼Á¹«®½±¬±³¬¼˜°À_¹³¶¸®³³¾¸¬¶¼¿²¨°·›Á´½Â«¸«±»Ê¥¿¢À¾©¼Ì¼³ÁȾȷ¹³¸·¾·ºµÁ´Á°»­µ±­²»­ˆ±µ©Â¾¯Ä³»Åž·»´­Æ¾²´½Ã­«‹·¿¸Ç¹Ã³µÂ»´¬¶Ÿ¸¼¦¬©·‹µ’¿±·É¶¶·¿Ã°¶«œÅ±¸¶Å¾¥¶©µ¾·®¤½°¿ª¥¼²§°±Ñ´À´¡Å­¾®¸ªÊ·­°¹²·¼²ª® Ãz­²ª¢±¼¯±ºÊ»¬¦¯¦³ÃÀÈÀ¸´ªÃµª¢§²¢­¸ µÒ µ¨¾µ³É¹»½³¸¬®µÉÀ”·­£µºÃ¥Á²º½±¯¹³±§Å¢µ¥À¼ª²±©»±´¤°°³Í©©µªº¦°ºÎ²¯¬³´¬ÃŶÒÁ°°®¥¹°Âȱ·Ì¤¹¯³¦§¸°ÇÉÆ· »¦¤»¦µ­¸¨¬Ë±¯ÁĹÀ¢±«ÆÀε¾¶¿¡¾·Ï¨Æ®Ã¼®ÆØ¤ËËݹʞ¦±®”Ъӧº°¤½¨Ë²½³µ³¾±·µÖDZʟ®°µµÃ¬¹²«ÅÏ™®ÉÑÎÉ·ÁºÃÙò¦¾À±´Ãº³­»Ç¯®ªÐ®¡¨¯®ÎÀʪ¸«Å¾¿»Äĸ´®®«¥¼¿Ÿ½œ¡¤Å¿ÃººÂ¾»ÐÉÂÆÉ̺˜µ±¨Æ°¸Ñ¶´®¾”Ò¢»¬»¥º»´­°¤Ÿ¾µ¶Æ¬ÌƼ³Ïº£¸ÔªÇ·§š¬±ÈµÊÏ›©·¬³»¦¿À¥·¾Ç¼µº°Ç¥ÍȬÊÂÁ·½ª¶¼¯Â¹£·»œ½Á»¸°º¼½¸¨½Ê­¯·³Àµ§¤½¶¶®Áº·«©¯¯¦²¯²²¬›Æ¼°·¶¶ºÁ··É³Ãµ¶Á¹¶ÁÂ¥”h¼ẕ¶¾¼¹¶Á­¹¾°²»°²´½¡©®¾°©²¥²Ä¥®¤¬Æ¾­½²ª¶±Çµ¹»¾¼¥­›“»»Ö¢¸¼“°ª©žª ¶ÎÄžÁ£¹¿¼Â¶º¿É¥¸·½´´¦¶°®´««³·Â·¶¬¸­²ŸÁ¢©ÁÊ© ´¸µÄ®¶®®¶¾»¨ÂŪ¹ž·¼³³­¬¥‘ȳ¼º´®Á®·¸½«¶¡®©½¶½¥±¹´¸²Ê¤¼²¯ÈÈ´¨¯¾ºÁǧ­·¹¯²‹ÒÇʺ°«¾¬²¬Á´ÀºÄ¨¦¶¾¦ˆ”±¹Æ­®°Ç›¢¼¸·¶¥½¨œ¼£Ü±®¿ë£ÇŒ¨¨¯}µ£¾¡²¿¢·Æ·°‘°¹­Á«Ÿ®š«¹®Àǹ¢Æ±¦«ÆÆ´˜¯·œ«ÃÈŠ|ž£©”¹Ø¿¶ÀÞ¾¬µÀ¨´²£²¨Å¼¨¯¿¼œ½»µ¯ªºR›¸¥šœž»¶°¿Ã—Ū¯œ ´¡¯»·¨ª®¦·Ç£›­œ©£š«Ã±°¢©Â¹¹¹¡À¿Êµ¬ÁªœÀ ªµµœ·›¸¡±´ž˜Á°±ºžž¯­¯«ªÀ®¾¿¹­¢¯Á“¦°´¹»Ë¸§Çš¾À¶¿¬¯¿º¢¦»Ÿ©É©š³š¤Ò¼­¯ÄÐÀ·µ¸³£±¦³®ÉÊÀ¿°¼¸£´´Ç¯¼°ÂÁ¬»ÀÁ²«¯´¹¸®¼²µÁ¶°·±¹¼¹À¶§Í¸¸³¿Ã®³³´ª»²«µÃÉ®¬Éû𸩶²°»²¤´È£§§·µ·Ãº´½Ä«·ÈµÎº·Ä¯Ã©¸¶¹±«´»©¹¨¦¼®´¡«¿²²§Â·¦®—¢¬²¤À°¯¢º™©°´±³±~ÃĶ«žÂ™»Ä°¤±Ã¶¦¬¯°½ÍËÁ¼±Ä²·ž¯­Í«º·º°¤¹¤›µ²º§¥Éº¶¯®®®¶¢µÅ®±µŸ¢¯Ïº»¹ ¦»¢Ÿ¥¬³Ä¦·¹¥É¯¨³À¦¯¦·¤¥±«´À®²Èµ³ÆÐ«®·Áɾ°Õ©¹¯ªÆÉļª²½±¯®²È¾Ò°¿Ä¥¿¯º¹µ¦®¦®³ºÎ¿È¾º¼Ÿ´ £»¬²­°¾º¯·«Á§½È·Á¡µÃ±¶¦¶ ©»¼´Æ®²¿Áª³¿µ°«Ê°§²·¿¸¢¾¥¯©Æ¶«¹Â©»«ª¦µ¼Ë³±º·¹·Á½³ª¼°¼¸µ¦·¸º±¶©­Æµ¹¾«Ê¬··®¦¨Ä¶ÊÃy«¸¸ºË‘¹¨žž£³§­Á¥É§ž­°Ê²¤Òª¼Ç²©Â²¤©É×®¼¾±À½§Ä™Ç±®¾ÏÄ£ÀÚ·­±‰¿Ã¸Å¸åw£–¬ªº¯¦˜§¬ª¥¶¢ŸÃ°½­¹Áɪ´³›±º²Á»¸¶Ç¹¿£¸°Èµ±Éº¸»®´­¼·»±³°¾³°·´Õºª¬±°Âª¹¸À¹°¬Ã´¯¹È¯¸±²¶·¼Å·¿¾¿º“¸¢Ñ²«´¿¯À¶³Ï¢®¥ª¿¨À±¿¾ÀªÄ³­»°Ð®½³™Å¿¡À·­º¥¾Ó¾¼¾ÄÅÀʸư¼¯¶¬£¬ªÁ»¯±¶½ ´ªÃ¸«Å¬±ºÀª©°³Ÿ¯À½¿²ª®¹ ¯®¥£Ü»¹²£·´Â¹­ª¨Ë§¾À³ÊµŸ²¼¥´°¼ Äµ´Èż¦¿ÑÀ¿±¥ž½Â©¯¬µæ²¶³½®°Ÿ«Ý´¶œ¸­¾¸¼Ž·£®º®À½ª¶Àһ˰°¸¿È«¨® ±³Â“¹´Ã½³©Õ¦»¯À²Ç¬²¬¨¹»­­¨¾Ô­³·ª±«¢¯«¨¾´¶ÁÂÑĺ«ÈÔ¨¾¹º©±Ç¼·°¼ÂºÅ³¸´´¬Ê§²³åƨū ¾»Õ ³²°³±ØÃȱǫ´§Å­½¹±Ÿ¾ÆÍƳļ¼»È­¯¼ÏºÁ²·­Å®®¯ÛذÃÌÙ°Ú±ª··Å̱Ƶá˜Á§»·ž·É²ÈøÆÂɾ¶¿Ñ´ÉºÉδ¢´É²»´Áµ´»¡ÇÄȼз¿ÌÎÂѯ¬±Ê §ÇÛØ®«¯Ò¯Ì²¿¬±Í²°ÀͳȰ˧¼²²µÆ»Çͯ²ÁµººÕ¶ÅÔ¶ÕǿలÒÌ­Ê®´·ÉОʿ̫¾Ï«¨©½¾Ì»ÄñɽDzÀ¿ÁÀ³¹²Ãê½¶¶¡½À¯À»¾­¾º¥Ã­‡º»Â¹²·Â½²¶¾¿ËµÀÀ§Æ¾°³›Ñ«¼»ÁƳÆÌÅÈǵ¶Í¿­š¸³¼§¹µx´»»²¼Í¯²®˜º¬±Íª«·©±¼µÃ¾£¼¥Å²ÁªÃºÐº½¸ÅÒº¶ÇÀ³¹¥º°»¬­¶–Ä›¸¥¡Ã°Âñ¾·µ¶¾Å‹ÃáҲĽ¸¢ÖºÉ¶¹º¶ÅÇ­®¹Æ®«²©yÀÀÙ»À©É¾·¯Éœ—¾Ã°Î®¢Ê¸³Ä·¶µ°µ¤°ÇØÀ«¹¼¹¸ÉÖº°­¿¯Àž»Í¾Ä¹¹œ¹ÀŲ٬ÿ­»´Ç¹š¯Î±­¿ª­Éµ¢±Ì¯Ë¯·¸¼Á·©¤¸É쥿¸«¯ÁÉ ¿¼Â°·¾¦½¹»Ã³µ¬º¾Ò°ÃÊ¥¬»¾³Ì«¬£µ¤®»«³¸Ú¿­Â¦¨¥²Ï±±©±·µ©Ã°¨°«±¬¾Í¾²­Ã¤¿Å´Ãɱº¡¯ËϤÒ˶ð®Ô¯¬­³½È£¿±Öº½©¬­ÔÍȾϺĔ¿ËÊ©½µ¾¯Èн¿ÕÊٽɰ´¯©ÄÜÏŸµÅ²º¹ÈûµÃ«ÄжÆÊƸܲջ«°À¦ç±²´À͸¾¹Ì«×ˬ®Ã¾´Ò®ÖÄÀµ¶´Ö´Á¾°´Ð·§ØÄ½ÅÁź»¿Ã§ÆËÓ·Õ°¥¿ÅÓ©¿ØÂÿڶ·§¸­Ñ½Æµ¸½ÄÀ»°È“¼°¸­ÊÅ»»³Âö¦¾Ä°Àâ¶Á®¥¿»ÒÄ“²ÀÏÀ¨³Ì²Á­Í·½¸´Àµ¢Â±ºº²À¿¹É¼¿¾·ËÀÁ¶´Ê¦¦ÂÇ·µÎŸ¾¶È§º­·¬Ã¶ÄÁ¶ÅÇ¡¨˜ºÁ¹¿°¡¯»ªÅ¶¹»¶¼Ã¸°µ³³Ÿª·²²ÄÔ²µ£²°»§¸¥´ÁÈ¿®³°Ê¸¾¬³“¿´£¥®§‘¼ÃĤ«‰¡¹Âªµ¡½È±žÃ­¬©¼ÂºÔµ¬ÈºÇ¢¨²´»ª´¸ Ñ¹¸¯™´¾Å©«³µÒ­°Ä°ºÀ¿³µž¶Ã®µ¶§¡º²³©“Ñ­¸ÁËжÀ³·ÃÌ™¼«¸®Óϯ·²¾½¯»¶Èª¶¼½¸Àƪ»ÁÀÅ´Á»»«¼¼Ç¹´ª³²Á›‘¥¹µ¿¨°¾Ï¨Ò¢±Êž·®‹¬¬¬©°´«Ä…Á¯¢º½½«®¯Ê³»Û­¶Ë¦Æ¨°˜À®Ð×°¶»°µº«¹ÁÏþ¾³Ï°Ó¼“’©±¡º´˜ÅDZ µ½ª¶¸³²¸»À¹²Ä³­©¯µ·¨´ª²±Ð½¨¾šÄ·¬Ë¸ ¦«¹²½¯È·³¢«Æ­±¤ž¯²¬®¿¯Ö¨žº«¶ ¯¡Ã¿¯½¥¥µ›¦°¸±«³¥ª²µ«¼­Ê¨¹µ¯ºŸÁ¼œ°Å¨­»¶§³¬Ÿ²Â¯®ÛƼ¢™¶¸¬µ¸§¯¶Ã¢Ëĺ¸¼¾­¯©¶Ç̰Ȯɰ¼¸º¯ÃÇÏǵ§Ê´¥ÊβºË½Ä»¹ºÚ¯¥¨ «°«Ç´ÑÙ¬¼¼Ê¿Çɺ«˜¾ÉÅË´ÃľÀ̼ÄÈ´«Ç¿Êº¸¿½¹Ð¿¡¦ÖÆ£·©Ë»»ÅÁŦ¾¨³¸§¾¹¦Èé¿´Ç®œÉÓ§·Ï·Áµ«Í¾¾™Ä­Û×ļµ§¨­Â¨Õ¯»Âº·À±Ô޵®±œ²±¡Ä´Ïͱ¶©¢¬ÀÑȲÀ¡Á¸¬´¼Æ­Á°²£¬¬®³ºÉÚ¦®Á¸´Ä´¼¯Ç»ÄÄÓ¶²Ìº¬­¹²Ã«µÉÃÌÅ­Ò •ÃȶÑÌ¿·Áµ¶ÂŸ¶¼¬ÆÊ°·¹»ÃÍÈϪ¯¥²°Ë«Ù°Ì©½Ä³£·¹ÆÁ¯Ç¹¼¤¹µž²º»»½±½±ª³µ¸©±¸´À±´£Àœ»¬´¶°À»¯¹¸Â«¼¹µÈ³¶©«¹…ïµÇÁµ«µ§À©Á¯¼¡¯À©¤½£À®¾™«Ê‰¹¸¼¶µ—Ì¿¹Ä²°¶­»¸±¿¸­Á¯º··µ½ÌÁÀÁÁ³Ï¶°¾š­²¹¤¥±˜½ÇÆ«§Ã¨Ÿ¨½»ÉÀ¸¯¨¼­–­·¹£»»§³ª—¿²©µ¹»¯¼§«¸Ç«¦¬­–¯µ­³µ¿º¹¦²±¶ºÂ§Â°ž©¡°´ »¹¶±¬¹ª¼£®­¯²·´½­œ¸§µ£¨²¹ª–ª¸»³ºš¿¾¾´o®²­´ª¾À¹¿²¯­Æ¨¾¹É¿Àª·Âº©¼¸¹»»³¿®µº·º°±Å«´µ«©³¦¶·¹·¼³²¶¹¥œÆ¨§¹¾°È°¬»¹ºšº£·²½¯ÆÄ·Àµª¶É´¯¸¼¦¬¨¾®À²¯ âưʼ¬­±©­¿«ÊǺž³È´¸È»Ð´©º©ÂÀ½Ñ´œÁ¥»¯µ©µ´®¿¡¹Ä«¬½¸ž³ž¸¿¶´®ªª¸«±²ÀµÙ›¸Ñ›¥­±¸¶¸›¹©¤¥œ¤—Dzº§©ÃÈ¡½¯±·«ª»¨½¬¯¨®Í­º·–½Á¯´³ª¾ËÕ›º¼³ª¤¹²º¤½¾¿È£®¿½À²¸¿Ë£®®¨¿¤¨¹”¿«¯¸¹±’»ž´¯¼¯¿±È³È¹µ±É²¸£¾ ÉÎÆØË¥´É³»ÈÀÑÐÀÓ뫯µ¹Ã¡«§¹·Ì±Õ»±¹½·Àº¿Ð³É¿Ñ̪ÅÂĿݽ§ÅÈ¥¿¾¢Ä¿ºÕ´¸²Âȴα¸½¬ÁÜԪε°±¶®ÇËÉɲ»¾µ·Ê®Çݦ¾½¾Å³¦Áé¸ÃŸÎ½Üœ´­ª³°¯É¾³¿¾ÄÀ¸Î¶©¹­À»¶À˻ַ¯­³·³ÂÓѳ®Ã±«Â®ºÏ·Ë®«ÈƬūÀÉɺ¢Ñ¨Ä´Ú®ÄµÉ½Á¼Ä²ÁÈÔ³°Á­È­±ÈٱIJª¯„ÅײǺ±¿½²¼¾»¯Ã­Å§¬°Û²ØÌѵ˴¬Ù¯½²»µ¥¤Àµ¶´ºÉ¹·¬«¿ªÄŸ´±·¼²Ç¹±¡¾µ½²¬¼´¶ªŸÉ¬«Âª´±®¨¹¾´À¦½µ»§À¼¬Á²¶Ä»ªÃ²¹°ª¡¡°¶Î¹´°®©¯¬©·Æµ»´Á¤¿”ÒÃĶ£°“ĸǺ±±Æ¯µ²ªŒ¼Â·ÎÍ·ÓÇÂÀº±­²¹¶¬ÊÀ¸¯»°­³ÎÀÊÍDZ“½´«²Ç¹«Ÿ¾Ÿ¸‰Ì¹¨¨«´´¼«¨¶¢¾Æ²¼­±Ç³«¸Ô»›®Åµ»Â¹Ÿ·®°{Ä®¼´­«š³§£»§¨§«©É®Äµ¬¬Â­´ÃºÇµ´·¸¶Â}¬©¡¨œ§§³¾¿¾ÈÁšÂ¸Å¡®·¦´»Ë»³¼²¶¼·¿¶„®¢ÆÁÁľ¹À±ÌÀk¾Ï´»¹Ì»Ç¦¸¼ÇÈÄÁ¹¸±·µ¬¦±ÂЩÁ¦¹±¬¥ÉÀÂË¿­ª½´½´¸¢¬²ÂįµŸ³½Ä¼º¹³È±¹°»¥µ±¤¿½Í®Ç©¹ªÌ£¡¼¤ÇÀ®Á³°²²¬ÁÀ¾Ì» ººÔ®Ë«¾ª³»É¸©³³»³Ë°¹½·³”«Ÿ£±©¯ºÁ¨·ÂºÆ§Ì«´Ž·®¤™½£«­´¦¼µÈ½§²ÊÏ®°µ¼®º¦¸¬·¼¾º½³ÅȪ¨©­¨­ª½™Ê°ÂœŽ´Á»«¢³É¶«½¶¬Í°¸«º¯®«—Á´®Ÿ¯®­¬¿·²Å¡Âɰº®›—£Ô³¡³ªµ¤¡ÍȞƺ®Ã½½É¿Â£¾Ÿ¶¹µ©¢«½¼”Áº¨Á·®¿Å§Ñµ¯¹· ¿®º°ÌÀ«°°Ãª°³·´¤›²Ä·µ½Ä‰È¸°Ãª¿Ãĺ®»À¼º¯º¬²·­¯¥°µº·¨¹¸¶±œ¶¹š³¯³¼¾Ä¾Ä·´ª²È·ª²¶Û¸¯´¸À³£¾­µÅ©Å¶©½¹ÀÁªºÂª°Ÿ­¯È¹·¼²¬½¿¸Ê¹®É³¾¾¼®ŽÂ±²¶Éœ¶À{©¨›«®»®­·½¹Á¸»­ º°µ°ÔÔºÁ®²šÄ¡±·µÂÀ–Áº«À¿Ê»¶¹™³‰¨µ¸¦“µ± ‘À±®¸»ÇÂÆ¹«½ÃÅ¿³ºÁ˜£«¶­¿ÃŤ·ªÀ¾¼´¸È¾ÃѾûº©¸±ÀÍÓº’³¶²ÁÀ°®¼¶Ã´¯»¢Ùœ¹›»®½»¸ÎÁÆÅ§­«À¦­Á³§ªÓ¯¡¶«·Ã»µË±¨¥±à£¶®Á·Î’ÆÂ°¹¿±ÆÌÁ¹³°›©È«½Æ³¹¹¹À­£ÑÁ¯¿»¦É©±µ·¢Í•½ÓØŸ½¬¹©µÂ´ÁÄ×ÕÒ²¸°Â²Ç¾²ÃÛ¹¸Íø¹»Ä¹Ã¶µÖι§Í¶Ì¡¦¯’±Ö°³Ô¸Ê±¶¯¶–Óº«´»½®Ã¾·³ºÇºº¿­±·¯°µ·Äδ¿žÆÀ¸մñ·¬¸µ³¸»ÂËœÁš»¾¿»Â²¤µ·´Ó³¨¹ÅÄ­Ö¶ÅÅȪÅÄÊ«¹º³¾³ÃÅ®¢Å»µÇµ¶¢¾¯³Â±Â²¦Ã¶Ì­»À®À¯ÃÅ«¹³¯©Ìµ·Åµ»Ç¼½¸«À£»¤°°½«¦ºÂÀ³¶¿µ­¢¥Ï°À§gÊ®Ÿ¹¶­©£»²ª Ÿ¦½º¿¹²¶¯³¾¼Âꮲ¯µ±Á½«½£´µÁ±­»­¹±µ»À¸Â§¾§²°¿ŸÍ¨¿©Æ¢¾—б¯°Å£°ºÏ¯º¿³»Ò­¢¬¼£·Á¥³Ã¦º­ª°ž­©°¶Ì¦š²ºÆË¥¶®yº©«Æ³½´½¢Á°º«¾¶³¿§­¶¡§¬³²Å©¸¦¬ËÁ¯Ÿº…œ¦¶£Å£Ä¬°®ŸÇ´Å ¤¿ºÄ³œ´—Á¬´¸°ÃªÌ±°É¸¸À­®Ã¨Ä¿¼½Ð«½¾¾ÆÅ³«¶¹·¿Á¯¸·£¢Å˜Á¢ÑÇ­´ªÍºº¶©¼±¶£Àª³½¦§Á®°­±±±¹±´Ã´§±Ÿ¼Ð¬¦Ì·Ä̰õ¸ºª¬¾Á¸Æ²¥½³¦º³³¯¸Ì®ÍÄÄ¿»Ñ±±¶§ºÂǵÁ´·ÃÊ¿¿±¢µ­©¾­Å¯¨µ »µ¼Â²¶­¡£º¶¯¬Ä ¶µ±·¸ÆÊ®¥Ò²¨¯¸§®À¸¼²Ö·°¨»Ê‡³ ½¶™¨ ­´¬¨¼¸¨¹©Äµ¨¶¹ÄЈ·ÏÊŒ½µ¤Ê¨·½µµÊ·±¤Â‘¬Ï¯¦Á¾º¸À¼Ñ§¿Â¨˜¸”°¬·¼¾½¸Ä°Ç¾­±±Â¦¢¼©¾¿¹º¾µÁ¯²©»¹À±°­Çµ©¾­·­³¾ÄิŸ¬À±°¢´³¯¹¤´²¦¶¬Å²¶§ºÇ¬«¼–¥¸¹°¨·¸Åª«¨¶»¹Ã²¸©±«»¶·¸Ä¯•¼Ï»¹Â¬«ºÊ¶´£°¥Í ¬¥¡±§À¾§®¼´¥°»¼¾­Æ·°Ò™¦¯» «´©¢´¦«Â½§¿°£±­¨Ïµ–±©­¬½¯§¹Ã¯»¬¾¶¸®¢¢«·¹¼µ²É³­¥©¶§Åü™º±«ºË²Ä²ªÊª¸°Å¨³°Ÿ·¿¢°´±«¡ ­¶¹¹Î¼²¤»¯¯Â¯®¸ÀÉÆÈËÊ ¹Ä»¯É·³¯©±£Å¬©¼¹¹É®¶­Æµ¿È¦ÇĦϮ´¼¹Å¸Ã™®½¡²Âо²¸¯¼Éž°´¸¿´±Ö¶Ðž¦±¦¹Æ¶Á¿Œ¹º­«´Åµ­¯Ï²Ì¸¨®Áª²´yµ¯kÕž¾¿²ñ˰¬Â³Æ¸‚½¶³¸±¿¿¬°¨¾½ÈѺ¼½ºÄ£¹µ¡·¦º¿Ï¤È¸É¨¼¯¯¬µ©Ä®ª± ·²¥¡Ëº°Æº¨¶©¾°¢Ì°®¥¥²·º¯¿¯¹¬’½¿§­¯¹¶ÅÍÀ©º—Á¤¶«¦Á˯µÅž®ÝÀ¿«¼«É¿¹Ã°¿°«ºÂ·³ªÁ¤¸¶°—ɵ¬¾· ºž¹°—¿¯Ç¯¶¦´œ²·¦Èͽøº²°µÐ¹É³«µ¸´´Ç½¹Â±È¨µ¸´¸²ª³º½¸ºÁÁ¾µ³¸½¬È®³¨£»½²¼¬³±´®°´›£­±¶¼³²´žÆºÀ²¸²¯³¬µÄ»¶³Å­¬À­™¨«±¬µ¸ƒµ²Ç¹µ¾¦ÊÍ¸š¸´µºÂºµ»¸©¤°µÉŬ®Ä½µ½¾¿¢Å³²¸¶«µ²Ä¸Æ—É©·¾³¯°¸®­Š¤¯¼«§‘µ·{¼Á´¹§¾µ°¼•®ºÇÁª¿œÉ¢”©¾±¯¥µ»Æœ¼¶ÓÉ¥Á¼¼¬Ç±«¼°¸±³«ª¯ÅªÄÁÀÅÀ¾Ä¸‰«¹¨²¿¦´¯ÉÀ¼·²±Å­¨¤¶®Ç¹Ê¾Âœµº±³­¶¦Ä—ɾ˴Àµ ­³ºÓ­Å³¸»µ¶¼£¸À±À§°®²È¹´•³§Œ±Á½­¨°³²¹Ì¸±¾±·±¦»ÃÀ¨¿´¹¯¿®½««´Ç°¥²¯¼¦ÄºµÆ½·¼Ëƨ¬­¸º¡¹«­°°ÍÇÁº¼Âɶ¼¨¬¶¬Æ°Ç¯£¢À³Ì¸¬¿¤¿½±µ½Æ®›¶´«Âʨ¾±·Æ®ÄµÅ­¸Ãª¶¯¶¬¢«›¶À¥»©º¸ª¥Ÿ´ÀÓ¦¶¹Ä¯¶Ñ«­² ¼½·¨¦¼«É­¯Ä½Ãž¬°Áž¹±¢ÆÁ£¿¨®˜µ¶ÐÁª»Ã«´¿Ç°Â¿‘¹±¶Ìµ½Ï¼°Ë¹·±¬·±Àªœ¥¬¯·½²»£ÁÑ·¤³·¸¡µ²²¹­™²µª¡Ä±¾´Ã«Á¯•µº¤Á²ª¾¸§Ä¹µ«±¸ªË¶È½‹§—¯²Ÿ±®ª¾»Â°²ªª±º½°¶­É¶°¸¹µ±¶¹ÁÌ®°¸À¶»¯º–Χ²¬±¶”°Áµ¿¹°ª·¾²Ä»Ê°Ì¶¤Ã¦Á¨²Îš—Ó¨ÇÀ¢´±«Ã¥½ÀÆ¥¦¹¯±´±±¦È½µº¸¶Èª¨¹¤£°¬¹´¼»Æˆ½ÅžÃб©žÉ°¹°»›·­¬¼·¯¶¡Åœ©¶°¿´´¼¹¶·¦»Ë°Ä¼¸±Ã·Äî²·º«ÌÀ˨²¡¹¦»˜Á²Ä±¶¶ª¹Ëõ³­Á»£­¾´¢Àz¬¨Ì´¸Ê«·´®Á«¡®·„¡¼´ÊÀ—²ª³–»¼µµ»»½º³Ä»—ƽDz²²²¶Ã·¥¯º¯¼½À¾Ã¯º¬¤ÉƬʘ­¾·°Â¯À¿¼®Á´Âý»·­Àº¬¸Â¿¾´»ª³Ç³È£Â¯ž¸²ÈÆ¿¹¦² Áµ­®§­¥È¹¾Å¹Åȯű³ª¬¸«Ì±¯º¹¸É·½´”ɽ¥»Ã·½œ®ª¨³¸§Œ®¿±¶´£´¤²µÌ®¯Æ½¾°Å³£°œ¹¹»³­Ã·Ä¬­¨{©¬²®¨°¯®«Ÿ¼À£ºÄ¸ÀşŲ͡«²±¯©–µªÄ¦¸µ¾°º±« ¹¯£ª¡±¶¦¾©Ìɺ¨ÀÊÀ°Ç§‘ƹµž­¼°¹È·¹¼™¹À·’·±» ¶¹¼§´±Â¤³ÈÀ±Ä®¸ªÇ½¾»¹¾¹°¶«°»¹¬Æ³ºµ¥¯Ã¶©ƒ¸­¾´·½Ä¶À®Ì°µ¹Ä”¾ ¸²»©Á¦·¹šµÇ½Å¿³±¶¿¾¢¹º»’¸®¬µÁ¥ººº®§® °¿«µÈ¼·§—½—¿¬¯Á¥¿ÄЯÀ½¶ÅÄ·¸µ’º¶»¿§·¼¿»©«¨¶°¥¸Àþƪ½¤¹­¦¢µ© ®¼¢›º­¸Â­«Á§À°±»—¿¢­¸ÄºØ®®À¿½œº©¹¸©ÇÄ¿¯ª½ŸÃ¤¾¤Ãβ¸¬Ë´±½Ï¥ÃË£­¼³Àž©¡£¯¼¯¦Ê¸°ÀÆ¢¾Å¿È¯Ê¾¡³°¸Â¾˜¤¼½¸¸¦­µ¯´¹¶·¿Â»Å°²º·ÁÅ´®²¹½Ç­¹¾Âů¼Æ³§­ §´œª¶©ª¿Ñ°Ì¨º°º½±«½¿¯œ¸³³¸º¦Ã§Æ«º´Æ«­µ´ªªª¿¥³´½ÄÀÀ¾Ã­Å¿Á£µµ»µ¨º¥¿¨ÆÍ·¨Â³»µ¾µ³¶Â¶¶®È¾¿¶Æ¹²Â®·¹Å«®¼¬¶ž§¯¿¡½Â—¸¬²¿À´Ÿ¬»´Á®°¹©Å©§¹¹¿³°¦›­«¶«³È¸­É»¸±©Ì¯ ­©³±¼³Ê²´«»¸¿Ÿ¤¹±dÁ·¥¬Ó¹™È³ ­¶»ºË¸®Ä¶¦ÀÀ§£²Ã˜°«§¬¼º¯È±Å£§¸Æ¼ŠÀ´›¼»ÊĮʘ¿¾ÆÅƹʦ£ª®»À­©¼¸¦»¨¥¸¡½°ªªº»ØÊ°¼½¨· ²«­»‘¼¿´Ë¯ÁÀº™¿Äª¿°ª°¼¯¸²·ªÌÁÒµ®²Ã´áÀ»¤Á»¡¬¼¸É¨­¹± Ÿ ²ÊÀÊϾµ§®¦ÇÊš¬½¸½®¿¹¹¼®¸›´·Å£Ó¬ºÌÿÁ¤›¶«½¤µ±´»¤©Ÿ›«Ë®³·µ˜Ã½¯¥¿Á®²´¶¸¿¼¤ÀšªŸ¦¡­¬¶½Æ¶Î¨§¡Æ¸”¾¾º§™Ê¡¨Éȶ¬ÁĶŸ¥­¯»­¯Ÿ˜•¬²£Ÿ´¢Ã뼳ѿ©º²®¥²²¿¥¼¡¹°®«©¯›°¶µÄ£µŸÈ¿¥»©»½Å¹¶Ã·µ¬Ë·¹½›³¼žš´¤¦§¾·¿—ÅÆ¾Å»¿Å­²»ÍÀη¢¹´Íɧŵ¹º®ÄÈ¡«À»Å¶ÄǪ³­Áν»À¯Àû½¾”»ÍÊÐÏÁ¨±Î´­®Õ´·È¦¸Á¶º¿£Ã³ÒÊ¿¾»®¸°¸Ê­ÆÓ·µÆ¹¶¿ÉÑǪ¹¿ÅÐÃÐ×·Ãĵµ¥ÀÍÓž³»ÀÉ¿¿®°¶Î´ª§Âçð’µ±°ÁÒ«»°¿ž¿Ë©½¿¯ÏÀ¹«¬»Ì™´Â¿°£¨Ê»±¹Ç´ž´¼Ã´¥·¾ãµ¹µ¸·¾Ö²À¨¹Ò²«¯§½Á©Áý¢ŒÆ¿¯Íµ¾¸ÚÁ©Ÿ¾Ä¸Ú¶µÉ½§º·§ÇÇÙ¾«ªÅÖª¹Ì±¹®°ž¼§®¶ª«¸Æ½µÇÀ´¯·Ó»À®È±³¯¬µ»Â¶¬°£¯¸¹¿¥¸¶ÅÁ·³˜˜¼º¶­²Ç©»²Â±¨½¢½±»¯¨­¬³­¬¿À´´ºÄÁ¹º½±Ñ·»¨¬°±ºÅ°¸¾µ¶³³ÏÀ««¸¸¿¹¢À­©À´¹¼ÃÆ©¶²»¾³·¸¨À¶Ìʸɪ¦·¶ÄÏ®»¬¿«¼œ°·¸Í¿Ã²®®²«§±½µ´´¤½¼§±È¦¾º³¢«§¸» ’½º©Æ¾¡»¡É©¥“·Ÿ¹»¬¬»ª»¸À©›¯Á¥²À¬´Á¾² ¶·¼·¼©º¶§½Ä²´·Ôº Óº¾¶¬¦¼¤µµ¹§š¶º¿Ð·±±¾·³¼¿´»œ­¿¬°Éº¶µÀǶ§·»¯µ®¹Àµ¿²³²¼ŸÊ¼¿°ÄËıǴÁ¸®Ä¾¾·²»Â¿¸½¼ «Ëµ®Ã»²¿¹ÈÉ­¢ÅÏ·±¨¦·¸½¶ª°½›±ª¼¨¸§½´½ ¾¼³¾®°ÊÅÀ»¼·½¶µ¾¼¡­ÊÀ±¹ª¯Æ´±½¥¾³¶Ÿµ³µ¬©°¢»Ï—¾³«­±§©ª·¶¦¸¯®§­Å­ÁÃÌ¥¬›º³±²§Àº™³´ÍžÅ­¸µ¼µ²É±¼®´¯½º°»¯®¥³¬ÀÄ—¾³¿¾º¤ÀЦ¸®§¹Áª­­µ¸·®ÄȺ¥µ»»¸®µ¸²®µµÈ½Åº´¥»¹–ÇÁ®»¾½º½µÃºÌì·º±¬»»«ÃªÃ·Ä›À±Æ¾©º·­²©©¸¸ª¼ª·¯¿Ä£¨¾º¦Ø«®’½ŸÂ«µŸµ¹¯²¦ªÏ³·´¢ËÍ®¡¹´¨£·½³´²¤ ·Ã¶³À»¬±Â¼««À¼ª¶··µ¤»ÃÀ¥´±Ç»¼´³´Á¨·µ©´Ë¶š¸¨«Á¦´¯œ¶±­ÅÅ ¾µ«¾‚«ªÂ±¬¶¾ËŒ¥¶­·¤¤¶²¶¡¹¨¶™º¨Àн©¬¬¥Ì¥»¤·¨´‡»¹»½¬¶²¬­³·¾¯Õ¶·Á®¼¼»¶±Å¡½²¬À±Æ½®»Æ¼µÇ¥Ž¼¥Â´º°Ðɸ¯¼Çº¹Ã¿«¹Æµ³»Áôªºµº±µºÊº½²·ÈÈ®­¿®Å¾µº¸«Á´À¹³®ÄÒÀµµ±¼½¯’¹¾½Ñg³Ä½»«¶¾Àº¸¬¹¶Á¼´Ï±®È±¸Á¾À¤¶¸¯½Ç©¹Æ±¬Ÿ¬µ¬µ´­´º¦«¿Ã¿²©È¹¬°­·ÒŠ­µ­»®Ãª¸º¿²Å¨—ʬ´³»»šÙ­°¤¾¹¢¥«·½¿«Ç¶¾µ²¿·ÓŲʻ»§¿±ª²È¨Ê“¼´±°ª‰ •À¯½®½À¿Ã¬¸Ã£®’¼¤¯¾Á¨¨Å¶²·¯°³¨Å¢®¬Ì¶°É¯³¸Ç¶®Å§®´Ë¨š°¿ç«¢¿°ÈÓ¿¸ž­¸Åµ´ÆÐǸÀ½­ÄºÅ¡«©¦§Ò³¹ºÆ¹°²ÀÀ¯°¿«³»¾¶´²¤·®½¾Ç³Ãµ²¾¬±ÂÍÆÂ¾´¡ªÇ®»»¬©³´±®¯µ¯¯²¿Âµ²½²ÄÀ»¿Â¯À·Ä¦Á«nµ¦Â¯¹Á¸®¶¿µ¹Àɨ§¶Ã¼Å¸·¾Â¹«»»Îź¤Á¬”¾½ËÀ±¹¦­°±¹´·¶¹¸ºË¸¹­¿¶´•·¤º­Ÿ¾±Ê¹¶ÉŸÃÅš§±·®ÍµŸ¼Ë’²¯¸¯¸¹µ¾Ìͪ©ÀШ±©É®Í¶·Ê…®¨§µº™·¨×®—¾»²©É¸¾³–±ËÁ¯­¹®·¦§»È££¯¸Æ°¶«¿²ª·²š¬¸®º¼½¸Ï›µÊ£ÔÀ±°½Â§Ä¼«¼Á¶µ°¿¢²À³¶²Ä½³¯¤²Â•³¸¬»Ë ±¶¸Æ©º·§Á±½Á´¿¶ºÄ¨¦«Ñ¹²¾¡²Äʯ¤ÁÆ´´´¼½³½­¼·¾ª¸¢³²µ¼È¼À¾´¾¯ÆÐ¿¯º©°¶¥¾¬ª³¥¨°Çϱ¬®¤»´«¸©¤»½®±€¯ª·¦±¹³Åº±»®—µ¯ª¢½ª¹ÀÄ»­Ñ¬½¼£°¾¾«·¨Éª³µ¥£¿–­¦¬¤²¿¶¶Ä°½¿ž©§¦¯´Äª·¾Â¶À¶³¸®Ÿ´²Ò­ÂÁ¸´ÂÅÄÁ²·¤¤¢´¢ªÈ¯Ö´¿À±¨£²j§¨–ž©Àȧ¯´«Å¹¸ª¯Ãµ½¹­˜ª±´Ì²­¾°´³·°´´­¨¬¤Í¹¯Àµ¯¸¯»¶°Æ¸º«ÀÅÍ•´¥Ó¸¿Â¿²¯´³¼¿¼¨ÈÅ¥À¾¸Ÿ¿Æ¯²¸­¾É¶¼±¦Á¿Æ¾Æ»Á´§Ç˜»» ¸º¶«¼³·«¶Ë¿º«³®Ë¼³µ«®½µ±Ð¾Á¶±²·©´¯±¹º¢²™¸¹¬Ã¬¾¼´²¯Ã̲©¥¶±À¹›·¸¸Àù¤£«³ª­³©²Ÿ¹Ê¢ª«©«±™¦±¦´jõ³®½Á¬¸Ã¿ÆØ°¼¹µ±±Å’Á¯¤»¬ÂÇÀž¼Ä³¹²©±©º½Æ»¾­—½¼´µÇÏȜȫ¼©›¶®®°¥®°À­Â°¼Ä̧¦Ã¼Å¸§¼Âǿȷ»«¹·¯·œ»À¹´®±µ·±¨¶¸¶Æ¾»¼¥Â­À¶«³¾±¦¯¾¾µ¾Ã°¸°²·¸È¿ºÈµ¸¦³Æ§Ê¸®Â´­²Å»œ·»¾Ç¹Å¶¬¬°Çª½º´¬»¬¢¯À¿³¹°¹»ºª»¾­Á¶ºª¬»Ä´¾ÂÀ¿Â¬¼½¾º»¾Â¥Áª¹»µ¶µ ÔƵ¼ÀÄļ´¹£Ÿ¦›µx¾¯¡»¢´¾«ÆµÀ±¸«³ÃÀż£¹¹¡·©²¯±š¶¿­œ³°££ÆÅÃÄ«¸±¼Ï§Á²˜°º²©¯œ¸º¦·¸ª°É©¼Í£¦³ž»«Ÿ§ªÆ»Á¬¡—±¸¬«±´¨±¿§¯Êʳ­¸»³tÇȰ°·“ª¤´Â»º¼½Ç®Î­Ô»Á¯©Ä¸Í¯··Å»Æ¿ÃÓ¯ÍÍÀͰ°´ÆÏ̿ү¿ÄÍî¹¼³¿ÁÒª»µÄÇÄÆÍ¨¸Ëβ´·ªÃÃκÌÏÆ²¬Ì»¼¯ÃÉ›¾±Ì·¹ÑÏɲ²¶µŸÆ®ÛöΡŸÈ³ÊÄ ÁÂÂ¥ÆÄ¸¹¾ËÀ½ Â¯ÌÐÊβ¬¼±¼©ã´Ë۰¿¥±ª¾š°Å¸²±©·Â°²¦Ÿ½ÍÄ«¾¾È²®¦®¾²¹¾Ü¦¬½±ºÍµ°·¿È¹Ì¬µ¤®»´¤Ã§Ï«Þ¬¦¿È·¿Û·½­Å»½Ãͳ­¬ËΪƞ¦œ¹¥±¹²ªÍªÁ´ª§Ç¬¹À¢±­Ó§­¯¡µ°¹¼¿¹¸¯ÀÁú¿İֻ¾¹¸Åµ½¶»³«°º©°½¶©¶¬­²·¿°­²±³ªÑ·¾¬½°Á·¶®Ã’²¸¸²±À¿­ÁÀ¼·‹¼Æ¶³¼¼º¶¡’´”¤©¨Ê¸Ã¾­¯¼¥»¹”À¶³°š¿·¢Ã’¿·Ä¶©²Ìµµ¼¥Âµ§©±¼­¯¹µ»¤ª»­µ¾¨¸Ë¸¯¯³¶”Í´Á©§¯½¯°­ž®ª˜¸¶¼¹©Ä²¼¦Ï±°´¬µÁŸ£µ´Òº¬œµ–®¹¦¹Ã¹ ª©Ë§² ®›¬¶«°ÀϦ®´»²Ç¬À´ª½¨´¬­žÂȪ¸¸ž£¤‘³µ±·¬¬®¥Í§­½¹¨Ç¿­¹³µ¡Å´¹¨»¸‹®¥¿›Å±Â­°Ÿµ‘ÎÄÀÏʲµ®Æ·Ã¯Á®È¥µ¤Ç¸±¾²§«Ÿ¢­·Ý·¶ÊÔ®ËÙµ¡Âµ­¢ÑÅÇİڽ»¼²½Ä¯Æ¹™Ã½ÁÕ½âµÆÎ¨Î¨Õº§ÊÓÆ¹Ü©²˜µ·ÍݼïÀÂÁ½Á­ÇÓ§±´´ª·ÌÄ·°˜É¨ÍËÂŽ¾²°´Å³ÆÊÏÁ³ª­¾Ï¯µ²´Ã²»Ê¼Û¨²¶ºµ©ÕÌÖ´ ¼­¶³°Å̳ͮ¶À˵´«®Ô̯²Î©®³Ð¬¶º½®Ç·Æ¸ÉÍ̶²¾¼Ã°¬ ÂÊη¾««ÏзƤ­Ä¾¬´¯ ¶È¬¿¿±±Ò¯Ìͱ¾»Â²ª±Ó»±µ²£²È®¯¶¯¸¿®¾·ÄË´©¬¼Â»¬¾³ª °¼Ç¨À¾¼§£­Çŵ¬¿§´¯¬¿¶À¾®¬½¼µ°Á»·±¿À²¶ªÇ·Á¶À·±¢¶½˜»¼¯°­Á³¦«¾¨­Í¦ÉȰ¥¿Ÿ¹©»¹¸¥½É·½ºÀ­¯®³·Â£¿ººÄµ·³ÃÀ¶ÒËÂÀ¦´½·Ç¬¼®²³©°˜¾Ë±Åº·«·ºž´­ Ë©­¼¹¢«°Ä±¬Â®¢±Á½—»¬±¸³°²À𶲩«·n²¨”˰«±«³¯±´Ä”²Ï¸²¤»§¬š¢ÅÊ®¨˜µ»¾¿­ÁÌ¡¿©½° ¦µ±§Â­Ñ¬ÅͶ¬£²¬¦¤·´Ç¤²š¥Â¬´«Æ´Ì¸À¥Ã ¶•¹¹”¬±­«¬º§ÂÃÄ£§¦Ì–ƹ½ ¨Ã¿¥¢´¨Á®Ç¥Áº²°Ç¨¯±¤É ±ª¶¨¯¾¥½§°Ê¬£Â­ÇÁ¾±£®­¬¯£½Ê¬›°½³Â¸¿Äµ§œ¶š»Å·²¿º²ÁÕ±¸»ºÕ½º§§²Ë̶½ªÎËÐÆ¹ª²Ô½¶Â¨À¤ÇŘĶ¥Ê­®¾¤Õ³¦Ã𦥭±³»¾Ä²Ï©¬·Â³£©¨Ø¤˜ÊÀ½ÈɦË«À½­´²±µÃªÄè°›¸³´ŒÀª ¹½«¹¹Â·´À¹¾˜²¹µ¬»»µµ¿³§¬³Ç¶¬É·¾Á´¸¬»«Âœ¶Í«¦Ô ºÂ´Ï¶ªÉªÇ›³¶ºÅÑϧ¦«½¥¼µÀ·¿®ª»³ÑÈ¡³¾Ó–ª¿¡É¬»Ì½É¸¿¿¦Ã¼ÎÄ´®Ä«˜·µ³ Å©Ìº¼¶º µµ®¬´®ßÀº¯Ç¸É³´««Ä¨±ª¶¾¿°°º‡Á¾¼³¸µ¬¤É¾Á¥¬»³½µ¯Ä¦°¼¾ÆÐ¯´¬æŸµ³²ª¢¿ÉÁɲÑÑ¿©Æ¾Ç»°»¼Æ›ÅÀÈα­Ã®¿ÙɦµŸ±¶Ì¾ÖÄ¡À¹¹Ä½±»¾³²ÄÀȪ³´»¹®È¾Ã¸¸”ݶÞ«¾»ªº¶Ãı¼¦ºæª¯©®Õ®ª­º¿¶«ÉƿƬ¬¾Ä­Ä²©Òݳ©º±´ºÚ®¼¿¼¬Ä¹Â°¾¬Ä›³´·¼¿­Ä±¯Ã¾¨ÊÍ·¸¼°¯¶ÁÂű½±»º§Ç»¿Ÿ¼¼µ™¨¹²¯»°ÎÊ¥¯¸±°É÷̣»¨À±±µ½©»©°Ã©¸©·Á¢¨§¡°º®¥ÁȬº™›À­Ò£«®¿Á±¿ ¾Ä¸¥Á­´ÃÀ©·Â¨Á»°¸Ð¶¬¥ÎÊÃ«š¸µ¿³Ï®­¸Ã¦¾¦£¨¸§»ªº¶§¨¢°Íµ¦À §ÀÂ½Ž¥º²Æ³À»¢¬Æ‹·™»¸É²®³¦Ê±­ª¸¬Ä¯[º½¢®¼«“¤³§®§Å«¹·¡Ä¦¾°Â¡¦¡ªªw³ÄøµÁ­®«¾¦·¾³»¯Å²É¬·³¹©Á›µ Êž¿´¾É²¹¹Å¡Í²Ã¼¶Â¾À°À¸Ë½¸¥»¾¨³¹¾¥®¹É¾±¢ª¸¾ª·¯½ªºÇ¡Å¬«¸¡·½¡°Î»½Á»Á«¶¤Å󾼸µ»Èª¸´¼·µ¿·ž»Ç£À¨®Ÿ´²±Ä­«µÓªÁǶɧÀÄÁ¾È¹Æ³¾É°¾®Õ¾²°¬¤½±Ý©¯§¯²º’§»¹®º¸­µÈ¿©··ºÂ¿´Ñº½´´¢Ã»Ž¯»«½¸Ÿ¸¸­¹·³À¨˜­¯²¶ÇÁ¼ºµÅ¹¨¾ÈƬ¬©¨º¡•©²Ú·¼¾¶¦®Ëž«¾µ¥µ¡±Ä¯ÆË±È³¬À»¶Æ¯Ã½»Æ¡½¶ºÄ£²Ã¯ÊÀ¸¿¿­¬±Ç“¿©­À±®O°¯ËÌ¿­·¿¸ºÁ²™¦ºµ°»»»·¸º±°½¿¹¾»º´±º¶¨—°¼¼µ³¥µÇ¾¤»¶Äȯ¹®²±ÃÂÈ­Ê­´±¿´¯±¹¬¹¼¼Ð»¾¬¨¥­¹²³¸¨·¹¾Á­ª®¹»£¸´·¾¼ÅÏÀ¡·¥Ÿ©Ç½¬¤¸®¨¿Ï¡·½£¾°Ḛ̀Á±¯½¦±¥¿¸®¤º—º®¬»•Æ¥¶ž­È™µ³¢Í¶Ë°º¨½¼¨Á³™§£”¶±µÄ­·¿±¾¿©¨²³¡¯¢¤©·š®ÆÈ¡Ã½Å¡«É˪­°¯»³¼¶Ì ·´µ¥¦µ¯¥ˆª¢¬·™°¨µ¢¥©Â¯²¼³µ´ª¦ÁÊέ¼ª¬¥µ™°½¯­µÅ¹ºÊ¾µ»³¥Ä¯Å² ¹¥»¹–Á· ®Íº°º¡ÂÐÉ£¿¬¬¶™·­»»Ä« ²»¸®Ä³›ª©Á½œ¤¹­¹Á½Ã·¹º­¯½³À¥¸Â´´Ì¶Ã¨³¾¬¨Ï¿¼­¯©¶£¬²¸Í°½µ«·¤®§¦º·µ¿¸¦“ƴɲ¬Ì¶©»¶¾Å­§Ñ­Á«² «Ã–ư¢±²È¼¶ª‡Æ¼¼°¼¬¸¯ ´²­±¨ºªµ¡¨¬–­¥Ä¨ À³Ý¦¯ª³Á¿’µÍ¨­²¤¢ÏÇ–Æ´®²´´°¯¨¹»£ÉÊλշÀÌ²Â©ÇÆª¦Áœ­©¨©©³§µÒÇ ±Á¯·ºÃÁ¤Äœ¬ºËÁ¼À«°©¹¼µ­¤·¬®¾·Ã·Ã¯Ú½¼²Â¹ª¶Å³Â²µ«Í¶¡¼¿µ¸·´¯¸¸´¯­¸°±¼¾Á²±£Å¸¦¼¤¸±±»Ã È¢ªÃ­Ñ¸£´¾¼ ­¶½Ã¾¯Æ£º¿Á²¹Å€¶¹¬¶³£·¶·×¿Å±¹§°”¥³ª¿“¹¬¾¼±³´¤µ¬½ªÃ§»±Ì­¶¯©¢Ãº±«¸´ªº±²½¿¾Ëª²Á›µÀ°¿µ¶º¹¯¾²®·¬¢¿³°°®»©´·ÇÊß®¶Ê¨¼ª¯¡´Â™­´º°×½©³·È¬¬±±¥r³Õͬ¿À­¿”ª«€°¬¹Ä°½§©¾·®±§¯µ¢¸´£¬›§Â­®¹·Í±¾Ëɰʸž°¬³½¨¿ÂÁ³¹Æ½¨¶µÉžÄ´·¯Â³¸ÀŽÉÄ´¿ ¯Òï»»Íþ¤°¦¯²³¹¹¹·¸Í­«—¹¸§¿¡Â…°·ŸÅ¨ÀȰÈŶ´~¬Ÿ¸²´¼¶Ë¹·±¶Ö³´Êùº˜¬Æº·Ã̹°Î·Ã°Ç­Ê³·Õ³»Âµ·¯ÃÕ­·¿¾œ¦Ê»Â­¹¹¾¯¹Å½°‡¹³¼µ”«´»Æ¸¿²¥»®Á¹§«²µ¯Ï¡À±¯³Ãµ®¯§«¶ª»²ÊµÄ®Ï··½žÈ©­µ—¦µ°Ö¹Ïª¬½–˜ ·±Æ°¯p»¾Õ¥¤ËÅ·½¶Õ¸©Â»¨·¯³¿±Ë¬¨°±Õ¹³¹¯ÂºÅÓª¼ª¶È¨Î³´Ë«¯®¯Àº¸­»Åý¹À¢··Á²¶½¬¥Î™¬«ÃԲȽ¶Å °¾§«¯©µ¦§±Ä­¸ÂÁ»Äµ¸»À›Á±§µ¯»¼®Ã¼Ãœ¼—³©¾Ã¸¢¶¸°¼ÀÆ·¬´Äµ»¨¿©»¯½È¶Å¬´±®¾½Ê¸É¹Å¦¦ ¾º¹ÅÅ¿ÒÈÅÁµ¥°ÆÃ»Ê´¸³¢³«·²¤ Ä¬ÁÉ­¶ª¤² ¯T·¾¬Àœ¹µÀ¨©§Â°¼®¤¸¹½»¿°Ð«½•­ñÀµ¨²¿¸³®·³¨´¾¬µªµ¡Ë©Ãº±·³¨ªÙȼ¸¸´Ë¹´°°²˜©¢©¨Ÿµ¬¼´åµ»Æ·Ð¿¼¶ÐÌ“«´´³ª¨¸«ºÈµ´µ±¶µ|–¸¿¸¾¸»Á¾°½²´®¼¦Æ±ÕÁµ£´©¿ ¹[¼¦Í±®¸»ÃŶ±º¼¸É¬¾±À¤¶´¬ºž¹¬©¯¼ÁÁ¼º¹°ÀÙ¶¾ÇÅų²½Æ¾»Ã±Á¶¸ª°Ä¼»É¹Ò»£·¿ÄϵºÉŵ³Âª¿±Éú¬Ê¶ª²¼¸¯Ë’À·¸£Êº®“Ã̬­ÎǺ½°··®¨¤¹´¬¦­¾´¶¼»¬ÆÂ²¤²¥šÎ¦¼Î½¾·­³šÃ½È¼¦¨»¦º¸º¿Í²» ÁµÈ¦¢¾Å²ÇÁ½Ã¸µ±‡­Ò³­µãÉÇ·¸¾«Ü«½®­ÊƸªÂ±±¹¼¬Ç½¥¿¶ƒ½¯¥Â©³‘¾´ºº¦Á²½»º²Ã¥·³ª¯©½»¸È»·¼´À³Æ¾ÂÀ³¸Â·»´Æµ¾ª¶·¹Ã»¥®¥º°²¥Ã­¿°º¡«¤Å¯­±¾´£Å¯Ç¸´«­Ä£¶¶À¸»¸ÎÍ¡¿ÀšÃÁÀ¢Ë•Æ­À´ÄÐέ¡Ç²¸¹¶Æ¹Áȳ¸¿ªÅ¶È¾˜¬–Á·Æ­²Ç̵¹®«Â·®œ®›©§¼Ã®¿Á»Ô¬¬¨«×´¼¬ª««»®´¾¾×»¦¼Á±²²¿É´ºÂªÇÀ¼©·µ¥¶°­·®¾¸¨•¦±¶ÄÇÆ¦©ºÀÈ¿¢È—¥½§¢¦»ª½±ª¨À£­O«­É­¥¾Æ¸²¹£½¥¤±²±»È°¯»Ã¶µÄ·ºÁ·½Á°»©¾··®­Ä´³¨Ã·Ï·¹Ë±Ê³œº¸´¡¹ª´¾Ä¶¼Å·±½µ½¸œ¶»¯±®Ê®º§¡°­À®Íº«ºÄ͹¾±«­¹Ñ¦º­ž´²´ÈÁ°ÈÇ–´³ÔÁ¬°›·Ó¶¼§Ë´Âª³¶Û¦Æ·¨½µ²³´¿¼ÅÁÆÃ³ÂÍ­®½µµ±©Êһƾ¿³¿ÊÁÁÜɬ·È±Æ¸º™½¹¿¾¾±È°³·¨°¹À³ÅƸŭ«¤½¯ÁÀ¿¾±«¾Ï®°© ¯Æ¼Ë¸º§Â´Ð¶°±Æ±»¹£Ë²Éª¾°²½´¬Ô¥¯±°³³¿» ÄªšÃ»®Î¼Ø²°·À´Ð¯µ´Äǯ´·ÊÂÓÖ—«¶¯±½¹Á²ÃŶÀ°Àž˜À³|Á±¶ÁÁ´®À—˺¼Ò¶Ÿ½ÆË»®À½°©Š¹Ã¶¾¯¿Åª¼¼Ä±´»»À§¡¦¢­­Á´ªÀ½·²·ˆ´z½²¬»»³¶¤°·¼·»À°¸£½®ÉŒ¹«³¾½¸´§·¾«¶½¶ÊÁәȶ¸ÅÃ󰨿ǹ¾Éɺ¤¾¥²“ÀµÔ½°®¬À½Âµ¼´¦–­´ª­Á¸®¤ª­§Í±È£¢­™¬®®®®±°½°¶¤Ä½»œ²­µ±½Ä¸ª¸—¹¬Æºµ§Âº¹¾½¦¶¡¾Ãµ´›Ã™¯Ÿ¶Å½¾¶´¹§§¿£§²¨Â¼º¯²ºž°£¾²¶Æ®®³¦¶¥®¯Â¢¶²°¾­¬µµ¼À¦Ëµ´·¸³·¶¹¾¶©°®³™²«¸¶¹³©¬À³¯µ§ÆÀ¹Ä¾¥±²±´Ä»£ÂÆ®Ð͹¹¼½¸¹»«Ê¡»²º³££ÂŸ°± Æ®¿®«²¼½ÂĨ¤ª¼´ÄʲЦ§¸Â°­·º¸»³·ÄÂÃÃȬ°·›ÄËÀ¯ Àɽ¦±Ü«²±°Å­Ä¶´¨²¦ª¼´Ã¯¯´¢¯«£¶ª´®Á´¦Ï’¯°ŸœŸ¼E²­¯Ÿ´¹Çžº½©´½²¾³ªº´¼«ªŸœÁõ­¹ÁŸŸ©°¡±Æ¬³Ã«±®±Á™²¶ª¨´­Ñ²¸¾±¦§¢´ÀÁ¾¿¥½È©ž¬®ªŸ¥šÄµµ£®·µ½¦¹²±¼±·Äµ«´¶·‘¶È¯©»±³¹µ¹¿»ÅŹ»¹µ¬»Ñ”ÿ¯¼«¿²¼Ÿ·Äª¸°®Æ¶³³¾¤µÀ®¹»ª¸Æ“ν¨Æ¿Á¯»Á¶¼¡˜µ²«ºÂª¤²¬¹­«´ªº®Ð¨ªÁ··Ã·»¬¡¹¾®ÒžÅζĴ¼º½¼¾ÆÇ•¾È£³¿Ç¬Æ²¾È°ÉÈ£–·½’·Ÿ±²ÂÇ}¾É«°º¥³¼¤²±‘©Á¤p¶¿¶´¹·–¯±»®ªÅ¿ ºÇ¶›¢ÅÅ´­¶¥·½kº«Â²Ê³Íº¼Ä¾žÌÑ·³±µµÅ Í¾¨§®ÀººÆ¬¶©–¶³Ÿ«Â¿Ñ¶°°¿­Ç¹Æ´Š´²»©³ÀÊÀ¿½¦¶«¢­Ÿµ¥®ÁÃã¯ÇÇ­²¹Çµ³Ä¥«žÆ‰Ì°°©²À¬Ñ—¨¥°¸½ªÔæ½²¨µÀѼÆÔ³·ÊÆÅžÏ½¹ÆÃÇÈÀ¬ºÅŠÆ¿èÀ®©¶ŸÊ¡¶®°·´¦¾Ç¾¶®¿¶½¾­µº¦Á±ÑÀÁÃÐÁ¢¾½­¬¾¸¶À»´º¿À­Ð»¶¨·‰ÅÂÎÕ³ÆF¬¸²³¶À§ÏÁ²³¹Á¿½¼¶¼¢°£³Á¢¼µ§»ËÏËɹ±ž±±°ÁÁ´°Ð²¾´Á»´«µ¾·À°¦˜¹Íµ»µ É«À¶º«´±²¸­Ñ½ÑÂÀËϾ°¯Ã纭¼µ´¨¾¬«ÀÄ·Åʵ²Î¸¹À²°¾É¾©Çµ¡§Ð›Ù¬´¼¯©·º½Ÿ¹µ¶¾´Ë´¹ªÀº¶°®Á²³ÄÆÁ¯²½¶·º¿Â¼»¿¼µ¸Ã›¶®»²¼¶»¶ºº«¥­Â}»µ²Á¦´²¾´¼»½²®½¨¿¸Í¹Åµ¢Â¶Æ¶°¿»»°š¤Á±©¼ºÆÃ¬«§Åº¸Ç²Ãµ¾ªÁ·³ºªº¼­µ¯«µ³±±µ©³Ä´¾Ä¾±¼Á¹Ã²­µÃ³µ˜Ë¹©¢©Â·Á–¹¿»½©É°¯Ádz¯ºÁ̵īÂÀ»¤º³¬›ÊŸª±ÂÌÄ¢²À´£·¯Â‰Â·¬À¾¼©Ä˜¥ª¯Ç»Ç°³¹¬¦©©›·ª©ª»«¯¹Ä§ ©Î¸·²¯¯Ž´®¬±µœ¾°¢¬‘»µÀ¸­ºª¿¸Í½®¯ºÃ¼Å­Ìˬº°ÑÃÂË¿¾ÒÅÄô·¾µ¨¿½ÍÐÂ°ÄÆ¹½ÇÁÁ§©ÇÃʳÔÖÁÁ°Ð·ºÈ°ÇÏìÂÙ¸³¿ÅÅÄ­´º¼ÏÅ ÎÎØ½ª¨Æ´¦Ä²Ó԰¿¹Â¨½«£Â·¶›»¼­­ºÉ¸¾¢»¯ÌÌǾ¶²´¯ºª½®®ÃÆ·½³»­¸·²Îµ´Ð®½Å·©¸­º¡Æ°ÃÄו´Õ«»¸¼¸À³±´²¾¸º»ÁȱÑË·¢§Îס›Ï¾¼³Ð©À½Â¹º³¨ÈªÃËÅÎÈ­£§šßÈ©Á»«¨®­Â©©»Ñ¥Ó³§¯Í©·Ç²Ä±·§ªµÍ­À¾»Ç¹ÈÅʲ¾»Â²¹¾Á«¥Ç·²”²º¹Ç¿²¬œ¢ÂÁ¸ºÂ½³£¹µÌʾ±°º¸½©µ¨¾®ÑÂÇúÀ»Æ²©ÄÂ˵»½¾´ÃµÈ¤ºÂóɩ¿¤§¿¸Ç‹º¾Á´²²Ã¿··ºÆ¸Ç­¾º­´¬¯ÃËŠºÄȹ¼¼´º¸¸¢Ãª¹°­Å®ÇÁ´µº¯¼Ãȹ§®³¥»±´œ¡§Æ­¢¥¹¿Î­Ê½ººÈ¶‡¿Æ¯º®Á¬À›À¡Ê²¾ÈÆ­®·²×ÂǾëʰ»¬¾À¹Á¶ÊÀ¨Â´½¸ÎÁÁµÌϮɼ©¤§˜ÇÌ»»°À¦¾¡É–}½ÏļÇŵ¨­¼Å±É¼Ì²£ÁÔžµ´¢Ä¯Ä¬ºÂºˠ·¹ž·§¹•»Ä§»¥¹¾³¿µ¶´¹Ë¹Â­³Ë½¼¬»¸·¬´¸ººÄµ¡Á½½¤¶¾½«°¾³À¼¨Ç¶¬ª¾ÁÀ¸¹¥ž¹´¡±“¿¿¬·Ä°¦Æ²¦²¨°½ªÁ¾ª¬Ÿ±¥œÁÆ¢™Â£­œ¾¾³¢ª¡µ»Ÿ·¶ÅÀµ¾¯§®®¸³™¶¤·°ž½®«Â¦±§Áº°ÁÅ®¹·³ œ¾¤¿¶°³Æ§°¶¯³šŸ¢¤µ®­©³Ã«Ä¤¨­¥ÅȼÊÀÀ«¹Ö§´¯«Òµ«¿½¡°ÇÂĨ­Ê¸¢¯±µ²É­«­ª¥Ë¯´Ë°Á³°²½Ÿ¸µÂª»¸°Ÿ®´½¯¿ºšº©µ¬²º¸¨³¼±Ìź·³°›¿®³«±›¹ºÀ©¦ºÈ¾²±È¹Ñ»³Ã³Â·­¶Ÿ±Ñ¶¾¡·´Îµ¸¯®³¨À´²¼ÃªÒÆÎÍ©½²ª²¼Æ»Ç¾¸°³®ª±ÃƳ²·Á ·³µ¦µªš¹²¸ÌÆÂǺµÌ£¯µÃ˺¨¸Âª¿³¿À°¹¯¿Ì²¤™¯½µ²Àɽµ«­Ìªµ¹·¹Ë¸¨­´¬~•°·¹«¶³¬Õ¸Â›°­¼Â±˜ÀÂµš«¤±­¸¨¨Ä¯··±À®´·³Ã«³Á®É®¼Ë±¼¼³Ï­À±¨¨·¯¨§¹±¹©¾¯¡ž–œ±¤°Æ¾Ä·§¼¬´—È»º¯›ÁÊ´ª¿ œ«¬¬ ¸´¹ª¹µ¾³»É©·­¤¼Ê·«®´¹®Ë´¸·œ´½¶Ç»´·½¼¸µÁÈÁ»¹Ç¸¾¿¾µ½·´ªº©£¶»»Æ©·¿»§¯³ÐºÂȼ³½Ä²¥žÄ¸Ÿ¿§±¿Âº··©º½Á½¨Ã³Åµ¼¼¡Á®§¥®ÅÏÒµ¯²Ê·´Áº±´°»ÒÇ޺ǫ°¡³µµ´¿Õ®Ç«—¹¹·»°¼¸¬½º¼Ì¤³¸µÌ©”ÄÅÁºÊ¢.­ª–¯±Ÿ˜­Å°¡­Â­³«¿²Ÿ¯µÎ±­Å±Å¶È°¶£À«®Ô»›«¤°µ§¼¶º³¸Â¡¨­»°¯°³¡¹—À´©¢ªµ¼Æ±Á§ÃÁÁµº¨ä¾ÅÙÒ´³Ñª£¼¹¹¿¾Äɭѩʱ½Â´ÄË­¼¶·Ë¾¼Ä¿§Ä¼ÕÅ—Âû³Â±·¬ÁÁ½ÆÓÕ­¯²°¼É«¿¨Ã;¾Õ¥Ã§ÐµÍ°³Â¥ÌË—µº¿Í¼Ãȯ§®¾Ê¾ÆÂĶ´ÍÓ̫ȶ Æ±¤½Ä¶¾½«Ç²¹Á«Ë½¢³ØÉͯ£Å˺¢½¤ÊÙÇÜ©¨¡¯µª¾¹¾¼¸½À«Ð·§¨ªª·«µµµÈާ±¼Â˩ަ®·³¾Ò¾Á¨¯×¥²¹® Â¦³Àϼ¯Æ§¹³ÉÁ­ËÍÀ¸Ù­°ÛÇÀ©¾¬Áª©´Ó±¿­Â¹ÂÎǶÏܽ²µ¿ª¸´§Å«Ã´¬³¾¬ÊÄÀ¶°¼°½«Æ¥™¶–ª¹µ²¢¼¼¾¼Å´¹³¸ÁǫˬÄ­±¿»¸°Â·¶£¾´©»¥Àª¯´ ¾­¹¸¼½Â½¤•¶·¾›··¶·“°½œÅ¹ÁͲ°Ã²©²Àº´¯­³±ª¨·¶¿Å¼¹¿²²Èóœ¡À©´½½ÂÁ¯´¿®¿´·¹¨¯Çµ´¥¶¦²±Ä¸¤¾»¼»‚½Œ·Æ¸¾­Ì²¢¹§È°®µ´ÉÀ¹¯¼º¸³§¤¸¨°¼¿²±¿ÃÀ¾©µ²½­²®¨¾¤¹¸¿Q¼®É±µÐݪ¼¸r¾µÁŸ·­Ã¯¥¿Ø²³¿À²Ï§š´“¬²Ã饻®´»²§¢À¬ÁÀÀ±º¶®§³¯·¹·¶¸¼´¾»¢¢¬·¶¢¹¤Ê¨¿ÆÂÁ½¦¥«Ä¬±¶±·¸º¨Á¬¥»¼¬ÀªŸ¼º§··«·Óα½ÌÁº¸µ¯µÍ¹±¾™­»°Ä– Ã»™­È»Ì˜¬É§ Õ¼Õ׸±º¹Ê¸ºÁ«º¥³³É…·µµ©¿¬»¾®Æ¯¥¼²¯ÄոׯǺ¬µÃ±´»ÍڬϹ¿£Ä±³º§Ö¯²»¥ÁÄ¢ª¬±¦Ç³±¼¦·°±¾ÇË£¬µ¸sΙ§Ê­¹´¤°Ÿ™§®­¨×±«½¬¤¹£Ü¾´¹·Å·Ã¤Ê¶–¬¯©°¼¶¯ª²«²²²ºÁ»¯É§«±¾¯¯¼º¹¸¼ÁÇľ ´È¹©Ê«©Ó¹ζÁš›º¬½œÁŸ¶±ÅÅ ¦¯Ï²¶œ³Â¾¿¶‡µ°«§´¾Å½µº¯´´›§®°¯¯©¼½¾Àª³° ¿¸½µ®±¼ºÊ¬ÊÇÁóͲ¤¤³¯³¬¸µ¬°°·¾½«¿º·¼¸¯´¶¼««¿¾»ï¿°¨¯³Â²¬®¸«ÃÊÀ·»¸ÊºÂ¯²ÉÁœ¬Â¯Âº¿¶°³Ã¬¼·À¹Ãº´Ä´¨»Ã­¥«¿•¥‰³Á¤Æ¬··°¿¨¬¹À·´À±¢¿¦Àµ½¬§©­µ¼ºÉÁ²¯±«§¾¯¹¥¹™¹Ä´·Å¬RÅÒµ¯²´­«Á¹·²¶’­Í•¥º§³Ç°·®¶»¶¶Æ¯Ç£ª¢¥ž®ÀªÁÀº¿´´Ä­½ªÆ«¿¯»®Í½¸Êµ­·®¸§º¾³Ã沈»£¹¶³ÁÍÆÏ»ÅÀÊÁ¸È̲̾IJ¼È»Ä»ªÌĿͺʽ´ÂÀœÍÀ²¾­ª½ÊºÀ½²³À´µ¸Í˜Á®Ã²»¾¬²¿¿Ì°Ìº³µ¹ÌµÌ͵­ºÏ¹ÒÔȶ©´ª®°žË¿ÀÈ›׶«¶Â«©³¶Ç³’º¦À´°£Ž¼²±Ò¬«¼£³³½¹²À»Â²Âž¶Ä®¬°³©§Ä½¼²µržÀѱʷ«Î¹¤§Ä°±¤ÎÄɬ¦ÒÇ©˜±«Á´£Åê¨ÃÁ»§É¯¿¢Ë¡¼¼£¿²«§½´Í·¸Ã¼­š¿¯œ¸ÁÄÀ­µ®¸Ø¦ªÁÂÅÁÆÈ¶º¾Êœ·—¼‹»Àº¾±¹µÊÔÀ¼Ë®¿Á¹«¾¨Ä±¿··¯¶¼ÃÁʽÀ¹¹Ž±·¶±–±Æ¤¼¡´·«¾ Ã¸¼©Å°¬¾¥°¹ÑµÈ¥ÀÏ˸¢Î´½¨µ©«¶º·ªÅ²È¾µ¶µÉ©·ÇœÌÁ›Ã²³Â˳·»¶²·¨º´©Á¼¯·Â¿×š´«³Ëªµ±É£Àµ¬š°¼¶±¯»­Å»Á½±­£Å¾¶ªª·È»³¶·²Ô¶§¶´š­©±¤­œ²©ž¢µÀΰ±Ãdz¢œÅÇÀ§¬µ¥®ªÀ§¸°´±¥¼Ã«±ª¾±Â¤¯²À··®Ñ¯±¶±µ‘¹µÂ鿺­§¦¢½»¬Éz«³Î¦“¾µ±šÀƺ¡ £Ã²µ¶Àƹ®»°»Å¸­­®¼Ñæ·±ºÈ²¶µÁ¡­²½ÈÍ²Ůª¯»¾Ç©°¨Ä»Ê½®¯¯º£²´ÃŸ¼º°¾¬µ¶Å¬È±¿½„µwš±¯ÅÅ»«½±»³Ä²¥´¦¸«µº¹»·­®«Ã»Á¬º­±À°¸Â¸²¨™¨©²Ì¡³º³µ³±²·ŸÆÂ«£¢¸Ã¢¶»µ§¶½¿ Ã»¥°²ÂʺŸž½±µ²¿Ì³ª®Â¥«½¨»¿¼¥©Æ¿¥Â·¯°”±Ç¤ÂÁ¢½­²½²´±¶«»³ºÆ¼Ã´Ä¶¦¾¤³ÆÇʬ®²¾­Ê¸¯–¯Ç¢¹¸¶ ­¡Å»›º«¥“û•¬Ü´¦³¸½±­¸·¸ÂÅĸɱ¹°ª«¸o´±¸»Â·¾ÃªÙÃÃØ­´»Àµ®­ÄּƺǴ¼ÄÆÄ°¿²º±¬ƒ¾¦»¿¬©¸ÇÈξ¢¯£‰¸©šÐº¸¹°ºÇ˸±ª°µ¡®¯³˜º¹§½¸¼È›¾¸£¬Û±¸·Ä²·ªÂܦ¼¡¬­¬º¦£±¹Ç¶´¡Á¼®’«¤´­´»»¦¢¤¨­»½«®·«¬«Ã¶¯ž·¨«½Íš¨¸²ÊÓ²¦›Æ•»˜Ÿ¹¼·¢¬¦À²ÏŤ¼µ¶Ê©­¢´¹½žµÅ¨ §ª¾š«ÁÍ¯Ž­µÍÍг¹Æ­É—¥µÂ¥–±µ±ª¾¸®—»Å¯¨ ¼Çʬ·´¸ž½¡¦µÝ¯¯¾Þ¸¶°¸¥©Â§²º¶§Òµ¢¯¤›³®Íž¬µ³Á½¦º®À»¡§»¯¾¸Å´Ó«Ã´¢»±°À¶¾³¨£²¦¶»´ºÁ¦¤ºÄƾ¶²¼³²´²·¹‡À˜¹y´³À›«¡­¬¦½ÌÁÆ›¡¬ö·c¦³º´Ñ¸²°¢²«–ž¼±¿Ò¾ÄÌϱ½­¼¼¨¸Ñ°¬©¯¤© ©À§·¥­¶®ªª³®Ç¬± ´œ¬¯­¬±¹±¦¬«ž·°Ê¬×²­²Ì¥’Ÿ«¥­¸°¢¯¯¼ª¨±¬¡¤°´¤²²¯©©¸Ÿº¨Â¾¦Äǰ¬©®Ã›™¡®§¹¡´¸°¶¯·³É¼°¦µ¬™±¹®·ª°Î­¶°­¯Ä²½Âdz£±©µŸ°®È½Äµ´°»®¼´Ã±¸Ë·žÃ¶¸«´¨¼Å¸¹Â¬¶¹œ¼»ººÁͼ«Æ¼­Æ­µ¹»§Ãº³Ó´±¾´ÁË«´¸ªµ·®¯·Á¹À±Á»°Â ª®º¯°µ¶Ä«³ª˜©±Æ§²ÊȻδ·¸´Çªµ½¬±µ±¯¯®§¥µ¾¶Ç¯±ª  ¨·¦¶¾Ÿ´»°¤Åª•­­¤ž°Ì¦¢œ”Ù¦–Ì«À¦¢¶¨¦§®²«£°·°¦ÔÌ©•¬¿¡´®Œ®±¶³ž½¹•ÀŤĬ§Æº£±¦µ»²ž¢¾›³µ¼ªª´¬¥£º«­˜¬½Ä¼½°´¯Æ”¼Ã½¸Ÿ©¦½»‡¿ª¹µ«Á»´¿Å²º²¿©Å¿™²­«Á³²ÃªÇ¶¬¼¸¼­²Ã¥«¼¨¥Åµ±±Á˴ƬÁÁ¬­Å¨³¹¼¼¤´²»´½·™·¿º»¹²»½Æ¸µ¶¯Â¨›¶ÅÄ©»¶³¾°¨›´±±´®´º§¸»Á½²­Ê´®¿¢¶¬º´¹ÉÀ¾½ªËÇ»¸¹´µ³»Ì½®½Ë³®³”²³©¾±¥»¿¨Á ª¿º´‰¯²´£µ¬¯§º»°•¡ž®›·³Àѱ¯¶½ªº££µ­µ›¼¨²Á§¹ª¶½¥½¯³Å¿¸¦¨·¶®¯˜­¯¹±¸¸¶¼³ª³·¶°±¥²Ë­Â¤º¢°ÑǹÂÁ¬¯sÔ¶»¶¹’±Â«¹£«Å­Áš½¼¿ÃÀ¼·¶¯¿¸¼º¶ÑºÂº³Ã¼²¹¾«Ê¯¯¸¾ÅÇÅÈä··¹Ä±¬¤»ÕƧ£Á¬©±¾º©¼ÁÍ®¾Â²¶¶½È´°Õ¶¹¥²µÍ¤¹–ƽ®½·¸ž¾³Â±¾¶¸®¦¶¨°Ê¡¼¯¸Àª¯©¬À¸¿¥µ·Å¹±º£Ä°°°µ·¹¿­œÂ ºÓ®©©‹³¬»±¸Å©¨¬¿¾©¡˜•µÀ¡¡¦«ÂͰ«¾µ¿¡ ³·»­¶£­°ÊŪ´¶³µ±º½©³¾®Âº°´›—¨¹º¥·¾¯«¹­«Á½®¿«¬¥ª¾¤³½µ¾¥µš¬³º´°´¯¨¸¹³¡½¦Ë­Ÿ­—µ·Á«œ°Í¬Á¿·¹¼¹«ÈÆÂ¬­µ·Ä ¿¾¤¯›¬Ò´ºÄµ˜“¾Å¯º²Ë¶¬Ì§¶Ò´±²¼·¾Æ©É·½¥´¿½›¿¾¹Ç®Ç±Ç±¹¾µÁÀ¸¸®©‡À±¹»¯°¾Á±³¹¼¶±¹Í²Â¾®®¿Á´Æ°½ª¸Ã¦··Ç¾Ì¿²ºÅƣŽȨź°­‘•º²Á«²“¦«»®”ŰѴ¬®¹–ÁÄ®¥¶t¸Ãº±Å›¿¿µ²¤È² ¢µºÉŸ¡º¹¶¸¾©Ã»° Äu‘µ´°±¨²²Á˜Å·¯½³»Ä¼Û³³º°¬±Ä¿ŸÉ½¶¤Åº´´µ»¬¥±ÀÇ«¶»®ÈÇ³š·°š¤Ç¬¿ªª¿Èݹ§½¶Ê®«£´¯ÍÁÄ¿¹²½½œ²ÁÌÂÁɬ·žº˜¶¾ÄÀ­©·Â²µ¿Ï°œ°À¬À½¯¿»µ¦Å«¥²»º³˜ª²©©¼¯·Ä¹¸­tÆÂ‚Åǵ¼°ª³ŽÃ¸¾°Ó¿Â¹¶½¶™®Ì°¾¼ºª±²¶²¤±±£¼±ÀÂ¥¿¹¼¬ÂšÂÁË´¯°¸½´¿Á²µ¯Èq¿¼Å³ÅÀ¾¯Á·Ä¦©·­¡Àž´®³Ä´¦¹´³½®§Ê³Ì¥·¢¾¿»±³¸¾Ï§Æ¿­ÆºÀ¹°Éü´¿Ä«¼ ¸¼¯Á»¼ª»³Ð©§µË¬´±ÑÆÎµ¾±°Á­œ·È¸º¾³œ£¶¾¦ÆÀ´ºÄ¼³³½µ¶½ª·¹±º¿±«±»°²ÁºÈ‰›¾Ê§²®Ê´ÀΞ¹µÇÈÍ­®«ªÍž¹·ÃŹÎÑӢɒÔ̷νº·¶µ™±Ä±±ÂÂî§Í²Ä˜Æ¥®Ü·ÍÏ—¹ÕÈÒ¾»ØÄ¿¾Â¯ÇžÏ½ ¤È¤»¹™ÑÀ»ÍÈ­¼»ªÑ®ºœ¿½Ö˜Œ¯ÆÁ³¯¶ºÆÆØ ´«¼ÉÅÇũʹ¯Á´½§Ë°®Í¿Ò¤ÆÌ¸ª·«Ÿ¼È¾³Ä§£½¿­°½·¼¦ÔÓ²ÍÏÇ·¹ÈÉÈ«¨É¢»Å¼Ë¡Ä¼¾±°¹½°Á³²¨·Õª¿»¼¬Â®¥º¼¯ÁÆ»·È¦Â¶·³¬§½¢»«½ÀÅÇÂÈÆ¿Âª±Ê;À¸À±Ì¹Ô»³¹Ä¿º³¶Æ¾¿¶Â¿¦º¹¯»¹Í¹¡²«¾’´¨²»¸ª´¸Î±´½ÂŸ¹±É¿¹Ì¹¾«º´¾¹£«¸¼¦¯Éʵª½»½¼¾½¹º¨»´¸À®«Ä±Ç¸¼¾ÂÁœ±Å±®¶³¤ª§°½ÆºÄªÀÁŸ°¥³¼°Í¶¾³¶¹¿Ã½Á¨µ™Àº²¬±»ºµ¥¹Æ´«œ ²´¹´¼·°«Å´§œ²—¬˜²º¡ÄÇ´ªªÁ¾Á­½Ž³¹¨«¼¥«´ÉÀ¹ ¸·Å¼²ºÅ­Ë§§½¼¿Â‹Å¼Á­½§·ª··Ë¸®²¬¥¡¿ª»ž²®±«Í°µ¼ª¦™µ°­¸¬¨´¯¼Á§½²¼» ²·¬Ê¢¯Áµ·˜Â£¬¿Â¾Ÿ¼ªÆ²¸¿¶¯ºÂ³«Ê²Ã¿¶²º»¾Ö´ÂÁ°¢º´´Ãº«¼ÈŸ·ÅËÈ·»²°¿ÉžƓ¹¾¼ÄÍÏÁ»¹È»ÁÁ¶Ïˡʺ´µ´º×ž±Ÿ°Æ¼ÄÁßÇȾÀ¾¾©¶²½¤ÊÆÃÈÔ½ÉțǮÔӪζ¿ÃµÎ¿®²µÉ©ÄÂÆ¬¹ªª¶¾°¼Á•¬ÃÐîƷ¹Å·Ñ¦Ã¬Â¸¯¶·¯­È²Øº·¿®ÂЩ§ÁÝų½«««Ð­Ï¿Õ±¾É¨Ä¿ÑÆÁ¯Ú¾ÍÀ¿ÍÃϾ¢³Ð¹×°µ£Ú·É°Ë¶žÐë¯ÕÐÀ³¶Ì¸º¤º»´¿Âµ·Ç³ËÀ»È¬¼®¿°Ã¨Í¨±°ÀÛ¶µµ·¯É¯Ì·¼±´¾Æ¼¯¯­Ì»·¨Æ¥ÀÀÆÀ¦¯ª½”¸§«§Ë½Á©²ÅµÀ¿»¾»¯Ê´šÄ½Â̳ʰ¹É´¿«®ºº½²Éµ»À¢°»©£¬«Ä¿Ã¸¼¸­ÉȽ©«À»´Ì¼ÇÀ¿Ì»¿Í¸¢Á±Èߨ§ÎµÈ¶·²Å²²¶ª¾Íâ³¾º²¬´º¿¿–°Á«¼žÒ­±­·µ´«¦² ØÃ­£Á´¤·²Ï½ÄÓÁ«¦¦¬ºÅ©¯±‘¬’¦¹¹ÆŽÊʲ¸¨Ó°´¸Ð²­¾Ò±·»Ã³±Ù´»·³³Á¶»³Ã­ŒÄ¼¯É½©ÅÅþ§À°¶¬Í±¹´¿¼Ï¾·¢¨³Å¦®ªªÉ·¸·Ç³µµ·²Ä¸–¶´Âɹľ¹Ï¶Á¶¯À·™Â¼®ÆŸ³ÀéºÀ²¸¼ªÔ¿»¶ÅÈIJ¶®»°¤¯¹½³¯¼¹À½¦ÁµË¸Ç·È¶ºšÁ¶·À¯Á¾ºÈÁ¹¼ËîȜ¸ÍªÎ¸¶Ç¾¨¯µ©®ÈĽʹº¾¼ºÄ¦±»Ä½·¨¸¹¶z°¯¿¦©¹½ª¢¼­Éµ³À¶¶£Æ¸®—³²¸±²¼Ã´¶¦Âе¢¶­¦¯Ÿ½º³¬©¶È´¨²£±¹·°µ¯¨Â½°«´¼ ²¾Â²Œ¯Á®¿½Ë¹´¶¤Ä´½¶¥žÆÔ¾±¿°ºŸ¨¾½·²¨°Å£¡¼¨©¤°²Ç«¸Ð½ž¼˜· ¯¥£®Æ¸·´´¶Åʹ²¬½¾¦¯¿À»´¾Åª¯§±Çµ¨ºÀ¹¯Îµ²¸²¤µ·ÁÇ˼•º¤±À¤±¦­¬¹«³»¶´¸¦¿Æ°º±¢¾·²»´¶¹É²«±«´Ã°Ê¡½£ÀǹÇ̨µ£¶¼ÈΩ°›¯¯³¨°¾Áþ’µÈµº®´ª´®µÆÃ»£¸¹À´Äµ²µµŸ±¼¯˜¦Ä§Æº­³¼Š§À¬¹¸·ËÅ£µ¼¯±Ä«»´°¯¥©°¥¶Â«±¸±±Â±­¸¹²¼¶³ÄÈ·©ºÊ¶®š½±Á̶ »«½±«–´¹±¹•°É¥·¾¶¶Ä¦¸º¡»Å¥Ä¯À§Á­¶²´¹–¿Æ¥·´¼ÂÉ­¯«žÌ·¼ª¾¨Å¬Ì°Ã½ÁÀ©Ë®³¾¸º¯¾ªÈ»Éʨ¼¾¶º±ª¾¦¹ÊÄÑ«»À¾ÅÌœÔÑ»ÊÆ±¼°¸¾Çº¼Ã«¿°¼Û¬Áº¾Ñ¹½Â¯¡§©Ê¬¼Ë°¾¹¿¾ËIJ§Ö¬¼ÆÁ¹Ê´É·œÄ§Ñ¸¬§ÍÊ¿ª§ÂÕîÀŸÄàÆÑ«°­­»®¶Å¿Â¡¬¥µÄ¬ªË§œ¢£¹ÆÄɶ¡ª¯»²É¨Ö³À½Ä³¨Ð¨±´Í­®Ô¸³°§³ÆË™¹×­»«ÊÈ…«Ð°¼²¿¶¶ÇÌʫźÁ© ¹ÄºÝ°®¦¸ÐΟáƽÁ¦¶¥±¾³Þ³ªµÊ±ÉÖµ¼±È«¾°Æ¤¾¸¡­É®®¯½Å®Â¹Ç°¤©½¹®°­Î¿ÁÏÓµ½¦ÏË·±¸°¾Ç¼²µŸ¼®É­¿¾¶«¬¼“µÌ­¹¬Á¤¸©¸«­¨½º·Ã®®±Â¯³°«¶·¹¹·°²¸¾¯¨¬½Å°­Í»½®¶¯¾³¸¦±ÀŶº¾Ãö²¼Ê¹Ã®½Â©¯¹ŸÊ¬·ªÁ²®¿¶·È¯Ç¥¸º¼¡ŸË®—³Á£´³À·ªÅœ¸¹²³¼©Á¯¨Ÿ©§²¬ª£™¶¦¨²È¸§Ì²¼Õ®Â´É³Ê½»·®—ΦÁ¸®´µ³ÈÂÇĤµ´£À±»—¶¹Â¶ÑÁÁËÀŸ¯µ±¬¦¹°»›®©¬¢½¥Â¿¹°Ÿ¹Í Ç¨Ëº¬Â¼Ù©·»¼·¯º²º½§»¹¯¤°´²Æ±Á»´¶¨Åµ¿´¹²Á®Ê¶Í®³Î°²¦£´Æ¹¼¾½½±³®µ¬´Â¯¼²½¹½¶»Â»žÆ±¤°·½º©Á´ºÎ»¬ºÇ¶Ã®¾·²¾ÃÕªÓÏ£¼Á¤·®¸›¹³Æ´¾Á°¯±¬žÂ½Â³Âð­Ë¥ÄÖ°·¥·°­Ÿ¡¹¬½¼® ª§«®³º°¾»Ê®¤Æ¸¥«¥ºÃ¹ÅªÅ¯²•³¸«¹©½Ãµ½¸¬ÓÒ·¹¤À›¥¹¬¼Æ©Ç­¨ž»¶¼¤É®°»·¦³Ï´Ñ¶¹¸¢Ã¬&¹ÈÃÁÙÒªÂ}±£¤³²²¯»³³Ë¯§®½²°ºÌ¾Âª¾µÈ禽©­ÂÎÃÁº·Ç½Æ¶­³¶®°¶³¾Â¼±±±´¸»±º´½œ¹ÄÀ¯ºÎ°ª¸²°Â¶ÈÈÃÁ¸Æ¶³«®µÅÉÁÿ§¼¿Çµ±¸Ç·¼±Å«³³ †µ¨·¹¬½«¾µÉ²´°Á¼¬¥œ¯¥§¼Ñº¾Â°±½¯¸³ºÂ¥½¹È¸¬ ¢®ž™»®µÂ³»ª¸¤·¼¯½¶§§§°²Æª±°³¢¹´»¿®•¶²Ÿ«ÈÌиº«Á¸¸Ë·Ã²¤µ¼¨º±´»—²¢”±±´¸µÊ¸Åµ¶­®¼˜·›Å¶¶ÉÒª¡¹ª¯¥ªž¥À¹’¤»¹Â–³ªº“¥±¨¬³³‘²¾§µ´¿Ã¯È¸¾©¯É­©º¥¦£±º¤œÈ®¬¶¶½Â«ºµ¸±·¹µÃªºÀ¶¢¹¹¯®½»¸ÄÀ¨ÅµªÅ²©©œ·Å¬Â¤½¾³»£Å¸µº«¹¯¯©žÈ¹²²·´Ä·Éº¤®¶½¢­ºË§È©´²­±Ã°²¸À®´¡™Ëµ¶À®ÄĨ»½Ò©½¥¸Á²ÀÀ¸Ã¶©¢¯¥µ»ÂÈ¿·®´¹Â»±È°°±­¦´¢¯´¼Í¦¶¹²½¢Ê¶¬Ìî’£³¬ÃƬ«²¶§²´©¸³¨Ä¬’¤ÀųԹ¡·È¥¨À½¤¬´ÆÄµÍ²¯²·Á¡¾·Ò»°ªÀ´²ÍÓÓ·£»º¢Œ´¾¶`¯¬´À«¤³ÅŠ¢ÏɳžÈ¸µš®­¯´¿¼¬½ª±¹¥Í¤³©É¼Ê‹»Åѹ²¾µÄ¸™³Ÿ¹¿½«Ã¥»¼²¬¿À¶²ÔËÇ¢¨•ؼ°Ä¥Âª¢¸°»Â§ÄºÅ¨­¤ÃÁ·¿­Æ«ªÉ©·­›¿¾ÈÒª±¯ÊαÎÁº¹Æ¯¥Á»ÇÄ¥¬ÊËȼ½²½®ÈØÂʦ̻½£™®Ì±£¸«À©Ö¸²¡«Æ»»Ê¯¹‘·½Â© ¬É¨·ºÈ̯Ӹ¾³¹±¦¾Æ½Âº¸»¯ÆÁ¡¸ÕԵϸϹ³ÀÌͲIJº¡Ìº°È½Ô©¾Åѵ§ÆÁ§ÏÁ²ªµÃ©Û±¿Ãº°½Ä¿¼¸È´°Á²»¯ºÃÃËÒ½½¶Î¸¼ÓȺм¼¶ÀÃÀʰÅɸÁ¶¶¥±¿ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº¸É¹»´Â¬ˆ•§z딫ϣ™ŒÇ¶«ž§ž ~È»½š®Ìª—²¸Àʲ­› Š¿ Ê¥Å­šª°‹Ò’»¢¢ž¢Ç¨Ä±‹±§°5|›…¶¦–¦Óܯ—µ¾¤¶Šð¨†Â ÍÆÐ³H¤©Ê¡Áž‰º{Ÿ½ÇŒÒ«ÍÁ̯¦ž·ßwIJ¨”É—˜\‘\]‘ZG8^b'fefBLe‹lFc/K}+\k—SZQn©M8/BµosÂ3nª‹7DYtv“i¦Ae4eSêa}uxÃkS²ÅŽ7ºkUl8—>Ù‰\D²:çAn:ÔE@F>ˆ’ ŸJ—Ⱥ`ÊAf6{kôJEÖQÈM˜c.'WopÝNFSax?2?M«AX;Rtc@í5YIj‘}qleKanV ¡]ƒ]“‰x‡tˆ‚t\zSU¡yšФP~gsvn‘kpS¢a†ªT\­¤x…ts’z‚š‡“zo}kœ}‘|€Š}™dpcXmrp\q…“›wŸ vgªs€‡†‹”Vs}rub]ƒ‰up^h^ioœŒi…_tkz•žvšo‘tmœ€ƒwldn†x„gŒ{ey’}{k}ƒzi}c”¦Œlƒ†“jŠ…‹}„‡~~p‰‚~Œckrk‘ƒtŽd“……aŒxav„’’ƒ„n™vš€Ž˜m…o‰‡‰qz¦ry€z¯~ts˜hŽ}‘—XeŒfuiŒ€†s}„Žstv^kt‘¸Žp_ž—nx}~…y´p…€€†‰cŽstf‡°v††tzŽs~£xr½Ÿh‚~‡i†op|‡‘[€ƒjhxŒ’’‚Zi„†c„k¨|{|efmŠ‚ƒ^’ºg“‡§z_V˜h\v†^’m‘vf[”HyZM`{w“n|ˆ‘‰±z…Kš¤ynr]vµ˜Œgp’”•~Ew†vvY”‘…„v˜GsŒb‡§ˆšjq}y‹‹l•bˆuGc™\œ|Œ—o¿¨˜by{~´—”pr‘’fs“‹tg…q€pŒuu}}_Ô°kÁl{ž™NI–„†…|}l¡Ž‰“t{|‹œjiŠgSo‡_v‚vl« ‘bt¡tuk‡•šqŒom“j x†u‹m~¤fz‹yf}hu‡}™u…rœruU„g“s‚‡Ÿ€~g¢trªƒ¢—eŒ…’Žgt]V`•š§„„uw†nz‰b•—rŒgtgfe‘t™‹„•y«‹Ž ˆBx{”o•a•šŽ€|y]{™¹´vc|¢fs’y‰¬c—{žh–…„o†”’‚–cŸj†‰’z‚ˆ‰tlŸu}q‚–WŸinŒ‡Œ‘•uŒxvŠoŒš“im{‹š„ƒe}–yrr¨u˜ws„t–Ÿš‹`x—“|Yƒ|~}[yq‘|k€z‚‰i€kXt]‘kzw\¡}o‚ƒ‚–Y‚lc|„†ƒw_¦^‹—Xrq€R”idu”Ÿ‚…ˆº‹‘€o`uj™bM{{“xœx†”etˆz€ŒXpwa}ƒ¬ˆw†~e”}zŽj™m|sSu•‡ºxvg…ff~^{†o§cqˆ‘tth‡r†ŒW|eŒž~‰zjq…€ill†vŒ…ƒjvn’ˆThm†qxZˆ£‹…]—xŠ„žwj†Z‡iQ[Š–yfbq„”~jŒvq‹˜l•yœ`xb‹vXŒk[ˆ|{cƒ|{ž–o˜afz®r~{EŒ}}{¤šŽ`”­o…h†{o«T˜‚tŠwYekeY‚ˆŒn}z‹hƒjZtˆ‚myŠ—Ÿtdxˆ‚ƒŒTZ~“u~Œž{Œ­•h}}‘y~‚ƒg†ºyˆy¤dŠ—…“emw‚p‹†|›”u¢rtа€ ‹ƒhenws—kuƒf|x’iy‹„–•¢y€ˆ}m‚ˆo‹w’¨y‡ˆxyw‚yq‘„……„yupVz]nq©Œ¢}b^‹_£W\rryŒgˆ‰|‚tsy¨y‰j}oŒkŒˆw_v€nlo·…œ…ƒ^€Im‘ކv‚‘jŒšg†Šy}|ˆw„†}}h{”´´ŒŽyt—Qriš¦z†‚‹}‰ŒŠ¦‘o šŒxg™ˆŒƒ‚’ˆŒv‚{‹z|k™‚vr“˜‹kx„’pmuuy|hˆg}v‚”’|‡zpzlvr¦m•^›ƒ‹Š‰ˆqxtxidtލ‘fŒ¢”Š–hu‰c}ovodŠ™£[¿’lc‚fw…b‹¤‚lЇxqxv”z‡”ˆgœ” †wLolvz„k~‡x˜{|€€x††‘£‰p}”Œ|p}Š}œ€}„brchŠmoy£ŒŒj–¦Œ…‡‚„†ƒ•{zq†‹‡“„tq‘z‡–Œ‚}s‰œƒinrŠe†z°Šv±†¥{‘p€e…ŽOxŽ{€£¤¥oŠyˆ¡Ž—]†aœˆŽ¥‹•S{oaY–‰jO‡™a˜–gœž}dPˆe„Yo”v†œ“­”¿o„o‘e˜„zy—‘“¦g¾V©Tp|dl_Žbdy€”»…—j]š« ƒ}Yj‹‹¦a¡„‘ŽŽŽ‚^Ÿl…Ž]ry|•[Nx•Šnwvtr_Xs{’{i˜ŽU†mm…wrˆ¨‡~{zX—oQ‹BŸ·U”—›Š€vfUw‹ Msm@’{z…lmU_p•›†A˜}€~k•h†„…«•c–z®„Bz‰€xº„ƒe¦¦x‡¦RxŽ˜ª‚ƒ‚l””wr{uލp‘ˆ¨uwˆXŽ j‚ž™zvŒ˜os^€ †Œ˜„ˆš‰m•”n†Žœk“€wxiYsƒu†–i~‘‰‚¯mp™‹—žv’xlN€y{…v{—€™j¤„o‰„……€cœql|u_ˆ‘wœ}Št€†£Gœfƒ‹pmN{‡‰›“ƒh‰a^¤x°Œ‹žc„\‚|zw‚sWf¥|Áev]y™qe{qa~‚bRhcŒsy¶h˜—† W Žvv”QnqŽ€T®kŒi‚Sqma ~‚]¤\šuJ{\‹w—q•|th˜‘u–‚Ÿd{_‘¢S‡uynˆ—|s£h|´|¦‚mrŸÆ”h¢k€š„‰+‹~~>y‰wYx„‰g§…n“ys‡{¢wŒu{h‚xŠ—…f€{‘™†l›‚p˜¨ˆ{—}Œ‘‚p„‘u`h–¢[…{‚Zˆap2ªym—®zMˆ“ojœXx”ŽEp‚jjbnI†v–gPw…j‹pŽŒsg‘•œalŽ‹\i€r€œ“—Žr†‹wˆhcs€…„¡k‰‡–\}w§e—ŽoŒ‰}c’r[hv˜˜Šwr—W‰yu]†„~™rlyŽ…xŒ–‡yŒƒ©zw‡HšˆzŽzšxƒj€¤`n˜wxxy«n…N›i| aš~“x\s|Šfpy„¥‰w™’s‘qQ€Š„xiiˆ–ƒll„lŠŸf‰yp”qŽˆ¤¢Y||{|ƒƒy¦yŽj‹¬‡¬yXktfƒ€z…žtkk›ˆ‰xašZGL¢ui€ˆi˜™ˆ}ˆ‹™’q˜ˆmdv~||…ŠŠHqž{f––^‰c…f†tolˆ‘‡m‡…†ˆSxŸAh£xpŸX•‘¡v•”§^vG‚suk‚—kŠ]¬Czx”Nwˆz˜¨€¢¦{€[Š“ˆ|[^qš”~……tfošY…ŽqŒ[zd‚¬e‰tQ”tafžv†svs¦ht†‹‰suŒu‹_xŒp™‚_b‚¢sp‰”“‚^w‰fycšx]‰u|¢z’v‰r™•´‹g]ƒžp„ƒkuž†zNt®t’‰„ŽŒŽzkrt}svp|j|£s˜•y€pŸŒi¢˜Šrzx|fe›xq‚Ž}“•gšr…›ƒz{uuŸ}|„­ˆ}vœfv {lŒ|z†[tmyc‡lšgl€Uqit‰`soˆsž‰€s~ ”Œ€~‚eƒyƒ{¢m’€†^zŒ¢›tvywGœ…{k§m•¡O¨m‡Z‰wqveq„iŸyxmŠi~qpbnŒ[ˆ–WmNrjhc‰y}\xgm_£‡d‰¬fŠƒd€”v|ˆz•œ w€«uqœ…z^}vs—…{SIrFa} “…P¢~¯“r– …„|_ruy¹h›”Œ›†Cˆx’i|‡²q¤’ˆq‚Ž¡e~pœ…´Žr’h~·©fŸ|xcalƒ‰§“g…Ž„’|yxi…s•xˆ †l”‚Œ‚jp¥…K„‰h€’€ƒKiL–…‰@xfE…spvzŒmŒsŠq`ƒ‡¯“sT‹±·o‚™‰…Tz{pylr…¯o“œŸ|~µq~tuo°Œv“Š‚–…”o{dl…‡‘žwvz”Šnˆy|‘œ‹}}°p¢}•¿q`‹”a‰g©„´^®„p|u¾og{§zŽp–[z¸Y«k_€´§ŽŠ„}‹…w¬d”–U”tUm›l~n€k‘vx}|Uhd¢q‹‹‰ÄR u~^©l•Cc˜˜hi𼑉šq—‡tly{z–”žŒX^™Ši{lbƒxoq†SƒŠz”|‡^Šuip”dšŒ„fœ˜Šczgƒ‚„‚|mtƒ ‡Hwvˆ“”ur•lr„…zƒŠk¢g¦_k‹“{„£wˆq‡Š‘’€wq†‚˜wf¸w¶jjs‚p~}l}¥„sƒ~’J|Ÿ‚‰‰„Šk‘ˆj›jkDmnp’wt\i”yr—…nˆm~Š‘lz{r£•ƒo~š˜wkž„‚yo{œ”xn[•“§gž€q„šŒj€m…zq…Zy……_¨r`kpŒl‘`„‚[‡YvXe_‡r˜{kov™<~|¬On¬zMjžŽ“‘z†v–bªƒ€{’w`‘„»£Œa¨Ái} ”ƒ¾Ž˜{Œ•˜N xZŠ–yމ‚Š~H¡z€d~±•]udg¨^„—”bœwt…n‹|“‡}b”šŒx„qyŒ}š¯e’¨Y‡~šƒ’…Q€¬W‡}›u›z‘Ÿhqz]~²bore˜ˆgepX„r–xwtsŽ–¦Šeovgb|}RZbwL¦d²c·ŽƒQ–k®|•o‡ƒu…e}}s{_Šlž§}d”Š~`yx|ƒ’ey¾x§`h†…‚‰r†®{t†¤o‡U…”Z‡sœ‰—_j^’–|€szoX‹||ˆms¤‹¸Œw}nuyMl‚˜zWZxsm‹K¨«wjˆ’|q†}®Š–fquœ|‚„y‹u xk‘y}€Ÿ‰€‚yzrŸˆ†¦¡«}XT_‘‡‚lnyzn‚„†‰jŠJ€œx‡Ysj•Ÿq¡}]z€ˆt¦O”’˜ej“Y’®…mcp„„`~|¼ƒ~ƒ\q€‰…p^{o€sŸlƒ‚‰g—‹ƒg|œˆ´unŸŠI›pu}€Œr€‡kufv}OŒ‰pu‰m“zbb¨Š„•£‹ƒmwupk®~j…•s‘‡V‰§^Yg…¥q|eV›–Rƒcµslky–bb“uK§qmƒŸr_‹`rseT€p|p¯Š€”v™›jzžuu¥}Psq‘„x‘¤€ir¿“W’auƒpx«cs‚§ož§hzt‰“kgmn’€}‡ž†ž~Oy{}›ƒ—t…´pjT{x}Žƒ“ÃemŸ‰‹ov}ln·vi“wdv_j‚|nk›hƒ…„oZ~\–U†yq®|‰ZWwƒmˆmŸy|~ŒŠƒ“}c‘˜{†‚]pVœ{ŠxqsŠˆRyrwœËSƒ¢`lt’®Ž¥Rcas‰qb‡o…Œv¬£t‰†k•Âfn±€•kQ›`‘ƒ‘tžma¢„xz•wqxºpuY\…|‡‰z’¤–e…{xšM‚nq„‚©–wl¢w…·…•›­©X€¬u§‹ut¢”‚€k_rlµ‚~˜Š‰„{wgnyz€q…u|„\G\jme{t|yŸzŒoƒ‰}brmt–‚Œrƒ’x›™Œj𛂀H”SnŠvr¨t‘€rulx¶s–z{zxujo«R™€€Š»|zmœv}˜w›rp˜–Œ=ŒšUn…uy‚}Œnc”›Q©}ŸŽaunJw’`Xžˆw‡kyƒ¤˜‘}~m‚žula„ŠlhpŽ~xˆ‰‰—‘}~v~[Jxhf`wi~fl™xt‰«™Ew{Bwy‹‰y@vŸ†tgŽ•pzh`ZˆUoh—–kiziY‡XŸ£‡eyxˆq¤{isžhwƒ‰‡fs‡”u€emn—Wx|a•šŒ‹Xs…€}¤€Žˆx‰xk¯xp“|Œu‡†_–`r™owlšƒ„zy¹“Uwzp £“mY|‚P—enf|Y{‰–mt¥s|i©`ky»‰nµ~x…wf—†rvb¯judqQh˜•V~|“mp’zj†lƒ‹q•‹{t˜…ir…{Ц“’Œ•ƒm¡~‘>eƒkvškyr€‹š}Š…{‚—`‹Œ\d~›~z€v˜rq|sfƒ|“’“l‹w|gmh{}qŽMWnnx¦m‘sˆqˆh†‚ƒKa•|‰‘sp€Œ„bk›sšjnŽqƒsx‡mxFt“Œv¡ƒg‘y«qœ›7y”ަyla‘y–‡ƒ|´mqke¬ˆ€sw’n˜¡qx^c†miT™‡˜w~€o„[ªb{`ƒ¤f…~{wsypo•†wŠƒqc‘vp|wŸrVšzV‹Šd‰{}ƒr‡|›€„}¥Š•g†Šx³_}ŒWr„’{o¨j„r—_¥s…yh‡–mš„rmˆnˆq«‹±gpuœ”U˜s—jn{€[†¨wœ‡‡x†ZuŠª ‡„~o™€‡Ÿ€w]q‰m™‰`«¡‘umnkga¥‚ozŒ\fqœy™—oyŸs‹t{††Œ„—z€{žšh„¡œf”}‚afo}®•–¸‹™z…b~b|]ƒ’b³mzƒe…rˆ¥[l[¸sz‰ˆ^ˆ‹lI¥lqŒ}žˆlŒ|s{~ezˆ–‰oˆ|uŒ«šE…]ypŠiƒsr^tvz‰vª–’e„‚shœˆ_|Žs€Š‹sw}V«„{ƒŽÕƒzlqqmq‰ƒžw’ymƒ{¥ž‹rr©“‚|{¡ˆœr^xuu€†v”’ˆ‹Œ‹—vtnr˜a„“‚ ˆ‚]ZžŒ~‰iiž‡Šz£}w³iŠp©g¡£‡‹h}ƒl¢}—¦Wu„{™–€„„ƒwkv†e³oiƒœolv‹z„‚tŸ´•˜r–Œ·…¯|^®}k k‚~Œ†t¯¨kg}|†lrx™”ˆ¥‹‡Ÿ•Ÿ±€˜†}Šutª‚‚}Wk ŒTxž_yb‰‹‚s|z›V±·›”|®„v‚˜uŽŽ{“W}}wzi uj^p­j|‚if‚—‘–wj…xl˜n’œ]>@z^ˆ–e}”lps¥¡’£„;vާ€cy{Z’q™ƒVq,ކi \`ž O€Z‡€p¥Z޵…‡Œwm†…‚`ŠpŽx7­‡bfX­¶‚¾’a|lˆž™b‡€Y‰\dª‚‰ƒ¤š¾Œž=Uu¡ˆ’=py^`”‡C—qxƒ€j f€ž”i’z“R‡„„uv“ŠŒny’ƒtku}›Žuwœ]o™‡jok€‚‹{•••‰^ˆ]~ˆ€wzއ•”•‚Œzs†Œxc_Š…Ÿƒ‡žƒy—™f‚£†}Фqsnx‚Š˜Š~\ƒ‚œg`kusmt‚u‚—}“˜•wgQztl´xc–SŒ¯•yBs€]y„q}pE¹otZ®nˆ^ÈŽ‚‹v¤ywgjUd‰}c`{¶¤o`ˆtµŠ“žuy±slf›l’œ‡q³™ŠŠŒ‘Ž©z‹mn“~rš‚alx_€Ÿ’}ˆyFYˆQq‹”{cƒp€n‹…du™vxzy|lyU‰v•ž/iy‹–Lv°q‚“_¹šfow”Œ’lˆ’“†{ˆ‰]mvwx‘‰ˆq‘{“|Hvƒt›ˆd‚vq‰‰¦^l_z•„SUewRˆ—R‚sT?vo§”•^‰}ˆ~mŒfª‘zŽ¥ww… ™¢…hs¢džS‰sˆ•‰‚…„©s`R€u†z”|€”YŒapu…Œw€°‹‡u“fM~Â_b‘ŠzVxžtˆ‰v¢fŽ™¦wg«‡Qƒx‹ˆ•‡]u”‡šn~iˆ˜zj~|’˜v€œ‚m€‹m¥¢š››€´¡ˆ–l€•WRf•ridwx’™C~oœU™Žq[{Ÿ‹E›z’Ÿ‡‚nkŸƒ‹A_¢‹¥¶¢›Š}^x‹‰™vq{~zuO{V€ZXDŒi}ƒU_…‡Ÿ®·{}£jZˆmƒŽW²ƒzœ…fDˆov‰d™n€—¥•xaƒq‘dd†grsˆ™ttq¢Xd{~O­™£ž¡’”Vw”ŒIX±–zy†]u[~|˜‰{{wfj5‚xb›n²xz|wz ¼—Ÿoq‹ŒM in¢ƒ‚Œ“¹yfk|’€¤q«’b”YAd‚‰Sqš…“…kwp…ŠhL…ˆŠ…uu-q|Ž€”V]s¤tCx”t’ƒˆŠ“aW’…Œ˜q¥žo”Cx‰HYÌp~‚¦ˆR—Žp|h‹‘k”’xPko‡pS¥w‰”i_m†¨†{}kx`’grd†„m]ny™Ep”†º©bo‰N~ospyZn¡lˆ™o_§Uv^Y¼„›hnˆš‰oez¥]†Jd˜ŒaЬXˆbƒ^Zvb‘Z–|{r†c„€•p{c…}ªˆw‰{”‰–š{|Ž‚‘ ¡]œ¬œ”wq•s}”{uƒhr³o„€†z‘žo‰{„Œ_{nv‚`z}¡~i u¨“_®Œ™„{w|…v‡Ÿœ³fˆpzw‡¤x€msƒ|{}ko„›„{k…l‹Ÿ‚‹zzŒbr‡_p’˜r±wžmƒ‚o‚‚¿‚n•«_v[Œs~‚¤’Oˆˆu„m”u‘’Ÿt’z†q¢–u“wo„dµÀ{Ž‚nŒng™SvAkšŠ¦w˜{8£hƒh„f‹Ž‡¥yz“z`ž‡ž‰fŽc°evmouoœw}™g®²›giž‘shGˆuŒx§ƒwŽz‡Z††c›œtvˆ|xŸ\ox‰„‹gZ‡dˆ§|–rda—_|[Šv‰”kgipŠlo‹ol‘|_†˜kžd˜Q–y s¥–€Š“r¡ˆŠ‘–‘‰£“…zŽygx’zVŸ|œt•Oj…g•–hainŒr¤zqŒr‹wˆ¯Z|€z…šˆ„‘p†€vvbM~rz‚ŒZ„~daY|ƒ¥{|Žrr‹p„‰t_ˆU•]tt}†„‰W¨œk{‘€”‡r__´Ÿfx—ˆje‡…¬›‹’”yƒ Ã_n‹Ík‚©wzqstlo–}˜svo}Zwu‰‰Œz}¨¡[€tmb–{š¦}v†Žru{j¼|K·”šz—DzbeŠ‘s]š€u¢m¤Kmq{eXY‰vr€™…‘R‚ƒaVŽŠ€–’kŽ“v€j—™~„ˆ†vZ‰yRgªopb{­”ŸU“O…cT`–{e„[€†uc{{Žrx‹yp¯n]cKŽ~Nj_NoQ‚wŒºn‹uXsvš`˜§]°§V€}r=žcd^„´‰}s¥“{³Œ«£{‡cg_£“€„jމptŒX–›W£€gFƒˆ–d‚­cˆgbžtZ–aŒ ‰¥fq´p£ƒ¨ “¦ˆziz“w›€„¥uN» g€vR•hnfb‹ˆ^i€hdn¡r’~|ƒw}s¦xz|yagf–Ur™sz¾Ug™“Ÿbv˜€†g™‰Žb…r^YgsÁ}ˆkXˆahN‚‚f²x”p¥“€ƒ™~pi¤oZ yŽ}¸uŽys’ˆ†]zhqˆ¬ˆ…f>pyt…w˜‚d„c‚¬cl„{`¬Œn‡~”Ž…Ctpœ_º‘[¥K_†„X„s…©Œ¥®›••ižz…Œezkc’U`c}€šu}H¶‚iªp©k¤no†^ƒWX£ŠST¦i’ž—z¥£rx¤uwbZkpнŒ†gÇ”w‰‹†¾’Xw†zv€{¡sŠ„yŠ~†J™‹`y–K©ž““•`stlnƒ„Q€vg’z·ou•S“£n“Y³sY¿o¤„«Ž„„|…‘vàbÂlqcw}š|n¡¢ƒƒvsšrZhΆÇXb†{˜½hQ¥”ˆžla|}Žk~Ï”¨½e„‹|›£€…™ˆX–p~€†pi{Lc‹‰¤s\’wV™ƒwQipƒ‰™^Œ“†›Š§ix‹d¢jkd€f­x‹®wp\t\C‹x~gp|ejmpc†}€g¨re\L}šŸ£š‹x˜z“dž‘¡e›gJ„ˆ†uk¤urœ—Lf„l]S…n‹mŒ£‰xky†v‚b €fuŠro}tµ{„jDS­T“‹Ÿ€Ã—k©…\¦‰?Nn‡ªb—p^žX2¦‰h’€ˆpPˆ”Xm h`£€ž”žp´†z®‚ok‡l€z„Œ—¤yŠª¨’¸g›ƒ}–|{{‰`rŒv‹r‚ˆT†bc|u{\’_Yš’Œ’¤X~Іm„‚ygxh•trim\–m…}“ë“­‡Š¼’†n“ „^Œh©…†ªvв–dh_r„‰ƒbƒ©Z8¡t¤Y™f§ „|‰topm¶g‚¦w‡œŒ^W¨¥[…¦‹©¥¿Ps„soO›¥T}[=p™“y—epŒz Xh ”s{sh‡}qxdg”`l{µ†wrV‘gq—tl`~T›Ön~†•]rsw¤Wœ«›oL»‡qs¿wcŽmžŽyo‰jˆP’ ŠŸkšhT•[k°…Ž€RX£™»­¤„œs®sqlu›l/ž¢[‚š‚¼zi´¥›emšneYœ¹”®·Wƒ‰©¶ccgˆ[¢n“P{‡„|À’“eµ`lR{}Y}hzc¶wy{_‚}z™he¶pcˆao€€Mwx¥r°­Ÿ†ƒˆrŽ„t€|i‹h¢Žy“£s¾‡v^›t`U°špˆ„\ih—t{ŒN‡w‚ÀƒjXŠyw‡•šˆ |ˆf¦g„€{˜…h‚“ŒiTbv[„¢·’ªpizaA{`hmfqƒID‰¢s‰_]v›’`OބЗ—J›wzÅ ¿y¥ƒƒw•d˜¦iA¶‚r~duw„m§_rg¥‚†h y£„M8e˜Z”^oGL•™`•œzyw‚‚gp}‚Le—ty¢ˆ‘•ƒ’O˜†«žƒUpƒ¢›‹efj¸„pœƒN ›~ˆŽ»s¨‰|x›_¹ˆck†“ªŽ„HtmŽ•v˜ˆˆ˜‰r‘’h´y¶G”š£n¤XKpwv˜u€Ž}¹Sgci˜zs…\›Œª¼ehšr˜…pCŽt`h{…¤wŠœ©ºn†x‘Q`£s­‰•EVŒ‰ƒ‹‡}‡Š—ƒxnœmG­‡l`Xm¤…ˆ†™m”[Š—y›Œ¨~•ƒy{w~…v˜wsˆ…‹…f‚„ª…‹]gƒ“wW_ZIœ|uvŽ–ª—€w¦x^š—„]Vea‘f}oƒ”wrg°‚‹t?? `«Wx‚Žf€ˆkq4eywZ”hˆuit¤‡º~zys„j€ˆ¡Ä“Žˆuuˆiu˜¤¨sv‡§wx…dk\¨nœŒd‹•£‹Ž¥›™«`Sp¢wy‹YŠ¥¯œZsSnizŒ|’ƒL£Tu††^•sP‹v…g|¹u{kl‘†vprb|€˜S™…—Šš‹‚¡€£˜oŠv‡“}™§cx”bzph‹sŽšži€–¤“€„gms­_—´tq™“Xe—RpT}bˆ—Œ||v™…fo_t¶…‹”[¨]„x^‰r¹Ÿ•žªomz¦e”nl}‹›’X‹x}•xhœÐlˆe†|vk–¤yzUŸkxƒ®‡£r˜œmu{›ˆ|¥‡lWzkŽ¥ij_V…Œ‡jw‹K{‡…ˆ‡šv§~Šbƒ†ˆe—‡x e£bsš‚‚t–’~ahx‡|WŽay³Œfu~‹ZŒˆŸ€yI{V~™|ozh£Lxr°³ukpm„¾d€ˆ”W¤œcM–zhUh® ¼ã­W«œ›q‘N{k±d˜sh”—Wˆ¥M–Ÿ[ž¡tcRfd¡kflˆ¢“_^†h¤}re|~jv•pmhz¹{ynyha|k‘€ŽÀwu—¿W—]¾tkvogF’vhiÐrz—cz’bXlmÉ¡§žŠŸƒ²_z†pQŠŠ´–p“s–U•©…«’‹‰Wª^•¡Y{UY¤¡qxny‹|rsšem‘[™8:C‚_šj‹šs‘f­’x©•z„˜‘x–wgš‡†£X˜o¨“WJXn}l]ozw•›U}u]—zƒ‹Œznrn“nbAjIµ“AœAM|gx¢vÂP…~¤^zkgŠayŒƒ”ˆzv^ˆt¥•he¦”iUcrc·ž«\¸´«‡‰tX–‚†§€‚¥}dWp•š‡t‹•ml†™rw…Ò‡‘h|—“luL¯Žl‹]v¦˜€“q‹Œx‡“I’~|k…ggqjpicxžc¦~ˆt…Fvk„iwl^–‘°^ŸO‡‘Ve’³yMs­’S|c‘’y£WWš•UgaQ‚v~”cPk9šYl T•†r…˜™¤ŸÅŒ£IDŠˆu‘­’YJ?·Ê¼l|ÔχXu5‡™m¯¥w‡ƒk“¥s}cž‘zÔjXÃftcV{yGL2®¢…aÉc¸2’.’¤Ugfƒh}Tªr:«~X”YŽœx{‚qžÁ¨‰—ª¦|Qˆzk›¥ssœ AÂM‹‡z–‚X›De”›0i•`vdah|¯p^cbžzg¦f‹xpw…|Èo„Ÿ«‘u¯S€o fo€^~§~qZW‹[¬“˜‚žƒn‹U–txtnR‡l«q¡¥_‡†ˆ“yÈkˆOT™˜›Wy]r‘{ —¸¡~”Vt–„~vƒg¨kg¶j”Y¤Šus”ePupL¨e³£­¥k®e©ƒRcg…Tw@ib´s“Ѝk{‹`oV˜Z•Ke†dª¥e’Ÿr„«d’•“zŒmT\Ž}y–~vQYvkZ{œ{Š~gox›sp„c§†‹tq`f[”’y`l“vzr˜¡x‰‘ƒt„„pygz‚l}œs†o•YQq—c|{srK•wºp¹tŸj™’atƒbª¯«ˆxjPˆ‘³­’‚vW}ŠŸYxŒwl}£ªšI€d[¤‹•‚¯x}m§w‡eˆxi—Y’c€–ˆxrhy€l’…ŒVn[oZŒp‘oˆr’‡oŸ“vœ}€›rƒ‡Š——’ ]”Št˜ˆ–i„‹¢’‰x}sœ™‘€p™z‡ƒ|Œ‚˜upv”•ŒŒ†„tysxxv–}y„qlˆ˜yŸ—o”t”X¥o‰‹“‹™fy‰•aS|¢j‹‰OY“™h¯p†Wi…c¨wŒ’°‘Œµ–iZ«NÜ•ŠŸQÑ…]M‚ƒŠ–yŸ¹‰f‹nˆy]hˆœUu“­•Vr•‘𔕆f\ys„ƒslƒ¡¦›¢¤¡m’^›œY™c_¡XP“³|ygZfK”re£‚„°z˜°hœm•½‚ªšE—ŒÁš_ ~štCx‘™UN~]’|K–X´˜vybƒfZJix_Dq´‚ZHb´fŒ•’kr“ D­lœx‹ŒÅ“•_jl_•d`’€´z}p)gk†{o²}v§‡zI_ªh±vŸ´‚Í¥‘šhlK²c®°¡Œ{tP‡f«e›]]r]}§ˆ‰‘Œ[qkªSebosN^k[žnbY]j„r‰Êf’Œ¦T©¦¢y““‹udUo‰Qd‚f…®†ªq^ÂV]¡œº;†eWŸœs}cH•hŠt˜“v|‹¾±šŒŠj—{‚±£[€u˜dyž±ekcµ/ƒW·¢…fwwsd€xY’‘b{ ¾“¼~§\{Ä„ky“pg™P˜Š…y•YQvlWY’LZ¥â•'ª®iœo&Q}>§†”‚—Zƒmy‡Clƒ/Œq®§‰c`k|o±_ZX‚³šFj€Ž›u®‚{4’jªqžV‘N›ˆ_vg[€šIzt€‡MŒKt‘dŒ†œlgc lq‹Ÿ}užU’†}ofš—q…R¡uŒ}·„ޤid–\‚^ƒp…£¨ff¨|šuk{p¿ep^a¡€‹•vGpyzƒ›“l¬oZZln~°€¤xŸž—kyHqˆ¨‡u~ƒrq^¼`O’uxˆ¢šw_ȈU‰¨wKijUj“cv¢jwmx”}•y‚~‡‹Uƒ€“̧”vy¤¦i}‡]Z«p£mN~sEŒ”a~ˆY­¦…oŸ§¢kE™yt°“j‹ošv€ ~uœew®‘ºY…wŸmƒTÙkz¢˜ ˆtZTp¤‘r‚b‘…–€~‘tn™…xw‚V…‘|žx§sr‘i~rq‘Œnœtm \ynh…„’„ƒd¨€†ŽŽ}“‹šs²…S†s…«¡TQŸt”p‚ŸRu›‘{„§nm«‘¿yrr|®i|tŒ‘qkE‚“y|v© y„LT£ lOi vP?ur{»¯Œ…pN:WÜO¡ˆÆ€°¬˜‰¬}„ެ`lŒu‹{²ž3oiph’‹fœ‹–™œˆ½9•tih˜KŒY@óK®S¡¢—¢Œ¬˜wa»Ÿ‰fª¢R¬•4fq§uk¶•™Q‰hNu™—¥jmhV£mlVƒ¿‡ˆ‰¦Æ~‹œ†}›l•p[}•~„X…zµš“X‰se‹`‹}p•ˆ¥{Ÿ”­’‘››o›xtžƒlƒs±eVŒ—w„XRgbˆœon£…^‹†m£r„{’€œ«y“mjwn…€zdiPgrj’ps’¯Ž‘@}”£ˆy‚dŠaœnÀÜŒu©dS‰[ ¤_œ¬’X›€aw}ŒZ¦h]¯–o”{‚`Á¥nvuZÎs‹¦¢{±˜eyC}‚h‹`]€„z¤g_¡ez l“_­fÃE†zo=e˜b´“¢q†a—uKm|vˆ––„ e¥x¤ueµ“-‰“ŠP¦~iKx¯t›‡w©ªz ›a‹M‡—¸_„Š€Ÿœ‡“iqm½‘…½—dÄz¤|—®{yf²a¨`…žR‡U‰“‡~AŽ‹na˜8d€–z„W±\~Ëehµ˜§kÖ†²žmw{hŽXÂ¨Š­S†Šucœx‘…~­pŽŠ²€kœmoŽ’y”ºmZ}mz}{·q]n‰‹…’•wy­o¡}ŠtyŸn–™N~o`p€Ÿp|8Ex|–BfyŠr¸|ul«Žt¶ž‚oQ…y…uz›ž‹’‹lKkaxnSrŽ—£j‰sgW‹‰šq‹‹Šn–t«c˜~Ž~«w\z‹‘‘aKƒ•cavvzqje?Š|p‘r•p–o¬t€¢–š’lŒfŒ‹˜n£pŠ”bnœ|’xŒY‹nub[VŸ’~‰lLJ‹Gbo|gŠ‹¬uÄvzIP€iªcnzjŽc¥–mU-ž¡j\ƒJYŽ?›¢fÙkySƒ´hŸmrWbƒYr}d˜R¢—z¥m½zŒšu—^kŠwwpŒf Š·qUv…˜™Rjg˵Cˆª\¡„¥ ‰\†‡RcÙ›··‹Tu¨Œ¾‹”M@€[• Š•­‹XogŒ¨~t(o~7”•fµ¨ksfq„v˜~” šhwŒ†ye{~‘\K‚ˆxvy|j{r­Î“Ž•¶y‡—~y]z§–{i}nht”‹šuŠ€r@hLb~sbu—P’r¤¢m˜˜f±wž~li1lQj†xG|n]T ›~„>ƒt®ƒƒz|ƒ£|wU¨wyPƒK“?{¢x‹¤s_€[–r›b“ž~˜{Œ”“d¦xf|‹~ƒx‚ŒÃƒ‘e\tyz–†€³y}nj‚ˆrS{dZ€p`™š`›V~Œzo}©…‰ l–t]‹vgx„džs®„‰Œ`‡gp~oƒa–”ƒšgpkv’˜i±€z´‹’r•.~‘[ƒ›z„‚•‚[oxytšøxŒuÄ¥r…—w}’„rF”s‘Ëz¢¨fi}­kz‘ƒP[‡–mƒSZ|†V‰±š†g˜›Z…“©¤ƒ…xŸ®Ž›sŠ‘À§–ˆVx|ŠijŒ£|›@•kœUĶs¨q‚²—¯•h~Y:z‚¦¾rƒOT[šŽ{hoe¤x¨mpc€†|S¦ŒW}OPe¸”…œ¶°wc|•£±Rm¿Ž‹rN®}m¥h‹®o¢l¢[ƒ†’¡ˆwV­¨‚]Z–[a—‹Žlj‘myxby~y€“© S9‚“prhtvSyˆ˜X¯‰–x_‚Ÿ}xi{©Z¬[6n^¯›}CœgtžtŽxc‘¯V–Ÿv¦ºÔ‹u°cŸ˜}`l–X¢Ou¨m‹uY–_«PsÃ|hˆ©_g](«€`Šl¶_’¯qy~@yat¶…`J±r†m«‚GmŠÆ…ž»–wtŸ™†b\šŽ‹“˜£‹q‚“}nYlU·x`rm‚•Kz€‚nl„xk_Z™†}’\Oz”wŠ—•FŽ»–kuh{¾]~“ˆ@·CdM˜‘kDVHo™DŒU\Hk–zRj’›„q„·‡ÊwK®8~†½„€‹zxq•Urx|¢‰¥p€‡i¹‹³‘š|”hÆL•¤hœhv†|b¢c`€m}ms´Ÿ¶ƒ¡‡…lv§ˆ[ºvf”}‰vg¦€‚’•Z[otH`–i´h›¨S‹yDLºŽ™xfân£h‹¥žJTP©U“z}š†€NŒÊ{©}sVše|‰e£Ÿl_¨›Zl’Ãqf•’šxŒ¨’‹ÜbtMmŠujxGœ‡¦xz§§—„ql³s\ŠY£šŠ§“‰¦ŒŠWmNŒ…Ma¹cv‰wˆY]mܘU—‰~pXW¿~Χb…[ž”4€§/d{zuXMͶP„ž¢’lpe›o£Ž[‹Š’­œI‘zu…—u†g¥„’†² …sW‚}£“n„nW™IªÃ”qˆš‹¬`Vx˜}±n„Kƒlkw…ja|{ˆ?+ŒP›‹>}H‘Yv€RŒn¢‰w‡£b`|«‹Ÿ…˜o¨‹a ØšzŽƒ„e“–A®qTYÎŽpA?t¤wz[Fq¼¬­i|Szv€œr€¯ž”zwÁµq…Yß“C¢³Ys…cÀ4oLˆ[}zXrb„{°žtˆ‡œG|b>‘€r‡q7¥kgsA]tŒfX8“vˆÌƃVšµ𢾷e¡Špv³ƒ‡±³ÉqyW•–\žd—§§…gŒAtdšË˜OC€†\hcr8†F§tžq”Àtcvo[1h•Ut—›†|H´˜¡˜·§P‰c‘Za‰vŠƒS†–ns¢œv•m†#¯ z‰f¯iªŽe’’j\|jh€º—¶¼wby‰¤”…°q°‡s˜L…sc6Ÿ€uiŠVV]®ž™–aQÅH¦…I~{ƒÃ²g™‰tŸgd¾—s|^¥–`_]x|¢ŒEj«‰WÅLd¶z¢ƒk_˜¦wWŽ`ŒxYÀkƒz™Ÿ¤”ž¤’z…kPe¡›€FN¤ˆn™Np¤dK _¬irp–j¢žiš‹”¸[’±ŒRo•{Õn7¤‘MPƒkrQtŽ£n›g…li@““†¾¡—£xp±s„ex”^TmUŽq’kbkœjƒÇ†KWƒ]cq‹­r£“£gv”…†§sf„ž¢g–r}’yv~nvtŒ}‡pŽ…hy|xig€r„„qg~C’‡“Ž•t‰‘˜‚ƒk–‚±¡Ydxa{Š}‹|qi~p“‚aYk£‘ˆŠ””t|[vˆ”sb“­”Šˆ‡Š—ŽŸSešŸtp}eo­c‰|[“…v q¹YŽL~©­“u’L•|‹•{¬s…b‚g†‰l|bˆ}mŸo—|Y€h”ˆ~[ŸŽµt‚¢h~‡ŠTsž‘Š~ƒgxZn‰sqze\Ÿkž”‡§›mHf|oT`jŒLe»FoZœšvlhzllv‰w°{t‘tŸŽ‘£y–|›[µ§º¬kp‚]s…Z†a1`l™s^]aªSyËk²Sž9’>Vˆ‰Qvi{Ò _p[—œc{Ÿ^]žm§zŠŒVx~»’‚¿¥ož«Z𗤬[FUhWzi–k[µ‰‘[damƒ‰ÊnÈedž±RIe†AvRvS›x—rc¥c^bDˆ~}~§Ò~uÂ['ŽR“‘¦²€ax–n~r™¸‚•[‚…N„r‰Šo†²UupeQ§Œª‚@›Çvj²„xpŽŸe¼fßq‘~o‡žÕ†Ìq‚]ŠtqoX‡¿”—ƒ~¡“t¤’qzœ“_{{ubzme\…®»«}lžf«h[u4VtZ‹ˆg_Äq`~rW²Ÿ}Z_†l”ƒ;~–’x¹Žš¢•˜Œ“ŒFulm[i~•w`œjpˆokW}V_¥=“Ójƒil©Ÿ‘graГ>tÊz¢Œl}™ŸS8vŠlyW€q“ŒvÃQˆ„ŒSJ«Š¢sY„€T˜pcjˆ±™¬ŒHrsY—9uK“ˆjŠF„[]®yÂodek”šµb‚s¤gYrƒˆo‹‘{P`\n¢c•\»mŒmǨ¦PÒ™E_i’|Zœ¼¡…žh:——˜f€Wœ™kol7uyxª•¥…lÁŠbfVw`~fqwyoO¥H†7asC€a¹—a^éur°VfÓkŠohfŒžg‰^ЦdN˜oj‡†aŽgbTfzž}…}ŽŠ¼‡X­sŽYˆŠIidšgzvkŒx¤Œ¨g{£‰€›‰lpmšmu~„n…¨vv„h›kaR‡”¡†jhˆ~poqvŠYt£œ“t€hq¥ ž¬fŒ}œ^¡veohž{aD¡zTy‰Q•¢ E˜\M6ƒ”\UŽ}•Ôbi\k_|pV”f{/ mgŽv‘°–W'‰°ÆUd–¢•lŽŠ_«r‹ež²y…­a]޳n‚†ˆj`ZŽZ –cOd¦ÄJAsl|g²g›tŸx·šP¾jlolo]\‚I¸z‚“~d›Ml”³˜.”OX³ež“¥XvŽYžkƒÈ€˜rŠ:†~O’RYlpnª†ˆn“m­§x|˜AsxÞ§qTޤ…®br¦Š]bmŠØhŸIœ‘ŒXn‡Šˆ‹‰® ™UŸµ‚·~ŒW³ˆXl2@uMpŠ‚I_}§zxo‰¹šqtzˆ®Wœ“‡Vz‘®‹V‹Á…ž¬§]N{Z­aP¾¨n‘ŽŽ—s†¤¢˜b”Mq{p’H™‘˜Z]†W¥u›RSc»¥oŠ¥„w„¡¸™Xi¤UW©fnqq‹‡|”w“­’Œ…5…¯l„p6lhLm–šªvvWnÇz^jAo‹žLxw…Ÿ\K{¹Ÿ„”{uIWQpjb?3¢—‘€Vnza‡–Œ©—l‰t™gl¡™œ™—|{‹¦vHzsuU’¢^µ{“…™¾sphy“{‘‚žlš7 ti‚ƒ—†{¦myix„‰slftš~‚žy¢TGnW–~Ye¢‰h™l“¸º‘y‹FdyQz -r„»ˆ“ny¾c–›…“¥‰›™m–‰\ƒŒis}sÃÚ†–z±X®]z©NÀ|”ob„•ƒ»l{­µY©l«j”¢i“x{†­P`P^f_˜‡“mkvÀœbxbD•©aŠž•fŒƒÄ›xvovœ·Vl™ Ž“”q‘f)¬oªdÒjŽP¨¶«K~jm„p†b„©/™£»m¢’´™\Œ`’j–—a“‚Œ…ev¨p}¡†Åk[©X•–©…[ µ|v‰™u_‚Œ©mv©­«C•a“—¨–¯›„iœs®f`§…mMš—epf¨o²Ã¶¹wm^K³r|y†˜S{›u¡‹‘ƨw|™«s¢[©–“|n}…wt}§Y¢gy•´xØ™m´N›osŠI‰JŸXiœ’{ކœKŒChföuO}µ°gŒƒ–^d³gÊqŽZ†¢}„„€¤Âœƒ¨¸×¯ƒmV²Úb’‰Uuz)Xo}Lj‚gv—w‚ni™O”u@𙩅¡x_}™MlVÖqDkp‘¦¢€¼£GQ¦oYІØY€OX[vx€s¦€S¦¤ž~Fƒ„¨‡¤™À¯d‰z»›©ÇVqG£n ‰«b…g£cvx°=ªºh_TQ„hŠd²€³¾|rœ.qx°fti™}uh¬ˆ‰«˜k›{†c>™Ž`DA‡‡¯~–Q™{˜‚®b­m¸ª}m }¸©Ktmsaw{Mš…u xm–‘cw}¹Àƒwi…‘‰Z{nYrXipd‡OzŸ‰tvkpgv²‘CˆV|^UŒyq|¸„Šž™†up†gP‰£¨u@†‹e`zc}ƒgbn’Š`­oiÍf›¬Ž”p`„A€}¬v—aw‡×‰—{€l•œ±Yžewmclikp“º—DY€~¡=‘šc¨?~Šys_{rn¡‰x‘Ž‚yŽSh…xEˆhpƒÞ\~Q”ST†N€x´˜šf¤_[²A›_cskydŸ™™…bi—ŽuOU‡€Wˆw„™¢Lu{’Š_±W“QYy†N“‘H_±„pacm¨kH¥b«qÂ[p¡qbh¯aKÂ`‰}Ž•}•„½l„[jc–®<|QN‰f«q{…Šx\1“vlži„¦V{MpS†’€v¡§zJW€Íj¦`ª‡¤„—xX†SrN›b/t‘a–¥“Ï|‰X†U9‡t7e‚£jNˆ‰¸H}ˆ®a|g‰ªxgñŒ€‡¦‘yœ¶À”lR˜zU{g£ŸÓqP>lœxwX’ƒmk…[wŽwƒN„¯~j;wyl„m¥¨…¥vbzœ|¡{Œ¤KN™q[½w¼„^s‚rFP|or‡€“v^™¡tª›zuˆzžŸx€Hžg¾„‚`°dt‚‹dArvq|ƒƒ‡”VNQˆŒf¢|Ÿr›Æ„[}mµ`Ìžh¹Æ[u­vhzZ}r’Sˆ¦H„Å]ÿ q\ŸVZzµ‚m~W{Žxn ‡dŸIvIpb‡dw•“”8€‡á}…£[‰±¨ZŒ••m[JT€›ˆrt¡ZOyˆ¬™˜{µ•‚i•Œw†ƒ7Og•td”x†YŒŠ`›§k“‰„¢h¥¡m‚ŽtgŽdŒv‘›q¾¢’•sš—b‡{›d_~¡z[¡j{oŠg’|v•x¨ˆrt–`oc¡fUezŒ¦fjv š¼s}t›n‚v’VkŸt¯‘—¤–cx‚vy{ž©˜pp–¡¢t‰|™s•~„°€qwup”f£©mp~ Œ“9‘Ÿ–qˆ»’qsÂr‚_œ’“ž¤€fÁ©•Žk¬°NŠœ³šjZk¾˜˜j ‚¡¿YMt‘–Mx“˜€¨¼y‰¬_‰}’yˆ€s‰·`u§O£‡¡wYN¡gª©X=m/r[l“9ŒkŒ€†Fpg“lj«gˆ\h¢|yhsLrã<7¢}ŒE§¢;†¥·Z“\4lbYˆœ¼\–tŠ~y”Ÿ<Œ–˜cwkšŠ=pž¬y›“|uµNUÒ©¨vTsq‡}©|CŽg£YY“˜ŽG ‰Ÿ]†3gpÉ–}juSp¥]V“u”€l_[Y¸ªft‘x³]ebBx¸tž’eaww|C‰”Žp|—¬£x˜h|Q{‹Œe†x{¬ÅF}fu|7mªMxT¨ˆ€‹l‡xçqº…¼o~ƒ}c‘‹›j_>r|€Ÿ{c²«”’–pMŸ”r™X‚]Osuw|ˆ‹Ž}|r–ˆÐ˜ox+q`yšo¢¤I›Žz€zˆ€d|‰wIc¸k}ªe}k]‚‚f|\Ÿ„nnož“{“`˜Äu`u·Yµ’yvy°‡¯¤‘”«^tlEz±T‚‹|{‰h¤]Œ½q®Ž¬NŸgÝi{ÙÕ‹‡Q­Šo’zi«jm©Qe°}¬u£M„­IÆg~SŒSX~­—ª®v„…Ž’‘ewFjC>G}Ÿv’–s^ЃŽ~^}nL}É'wiejŒ™[°›ƒÄ¢uKb…ZesYƒdœhca¡€ˆœ‚t”‚j‰xxTŽgr‰D°F•t³„Rn‰”‹{ctt[y¤€‡p‡p^y•«¥ŽXa‚PŽ‘c{¦„jŠroaŠv\­¦²uˆzµCc—€V Žxbœdžƒ¥~ ¾ m1y„Én…Ž}c`q•wÏ‘›PE²‰cÏR›s}y‚„yt|ĉ;¢x—˜›a@lŠuH^N3{„’—Žm’±‰ÅV£„“­ZG<µžmZj~šy¨—‡rx´9PŽiwº¯‡u…{Z»f˜…¬n¤K‹FiŒS»Ubgo~˜‡_‘R«‰…tYpŠ«—„œunSm/|‹ª£œ•‰€l2h¦d–Ÿ‹yujE‡‰|žœ”„y›|u›„x‚žqv`oh_bo6š—¤’šssjfƒ‡€`›ŠcQ¤ƒƒ{ˆhw™x¨yƒ®@ŠŒy‡dy§oŒT‹€wSO`?sŽ|dvjg¶c˜vqc²lnL©ÜlŒj–q]ª±pxfz´D«¡XŸ‹‚¦•œ…f”Œ¹‹[W¨œ†ÝÃpk¢³ZÔx…µž¹€py™i‰PyvVxp\a{JŠ…h¿o§:PwQp\^„’s—˜|Ÿ€´Z—‹ƒUʈÃMá°Ž™ÉŽ~Ò‰†œ°O‹Œµ’­¢_{’zŠxjb|££F—{zŠ‚etR>ƒ™²ž}šŽ°akЉˆ€Ïuk•XKvÍ‚/[F”œoxÀ•nh|ƒ”‰?JS€†;¯viS’[„¨Vpxe†Š_rW‰zŒŽg~ƒD=e§~†]|V…©™pŽŸWbyo[K›ŒÈ~}Vƒh·BYzlWbžU¨ ¡H~cvYTNo|zp¡–{|{šÎ`—Lž{Št€xS{Ëhœ’‚xŠb·OˆoŠ¿†š²n¥Andx››y±» „€õ€–\ŽQM¬o£f£ª…~™˜khƒ¦ˆ„Puhnš¬€r‹Ëx_ŽRh›ƒP™`‘~ƒŸ„¥w]~>²l¢„¤Ž¨ª„²º…@ˆ‰2Š~Z®Ï“ºt^ž™vw€T‘ˆ{™€m±‡qyq–@uRu–“¥o…¾_—–‹šY^b’¦n±J¥¸7WF¬ŽR”]†•–;XORr|’jÐXQq€¤^ƒrRrvªOŠu~oNÀ¦EÁ]mG’†–®q…^£Žy™¾’nXsŽŒ†Š”yZXd‹€{ZŒsÉ‹€›|_Še]hT¨Äªfc“‡«Zh«­Ž]h\‰lƒU|–gˆˆožµ\¨Éw¸©¸h‡y•ŠËh¿…š˜eR}•tsŸIuRAgx„¬žÇ„†‚Šmvfht™‹V…ψdU§Mežhˆ­nl‘…X‘‡žh}®ugnKXÀ]yŒEˆjOur‡z«V1œU]d¶‡k™bkp›–€fƒk•u™dsNya†m†Xƃq‡§`¯lJyr~˜r~w‹aˆGz‚¤‹„…wc•yu‹H¨oy‚Jo‘\¢oz„^–w=r~¡ŒVQ~A•ºƒmÌ^Co™gªƒxwtÙŒe³Pt£™dšŠLi€ƒ8©mndŸ}•qQ®*¨t½†ß—Y¸²§dYopX‡“K_ œfqs…UEuœT‰D²n€‹Xwˆ‡œŠŒp¶pИž{£c£^Whªkev‘q=±ŽEÃ=‘j8ºq¯_«É¡qqŒ©l–ºQ§€¬SršÍƒxGt0iœAxŒ§{Fuybf‘sµpY„@Gj>¨Š†—Y_c”‹D‡\ŠIš—¢š¯’ñJmƒc†Œ|¥‹@¼vmp¿S{‘p;—ƒ‡?g\=q¶–Y|ck‚aÈŽ»š[nˆ‰rz…v•‡R¢cu|‰…ƒ|¥`O8£‚Œtp¬†‹ˆÐˆœƒ§QQÈ—c…QŸ˜ŠS„¯›ŠVc|tB Iv‹[‰‰•žxY‰‚œ˜¦S~ŽŠœÍ¡y’˜PnS[e[}{AŤ±;—¸Gyž©{†³fwkŠO¦m—VS[”Q®‰j}m—c`ln…j›‹wo–¹h¢XiÂe°’£…šgjm|‰lc…‘uŠ€d\kˆŽ`¤—|¡yU`¸kº‡vßLX‘«\b‡ªƒfaVrtoW‚M…„ŒÉvmSmypFu†™by™“[ŽqÓˆ{Tvh‹‚§k”‘Ì»~]všKy}[~‡\g–vTf‘Ÿrq«¤¦Fo‘št¶Nvo¨¯”‚ºl²Q]”žc‚“gzsÊyIghVw˜¸owˆs\yV¤œ…Ryˆo„rw™†‰‹[e~nŽ’E­z‘†mž¢Šdxufo³¬{UgpŒhS‰^”H‘}o™Ë~ixu©˜ˆ]ª„ˆ²K‡w”_X‚±“[©j›£z|’˜tq‰xˆ•x}ar•{i•j…pc~iƒ‡Œ€yycoVw—x„uƒRc„^w¢wtc„»q‡r…OsbŒ…†_g6•]X~¡sidS‚W[†‡`ŠT‘=kYvS(vvV«¬ƒs‘mrކiqec„ŽT“qwˆ³“ˆp~”™~˜¨€/Mª¨LÀœ‚Y §E”™•¤­qx›g^—™~ƒ|Ðw[”s½Šo„do~uZ¢€˜˜zb~qxV’œ–;ˆŒ¡‰GŒW¶_dth¯jc¢oj_p”_}¤œš{\kw]~¥¸“„ˆ”O€œŒFI©nz‰©rŽ"o*ž²cjY€¶¢d²„k sc‰y5­‹qQp’ „®}yqmr‚p›¡^•¬`e}€u”™×}„[@«–¦ŒwLhW~‡‚¶™¢r‚¤˜6yŠv¤—ÇjktsT‚‹Œ?“™¡¨‡{Çq€ƒd‡”c†\E •w†]•X•‰–™—hQOn‡_z…•«[qÏ­¤‘”††z{vÀ\¯y¥„^Šq\`”¤ys¢qm[‚©s¦£º[§¦ºjƒg››cQ{Y›}o†5³q­bª¯aƒ†]v…“Vl‡b‚q|~œY…“~|m‹xx“‡¨~o—|~{\Œ[nU_r†\ lžeC’WjŽ‚ƒ[kWXƒ„­š€‹KhI|fTz~• —]“Š„fª“^y©¡œ€’h œj}SwK‡•œbxº©‘†m~QQ¤OŒ›†Qk`—x’+~uk{xfcyTY_}Šo\fyy [ªz„E{–žS”®jMx€šg’qjÊrJŠ7xhQi.¦ZOUm8i”P}c­nsœÁ’¶ƒ™J~Y†€šn}…Vy™¢”£«µ¡–—h‡gd—^¼˜„Äb`½™–c­m ‹}e¡viÆ‘¡†|qœ³p|ÀsmT•uˆŠž„Oˆjnr“tom„°[²gel›¤œw•Šˆ—Ušuˆqi[q›©bbŠ~s~pŠvŒÆ”}w¬qx’qlŒ™–‘Š‚qD›d^‹`•q”{¡u}U‘{Ÿ]|†b«‚zŠkl”†qˆr“lo‰eu_mq¡«uO°„¿™ˆr„‰—²“w˜kHƒ^h€nobGa{ž¢£©n«ƒ€h©h“ˆ—l–Îi|‚Sއ>‚~{a‰P{bm±•ŸŸatU”nŸvc›„g[~anX‚šˆrhzAšlmT RŽM{hjT‰iƒaPw˜È¯p|‡¯Ž‡l›£ÄÁ›Š‰†cŸ¯ƒc½Vio…nÅ ”…€…ktlœ–tW^}b§­“‰^¨z{‡l_n~–e®‡X[”v¥¥…‹|q€ ™s¢…lXŽ…×Av[ž’\j›A’€À«ÄS´‹¸y£‘p†{…®¦CJtŸnO\gTxa‘ÆyjÄ[|ƒv’RkHm‡ƒOrk8‘œ‘.†1‰„щ´fŠ–N~‰¿’ \s‰l[WÃ[E›¥f¶¶¡´‘ZYgtug*aozwkŒÄƒl‚ºpX@69„²…`ltX^a‡mvbqaq‡Ucg«¿x‰t\sz»qS„E‚gyv`Fvnay‘_‰aT³VOFªVR}X‡hˆh‰¶’¾Z]ÖˆeR_Y–js@ƒ“¤i¹©s|›hˆ«’Ó}_—˜™Ê™¨}„jžm—Xz•x±ÀUn«œv‡jvnŠsk†u“q‰[›WogcWƒrpz=Ÿt~tdvtc”š=dc¸‰€}wg>qœŽ}ŽŽ€pJ©W]mU–ÆUjwh~’l¡un†®‡†d]s}|Zs£x‰pme_zƒ‡ˆ`U³˜ebµ“œP°fQ’»‰£·M vru_§x^±‹žu¢ƒ©e•½›WŽ\Ijž²h˜¾nÁŠ“‡P°X…Ÿ°À„O¡i«Hf‰’œi­y[´ƒcTM|€µ‹[¤”5ˆl°žŸd„^Œrfˆƒkhrl0ki{hx{nN¬‰yF§kY¦ŸW²o™YÀd°x?m¡Z´•Ÿ‹ov0CLx|KG—n‡Zj™bqW{¤X~>»bnvY·”¢¥‰ZlŽŠSšˆ•Ïœ{‚o~O^n¡[uxNGyz0oJƒt—Ýx~ig‚_T‹l·cRŒÊœh™Zd¤–v‚|y‘›}¯¤ŒÐŸ§¥`¡ pŽ«‡~tas‡Tz†¦›j‹Š{ogºÄBfzw´z‹‚¥v6Zq~¥da‘wo†he¿yd¬,sŒ€Bš…k|y‘R|z™[Q¦¦—;‘k»§±‚miQÄouVi©bˆ—Ž~a_^‘R­¸VA‚–…‰ˆ¦‘{€vjckŠ||¦l‹•eŽk¤{Tm­pÊ_†€|•„–|‰gŒ~’€’ŒŠ†¸kl““_q¤rx{j¼‹”B›G‚h‚`_pw™‹«pƒw‚Y¥È_e|oDƒ”±R§•x˜xÕª„‘bs?Šn ¢«‹²Ÿ¨a…w¹,{ƒ§£W]Œd‚zuxf;sˆ†rVQAd‡aJnG†rUƒtЙІ³j†mZ˜~žŽC?x´©‘©lqqrr®±™jn¢œ¯œ±•¸œ]Œ’vå¾q}Œ†gfWŠg¹wqz¦ŠlXƒv?‹k|ŒzS5ˆ‰J —LVzIyzÎI¶hºžŠorwŠu—¢Žwc¦„Ž¥¯g€}\Ÿ—š„†TdtMi’Œ“n¼–¥W‚µq€j™´“‹“{yH•¡‘P¤_YŸ”vOŽ‹Y¦©ž°Žštª€¬gH½`~fv¨k’Špx¡™¨¥tŠ«b¤uŒ;ƒVx¬y\˜Hsv†YTmu†Žs¡J€@[—|<Ž‹›M|w’oŽ­_«Žb–€m’imylŠÑpSkŸ‡^œeC§k¢µjT‹zhs¥¦swo™œlYyz‚€„G‘‡ ˆ¼xg„n‘gsˆ˜bI^_›ž\wxvn‚{] ÆÒ¦§{YcY‡¥t}h[IucŽU„†VX‘njR‰ªd¡4N›}»°GwlŠ‹iN`‰„ˆt„Ž«•x¨„£…~dtk°Ã†Pfœ“K ‚W»o€q‹e—j—X|sc”\|—”g„‘²”i‚…´€h“‰a†—O|²‰—„\bpS™‡ƒukˆ}†xj‘dt–p’‡¢{’}~w|{RšuzƒV^hz”ty¢“–Œ‡}„p¥{‹~©…nš}¤W¯§mH’«‰Wh’|‚¯†lè –rX“N¨x„‹„’r¤¨´h‚cC€N—u~™ˆ¡eexl‚VW‡tŽƒ‡› t”™ahª¨‡Œ¶€{–V{‘T—‹[`~†h_gyq›|mqrQVˆL«…yXQk˜„d…gy˜xˆ^Œ}l}[\lu^yuuÀ¨b•t¤…Zy§y~`w„ƒbƒyf’¨|{YƒYpq~“nRul`ws–hj~`““‚‘|Œ ›snrr{ˆ¥¥U¨gº·WXRªh’S£VGek¤Š›ˆ±d„—…xT“«lp²›ªšŠW?–˜ŒdiaË„jƒV9¯Ê}—•g}žawhPIc”]Xg4‡et~jŠ;™_NÆO”7¥ˆ§ƒhŠru¡”`H±—‰xª‹½‹€xƒˆr®‚F‹pмA…™9sPv€u~wvq˜´‰6Á°–j+¶ˆXs³g£u†‹”‰Rfš‹wvª`’¡ŒA¬+—„Cz“¥›vXŠ‹•†^”W†¶³k ?ˆ›kF^ÝÈc´f“FP±z £»yC¯„}n‡°–]—uH’•}Fh³jzR|g”sJ¥{Šã]Àf©œ„vŠo•¡7•_žYnz®ž†—U¥…tvzaty„µftcx¨P„j¤^O|{£hd†ˆ‡™u¦¼tfb¤YkÃŒª?h–l˜whKp¹‹tiW_‘œª–ueQ˜q„¡rŒ„lvŠ”Ž|b‰‡Ž¯zY™€–S€‰¬¡œažia–¢j|eZTn{•dp‰Œ›‘©_Фˆ|yªKz}Fˆ|sYªuXwzœžlN‡}ynzvŒsŽ˜Ÿnª˜wI–s¢` ^©|`Š”‹{Žqf仺mgBŸys†aw©›^¼_OÃvƒÂ‹vnv¾Drl–Xn…ŠŸ¢s6j”Éz€usqqaP‡]ª|]x„ny‘h~Y‘–^އTdwŸ˜xq}r}”rrsš‹—_Šž¤o€ƒ“r„£™dvld„“›Œª‡‡jvˆvŸˆ‡z‘rv†‰„‹rk€˜Š¡mm‘zm•ky’}J‚«‚p“²†…–oop\¡•—‡…‰LeHup^¾–—p§]'™Lf|›€ÛX”†S´rd†qŠ|‰VZ}¡¢c/’y_rvŽ˜Š‰s{‡WD­…|Åo¢srˆ?L‚}“[ƒ˜V“Š|±£½t‡–f†”(„Q‹¶¦«h”ƒr›ž²7{_­bV™98—§Tbf_¦k{Ž^u|€q‰€|—•{v𝅬ˆ„˜‹¢‹k”ut³Š™–”vcЇ~Vnp™„¤œqÃ~´P€Æ‹t¤qg‘_Upl•b¥š¬™±¥‡f‰¥ƒ¥›Š†ŸBQd;‡ˆˆŠYy˜±u|ë;™u…smk¤„ypš–]Î}vnqQdmexƒ„©|‰’ä‰\€~¿|b‰~za‚w£`˜¬†Ã†“ƒ¢viEH­uI|†…œ~›\uy|_E‘}Stž‰|UƒŸ”z§‚svNq’—ƒ“yjcf© |yjZvJafŠÊ‡†;€]žŽZ³ƒQ€qiy9„c^x”v‰nr•„¢j’‰]ŽV‰^­|–VT¶’.XK™x„šy–®6“JZ”0J¨Šžif¿N£GqƒX|™{e.‘²Ây_h‹Kªh´ ¡yyXazTbkvb”R\”«dxO]„‡…§Atio£k{ª€\•­gVv`ž…mn¶Ã€¾‚«œ^YYˆQ‚Kv›¤‚¬g„—}k “§dxL¦{]M‘Ypz š†£“M‚rˆ©W§™Œ¤“§•¹aq^nžx™qotšƒrŠmlˆQ£yŠ_\JrY}¼s’_sS‚¬–;>x`‹„מca†Œf“n]q€_q…Љrs˜‚xoÅiQoˆcqkŸŠ“™‡’€œ„œ›b©¢¡WI–„¡ŽrÃV’Ÿhv™Mƒ‘²_’}y†Wol’˜LQ’Àx¯}¬nŒ¥z£Œˆ‡…jbˆc±qn¢oš2[fStŠ~c}^”Á™vy“ÒK…ˆ–¤fj€sƒŒ•lppmgšpPŠƒŒ¼šj4o—p`y~M]‰ŒY”rm…ÏŸ«c„¸†mSŠ3’‰ÆŸS‡a•s«wrVn p…• ƒ\¡„7—utVЍ‰°r’…v‘šdnŸ€Šflƒ«¢¡¤µ‘‡¡©‘•Ä{WR]_eoµŒcrU‘ƒ_Šei…šª‰h†m¾p€‚†”ˆv±´Œˆ?•²wbzm¦’˜8SŽ”‡Y·N£n}(Io}°M°“²fPsbjuVtwm_­v‚º‡‘‹¥1“ >‚q~|–ªtЉdv{‡\yÎs‰…ˆqRvg †¬y”x††œ§²ŸŒYˆ˜ˆˆ¿°C?›q~˜J¨Šdn`‡ºSTfkY¤8†–š\ƒ”œ˜w™m‹´cÂ}ƒ}’v@QÀ“Ysf¢aˆ—S|{³„CªÖ‘l‰L¡‰z’©eBpg¦hrU]QzYbˆfƒb•o„—ccŽˆgX‰ŒŒÃv~‘²‚’•ƒ™–€_w—}zjif™ƒ¡}U‰‡©vhrž•¬e„fh gl¡|µG¨”„–ŒƒŽ]dŸ\ŒfbEˆg“7³Œž]yŽ¿x\“ygŠu‹•¤©lZœˆ‰‘¡uvF“•}r^”ÜKŒŸiaUd¤kr–·u¥qkrqTž˜¼©{rWgІ}› €Ÿpp—ƒliYZžœb¤€qm…¦R^jtlN^[§›pNdu~gd‡MŠ©–¨¢ hb£rk_ˆšGktu´4~œžzƒ^‰2h˜”…r{¶;k\ŽL“ˆHvˆ?‡¦Zˆ…Hž›a¢OyK\œs cczŽ»XkÖ|c’¦’³ŸfZo£r|rДˆ~p«¿–™—aˆ³o,mj†}wŽn`¡Š3‰A^a„žN–„©–ÀiSv`‹aǬ{oŒJ¬umto4Úmb•g†ËYS q›Â+£‘-P'znszƒuol¦Vˆh’©o™•Œi¤qU‘kŽ{‹LƒuOAq‘hš`w»vUd¤“„lg¡ˆGp›™“˜w‚Š“\i’Ê|nÏ—“x‰m¢œ_—O[zŒ‡|uqlXjZŸK•¿†~zÛy§M{Š™th`§u‡v£Xr„mSeawmzŠÆv\›€Y~Š€ŽGh\·omŸuar‡€~œ¸i”‡›k¨±Šµ™ƒ|e–m¡¢¡¯œ}knl¬…YYfrƒ‚f¸uš”‡šq¥v¤„‡Š¥x’¯„Ëg~ˆƒtyv}‰ŽY¥vc9{¤nšqtp£l— ¡XvˆRqwd}ƒc`wrŠz~Ò|šYmpP@ˆžpC±¸Lqqq~{±ŽuY’ž„”C||c«Žˆ€¨Ss¤‚zŽy°MZŸwwvž]¤‰¹x{»Œfc¬•›t¢‘NŠŽiŠ–ÆŒzŒ™™msn‰§nPU”‰m`ËCa©¾©a{‚jj—„R»5X†¨kNŽbž“¯)‹nk`Œ˜•¢«Y}Ín£Ã†›[ÒÈ¢‹LrbZV|n¥‰’¯Ns`‡°ž“·b]Ys”˜‚¤p‹¨†žmlZ°¥UdŠHlžw‰o¡£]†Š¤žx“—^jrn[¼§´Ži¡’©• ’{Wx–7¸`›^o±MމB›¬žÉ•q¬˜‡}‘“yzew£kqr…„qjqZ€Ersf„oljcuœv®€r|„£O`vzO–ršx§cm”}wx—{R†z^›\n†ˆ”z†t‰€Œ”mCj©fy£W€g±v’rª”rwt¯¬‡B‘xVzœo›0•jšr\ŽŒtm†xT‰vtoS½§ei¦y¡·eiO™ˆ‘eŒ~¨cCx¯¨ª_„bŸŠUF‹u–[Ž’B–uiyO…Trvv{Ćš ›t§G…„z°]¥g{†peG^Åt‡‰wtn~¹Zžc†uœ‹„nkcˆ]¤>«¦ŸoHº§žy—¨]®gm”}v€œW”’s|lž†k¼dƒC†Šf‡{¢–Ot²«†t]Ÿt`~vPxD…ž‹ŽŽ†|±Vƒ€ry•„bj’DbŸš‡«[IˆmŸq}v¥Œ*”ƒi”o“‰lv®{€†^blˆ’QŠhŠ’o¦v›~x^ƒ3Df œ†…“Š{Ušq¡¨aOg…^ž£–qZf¤˜ªG~jd¦s§u“w§k”Qwiš”dµQ›~„SxnpŒº¡qxiKu¦ãnˆ„©„lÒlª~“Wv—§§±:X±gm{ÃI‚™©Zƒ„zk¸|¤ƒ™º‚±u|}ºŠ„…h—ƒ™Zµqlx¤–no ˆ{¦o“…ˆJmKŒ›i¤ŽÄ—”h\™‡ƒ™zo„|_¡´v–€“Ib[”¥šŠ‚ƒƒ€–Jw„qUR‹jor’”F~ŠM|žWpg‹“dkˆ~Š'q£iu’–x|…l¯­…iOYdouNeŽž‰yPvy‘²­”m~™uv–]Vjy‡¡z‡L‰œ¨O¯† ªqvjV’Š^J‚c›‹Tvj©Ot¬ˆ†f˜Œš{ss­­uPp~•~¥Wbm…]žqrÉY{[|r†k´n[]Ž©\¿p†«lgLŠoyW{@‰‰« Rw¡bsÃ]t–¦Jjjqšº¹j@“W…²¢ž¥{l\«m§§¤h¯cSrqœ£µ‚n¥Y€«Vª®r’›ev{µh• q´SyR¦x›¡oXx9œœokw¡ºBŸ~|Ÿ®d±„¨_x‰xiŒu€w‡‹œk•š•e~hm˜Mi¥€z€p†‡Eˆ•|jxš\ƒl|vж~z‘…eRqK‚}‹gi_‹qBpGf‚hƒ~”€X}Wv€…š…{M