From f8fa46c6c263fb4942bd1a0411280f0e602163d2 Mon Sep 17 00:00:00 2001 From: Antoine BERNIER Date: Wed, 10 May 2023 21:00:51 +0200 Subject: [PATCH] `Facemesh` v2 (#1437) * feat(Facemesh): it now looks in the same direction as the face * fix: avoiding creating disposable objects imperatively * feat: origin landmark prop * fix: initial useState value as function initializer --- .storybook/stories/Facemesh.stories.tsx | 12 +- README.md | 33 +- src/core/Facemesh.tsx | 392 ++++++++++-------------- 3 files changed, 210 insertions(+), 227 deletions(-) diff --git a/.storybook/stories/Facemesh.stories.tsx b/.storybook/stories/Facemesh.stories.tsx index 78de3bde3..deb5e3edc 100644 --- a/.storybook/stories/Facemesh.stories.tsx +++ b/.storybook/stories/Facemesh.stories.tsx @@ -20,28 +20,32 @@ export default { ], } -export const FacemeshSt = ({ width, flipY, wireframe, flat, skin }) => ( +export const FacemeshSt = ({ depth, origin, wireframe, flat, skin, debug }) => ( <> - + ) FacemeshSt.args = { - width: undefined, + depth: undefined, + origin: undefined, wireframe: false, flat: true, skin: '#cbcbcb', + debug: true, } FacemeshSt.argTypes = { - width: { control: { type: 'range', min: 0, max: 6.5, step: 0.01 } }, + depth: { control: { type: 'range', min: 0, max: 6.5, step: 0.01 } }, + origin: { control: 'select', options: [undefined, 168, 9] }, wireframe: { control: { type: 'boolean' } }, flat: { control: { type: 'boolean' } }, skin: { control: { type: 'color' } }, + debug: { control: { type: 'boolean' } }, } FacemeshSt.storyName = 'Default' diff --git a/README.md b/README.md index 051c3e2bc..287042c05 100644 --- a/README.md +++ b/README.md @@ -961,13 +961,44 @@ const face = { type FacemeshProps = { /** a MediaPipeFaceMesh object, default: a lambda face */ face?: MediaPipeFaceMesh - /** width of the mesh, default: 1 */ + /** width of the mesh, default: undefined */ width?: number /** or height of the mesh, default: undefined */ height?: number + /** or depth of the mesh, default: 1 */ + depth?: number + /** a landmarks tri supposed to be vertical, default: [159, 386, 200] (see: https://github.com/tensorflow/tfjs-models/tree/master/face-landmarks-detection#mediapipe-facemesh-keypoints) */ + verticalTri?: [number, number, number] + /** a landmark index to be the origin of the mesh. default: undefined (ie. the bbox center) */ + origin?: number + /** debug mode, default: false */ + debug?: boolean } ``` +Ref-api: + +```tsx +const api = useRef() + +const {meshRef, outerRef} = api + + +``` + +```tsx +type FacemeshApi = { + meshRef: React.RefObject + outerRef: React.RefObject +} +``` + +NB: `outerRef` group is oriented as your `face`. You can for example gets its direction: + +```tsx +meshRef.current.localToWorld(new THREE.Vector3(0, 0, -1)) +``` + # Abstractions #### Image diff --git a/src/core/Facemesh.tsx b/src/core/Facemesh.tsx index a0cc1a809..241ba097a 100644 --- a/src/core/Facemesh.tsx +++ b/src/core/Facemesh.tsx @@ -1,246 +1,194 @@ +/* eslint react-hooks/exhaustive-deps: 1 */ import * as React from 'react' -import { Mesh } from 'three' import * as THREE from 'three' +import { useThree } from '@react-three/fiber' +import { Line } from '../core' -export type MediaPipeFaceMesh = typeof MYFACE +export type MediaPipeFaceMesh = typeof FacemeshDatas.SAMPLE_FACE export type FacemeshProps = { - /** a MediaPipeFaceMesh object */ + /** a MediaPipeFaceMesh object, default: a lambda face */ face?: MediaPipeFaceMesh - /** width of the mesh */ + /** width of the mesh, default: undefined */ width?: number - /** or height of the mesh */ + /** or height of the mesh, default: undefined */ height?: number - children?: React.ReactNode -} & Omit + /** or depth of the mesh, default: 1 */ + depth?: number + /** a landmarks tri supposed to be vertical, default: [159, 386, 200] (see: https://github.com/tensorflow/tfjs-models/tree/master/face-landmarks-detection#mediapipe-facemesh-keypoints) */ + verticalTri?: [number, number, number] + /** a landmark index to be the origin of the mesh. default: undefined (ie. the bbox center) */ + origin?: number + /** debug mode, default: false */ + debug?: boolean +} & JSX.IntrinsicElements['group'] -export const Facemesh = React.forwardRef( - ({ face = MYFACE, width = 1, height, children, ...props }, ref) => { - const geometry = React.useMemo(() => { - const geometry = new THREE.BufferGeometry() +export type FacemeshApi = { + meshRef: React.RefObject + outerRef: React.RefObject +} - // Vertices - const arr: number[] = [] - face.keypoints.forEach(({ x, y, z }) => arr.push(x, y, z)) - const vertices = new Float32Array(arr) - geometry.setAttribute('position', new THREE.BufferAttribute(vertices, 3)) +const defaultLookAt = new THREE.Vector3(0, 0, -1) - // Indices - geometry.setIndex(TRIANGULATION) +export const Facemesh = React.forwardRef( + ( + { + face = FacemeshDatas.SAMPLE_FACE, + width = 1, + height, + depth, + verticalTri = [159, 386, 200], + origin, + debug = false, + children, + ...props + }, + fref + ) => { + const outerRef = React.useRef(null) + const meshRef = React.useRef(null) - // center - geometry.translate(-face.box.xMin - face.box.width / 2, -face.box.yMin - face.box.height / 2, 0) + const [sightDir] = React.useState(() => new THREE.Vector3()) + const [sightDirQuaternion] = React.useState(() => new THREE.Quaternion()) - // re-scale - let scale - if (width) scale = (width * 1) / face.box.width // fit in width - if (height) scale = (height * 1) / face.box.height // fit in height - geometry.scale(scale, scale, scale) + const { invalidate } = useThree() - // flipY - geometry.scale(1, -1, 1) + React.useEffect(() => { + meshRef.current?.geometry.setIndex(FacemeshDatas.TRIANGULATION) + }, []) + + const [a] = React.useState(() => new THREE.Vector3()) + const [b] = React.useState(() => new THREE.Vector3()) + const [c] = React.useState(() => new THREE.Vector3()) + const [ab] = React.useState(() => new THREE.Vector3()) + const [ac] = React.useState(() => new THREE.Vector3()) + const [bboxSize] = React.useState(() => new THREE.Vector3()) + React.useEffect(() => { + const geometry = meshRef.current?.geometry + if (!geometry) return + + geometry.setFromPoints(face.keypoints as THREE.Vector3[]) + + // + // A. compute sightDir vector (normal to verticalTri) + // + + a.copy(face.keypoints[verticalTri[0]] as THREE.Vector3) + b.copy(face.keypoints[verticalTri[1]] as THREE.Vector3) + c.copy(face.keypoints[verticalTri[2]] as THREE.Vector3) + + ab.copy(b).sub(a) + ac.copy(c).sub(a) + + sightDir.crossVectors(ac, ab).normalize() + + sightDirQuaternion.setFromUnitVectors(defaultLookAt, sightDir) + const sightDirQuaternionInverse = sightDirQuaternion.clone().invert() + + // + // B. geometry (straightened) + // + + // 1. center (before rotate back) + geometry.computeBoundingBox() + if (debug) invalidate() // invalidate to force re-render for box3Helper (after .computeBoundingBox()) + geometry.center() + + // 2. rotate back + rotate outerRef (once 1.) + geometry.applyQuaternion(sightDirQuaternionInverse) + outerRef.current?.setRotationFromQuaternion(sightDirQuaternion) + + // 3. origin: substract the geometry to that landmark coords (once 1.) + if (origin) { + const position = geometry.getAttribute('position') as THREE.BufferAttribute + geometry.translate(-position.getX(origin), -position.getY(origin), -position.getZ(origin)) + } + + // 4. re-scale + geometry.boundingBox?.getSize(bboxSize) + let scale = 1 + if (width) scale = width / bboxSize.x // fit in width + if (height) scale = height / bboxSize.y // fit in height + if (depth) scale = depth / bboxSize.z // fit in depth + if (scale !== 1) geometry.scale(scale, scale, scale) geometry.computeVertexNormals() + geometry.attributes.position.needsUpdate = true + }, [ + face, + width, + height, + depth, + verticalTri, + origin, + debug, + invalidate, + sightDir, + sightDirQuaternion, + a, + b, + c, + ab, + ac, + bboxSize, + ]) - return geometry - }, [face, width, height]) + // + // API + // + + const api = React.useMemo( + () => ({ + meshRef, + outerRef: outerRef, + }), + [] + ) + React.useImperativeHandle(fref, () => api, [api]) return ( - - - {children} - + + + + {children} + + {debug ? ( + <> + {meshRef.current?.geometry?.boundingBox && ( + + )} + + + ) : null} + + + ) } ) -// Extracted from: https://github.com/tensorflow/tfjs-models/blob/a8f500809f5afe38feea27870c77e7ba03a6ece4/face-landmarks-detection/demos/shared/triangulation.js -// prettier-ignore -export const TRIANGULATION = [ - 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, - 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9, - 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, - 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56, - 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, - 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91, - 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, - 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117, - 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, - 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211, - 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, - 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173, - 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, - 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28, - 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, - 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49, - 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, - 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89, - 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, - 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122, - 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, - 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110, - 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, - 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246, - 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, - 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162, - 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, - 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13, - 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, - 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214, - 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, - 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61, - 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, - 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59, - 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, - 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56, - 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, - 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213, - 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, - 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228, - 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, - 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347, - 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, - 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313, - 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, - 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320, - 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, - 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258, - 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, - 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256, - 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, - 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467, - 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, - 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436, - 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, - 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424, - 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, - 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432, - 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, - 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330, - 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, - 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419, - 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, - 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445, - 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, - 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355, - 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, - 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368, - 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, - 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461, - 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, - 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391, - 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, - 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314, - 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, - 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309, - 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, - 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254, - 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, - 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259, - 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, - 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453, - 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, - 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133, - 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, - 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60, - 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, - 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155, - 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, - 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17, - 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, - 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83, - 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, - 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196, - 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, - 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47, - 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, - 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95, - 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, - 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43, - 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, - 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203, - 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, - 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96, - 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, - 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22, - 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, - 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38, - 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, - 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111, - 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, - 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145, - 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, - 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70, - 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, - 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32, - 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, - 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212, - 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, - 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2, - 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, - 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221, - 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, - 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245, - 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, - 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267, - 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, - 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337, - 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, - 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260, - 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, - 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406, - 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, - 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8, - 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, - 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283, - 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, - 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325, - 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, - 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329, - 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, - 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345, - 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, - 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299, - 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, - 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279, - 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, - 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310, - 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, - 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337, - 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, - 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285, - 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, - 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387, - 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, - 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330, - 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, - 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315, - 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, - 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264, - 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, - 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339, - 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, - 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257, - 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, - 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357, - 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, - 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255]; - -// my face as default (captured with a 640x480 webcam) -// prettier-ignore -export const MYFACE = { - "keypoints": [ - {"x":356.2804412841797,"y":295.1960563659668,"z":-23.786449432373047,"name":"lips"}, - {"x":354.8859405517578,"y":264.69520568847656,"z":-36.718435287475586}, - {"x":355.2180862426758,"y":275.3360366821289,"z":-21.183712482452393}, - {"x":347.349853515625,"y":242.4400234222412,"z":-25.093655586242676},{"x":354.40135955810547,"y":256.67933464050293,"z":-38.23572635650635},{"x":353.7689971923828,"y":247.54886627197266,"z":-34.5475435256958},{"x":352.1288299560547,"y":227.34312057495117,"z":-13.095386028289795},{"x":303.5013198852539,"y":234.67002868652344,"z":12.500141859054565,"name":"rightEye"},{"x":351.09378814697266,"y":211.87547206878662,"z":-6.413471698760986},{"x":350.7115936279297,"y":202.1251630783081,"z":-6.413471698760986},{"x":348.33667755126953,"y":168.7741756439209,"z":6.483500003814697,"name":"faceOval"},{"x":356.4806365966797,"y":299.2995357513428,"z":-23.144519329071045},{"x":356.5511703491211,"y":302.66146659851074,"z":-21.020312309265137},{"x":356.6239547729492,"y":304.1536331176758,"z":-18.137459754943848,"name":"lips"},{"x":356.5807342529297,"y":305.1840591430664,"z":-18.767719268798828,"name":"lips"},{"x":356.8241500854492,"y":308.25711250305176,"z":-20.16829490661621},{"x":357.113037109375,"y":312.26277351379395,"z":-22.10575819015503},{"x":357.34962463378906,"y":317.1123218536377,"z":-21.837315559387207,"name":"lips"},{"x":357.6658630371094,"y":325.51036834716797,"z":-16.27002477645874},{"x":355.0201416015625,"y":269.36279296875,"z":-33.73054027557373},{"x":348.5237503051758,"y":270.33411026000977,"z":-24.93025302886963},{"x":279.97331619262695,"y":213.24176788330078,"z":47.759642601013184,"name":"faceOval"},{"x":322.66529083251953,"y":238.5027265548706,"z":5.535193085670471},{"x":316.0983657836914,"y":239.94489669799805,"z":5.777376294136047},{"x":309.9431610107422,"y":240.24518966674805,"z":7.510589361190796},{"x":301.31994247436523,"y":237.86138534545898,"z":13.118728399276733},{"x":328.14266204833984,"y":235.80496788024902,"z":6.646900177001953},{"x":313.7326431274414,"y":222.11161136627197,"z":3.9887237548828125},{"x":320.45196533203125,"y":221.87729358673096,"z":4.601476192474365},{"x":307.35679626464844,"y":223.63793849945068,"z":5.932023525238037},{"x":303.0031204223633,"y":226.3743782043457,"z":8.479321002960205},{"x":296.80023193359375,"y":242.94299125671387,"z":15.931552648544312},{"x":332.2352981567383,"y":340.77341079711914,"z":-10.165848731994629},{"x":301.38587951660156,"y":233.46447944641113,"z":14.764405488967896,"name":"rightEye"},{"x":279.0147018432617,"y":244.37155723571777,"z":45.77549457550049},{"x":289.60548400878906,"y":239.1807460784912,"z":23.191204071044922},{"x":320.32257080078125,"y":267.1292781829834,"z":-4.954537749290466},{"x":347.64583587646484,"y":294.4955062866211,"z":-23.062820434570312,"name":"lips"},{"x":349.28138732910156,"y":303.1095886230469,"z":-20.238323211669922},{"x":338.9453125,"y":298.19186210632324,"z":-19.456336498260498,"name":"lips"},{"x":333.36788177490234,"y":302.6706790924072,"z":-14.776077270507812,"name":"lips"},{"x":342.89188385009766,"y":304.3561363220215,"z":-17.752301692962646},{"x":337.7375030517578,"y":306.0098361968994,"z":-13.410515785217285},{"x":325.6159210205078,"y":316.22995376586914,"z":-6.681914925575256},{"x":349.0104675292969,"y":264.9818515777588,"z":-36.274919509887695},{"x":347.7138900756836,"y":257.5664806365967,"z":-37.67549514770508},{"x":291.79357528686523,"y":218.88171672821045,"z":11.578094959259033,"name":"rightEyebrow"},{"x":332.2689437866211,"y":247.56946563720703,"z":-3.3730539679527283},{"x":332.0074462890625,"y":267.1201229095459,"z":-19.969879388809204},{"x":331.27952575683594,"y":263.6967658996582,"z":-17.47218608856201},{"x":301.04373931884766,"y":269.56552505493164,"z":3.61815482378006},{"x":347.4863815307617,"y":249.0706443786621,"z":-32.633421421051025},{"x":307.26118087768555,"y":208.2646894454956,"z":1.1591226607561111,"name":"rightEyebrow"},{"x":297.91919708251953,"y":212.22604751586914,"z":5.914516448974609,"name":"rightEyebrow"},{"x":285.1651382446289,"y":197.98450469970703,"z":36.391637325286865,"name":"faceOval"},{"x":337.04097747802734,"y":211.25229835510254,"z":-4.548954665660858},{"x":326.5912628173828,"y":223.16698551177979,"z":6.670243740081787},{"x":320.05664825439453,"y":309.5834255218506,"z":-4.055835008621216},{"x":289.6866226196289,"y":314.617395401001,"z":53.875489234924316,"name":"faceOval"},{"x":337.4256896972656,"y":270.8755302429199,"z":-17.67060160636902},{"x":343.69922637939453,"y":273.0000400543213,"z":-18.756048679351807},{"x":327.4242401123047,"y":309.22399520874023,"z":-4.703601002693176,"name":"lips"},{"x":330.37220001220703,"y":308.3323001861572,"z":-6.442649960517883},{"x":293.87027740478516,"y":207.7961826324463,"z":9.821539521217346,"name":"rightEyebrow"},{"x":332.11437225341797,"y":271.22812271118164,"z":-16.64351224899292},{"x":320.1197814941406,"y":207.40366458892822,"z":-2.48164564371109,"name":"rightEyebrow"},{"x":318.59575271606445,"y":201.07443809509277,"z":-3.110446035861969,"name":"rightEyebrow"},{"x":310.72303771972656,"y":175.75075149536133,"z":13.328815698623657,"name":"faceOval"},{"x":289.67578887939453,"y":202.29835510253906,"z":21.370456218719482},{"x":315.30879974365234,"y":187.35260009765625,"z":5.0304025411605835},{"x":287.8936767578125,"y":216.54793739318848,"z":17.81065821647644,"name":"rightEyebrow"},{"x":283.9391899108887,"y":215.01142501831055,"z":32.04984903335571},{"x":348.35330963134766,"y":299.4155788421631,"z":-22.47924566268921},{"x":341.1790466308594,"y":301.8221855163574,"z":-18.977805376052856},{"x":335.69713592529297,"y":304.4266891479492,"z":-14.682706594467163},{"x":339.4615173339844,"y":272.3654365539551,"z":-16.38674020767212},{"x":328.99600982666016,"y":308.86685371398926,"z":-5.616893768310547},{"x":332.00313568115234,"y":309.1875743865967,"z":-10.335084199905396},{"x":331.0068130493164,"y":307.9274368286133,"z":-6.681914925575256,"name":"lips"},{"x":341.13792419433594,"y":266.4876937866211,"z":-26.56425952911377},{"x":339.02950286865234,"y":305.6663703918457,"z":-12.33674168586731,"name":"lips"},{"x":344.22935485839844,"y":304.9452781677246,"z":-15.161235332489014,"name":"lips"},{"x":350.1844024658203,"y":304.374303817749,"z":-17.5305438041687,"name":"lips"},{"x":348.52630615234375,"y":325.9562301635742,"z":-16.164982318878174},{"x":348.6581802368164,"y":317.1624183654785,"z":-21.510512828826904,"name":"lips"},{"x":348.9766311645508,"y":312.1923065185547,"z":-21.708929538726807},{"x":349.2427444458008,"y":308.0660820007324,"z":-19.643079042434692},{"x":349.67491149902344,"y":305.42747497558594,"z":-18.16080331802368,"name":"lips"},{"x":337.95589447021484,"y":306.6535949707031,"z":-12.803598642349243,"name":"lips"},{"x":337.06878662109375,"y":307.63169288635254,"z":-14.274203777313232},{"x":335.77449798583984,"y":309.8449516296387,"z":-15.698124170303345},{"x":334.6099090576172,"y":312.7997016906738,"z":-14.764405488967896,"name":"lips"},{"x":327.2330856323242,"y":293.80866050720215,"z":-11.864047050476074},{"x":280.97679138183594,"y":279.79928970336914,"z":68.90834331512451,"name":"faceOval"},{"x":355.13843536376953,"y":271.7875671386719,"z":-25.350427627563477},{"x":334.7235870361328,"y":307.4656391143799,"z":-9.302158951759338,"name":"lips"},{"x":333.5293960571289,"y":307.89782524108887,"z":-10.200862884521484},{"x":346.29688262939453,"y":276.4256286621094,"z":-19.748122692108154},{"x":335.16246795654297,"y":276.22097969055176,"z":-12.313398122787476},{"x":345.09132385253906,"y":274.7082996368408,"z":-19.304605722427368},{"x":325.4267883300781,"y":252.95130729675293,"z":-1.6661019623279572},{"x":315.347843170166,"y":259.05200958251953,"z":-0.25604281574487686},{"x":330.44933319091797,"y":267.7570152282715,"z":-14.017432928085327},{"x":294.96768951416016,"y":185.26001930236816,"z":23.903164863586426,"name":"faceOval"},{"x":299.63531494140625,"y":192.7913761138916,"z":12.640198469161987},{"x":304.5452117919922,"y":202.4142837524414,"z":3.244667649269104,"name":"rightEyebrow"},{"x":331.6915512084961,"y":320.0467872619629,"z":-10.632705688476562},{"x":334.5911407470703,"y":201.27566814422607,"z":-6.133356094360352,"name":"rightEyebrow"},{"x":331.4815902709961,"y":185.44180870056152,"z":0.6627205014228821},{"x":328.05816650390625,"y":170.8385467529297,"z":7.358860373497009,"name":"faceOval"},{"x":304.49764251708984,"y":239.76297855377197,"z":10.387605428695679},{"x":290.6382179260254,"y":248.85257720947266,"z":19.03616428375244},{"x":331.5682601928711,"y":233.20727348327637,"z":7.837390303611755},{"x":295.5115509033203,"y":228.9834451675415,"z":14.41426157951355},{"x":336.94332122802734,"y":241.8259334564209,"z":-5.27842104434967},{"x":336.2792205810547,"y":262.7049922943115,"z":-26.12074375152588},{"x":284.4102478027344,"y":255.3262710571289,"z":25.467140674591064},{"x":295.1420593261719,"y":253.02655220031738,"z":12.430112361907959},{"x":303.5196113586426,"y":254.20703887939453,"z":6.139191389083862},{"x":315.73450088500977,"y":251.64799690246582,"z":3.3788898587226868},{"x":324.69661712646484,"y":247.56494522094727,"z":2.3328344523906708},{"x":331.57970428466797,"y":243.02241325378418,"z":1.1423448473215103},{"x":345.6210708618164,"y":229.9976634979248,"z":-10.825285911560059},{"x":286.26644134521484,"y":270.37991523742676,"z":21.708929538726807},{"x":290.2525520324707,"y":228.4921360015869,"z":17.71728754043579},{"x":351.65367126464844,"y":269.3400764465332,"z":-33.450424671173096},{"x":333.1378936767578,"y":253.88388633728027,"z":-7.230473756790161},{"x":277.8318977355957,"y":246.95331573486328,"z":68.20805549621582,"name":"faceOval"},{"x":336.6680908203125,"y":238.10003757476807,"z":0.7688578963279724},{"x":329.95800018310547,"y":269.18323516845703,"z":-7.207130789756775},{"x":299.17491912841797,"y":234.13324356079102,"z":15.95489501953125},{"x":335.61729431152344,"y":258.71752738952637,"z":-23.016133308410645},{"x":284.1079330444336,"y":297.0343494415283,"z":63.25934886932373,"name":"faceOval"},{"x":331.44542694091797,"y":230.6892442703247,"z":9.92658257484436,"name":"rightEye"},{"x":341.41536712646484,"y":253.01264762878418,"z":-29.038610458374023},{"x":303.5472869873047,"y":327.5896739959717,"z":16.725212335586548},{"x":304.7756576538086,"y":337.4389457702637,"z":27.38126277923584,"name":"faceOval"},{"x":280.80501556396484,"y":275.32050132751465,"z":45.0752067565918},{"x":295.43582916259766,"y":318.4501647949219,"z":26.2608003616333},{"x":281.4303207397461,"y":228.7355661392212,"z":40.94350814819336},{"x":331.2549591064453,"y":349.4216537475586,"z":-7.376367449760437},{"x":352.4247741699219,"y":271.7330074310303,"z":-24.953596591949463},{"x":327.5672912597656,"y":260.41900634765625,"z":-5.456410646438599},{"x":284.5432472229004,"y":241.7647933959961,"z":29.668869972229004},{"x":310,"y":235.66174507141113,"z":8.502663969993591,"name":"rightEye"},{"x":315.7071113586426,"y":235.7572603225708,"z":6.938687562942505,"name":"rightEye"},{"x":330.41088104248047,"y":311.04143142700195,"z":-9.325502514839172,"name":"lips"},{"x":288.5377502441406,"y":285.31983375549316,"z":21.837315559387207},{"x":344.55039978027344,"y":359.4300842285156,"z":-6.705257892608643,"name":"faceOval"},{"x":323.41880798339844,"y":351.67362213134766,"z":7.802375555038452,"name":"faceOval"},{"x":314.64088439941406,"y":346.11894607543945,"z":16.36339783668518,"name":"faceOval"},{"x":349.4945526123047,"y":184.8434829711914,"z":-0.21847527474164963},{"x":359.24694061279297,"y":359.8348903656006,"z":-8.403456211090088,"name":"faceOval"},{"x":321.26182556152344,"y":234.64492321014404,"z":6.90950870513916,"name":"rightEye"},{"x":326.318359375,"y":232.90250301361084,"z":8.029969334602356,"name":"rightEye"},{"x":329.6211624145508,"y":231.6195774078369,"z":9.722331762313843,"name":"rightEye"},{"x":285.9398078918457,"y":228.2351303100586,"z":24.650139808654785},{"x":325.79288482666016,"y":227.88007736206055,"z":7.469738721847534,"name":"rightEye"},{"x":320.1699447631836,"y":227.5934886932373,"z":6.168370842933655,"name":"rightEye"},{"x":314.85408782958984,"y":227.85282611846924,"z":6.2675780057907104,"name":"rightEye"},{"x":309.3084907531738,"y":229.1516876220703,"z":7.7031683921813965,"name":"rightEye"},{"x":305.5621337890625,"y":230.92366218566895,"z":9.722331762313843,"name":"rightEye"},{"x":277.8681945800781,"y":228.5354232788086,"z":59.71122741699219,"name":"faceOval"},{"x":306.1444664001465,"y":235.1954698562622,"z":10.603528022766113,"name":"rightEye"},{"x":355.4478454589844,"y":281.96210861206055,"z":-20.565123558044434},{"x":333.02661895751953,"y":288.0105400085449,"z":-14.72939133644104},{"x":337.15728759765625,"y":269.2059516906738,"z":-19.8414945602417},{"x":345.9898376464844,"y":283.5453128814697,"z":-20.4834246635437},{"x":351.48963928222656,"y":219.98916149139404,"z":-7.0378947257995605},{"x":312.39574432373047,"y":336.50628089904785,"z":8.671900033950806},{"x":321.32152557373047,"y":343.1755256652832,"z":0.9067271649837494},{"x":343.78379821777344,"y":353.2975959777832,"z":-14.355905055999756},{"x":296.8791389465332,"y":327.91497230529785,"z":41.01353645324707,"name":"faceOval"},{"x":329.6939468383789,"y":229.27897453308105,"z":8.934508562088013,"name":"rightEye"},{"x":341.6905212402344,"y":241.4073657989502,"z":-14.589333534240723},{"x":359.03079986572266,"y":353.48859786987305,"z":-15.803166627883911},{"x":333.1861877441406,"y":356.43213272094727,"z":-1.0234417766332626,"name":"faceOval"},{"x":283.97483825683594,"y":291.4318656921387,"z":41.94725513458252},{"x":343.33770751953125,"y":305.830135345459,"z":-15.756480693817139,"name":"lips"},{"x":342.40283966064453,"y":307.7453899383545,"z":-17.4021577835083},{"x":341.53621673583984,"y":311.0595703125,"z":-19.047834873199463},{"x":340.9107208251953,"y":315.4837703704834,"z":-18.5576331615448,"name":"lips"},{"x":339.1478729248047,"y":323.42233657836914,"z":-14.367576837539673},{"x":333.3201599121094,"y":307.4406337738037,"z":-9.617288708686829},{"x":331.2411117553711,"y":306.9811820983887,"z":-9.669809937477112},{"x":329.23255920410156,"y":306.0508346557617,"z":-9.582273960113525,"name":"lips"},{"x":322.4586486816406,"y":301.33323669433594,"z":-7.720675468444824},{"x":297.1712112426758,"y":286.9552803039551,"z":8.240055441856384},{"x":341.3060760498047,"y":235.4432201385498,"z":-7.504753470420837},{"x":336.9318389892578,"y":224.3451976776123,"z":5.829898118972778},{"x":332.65323638916016,"y":226.70403957366943,"z":8.105834126472473},{"x":334.67357635498047,"y":306.4397621154785,"z":-8.981193900108337,"name":"lips"},{"x":297.4601936340332,"y":306.29210472106934,"z":15.476365089416504},{"x":342.9119110107422,"y":222.37077713012695,"z":-2.754466235637665},{"x":335.4629898071289,"y":332.20250129699707,"z":-11.823196411132812},{"x":353.2412338256836,"y":240.56339263916016,"z":-27.147831916809082},{"x":346.3080596923828,"y":236.41446590423584,"z":-18.452589511871338},{"x":352.6475143432617,"y":234.1420555114746,"z":-19.748122692108154},{"x":337.3209762573242,"y":253.39937210083008,"z":-16.024924516677856},{"x":358.6122131347656,"y":344.90861892700195,"z":-18.592647314071655},{"x":358.1117248535156,"y":334.64990615844727,"z":-17.49552845954895},{"x":346.4450454711914,"y":335.0321102142334,"z":-16.32838249206543},{"x":319.17640686035156,"y":320.2833938598633,"z":-3.276764452457428},{"x":325.2540588378906,"y":276.2369728088379,"z":-6.460157036781311},{"x":326.7214584350586,"y":327.3939514160156,"z":-7.417217493057251},{"x":310.7190132141113,"y":277.2265148162842,"z":-3.5452082753181458},{"x":319.78355407714844,"y":284.8238182067871,"z":-6.4543211460113525},{"x":305.773983001709,"y":290.83580017089844,"z":0.06907138042151928},{"x":344.4001770019531,"y":344.85408782958984,"z":-16.946970224380493},{"x":333.1879425048828,"y":258.74256134033203,"z":-11.90489649772644},{"x":313.80598068237305,"y":327.08919525146484,"z":2.2277912497520447},{"x":322.9637908935547,"y":334.6819496154785,"z":-3.3643004298210144},{"x":313.4055519104004,"y":311.2166690826416,"z":-1.1175429821014404},{"x":291.0865783691406,"y":298.2831001281738,"z":22.467575073242188},{"x":305.6580924987793,"y":313.3707904815674,"z":5.561453700065613},{"x":288.23760986328125,"y":305.9941864013672,"z":36.765122413635254},{"x":315.10692596435547,"y":296.26991271972656,"z":-4.604393839836121},{"x":337.50518798828125,"y":247.5944423675537,"z":-10.597691535949707},{"x":338.8450622558594,"y":265.47778129577637,"z":-27.778091430664062},{"x":334.25254821777344,"y":269.0671920776367,"z":-20.938611030578613},{"x":341.64512634277344,"y":259.6387195587158,"z":-32.189905643463135},{"x":331.44081115722656,"y":219.0976095199585,"z":4.207563698291779},{"x":320.56339263916016,"y":216.49658203125,"z":2.930997312068939},{"x":311.21912002563477,"y":216.57853603363037,"z":2.9674705862998962},{"x":303.46256256103516,"y":218.54614734649658,"z":5.357203483581543},{"x":297.99999237060547,"y":222.505202293396,"z":9.325502514839172},{"x":294.93839263916016,"y":236.39654159545898,"z":18.534289598464966},{"x":278.87489318847656,"y":259.7095584869385,"z":45.68212032318115},{"x":300.3782653808594,"y":245.38593292236328,"z":12.278382778167725},{"x":307.06348419189453,"y":246.36857986450195,"z":8.164191246032715},{"x":315.5229187011719,"y":245.3949737548828,"z":5.503097176551819},{"x":323.71395111083984,"y":242.75178909301758,"z":4.6335723996162415},{"x":330.2785873413086,"y":239.34658527374268,"z":4.937030673027039},{"x":334.6982192993164,"y":236.0460376739502,"z":4.823233783245087},{"x":279.3412208557129,"y":263.5196113586426,"z":70.91583728790283,"name":"faceOval"},{"x":334.65972900390625,"y":271.6648578643799,"z":-17.775644063949585},{"x":342.05677032470703,"y":246.99846267700195,"z":-20.84523916244507},{"x":344.0357971191406,"y":264.5701503753662,"z":-32.936880588531494},{"x":348.25531005859375,"y":268.6645030975342,"z":-30.695960521697998},{"x":344.12227630615234,"y":266.34212493896484,"z":-29.808926582336426},{"x":337.12318420410156,"y":274.2556858062744,"z":-15.768152475357056},{"x":349.49047088623047,"y":269.071683883667,"z":-32.51670837402344},{"x":350.1683044433594,"y":271.4691352844238,"z":-24.93025302886963},{"x":333.9634704589844,"y":230.56639194488525,"z":8.89949381351471},{"x":338.2147979736328,"y":231.4807891845703,"z":4.6715047955513},{"x":340.4712677001953,"y":231.74463272094727,"z":-0.34996166825294495},{"x":303.28975677490234,"y":232.24980354309082,"z":11.916568279266357,"name":"rightEye"},{"x":299.4649124145508,"y":229.53842639923096,"z":12.325069904327393},{"x":359.09618377685547,"y":241.77349090576172,"z":-24.650139808654785},{"x":399.46216583251953,"y":229.89503860473633,"z":15.919880867004395,"name":"leftEye"},{"x":361.38919830322266,"y":269.6129894256592,"z":-24.510080814361572},{"x":416.9973373413086,"y":206.0895538330078,"z":53.26857566833496,"name":"faceOval"},{"x":381.32179260253906,"y":235.5476474761963,"z":7.6214683055877686},{"x":387.8068542480469,"y":236.25958442687988,"z":8.345099091529846},{"x":393.95751953125,"y":235.8660364151001,"z":10.475142002105713},{"x":401.84600830078125,"y":232.77019500732422,"z":16.760226488113403},{"x":375.70568084716797,"y":233.48456382751465,"z":8.234220147132874},{"x":388.17752838134766,"y":218.94717693328857,"z":6.810300946235657},{"x":381.64928436279297,"y":219.2656660079956,"z":6.711093783378601},{"x":394.4760513305664,"y":219.66821193695068,"z":9.173773527145386},{"x":398.8843536376953,"y":221.8837022781372,"z":12.03328251838684},{"x":406.5454864501953,"y":237.12156772613525,"z":19.7131085395813},{"x":383.87447357177734,"y":337.6932907104492,"z":-8.631049990653992},{"x":401.2682342529297,"y":228.5916566848755,"z":18.359217643737793,"name":"leftEye"},{"x":422.0449447631836,"y":236.73934936523438,"z":51.16771221160889},{"x":412.69153594970703,"y":232.80198097229004,"z":27.52131938934326},{"x":387.3497772216797,"y":263.298397064209,"z":-2.8609684109687805},{"x":364.5124053955078,"y":293.39221000671387,"z":-22.397546768188477,"name":"lips"},{"x":363.62987518310547,"y":302.1291446685791,"z":-19.643079042434692},{"x":373.2334518432617,"y":295.8647060394287,"z":-18.125789165496826,"name":"lips"},{"x":378.83365631103516,"y":299.5177745819092,"z":-13.153743743896484,"name":"lips"},{"x":369.91477966308594,"y":302.5704002380371,"z":-16.65518283843994},{"x":374.9167251586914,"y":303.5416603088379,"z":-11.963253021240234},{"x":387.58888244628906,"y":312.2716999053955,"z":-4.680258631706238},{"x":360.6635284423828,"y":264.31986808776855,"z":-35.94811677932739},{"x":361.04564666748047,"y":256.8225860595703,"z":-37.278664112091064},{"x":408.3855438232422,"y":213.52088928222656,"z":15.756480693817139,"name":"leftEyebrow"},{"x":373.2946014404297,"y":245.38101196289062,"z":-1.9316278398036957},{"x":376.83860778808594,"y":264.3721103668213,"z":-18.510947227478027},{"x":376.9546127319336,"y":261.0010528564453,"z":-15.989909172058105},{"x":406.1498260498047,"y":263.5030174255371,"z":7.072908878326416},{"x":360.07205963134766,"y":248.3631706237793,"z":-32.16656446456909},{"x":393.11119079589844,"y":205.10473251342773,"z":3.7786373496055603,"name":"leftEyebrow"},{"x":402.12791442871094,"y":207.89000988006592,"z":9.383859634399414,"name":"leftEyebrow"},{"x":410.8693313598633,"y":191.6182279586792,"z":41.27030849456787,"name":"faceOval"},{"x":364.9509811401367,"y":210.40483474731445,"z":-3.758212625980377},{"x":375.94444274902344,"y":221.1331844329834,"z":8.368442058563232},{"x":392.1904754638672,"y":305.0360298156738,"z":-1.752179116010666},{"x":419.50225830078125,"y":307.25592613220215,"z":58.96425247192383,"name":"faceOval"},{"x":372.0027160644531,"y":268.7212657928467,"z":-16.631840467453003},{"x":366.1614227294922,"y":271.6237449645996,"z":-18.219159841537476},{"x":385.00938415527344,"y":305.3863334655762,"z":-2.567722797393799},{"x":381.99771881103516,"y":304.9723720550537,"z":-4.575215280056},{"x":405.078125,"y":203.21216583251953,"z":13.713973760604858,"name":"leftEyebrow"},{"x":377.13207244873047,"y":268.4710121154785,"z":-15.266278982162476},{"x":380.9713363647461,"y":205.36980628967285,"z":-0.7250899076461792,"name":"leftEyebrow"},{"x":381.7788314819336,"y":198.9268398284912,"z":-1.184653863310814,"name":"leftEyebrow"},{"x":385.5204772949219,"y":172.1484375,"z":16.04826807975769,"name":"faceOval"},{"x":407.94189453125,"y":196.76236152648926,"z":25.723915100097656},{"x":383.03890228271484,"y":184.5157527923584,"z":7.393874526023865},{"x":411.61781311035156,"y":210.79241752624512,"z":22.315845489501953,"name":"leftEyebrow"},{"x":414.30870056152344,"y":208.4643030166626,"z":37.021894454956055},{"x":364.28722381591797,"y":298.35777282714844,"z":-21.86065673828125},{"x":371.3682556152344,"y":299.78848457336426,"z":-17.834001779556274},{"x":376.88201904296875,"y":301.6696071624756,"z":-13.153743743896484},{"x":370.2193832397461,"y":270.49095153808594,"z":-15.569736957550049},{"x":383.5081100463867,"y":305.2726364135742,"z":-3.673594295978546},{"x":380.73760986328125,"y":305.96869468688965,"z":-8.660228252410889},{"x":381.2334442138672,"y":304.63574409484863,"z":-4.820316135883331,"name":"lips"},{"x":368.1698989868164,"y":264.8884963989258,"z":-25.653886795043945},{"x":373.5087203979492,"y":303.4233856201172,"z":-10.95950722694397,"name":"lips"},{"x":368.4544372558594,"y":303.29601287841797,"z":-14.169161319732666,"name":"lips"},{"x":362.76554107666016,"y":303.5735607147217,"z":-16.911956071853638,"name":"lips"},{"x":366.60980224609375,"y":324.8870658874512,"z":-15.616422891616821},{"x":365.7067108154297,"y":315.95678329467773,"z":-20.903596878051758,"name":"lips"},{"x":365.0083923339844,"y":311.2232208251953,"z":-21.066999435424805},{"x":364.1508102416992,"y":307.0583438873291,"z":-18.907777070999146},{"x":363.37512969970703,"y":304.5721435546875,"z":-17.42550015449524,"name":"lips"},{"x":374.580078125,"y":304.3059539794922,"z":-11.40302300453186,"name":"lips"},{"x":375.55362701416016,"y":305.0998020172119,"z":-12.861957550048828},{"x":377.2437286376953,"y":307.1674346923828,"z":-14.215847253799438},{"x":378.68587493896484,"y":309.9015712738037,"z":-13.223772048950195,"name":"lips"},{"x":383.8992691040039,"y":290.29629707336426,"z":-9.97326910495758},{"x":423.3871841430664,"y":271.91688537597656,"z":74.37058925628662,"name":"faceOval"},{"x":377.68043518066406,"y":304.62209701538086,"z":-7.603961229324341,"name":"lips"},{"x":379.00428771972656,"y":304.9314594268799,"z":-8.57852816581726},{"x":364.00279998779297,"y":275.2813911437988,"z":-19.25792098045349},{"x":374.68231201171875,"y":273.82555961608887,"z":-11.28047227859497},{"x":365.0354766845703,"y":273.4548568725586,"z":-18.791062831878662},{"x":380.61901092529297,"y":249.8848056793213,"z":0.15501167625188828},{"x":391.14158630371094,"y":254.7934627532959,"z":2.0906515419483185},{"x":378.1761169433594,"y":264.9612236022949,"z":-12.605184316635132},{"x":400.9540557861328,"y":179.99592304229736,"z":27.82477855682373,"name":"faceOval"},{"x":398.0038833618164,"y":188.50656509399414,"z":16.094952821731567},{"x":394.8717498779297,"y":199.0359592437744,"z":6.226727366447449,"name":"leftEyebrow"},{"x":382.10926055908203,"y":316.83926582336426,"z":-8.946179747581482},{"x":366.51588439941406,"y":200.32583713531494,"z":-5.24632453918457,"name":"leftEyebrow"},{"x":367.4893569946289,"y":183.87210845947266,"z":1.9039081037044525},{"x":368.6243438720703,"y":168.8127565383911,"z":8.736093044281006,"name":"faceOval"},{"x":398.96175384521484,"y":234.9675178527832,"z":13.713973760604858},{"x":412.9645538330078,"y":242.23042488098145,"z":23.272905349731445},{"x":372.05257415771484,"y":231.41919136047363,"z":9.226294755935669},{"x":406.0722351074219,"y":223.58965873718262,"z":18.370890617370605},{"x":368.27442169189453,"y":240.2039337158203,"z":-4.166713654994965},{"x":372.3575210571289,"y":260.66442489624023,"z":-24.976940155029297},{"x":419.2244338989258,"y":247.9079246520996,"z":30.299127101898193},{"x":409.43885803222656,"y":246.60913467407227,"z":16.398411989212036},{"x":401.69139862060547,"y":248.76328468322754,"z":9.395531415939331},{"x":389.7608184814453,"y":247.56915092468262,"z":5.841569304466248},{"x":380.5461883544922,"y":244.55984115600586,"z":4.263003468513489},{"x":373.25817108154297,"y":240.80214500427246,"z":2.5356262922286987},{"x":358.77086639404297,"y":229.35615062713623,"z":-10.387605428695679},{"x":419.5793914794922,"y":262.8478717803955,"z":26.5175724029541},{"x":410.8808898925781,"y":222.51372814178467,"z":22.199130058288574},{"x":358.45714569091797,"y":268.91467094421387,"z":-33.17030906677246},{"x":373.4129333496094,"y":251.6385841369629,"z":-5.771540403366089},{"x":422.5408172607422,"y":239.23919677734375,"z":74.04378890991211,"name":"faceOval"},{"x":367.8171920776367,"y":236.58040523529053,"z":1.820748895406723},{"x":378.51959228515625,"y":266.2532329559326,"z":-5.74819803237915},{"x":403.3472442626953,"y":229.05112266540527,"z":19.689764976501465},{"x":372.34840393066406,"y":256.6451168060303,"z":-21.872329711914062},{"x":422.54566192626953,"y":289.1587829589844,"z":68.67491245269775,"name":"faceOval"},{"x":371.9297409057617,"y":228.90116214752197,"z":11.432201862335205,"name":"leftEye"},{"x":366.21360778808594,"y":251.6158962249756,"z":-28.19826364517212},{"x":409.1571807861328,"y":321.3156223297119,"z":20.2266526222229},{"x":408.52943420410156,"y":331.44238471984863,"z":31.09278917312622,"name":"faceOval"},{"x":424.2788314819336,"y":267.1992301940918,"z":50.467424392700195},{"x":415.60352325439453,"y":311.6528606414795,"z":30.579242706298828},{"x":418.12793731689453,"y":221.59927368164062,"z":46.26569747924805},{"x":385.68286895751953,"y":346.0184955596924,"z":-5.70151150226593},{"x":357.82936096191406,"y":271.3758373260498,"z":-24.836881160736084},{"x":379.588623046875,"y":257.5071716308594,"z":-3.755294680595398},{"x":417.4592590332031,"y":234.71948146820068,"z":34.5475435256958},{"x":393.4684371948242,"y":231.58967971801758,"z":11.408859491348267,"name":"leftEye"},{"x":387.8864288330078,"y":232.14245796203613,"z":9.51808214187622,"name":"leftEye"},{"x":382.4981689453125,"y":307.5654888153076,"z":-7.522260546684265,"name":"lips"},{"x":419.00169372558594,"y":277.8332805633545,"z":26.424202919006348},{"x":373.62953186035156,"y":357.6375102996826,"z":-5.75986921787262,"name":"faceOval"},{"x":392.8708267211914,"y":347.72446632385254,"z":10.154176950454712,"name":"faceOval"},{"x":400.3953552246094,"y":341.0005187988281,"z":19.39797878265381,"name":"faceOval"},{"x":382.25440979003906,"y":231.66935920715332,"z":8.998700976371765,"name":"leftEye"},{"x":377.14550018310547,"y":230.4228687286377,"z":9.804032444953918,"name":"leftEye"},{"x":373.8358688354492,"y":229.64950561523438,"z":11.292144060134888,"name":"leftEye"},{"x":414.5794677734375,"y":221.67891025543213,"z":29.412097930908203},{"x":377.00672149658203,"y":225.66201210021973,"z":9.360517263412476,"name":"leftEye"},{"x":382.29530334472656,"y":224.8431158065796,"z":8.32175612449646,"name":"leftEye"},{"x":387.5133514404297,"y":224.49507236480713,"z":8.917000889778137,"name":"leftEye"},{"x":393.15906524658203,"y":225.24795055389404,"z":10.737749338150024,"name":"leftEye"},{"x":397.05554962158203,"y":226.55359268188477,"z":13.002015352249146,"name":"leftEye"},{"x":420.5299377441406,"y":221.014666557312,"z":65.40690422058105,"name":"faceOval"},{"x":397.06920623779297,"y":230.6661558151245,"z":13.807345628738403,"name":"leftEye"},{"x":377.94647216796875,"y":285.1647090911865,"z":-13.305472135543823},{"x":372.1118927001953,"y":267.1267318725586,"z":-18.83774757385254},{"x":364.9968719482422,"y":282.24411964416504,"z":-19.818150997161865},{"x":401.973876953125,"y":331.20131492614746,"z":11.566424369812012},{"x":394.3083190917969,"y":338.86693954467773,"z":3.142542541027069},{"x":373.9820861816406,"y":351.4504623413086,"z":-13.50388765335083},{"x":414.3888854980469,"y":321.24735832214355,"z":45.51872253417969,"name":"faceOval"},{"x":373.44234466552734,"y":227.33163356781006,"z":10.626870393753052,"name":"leftEye"},{"x":364.0731430053711,"y":240.31539916992188,"z":-13.807345628738403},{"x":384.2658233642578,"y":353.3793067932129,"z":0.7385850697755814,"name":"faceOval"},{"x":423.20526123046875,"y":283.5176181793213,"z":47.152724266052246},{"x":369.42798614501953,"y":304.0898895263672,"z":-14.647691249847412,"name":"lips"},{"x":370.63812255859375,"y":305.90051651000977,"z":-16.211668252944946},{"x":371.91192626953125,"y":309.0167713165283,"z":-17.84567356109619},{"x":373.0583953857422,"y":313.3545398712158,"z":-17.378815412521362,"name":"lips"},{"x":375.39905548095703,"y":321.09289169311523,"z":-13.118728399276733},{"x":379.2567825317383,"y":304.3582534790039,"z":-7.924926280975342},{"x":381.18797302246094,"y":303.7031364440918,"z":-7.843226194381714},{"x":383.0918502807617,"y":302.4884605407715,"z":-7.6506465673446655,"name":"lips"},{"x":389.09461975097656,"y":297.1475315093994,"z":-5.5497825145721436},{"x":411.6408920288086,"y":280.24898529052734,"z":12.02161192893982},{"x":363.3110809326172,"y":234.27620887756348,"z":-6.775286793708801},{"x":366.0474395751953,"y":223.29872131347656,"z":6.827808618545532},{"x":370.34427642822266,"y":225.1457118988037,"z":9.558931589126587},{"x":377.5371551513672,"y":303.60079765319824,"z":-7.358860373497009,"name":"lips"},{"x":412.9557800292969,"y":299.53579902648926,"z":19.39797878265381},{"x":360.0810241699219,"y":221.72012329101562,"z":-2.153385728597641},{"x":379.82784271240234,"y":329.47723388671875,"z":-10.48097848892212},{"x":359.08477783203125,"y":235.7911491394043,"z":-18.079102039337158},{"x":369.6688461303711,"y":251.5407943725586,"z":-14.962821006774902},{"x":369.5555114746094,"y":333.5307312011719,"z":-15.67478060722351},{"x":394.0193176269531,"y":315.6973171234131,"z":-0.9920747578144073},{"x":383.78997802734375,"y":272.7268695831299,"z":-4.689012169837952},{"x":387.67765045166016,"y":323.6722755432129,"z":-5.640236139297485},{"x":397.8769302368164,"y":272.1331214904785,"z":-0.9395531564950943},{"x":389.87476348876953,"y":280.5630111694336,"z":-4.29218202829361},{"x":403.83888244628906,"y":285.1167869567871,"z":3.0229100584983826},{"x":372.5467300415039,"y":343.1070327758789,"z":-16.153310537338257},{"x":374.1112518310547,"y":256.3721466064453,"z":-10.574349164962769},{"x":399.73785400390625,"y":321.77515983581543,"z":4.849494695663452},{"x":392.03365325927734,"y":330.56447982788086,"z":-1.3407598435878754},{"x":398.59134674072266,"y":305.93902587890625,"z":1.517290621995926},{"x":417.95997619628906,"y":290.9716987609863,"z":26.89105987548828},{"x":406.04541778564453,"y":307.35154151916504,"z":8.666064143180847},{"x":420.75328826904297,"y":298.40752601623535,"z":41.78385257720947},{"x":395.4522705078125,"y":291.4153575897217,"z":-2.1752697229385376},{"x":368.6452102661133,"y":245.8882999420166,"z":-9.453888535499573},{"x":370.34900665283203,"y":263.56690406799316,"z":-26.75100326538086},{"x":374.98477935791016,"y":266.6126346588135,"z":-19.77146625518799},{"x":366.99840545654297,"y":258.12140464782715,"z":-31.372904777526855},{"x":371.00616455078125,"y":217.63479709625244,"z":5.60522198677063},{"x":381.30577087402344,"y":214.14087295532227,"z":4.983716309070587},{"x":390.1496124267578,"y":213.38221549987793,"z":5.593550801277161},{"x":397.7696990966797,"y":214.3659782409668,"z":8.57852816581726},{"x":403.1652069091797,"y":217.65509605407715,"z":13.013685941696167},{"x":407.3551940917969,"y":230.72525024414062,"z":22.444231510162354},{"x":424.0876770019531,"y":251.7839241027832,"z":51.16771221160889},{"x":403.50196838378906,"y":239.88757610321045,"z":15.803166627883911},{"x":397.31719970703125,"y":241.49806022644043,"z":11.233787536621094},{"x":388.99425506591797,"y":241.4366912841797,"z":7.948269248008728},{"x":380.7804489135742,"y":239.78078842163086,"z":6.600214838981628},{"x":374.01336669921875,"y":237.11946487426758,"z":6.349278092384338},{"x":369.39125061035156,"y":234.35351371765137,"z":5.987462401390076},{"x":422.9730987548828,"y":255.76455116271973,"z":76.61150932312012,"name":"faceOval"},{"x":374.73915100097656,"y":269.24214363098145,"z":-16.608498096466064},{"x":364.61681365966797,"y":245.71088790893555,"z":-20.02823829650879},{"x":365.3834533691406,"y":263.34174156188965,"z":-32.32996463775635},{"x":361.58252716064453,"y":267.8273677825928,"z":-30.345816612243652},{"x":365.37208557128906,"y":265.0249671936035,"z":-29.178667068481445},{"x":372.72605895996094,"y":272.05135345458984,"z":-14.834434986114502},{"x":360.48614501953125,"y":268.34827423095703,"z":-32.189905643463135},{"x":359.9516296386719,"y":270.8049201965332,"z":-24.650139808654785},{"x":369.5049285888672,"y":229.01945114135742,"z":10.107489824295044},{"x":365.5447769165039,"y":230.24096488952637,"z":5.593550801277161},{"x":363.50669860839844,"y":230.6208372116089,"z":0.43622106313705444},{"x":399.3529510498047,"y":227.65677452087402,"z":15.35965085029602,"name":"leftEye"},{"x":402.5693130493164,"y":224.60190296173096,"z":15.931552648544312} +export const FacemeshDatas = { + // My face as default (captured with a 640x480 webcam) + // prettier-ignore + SAMPLE_FACE: { + "keypoints": [ + {"x":356.2804412841797,"y":295.1960563659668,"z":-23.786449432373047,"name":"lips"}, + {"x":354.8859405517578,"y":264.69520568847656,"z":-36.718435287475586}, + {"x":355.2180862426758,"y":275.3360366821289,"z":-21.183712482452393}, + {"x":347.349853515625,"y":242.4400234222412,"z":-25.093655586242676},{"x":354.40135955810547,"y":256.67933464050293,"z":-38.23572635650635},{"x":353.7689971923828,"y":247.54886627197266,"z":-34.5475435256958},{"x":352.1288299560547,"y":227.34312057495117,"z":-13.095386028289795},{"x":303.5013198852539,"y":234.67002868652344,"z":12.500141859054565,"name":"rightEye"},{"x":351.09378814697266,"y":211.87547206878662,"z":-6.413471698760986},{"x":350.7115936279297,"y":202.1251630783081,"z":-6.413471698760986},{"x":348.33667755126953,"y":168.7741756439209,"z":6.483500003814697,"name":"faceOval"},{"x":356.4806365966797,"y":299.2995357513428,"z":-23.144519329071045},{"x":356.5511703491211,"y":302.66146659851074,"z":-21.020312309265137},{"x":356.6239547729492,"y":304.1536331176758,"z":-18.137459754943848,"name":"lips"},{"x":356.5807342529297,"y":305.1840591430664,"z":-18.767719268798828,"name":"lips"},{"x":356.8241500854492,"y":308.25711250305176,"z":-20.16829490661621},{"x":357.113037109375,"y":312.26277351379395,"z":-22.10575819015503},{"x":357.34962463378906,"y":317.1123218536377,"z":-21.837315559387207,"name":"lips"},{"x":357.6658630371094,"y":325.51036834716797,"z":-16.27002477645874},{"x":355.0201416015625,"y":269.36279296875,"z":-33.73054027557373},{"x":348.5237503051758,"y":270.33411026000977,"z":-24.93025302886963},{"x":279.97331619262695,"y":213.24176788330078,"z":47.759642601013184,"name":"faceOval"},{"x":322.66529083251953,"y":238.5027265548706,"z":5.535193085670471},{"x":316.0983657836914,"y":239.94489669799805,"z":5.777376294136047},{"x":309.9431610107422,"y":240.24518966674805,"z":7.510589361190796},{"x":301.31994247436523,"y":237.86138534545898,"z":13.118728399276733},{"x":328.14266204833984,"y":235.80496788024902,"z":6.646900177001953},{"x":313.7326431274414,"y":222.11161136627197,"z":3.9887237548828125},{"x":320.45196533203125,"y":221.87729358673096,"z":4.601476192474365},{"x":307.35679626464844,"y":223.63793849945068,"z":5.932023525238037},{"x":303.0031204223633,"y":226.3743782043457,"z":8.479321002960205},{"x":296.80023193359375,"y":242.94299125671387,"z":15.931552648544312},{"x":332.2352981567383,"y":340.77341079711914,"z":-10.165848731994629},{"x":301.38587951660156,"y":233.46447944641113,"z":14.764405488967896,"name":"rightEye"},{"x":279.0147018432617,"y":244.37155723571777,"z":45.77549457550049},{"x":289.60548400878906,"y":239.1807460784912,"z":23.191204071044922},{"x":320.32257080078125,"y":267.1292781829834,"z":-4.954537749290466},{"x":347.64583587646484,"y":294.4955062866211,"z":-23.062820434570312,"name":"lips"},{"x":349.28138732910156,"y":303.1095886230469,"z":-20.238323211669922},{"x":338.9453125,"y":298.19186210632324,"z":-19.456336498260498,"name":"lips"},{"x":333.36788177490234,"y":302.6706790924072,"z":-14.776077270507812,"name":"lips"},{"x":342.89188385009766,"y":304.3561363220215,"z":-17.752301692962646},{"x":337.7375030517578,"y":306.0098361968994,"z":-13.410515785217285},{"x":325.6159210205078,"y":316.22995376586914,"z":-6.681914925575256},{"x":349.0104675292969,"y":264.9818515777588,"z":-36.274919509887695},{"x":347.7138900756836,"y":257.5664806365967,"z":-37.67549514770508},{"x":291.79357528686523,"y":218.88171672821045,"z":11.578094959259033,"name":"rightEyebrow"},{"x":332.2689437866211,"y":247.56946563720703,"z":-3.3730539679527283},{"x":332.0074462890625,"y":267.1201229095459,"z":-19.969879388809204},{"x":331.27952575683594,"y":263.6967658996582,"z":-17.47218608856201},{"x":301.04373931884766,"y":269.56552505493164,"z":3.61815482378006},{"x":347.4863815307617,"y":249.0706443786621,"z":-32.633421421051025},{"x":307.26118087768555,"y":208.2646894454956,"z":1.1591226607561111,"name":"rightEyebrow"},{"x":297.91919708251953,"y":212.22604751586914,"z":5.914516448974609,"name":"rightEyebrow"},{"x":285.1651382446289,"y":197.98450469970703,"z":36.391637325286865,"name":"faceOval"},{"x":337.04097747802734,"y":211.25229835510254,"z":-4.548954665660858},{"x":326.5912628173828,"y":223.16698551177979,"z":6.670243740081787},{"x":320.05664825439453,"y":309.5834255218506,"z":-4.055835008621216},{"x":289.6866226196289,"y":314.617395401001,"z":53.875489234924316,"name":"faceOval"},{"x":337.4256896972656,"y":270.8755302429199,"z":-17.67060160636902},{"x":343.69922637939453,"y":273.0000400543213,"z":-18.756048679351807},{"x":327.4242401123047,"y":309.22399520874023,"z":-4.703601002693176,"name":"lips"},{"x":330.37220001220703,"y":308.3323001861572,"z":-6.442649960517883},{"x":293.87027740478516,"y":207.7961826324463,"z":9.821539521217346,"name":"rightEyebrow"},{"x":332.11437225341797,"y":271.22812271118164,"z":-16.64351224899292},{"x":320.1197814941406,"y":207.40366458892822,"z":-2.48164564371109,"name":"rightEyebrow"},{"x":318.59575271606445,"y":201.07443809509277,"z":-3.110446035861969,"name":"rightEyebrow"},{"x":310.72303771972656,"y":175.75075149536133,"z":13.328815698623657,"name":"faceOval"},{"x":289.67578887939453,"y":202.29835510253906,"z":21.370456218719482},{"x":315.30879974365234,"y":187.35260009765625,"z":5.0304025411605835},{"x":287.8936767578125,"y":216.54793739318848,"z":17.81065821647644,"name":"rightEyebrow"},{"x":283.9391899108887,"y":215.01142501831055,"z":32.04984903335571},{"x":348.35330963134766,"y":299.4155788421631,"z":-22.47924566268921},{"x":341.1790466308594,"y":301.8221855163574,"z":-18.977805376052856},{"x":335.69713592529297,"y":304.4266891479492,"z":-14.682706594467163},{"x":339.4615173339844,"y":272.3654365539551,"z":-16.38674020767212},{"x":328.99600982666016,"y":308.86685371398926,"z":-5.616893768310547},{"x":332.00313568115234,"y":309.1875743865967,"z":-10.335084199905396},{"x":331.0068130493164,"y":307.9274368286133,"z":-6.681914925575256,"name":"lips"},{"x":341.13792419433594,"y":266.4876937866211,"z":-26.56425952911377},{"x":339.02950286865234,"y":305.6663703918457,"z":-12.33674168586731,"name":"lips"},{"x":344.22935485839844,"y":304.9452781677246,"z":-15.161235332489014,"name":"lips"},{"x":350.1844024658203,"y":304.374303817749,"z":-17.5305438041687,"name":"lips"},{"x":348.52630615234375,"y":325.9562301635742,"z":-16.164982318878174},{"x":348.6581802368164,"y":317.1624183654785,"z":-21.510512828826904,"name":"lips"},{"x":348.9766311645508,"y":312.1923065185547,"z":-21.708929538726807},{"x":349.2427444458008,"y":308.0660820007324,"z":-19.643079042434692},{"x":349.67491149902344,"y":305.42747497558594,"z":-18.16080331802368,"name":"lips"},{"x":337.95589447021484,"y":306.6535949707031,"z":-12.803598642349243,"name":"lips"},{"x":337.06878662109375,"y":307.63169288635254,"z":-14.274203777313232},{"x":335.77449798583984,"y":309.8449516296387,"z":-15.698124170303345},{"x":334.6099090576172,"y":312.7997016906738,"z":-14.764405488967896,"name":"lips"},{"x":327.2330856323242,"y":293.80866050720215,"z":-11.864047050476074},{"x":280.97679138183594,"y":279.79928970336914,"z":68.90834331512451,"name":"faceOval"},{"x":355.13843536376953,"y":271.7875671386719,"z":-25.350427627563477},{"x":334.7235870361328,"y":307.4656391143799,"z":-9.302158951759338,"name":"lips"},{"x":333.5293960571289,"y":307.89782524108887,"z":-10.200862884521484},{"x":346.29688262939453,"y":276.4256286621094,"z":-19.748122692108154},{"x":335.16246795654297,"y":276.22097969055176,"z":-12.313398122787476},{"x":345.09132385253906,"y":274.7082996368408,"z":-19.304605722427368},{"x":325.4267883300781,"y":252.95130729675293,"z":-1.6661019623279572},{"x":315.347843170166,"y":259.05200958251953,"z":-0.25604281574487686},{"x":330.44933319091797,"y":267.7570152282715,"z":-14.017432928085327},{"x":294.96768951416016,"y":185.26001930236816,"z":23.903164863586426,"name":"faceOval"},{"x":299.63531494140625,"y":192.7913761138916,"z":12.640198469161987},{"x":304.5452117919922,"y":202.4142837524414,"z":3.244667649269104,"name":"rightEyebrow"},{"x":331.6915512084961,"y":320.0467872619629,"z":-10.632705688476562},{"x":334.5911407470703,"y":201.27566814422607,"z":-6.133356094360352,"name":"rightEyebrow"},{"x":331.4815902709961,"y":185.44180870056152,"z":0.6627205014228821},{"x":328.05816650390625,"y":170.8385467529297,"z":7.358860373497009,"name":"faceOval"},{"x":304.49764251708984,"y":239.76297855377197,"z":10.387605428695679},{"x":290.6382179260254,"y":248.85257720947266,"z":19.03616428375244},{"x":331.5682601928711,"y":233.20727348327637,"z":7.837390303611755},{"x":295.5115509033203,"y":228.9834451675415,"z":14.41426157951355},{"x":336.94332122802734,"y":241.8259334564209,"z":-5.27842104434967},{"x":336.2792205810547,"y":262.7049922943115,"z":-26.12074375152588},{"x":284.4102478027344,"y":255.3262710571289,"z":25.467140674591064},{"x":295.1420593261719,"y":253.02655220031738,"z":12.430112361907959},{"x":303.5196113586426,"y":254.20703887939453,"z":6.139191389083862},{"x":315.73450088500977,"y":251.64799690246582,"z":3.3788898587226868},{"x":324.69661712646484,"y":247.56494522094727,"z":2.3328344523906708},{"x":331.57970428466797,"y":243.02241325378418,"z":1.1423448473215103},{"x":345.6210708618164,"y":229.9976634979248,"z":-10.825285911560059},{"x":286.26644134521484,"y":270.37991523742676,"z":21.708929538726807},{"x":290.2525520324707,"y":228.4921360015869,"z":17.71728754043579},{"x":351.65367126464844,"y":269.3400764465332,"z":-33.450424671173096},{"x":333.1378936767578,"y":253.88388633728027,"z":-7.230473756790161},{"x":277.8318977355957,"y":246.95331573486328,"z":68.20805549621582,"name":"faceOval"},{"x":336.6680908203125,"y":238.10003757476807,"z":0.7688578963279724},{"x":329.95800018310547,"y":269.18323516845703,"z":-7.207130789756775},{"x":299.17491912841797,"y":234.13324356079102,"z":15.95489501953125},{"x":335.61729431152344,"y":258.71752738952637,"z":-23.016133308410645},{"x":284.1079330444336,"y":297.0343494415283,"z":63.25934886932373,"name":"faceOval"},{"x":331.44542694091797,"y":230.6892442703247,"z":9.92658257484436,"name":"rightEye"},{"x":341.41536712646484,"y":253.01264762878418,"z":-29.038610458374023},{"x":303.5472869873047,"y":327.5896739959717,"z":16.725212335586548},{"x":304.7756576538086,"y":337.4389457702637,"z":27.38126277923584,"name":"faceOval"},{"x":280.80501556396484,"y":275.32050132751465,"z":45.0752067565918},{"x":295.43582916259766,"y":318.4501647949219,"z":26.2608003616333},{"x":281.4303207397461,"y":228.7355661392212,"z":40.94350814819336},{"x":331.2549591064453,"y":349.4216537475586,"z":-7.376367449760437},{"x":352.4247741699219,"y":271.7330074310303,"z":-24.953596591949463},{"x":327.5672912597656,"y":260.41900634765625,"z":-5.456410646438599},{"x":284.5432472229004,"y":241.7647933959961,"z":29.668869972229004},{"x":310,"y":235.66174507141113,"z":8.502663969993591,"name":"rightEye"},{"x":315.7071113586426,"y":235.7572603225708,"z":6.938687562942505,"name":"rightEye"},{"x":330.41088104248047,"y":311.04143142700195,"z":-9.325502514839172,"name":"lips"},{"x":288.5377502441406,"y":285.31983375549316,"z":21.837315559387207},{"x":344.55039978027344,"y":359.4300842285156,"z":-6.705257892608643,"name":"faceOval"},{"x":323.41880798339844,"y":351.67362213134766,"z":7.802375555038452,"name":"faceOval"},{"x":314.64088439941406,"y":346.11894607543945,"z":16.36339783668518,"name":"faceOval"},{"x":349.4945526123047,"y":184.8434829711914,"z":-0.21847527474164963},{"x":359.24694061279297,"y":359.8348903656006,"z":-8.403456211090088,"name":"faceOval"},{"x":321.26182556152344,"y":234.64492321014404,"z":6.90950870513916,"name":"rightEye"},{"x":326.318359375,"y":232.90250301361084,"z":8.029969334602356,"name":"rightEye"},{"x":329.6211624145508,"y":231.6195774078369,"z":9.722331762313843,"name":"rightEye"},{"x":285.9398078918457,"y":228.2351303100586,"z":24.650139808654785},{"x":325.79288482666016,"y":227.88007736206055,"z":7.469738721847534,"name":"rightEye"},{"x":320.1699447631836,"y":227.5934886932373,"z":6.168370842933655,"name":"rightEye"},{"x":314.85408782958984,"y":227.85282611846924,"z":6.2675780057907104,"name":"rightEye"},{"x":309.3084907531738,"y":229.1516876220703,"z":7.7031683921813965,"name":"rightEye"},{"x":305.5621337890625,"y":230.92366218566895,"z":9.722331762313843,"name":"rightEye"},{"x":277.8681945800781,"y":228.5354232788086,"z":59.71122741699219,"name":"faceOval"},{"x":306.1444664001465,"y":235.1954698562622,"z":10.603528022766113,"name":"rightEye"},{"x":355.4478454589844,"y":281.96210861206055,"z":-20.565123558044434},{"x":333.02661895751953,"y":288.0105400085449,"z":-14.72939133644104},{"x":337.15728759765625,"y":269.2059516906738,"z":-19.8414945602417},{"x":345.9898376464844,"y":283.5453128814697,"z":-20.4834246635437},{"x":351.48963928222656,"y":219.98916149139404,"z":-7.0378947257995605},{"x":312.39574432373047,"y":336.50628089904785,"z":8.671900033950806},{"x":321.32152557373047,"y":343.1755256652832,"z":0.9067271649837494},{"x":343.78379821777344,"y":353.2975959777832,"z":-14.355905055999756},{"x":296.8791389465332,"y":327.91497230529785,"z":41.01353645324707,"name":"faceOval"},{"x":329.6939468383789,"y":229.27897453308105,"z":8.934508562088013,"name":"rightEye"},{"x":341.6905212402344,"y":241.4073657989502,"z":-14.589333534240723},{"x":359.03079986572266,"y":353.48859786987305,"z":-15.803166627883911},{"x":333.1861877441406,"y":356.43213272094727,"z":-1.0234417766332626,"name":"faceOval"},{"x":283.97483825683594,"y":291.4318656921387,"z":41.94725513458252},{"x":343.33770751953125,"y":305.830135345459,"z":-15.756480693817139,"name":"lips"},{"x":342.40283966064453,"y":307.7453899383545,"z":-17.4021577835083},{"x":341.53621673583984,"y":311.0595703125,"z":-19.047834873199463},{"x":340.9107208251953,"y":315.4837703704834,"z":-18.5576331615448,"name":"lips"},{"x":339.1478729248047,"y":323.42233657836914,"z":-14.367576837539673},{"x":333.3201599121094,"y":307.4406337738037,"z":-9.617288708686829},{"x":331.2411117553711,"y":306.9811820983887,"z":-9.669809937477112},{"x":329.23255920410156,"y":306.0508346557617,"z":-9.582273960113525,"name":"lips"},{"x":322.4586486816406,"y":301.33323669433594,"z":-7.720675468444824},{"x":297.1712112426758,"y":286.9552803039551,"z":8.240055441856384},{"x":341.3060760498047,"y":235.4432201385498,"z":-7.504753470420837},{"x":336.9318389892578,"y":224.3451976776123,"z":5.829898118972778},{"x":332.65323638916016,"y":226.70403957366943,"z":8.105834126472473},{"x":334.67357635498047,"y":306.4397621154785,"z":-8.981193900108337,"name":"lips"},{"x":297.4601936340332,"y":306.29210472106934,"z":15.476365089416504},{"x":342.9119110107422,"y":222.37077713012695,"z":-2.754466235637665},{"x":335.4629898071289,"y":332.20250129699707,"z":-11.823196411132812},{"x":353.2412338256836,"y":240.56339263916016,"z":-27.147831916809082},{"x":346.3080596923828,"y":236.41446590423584,"z":-18.452589511871338},{"x":352.6475143432617,"y":234.1420555114746,"z":-19.748122692108154},{"x":337.3209762573242,"y":253.39937210083008,"z":-16.024924516677856},{"x":358.6122131347656,"y":344.90861892700195,"z":-18.592647314071655},{"x":358.1117248535156,"y":334.64990615844727,"z":-17.49552845954895},{"x":346.4450454711914,"y":335.0321102142334,"z":-16.32838249206543},{"x":319.17640686035156,"y":320.2833938598633,"z":-3.276764452457428},{"x":325.2540588378906,"y":276.2369728088379,"z":-6.460157036781311},{"x":326.7214584350586,"y":327.3939514160156,"z":-7.417217493057251},{"x":310.7190132141113,"y":277.2265148162842,"z":-3.5452082753181458},{"x":319.78355407714844,"y":284.8238182067871,"z":-6.4543211460113525},{"x":305.773983001709,"y":290.83580017089844,"z":0.06907138042151928},{"x":344.4001770019531,"y":344.85408782958984,"z":-16.946970224380493},{"x":333.1879425048828,"y":258.74256134033203,"z":-11.90489649772644},{"x":313.80598068237305,"y":327.08919525146484,"z":2.2277912497520447},{"x":322.9637908935547,"y":334.6819496154785,"z":-3.3643004298210144},{"x":313.4055519104004,"y":311.2166690826416,"z":-1.1175429821014404},{"x":291.0865783691406,"y":298.2831001281738,"z":22.467575073242188},{"x":305.6580924987793,"y":313.3707904815674,"z":5.561453700065613},{"x":288.23760986328125,"y":305.9941864013672,"z":36.765122413635254},{"x":315.10692596435547,"y":296.26991271972656,"z":-4.604393839836121},{"x":337.50518798828125,"y":247.5944423675537,"z":-10.597691535949707},{"x":338.8450622558594,"y":265.47778129577637,"z":-27.778091430664062},{"x":334.25254821777344,"y":269.0671920776367,"z":-20.938611030578613},{"x":341.64512634277344,"y":259.6387195587158,"z":-32.189905643463135},{"x":331.44081115722656,"y":219.0976095199585,"z":4.207563698291779},{"x":320.56339263916016,"y":216.49658203125,"z":2.930997312068939},{"x":311.21912002563477,"y":216.57853603363037,"z":2.9674705862998962},{"x":303.46256256103516,"y":218.54614734649658,"z":5.357203483581543},{"x":297.99999237060547,"y":222.505202293396,"z":9.325502514839172},{"x":294.93839263916016,"y":236.39654159545898,"z":18.534289598464966},{"x":278.87489318847656,"y":259.7095584869385,"z":45.68212032318115},{"x":300.3782653808594,"y":245.38593292236328,"z":12.278382778167725},{"x":307.06348419189453,"y":246.36857986450195,"z":8.164191246032715},{"x":315.5229187011719,"y":245.3949737548828,"z":5.503097176551819},{"x":323.71395111083984,"y":242.75178909301758,"z":4.6335723996162415},{"x":330.2785873413086,"y":239.34658527374268,"z":4.937030673027039},{"x":334.6982192993164,"y":236.0460376739502,"z":4.823233783245087},{"x":279.3412208557129,"y":263.5196113586426,"z":70.91583728790283,"name":"faceOval"},{"x":334.65972900390625,"y":271.6648578643799,"z":-17.775644063949585},{"x":342.05677032470703,"y":246.99846267700195,"z":-20.84523916244507},{"x":344.0357971191406,"y":264.5701503753662,"z":-32.936880588531494},{"x":348.25531005859375,"y":268.6645030975342,"z":-30.695960521697998},{"x":344.12227630615234,"y":266.34212493896484,"z":-29.808926582336426},{"x":337.12318420410156,"y":274.2556858062744,"z":-15.768152475357056},{"x":349.49047088623047,"y":269.071683883667,"z":-32.51670837402344},{"x":350.1683044433594,"y":271.4691352844238,"z":-24.93025302886963},{"x":333.9634704589844,"y":230.56639194488525,"z":8.89949381351471},{"x":338.2147979736328,"y":231.4807891845703,"z":4.6715047955513},{"x":340.4712677001953,"y":231.74463272094727,"z":-0.34996166825294495},{"x":303.28975677490234,"y":232.24980354309082,"z":11.916568279266357,"name":"rightEye"},{"x":299.4649124145508,"y":229.53842639923096,"z":12.325069904327393},{"x":359.09618377685547,"y":241.77349090576172,"z":-24.650139808654785},{"x":399.46216583251953,"y":229.89503860473633,"z":15.919880867004395,"name":"leftEye"},{"x":361.38919830322266,"y":269.6129894256592,"z":-24.510080814361572},{"x":416.9973373413086,"y":206.0895538330078,"z":53.26857566833496,"name":"faceOval"},{"x":381.32179260253906,"y":235.5476474761963,"z":7.6214683055877686},{"x":387.8068542480469,"y":236.25958442687988,"z":8.345099091529846},{"x":393.95751953125,"y":235.8660364151001,"z":10.475142002105713},{"x":401.84600830078125,"y":232.77019500732422,"z":16.760226488113403},{"x":375.70568084716797,"y":233.48456382751465,"z":8.234220147132874},{"x":388.17752838134766,"y":218.94717693328857,"z":6.810300946235657},{"x":381.64928436279297,"y":219.2656660079956,"z":6.711093783378601},{"x":394.4760513305664,"y":219.66821193695068,"z":9.173773527145386},{"x":398.8843536376953,"y":221.8837022781372,"z":12.03328251838684},{"x":406.5454864501953,"y":237.12156772613525,"z":19.7131085395813},{"x":383.87447357177734,"y":337.6932907104492,"z":-8.631049990653992},{"x":401.2682342529297,"y":228.5916566848755,"z":18.359217643737793,"name":"leftEye"},{"x":422.0449447631836,"y":236.73934936523438,"z":51.16771221160889},{"x":412.69153594970703,"y":232.80198097229004,"z":27.52131938934326},{"x":387.3497772216797,"y":263.298397064209,"z":-2.8609684109687805},{"x":364.5124053955078,"y":293.39221000671387,"z":-22.397546768188477,"name":"lips"},{"x":363.62987518310547,"y":302.1291446685791,"z":-19.643079042434692},{"x":373.2334518432617,"y":295.8647060394287,"z":-18.125789165496826,"name":"lips"},{"x":378.83365631103516,"y":299.5177745819092,"z":-13.153743743896484,"name":"lips"},{"x":369.91477966308594,"y":302.5704002380371,"z":-16.65518283843994},{"x":374.9167251586914,"y":303.5416603088379,"z":-11.963253021240234},{"x":387.58888244628906,"y":312.2716999053955,"z":-4.680258631706238},{"x":360.6635284423828,"y":264.31986808776855,"z":-35.94811677932739},{"x":361.04564666748047,"y":256.8225860595703,"z":-37.278664112091064},{"x":408.3855438232422,"y":213.52088928222656,"z":15.756480693817139,"name":"leftEyebrow"},{"x":373.2946014404297,"y":245.38101196289062,"z":-1.9316278398036957},{"x":376.83860778808594,"y":264.3721103668213,"z":-18.510947227478027},{"x":376.9546127319336,"y":261.0010528564453,"z":-15.989909172058105},{"x":406.1498260498047,"y":263.5030174255371,"z":7.072908878326416},{"x":360.07205963134766,"y":248.3631706237793,"z":-32.16656446456909},{"x":393.11119079589844,"y":205.10473251342773,"z":3.7786373496055603,"name":"leftEyebrow"},{"x":402.12791442871094,"y":207.89000988006592,"z":9.383859634399414,"name":"leftEyebrow"},{"x":410.8693313598633,"y":191.6182279586792,"z":41.27030849456787,"name":"faceOval"},{"x":364.9509811401367,"y":210.40483474731445,"z":-3.758212625980377},{"x":375.94444274902344,"y":221.1331844329834,"z":8.368442058563232},{"x":392.1904754638672,"y":305.0360298156738,"z":-1.752179116010666},{"x":419.50225830078125,"y":307.25592613220215,"z":58.96425247192383,"name":"faceOval"},{"x":372.0027160644531,"y":268.7212657928467,"z":-16.631840467453003},{"x":366.1614227294922,"y":271.6237449645996,"z":-18.219159841537476},{"x":385.00938415527344,"y":305.3863334655762,"z":-2.567722797393799},{"x":381.99771881103516,"y":304.9723720550537,"z":-4.575215280056},{"x":405.078125,"y":203.21216583251953,"z":13.713973760604858,"name":"leftEyebrow"},{"x":377.13207244873047,"y":268.4710121154785,"z":-15.266278982162476},{"x":380.9713363647461,"y":205.36980628967285,"z":-0.7250899076461792,"name":"leftEyebrow"},{"x":381.7788314819336,"y":198.9268398284912,"z":-1.184653863310814,"name":"leftEyebrow"},{"x":385.5204772949219,"y":172.1484375,"z":16.04826807975769,"name":"faceOval"},{"x":407.94189453125,"y":196.76236152648926,"z":25.723915100097656},{"x":383.03890228271484,"y":184.5157527923584,"z":7.393874526023865},{"x":411.61781311035156,"y":210.79241752624512,"z":22.315845489501953,"name":"leftEyebrow"},{"x":414.30870056152344,"y":208.4643030166626,"z":37.021894454956055},{"x":364.28722381591797,"y":298.35777282714844,"z":-21.86065673828125},{"x":371.3682556152344,"y":299.78848457336426,"z":-17.834001779556274},{"x":376.88201904296875,"y":301.6696071624756,"z":-13.153743743896484},{"x":370.2193832397461,"y":270.49095153808594,"z":-15.569736957550049},{"x":383.5081100463867,"y":305.2726364135742,"z":-3.673594295978546},{"x":380.73760986328125,"y":305.96869468688965,"z":-8.660228252410889},{"x":381.2334442138672,"y":304.63574409484863,"z":-4.820316135883331,"name":"lips"},{"x":368.1698989868164,"y":264.8884963989258,"z":-25.653886795043945},{"x":373.5087203979492,"y":303.4233856201172,"z":-10.95950722694397,"name":"lips"},{"x":368.4544372558594,"y":303.29601287841797,"z":-14.169161319732666,"name":"lips"},{"x":362.76554107666016,"y":303.5735607147217,"z":-16.911956071853638,"name":"lips"},{"x":366.60980224609375,"y":324.8870658874512,"z":-15.616422891616821},{"x":365.7067108154297,"y":315.95678329467773,"z":-20.903596878051758,"name":"lips"},{"x":365.0083923339844,"y":311.2232208251953,"z":-21.066999435424805},{"x":364.1508102416992,"y":307.0583438873291,"z":-18.907777070999146},{"x":363.37512969970703,"y":304.5721435546875,"z":-17.42550015449524,"name":"lips"},{"x":374.580078125,"y":304.3059539794922,"z":-11.40302300453186,"name":"lips"},{"x":375.55362701416016,"y":305.0998020172119,"z":-12.861957550048828},{"x":377.2437286376953,"y":307.1674346923828,"z":-14.215847253799438},{"x":378.68587493896484,"y":309.9015712738037,"z":-13.223772048950195,"name":"lips"},{"x":383.8992691040039,"y":290.29629707336426,"z":-9.97326910495758},{"x":423.3871841430664,"y":271.91688537597656,"z":74.37058925628662,"name":"faceOval"},{"x":377.68043518066406,"y":304.62209701538086,"z":-7.603961229324341,"name":"lips"},{"x":379.00428771972656,"y":304.9314594268799,"z":-8.57852816581726},{"x":364.00279998779297,"y":275.2813911437988,"z":-19.25792098045349},{"x":374.68231201171875,"y":273.82555961608887,"z":-11.28047227859497},{"x":365.0354766845703,"y":273.4548568725586,"z":-18.791062831878662},{"x":380.61901092529297,"y":249.8848056793213,"z":0.15501167625188828},{"x":391.14158630371094,"y":254.7934627532959,"z":2.0906515419483185},{"x":378.1761169433594,"y":264.9612236022949,"z":-12.605184316635132},{"x":400.9540557861328,"y":179.99592304229736,"z":27.82477855682373,"name":"faceOval"},{"x":398.0038833618164,"y":188.50656509399414,"z":16.094952821731567},{"x":394.8717498779297,"y":199.0359592437744,"z":6.226727366447449,"name":"leftEyebrow"},{"x":382.10926055908203,"y":316.83926582336426,"z":-8.946179747581482},{"x":366.51588439941406,"y":200.32583713531494,"z":-5.24632453918457,"name":"leftEyebrow"},{"x":367.4893569946289,"y":183.87210845947266,"z":1.9039081037044525},{"x":368.6243438720703,"y":168.8127565383911,"z":8.736093044281006,"name":"faceOval"},{"x":398.96175384521484,"y":234.9675178527832,"z":13.713973760604858},{"x":412.9645538330078,"y":242.23042488098145,"z":23.272905349731445},{"x":372.05257415771484,"y":231.41919136047363,"z":9.226294755935669},{"x":406.0722351074219,"y":223.58965873718262,"z":18.370890617370605},{"x":368.27442169189453,"y":240.2039337158203,"z":-4.166713654994965},{"x":372.3575210571289,"y":260.66442489624023,"z":-24.976940155029297},{"x":419.2244338989258,"y":247.9079246520996,"z":30.299127101898193},{"x":409.43885803222656,"y":246.60913467407227,"z":16.398411989212036},{"x":401.69139862060547,"y":248.76328468322754,"z":9.395531415939331},{"x":389.7608184814453,"y":247.56915092468262,"z":5.841569304466248},{"x":380.5461883544922,"y":244.55984115600586,"z":4.263003468513489},{"x":373.25817108154297,"y":240.80214500427246,"z":2.5356262922286987},{"x":358.77086639404297,"y":229.35615062713623,"z":-10.387605428695679},{"x":419.5793914794922,"y":262.8478717803955,"z":26.5175724029541},{"x":410.8808898925781,"y":222.51372814178467,"z":22.199130058288574},{"x":358.45714569091797,"y":268.91467094421387,"z":-33.17030906677246},{"x":373.4129333496094,"y":251.6385841369629,"z":-5.771540403366089},{"x":422.5408172607422,"y":239.23919677734375,"z":74.04378890991211,"name":"faceOval"},{"x":367.8171920776367,"y":236.58040523529053,"z":1.820748895406723},{"x":378.51959228515625,"y":266.2532329559326,"z":-5.74819803237915},{"x":403.3472442626953,"y":229.05112266540527,"z":19.689764976501465},{"x":372.34840393066406,"y":256.6451168060303,"z":-21.872329711914062},{"x":422.54566192626953,"y":289.1587829589844,"z":68.67491245269775,"name":"faceOval"},{"x":371.9297409057617,"y":228.90116214752197,"z":11.432201862335205,"name":"leftEye"},{"x":366.21360778808594,"y":251.6158962249756,"z":-28.19826364517212},{"x":409.1571807861328,"y":321.3156223297119,"z":20.2266526222229},{"x":408.52943420410156,"y":331.44238471984863,"z":31.09278917312622,"name":"faceOval"},{"x":424.2788314819336,"y":267.1992301940918,"z":50.467424392700195},{"x":415.60352325439453,"y":311.6528606414795,"z":30.579242706298828},{"x":418.12793731689453,"y":221.59927368164062,"z":46.26569747924805},{"x":385.68286895751953,"y":346.0184955596924,"z":-5.70151150226593},{"x":357.82936096191406,"y":271.3758373260498,"z":-24.836881160736084},{"x":379.588623046875,"y":257.5071716308594,"z":-3.755294680595398},{"x":417.4592590332031,"y":234.71948146820068,"z":34.5475435256958},{"x":393.4684371948242,"y":231.58967971801758,"z":11.408859491348267,"name":"leftEye"},{"x":387.8864288330078,"y":232.14245796203613,"z":9.51808214187622,"name":"leftEye"},{"x":382.4981689453125,"y":307.5654888153076,"z":-7.522260546684265,"name":"lips"},{"x":419.00169372558594,"y":277.8332805633545,"z":26.424202919006348},{"x":373.62953186035156,"y":357.6375102996826,"z":-5.75986921787262,"name":"faceOval"},{"x":392.8708267211914,"y":347.72446632385254,"z":10.154176950454712,"name":"faceOval"},{"x":400.3953552246094,"y":341.0005187988281,"z":19.39797878265381,"name":"faceOval"},{"x":382.25440979003906,"y":231.66935920715332,"z":8.998700976371765,"name":"leftEye"},{"x":377.14550018310547,"y":230.4228687286377,"z":9.804032444953918,"name":"leftEye"},{"x":373.8358688354492,"y":229.64950561523438,"z":11.292144060134888,"name":"leftEye"},{"x":414.5794677734375,"y":221.67891025543213,"z":29.412097930908203},{"x":377.00672149658203,"y":225.66201210021973,"z":9.360517263412476,"name":"leftEye"},{"x":382.29530334472656,"y":224.8431158065796,"z":8.32175612449646,"name":"leftEye"},{"x":387.5133514404297,"y":224.49507236480713,"z":8.917000889778137,"name":"leftEye"},{"x":393.15906524658203,"y":225.24795055389404,"z":10.737749338150024,"name":"leftEye"},{"x":397.05554962158203,"y":226.55359268188477,"z":13.002015352249146,"name":"leftEye"},{"x":420.5299377441406,"y":221.014666557312,"z":65.40690422058105,"name":"faceOval"},{"x":397.06920623779297,"y":230.6661558151245,"z":13.807345628738403,"name":"leftEye"},{"x":377.94647216796875,"y":285.1647090911865,"z":-13.305472135543823},{"x":372.1118927001953,"y":267.1267318725586,"z":-18.83774757385254},{"x":364.9968719482422,"y":282.24411964416504,"z":-19.818150997161865},{"x":401.973876953125,"y":331.20131492614746,"z":11.566424369812012},{"x":394.3083190917969,"y":338.86693954467773,"z":3.142542541027069},{"x":373.9820861816406,"y":351.4504623413086,"z":-13.50388765335083},{"x":414.3888854980469,"y":321.24735832214355,"z":45.51872253417969,"name":"faceOval"},{"x":373.44234466552734,"y":227.33163356781006,"z":10.626870393753052,"name":"leftEye"},{"x":364.0731430053711,"y":240.31539916992188,"z":-13.807345628738403},{"x":384.2658233642578,"y":353.3793067932129,"z":0.7385850697755814,"name":"faceOval"},{"x":423.20526123046875,"y":283.5176181793213,"z":47.152724266052246},{"x":369.42798614501953,"y":304.0898895263672,"z":-14.647691249847412,"name":"lips"},{"x":370.63812255859375,"y":305.90051651000977,"z":-16.211668252944946},{"x":371.91192626953125,"y":309.0167713165283,"z":-17.84567356109619},{"x":373.0583953857422,"y":313.3545398712158,"z":-17.378815412521362,"name":"lips"},{"x":375.39905548095703,"y":321.09289169311523,"z":-13.118728399276733},{"x":379.2567825317383,"y":304.3582534790039,"z":-7.924926280975342},{"x":381.18797302246094,"y":303.7031364440918,"z":-7.843226194381714},{"x":383.0918502807617,"y":302.4884605407715,"z":-7.6506465673446655,"name":"lips"},{"x":389.09461975097656,"y":297.1475315093994,"z":-5.5497825145721436},{"x":411.6408920288086,"y":280.24898529052734,"z":12.02161192893982},{"x":363.3110809326172,"y":234.27620887756348,"z":-6.775286793708801},{"x":366.0474395751953,"y":223.29872131347656,"z":6.827808618545532},{"x":370.34427642822266,"y":225.1457118988037,"z":9.558931589126587},{"x":377.5371551513672,"y":303.60079765319824,"z":-7.358860373497009,"name":"lips"},{"x":412.9557800292969,"y":299.53579902648926,"z":19.39797878265381},{"x":360.0810241699219,"y":221.72012329101562,"z":-2.153385728597641},{"x":379.82784271240234,"y":329.47723388671875,"z":-10.48097848892212},{"x":359.08477783203125,"y":235.7911491394043,"z":-18.079102039337158},{"x":369.6688461303711,"y":251.5407943725586,"z":-14.962821006774902},{"x":369.5555114746094,"y":333.5307312011719,"z":-15.67478060722351},{"x":394.0193176269531,"y":315.6973171234131,"z":-0.9920747578144073},{"x":383.78997802734375,"y":272.7268695831299,"z":-4.689012169837952},{"x":387.67765045166016,"y":323.6722755432129,"z":-5.640236139297485},{"x":397.8769302368164,"y":272.1331214904785,"z":-0.9395531564950943},{"x":389.87476348876953,"y":280.5630111694336,"z":-4.29218202829361},{"x":403.83888244628906,"y":285.1167869567871,"z":3.0229100584983826},{"x":372.5467300415039,"y":343.1070327758789,"z":-16.153310537338257},{"x":374.1112518310547,"y":256.3721466064453,"z":-10.574349164962769},{"x":399.73785400390625,"y":321.77515983581543,"z":4.849494695663452},{"x":392.03365325927734,"y":330.56447982788086,"z":-1.3407598435878754},{"x":398.59134674072266,"y":305.93902587890625,"z":1.517290621995926},{"x":417.95997619628906,"y":290.9716987609863,"z":26.89105987548828},{"x":406.04541778564453,"y":307.35154151916504,"z":8.666064143180847},{"x":420.75328826904297,"y":298.40752601623535,"z":41.78385257720947},{"x":395.4522705078125,"y":291.4153575897217,"z":-2.1752697229385376},{"x":368.6452102661133,"y":245.8882999420166,"z":-9.453888535499573},{"x":370.34900665283203,"y":263.56690406799316,"z":-26.75100326538086},{"x":374.98477935791016,"y":266.6126346588135,"z":-19.77146625518799},{"x":366.99840545654297,"y":258.12140464782715,"z":-31.372904777526855},{"x":371.00616455078125,"y":217.63479709625244,"z":5.60522198677063},{"x":381.30577087402344,"y":214.14087295532227,"z":4.983716309070587},{"x":390.1496124267578,"y":213.38221549987793,"z":5.593550801277161},{"x":397.7696990966797,"y":214.3659782409668,"z":8.57852816581726},{"x":403.1652069091797,"y":217.65509605407715,"z":13.013685941696167},{"x":407.3551940917969,"y":230.72525024414062,"z":22.444231510162354},{"x":424.0876770019531,"y":251.7839241027832,"z":51.16771221160889},{"x":403.50196838378906,"y":239.88757610321045,"z":15.803166627883911},{"x":397.31719970703125,"y":241.49806022644043,"z":11.233787536621094},{"x":388.99425506591797,"y":241.4366912841797,"z":7.948269248008728},{"x":380.7804489135742,"y":239.78078842163086,"z":6.600214838981628},{"x":374.01336669921875,"y":237.11946487426758,"z":6.349278092384338},{"x":369.39125061035156,"y":234.35351371765137,"z":5.987462401390076},{"x":422.9730987548828,"y":255.76455116271973,"z":76.61150932312012,"name":"faceOval"},{"x":374.73915100097656,"y":269.24214363098145,"z":-16.608498096466064},{"x":364.61681365966797,"y":245.71088790893555,"z":-20.02823829650879},{"x":365.3834533691406,"y":263.34174156188965,"z":-32.32996463775635},{"x":361.58252716064453,"y":267.8273677825928,"z":-30.345816612243652},{"x":365.37208557128906,"y":265.0249671936035,"z":-29.178667068481445},{"x":372.72605895996094,"y":272.05135345458984,"z":-14.834434986114502},{"x":360.48614501953125,"y":268.34827423095703,"z":-32.189905643463135},{"x":359.9516296386719,"y":270.8049201965332,"z":-24.650139808654785},{"x":369.5049285888672,"y":229.01945114135742,"z":10.107489824295044},{"x":365.5447769165039,"y":230.24096488952637,"z":5.593550801277161},{"x":363.50669860839844,"y":230.6208372116089,"z":0.43622106313705444},{"x":399.3529510498047,"y":227.65677452087402,"z":15.35965085029602,"name":"leftEye"},{"x":402.5693130493164,"y":224.60190296173096,"z":15.931552648544312} + ], + "box": { + "xMin":277.8318977355957, + "yMin":168.7741756439209, + "xMax":424.2788314819336, + "yMax":359.8348903656006, + "width":146.4469337463379, + "height":191.0607147216797 + } + }, + // Extracted from: https://github.com/tensorflow/tfjs-models/blob/a8f500809f5afe38feea27870c77e7ba03a6ece4/face-landmarks-detection/demos/shared/triangulation.js + // prettier-ignore + TRIANGULATION: [ + 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9, 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56, 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91, 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117, 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211, 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173, 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28, 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49, 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89, 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122, 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110, 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246, 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162, 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13, 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214, 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61, 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59, 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56, 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213, 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228, 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347, 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313, 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320, 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258, 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256, 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467, 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436, 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424, 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432, 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330, 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419, 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445, 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355, 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368, 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461, 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391, 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314, 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309, 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254, 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259, 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453, 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133, 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60, 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155, 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17, 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83, 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196, 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47, 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95, 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43, 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203, 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96, 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22, 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38, 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111, 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145, 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70, 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32, 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212, 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2, 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221, 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245, 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267, 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337, 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260, 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406, 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8, 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283, 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325, 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329, 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345, 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299, 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279, 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310, 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337, 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285, 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387, 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330, 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315, 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264, 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339, 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257, 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357, 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255 ], - "box": { - "xMin":277.8318977355957, - "yMin":168.7741756439209, - "xMax":424.2788314819336, - "yMax":359.8348903656006, - "width":146.4469337463379, - "height":191.0607147216797 - } -}; +}