From 7e5cf848e3cf4ca5a9a775c270d75069c89943ad Mon Sep 17 00:00:00 2001 From: ahmmed-binas Date: Sat, 23 Mar 2024 23:44:08 +0100 Subject: [PATCH] Initial commit --- Press Start 2P_Regular.json | 1 + README.md | 38 +- Regular.json | 136 + Roboto_Regular.json | 1 + cameras.js | 0 game.js | 7 + grids.js | 163 +- htmlcube.js | 55 +- mat.js | 20 + matter.js | 11001 ++++++++++++++++ matter.min.js | 6 + my-react-app/.gitignore | 23 + my-react-app/README.md | 70 + my-react-app/package-lock.json | 18211 ++++++++++++++++++++++++++ my-react-app/package.json | 38 + my-react-app/public/favicon.ico | Bin 0 -> 3870 bytes my-react-app/public/index.html | 43 + my-react-app/public/logo192.png | Bin 0 -> 5347 bytes my-react-app/public/logo512.png | Bin 0 -> 9664 bytes my-react-app/public/manifest.json | 25 + my-react-app/public/robots.txt | 3 + my-react-app/src/App.css | 38 + my-react-app/src/App.js | 42 + my-react-app/src/App.test.js | 8 + my-react-app/src/index.css | 13 + my-react-app/src/index.js | 17 + my-react-app/src/logo.svg | 1 + my-react-app/src/messege.jsx | 8 + my-react-app/src/reportWebVitals.js | 13 + my-react-app/src/setupTests.js | 5 + sqaureobject.js | 93 + startUI.js | 294 + three.html | 20 +- x.js | 402 +- 34 files changed, 30704 insertions(+), 91 deletions(-) create mode 100644 Press Start 2P_Regular.json create mode 100644 Regular.json create mode 100644 Roboto_Regular.json create mode 100644 cameras.js create mode 100644 game.js create mode 100644 mat.js create mode 100644 matter.js create mode 100644 matter.min.js create mode 100644 my-react-app/.gitignore create mode 100644 my-react-app/README.md create mode 100644 my-react-app/package-lock.json create mode 100644 my-react-app/package.json create mode 100644 my-react-app/public/favicon.ico create mode 100644 my-react-app/public/index.html create mode 100644 my-react-app/public/logo192.png create mode 100644 my-react-app/public/logo512.png create mode 100644 my-react-app/public/manifest.json create mode 100644 my-react-app/public/robots.txt create mode 100644 my-react-app/src/App.css create mode 100644 my-react-app/src/App.js create mode 100644 my-react-app/src/App.test.js create mode 100644 my-react-app/src/index.css create mode 100644 my-react-app/src/index.js create mode 100644 my-react-app/src/logo.svg create mode 100644 my-react-app/src/messege.jsx create mode 100644 my-react-app/src/reportWebVitals.js create mode 100644 my-react-app/src/setupTests.js create mode 100644 sqaureobject.js create mode 100644 startUI.js diff --git a/Press Start 2P_Regular.json b/Press Start 2P_Regular.json new file mode 100644 index 0000000..157d237 --- /dev/null +++ b/Press Start 2P_Regular.json @@ -0,0 +1 @@ +{"glyphs":{"0":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 347 174 m 521 347 l 868 347 l 868 1042 l 694 1042 l 694 1215 l 347 1215 l 347 521 l 521 521 l 521 347 z "},"1":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 868 1389 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"2":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 694 l 347 694 l 347 868 l 694 868 l 694 1042 l 868 1042 l 868 1215 l 347 1215 l 347 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 521 521 l 521 347 l 1215 347 l 1215 174 l 0 174 z "},"3":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 694 l 347 694 l 347 868 l 521 868 l 521 1042 l 694 1042 l 694 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"4":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 694 174 l 694 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 1042 1389 l 1042 694 l 1215 694 l 1215 521 l 1042 521 l 1042 174 l 694 174 m 347 694 l 694 694 l 694 1042 l 521 1042 l 521 868 l 347 868 l 347 694 z "},"5":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 868 l 0 868 l 0 1389 l 1042 1389 l 1042 1215 l 347 1215 l 347 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"6":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 l 521 1215 l 521 1042 l 347 1042 l 347 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 694 l 347 694 l 347 347 z "},"7":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 694 l 521 694 l 521 868 l 694 868 l 694 1042 l 868 1042 l 868 1215 l 347 1215 l 347 1042 l 0 1042 l 0 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 694 694 l 694 174 l 347 174 z "},"8":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 694 l 174 694 l 174 868 l 0 868 l 0 1215 l 174 1215 l 174 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 868 l 868 868 l 868 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 521 868 l 868 868 l 868 1215 l 347 1215 l 347 1042 l 521 1042 l 521 868 m 174 347 l 868 347 l 868 521 l 521 521 l 521 694 l 174 694 l 174 347 z "},"9":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 694 347 l 694 521 l 868 521 l 868 694 l 174 694 l 174 868 l 0 868 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 174 174 m 347 868 l 868 868 l 868 1215 l 347 1215 l 347 868 z "},"\u0000":{"ha":0,"x_min":0,"x_max":0,"o":""},"\r":{"ha":1389,"x_min":0,"x_max":0,"o":""}," ":{"ha":1389,"x_min":0,"x_max":0,"o":""},"A":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 m 347 694 l 868 694 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 694 z "},"Á":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 694 l 1215 174 l 868 174 l 868 347 l 347 347 l 347 174 l 0 174 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 868 1042 l 868 868 l 1042 868 l 1042 694 l 1215 694 m 868 694 l 694 694 l 694 868 l 521 868 l 521 694 l 347 694 l 347 521 l 868 521 l 868 694 z "},"Ă":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 694 l 1215 174 l 868 174 l 868 347 l 347 347 l 347 174 l 0 174 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1215 l 868 1215 l 868 868 l 1042 868 l 1042 694 l 1215 694 m 868 694 l 694 694 l 694 868 l 521 868 l 521 694 l 347 694 l 347 521 l 868 521 l 868 694 z "},"Â":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 868 174 l 868 347 l 347 347 l 347 174 l 0 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 521 l 868 521 l 868 694 l 694 694 l 694 868 l 521 868 l 521 694 l 347 694 l 347 521 z "},"Ä":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 0 174 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 868 1042 l 868 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 868 174 l 868 347 l 347 347 l 347 174 l 0 174 m 347 521 l 868 521 l 868 694 l 694 694 l 694 868 l 521 868 l 521 694 l 347 694 l 347 521 z "},"À":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1215 694 l 1215 174 l 868 174 l 868 347 l 347 347 l 347 174 l 0 174 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 868 1042 l 868 868 l 1042 868 l 1042 694 l 1215 694 m 868 694 l 694 694 l 694 868 l 521 868 l 521 694 l 347 694 l 347 521 l 868 521 l 868 694 z "},"Ā":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 0 174 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 868 1042 l 868 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 868 174 l 868 347 l 347 347 l 347 174 l 0 174 m 347 521 l 868 521 l 868 694 l 694 694 l 694 868 l 521 868 l 521 694 l 347 694 l 347 521 z "},"Ą":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 694 l 347 694 l 347 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 m 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 868 l 868 868 l 868 1042 m 694 347 l 868 347 l 868 174 l 694 174 l 694 347 m 868 0 l 868 174 l 1215 174 l 1215 0 l 868 0 z "},"Å":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 l 868 1215 l 868 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 868 174 l 868 347 l 347 347 l 347 174 l 0 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 521 l 868 521 l 868 694 l 694 694 l 694 868 l 521 868 l 521 694 l 347 694 l 347 521 z "},"Ã":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 694 l 1215 174 l 868 174 l 868 347 l 347 347 l 347 174 l 0 174 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 521 1042 l 521 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 l 868 1215 l 868 868 l 1042 868 l 1042 694 l 1215 694 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 347 1215 l 347 1042 l 174 1042 l 174 1215 l 347 1215 m 868 694 l 694 694 l 694 868 l 521 868 l 521 694 l 347 694 l 347 521 l 868 521 l 868 694 z "},"Æ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 868 l 1215 868 l 1215 694 l 868 694 l 868 347 l 1215 347 l 1215 174 l 521 174 l 521 521 l 347 521 l 347 174 l 0 174 m 347 694 l 521 694 l 521 1042 l 347 1042 l 347 694 z "},"B":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 0 174 m 347 868 l 868 868 l 868 1215 l 347 1215 l 347 868 m 347 347 l 868 347 l 868 694 l 347 694 l 347 347 z "},"C":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 521 1215 l 521 1042 l 347 1042 l 347 521 l 521 521 l 521 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 347 174 z "},"Ć":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 868 l 1215 694 l 868 694 l 868 868 l 521 868 l 521 694 l 347 694 l 347 521 l 521 521 l 521 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 z "},"Č":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 868 1215 l 868 1389 l 1215 1389 l 1215 1215 l 1042 1215 l 1042 868 l 1215 868 l 1215 694 l 868 694 l 868 868 l 521 868 l 521 694 l 347 694 l 347 521 l 521 521 l 521 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 347 174 z "},"Ç":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 521 1215 l 521 1042 l 347 1042 l 347 694 l 521 694 l 521 521 l 868 521 l 868 694 l 1215 694 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 694 174 l 694 347 l 347 347 l 347 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 l 1215 1215 m 347 174 l 694 174 l 694 0 l 347 0 l 347 174 z "},"Ĉ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 868 l 1215 868 l 1215 694 l 868 694 l 868 868 l 521 868 l 521 694 l 347 694 l 347 521 l 521 521 l 521 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 347 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 z "},"Ċ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 868 694 l 868 868 l 521 868 l 521 694 l 347 694 l 347 521 l 521 521 l 521 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 347 174 z "},"D":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 0 174 m 347 347 l 694 347 l 694 521 l 868 521 l 868 1042 l 694 1042 l 694 1215 l 347 1215 l 347 347 z "},"Ð":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 174 174 m 521 347 l 694 347 l 694 521 l 868 521 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 868 l 694 868 l 694 694 l 521 694 l 521 347 z "},"Ď":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 868 l 1042 868 l 1042 694 l 1215 694 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 0 174 m 347 347 l 694 347 l 694 521 l 868 521 l 868 694 l 694 694 l 694 868 l 347 868 l 347 347 z "},"Đ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 174 174 m 521 347 l 694 347 l 694 521 l 868 521 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 868 l 694 868 l 694 694 l 521 694 l 521 347 z "},"E":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1215 1389 l 1215 1215 l 347 1215 l 347 868 l 1042 868 l 1042 694 l 347 694 l 347 347 l 1215 347 l 1215 174 l 0 174 z "},"É":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 l 0 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1215 1042 z "},"Ĕ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 l 0 1042 l 347 1042 l 347 1215 l 868 1215 l 868 1042 l 1215 1042 z "},"Ě":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 z "},"Ê":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 z "},"Ë":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 0 174 l 0 1042 l 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 z "},"Ė":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 0 174 l 0 1042 l 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 z "},"È":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 l 0 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1215 1042 z "},"Ē":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 0 174 l 0 1042 l 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 z "},"Ę":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 1215 l 347 1215 l 347 1042 l 1042 1042 l 1042 868 l 347 868 l 347 694 l 1215 694 l 1215 521 l 694 521 l 694 347 l 521 347 l 521 521 l 0 521 l 0 1389 l 1215 1389 m 347 347 l 521 347 l 521 174 l 347 174 l 347 347 m 521 0 l 521 174 l 868 174 l 868 0 l 521 0 z "},"F":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1215 1389 l 1215 1215 l 347 1215 l 347 868 l 1042 868 l 1042 694 l 347 694 l 347 174 l 0 174 z "},"G":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1215 1389 l 1215 1215 l 521 1215 l 521 1042 l 347 1042 l 347 521 l 521 521 l 521 347 l 868 347 l 868 694 l 694 694 l 694 868 l 1215 868 l 1215 174 l 347 174 z "},"Ğ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 868 l 347 868 l 347 347 l 868 347 l 868 521 l 694 521 l 694 694 l 1215 694 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 868 1215 l 868 1042 l 1215 1042 z "},"Ĝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 868 l 347 868 l 347 347 l 868 347 l 868 521 l 694 521 l 694 694 l 1215 694 l 1215 174 l 174 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 z "},"Ģ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 0 l 347 174 l 521 174 l 521 347 l 347 347 l 347 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1215 1389 l 1215 1215 l 521 1215 l 521 1042 l 347 1042 l 347 694 l 521 694 l 521 521 l 868 521 l 868 694 l 694 694 l 694 868 l 1215 868 l 1215 347 l 868 347 l 868 174 l 694 174 l 694 0 l 347 0 z "},"Ġ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 347 868 l 347 347 l 868 347 l 868 521 l 694 521 l 694 694 l 1215 694 l 1215 174 l 174 174 z "},"H":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 868 l 868 868 l 868 1389 l 1215 1389 l 1215 174 l 868 174 l 868 694 l 347 694 l 347 174 l 0 174 z "},"Ħ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 1215 l 868 1215 l 868 1389 l 1215 1389 l 1215 174 l 868 174 l 868 694 l 347 694 l 347 174 l 0 174 m 347 868 l 868 868 l 868 1042 l 347 1042 l 347 868 z "},"Ĥ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1215 1215 l 1215 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 m 347 694 l 868 694 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 694 z "},"I":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"IJ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 521 l 0 694 l 174 694 l 174 1215 l 0 1215 l 0 1389 l 694 1389 l 694 1215 l 521 1215 l 521 694 l 694 694 l 694 521 l 0 521 m 174 174 l 174 347 l 868 347 l 868 1389 l 1215 1389 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Í":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1215 1042 z "},"Ĭ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 868 1215 l 868 1042 l 1215 1042 z "},"Î":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"Ï":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 868 1215 l 868 1389 l 1215 1389 l 1215 1215 l 868 1215 m 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"İ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"Ì":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 694 1389 l 694 1215 l 521 1215 l 521 1389 l 694 1389 m 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1042 l 1215 1042 z "},"Ī":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 174 1215 m 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"Į":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1389 l 1215 1215 l 868 1215 l 868 694 l 1215 694 l 1215 521 l 694 521 l 694 347 l 521 347 l 521 521 l 174 521 l 174 694 l 521 694 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 m 347 347 l 521 347 l 521 174 l 347 174 l 347 347 m 521 0 l 521 174 l 868 174 l 868 0 l 521 0 z "},"Ĩ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 694 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 694 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1215 l 347 1215 l 347 1042 l 694 1042 l 694 1215 z "},"J":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 1389 l 1215 1389 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ĵ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 1215 l 694 1215 l 694 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"K":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 868 l 521 868 l 521 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1389 l 1215 1389 l 1215 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 868 l 694 868 l 694 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 694 174 l 694 347 l 521 347 l 521 521 l 347 521 l 347 174 l 0 174 z "},"Ķ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 0 l 174 174 l 347 174 l 347 347 l 0 347 l 0 1389 l 347 1389 l 347 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 694 1042 l 694 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 694 347 l 694 174 l 521 174 l 521 0 l 174 0 m 347 347 l 694 347 l 694 521 l 521 521 l 521 694 l 347 694 l 347 347 z "},"L":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 1389 l 521 1389 l 521 347 l 1215 347 l 1215 174 l 174 174 z "},"Ĺ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 347 l 1215 174 l 174 174 l 174 1215 l 694 1215 l 694 1042 l 521 1042 l 521 347 l 1215 347 z "},"Ľ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 1389 l 521 1389 l 521 347 l 1215 347 l 1215 174 l 174 174 m 868 868 l 868 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 z "},"Ļ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 347 0 l 347 174 l 521 174 l 521 347 l 174 347 l 174 1389 l 521 1389 l 521 521 l 1215 521 l 1215 347 l 868 347 l 868 174 l 694 174 l 694 0 l 347 0 z "},"Ŀ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 1389 l 521 1389 l 521 347 l 1215 347 l 1215 174 l 174 174 m 694 694 l 694 1042 l 1042 1042 l 1042 694 l 694 694 z "},"Ł":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1389 l 521 1389 l 521 1042 l 694 1042 l 694 868 l 521 868 l 521 347 l 1215 347 l 1215 174 l 174 174 z "},"M":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 1215 l 521 1215 l 521 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1389 l 1215 1389 l 1215 174 l 868 174 l 868 868 l 694 868 l 694 521 l 521 521 l 521 868 l 347 868 l 347 174 l 0 174 z "},"N":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 1215 l 521 1215 l 521 1042 l 694 1042 l 694 868 l 868 868 l 868 1389 l 1215 1389 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 694 l 521 694 l 521 868 l 347 868 l 347 174 l 0 174 z "},"Ń":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 m 1215 1042 l 1215 174 l 694 174 l 694 347 l 521 347 l 521 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 521 1042 l 521 868 l 694 868 l 694 694 l 868 694 l 868 1042 l 1215 1042 z "},"Ň":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1042 l 1215 174 l 694 174 l 694 347 l 521 347 l 521 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 521 1042 l 521 868 l 694 868 l 694 694 l 868 694 l 868 1042 l 1215 1042 z "},"Ņ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 347 l 868 347 l 868 521 l 694 521 l 694 694 l 521 694 l 521 868 l 347 868 l 347 347 l 0 347 l 0 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1042 l 868 1042 l 868 1389 l 1215 1389 m 521 347 l 868 347 l 868 174 l 694 174 l 694 0 l 347 0 l 347 174 l 521 174 l 521 347 z "},"Ŋ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 0 l 347 174 l 868 174 l 868 521 l 694 521 l 694 694 l 521 694 l 521 868 l 347 868 l 347 347 l 0 347 l 0 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1042 l 868 1042 l 868 1389 l 1215 1389 l 1215 174 l 1042 174 l 1042 0 l 347 0 z "},"Ñ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1042 l 521 1042 l 521 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 174 l 694 174 l 694 347 l 521 347 l 521 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1042 l 521 1042 l 521 868 l 694 868 l 694 694 l 868 694 l 868 1042 l 1215 1042 z "},"O":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 1215 l 347 1215 l 347 347 z "},"Ó":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 347 l 868 347 l 868 868 z "},"Ŏ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 347 l 868 347 l 868 868 z "},"Ô":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"Ö":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"Ò":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 347 l 868 347 l 868 868 z "},"Ő":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 347 l 868 347 l 868 868 z "},"Ō":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"Ø":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 694 868 l 694 1042 l 868 1042 l 868 1215 l 347 1215 l 347 694 l 521 694 l 521 521 l 347 521 l 347 347 m 521 694 l 521 868 l 694 868 l 694 694 l 521 694 z "},"Õ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 1042 l 521 1042 l 521 1215 l 347 1215 l 347 1042 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"Œ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 868 l 1215 868 l 1215 694 l 868 694 l 868 347 l 1215 347 l 1215 174 l 174 174 m 347 347 l 521 347 l 521 1215 l 347 1215 l 347 347 z "},"P":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 694 l 1042 694 l 1042 521 l 347 521 l 347 174 l 0 174 m 347 694 l 868 694 l 868 1215 l 347 1215 l 347 694 z "},"Þ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 347 347 l 347 174 l 0 174 m 347 521 l 868 521 l 868 1042 l 347 1042 l 347 521 z "},"Q":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1215 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 m 868 1215 l 347 1215 l 347 347 l 694 347 l 694 521 l 521 521 l 521 694 l 868 694 l 868 1215 m 1042 174 l 1042 347 l 1215 347 l 1215 174 l 1042 174 z "},"R":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 694 174 l 694 347 l 521 347 l 521 521 l 347 521 l 347 174 l 0 174 m 347 694 l 694 694 l 694 868 l 868 868 l 868 1215 l 347 1215 l 347 694 z "},"Ŕ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 868 l 1215 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 694 174 l 694 347 l 521 347 l 521 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 694 868 l 347 868 l 347 694 l 694 694 l 694 868 z "},"Ř":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 868 l 1215 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 694 174 l 694 347 l 521 347 l 521 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 694 868 l 347 868 l 347 694 l 694 694 l 694 868 z "},"Ŗ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 0 l 347 174 l 521 174 l 521 347 l 694 347 l 694 521 l 521 521 l 521 694 l 347 694 l 347 347 l 0 347 l 0 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 868 347 l 868 174 l 694 174 l 694 0 l 347 0 m 347 868 l 694 868 l 694 1042 l 868 1042 l 868 1215 l 347 1215 l 347 868 z "},"S":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 694 l 174 694 l 174 868 l 0 868 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 347 1215 l 347 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ś":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 521 l 1215 347 l 1042 347 l 1042 174 l 0 174 l 0 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 1215 521 z "},"Š":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 0 174 z "},"Ş":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 868 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 694 174 l 694 347 l 174 347 l 174 521 l 0 521 l 0 694 l 347 694 l 347 521 l 868 521 l 868 868 l 174 868 l 174 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 347 1215 l 347 1042 l 1042 1042 l 1042 868 l 1215 868 m 347 174 l 694 174 l 694 0 l 347 0 l 347 174 z "},"Ŝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 0 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 z "},"T":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 174 l 521 174 z "},"Ŧ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 521 l 347 521 l 347 694 l 521 694 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 868 l 1042 868 l 1042 694 l 868 694 l 868 174 l 521 174 z "},"Ť":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 868 l 868 868 l 868 174 l 521 174 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 868 1215 l 868 1042 l 1215 1042 z "},"Ț":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1389 l 1215 1215 l 868 1215 l 868 174 l 694 174 l 694 347 l 521 347 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 m 347 174 l 694 174 l 694 0 l 347 0 l 347 174 z "},"U":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1389 l 347 1389 l 347 347 l 868 347 l 868 1389 l 1215 1389 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ú":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 m 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 z "},"Ŭ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 868 1042 l 347 1042 l 347 1215 l 868 1215 l 868 1042 m 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 z "},"Û":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 174 1042 m 174 174 l 174 347 l 0 347 l 0 868 l 347 868 l 347 347 l 868 347 l 868 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ü":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ù":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 521 1042 l 521 1215 l 694 1215 l 694 1042 l 521 1042 m 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 z "},"Ű":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 347 l 868 347 l 868 1042 l 1215 1042 m 868 1215 l 868 1042 l 694 1042 l 694 1215 l 868 1215 z "},"Ū":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ų":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 694 l 1042 694 l 1042 521 l 694 521 l 694 347 l 521 347 l 521 521 l 174 521 l 174 694 l 0 694 l 0 1389 l 347 1389 l 347 694 l 868 694 l 868 1389 l 1215 1389 m 347 347 l 521 347 l 521 174 l 347 174 l 347 347 m 521 0 l 521 174 l 868 174 l 868 0 l 521 0 z "},"Ů":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 347 l 868 347 l 868 868 l 1042 868 l 1042 1042 l 868 1042 l 868 868 l 347 868 l 347 1042 l 174 1042 l 174 868 l 347 868 l 347 347 z "},"Ũ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1042 l 521 1042 l 521 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 347 l 868 347 l 868 1042 l 1215 1042 z "},"V":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 174 l 521 347 l 347 347 l 347 521 l 174 521 l 174 694 l 0 694 l 0 1389 l 347 1389 l 347 868 l 521 868 l 521 694 l 694 694 l 694 868 l 868 868 l 868 1389 l 1215 1389 l 1215 694 l 1042 694 l 1042 521 l 868 521 l 868 347 l 694 347 l 694 174 l 521 174 z "},"W":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1389 l 347 1389 l 347 694 l 521 694 l 521 1389 l 694 1389 l 694 694 l 868 694 l 868 1389 l 1215 1389 l 1215 347 l 1042 347 l 1042 174 l 868 174 l 868 347 l 694 347 l 694 521 l 521 521 l 521 347 l 347 347 l 347 174 l 174 174 z "},"Ŵ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 174 l 694 174 l 694 347 l 521 347 l 521 174 l 0 174 m 347 694 l 521 694 l 521 868 l 694 868 l 694 694 l 868 694 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 694 z "},"X":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 694 l 347 694 l 347 868 l 174 868 l 174 1042 l 0 1042 l 0 1389 l 347 1389 l 347 1042 l 521 1042 l 521 868 l 694 868 l 694 1042 l 868 1042 l 868 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 694 l 521 694 l 521 521 l 347 521 l 347 174 l 0 174 z "},"Y":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 694 l 347 694 l 347 868 l 174 868 l 174 1389 l 521 1389 l 521 868 l 868 868 l 868 1389 l 1215 1389 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 174 l 521 174 z "},"Ý":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 m 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 868 521 l 868 174 l 521 174 l 521 521 l 347 521 l 347 694 l 174 694 l 174 1042 l 521 1042 l 521 694 l 868 694 l 868 1042 l 1215 1042 z "},"Ŷ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 521 l 347 521 l 347 694 l 174 694 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 868 521 l 868 174 l 521 174 m 521 694 l 868 694 l 868 1215 l 521 1215 l 521 694 z "},"Ÿ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 868 1215 l 868 1389 l 1215 1389 l 1215 1215 l 868 1215 m 521 174 l 521 521 l 347 521 l 347 694 l 174 694 l 174 1042 l 521 1042 l 521 694 l 868 694 l 868 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 868 521 l 868 174 l 521 174 z "},"Z":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 694 l 347 694 l 347 868 l 521 868 l 521 1042 l 694 1042 l 694 1215 l 0 1215 l 0 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 694 694 l 694 521 l 521 521 l 521 347 l 1215 347 l 1215 174 l 0 174 z "},"Ź":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 694 521 l 694 347 l 1215 347 l 1215 174 l 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 521 694 l 521 868 l 0 868 l 0 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1215 1042 z "},"Ž":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 521 694 l 521 868 l 0 868 l 0 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 694 521 l 694 347 l 1215 347 l 1215 174 l 0 174 z "},"Ż":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 521 694 l 521 868 l 0 868 l 0 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 694 521 l 694 347 l 1215 347 l 1215 174 l 0 174 z "},"a":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 174 174 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"á":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 868 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 521 l 347 521 l 347 347 l 868 347 l 868 521 z "},"ă":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 868 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 521 l 347 521 l 347 347 l 868 347 l 868 521 z "},"â":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 868 l 1215 868 l 1215 174 l 174 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"ä":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 174 174 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"à":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1215 868 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 521 l 347 521 l 347 347 l 868 347 l 868 521 z "},"ā":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 174 174 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"ą":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1215 l 1215 521 l 694 521 l 694 347 l 521 347 l 521 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 868 1042 l 868 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 m 868 868 l 347 868 l 347 694 l 868 694 l 868 868 m 347 347 l 521 347 l 521 174 l 347 174 l 347 347 m 521 0 l 521 174 l 868 174 l 868 0 l 521 0 z "},"å":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 174 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"ã":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 174 174 m 347 1042 l 521 1042 l 521 1215 l 347 1215 l 347 1042 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"æ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 521 694 l 521 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 694 521 l 694 347 l 1042 347 l 1042 174 l 174 174 m 694 694 l 868 694 l 868 868 l 694 868 l 694 694 m 347 347 l 521 347 l 521 521 l 347 521 l 347 347 z "},"b":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1389 l 347 1389 l 347 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"c":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 347 868 l 347 347 l 1215 347 l 1215 174 l 174 174 z "},"ć":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 1042 l 1215 868 l 347 868 l 347 347 l 1215 347 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1215 1042 z "},"č":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1215 1042 l 1215 868 l 347 868 l 347 347 l 1215 347 l 1215 174 l 174 174 z "},"ç":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1042 l 1215 868 l 347 868 l 347 521 l 1215 521 l 1215 347 l 868 347 l 868 174 l 694 174 l 694 347 l 174 347 l 174 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 1215 1042 m 347 174 l 694 174 l 694 0 l 347 0 l 347 174 z "},"ĉ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 868 l 347 868 l 347 347 l 1215 347 l 1215 174 l 174 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 z "},"ċ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 347 868 l 347 347 l 1215 347 l 1215 174 l 174 174 z "},"d":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 868 1042 l 868 1389 l 1215 1389 l 1215 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"ð":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 694 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 694 l 174 694 l 174 868 l 521 868 l 521 1042 l 174 1042 l 174 1389 l 521 1389 l 521 1215 l 868 1215 l 868 868 l 1042 868 l 1042 694 l 1215 694 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 174 1042 l 174 868 l 0 868 l 0 1042 l 174 1042 m 868 694 l 347 694 l 347 347 l 868 347 l 868 694 z "},"ď":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1389 l 868 1389 l 868 174 l 174 174 m 1042 868 l 1042 1389 l 1389 1389 l 1389 1042 l 1215 1042 l 1215 868 l 1042 868 m 347 347 l 521 347 l 521 868 l 347 868 l 347 347 z "},"đ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 1042 l 1042 1042 l 1042 174 l 174 174 m 347 347 l 694 347 l 694 868 l 347 868 l 347 347 z "},"e":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 z "},"é":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 694 l 868 694 l 868 868 z "},"ĕ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 694 l 868 694 l 868 868 z "},"ě":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 z "},"ê":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 868 l 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 z "},"ë":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 z "},"ė":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 z "},"è":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 694 l 868 694 l 868 868 z "},"ē":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 z "},"ę":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1215 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 694 521 l 694 347 l 521 347 l 521 521 l 174 521 l 174 694 l 0 694 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 m 868 1215 l 347 1215 l 347 1042 l 868 1042 l 868 1215 m 347 347 l 521 347 l 521 174 l 347 174 l 347 347 m 521 0 l 521 174 l 868 174 l 868 0 l 521 0 z "},"f":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 1042 l 1215 1042 l 1215 868 l 868 868 l 868 174 l 521 174 z "},"g":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 m 347 521 l 868 521 l 868 868 l 347 868 l 347 521 z "},"ğ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 868 1215 l 868 1042 l 1215 1042 m 868 868 l 347 868 l 347 521 l 868 521 l 868 868 z "},"ĝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 521 l 868 521 l 868 868 l 347 868 l 347 521 z "},"ģ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 868 1389 l 868 1215 l 694 1215 l 694 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 m 347 521 l 868 521 l 868 868 l 347 868 l 347 521 z "},"ġ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 m 347 521 l 868 521 l 868 868 l 347 868 l 347 521 z "},"h":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 868 174 l 868 868 l 347 868 l 347 174 l 0 174 z "},"ħ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 868 1215 l 868 1042 l 521 1042 l 521 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 868 174 l 868 694 l 521 694 l 521 174 l 174 174 z "},"ĥ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 868 174 l 868 694 l 347 694 l 347 174 l 0 174 z "},"i":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 174 174 l 174 347 l 521 347 l 521 868 l 347 868 l 347 1042 l 868 1042 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"ı":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 868 l 347 868 l 347 1042 l 868 1042 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"í":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 m 1215 347 l 1215 174 l 174 174 l 174 347 l 521 347 l 521 694 l 347 694 l 347 868 l 868 868 l 868 347 l 1215 347 z "},"ĭ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 347 1215 l 174 1215 l 174 1389 l 347 1389 l 347 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 347 1042 l 347 1215 l 868 1215 l 868 1042 l 347 1042 m 1215 347 l 1215 174 l 174 174 l 174 347 l 521 347 l 521 694 l 347 694 l 347 868 l 868 868 l 868 347 l 1215 347 z "},"î":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 174 1042 m 174 174 l 174 347 l 521 347 l 521 694 l 347 694 l 347 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"ï":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 521 347 l 521 868 l 347 868 l 347 1042 l 868 1042 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"ì":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 521 1042 l 521 1215 l 694 1215 l 694 1042 l 521 1042 m 1215 347 l 1215 174 l 174 174 l 174 347 l 521 347 l 521 694 l 347 694 l 347 868 l 868 868 l 868 347 l 1215 347 z "},"ij":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 868 1215 l 868 1389 l 1215 1389 l 1215 1215 l 868 1215 m 174 347 l 174 868 l 0 868 l 0 1042 l 521 1042 l 521 347 l 174 347 m 347 0 l 347 174 l 868 174 l 868 868 l 694 868 l 694 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 347 0 z "},"ī":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 174 l 174 347 l 521 347 l 521 868 l 347 868 l 347 1042 l 868 1042 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"į":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 1215 l 521 1215 l 521 1389 l 868 1389 l 868 1215 m 1215 694 l 1215 521 l 694 521 l 694 347 l 521 347 l 521 521 l 174 521 l 174 694 l 521 694 l 521 868 l 347 868 l 347 1042 l 868 1042 l 868 694 l 1215 694 m 347 347 l 521 347 l 521 174 l 347 174 l 347 347 m 521 0 l 521 174 l 868 174 l 868 0 l 521 0 z "},"ĩ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 694 1389 l 694 1215 l 347 1215 l 347 1389 l 694 1389 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 174 1215 l 347 1215 l 347 1042 l 174 1042 l 174 1215 m 694 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 m 868 347 l 1215 347 l 1215 174 l 174 174 l 174 347 l 521 347 l 521 694 l 347 694 l 347 868 l 868 868 l 868 347 z "},"j":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 0 l 174 174 l 694 174 l 694 868 l 521 868 l 521 1042 l 1042 1042 l 1042 174 l 868 174 l 868 0 l 174 0 z "},"ĵ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 347 1042 l 347 1215 l 521 1215 l 521 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 694 1215 l 694 1042 l 347 1042 m 174 0 l 174 174 l 694 174 l 694 694 l 521 694 l 521 868 l 1042 868 l 1042 174 l 868 174 l 868 0 l 174 0 z "},"k":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 868 174 l 868 347 l 694 347 l 694 521 l 347 521 l 347 174 l 0 174 z "},"ķ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 347 l 0 1389 l 347 1389 l 347 868 l 694 868 l 694 1042 l 868 1042 l 868 1215 l 1215 1215 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 868 347 l 868 521 l 694 521 l 694 694 l 347 694 l 347 347 l 0 347 m 174 0 l 174 174 l 347 174 l 347 347 l 694 347 l 694 174 l 521 174 l 521 0 l 174 0 z "},"ĸ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 347 1042 l 347 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 868 174 l 868 347 l 694 347 l 694 521 l 347 521 l 347 174 l 0 174 z "},"l":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 1215 l 347 1215 l 347 1389 l 868 1389 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"ĺ":{"ha":1389,"x_min":0,"x_max":1042,"o":"m 694 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 m 1042 347 l 1042 174 l 0 174 l 0 347 l 347 347 l 347 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1042 l 694 1042 l 694 347 l 1042 347 z "},"ľ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 347 347 l 347 1215 l 174 1215 l 174 1389 l 694 1389 l 694 347 l 1042 347 l 1042 174 l 0 174 m 868 868 l 868 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 z "},"ļ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 347 0 l 347 174 l 521 174 l 521 347 l 174 347 l 174 521 l 521 521 l 521 1215 l 347 1215 l 347 1389 l 868 1389 l 868 521 l 1215 521 l 1215 347 l 868 347 l 868 174 l 694 174 l 694 0 l 347 0 z "},"ŀ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 347 347 l 347 1215 l 174 1215 l 174 1389 l 694 1389 l 694 347 l 1042 347 l 1042 174 l 0 174 m 868 694 l 868 1042 l 1215 1042 l 1215 694 l 868 694 z "},"ł":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 694 l 347 694 l 347 868 l 521 868 l 521 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1042 l 1042 1042 l 1042 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"m":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 868 174 l 868 868 l 694 868 l 694 174 l 347 174 l 347 868 l 174 868 l 174 174 l 0 174 z "},"n":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 868 174 l 868 868 l 347 868 l 347 174 l 0 174 z "},"ń":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 868 l 1215 174 l 868 174 l 868 868 l 347 868 l 347 174 l 0 174 l 0 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 z "},"ň":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 868 174 l 868 868 l 347 868 l 347 174 l 0 174 z "},"ņ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1042 l 1215 347 l 868 347 l 868 1042 l 347 1042 l 347 347 l 0 347 l 0 1215 l 1042 1215 l 1042 1042 l 1215 1042 m 521 347 l 868 347 l 868 174 l 694 174 l 694 0 l 347 0 l 347 174 l 521 174 l 521 347 z "},"ŋ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 0 l 347 174 l 868 174 l 868 1042 l 347 1042 l 347 347 l 0 347 l 0 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 347 0 z "},"ñ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 868 174 l 868 868 l 347 868 l 347 174 l 0 174 m 347 1042 l 521 1042 l 521 1215 l 347 1215 l 347 1042 z "},"o":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"ó":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 347 l 868 347 l 868 868 z "},"ŏ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 347 l 868 347 l 868 868 z "},"ô":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"ö":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"ò":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 347 l 868 347 l 868 868 z "},"ő":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 347 l 868 347 l 868 868 z "},"ō":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"ø":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 521 347 l 868 347 l 868 694 l 694 694 l 694 868 l 347 868 l 347 521 l 521 521 l 521 347 m 521 521 l 521 694 l 694 694 l 694 521 l 521 521 z "},"õ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 1042 l 521 1042 l 521 1215 l 347 1215 l 347 1042 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"œ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 694 521 l 694 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 521 347 l 521 868 l 347 868 l 347 347 m 694 694 l 868 694 l 868 868 l 694 868 l 694 694 z "},"p":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 0 l 0 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 1042 521 l 1042 347 l 347 347 l 347 0 l 0 0 m 347 521 l 868 521 l 868 868 l 347 868 l 347 521 z "},"þ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 0 l 0 1389 l 347 1389 l 347 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 1042 521 l 1042 347 l 347 347 l 347 0 l 0 0 m 347 521 l 868 521 l 868 868 l 347 868 l 347 521 z "},"q":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 0 l 868 347 l 174 347 l 174 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 0 l 868 0 m 347 521 l 868 521 l 868 868 l 347 868 l 347 521 z "},"r":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 868 l 694 868 l 694 694 l 521 694 l 521 174 l 174 174 l 174 1042 l 521 1042 l 521 868 m 1215 1042 l 1215 868 l 694 868 l 694 1042 l 1215 1042 z "},"ŕ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 m 521 868 l 694 868 l 694 694 l 521 694 l 521 174 l 174 174 l 174 1042 l 521 1042 l 521 868 m 1215 1042 l 1215 868 l 694 868 l 694 1042 l 1215 1042 z "},"ř":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 1042 l 521 1042 l 521 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1389 l 1215 1389 l 1215 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 868 l 694 868 l 694 694 l 521 694 l 521 174 l 174 174 m 521 868 l 694 868 l 694 1042 l 521 1042 l 521 868 z "},"ŗ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 1042 l 694 1042 l 694 868 l 521 868 l 521 347 l 694 347 l 694 174 l 521 174 l 521 0 l 174 0 l 174 174 l 347 174 l 347 347 l 174 347 l 174 1215 l 521 1215 l 521 1042 m 1215 1215 l 1215 1042 l 694 1042 l 694 1215 l 1215 1215 z "},"s":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 0 174 z "},"ś":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 521 l 1215 347 l 1042 347 l 1042 174 l 0 174 l 0 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 1215 521 z "},"š":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 0 174 z "},"ş":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 694 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 694 174 l 694 347 l 0 347 l 0 521 l 868 521 l 868 694 l 174 694 l 174 868 l 0 868 l 0 1042 l 174 1042 l 174 1215 l 1042 1215 l 1042 1042 l 347 1042 l 347 868 l 1042 868 l 1042 694 l 1215 694 m 347 174 l 694 174 l 694 0 l 347 0 l 347 174 z "},"ŝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 0 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 z "},"ß":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1215 l 1215 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 347 l 868 347 l 868 694 l 694 694 l 694 868 l 868 868 l 868 1215 l 521 1215 l 521 521 l 694 521 l 694 347 l 521 347 l 521 174 l 174 174 l 174 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 l 1215 1215 z "},"ſ":{"ha":1389,"x_min":521,"x_max":1215,"o":"m 521 174 l 521 1215 l 694 1215 l 694 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 174 l 521 174 z "},"t":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1389 l 868 1389 l 868 1042 l 1215 1042 l 1215 868 l 868 868 l 868 174 l 521 174 z "},"ŧ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 347 l 347 347 l 347 521 l 521 521 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1389 l 868 1389 l 868 1042 l 1215 1042 l 1215 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 868 521 l 868 174 l 521 174 z "},"ť":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 868 l 1215 694 l 868 694 l 868 174 l 521 174 l 521 694 l 174 694 l 174 868 l 521 868 l 521 1215 l 868 1215 l 868 868 l 1215 868 z "},"ț":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1042 l 1215 868 l 868 868 l 868 174 l 694 174 l 694 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1389 l 868 1389 l 868 1042 l 1215 1042 m 347 174 l 694 174 l 694 0 l 347 0 l 347 174 z "},"u":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 l 1215 174 l 174 174 z "},"ú":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 m 1215 1042 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 z "},"ŭ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 868 1042 l 347 1042 l 347 1215 l 868 1215 l 868 1042 m 1215 1042 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 z "},"û":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 174 1042 m 174 174 l 174 347 l 0 347 l 0 868 l 347 868 l 347 347 l 868 347 l 868 868 l 1215 868 l 1215 174 l 174 174 z "},"ü":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 l 1215 174 l 174 174 z "},"ù":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 521 1042 l 521 1215 l 694 1215 l 694 1042 l 521 1042 m 1215 1042 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 z "},"ű":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 347 l 868 347 l 868 1042 l 1215 1042 m 868 1215 l 868 1042 l 694 1042 l 694 1215 l 868 1215 z "},"ū":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 l 1215 174 l 174 174 z "},"ų":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 521 l 694 521 l 694 347 l 521 347 l 521 521 l 174 521 l 174 694 l 0 694 l 0 1389 l 347 1389 l 347 694 l 868 694 l 868 1389 l 1215 1389 m 347 347 l 521 347 l 521 174 l 347 174 l 347 347 m 521 0 l 521 174 l 868 174 l 868 0 l 521 0 z "},"ů":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 174 l 174 174 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 347 l 868 347 l 868 868 l 1042 868 l 1042 1042 l 868 1042 l 868 868 l 347 868 l 347 1042 l 174 1042 l 174 868 l 347 868 l 347 347 z "},"ũ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1042 l 521 1042 l 521 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 347 l 868 347 l 868 1042 l 1215 1042 z "},"v":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 347 l 347 347 l 347 521 l 174 521 l 174 1042 l 521 1042 l 521 521 l 868 521 l 868 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 521 174 z "},"w":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 347 l 521 347 l 521 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 m 694 1042 l 694 347 l 521 347 l 521 1042 l 694 1042 m 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 347 l 868 347 l 868 1042 l 1215 1042 z "},"ŵ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 m 347 347 l 521 347 l 521 174 l 174 174 l 174 347 l 0 347 l 0 868 l 347 868 l 347 347 m 694 868 l 694 347 l 521 347 l 521 868 l 694 868 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 347 l 868 347 l 868 868 l 1215 868 z "},"x":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 174 694 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 l 521 868 l 521 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 868 174 l 868 347 l 694 347 l 694 521 l 521 521 l 521 347 l 347 347 l 347 174 l 0 174 z "},"y":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 347 1042 l 347 521 l 868 521 l 868 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 z "},"ý":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 m 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 347 1042 l 347 521 l 868 521 l 868 1042 l 1215 1042 z "},"ŷ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 174 1042 m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 868 l 347 868 l 347 521 l 868 521 l 868 868 l 1215 868 l 1215 174 l 1042 174 l 1042 0 l 174 0 z "},"ÿ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 347 1042 l 347 521 l 868 521 l 868 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 z "},"z":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 521 694 l 521 868 l 0 868 l 0 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 694 521 l 694 347 l 1215 347 l 1215 174 l 0 174 z "},"ź":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 694 521 l 694 347 l 1215 347 l 1215 174 l 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 521 694 l 521 868 l 0 868 l 0 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1215 1042 z "},"ž":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 521 694 l 521 868 l 0 868 l 0 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 694 521 l 694 347 l 1215 347 l 1215 174 l 0 174 z "},"ż":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 521 694 l 521 868 l 0 868 l 0 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 694 521 l 694 347 l 1215 347 l 1215 174 l 0 174 z "},"fi":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 868 l 0 868 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 521 1215 l 521 1042 l 1215 1042 l 1215 174 l 868 174 l 868 868 l 521 868 l 521 174 l 174 174 z "},"fl":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 868 l 0 868 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1215 1389 l 1215 174 l 868 174 l 868 868 l 521 868 l 521 174 l 174 174 m 521 1042 l 868 1042 l 868 1215 l 521 1215 l 521 1042 z "},"ª":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 347 694 l 347 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 694 l 347 694 m 521 868 l 694 868 l 694 1042 l 521 1042 l 521 868 z "},"º":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 347 694 l 347 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 868 l 868 868 l 868 694 l 347 694 m 521 868 l 694 868 l 694 1215 l 521 1215 l 521 868 z "},"А":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 m 347 694 l 868 694 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 694 z "},"Б":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1042 1389 l 1042 1215 l 347 1215 l 347 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 0 174 m 347 347 l 868 347 l 868 694 l 347 694 l 347 347 z "},"В":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 0 174 m 347 868 l 868 868 l 868 1215 l 347 1215 l 347 868 m 347 347 l 868 347 l 868 694 l 347 694 l 347 347 z "},"Г":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 1215 l 521 1215 l 521 174 l 174 174 z "},"Ѓ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 1042 l 1215 694 l 1042 694 l 1042 868 l 521 868 l 521 174 l 174 174 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1215 1042 z "},"Ґ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 1389 l 1215 1389 l 1215 1042 l 521 1042 l 521 174 l 174 174 l 174 1215 l 868 1215 l 868 1389 z "},"Д":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 0 0 l 0 347 l 174 347 l 174 694 l 347 694 l 347 1389 l 1215 1389 l 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 347 174 l 347 0 l 0 0 m 521 347 l 868 347 l 868 1215 l 521 1215 l 521 347 z "},"Е":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1215 1389 l 1215 1215 l 347 1215 l 347 868 l 1042 868 l 1042 694 l 347 694 l 347 347 l 1215 347 l 1215 174 l 0 174 z "},"Ѐ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 l 0 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1215 1042 z "},"Ё":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 0 174 l 0 1042 l 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 z "},"Ж":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 868 l 174 868 l 174 1042 l 0 1042 l 0 1389 l 347 1389 m 694 868 l 868 868 l 868 694 l 694 694 l 694 174 l 521 174 l 521 694 l 347 694 l 347 868 l 521 868 l 521 1389 l 694 1389 l 694 868 m 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 l 868 1389 l 1215 1389 m 174 694 l 347 694 l 347 174 l 0 174 l 0 521 l 174 521 l 174 694 m 868 174 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 z "},"З":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 694 l 347 694 l 347 868 l 868 868 l 868 1215 l 347 1215 l 347 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"И":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 694 l 521 694 l 521 868 l 694 868 l 694 1042 l 868 1042 l 868 1389 l 1215 1389 l 1215 174 l 868 174 l 868 694 l 694 694 l 694 521 l 521 521 l 521 347 l 347 347 l 347 174 l 0 174 z "},"Й":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 0 174 l 0 1042 l 347 1042 l 347 521 l 521 521 l 521 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 347 l 521 347 l 521 174 l 0 174 z "},"Ѝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 521 1042 l 521 1215 l 694 1215 l 694 1042 l 521 1042 m 1215 1042 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 347 l 521 347 l 521 174 l 0 174 l 0 1042 l 347 1042 l 347 521 l 521 521 l 521 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 z "},"К":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1042 l 694 1042 l 694 868 l 868 868 l 868 694 l 1042 694 l 1042 347 l 1215 347 l 1215 174 l 868 174 l 868 347 l 694 347 l 694 694 l 347 694 l 347 174 l 0 174 l 0 1389 l 347 1389 l 347 868 l 521 868 l 521 1042 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1389 l 1215 1389 z "},"Ќ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 m 694 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 694 l 694 694 l 694 868 m 1215 1042 l 1215 868 l 868 868 l 868 1042 l 1215 1042 z "},"Л":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 694 l 347 694 l 347 1389 l 1215 1389 l 1215 174 l 868 174 l 868 1215 l 521 1215 l 521 347 l 347 347 l 347 174 l 0 174 z "},"М":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 1215 l 521 1215 l 521 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1389 l 1215 1389 l 1215 174 l 868 174 l 868 868 l 694 868 l 694 521 l 521 521 l 521 868 l 347 868 l 347 174 l 0 174 z "},"Н":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 868 l 868 868 l 868 1389 l 1215 1389 l 1215 174 l 868 174 l 868 694 l 347 694 l 347 174 l 0 174 z "},"О":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 1215 l 347 1215 l 347 347 z "},"П":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1215 1389 l 1215 174 l 868 174 l 868 1215 l 347 1215 l 347 174 l 0 174 z "},"Р":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 694 l 1042 694 l 1042 521 l 347 521 l 347 174 l 0 174 m 347 694 l 868 694 l 868 1215 l 347 1215 l 347 694 z "},"С":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 521 1215 l 521 1042 l 347 1042 l 347 521 l 521 521 l 521 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 347 174 z "},"Т":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 174 l 521 174 z "},"У":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 694 l 174 694 l 174 868 l 0 868 l 0 1389 l 347 1389 l 347 868 l 868 868 l 868 1389 l 1215 1389 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ў":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 347 1042 l 347 521 l 868 521 l 868 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 z "},"Ф":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 174 l 521 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 694 347 l 694 174 l 521 174 m 347 521 l 521 521 l 521 1042 l 347 1042 l 347 521 m 694 521 l 868 521 l 868 1042 l 694 1042 l 694 521 z "},"Х":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 694 l 347 694 l 347 868 l 174 868 l 174 1042 l 0 1042 l 0 1389 l 347 1389 l 347 1042 l 521 1042 l 521 868 l 694 868 l 694 1042 l 868 1042 l 868 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 694 l 521 694 l 521 521 l 347 521 l 347 174 l 0 174 z "},"Ч":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 174 l 868 694 l 174 694 l 174 868 l 0 868 l 0 1389 l 347 1389 l 347 868 l 868 868 l 868 1389 l 1215 1389 l 1215 174 l 868 174 z "},"Ц":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 0 l 868 174 l 0 174 l 0 1389 l 347 1389 l 347 347 l 694 347 l 694 1389 l 1042 1389 l 1042 347 l 1215 347 l 1215 0 l 868 0 z "},"Ш":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 347 l 521 347 l 521 1389 l 694 1389 l 694 347 l 868 347 l 868 1389 l 1215 1389 l 1215 174 l 0 174 z "},"Щ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1042 0 l 1042 174 l 0 174 l 0 1389 l 347 1389 l 347 347 l 521 347 l 521 1389 l 694 1389 l 694 347 l 868 347 l 868 1389 l 1215 1389 l 1215 347 l 1389 347 l 1389 0 l 1042 0 z "},"Џ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 0 l 521 174 l 0 174 l 0 1389 l 347 1389 l 347 347 l 868 347 l 868 1389 l 1215 1389 l 1215 174 l 694 174 l 694 0 l 521 0 z "},"Ь":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 0 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"Ъ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 1215 l 0 1215 l 0 1389 l 521 1389 l 521 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 521 347 l 868 347 l 868 868 l 521 868 l 521 347 z "},"Ы":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 1042 l 694 1042 l 694 174 l 0 174 m 868 174 l 868 1389 l 1215 1389 l 1215 174 l 868 174 m 347 347 l 521 347 l 521 868 l 347 868 l 347 347 z "},"Љ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 1389 l 868 1389 l 868 1042 l 1215 1042 l 1215 174 l 521 174 l 521 1215 l 347 1215 l 347 174 l 0 174 m 868 347 l 1042 347 l 1042 868 l 868 868 l 868 347 z "},"Њ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 868 l 521 868 l 521 1389 l 868 1389 l 868 1042 l 1215 1042 l 1215 174 l 521 174 l 521 694 l 347 694 l 347 174 l 0 174 m 868 347 l 1042 347 l 1042 868 l 868 868 l 868 347 z "},"Ѕ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 694 l 174 694 l 174 868 l 0 868 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 347 1215 l 347 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Є":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 521 1215 l 521 1042 l 347 1042 l 347 868 l 1042 868 l 1042 694 l 347 694 l 347 521 l 521 521 l 521 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 347 174 z "},"Э":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 694 347 l 694 521 l 868 521 l 868 694 l 174 694 l 174 868 l 868 868 l 868 1042 l 694 1042 l 694 1215 l 347 1215 l 347 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 174 174 z "},"І":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"Ї":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 868 1215 l 868 1389 l 1215 1389 l 1215 1215 l 868 1215 m 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"Ј":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 1389 l 1215 1389 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ћ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 1215 l 0 1215 l 0 1389 l 868 1389 l 868 1215 l 521 1215 l 521 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 868 174 l 868 868 l 521 868 l 521 174 l 174 174 z "},"Ю":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 174 1389 l 174 868 l 347 868 l 347 1215 l 521 1215 l 521 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 347 l 1042 347 l 1042 174 l 521 174 l 521 347 l 347 347 l 347 694 l 174 694 l 174 174 l 0 174 m 694 347 l 868 347 l 868 1215 l 694 1215 l 694 347 z "},"Я":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 0 694 l 0 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 174 l 868 174 l 868 521 l 521 521 l 521 174 l 0 174 m 521 694 l 868 694 l 868 1215 l 347 1215 l 347 868 l 521 868 l 521 694 z "},"Ђ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 694 0 l 694 174 l 868 174 l 868 868 l 521 868 l 521 174 l 174 174 l 174 1215 l 0 1215 l 0 1389 l 868 1389 l 868 1215 l 521 1215 l 521 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 1042 174 l 1042 0 l 694 0 z "},"Ѣ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 694 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 868 1215 l 868 1042 l 521 1042 l 521 868 l 1042 868 l 1042 694 l 1215 694 m 868 694 l 521 694 l 521 347 l 868 347 l 868 694 z "},"Ѫ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 1042 l 1042 1042 l 1042 1215 l 174 1215 l 174 1042 l 0 1042 l 0 1389 l 1215 1389 m 174 1042 l 347 1042 l 347 868 l 174 868 l 174 1042 m 868 868 l 868 1042 l 1042 1042 l 1042 868 l 868 868 m 347 868 l 868 868 l 868 694 l 694 694 l 694 174 l 521 174 l 521 694 l 347 694 l 347 868 m 174 694 l 347 694 l 347 174 l 0 174 l 0 521 l 174 521 l 174 694 m 868 174 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 z "},"Ѳ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 1215 l 347 1215 l 347 347 m 174 694 l 1042 694 l 1042 868 l 174 868 l 174 694 z "},"Ѵ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 174 l 521 347 l 347 347 l 347 521 l 174 521 l 174 694 l 0 694 l 0 1389 l 347 1389 l 347 694 l 521 694 l 521 521 l 694 521 l 694 694 l 868 694 l 868 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 521 l 868 521 l 868 347 l 694 347 l 694 174 l 521 174 z "},"Ғ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 1042 l 1042 1042 l 1042 1215 l 521 1215 l 521 868 l 868 868 l 868 694 l 521 694 l 521 174 l 174 174 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1389 l 1215 1389 z "},"Ҕ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1389 l 1215 1042 l 1042 1042 l 1042 1215 l 521 1215 l 521 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 1042 174 l 1042 0 l 694 0 l 694 174 l 868 174 l 868 694 l 521 694 l 521 174 l 174 174 l 174 1389 l 1215 1389 z "},"Җ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 347 1389 l 347 868 l 174 868 l 174 1042 l 0 1042 l 0 1389 l 347 1389 m 868 868 l 868 694 l 694 694 l 694 174 l 521 174 l 521 694 l 347 694 l 347 868 l 521 868 l 521 1389 l 694 1389 l 694 868 l 868 868 m 1042 868 l 868 868 l 868 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 m 174 694 l 347 694 l 347 174 l 0 174 l 0 521 l 174 521 l 174 694 m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 z "},"Ҙ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1215 l 1215 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 0 l 521 0 l 521 174 l 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 694 l 347 694 l 347 868 l 868 868 l 868 1215 l 347 1215 l 347 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 z "},"Қ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1042 l 694 1042 l 694 868 l 868 868 l 868 694 l 1042 694 l 1042 347 l 1215 347 l 1215 0 l 868 0 l 868 347 l 694 347 l 694 694 l 347 694 l 347 174 l 0 174 l 0 1389 l 347 1389 l 347 868 l 521 868 l 521 1042 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1389 l 1215 1389 z "},"Ҝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 694 868 l 868 868 l 868 694 l 694 694 l 694 521 l 521 521 l 521 694 l 347 694 l 347 174 l 0 174 l 0 1389 l 347 1389 l 347 868 l 521 868 l 521 1042 l 694 1042 l 694 868 m 1042 1215 l 1042 868 l 868 868 l 868 1389 l 1215 1389 l 1215 1215 l 1042 1215 m 1215 174 l 868 174 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 z "},"Ҡ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1042 l 868 694 l 1042 694 l 1042 347 l 1215 347 l 1215 174 l 868 174 l 868 347 l 694 347 l 694 694 l 521 694 l 521 174 l 174 174 l 174 1215 l 0 1215 l 0 1389 l 521 1389 l 521 868 l 694 868 l 694 1042 l 868 1042 m 1042 1215 l 1042 1042 l 868 1042 l 868 1389 l 1215 1389 l 1215 1215 l 1042 1215 z "},"Ң":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 694 l 347 694 l 347 174 l 0 174 l 0 1389 l 347 1389 l 347 868 l 868 868 l 868 1389 l 1215 1389 l 1215 347 z "},"Ԥ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 1215 l 347 1215 l 347 174 l 0 174 l 0 1389 l 1215 1389 l 1215 347 z "},"Ҫ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 521 1215 l 521 1042 l 347 1042 l 347 521 l 521 521 l 521 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 868 174 l 868 0 l 521 0 l 521 174 l 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 l 1215 1215 z "},"Ҭ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1389 l 1215 1215 l 868 1215 l 868 347 l 1042 347 l 1042 0 l 694 0 l 694 174 l 521 174 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 z "},"Ү":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 694 l 347 694 l 347 868 l 174 868 l 174 1389 l 521 1389 l 521 868 l 868 868 l 868 1389 l 1215 1389 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 174 l 521 174 z "},"Ұ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1389 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 521 174 l 521 347 l 347 347 l 347 521 l 521 521 l 521 694 l 347 694 l 347 868 l 174 868 l 174 1389 l 521 1389 l 521 868 l 868 868 l 868 1389 l 1215 1389 z "},"Ҷ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 694 l 174 694 l 174 868 l 0 868 l 0 1389 l 347 1389 l 347 868 l 868 868 l 868 1389 l 1215 1389 l 1215 347 z "},"Ҹ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 174 l 868 174 l 868 694 l 694 694 l 694 521 l 521 521 l 521 694 l 174 694 l 174 868 l 0 868 l 0 1389 l 347 1389 l 347 868 l 521 868 l 521 1042 l 694 1042 l 694 868 l 868 868 l 868 1389 l 1215 1389 z "},"Һ":{"ha":1389,"x_min":174,"x_max":1389,"o":"m 174 174 l 174 1389 l 521 1389 l 521 868 l 1215 868 l 1215 694 l 1389 694 l 1389 174 l 1042 174 l 1042 694 l 521 694 l 521 174 l 174 174 z "},"Ӏ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"Ӂ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 0 174 l 0 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 521 694 l 521 1042 l 694 1042 l 694 694 l 868 694 l 868 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 174 l 521 174 l 521 521 l 347 521 l 347 174 l 0 174 z "},"Ӌ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 694 l 174 694 l 174 868 l 0 868 l 0 1389 l 347 1389 l 347 868 l 868 868 l 868 1389 l 1215 1389 l 1215 347 z "},"Ӑ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 0 174 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 868 1042 l 868 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 868 174 l 868 347 l 347 347 l 347 174 l 0 174 m 347 521 l 868 521 l 868 694 l 694 694 l 694 868 l 521 868 l 521 694 l 347 694 l 347 521 z "},"Ӓ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 0 174 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 868 1042 l 868 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 868 174 l 868 347 l 347 347 l 347 174 l 0 174 m 347 521 l 868 521 l 868 694 l 694 694 l 694 868 l 521 868 l 521 694 l 347 694 l 347 521 z "},"Ӗ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 0 174 l 0 1042 l 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 0 174 z "},"Ә":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1215 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 868 868 l 868 1215 l 347 1215 l 347 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 m 868 347 l 868 694 l 347 694 l 347 347 l 868 347 z "},"Ӝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 0 174 l 0 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 521 694 l 521 1042 l 694 1042 l 694 694 l 868 694 l 868 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 174 l 521 174 l 521 521 l 347 521 l 347 174 l 0 174 z "},"Ӟ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 521 l 521 521 l 521 694 l 868 694 l 868 868 l 347 868 l 347 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ӣ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 0 174 l 0 1042 l 347 1042 l 347 521 l 521 521 l 521 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 347 l 521 347 l 521 174 l 0 174 z "},"Ӥ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 0 174 l 0 1042 l 347 1042 l 347 521 l 521 521 l 521 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 347 l 521 347 l 521 174 l 0 174 z "},"Ӧ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"Ө":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 1215 l 347 1215 l 347 347 m 174 694 l 1042 694 l 1042 868 l 174 868 l 174 694 z "},"Ӯ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 174 l 174 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 868 694 l 868 1042 l 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ӱ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 868 694 l 868 1042 l 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"Ӳ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 868 1042 l 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 694 l 868 694 l 868 1042 m 868 1215 l 868 1042 l 694 1042 l 694 1215 l 868 1215 z "},"Ӵ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 868 174 l 868 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 868 694 l 868 1042 l 1215 1042 l 1215 174 l 868 174 z "},"Ӷ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1389 l 1215 1042 l 1042 1042 l 1042 1215 l 521 1215 l 521 347 l 694 347 l 694 0 l 347 0 l 347 174 l 174 174 l 174 1389 l 1215 1389 z "},"Ӹ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 0 174 l 0 1042 l 347 1042 l 347 868 l 694 868 l 694 174 l 0 174 m 868 174 l 868 1042 l 1215 1042 l 1215 174 l 868 174 m 347 347 l 521 347 l 521 694 l 347 694 l 347 347 z "},"Ԛ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1215 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 m 868 1215 l 347 1215 l 347 347 l 694 347 l 694 521 l 521 521 l 521 694 l 868 694 l 868 1215 m 1042 174 l 1042 347 l 1215 347 l 1215 174 l 1042 174 z "},"Ԝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1389 l 347 1389 l 347 694 l 521 694 l 521 1389 l 694 1389 l 694 694 l 868 694 l 868 1389 l 1215 1389 l 1215 347 l 1042 347 l 1042 174 l 868 174 l 868 347 l 694 347 l 694 521 l 521 521 l 521 347 l 347 347 l 347 174 l 174 174 z "},"а":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 174 174 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"б":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 1215 l 347 1215 l 347 868 l 521 868 l 521 694 l 347 694 l 347 347 l 868 347 l 868 868 l 521 868 l 521 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1215 1389 z "},"в":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 0 174 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"г":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 868 l 521 868 l 521 174 l 174 174 z "},"ѓ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 694 l 1042 694 l 1042 868 l 521 868 l 521 174 l 174 174 l 174 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1042 l 1215 1042 z "},"ґ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 1215 l 1215 1215 l 1215 868 l 521 868 l 521 174 l 174 174 l 174 1042 l 868 1042 l 868 1215 z "},"д":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 347 174 l 347 0 l 0 0 l 0 347 l 174 347 l 174 521 l 347 521 l 347 1042 l 1215 1042 l 1215 347 m 521 347 l 868 347 l 868 868 l 521 868 l 521 347 z "},"е":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 z "},"ѐ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1389 l 521 1215 l 347 1215 l 347 1389 l 521 1389 m 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 694 l 868 694 l 868 868 z "},"ё":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 z "},"ж":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 521 694 l 521 1042 l 694 1042 l 694 694 l 868 694 l 868 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 174 l 521 174 l 521 521 l 347 521 l 347 174 l 0 174 z "},"з":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 521 l 521 521 l 521 694 l 868 694 l 868 868 l 347 868 l 347 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"и":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 521 l 521 521 l 521 347 l 347 347 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 521 m 1215 1042 l 1215 174 l 868 174 l 868 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 m 521 694 l 694 694 l 694 521 l 521 521 l 521 694 z "},"й":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1042 1389 l 1042 1215 l 174 1215 l 174 1389 l 1042 1389 m 347 521 l 521 521 l 521 347 l 347 347 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 521 m 1215 1042 l 1215 174 l 868 174 l 868 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 m 521 694 l 694 694 l 694 521 l 521 521 l 521 694 z "},"ѝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 521 1042 l 521 1215 l 694 1215 l 694 1042 l 521 1042 m 347 521 l 521 521 l 521 347 l 347 347 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 521 m 1215 1042 l 1215 174 l 868 174 l 868 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 m 521 694 l 694 694 l 694 521 l 521 521 l 521 694 z "},"к":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 694 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 694 l 694 694 l 694 868 m 1215 1042 l 1215 868 l 868 868 l 868 1042 l 1215 1042 z "},"ќ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 m 694 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 694 l 694 694 l 694 868 m 1215 1042 l 1215 868 l 868 868 l 868 1042 l 1215 1042 z "},"л":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1042 l 1215 174 l 868 174 l 868 868 l 521 868 l 521 347 l 347 347 l 347 174 l 0 174 l 0 521 l 174 521 l 174 694 l 347 694 l 347 1042 l 1215 1042 z "},"м":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 868 l 521 694 l 347 694 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 868 l 521 868 m 1215 1042 l 1215 174 l 868 174 l 868 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 m 521 694 l 694 694 l 694 347 l 521 347 l 521 694 z "},"н":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 347 1042 l 347 694 l 868 694 l 868 1042 l 1215 1042 l 1215 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 z "},"о":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"п":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 1215 1042 l 1215 174 l 868 174 l 868 868 l 347 868 l 347 174 l 0 174 z "},"р":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 347 174 l 347 0 l 0 0 l 0 1042 l 347 1042 l 347 868 l 521 868 l 521 694 l 347 694 l 347 347 l 868 347 l 868 868 l 521 868 l 521 1042 l 1042 1042 l 1042 868 l 1215 868 z "},"с":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 868 694 l 868 868 l 347 868 l 347 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"т":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 868 868 l 868 174 l 521 174 z "},"у":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 347 1042 l 347 521 l 868 521 l 868 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 z "},"ў":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 347 1042 l 347 521 l 868 521 l 868 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 z "},"ф":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 0 l 521 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 0 l 521 0 m 347 347 l 521 347 l 521 868 l 347 868 l 347 347 m 694 347 l 868 347 l 868 868 l 694 868 l 694 347 z "},"х":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 174 694 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 l 521 868 l 521 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 868 174 l 868 347 l 694 347 l 694 521 l 521 521 l 521 347 l 347 347 l 347 174 l 0 174 z "},"ч":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 174 l 868 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 868 694 l 868 1042 l 1215 1042 l 1215 174 l 868 174 z "},"ц":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 0 l 868 174 l 0 174 l 0 1042 l 347 1042 l 347 347 l 694 347 l 694 1042 l 1042 1042 l 1042 347 l 1215 347 l 1215 0 l 868 0 z "},"ш":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 347 1042 l 347 347 l 521 347 l 521 1042 l 694 1042 l 694 347 l 868 347 l 868 1042 l 1215 1042 l 1215 174 l 0 174 z "},"щ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1042 0 l 1042 174 l 0 174 l 0 1042 l 347 1042 l 347 347 l 521 347 l 521 1042 l 694 1042 l 694 347 l 868 347 l 868 1042 l 1215 1042 l 1215 347 l 1389 347 l 1389 0 l 1042 0 z "},"џ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 0 l 521 174 l 0 174 l 0 1042 l 347 1042 l 347 347 l 868 347 l 868 1042 l 1215 1042 l 1215 174 l 694 174 l 694 0 l 521 0 z "},"ь":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 347 1042 l 347 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 0 174 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"ъ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 868 l 0 868 l 0 1042 l 521 1042 l 521 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 521 347 l 868 347 l 868 521 l 521 521 l 521 347 z "},"ы":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 347 1042 l 347 694 l 694 694 l 694 174 l 0 174 m 868 174 l 868 1042 l 1215 1042 l 1215 174 l 868 174 m 347 347 l 521 347 l 521 521 l 347 521 l 347 347 z "},"љ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 1042 l 868 1042 l 868 868 l 1215 868 l 1215 174 l 521 174 l 521 868 l 347 868 l 347 174 l 0 174 m 868 347 l 1042 347 l 1042 694 l 868 694 l 868 347 z "},"њ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 347 1042 l 347 694 l 521 694 l 521 1042 l 868 1042 l 868 868 l 1215 868 l 1215 174 l 521 174 l 521 521 l 347 521 l 347 174 l 0 174 m 868 347 l 1042 347 l 1042 694 l 868 694 l 868 347 z "},"ѕ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 868 347 l 868 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 0 174 z "},"є":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 868 694 l 868 868 l 347 868 l 347 694 l 694 694 l 694 521 l 347 521 l 347 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"э":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 521 l 521 521 l 521 694 l 868 694 l 868 868 l 347 868 l 347 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"і":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 174 174 l 174 347 l 521 347 l 521 868 l 347 868 l 347 1042 l 868 1042 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"ї":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 521 347 l 521 868 l 347 868 l 347 1042 l 868 1042 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"ј":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 0 l 174 174 l 694 174 l 694 868 l 521 868 l 521 1042 l 1042 1042 l 1042 174 l 868 174 l 868 0 l 174 0 z "},"ћ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 868 1215 l 868 1042 l 521 1042 l 521 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 868 174 l 868 694 l 521 694 l 521 174 l 174 174 z "},"ю":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 694 l 347 694 l 347 868 l 521 868 l 521 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 521 174 l 521 347 l 347 347 l 347 521 l 174 521 l 174 174 l 0 174 m 694 347 l 868 347 l 868 868 l 694 868 l 694 347 z "},"я":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 z "},"ђ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 694 0 l 694 174 l 868 174 l 868 694 l 521 694 l 521 174 l 174 174 l 174 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 868 1215 l 868 1042 l 521 1042 l 521 868 l 1042 868 l 1042 694 l 1215 694 l 1215 174 l 1042 174 l 1042 0 l 694 0 z "},"ѣ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 521 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 868 l 0 868 l 0 1042 l 174 1042 l 174 1389 l 521 1389 l 521 1042 l 868 1042 l 868 868 l 521 868 l 521 694 l 1042 694 l 1042 521 l 1215 521 m 868 521 l 521 521 l 521 347 l 868 347 l 868 521 z "},"ѫ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 868 l 347 868 l 347 694 l 174 694 l 174 868 l 0 868 l 0 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 868 m 347 694 l 868 694 l 868 521 l 694 521 l 694 174 l 521 174 l 521 521 l 347 521 l 347 694 m 0 174 l 0 521 l 347 521 l 347 174 l 0 174 m 1215 174 l 868 174 l 868 521 l 1215 521 l 1215 174 z "},"ѳ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 m 174 521 l 1042 521 l 1042 694 l 174 694 l 174 521 z "},"ѵ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 347 l 347 347 l 347 521 l 174 521 l 174 1042 l 521 1042 l 521 521 l 868 521 l 868 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 347 l 868 347 l 868 174 l 521 174 z "},"ғ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1042 l 1215 694 l 1042 694 l 1042 868 l 521 868 l 521 694 l 868 694 l 868 521 l 521 521 l 521 174 l 174 174 l 174 521 l 0 521 l 0 694 l 174 694 l 174 1042 l 1215 1042 z "},"ҕ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 868 l 521 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 1042 174 l 1042 0 l 694 0 l 694 174 l 868 174 l 868 521 l 521 521 l 521 174 l 174 174 l 174 1042 l 1215 1042 l 1215 868 l 521 868 z "},"җ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 521 l 694 521 l 694 174 l 521 174 l 521 521 l 347 521 l 347 174 l 0 174 l 0 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 521 694 l 521 1042 l 694 1042 l 694 694 l 868 694 l 868 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 z "},"ҙ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 0 l 521 0 l 521 174 l 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 521 l 521 521 l 521 694 l 868 694 l 868 868 l 347 868 l 347 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 z "},"қ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 694 l 694 694 l 694 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 m 1215 1042 l 1215 868 l 868 868 l 868 1042 l 1215 1042 z "},"ҝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 694 694 l 868 694 l 868 521 l 694 521 l 694 347 l 521 347 l 521 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 694 l 521 694 l 521 868 l 694 868 l 694 694 m 1042 868 l 1042 694 l 868 694 l 868 1042 l 1215 1042 l 1215 868 l 1042 868 m 1215 174 l 868 174 l 868 521 l 1215 521 l 1215 174 z "},"ҡ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 694 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 521 521 l 521 174 l 174 174 l 174 868 l 0 868 l 0 1042 l 521 1042 l 521 694 l 694 694 l 694 868 m 1215 1042 l 1215 868 l 868 868 l 868 1042 l 1215 1042 z "},"ң":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 694 l 868 694 l 868 1042 l 1215 1042 l 1215 347 z "},"ԥ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 868 l 347 868 l 347 174 l 0 174 l 0 1042 l 1215 1042 l 1215 347 z "},"ҫ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 694 l 868 694 l 868 868 l 347 868 l 347 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 0 l 521 0 l 521 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 z "},"ҭ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1042 l 1215 868 l 868 868 l 868 347 l 1042 347 l 1042 0 l 694 0 l 694 174 l 521 174 l 521 868 l 174 868 l 174 1042 l 1215 1042 z "},"ү":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 0 l 521 0 l 521 347 l 347 347 l 347 521 l 174 521 l 174 1042 l 521 1042 l 521 521 l 868 521 l 868 1042 l 1215 1042 z "},"ұ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 868 521 l 868 347 l 1042 347 l 1042 174 l 868 174 l 868 0 l 521 0 l 521 174 l 347 174 l 347 347 l 521 347 l 521 521 l 347 521 l 347 694 l 174 694 l 174 1042 l 521 1042 l 521 694 l 868 694 l 868 1042 l 1215 1042 z "},"ҷ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 868 694 l 868 1042 l 1215 1042 l 1215 347 z "},"ҹ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1042 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 347 l 521 347 l 521 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 521 694 l 521 868 l 694 868 l 694 694 l 868 694 l 868 1042 l 1215 1042 z "},"һ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 868 l 521 868 l 521 694 l 347 694 l 347 174 l 0 174 l 0 1389 l 347 1389 l 347 868 m 1215 868 l 1215 174 l 868 174 l 868 868 l 521 868 l 521 1042 l 1042 1042 l 1042 868 l 1215 868 z "},"ӏ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 1215 l 347 1215 l 347 1389 l 868 1389 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"ӂ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 0 174 l 0 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 521 694 l 521 1042 l 694 1042 l 694 694 l 868 694 l 868 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 174 l 521 174 l 521 521 l 347 521 l 347 174 l 0 174 z "},"ӌ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1215 347 l 1389 347 l 1389 0 l 1042 0 l 1042 174 l 868 174 l 868 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 868 694 l 868 1042 l 1215 1042 l 1215 347 z "},"ӑ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 174 174 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"ӓ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 174 l 174 174 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"ӗ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 347 521 l 347 347 l 1042 347 l 1042 174 l 174 174 m 347 694 l 868 694 l 868 868 l 347 868 l 347 694 z "},"ә":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 694 l 868 694 l 868 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 521 l 347 521 l 347 347 z "},"ӝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 0 174 l 0 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 521 694 l 521 1042 l 694 1042 l 694 694 l 868 694 l 868 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 174 l 521 174 l 521 521 l 347 521 l 347 174 l 0 174 z "},"ӟ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 521 l 347 521 l 347 347 l 868 347 l 868 521 l 521 521 l 521 694 l 868 694 l 868 868 l 347 868 l 347 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"ӣ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1042 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 m 347 521 l 521 521 l 521 347 l 347 347 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 521 m 1215 1042 l 1215 174 l 868 174 l 868 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 m 521 694 l 694 694 l 694 521 l 521 521 l 521 694 z "},"ӥ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 m 1042 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 m 347 521 l 521 521 l 521 347 l 347 347 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 521 m 1215 1042 l 1215 174 l 868 174 l 868 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 m 521 694 l 694 694 l 694 521 l 521 521 l 521 694 z "},"ӧ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"ө":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 m 174 521 l 1042 521 l 1042 694 l 174 694 l 174 521 z "},"ӯ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 347 1042 l 347 521 l 868 521 l 868 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 z "},"ӱ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 347 1042 l 347 521 l 868 521 l 868 1042 l 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 z "},"ӳ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 347 1215 l 347 1389 l 521 1389 l 521 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 1215 1042 l 1215 174 l 1042 174 l 1042 0 l 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 521 l 868 521 l 868 1042 l 1215 1042 m 868 1215 l 868 1042 l 694 1042 l 694 1215 l 868 1215 z "},"ӵ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 868 174 l 868 521 l 174 521 l 174 694 l 0 694 l 0 1042 l 347 1042 l 347 694 l 868 694 l 868 1042 l 1215 1042 l 1215 174 l 868 174 z "},"ӷ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1042 l 1215 694 l 1042 694 l 1042 868 l 521 868 l 521 347 l 694 347 l 694 0 l 347 0 l 347 174 l 174 174 l 174 1042 l 1215 1042 z "},"ӹ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 0 174 l 0 1042 l 347 1042 l 347 694 l 694 694 l 694 174 l 0 174 m 868 174 l 868 1042 l 1215 1042 l 1215 174 l 868 174 m 347 347 l 521 347 l 521 521 l 347 521 l 347 347 z "},"ԛ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 0 l 868 347 l 174 347 l 174 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 0 l 868 0 m 347 521 l 868 521 l 868 868 l 347 868 l 347 521 z "},"ԝ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 347 l 521 347 l 521 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 m 694 1042 l 694 347 l 521 347 l 521 1042 l 694 1042 m 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 347 l 868 347 l 868 1042 l 1215 1042 z "},"Ҥ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 1215 l 868 1215 l 868 174 l 521 174 l 521 694 l 347 694 l 347 174 l 0 174 l 0 1389 l 347 1389 l 347 868 l 521 868 l 521 1389 z "},"ҥ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 868 l 868 868 l 868 174 l 521 174 l 521 521 l 347 521 l 347 174 l 0 174 l 0 1042 l 347 1042 l 347 694 l 521 694 l 521 1042 z "},"Ӕ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 868 l 1215 868 l 1215 694 l 868 694 l 868 347 l 1215 347 l 1215 174 l 521 174 l 521 521 l 347 521 l 347 174 l 0 174 m 347 694 l 521 694 l 521 1042 l 347 1042 l 347 694 z "},"ӕ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 521 694 l 521 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 1042 694 l 1042 521 l 694 521 l 694 347 l 1042 347 l 1042 174 l 174 174 m 694 694 l 868 694 l 868 868 l 694 868 l 694 694 m 347 347 l 521 347 l 521 521 l 347 521 l 347 347 z "},"Α":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 174 l 868 174 l 868 521 l 347 521 l 347 174 l 0 174 m 347 694 l 868 694 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 694 z "},"Β":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 0 174 m 347 868 l 868 868 l 868 1215 l 347 1215 l 347 868 m 347 347 l 868 347 l 868 694 l 347 694 l 347 347 z "},"Γ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 1389 l 1215 1389 l 1215 1215 l 521 1215 l 521 174 l 174 174 z "},"Δ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 174 l 0 174 m 347 347 l 868 347 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 347 z "},"Ε":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1215 1389 l 1215 1215 l 347 1215 l 347 868 l 1042 868 l 1042 694 l 347 694 l 347 347 l 1215 347 l 1215 174 l 0 174 z "},"Ζ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 694 l 347 694 l 347 868 l 521 868 l 521 1042 l 694 1042 l 694 1215 l 0 1215 l 0 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 694 694 l 694 521 l 521 521 l 521 347 l 1215 347 l 1215 174 l 0 174 z "},"Η":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 868 l 868 868 l 868 1389 l 1215 1389 l 1215 174 l 868 174 l 868 694 l 347 694 l 347 174 l 0 174 z "},"Θ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 868 l 868 868 l 868 1215 l 347 1215 l 347 868 m 347 347 l 868 347 l 868 694 l 347 694 l 347 347 z "},"Ι":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"Κ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 868 l 521 868 l 521 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1389 l 1215 1389 l 1215 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 868 l 694 868 l 694 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 694 174 l 694 347 l 521 347 l 521 521 l 347 521 l 347 174 l 0 174 z "},"Λ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 174 l 868 174 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 174 l 0 174 z "},"Μ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 1215 l 521 1215 l 521 1042 l 694 1042 l 694 1215 l 868 1215 l 868 1389 l 1215 1389 l 1215 174 l 868 174 l 868 868 l 694 868 l 694 521 l 521 521 l 521 868 l 347 868 l 347 174 l 0 174 z "},"Ν":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 347 1389 l 347 1215 l 521 1215 l 521 1042 l 694 1042 l 694 868 l 868 868 l 868 1389 l 1215 1389 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 694 l 521 694 l 521 868 l 347 868 l 347 174 l 0 174 z "},"Ξ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 1215 l 0 1389 l 1215 1389 l 1215 1215 l 0 1215 m 174 694 l 174 868 l 1042 868 l 1042 694 l 174 694 m 0 174 l 0 347 l 1215 347 l 1215 174 l 0 174 z "},"Ο":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 1215 l 347 1215 l 347 347 z "},"Π":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1215 1389 l 1215 174 l 868 174 l 868 1215 l 347 1215 l 347 174 l 0 174 z "},"Ρ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 694 l 1042 694 l 1042 521 l 347 521 l 347 174 l 0 174 m 347 694 l 868 694 l 868 1215 l 347 1215 l 347 694 z "},"Σ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 521 694 l 521 868 l 347 868 l 347 1042 l 174 1042 l 174 1215 l 0 1215 l 0 1389 l 1215 1389 l 1215 1042 l 868 1042 l 868 1215 l 521 1215 l 521 1042 l 694 1042 l 694 868 l 1042 868 l 1042 694 l 694 694 l 694 521 l 521 521 l 521 347 l 868 347 l 868 521 l 1215 521 l 1215 174 l 0 174 z "},"Τ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 174 l 521 174 z "},"Υ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 694 l 347 694 l 347 868 l 174 868 l 174 1389 l 521 1389 l 521 868 l 868 868 l 868 1389 l 1215 1389 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 174 l 521 174 z "},"Φ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 174 l 521 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 694 347 l 694 174 l 521 174 m 347 521 l 521 521 l 521 1042 l 347 1042 l 347 521 m 694 521 l 868 521 l 868 1042 l 694 1042 l 694 521 z "},"Χ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 694 l 347 694 l 347 868 l 174 868 l 174 1042 l 0 1042 l 0 1389 l 347 1389 l 347 1042 l 521 1042 l 521 868 l 694 868 l 694 1042 l 868 1042 l 868 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 694 l 521 694 l 521 521 l 347 521 l 347 174 l 0 174 z "},"Ψ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 347 174 l 347 347 l 521 347 l 521 694 l 174 694 l 174 868 l 0 868 l 0 1389 l 347 1389 l 347 868 l 521 868 l 521 1389 l 868 1389 l 868 868 l 1042 868 l 1042 1389 l 1389 1389 l 1389 868 l 1215 868 l 1215 694 l 868 694 l 868 347 l 1042 347 l 1042 174 l 347 174 z "},"Ω":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 694 174 l 694 521 l 868 521 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 521 l 521 521 l 521 174 l 0 174 z "},"Ά":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1042 l 1215 174 l 868 174 l 868 521 l 521 521 l 521 174 l 174 174 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 m 347 1215 l 174 1215 l 174 1389 l 347 1389 l 347 1215 m 174 1215 l 174 1042 l 0 1042 l 0 1215 l 174 1215 m 868 1042 l 521 1042 l 521 694 l 868 694 l 868 1042 z "},"Έ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1389 1389 l 1389 1215 l 694 1215 l 694 868 l 1042 868 l 1042 694 l 694 694 l 694 347 l 1389 347 l 1389 174 l 347 174 l 347 1215 l 174 1215 l 174 1389 l 1389 1389 m 0 1215 l 174 1215 l 174 1042 l 0 1042 l 0 1215 z "},"Ή":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1389 1389 l 1389 174 l 1042 174 l 1042 694 l 694 694 l 694 174 l 347 174 l 347 1215 l 174 1215 l 174 1389 l 694 1389 l 694 868 l 1042 868 l 1042 1389 l 1389 1389 m 0 1215 l 174 1215 l 174 1042 l 0 1042 l 0 1215 z "},"Ί":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1389 l 347 1389 l 347 1215 l 174 1215 l 174 1389 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 347 l 1215 347 l 1215 174 l 521 174 l 521 347 l 694 347 l 694 1215 l 521 1215 l 521 1389 l 1215 1389 m 0 1215 l 174 1215 l 174 1042 l 0 1042 l 0 1215 z "},"Ό":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1389 1215 l 1389 347 l 1215 347 l 1215 174 l 521 174 l 521 347 l 347 347 l 347 1215 l 521 1215 l 521 1389 l 1215 1389 l 1215 1215 l 1389 1215 m 0 1215 l 174 1215 l 174 1042 l 0 1042 l 0 1215 m 1042 1215 l 694 1215 l 694 347 l 1042 347 l 1042 1215 z "},"Ύ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1389 1389 l 1389 868 l 1215 868 l 1215 694 l 1042 694 l 1042 174 l 694 174 l 694 694 l 521 694 l 521 868 l 347 868 l 347 1215 l 174 1215 l 174 1389 l 694 1389 l 694 868 l 1042 868 l 1042 1389 l 1389 1389 m 0 1215 l 174 1215 l 174 1042 l 0 1042 l 0 1215 z "},"Ώ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1389 1042 l 1389 521 l 1215 521 l 1215 347 l 1389 347 l 1389 174 l 868 174 l 868 521 l 1042 521 l 1042 1042 l 868 1042 l 868 1215 l 694 1215 l 694 1042 l 521 1042 l 521 521 l 694 521 l 694 174 l 174 174 l 174 347 l 347 347 l 347 521 l 174 521 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 1042 l 1389 1042 m 347 1215 l 174 1215 l 174 1389 l 347 1389 l 347 1215 m 174 1215 l 174 1042 l 0 1042 l 0 1215 l 174 1215 z "},"Ϊ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 868 1215 l 868 1389 l 1215 1389 l 1215 1215 l 868 1215 m 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 174 174 z "},"Ϋ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 868 1215 l 868 1389 l 1215 1389 l 1215 1215 l 868 1215 m 521 174 l 521 521 l 347 521 l 347 694 l 174 694 l 174 1042 l 521 1042 l 521 694 l 868 694 l 868 1042 l 1215 1042 l 1215 694 l 1042 694 l 1042 521 l 868 521 l 868 174 l 521 174 z "},"α":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"β":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 0 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 347 174 l 347 0 l 0 0 m 347 868 l 868 868 l 868 1215 l 347 1215 l 347 868 m 347 347 l 868 347 l 868 694 l 347 694 l 347 347 z "},"γ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 0 l 521 347 l 347 347 l 347 521 l 174 521 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 l 521 868 l 521 521 l 868 521 l 868 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 0 l 521 0 z "},"δ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 694 l 174 694 l 174 868 l 694 868 l 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 694 l 347 694 l 347 347 z "},"ε":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 174 174 z "},"ζ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 694 0 l 694 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 694 1215 l 694 1042 l 521 1042 l 521 868 l 347 868 l 347 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 1042 174 l 1042 0 l 694 0 z "},"η":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 868 l 521 868 l 521 174 l 174 174 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 m 1215 868 l 1215 0 l 868 0 l 868 868 l 521 868 l 521 1042 l 1042 1042 l 1042 868 l 1215 868 z "},"θ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 347 174 m 347 868 l 868 868 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 868 m 521 347 l 694 347 l 694 521 l 868 521 l 868 694 l 347 694 l 347 521 l 521 521 l 521 347 z "},"ι":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 521 174 l 521 347 l 347 347 l 347 868 l 174 868 l 174 1042 l 694 1042 l 694 347 l 1042 347 l 1042 174 l 521 174 z "},"κ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 347 1042 l 347 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 868 174 l 868 347 l 694 347 l 694 521 l 347 521 l 347 174 l 0 174 z "},"λ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 694 l 347 694 l 347 1042 l 174 1042 l 174 1215 l 0 1215 l 0 1389 l 347 1389 l 347 1215 l 521 1215 l 521 1042 l 694 1042 l 694 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 174 l 868 174 l 868 521 l 694 521 l 694 694 l 521 694 l 521 521 l 347 521 l 347 174 l 0 174 z "},"μ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 347 l 694 347 l 694 174 l 347 174 l 347 0 l 0 0 l 0 1042 l 347 1042 l 347 347 m 1215 347 l 1215 174 l 868 174 l 868 347 l 694 347 l 694 1042 l 1042 1042 l 1042 347 l 1215 347 z "},"ν":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 174 l 521 347 l 347 347 l 347 521 l 174 521 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 l 521 868 l 521 521 l 868 521 l 868 1042 l 1215 1042 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 521 174 z "},"ξ":{"ha":1389,"x_min":0,"x_max":1042,"o":"m 521 0 l 521 174 l 694 174 l 694 347 l 174 347 l 174 521 l 0 521 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 174 1042 l 174 1215 l 0 1215 l 0 1389 l 1042 1389 l 1042 1215 l 521 1215 l 521 1042 l 868 1042 l 868 868 l 521 868 l 521 694 l 347 694 l 347 521 l 868 521 l 868 347 l 1042 347 l 1042 174 l 868 174 l 868 0 l 521 0 z "},"ο":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 868 l 347 868 l 347 347 z "},"π":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 868 l 0 868 l 0 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 347 l 1215 347 l 1215 174 l 868 174 l 868 347 l 694 347 l 694 868 l 521 868 l 521 174 l 0 174 z "},"ρ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 0 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 1042 521 l 1042 347 l 347 347 l 347 0 l 0 0 m 347 521 l 868 521 l 868 868 l 347 868 l 347 521 z "},"ς":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 0 l 174 174 l 868 174 l 868 347 l 174 347 l 174 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 1042 1042 l 1042 868 l 347 868 l 347 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 1042 174 l 1042 0 l 174 0 z "},"σ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 868 868 l 868 694 l 1042 694 l 1042 347 l 868 347 l 868 174 l 174 174 m 347 347 l 694 347 l 694 694 l 521 694 l 521 868 l 347 868 l 347 347 z "},"τ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 694 174 l 694 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 868 868 l 868 347 l 1215 347 l 1215 174 l 694 174 z "},"υ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 347 l 174 347 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 l 521 868 l 521 347 l 868 347 l 868 868 l 694 868 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 347 174 z "},"φ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 0 l 521 0 l 521 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 347 l 521 347 l 521 868 l 694 868 l 694 347 l 868 347 l 868 868 l 694 868 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 z "},"χ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 0 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 174 694 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 l 521 868 l 521 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 0 l 868 0 l 868 347 l 694 347 l 694 521 l 521 521 l 521 347 l 347 347 l 347 0 l 0 0 z "},"ψ":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 521 0 l 521 174 l 174 174 l 174 347 l 0 347 l 0 1042 l 347 1042 l 347 347 l 521 347 l 521 1215 l 868 1215 l 868 347 l 1042 347 l 1042 1042 l 1389 1042 l 1389 347 l 1215 347 l 1215 174 l 868 174 l 868 0 l 521 0 z "},"ω":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 347 l 521 347 l 521 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 347 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 347 l 868 347 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 m 694 868 l 694 347 l 521 347 l 521 868 l 694 868 z "},"ί":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 694 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 m 1042 347 l 1042 174 l 521 174 l 521 347 l 347 347 l 347 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1042 l 694 1042 l 694 347 l 1042 347 z "},"ϊ":{"ha":1389,"x_min":0,"x_max":1042,"o":"m 0 1215 l 0 1389 l 347 1389 l 347 1215 l 0 1215 m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 521 174 l 521 347 l 347 347 l 347 868 l 174 868 l 174 1042 l 694 1042 l 694 347 l 1042 347 l 1042 174 l 521 174 z "},"ΐ":{"ha":1389,"x_min":0,"x_max":1042,"o":"m 174 1215 l 0 1215 l 0 1389 l 174 1389 l 174 1215 m 694 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 m 1042 1389 l 1042 1215 l 868 1215 l 868 1389 l 1042 1389 m 694 347 l 1042 347 l 1042 174 l 521 174 l 521 347 l 347 347 l 347 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1042 l 694 1042 l 694 347 z "},"ύ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1215 l 694 1042 l 521 1042 l 521 1215 l 694 1215 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 347 174 l 347 347 l 174 347 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 l 521 868 l 521 347 l 868 347 l 868 868 l 694 868 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 z "},"ϋ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 m 347 174 l 347 347 l 174 347 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 l 521 868 l 521 347 l 868 347 l 868 868 l 694 868 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 347 l 1042 347 l 1042 174 l 347 174 z "},"ΰ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1215 l 0 1215 l 0 1389 l 174 1389 l 174 1215 m 694 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 521 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1042 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 347 174 l 347 347 l 174 347 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 l 521 868 l 521 347 l 868 347 l 868 868 l 694 868 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 z "},"ό":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 868 868 l 347 868 l 347 347 l 868 347 l 868 868 z "},"ώ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 694 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 m 347 347 l 521 347 l 521 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 347 m 1215 868 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 347 l 868 347 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 m 694 868 l 694 347 l 521 347 l 521 868 l 694 868 z "},"ά":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 1042 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1215 1042 m 868 868 l 347 868 l 347 347 l 868 347 l 868 868 z "},"έ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 1042 l 1215 868 l 347 868 l 347 694 l 1042 694 l 1042 521 l 347 521 l 347 347 l 1215 347 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1042 l 1215 1042 z "},"ή":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1215 868 l 1215 0 l 868 0 l 868 868 l 521 868 l 521 1215 l 694 1215 l 694 1042 l 1042 1042 l 1042 868 l 1215 868 m 347 868 l 521 868 l 521 174 l 174 174 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 868 z "},"ͺ":{"ha":1389,"x_min":521,"x_max":1042,"o":"m 694 347 l 694 174 l 521 174 l 521 347 l 694 347 m 1042 174 l 1042 0 l 694 0 l 694 174 l 1042 174 z "},"¹":{"ha":1389,"x_min":347,"x_max":1042,"o":"m 347 694 l 347 868 l 521 868 l 521 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 868 1389 l 868 868 l 1042 868 l 1042 694 l 347 694 z "},"²":{"ha":1389,"x_min":347,"x_max":1042,"o":"m 347 694 l 347 868 l 521 868 l 521 1042 l 694 1042 l 694 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 868 l 1042 868 l 1042 694 l 347 694 z "},"³":{"ha":1389,"x_min":347,"x_max":1042,"o":"m 347 694 l 347 868 l 694 868 l 694 1042 l 521 1042 l 521 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 347 694 z "},"⁴":{"ha":1389,"x_min":347,"x_max":868,"o":"m 694 694 l 694 868 l 347 868 l 347 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1389 l 868 1389 l 868 694 l 694 694 z "},"⁄":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 868 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 1215 m 694 1042 l 868 1042 l 868 868 l 694 868 l 694 1042 m 521 868 l 694 868 l 694 694 l 521 694 l 521 868 m 347 694 l 521 694 l 521 521 l 347 521 l 347 694 m 174 521 l 347 521 l 347 347 l 174 347 l 174 521 m 0 347 l 174 347 l 174 174 l 0 174 l 0 347 z "},"½":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 694 l 174 694 l 174 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 347 1389 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 868 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 1215 m 694 1042 l 868 1042 l 868 868 l 694 868 l 694 1042 m 521 868 l 694 868 l 694 694 l 521 694 l 521 868 m 868 694 l 868 868 l 1215 868 l 1215 521 l 1042 521 l 1042 694 l 868 694 m 347 694 l 521 694 l 521 521 l 347 521 l 347 694 m 174 521 l 347 521 l 347 347 l 174 347 l 174 521 m 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 694 174 l 694 347 l 868 347 l 868 521 m 0 347 l 174 347 l 174 174 l 0 174 l 0 347 z "},"¼":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 694 l 174 694 l 174 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 347 1389 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 868 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 1215 m 694 1042 l 868 1042 l 868 868 l 694 868 l 694 1042 m 521 868 l 694 868 l 694 694 l 521 694 l 521 868 m 1042 868 l 1215 868 l 1215 174 l 1042 174 l 1042 347 l 694 347 l 694 521 l 868 521 l 868 694 l 1042 694 l 1042 868 m 347 694 l 521 694 l 521 521 l 347 521 l 347 694 m 174 521 l 347 521 l 347 347 l 174 347 l 174 521 m 0 347 l 174 347 l 174 174 l 0 174 l 0 347 z "},"¾":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1215 l 347 1042 l 174 1042 l 174 1215 l 0 1215 l 0 1389 l 521 1389 l 521 1215 l 347 1215 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 868 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 1215 m 521 868 l 347 868 l 347 1042 l 521 1042 l 521 868 m 694 1042 l 868 1042 l 868 868 l 694 868 l 694 1042 m 347 868 l 347 694 l 0 694 l 0 868 l 347 868 m 521 868 l 694 868 l 694 694 l 521 694 l 521 868 m 1042 868 l 1215 868 l 1215 174 l 1042 174 l 1042 347 l 694 347 l 694 521 l 868 521 l 868 694 l 1042 694 l 1042 868 m 347 694 l 521 694 l 521 521 l 347 521 l 347 694 m 174 521 l 347 521 l 347 347 l 174 347 l 174 521 m 0 347 l 174 347 l 174 174 l 0 174 l 0 347 z "},"*":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 347 l 174 521 l 347 521 l 347 694 l 0 694 l 0 868 l 347 868 l 347 1042 l 174 1042 l 174 1215 l 521 1215 l 521 1042 l 694 1042 l 694 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 868 l 1215 868 l 1215 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 694 347 l 694 521 l 521 521 l 521 347 l 174 347 z "},"\\":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 1389 l 174 1215 l 0 1215 l 0 1389 l 174 1389 m 347 1215 l 347 1042 l 174 1042 l 174 1215 l 347 1215 m 521 1042 l 521 868 l 347 868 l 347 1042 l 521 1042 m 694 868 l 694 694 l 521 694 l 521 868 l 694 868 m 868 694 l 868 521 l 694 521 l 694 694 l 868 694 m 1042 521 l 1042 347 l 868 347 l 868 521 l 1042 521 m 1215 347 l 1215 174 l 1042 174 l 1042 347 l 1215 347 z "},"·":{"ha":1389,"x_min":347,"x_max":694,"o":"m 347 521 l 347 868 l 694 868 l 694 521 l 347 521 z "},"•":{"ha":1389,"x_min":347,"x_max":1042,"o":"m 521 347 l 521 521 l 347 521 l 347 868 l 521 868 l 521 1042 l 868 1042 l 868 868 l 1042 868 l 1042 521 l 868 521 l 868 347 l 521 347 z "},":":{"ha":1389,"x_min":347,"x_max":694,"o":"m 347 868 l 347 1215 l 694 1215 l 694 868 l 347 868 m 347 347 l 347 694 l 694 694 l 694 347 l 347 347 z "},",":{"ha":1389,"x_min":174,"x_max":694,"o":"m 174 0 l 174 174 l 347 174 l 347 521 l 694 521 l 694 174 l 521 174 l 521 0 l 174 0 z "},"…":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 521 l 174 521 l 174 174 l 0 174 m 521 174 l 521 521 l 694 521 l 694 174 l 521 174 m 1042 174 l 1042 521 l 1215 521 l 1215 174 l 1042 174 z "},"!":{"ha":1389,"x_min":347,"x_max":868,"o":"m 347 521 l 347 1389 l 868 1389 l 868 868 l 694 868 l 694 521 l 347 521 m 347 174 l 347 347 l 694 347 l 694 174 l 347 174 z "},"¡":{"ha":1389,"x_min":347,"x_max":868,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 m 347 174 l 347 694 l 521 694 l 521 1042 l 868 1042 l 868 174 l 347 174 z "},"#":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 1042 l 1042 1042 l 1042 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 347 l 521 347 l 521 174 l 174 174 m 521 521 l 694 521 l 694 1042 l 521 1042 l 521 521 z "},".":{"ha":1389,"x_min":347,"x_max":694,"o":"m 347 174 l 347 521 l 694 521 l 694 174 l 347 174 z "},"?":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 521 l 347 694 l 694 694 l 694 868 l 868 868 l 868 1042 l 347 1042 l 347 868 l 0 868 l 0 1215 l 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 347 521 m 347 174 l 347 347 l 868 347 l 868 174 l 347 174 z "},"¿":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1215 l 347 1389 l 868 1389 l 868 1215 l 347 1215 m 174 174 l 174 347 l 0 347 l 0 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 868 1042 l 868 868 l 521 868 l 521 694 l 347 694 l 347 521 l 868 521 l 868 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 174 174 z "},"\"":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 174 868 l 174 1389 l 521 1389 l 521 868 l 174 868 m 694 868 l 694 1389 l 1042 1389 l 1042 868 l 694 868 z "},"'":{"ha":1389,"x_min":347,"x_max":694,"o":"m 347 868 l 347 1389 l 694 1389 l 694 868 l 347 868 z "},";":{"ha":1389,"x_min":174,"x_max":694,"o":"m 347 868 l 347 1215 l 694 1215 l 694 868 l 347 868 m 174 174 l 174 347 l 347 347 l 347 694 l 694 694 l 694 347 l 521 347 l 521 174 l 174 174 z "},"/":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 868 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 1215 m 694 1042 l 868 1042 l 868 868 l 694 868 l 694 1042 m 521 868 l 694 868 l 694 694 l 521 694 l 521 868 m 347 694 l 521 694 l 521 521 l 347 521 l 347 694 m 174 521 l 347 521 l 347 347 l 174 347 l 174 521 m 0 347 l 174 347 l 174 174 l 0 174 l 0 347 z "},"_":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 0 l 0 174 l 1215 174 l 1215 0 l 0 0 z "},"{":{"ha":1389,"x_min":347,"x_max":1042,"o":"m 694 174 l 694 347 l 521 347 l 521 694 l 347 694 l 347 868 l 521 868 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 868 l 694 868 l 694 694 l 868 694 l 868 347 l 1042 347 l 1042 174 l 694 174 z "},"}":{"ha":1389,"x_min":174,"x_max":868,"o":"m 174 174 l 174 347 l 347 347 l 347 694 l 521 694 l 521 868 l 347 868 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 868 l 868 868 l 868 694 l 694 694 l 694 347 l 521 347 l 521 174 l 174 174 z "},"[":{"ha":1389,"x_min":347,"x_max":1042,"o":"m 347 174 l 347 1389 l 1042 1389 l 1042 1215 l 694 1215 l 694 347 l 1042 347 l 1042 174 l 347 174 z "},"]":{"ha":1389,"x_min":174,"x_max":868,"o":"m 174 174 l 174 347 l 521 347 l 521 1215 l 174 1215 l 174 1389 l 868 1389 l 868 174 l 174 174 z "},"(":{"ha":1389,"x_min":347,"x_max":1042,"o":"m 694 174 l 694 347 l 521 347 l 521 521 l 347 521 l 347 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 694 1042 l 694 521 l 868 521 l 868 347 l 1042 347 l 1042 174 l 694 174 z "},")":{"ha":1389,"x_min":174,"x_max":868,"o":"m 174 174 l 174 347 l 347 347 l 347 521 l 521 521 l 521 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1042 l 868 1042 l 868 521 l 694 521 l 694 347 l 521 347 l 521 174 l 174 174 z "},"—":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 0 694 l 0 868 l 1389 868 l 1389 694 l 0 694 z "},"–":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 694 l 0 868 l 1215 868 l 1215 694 l 0 694 z "},"―":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 694 l 0 868 l 1215 868 l 1215 694 l 0 694 z "},"-":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 694 l 174 868 l 1215 868 l 1215 694 l 174 694 z "},"­":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 694 l 174 868 l 1215 868 l 1215 694 l 174 694 z "},"«":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 347 l 347 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 694 1215 l 694 1042 l 868 1042 l 868 1215 l 1215 1215 l 1215 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 1215 521 l 1215 347 l 868 347 l 868 521 l 694 521 l 694 347 l 347 347 m 521 521 l 694 521 l 694 694 l 521 694 l 521 868 l 694 868 l 694 1042 l 521 1042 l 521 868 l 347 868 l 347 694 l 521 694 l 521 521 z "},"»":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 347 l 0 521 l 174 521 l 174 694 l 347 694 l 347 868 l 174 868 l 174 1042 l 0 1042 l 0 1215 l 347 1215 l 347 1042 l 521 1042 l 521 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 1042 694 l 1042 521 l 868 521 l 868 347 l 521 347 l 521 521 l 347 521 l 347 347 l 0 347 m 521 521 l 694 521 l 694 694 l 868 694 l 868 868 l 694 868 l 694 1042 l 521 1042 l 521 868 l 694 868 l 694 694 l 521 694 l 521 521 z "},"‹":{"ha":1389,"x_min":347,"x_max":1042,"o":"m 694 347 l 694 521 l 521 521 l 521 694 l 347 694 l 347 868 l 521 868 l 521 1042 l 694 1042 l 694 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 868 l 694 868 l 694 694 l 868 694 l 868 521 l 1042 521 l 1042 347 l 694 347 z "},"›":{"ha":1389,"x_min":174,"x_max":868,"o":"m 174 347 l 174 521 l 347 521 l 347 694 l 521 694 l 521 868 l 347 868 l 347 1042 l 174 1042 l 174 1215 l 521 1215 l 521 1042 l 694 1042 l 694 868 l 868 868 l 868 694 l 694 694 l 694 521 l 521 521 l 521 347 l 174 347 z "},"„":{"ha":1389,"x_min":0,"x_max":1042,"o":"m 521 694 l 521 347 l 347 347 l 347 174 l 0 174 l 0 347 l 174 347 l 174 694 l 521 694 m 1042 694 l 1042 347 l 868 347 l 868 174 l 521 174 l 521 347 l 694 347 l 694 694 l 1042 694 z "},"“":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 694 1389 l 694 1215 l 521 1215 l 521 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 694 1389 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 868 l 694 868 l 694 1215 l 868 1215 l 868 1389 l 1215 1389 z "},"”":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 694 1389 l 694 1042 l 521 1042 l 521 868 l 174 868 l 174 1042 l 347 1042 l 347 1389 l 694 1389 m 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 694 868 l 694 1042 l 868 1042 l 868 1389 l 1215 1389 z "},"‘":{"ha":1389,"x_min":347,"x_max":868,"o":"m 347 868 l 347 1215 l 521 1215 l 521 1389 l 868 1389 l 868 1215 l 694 1215 l 694 868 l 347 868 z "},"’":{"ha":1389,"x_min":347,"x_max":868,"o":"m 347 868 l 347 1042 l 521 1042 l 521 1389 l 868 1389 l 868 1042 l 694 1042 l 694 868 l 347 868 z "},"‚":{"ha":1389,"x_min":347,"x_max":868,"o":"m 347 174 l 347 347 l 521 347 l 521 694 l 868 694 l 868 347 l 694 347 l 694 174 l 347 174 z "},"·":{"ha":1389,"x_min":347,"x_max":694,"o":"m 347 521 l 347 868 l 694 868 l 694 521 l 347 521 z "},";":{"ha":1389,"x_min":174,"x_max":694,"o":"m 347 868 l 347 1215 l 694 1215 l 694 868 l 347 868 m 174 174 l 174 347 l 347 347 l 347 694 l 694 694 l 694 347 l 521 347 l 521 174 l 174 174 z "}," ":{"ha":1389,"x_min":0,"x_max":0,"o":""},"":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 174 174 l 174 521 l 521 521 l 521 174 l 174 174 m 694 174 l 694 521 l 1042 521 l 1042 174 l 694 174 z "},"¢":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 174 l 521 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 868 l 868 868 l 868 1042 l 694 1042 l 694 521 l 868 521 l 868 694 l 1215 694 l 1215 521 l 1042 521 l 1042 347 l 694 347 l 694 174 l 521 174 m 347 521 l 521 521 l 521 1042 l 347 1042 l 347 521 z "},"¤":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 347 1215 l 347 1042 l 174 1042 l 174 1215 l 347 1215 m 868 1042 l 521 1042 l 521 1215 l 868 1215 l 868 1042 m 1215 1215 l 1215 1042 l 1042 1042 l 1042 1215 l 1215 1215 m 521 1042 l 521 521 l 347 521 l 347 1042 l 521 1042 m 868 1042 l 1042 1042 l 1042 521 l 868 521 l 868 1042 m 174 521 l 347 521 l 347 347 l 174 347 l 174 521 m 521 521 l 868 521 l 868 347 l 521 347 l 521 521 m 1042 347 l 1042 521 l 1215 521 l 1215 347 l 1042 347 z "},"$":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 174 l 521 347 l 0 347 l 0 521 l 521 521 l 521 694 l 174 694 l 174 868 l 0 868 l 0 1042 l 174 1042 l 174 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 868 l 1042 868 l 1042 694 l 1215 694 l 1215 521 l 1042 521 l 1042 347 l 694 347 l 694 174 l 521 174 m 347 868 l 521 868 l 521 1042 l 347 1042 l 347 868 m 694 521 l 868 521 l 868 694 l 694 694 l 694 521 z "},"₯":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 m 174 347 l 521 347 l 521 174 l 0 174 l 0 1215 l 174 1215 l 174 347 m 868 347 l 1042 347 l 1042 174 l 868 174 l 868 0 l 694 0 l 694 347 l 521 347 l 521 1215 l 694 1215 l 694 868 l 868 868 l 868 347 m 1042 868 l 868 868 l 868 1042 l 1042 1042 l 1042 868 m 1215 868 l 1215 347 l 1042 347 l 1042 868 l 1215 868 z "},"€":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 694 1215 l 694 1042 l 868 1042 l 868 868 l 521 868 l 521 694 l 868 694 l 868 521 l 694 521 l 694 347 l 868 347 l 868 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 521 174 l 521 347 l 347 347 l 347 521 l 0 521 l 0 694 l 174 694 l 174 868 l 0 868 l 0 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 1042 1389 l 1042 1215 l 1215 1215 z "},"ƒ":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 347 l 521 347 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 1042 l 1215 1042 l 1215 868 l 868 868 l 868 347 l 694 347 l 694 174 l 174 174 z "},"₴":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1042 1042 l 1215 1042 l 1215 868 l 0 868 l 0 1042 l 694 1042 l 694 1215 l 174 1215 l 174 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 m 1215 694 l 1215 521 l 521 521 l 521 347 l 1042 347 l 1042 174 l 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 694 l 1215 694 z "},"₽":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1389 1215 l 1389 868 l 1215 868 l 1215 694 l 521 694 l 521 521 l 868 521 l 868 347 l 521 347 l 521 174 l 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1389 l 1215 1389 l 1215 1215 l 1389 1215 m 1042 1215 l 521 1215 l 521 868 l 1042 868 l 1042 1215 z "},"£":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 521 1215 l 521 868 l 1042 868 l 1042 694 l 521 694 l 521 347 l 1215 347 l 1215 174 l 0 174 z "},"₸":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1215 l 174 1389 l 1215 1389 l 1215 1215 l 174 1215 m 521 174 l 521 868 l 174 868 l 174 1042 l 1215 1042 l 1215 868 l 868 868 l 868 174 l 521 174 z "},"₮":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1389 l 1215 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 868 521 l 868 174 l 521 174 l 521 347 l 347 347 l 347 521 l 521 521 l 521 694 l 347 694 l 347 868 l 521 868 l 521 1215 l 174 1215 l 174 1389 l 1215 1389 z "},"¥":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 347 l 174 347 l 174 521 l 521 521 l 521 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 174 1042 l 174 1389 l 521 1389 l 521 1042 l 868 1042 l 868 1389 l 1215 1389 l 1215 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 868 694 l 868 521 l 1215 521 l 1215 347 l 868 347 l 868 174 l 521 174 z "},"∕":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 868 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 1215 m 694 1042 l 868 1042 l 868 868 l 694 868 l 694 1042 m 521 868 l 694 868 l 694 694 l 521 694 l 521 868 m 347 694 l 521 694 l 521 521 l 347 521 l 347 694 m 174 521 l 347 521 l 347 347 l 174 347 l 174 521 m 0 347 l 174 347 l 174 174 l 0 174 l 0 347 z "},"+":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 347 l 521 694 l 174 694 l 174 868 l 521 868 l 521 1215 l 868 1215 l 868 868 l 1215 868 l 1215 694 l 868 694 l 868 347 l 521 347 z "},"×":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 347 1215 l 347 1042 l 174 1042 l 174 1215 l 347 1215 m 1042 1215 l 1042 1042 l 868 1042 l 868 1215 l 1042 1215 m 521 1042 l 521 868 l 347 868 l 347 1042 l 521 1042 m 694 1042 l 868 1042 l 868 868 l 694 868 l 694 1042 m 521 868 l 694 868 l 694 694 l 521 694 l 521 868 m 347 694 l 521 694 l 521 521 l 347 521 l 347 694 m 694 521 l 694 694 l 868 694 l 868 521 l 694 521 m 174 521 l 347 521 l 347 347 l 174 347 l 174 521 m 868 347 l 868 521 l 1042 521 l 1042 347 l 868 347 z "},"÷":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 1042 l 521 1215 l 868 1215 l 868 1042 l 521 1042 m 174 694 l 174 868 l 1215 868 l 1215 694 l 174 694 m 521 347 l 521 521 l 868 521 l 868 347 l 521 347 z "},"=":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 868 l 0 1042 l 1215 1042 l 1215 868 l 0 868 m 0 521 l 0 694 l 1215 694 l 1215 521 l 0 521 z "},"≠":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 868 l 694 868 l 694 694 l 1215 694 l 1215 521 l 347 521 l 347 347 l 174 347 l 174 521 l 0 521 l 0 694 l 521 694 l 521 868 l 0 868 l 0 1042 l 868 1042 l 868 1215 m 0 347 l 174 347 l 174 174 l 0 174 l 0 347 z "},">":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 174 174 l 174 347 l 347 347 l 347 521 l 521 521 l 521 694 l 694 694 l 694 868 l 521 868 l 521 1042 l 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1042 l 868 1042 l 868 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 694 521 l 694 347 l 521 347 l 521 174 l 174 174 z "},"<":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 694 174 l 694 347 l 521 347 l 521 521 l 347 521 l 347 694 l 174 694 l 174 868 l 347 868 l 347 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 694 1042 l 694 868 l 521 868 l 521 694 l 694 694 l 694 521 l 868 521 l 868 347 l 1042 347 l 1042 174 l 694 174 z "},"≥":{"ha":1389,"x_min":347,"x_max":1042,"o":"m 347 521 l 347 694 l 521 694 l 521 868 l 694 868 l 694 1042 l 521 1042 l 521 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 868 868 l 868 694 l 694 694 l 694 521 l 347 521 m 347 174 l 347 347 l 1042 347 l 1042 174 l 347 174 z "},"≤":{"ha":1389,"x_min":347,"x_max":1042,"o":"m 694 521 l 694 694 l 521 694 l 521 868 l 347 868 l 347 1042 l 521 1042 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 694 1042 l 694 868 l 868 868 l 868 694 l 1042 694 l 1042 521 l 694 521 m 347 174 l 347 347 l 1042 347 l 1042 174 l 347 174 z "},"±":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 521 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1389 l 868 1389 l 868 1042 l 1215 1042 l 1215 868 l 868 868 l 868 521 l 521 521 m 174 174 l 174 347 l 1215 347 l 1215 174 l 174 174 z "},"≈":{"ha":1389,"x_min":0,"x_max":1042,"o":"m 521 1215 l 521 1042 l 174 1042 l 174 1215 l 521 1215 m 1042 1215 l 1042 1042 l 868 1042 l 868 1215 l 1042 1215 m 0 1042 l 174 1042 l 174 868 l 0 868 l 0 1042 m 521 1042 l 868 1042 l 868 868 l 521 868 l 521 1042 m 521 694 l 521 521 l 174 521 l 174 694 l 521 694 m 868 694 l 1042 694 l 1042 521 l 868 521 l 868 694 m 0 521 l 174 521 l 174 347 l 0 347 l 0 521 m 521 521 l 868 521 l 868 347 l 521 347 l 521 521 z "},"~":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 694 l 1042 694 l 1042 521 l 521 521 l 521 694 l 347 694 l 347 868 l 174 868 l 174 1042 l 694 1042 l 694 868 l 868 868 l 868 694 m 0 868 l 174 868 l 174 694 l 0 694 l 0 868 m 1215 868 l 1215 694 l 1042 694 l 1042 868 l 1215 868 z "},"¬":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 521 l 868 868 l 174 868 l 174 1042 l 1215 1042 l 1215 521 l 868 521 z "},"∞":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 868 l 174 868 l 174 1042 l 521 1042 l 521 868 m 1042 868 l 694 868 l 694 1042 l 1042 1042 l 1042 868 m 174 868 l 174 521 l 0 521 l 0 868 l 174 868 m 694 868 l 694 521 l 521 521 l 521 868 l 694 868 m 1215 868 l 1215 521 l 1042 521 l 1042 868 l 1215 868 m 174 521 l 521 521 l 521 347 l 174 347 l 174 521 m 694 521 l 1042 521 l 1042 347 l 694 347 l 694 521 z "},"∫":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1042 1389 l 1042 1215 l 868 1215 l 868 174 l 694 174 l 694 0 l 347 0 l 347 174 l 521 174 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 m 1215 1215 l 1215 1042 l 1042 1042 l 1042 1215 l 1215 1215 m 347 347 l 347 174 l 174 174 l 174 347 l 347 347 z "},"∆":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 174 l 0 174 m 347 347 l 868 347 l 868 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 347 z "},"∏":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 1215 1389 l 1215 174 l 868 174 l 868 1215 l 347 1215 l 347 174 l 0 174 z "},"∑":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 521 l 347 521 l 347 694 l 521 694 l 521 868 l 347 868 l 347 1042 l 174 1042 l 174 1215 l 0 1215 l 0 1389 l 1215 1389 l 1215 1042 l 868 1042 l 868 1215 l 521 1215 l 521 1042 l 694 1042 l 694 868 l 1042 868 l 1042 694 l 694 694 l 694 521 l 521 521 l 521 347 l 868 347 l 868 521 l 1215 521 l 1215 174 l 0 174 z "},"√":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 694 l 347 694 l 347 521 l 521 521 l 521 1389 l 1215 1389 l 1215 1215 l 868 1215 l 868 174 l 347 174 z "},"µ":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 347 l 694 347 l 694 174 l 347 174 l 347 0 l 0 0 l 0 1042 l 347 1042 l 347 347 m 1215 347 l 1215 174 l 868 174 l 868 347 l 694 347 l 694 1042 l 1042 1042 l 1042 347 l 1215 347 z "},"∂":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 0 347 l 0 694 l 174 694 l 174 868 l 868 868 l 868 1042 l 694 1042 l 694 1215 l 347 1215 l 347 1042 l 0 1042 l 0 1215 l 174 1215 l 174 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 347 l 1042 347 l 1042 174 l 174 174 m 347 347 l 868 347 l 868 694 l 347 694 l 347 347 z "},"%":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1042 l 347 1042 l 347 1215 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 347 868 l 0 868 l 0 1215 l 174 1215 l 174 1042 l 347 1042 l 347 868 m 868 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 1215 m 694 1042 l 868 1042 l 868 868 l 694 868 l 694 1042 m 521 868 l 694 868 l 694 694 l 521 694 l 521 868 m 347 694 l 521 694 l 521 521 l 347 521 l 347 694 m 868 694 l 1215 694 l 1215 347 l 1042 347 l 1042 521 l 868 521 l 868 694 m 174 521 l 347 521 l 347 347 l 174 347 l 174 521 m 868 347 l 1042 347 l 1042 174 l 694 174 l 694 521 l 868 521 l 868 347 m 0 347 l 174 347 l 174 174 l 0 174 l 0 347 z "},"‰":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1042 l 347 1042 l 347 1215 m 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 l 1215 1215 m 347 868 l 0 868 l 0 1215 l 174 1215 l 174 1042 l 347 1042 l 347 868 m 1042 1042 l 868 1042 l 868 1215 l 1042 1215 l 1042 1042 m 868 868 l 694 868 l 694 1042 l 868 1042 l 868 868 m 694 694 l 521 694 l 521 868 l 694 868 l 694 694 m 521 694 l 521 521 l 347 521 l 347 694 l 521 694 m 1389 694 l 1389 347 l 1215 347 l 1215 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 521 174 l 521 521 l 694 521 l 694 347 l 868 347 l 868 521 l 694 521 l 694 694 l 1389 694 m 174 521 l 347 521 l 347 347 l 174 347 l 174 521 m 0 347 l 174 347 l 174 174 l 0 174 l 0 347 z "},"↑":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 0 l 347 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 868 694 l 868 0 l 347 0 z "},"→":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 694 174 l 694 521 l 0 521 l 0 1042 l 694 1042 l 694 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 1215 1042 l 1215 868 l 1389 868 l 1389 694 l 1215 694 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 694 174 z "},"↓":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 0 l 521 174 l 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 694 l 347 694 l 347 1389 l 868 1389 l 868 694 l 1215 694 l 1215 521 l 1042 521 l 1042 347 l 868 347 l 868 174 l 694 174 l 694 0 l 521 0 z "},"←":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 521 174 l 521 347 l 347 347 l 347 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1042 l 1389 1042 l 1389 521 l 694 521 l 694 174 l 521 174 z "},"◊":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 694 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 m 521 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1042 m 694 1042 l 694 1215 l 868 1215 l 868 1042 l 694 1042 m 347 868 l 174 868 l 174 1042 l 347 1042 l 347 868 m 868 868 l 868 1042 l 1042 1042 l 1042 868 l 868 868 m 174 868 l 174 694 l 0 694 l 0 868 l 174 868 m 1215 868 l 1215 694 l 1042 694 l 1042 868 l 1215 868 m 347 694 l 347 521 l 174 521 l 174 694 l 347 694 m 868 694 l 1042 694 l 1042 521 l 868 521 l 868 694 m 521 521 l 521 347 l 347 347 l 347 521 l 521 521 m 694 521 l 868 521 l 868 347 l 694 347 l 694 521 m 521 347 l 694 347 l 694 174 l 521 174 l 521 347 z "},"▲":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 347 l 174 347 l 174 694 l 347 694 l 347 1042 l 521 1042 l 521 1389 l 694 1389 l 694 1042 l 868 1042 l 868 694 l 1042 694 l 1042 347 l 1215 347 l 1215 174 l 0 174 z "},"▶":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 0 174 l 0 1389 l 174 1389 l 174 1215 l 521 1215 l 521 1042 l 868 1042 l 868 868 l 1215 868 l 1215 694 l 868 694 l 868 521 l 521 521 l 521 347 l 174 347 l 174 174 l 0 174 z "},"▼":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 174 l 521 521 l 347 521 l 347 868 l 174 868 l 174 1215 l 0 1215 l 0 1389 l 1215 1389 l 1215 1215 l 1042 1215 l 1042 868 l 868 868 l 868 521 l 694 521 l 694 174 l 521 174 z "},"◀":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1042 174 l 1042 347 l 694 347 l 694 521 l 347 521 l 347 694 l 0 694 l 0 868 l 347 868 l 347 1042 l 694 1042 l 694 1215 l 1042 1215 l 1042 1389 l 1215 1389 l 1215 174 l 1042 174 z "},"★":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 521 l 347 521 l 347 694 l 174 694 l 174 868 l 0 868 l 0 1042 l 521 1042 l 521 1389 l 694 1389 l 694 1042 l 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 521 l 1042 521 l 1042 174 l 868 174 l 868 347 l 694 347 l 694 521 l 521 521 l 521 347 l 347 347 l 347 174 l 174 174 z "},"☆":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 694 1042 l 521 1042 l 521 1389 l 694 1389 l 694 1042 m 347 868 l 347 694 l 174 694 l 174 868 l 0 868 l 0 1042 l 521 1042 l 521 868 l 347 868 m 1215 1042 l 1215 868 l 1042 868 l 1042 694 l 868 694 l 868 868 l 694 868 l 694 1042 l 1215 1042 m 694 694 l 868 694 l 868 521 l 1042 521 l 1042 174 l 868 174 l 868 347 l 347 347 l 347 174 l 174 174 l 174 521 l 347 521 l 347 694 l 521 694 l 521 521 l 694 521 l 694 694 z "},"♠":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 174 174 l 174 347 l 347 347 l 347 521 l 0 521 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 521 l 868 521 l 868 347 l 1042 347 l 1042 174 l 174 174 z "},"♣":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 868 1042 l 521 1042 l 521 1389 l 868 1389 l 868 1042 m 521 1042 l 521 694 l 174 694 l 174 1042 l 521 1042 m 1215 1042 l 1215 694 l 868 694 l 868 1042 l 1215 1042 m 521 694 l 868 694 l 868 347 l 1042 347 l 1042 174 l 347 174 l 347 347 l 521 347 l 521 694 z "},"♥":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 174 l 521 347 l 347 347 l 347 521 l 174 521 l 174 694 l 0 694 l 0 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 1215 1215 l 1215 694 l 1042 694 l 1042 521 l 868 521 l 868 347 l 694 347 l 694 174 l 521 174 z "},"♦":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 521 174 l 521 347 l 347 347 l 347 521 l 174 521 l 174 694 l 0 694 l 0 868 l 174 868 l 174 1042 l 347 1042 l 347 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 l 868 1215 l 868 1042 l 1042 1042 l 1042 868 l 1215 868 l 1215 694 l 1042 694 l 1042 521 l 868 521 l 868 347 l 694 347 l 694 174 l 521 174 z "},"♪":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 1215 l 868 1042 l 694 1042 l 694 347 l 521 347 l 521 174 l 174 174 l 174 347 l 0 347 l 0 521 l 174 521 l 174 694 l 521 694 l 521 1389 l 694 1389 l 694 1215 l 868 1215 m 1042 1042 l 1042 868 l 868 868 l 868 1042 l 1042 1042 m 1215 868 l 1215 694 l 1042 694 l 1042 868 l 1215 868 m 868 694 l 1042 694 l 1042 521 l 868 521 l 868 694 z "},"":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 868 1215 l 694 1215 l 694 1389 l 868 1389 l 868 1215 m 1389 1042 l 1389 521 l 1215 521 l 1215 347 l 1042 347 l 1042 174 l 694 174 l 694 347 l 521 347 l 521 174 l 347 174 l 347 347 l 174 347 l 174 521 l 0 521 l 0 1042 l 174 1042 l 174 1215 l 694 1215 l 694 1042 l 868 1042 l 868 1215 l 1215 1215 l 1215 1042 l 1042 1042 l 1042 694 l 868 694 l 868 521 l 1042 521 l 1042 694 l 1215 694 l 1215 1042 l 1389 1042 z "},"@":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 1042 1389 l 1042 1215 l 174 1215 l 174 1389 l 1042 1389 m 0 1215 l 174 1215 l 174 347 l 0 347 l 0 1215 m 1215 1215 l 1215 521 l 347 521 l 347 1042 l 868 1042 l 868 694 l 1042 694 l 1042 1215 l 1215 1215 m 694 868 l 521 868 l 521 694 l 694 694 l 694 868 m 174 174 l 174 347 l 1042 347 l 1042 174 l 174 174 z "},"&":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 868 521 l 1042 521 l 1042 347 l 1215 347 l 1215 174 l 174 174 l 174 347 l 0 347 l 0 694 l 174 694 l 174 868 l 0 868 l 0 1215 l 174 1215 l 174 1389 l 694 1389 l 694 1215 l 868 1215 l 868 868 l 694 868 l 694 694 l 868 694 l 868 521 m 347 868 l 521 868 l 521 1215 l 347 1215 l 347 868 m 694 521 l 521 521 l 521 694 l 347 694 l 347 347 l 694 347 l 694 521 m 1215 694 l 1215 521 l 1042 521 l 1042 694 l 1215 694 z "},"¶":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 694 174 l 694 521 l 347 521 l 347 694 l 174 694 l 174 1215 l 347 1215 l 347 1389 l 1215 1389 l 1215 174 l 1042 174 l 1042 521 l 868 521 l 868 174 l 694 174 m 521 694 l 694 694 l 694 1215 l 521 1215 l 521 1042 l 347 1042 l 347 868 l 521 868 l 521 694 m 868 694 l 1042 694 l 1042 1215 l 868 1215 l 868 694 z "},"§":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 1215 1215 l 1215 1042 l 868 1042 l 868 1215 l 521 1215 l 521 1042 l 868 1042 l 868 868 l 521 868 l 521 694 l 347 694 l 347 868 l 174 868 l 174 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 l 1215 1215 m 868 694 l 868 868 l 1042 868 l 1042 694 l 1215 694 l 1215 347 l 1042 347 l 1042 174 l 347 174 l 347 347 l 174 347 l 174 521 l 521 521 l 521 347 l 868 347 l 868 521 l 521 521 l 521 694 l 868 694 z "},"©":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1042 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 m 347 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1042 m 1042 1042 l 1042 1215 l 1215 1215 l 1215 1042 l 1042 1042 m 174 1042 l 174 347 l 0 347 l 0 1042 l 174 1042 m 521 1042 l 868 1042 l 868 868 l 521 868 l 521 1042 m 1389 1042 l 1389 347 l 1215 347 l 1215 1042 l 1389 1042 m 347 868 l 521 868 l 521 521 l 347 521 l 347 868 m 521 347 l 521 521 l 868 521 l 868 347 l 521 347 m 347 347 l 347 174 l 174 174 l 174 347 l 347 347 m 1042 347 l 1215 347 l 1215 174 l 1042 174 l 1042 347 m 347 174 l 1042 174 l 1042 0 l 347 0 l 347 174 z "},"®":{"ha":1389,"x_min":0,"x_max":1389,"o":"m 1042 1215 l 347 1215 l 347 1389 l 1042 1389 l 1042 1215 m 347 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1042 m 1042 1042 l 1042 1215 l 1215 1215 l 1215 1042 l 1042 1042 m 174 1042 l 174 347 l 0 347 l 0 1042 l 174 1042 m 347 347 l 347 1042 l 868 1042 l 868 868 l 521 868 l 521 694 l 868 694 l 868 521 l 521 521 l 521 347 l 347 347 m 1389 1042 l 1389 347 l 1215 347 l 1215 1042 l 1389 1042 m 868 694 l 868 868 l 1042 868 l 1042 694 l 868 694 m 868 347 l 868 521 l 1042 521 l 1042 347 l 868 347 m 347 347 l 347 174 l 174 174 l 174 347 l 347 347 m 1042 347 l 1215 347 l 1215 174 l 1042 174 l 1042 347 m 347 174 l 1042 174 l 1042 0 l 347 0 l 347 174 z "},"™":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 347 694 l 347 1215 l 174 1215 l 174 1389 l 1215 1389 l 1215 694 l 1042 694 l 1042 1042 l 868 1042 l 868 694 l 694 694 l 694 1215 l 521 1215 l 521 694 l 347 694 z "},"°":{"ha":1389,"x_min":347,"x_max":868,"o":"m 694 1215 l 521 1215 l 521 1389 l 694 1389 l 694 1215 m 521 1215 l 521 1042 l 347 1042 l 347 1215 l 521 1215 m 868 1215 l 868 1042 l 694 1042 l 694 1215 l 868 1215 m 521 1042 l 694 1042 l 694 868 l 521 868 l 521 1042 z "},"|":{"ha":1389,"x_min":521,"x_max":868,"o":"m 521 174 l 521 1389 l 868 1389 l 868 174 l 521 174 z "},"¦":{"ha":1389,"x_min":521,"x_max":868,"o":"m 521 868 l 521 1389 l 868 1389 l 868 868 l 521 868 m 521 174 l 521 694 l 868 694 l 868 174 l 521 174 z "},"†":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1389 l 868 1389 l 868 1042 l 1215 1042 l 1215 868 l 868 868 l 868 174 l 521 174 z "},"‡":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 521 174 l 521 521 l 174 521 l 174 694 l 521 694 l 521 868 l 174 868 l 174 1042 l 521 1042 l 521 1389 l 868 1389 l 868 1042 l 1215 1042 l 1215 868 l 868 868 l 868 694 l 1215 694 l 1215 521 l 868 521 l 868 174 l 521 174 z "},"№":{"ha":1389,"x_min":0,"x_max":1215,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 174 l 0 174 l 0 1389 l 347 1389 m 1042 1215 l 868 1215 l 868 1389 l 1042 1389 l 1042 1215 m 347 1215 l 521 1215 l 521 174 l 347 174 l 347 1215 m 868 1215 l 868 694 l 694 694 l 694 1215 l 868 1215 m 1215 1215 l 1215 694 l 1042 694 l 1042 1215 l 1215 1215 m 868 694 l 1042 694 l 1042 521 l 868 521 l 868 694 m 694 347 l 1215 347 l 1215 174 l 694 174 l 694 347 z "},"^":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 174 1042 z "},"˗":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 174 694 l 174 868 l 1042 868 l 1042 694 l 174 694 z "},"̀":{"ha":0,"x_min":-986,"x_max":-639,"o":"m -812 1389 l -812 1215 l -986 1215 l -986 1389 l -812 1389 m -639 1215 l -639 1042 l -812 1042 l -812 1215 l -639 1215 z "},"́":{"ha":0,"x_min":-847,"x_max":-500,"o":"m -500 1389 l -500 1215 l -674 1215 l -674 1389 l -500 1389 m -847 1215 l -674 1215 l -674 1042 l -847 1042 l -847 1215 z "},"̦":{"ha":0,"x_min":-1042,"x_max":-521,"o":"m -1042 -519 l -1042 -346 l -868 -346 l -868 1 l -521 1 l -521 -346 l -694 -346 l -694 -519 l -1042 -519 z "},"̵":{"ha":0,"x_min":-1028,"x_max":-356,"o":"m -1028 499 l -1028 672 l -356 672 l -356 499 l -1028 499 z "},"ʼ":{"ha":1389,"x_min":0,"x_max":347,"o":"m 0 868 l 0 1389 l 347 1389 l 347 1042 l 174 1042 l 174 868 l 0 868 z "},"ˉ":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 z "},"ˋ":{"ha":1389,"x_min":521,"x_max":868,"o":"m 694 1389 l 694 1215 l 521 1215 l 521 1389 l 694 1389 m 868 1215 l 868 1042 l 694 1042 l 694 1215 l 868 1215 z "},"ˊ":{"ha":1389,"x_min":521,"x_max":868,"o":"m 868 1389 l 868 1215 l 694 1215 l 694 1389 l 868 1389 m 521 1215 l 694 1215 l 694 1042 l 521 1042 l 521 1215 z "},"´":{"ha":1389,"x_min":521,"x_max":868,"o":"m 868 1389 l 868 1215 l 694 1215 l 694 1389 l 868 1389 m 521 1215 l 694 1215 l 694 1042 l 521 1042 l 521 1215 z "},"˘":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 347 1389 l 347 1215 l 174 1215 l 174 1389 l 347 1389 m 1042 1389 l 1042 1215 l 868 1215 l 868 1389 l 1042 1389 m 347 1215 l 868 1215 l 868 1042 l 347 1042 l 347 1215 z "},"ˇ":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 347 1042 l 347 1215 l 174 1215 l 174 1389 l 521 1389 l 521 1215 l 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 868 1215 l 868 1042 l 347 1042 z "},"¸":{"ha":1389,"x_min":347,"x_max":868,"o":"m 868 347 l 868 174 l 694 174 l 694 347 l 868 347 m 347 174 l 694 174 l 694 0 l 347 0 l 347 174 z "},"ˆ":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 l 174 1042 z "},"¨":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 174 1215 l 174 1389 l 521 1389 l 521 1215 l 174 1215 m 694 1215 l 694 1389 l 1042 1389 l 1042 1215 l 694 1215 z "},"˙":{"ha":1389,"x_min":521,"x_max":868,"o":"m 521 1215 l 521 1389 l 868 1389 l 868 1215 l 521 1215 z "},"`":{"ha":1389,"x_min":521,"x_max":868,"o":"m 694 1389 l 694 1215 l 521 1215 l 521 1389 l 694 1389 m 868 1215 l 868 1042 l 694 1042 l 694 1215 l 868 1215 z "},"˝":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 347 1389 l 521 1389 l 521 1215 l 347 1215 l 347 1389 m 1042 1389 l 1042 1215 l 868 1215 l 868 1389 l 1042 1389 m 174 1215 l 347 1215 l 347 1042 l 174 1042 l 174 1215 m 694 1215 l 868 1215 l 868 1042 l 694 1042 l 694 1215 z "},"¯":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 174 1215 l 174 1389 l 1042 1389 l 1042 1215 l 174 1215 z "},"˛":{"ha":1389,"x_min":347,"x_max":868,"o":"m 694 347 l 521 347 l 521 521 l 694 521 l 694 347 m 521 347 l 521 174 l 347 174 l 347 347 l 521 347 m 868 174 l 868 0 l 521 0 l 521 174 l 868 174 z "},"˚":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 347 868 l 347 1042 l 174 1042 l 174 1215 l 347 1215 l 347 1389 l 868 1389 l 868 1215 l 1042 1215 l 1042 1042 l 868 1042 l 868 868 l 347 868 m 521 1042 l 694 1042 l 694 1215 l 521 1215 l 521 1042 z "},"˜":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 694 1215 l 868 1215 l 868 1042 l 521 1042 l 521 1215 l 347 1215 l 347 1389 l 694 1389 l 694 1215 m 1042 1389 l 1042 1215 l 868 1215 l 868 1389 l 1042 1389 m 174 1215 l 347 1215 l 347 1042 l 174 1042 l 174 1215 z "},"΄":{"ha":1389,"x_min":521,"x_max":868,"o":"m 868 1389 l 868 1215 l 694 1215 l 694 1389 l 868 1389 m 521 1215 l 694 1215 l 694 1042 l 521 1042 l 521 1215 z "},"΅":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 1389 l 347 1389 l 347 1215 l 174 1215 l 174 1389 m 694 1389 l 868 1389 l 868 1215 l 694 1215 l 694 1389 m 1215 1389 l 1215 1215 l 1042 1215 l 1042 1389 l 1215 1389 m 521 1215 l 694 1215 l 694 1042 l 521 1042 l 521 1215 z "},"":{"ha":1389,"x_min":174,"x_max":1215,"o":"m 174 174 l 174 1389 l 1215 1389 l 1215 174 l 174 174 m 521 694 l 1042 694 l 1042 1215 l 347 1215 l 347 1042 l 868 1042 l 868 868 l 521 868 l 521 694 m 521 347 l 694 347 l 694 521 l 521 521 l 521 347 z "},"":{"ha":1389,"x_min":174,"x_max":1042,"o":"m 174 174 l 174 347 l 521 347 l 521 521 l 1042 521 l 1042 174 l 174 174 z "}},"familyName":"Press Start 2P","ascender":1389,"descender":0,"underlinePosition":-104,"underlineThickness":69,"boundingBox":{"yMin":-519,"xMin":-1125,"yMax":1389,"xMax":1389},"resolution":1000,"original_font_information":{"format":0,"copyright":"Copyright 2012 The Press Start 2P Project Authors (cody@zone38.net), with Reserved Font Name \"Press Start 2P\"","fontFamily":"Press Start 2P","fontSubfamily":"Regular","uniqueID":"3.000;CYRE;PressStart2P-Regular","fullName":"Press Start 2P Regular","version":"Version 3.000","postScriptName":"PressStart2P-Regular","manufacturer":"CodeMan38","designer":"CodeMan38","manufacturerURL":"http://www.zone38.net/","designerURL":"http://www.zone38.net/","licence":"This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL","licenceURL":"http://scripts.sil.org/OFL"},"cssFontWeight":"normal","cssFontStyle":"normal"} \ No newline at end of file diff --git a/README.md b/README.md index fac1994..a5e93fe 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,38 @@ # XO-Game-Three.js -X and O game implemented in java script using three.js + +## Introduction +Do you remember playing tic-tac-toe (X and O) when you were bored growing up? Well, imagine taking that classic game to a whole new level of fun with Three.js! This project implements the X and O game in JavaScript using Three.js, adding a 3D experience, physics, and even some music. Get ready to enjoy a modern twist on a timeless game! + +## Features +- X and O game implemented in JavaScript. +- Built using Three.js for a 3D experience. +- Incorporates physics for realistic interactions. +- Includes background music for added enjoyment. + +## How to Play +1. Open the game in your web browser. +2. Click on a square to place your X or O. +3. Try to get three of your symbols in a row, either horizontally, vertically, or diagonally, before your opponent does. +4. Enjoy the immersive 3D experience and lively background music as you play! + +## Technologies Used +- JavaScript +- Three.js +- HTML/CSS +- Web Audio API (for music) + +## Installation +To run the game locally: +1. Clone this repository to your local machine. +2. Open the `index.html` file in your web browser. +3. Start playing and have fun! + +## Credits +This project was created by [Your Name] as a fun way to explore game development with Three.js. + +Special thanks to: +- The creators of Three.js for providing an amazing library for 3D graphics in the browser. +- [Name of music artist] for the awesome background music used in the game. + +## License +This project is licensed under the [MIT License](LICENSE). diff --git a/Regular.json b/Regular.json new file mode 100644 index 0000000..3c0a79f --- /dev/null +++ b/Regular.json @@ -0,0 +1,136 @@ +[{ + "version": "1.0", + "image": { + "name": "/home/videosdownloader/public_html/image/public/uploadt/PressStart2P-Regular.ttf", + "baseName": "PressStart2P-Regular.ttf", + "format": "TTF", + "formatDescription": "TTF", + "class": "DirectClass", + "geometry": { + "width": 800, + "height": 480, + "x": 0, + "y": 0 + }, + "units": "Undefined", + "type": "GrayscaleAlpha", + "baseType": "Undefined", + "endianness": "Undefined", + "colorspace": "sRGB", + "depth": 16, + "baseDepth": 16, + "channelDepth": { + "alpha": 1, + "red": 16, + "green": 16, + "blue": 1 + }, + "pixels": 1536000, + "imageStatistics": { + "Overall": { + "min": 0, + "max": 65535, + "mean": 56575.9, + "median": 65535, + "standardDeviation": 18611.1, + "kurtosis": 2.53508, + "skewness": -2.11278, + "entropy": 0.121392 + } + }, + "channelStatistics": { + "alpha": { + "min": 65535, + "max": 65535, + "mean": 65535, + "median": 65535, + "standardDeviation": 0, + "kurtosis": 1.6384e+52, + "skewness": 9.375e+35, + "entropy": 0 + }, + "red": { + "min": 0, + "max": 65535, + "mean": 53589.6, + "median": 65535, + "standardDeviation": 24814.8, + "kurtosis": 0.762098, + "skewness": -1.64391, + "entropy": 0.161856 + }, + "green": { + "min": 0, + "max": 65535, + "mean": 53589.6, + "median": 65535, + "standardDeviation": 24814.8, + "kurtosis": 0.762098, + "skewness": -1.64391, + "entropy": 0.161856 + }, + "blue": { + "min": 0, + "max": 65535, + "mean": 53589.6, + "median": 65535, + "standardDeviation": 24814.8, + "kurtosis": 0.762098, + "skewness": -1.64391, + "entropy": 0.161856 + } + }, + "renderingIntent": "Perceptual", + "gamma": 0.454545, + "chromaticity": { + "redPrimary": { + "x": 0.64, + "y": 0.33 + }, + "greenPrimary": { + "x": 0.3, + "y": 0.6 + }, + "bluePrimary": { + "x": 0.15, + "y": 0.06 + }, + "whitePrimary": { + "x": 0.3127, + "y": 0.329 + } + }, + "matteColor": "#BDBDBD", + "backgroundColor": "#FFFFFF", + "borderColor": "#DFDFDF", + "transparentColor": "#00000000", + "interlace": "None", + "intensity": "Undefined", + "compose": "Over", + "pageGeometry": { + "width": 800, + "height": 480, + "x": 0, + "y": 0 + }, + "dispose": "Undefined", + "iterations": 0, + "compression": "Undefined", + "orientation": "Undefined", + "properties": { + "date:create": "2023-12-27T23:19:31+00:00", + "date:modify": "2023-12-27T23:19:31+00:00", + "signature": "19e30915bca39a199bfbcff3d13a217da331345064522dfa213a6fddac4b025c" + }, + "artifacts": { + "mvg:vector-graphics": "push graphic-context\n viewbox 0 0 800 480\n font-size 18\n text 10,20 'abcdefghijklmnopqrstuvwxyz\nABCDEFGHIJKLMNOPQRSTUVWXYZ\n0123456789.:,;(*!?}^)#${%^&-+@\n'\n font-size 18\n text 10,144 '12'\n font-size 12\n text 50,144 'That which does not destroy me, only makes me stronger.'\n font-size 18\n text 10,174 '18'\n font-size 18\n text 50,174 'That which does not destroy me, only makes me stronger.'\n font-size 18\n text 10,210 '24'\n font-size 24\n text 50,210 'That which does not destroy me, only makes me stronger.'\n font-size 18\n text 10,258 '36'\n font-size 36\n text 50,258 'That which does not destroy me, only makes me stronger.'\n font-size 18\n text 10,318 '48'\n font-size 48\n text 50,318 'That which does not destroy me, only makes me stronger.'\n font-size 18\n text 10,390 '60'\n font-size 60\n text 50,390 'That which does not destroy me, only makes me stronger.'\n font-size 18\n text 10,474 '72'\n font-size 72\n text 50,474 'That which does not destroy me, only makes me stronger.'\npop graphic-context" + }, + "tainted": false, + "filesize": "116008B", + "numberPixels": "384000", + "pixelsPerSecond": "2.28673MB", + "userTime": "0.180u", + "elapsedTime": "0:01.167", + "version": "ImageMagick 7.0.10-58 Q16 x86_64 2021-01-14 https://imagemagick.org" + } +}] \ No newline at end of file diff --git a/Roboto_Regular.json b/Roboto_Regular.json new file mode 100644 index 0000000..4749dd5 --- /dev/null +++ b/Roboto_Regular.json @@ -0,0 +1 @@ +{"glyphs":{"0":{"ha":783,"x_min":77,"x_max":705,"o":"m 705 376 q 622 86 705 187 q 392 -14 538 -14 q 161 87 246 -14 q 77 376 77 188 l 77 610 q 161 900 77 799 q 391 1002 245 1002 q 621 900 536 1002 q 705 610 705 799 l 705 376 m 572 639 q 525 832 572 767 q 391 897 479 897 q 256 832 302 897 q 210 639 210 767 l 210 349 q 257 156 210 221 q 392 90 304 90 q 526 155 480 90 q 572 349 572 220 l 572 639 z "},"1":{"ha":782,"x_min":126,"x_max":462,"o":"m 462 0 l 328 0 l 328 857 l 126 854 l 126 951 l 462 987 l 462 0 z "},"2":{"ha":782,"x_min":62,"x_max":720,"o":"m 720 0 l 80 0 l 80 92 l 404 451 q 521 605 490 548 q 552 722 552 662 q 509 846 552 795 q 395 897 466 897 q 244 844 292 897 q 195 696 195 791 l 67 696 l 66 701 q 151 915 62 828 q 395 1002 239 1002 q 607 924 528 1002 q 686 726 686 846 q 638 565 686 646 q 504 391 590 484 l 244 108 l 245 104 l 720 104 l 720 0 z "},"3":{"ha":782,"x_min":64,"x_max":691,"o":"m 263 555 l 380 555 q 506 600 469 555 q 543 724 543 644 q 500 852 543 808 q 376 897 458 897 q 251 851 298 897 q 204 729 204 805 l 76 729 l 75 733 q 156 923 71 845 q 376 1002 240 1002 q 595 929 513 1002 q 676 721 676 856 q 639 599 676 660 q 528 507 602 538 q 654 415 617 477 q 691 275 691 353 q 603 63 691 140 q 376 -14 514 -14 q 153 59 241 -14 q 68 256 64 132 l 70 260 l 197 260 q 245 136 197 182 q 376 90 293 90 q 509 136 461 90 q 557 273 557 182 q 515 408 557 364 q 380 451 472 451 l 263 451 l 263 555 z "},"4":{"ha":782,"x_min":37,"x_max":750,"o":"m 614 332 l 750 332 l 750 228 l 614 228 l 614 0 l 481 0 l 481 228 l 37 228 l 37 303 l 473 987 l 614 987 l 614 332 m 180 332 l 481 332 l 481 795 l 477 796 l 464 762 l 180 332 z "},"5":{"ha":782,"x_min":103,"x_max":707,"o":"m 119 446 l 176 987 l 670 987 l 670 869 l 289 869 l 256 591 q 326 630 288 614 q 414 646 364 645 q 629 557 551 648 q 707 315 707 467 q 628 76 707 166 q 395 -14 548 -14 q 186 54 270 -14 q 106 256 103 123 l 108 260 l 229 260 q 275 135 229 179 q 395 90 321 90 q 527 150 480 90 q 574 313 574 210 q 526 469 574 408 q 395 530 479 530 q 281 507 317 530 q 230 434 246 483 l 119 446 z "},"6":{"ha":782,"x_min":90,"x_max":732,"o":"m 458 1002 q 558 990 509 1002 q 641 961 608 979 l 612 859 q 543 886 579 876 q 458 897 507 897 q 287 812 352 897 q 222 591 222 727 l 222 575 q 322 634 266 613 q 442 656 378 656 q 653 564 574 656 q 732 332 732 473 q 648 82 732 179 q 425 -14 564 -14 q 184 91 279 -14 q 90 387 90 196 l 90 576 q 195 884 90 766 q 458 1002 301 1002 m 412 556 q 296 528 344 556 q 222 454 248 500 l 222 374 q 280 164 222 238 q 425 90 338 90 q 552 160 507 90 q 598 332 598 229 q 549 493 598 430 q 412 556 500 556 z "},"7":{"ha":782,"x_min":52,"x_max":720,"o":"m 720 882 q 478 505 541 669 q 388 106 416 340 l 377 0 l 243 0 l 254 106 q 365 524 283 340 q 589 882 447 707 l 52 882 l 52 987 l 720 987 l 720 882 z "},"8":{"ha":782,"x_min":69,"x_max":712,"o":"m 685 730 q 642 594 685 652 q 524 508 598 536 q 661 414 610 478 q 712 267 712 351 q 623 58 712 130 q 391 -14 534 -14 q 158 58 246 -14 q 69 267 69 130 q 119 414 69 351 q 255 508 170 478 q 139 594 181 536 q 97 730 97 652 q 177 931 97 860 q 390 1002 258 1002 q 603 931 520 1002 q 685 730 685 860 m 579 270 q 526 404 579 351 q 390 456 472 456 q 255 404 307 456 q 203 270 203 351 q 254 138 203 186 q 391 90 306 90 q 527 138 475 90 q 579 270 579 186 m 551 727 q 506 848 551 800 q 390 897 460 897 q 275 850 319 897 q 231 727 231 804 q 275 606 231 652 q 391 561 319 561 q 507 606 462 561 q 551 727 551 652 z "},"9":{"ha":782,"x_min":56,"x_max":695,"o":"m 347 90 q 503 164 444 90 q 562 384 562 238 l 562 429 q 478 356 528 380 q 368 331 429 331 q 140 419 224 331 q 56 663 56 508 q 145 907 56 812 q 362 1002 235 1002 q 606 905 517 1002 q 695 621 695 808 l 695 385 q 598 89 695 192 q 347 -14 502 -14 q 240 -4 294 -14 q 144 26 186 5 l 164 128 q 247 99 204 107 q 347 90 290 90 m 368 435 q 491 467 441 435 q 562 549 540 499 l 562 634 q 512 830 562 764 q 366 897 462 897 q 241 831 293 897 q 190 663 190 766 q 238 498 190 562 q 368 435 286 435 z "},"\r":{"ha":345,"x_min":0,"x_max":0,"o":""}," ":{"ha":345,"x_min":0,"x_max":0,"o":""},"!":{"ha":366,"x_min":116,"x_max":250,"o":"m 250 324 l 116 324 l 116 987 l 250 987 l 250 324 m 250 0 l 116 0 l 116 138 l 250 138 l 250 0 z "},"\"":{"ha":453,"x_min":54,"x_max":398,"o":"m 189 875 l 120 705 l 54 705 l 55 868 l 55 1058 l 189 1058 l 189 875 m 398 875 l 330 705 l 264 705 l 264 873 l 264 1058 l 398 1058 l 398 875 z "},"#":{"ha":865,"x_min":47,"x_max":804,"o":"m 483 278 l 310 278 l 256 0 l 153 0 l 208 278 l 47 278 l 47 373 l 227 373 l 273 609 l 99 609 l 99 705 l 292 705 l 347 987 l 450 987 l 394 705 l 567 705 l 623 987 l 725 987 l 669 705 l 804 705 l 804 609 l 651 609 l 605 373 l 753 373 l 753 278 l 586 278 l 532 0 l 429 0 l 483 278 m 329 373 l 502 373 l 548 609 l 375 609 l 329 373 z "},"$":{"ha":782,"x_min":75,"x_max":709,"o":"m 575 255 q 532 359 575 315 q 389 436 488 402 q 182 547 252 477 q 113 731 113 616 q 177 913 113 843 q 353 998 241 984 l 353 1148 l 460 1148 l 460 998 q 637 900 574 981 q 700 683 700 819 l 567 683 q 524 832 567 775 q 406 889 481 889 q 286 847 326 889 q 246 733 246 806 q 287 627 246 667 q 435 549 328 586 q 642 438 574 505 q 709 256 709 371 q 639 71 709 140 q 447 -11 569 2 l 447 -141 l 340 -141 l 340 -12 q 149 74 224 1 q 77 288 75 146 l 79 291 l 208 291 q 260 142 208 186 q 389 98 313 98 q 526 139 477 98 q 575 255 575 181 z "},"%":{"ha":1016,"x_min":71,"x_max":957,"o":"m 71 798 q 126 943 71 884 q 275 1002 182 1002 q 423 943 368 1002 q 479 798 479 884 l 479 745 q 424 601 479 659 q 276 543 368 543 q 126 601 182 543 q 71 745 71 659 l 71 798 m 170 745 q 197 660 170 695 q 276 625 224 625 q 353 660 326 625 q 380 745 380 694 l 380 798 q 352 883 380 848 q 275 919 325 919 q 197 883 224 919 q 170 798 170 848 l 170 745 m 549 242 q 604 387 549 328 q 753 446 660 446 q 901 387 845 446 q 957 242 957 328 l 957 189 q 901 44 957 102 q 754 -14 846 -14 q 605 44 661 -14 q 549 189 549 102 l 549 242 m 648 189 q 675 103 648 138 q 754 68 703 68 q 831 103 804 68 q 858 189 858 138 l 858 242 q 830 328 858 292 q 753 363 802 363 q 675 328 703 363 q 648 242 648 292 l 648 189 m 311 75 l 237 120 l 719 892 l 793 846 l 311 75 z "},"&":{"ha":865,"x_min":43,"x_max":836,"o":"m 43 266 q 91 411 43 349 q 234 535 139 473 q 155 655 181 602 q 130 763 130 707 q 196 940 130 878 q 378 1002 262 1002 q 552 940 485 1002 q 619 791 619 878 q 584 676 619 725 q 478 577 548 628 l 404 523 l 635 245 q 678 343 663 290 q 694 456 694 397 l 813 456 q 787 291 813 367 q 710 155 760 215 l 836 3 l 834 0 l 679 0 l 621 69 q 501 7 567 28 q 365 -14 435 -14 q 131 64 218 -14 q 43 266 43 142 m 365 90 q 461 107 414 90 q 551 155 509 123 l 306 450 l 279 430 q 197 342 217 384 q 177 266 177 300 q 225 140 177 189 q 365 90 273 90 m 263 764 q 281 689 263 728 q 336 604 300 650 l 430 669 q 483 725 469 694 q 496 791 496 755 q 464 865 496 833 q 378 897 431 897 q 293 858 323 897 q 263 764 263 820 z "},"'":{"ha":243,"x_min":54,"x_max":189,"o":"m 189 907 l 120 715 l 54 715 l 55 895 l 55 1058 l 189 1058 l 189 907 z "},"(":{"ha":460,"x_min":90,"x_max":454,"o":"m 90 401 q 197 857 90 668 q 424 1109 305 1046 l 428 1109 l 454 1030 q 292 798 361 958 q 223 402 223 637 l 223 393 q 292 -2 223 158 q 454 -241 360 -162 l 428 -314 l 424 -314 q 197 -62 305 -251 q 90 395 90 127 l 90 401 z "},")":{"ha":466,"x_min":4,"x_max":368,"o":"m 368 395 q 260 -62 368 127 q 34 -314 152 -251 l 30 -314 l 4 -241 q 165 -6 96 -170 q 235 393 235 157 l 235 402 q 163 798 235 634 q 4 1036 92 962 l 30 1109 l 34 1109 q 260 857 152 1046 q 368 401 368 668 l 368 395 z "},"*":{"ha":600,"x_min":19,"x_max":580,"o":"m 220 666 l 19 726 l 52 831 l 253 755 l 246 987 l 355 987 l 349 751 l 547 826 l 580 720 l 375 660 l 506 477 l 417 412 l 294 606 l 175 417 l 85 480 l 220 666 z "},"+":{"ha":788,"x_min":53,"x_max":730,"o":"m 459 531 l 730 531 l 730 410 l 459 410 l 459 99 l 326 99 l 326 410 l 53 410 l 53 531 l 326 531 l 326 818 l 459 818 l 459 531 z "},",":{"ha":274,"x_min":33,"x_max":214,"o":"m 214 33 l 112 -175 l 33 -175 l 80 39 l 80 150 l 214 150 l 214 33 z "},"-":{"ha":380,"x_min":24,"x_max":356,"o":"m 356 365 l 24 365 l 24 469 l 356 469 l 356 365 z "},".":{"ha":372,"x_min":109,"x_max":243,"o":"m 243 0 l 109 0 l 109 137 l 243 137 l 243 0 z "},"/":{"ha":576,"x_min":11,"x_max":536,"o":"m 125 -85 l 11 -85 l 423 987 l 536 987 l 125 -85 z "},":":{"ha":351,"x_min":109,"x_max":243,"o":"m 243 0 l 109 0 l 109 137 l 243 137 l 243 0 m 243 594 l 109 594 l 109 731 l 243 731 l 243 594 z "},";":{"ha":356,"x_min":67,"x_max":248,"o":"m 243 594 l 110 594 l 110 731 l 243 731 l 243 594 m 248 33 l 146 -175 l 67 -175 l 115 39 l 115 150 l 248 150 l 248 33 z "},"<":{"ha":705,"x_min":48,"x_max":602,"o":"m 222 379 l 165 367 l 165 363 l 222 350 l 602 195 l 602 59 l 48 316 l 48 417 l 602 673 l 602 537 l 222 379 z "},"=":{"ha":782,"x_min":103,"x_max":669,"o":"m 669 558 l 103 558 l 103 669 l 669 669 l 669 558 m 669 276 l 103 276 l 103 387 l 669 387 l 669 276 z "},">":{"ha":727,"x_min":92,"x_max":673,"o":"m 92 541 l 92 673 l 673 417 l 673 316 l 92 59 l 92 192 l 498 353 l 555 365 l 555 369 l 498 382 l 92 541 z "},"?":{"ha":661,"x_min":39,"x_max":601,"o":"m 241 278 q 258 414 241 376 q 343 515 274 452 q 439 637 410 594 q 467 740 467 680 q 429 850 467 812 q 319 889 391 889 q 214 856 258 889 q 171 757 171 822 l 43 757 l 41 761 q 118 936 39 870 q 319 1002 197 1002 q 527 933 453 1002 q 601 743 601 865 q 553 583 601 656 q 427 435 505 511 q 382 369 390 398 q 374 278 374 340 l 241 278 m 379 0 l 239 0 l 239 141 l 379 141 l 379 0 z "},"@":{"ha":1243,"x_min":65,"x_max":1186,"o":"m 1175 340 q 1093 91 1168 195 q 868 -14 1018 -14 q 783 14 819 -14 q 731 94 747 42 q 648 13 697 39 q 534 -14 600 -14 q 403 67 450 -14 q 368 282 356 149 q 461 564 384 458 q 651 670 539 670 q 766 652 722 670 q 860 598 809 635 l 857 595 l 861 595 l 827 199 q 841 96 821 124 q 897 68 862 68 q 1030 145 980 68 q 1086 340 1080 222 q 988 744 1097 600 q 652 889 880 889 q 316 732 443 889 q 178 324 189 576 q 280 -79 166 69 q 607 -227 394 -227 q 728 -213 667 -227 q 831 -174 789 -198 l 857 -247 q 742 -291 812 -275 q 604 -307 671 -307 q 206 -138 347 -307 q 77 324 65 31 q 246 791 90 611 q 654 970 402 970 q 1049 801 911 970 q 1175 340 1186 631 m 488 282 q 503 136 481 186 q 575 85 525 85 q 654 102 618 85 q 720 161 690 119 q 720 179 720 170 q 722 199 720 188 l 753 564 q 716 576 736 572 q 676 581 697 581 q 547 507 591 581 q 488 282 502 433 z "},"A":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 z "},"B":{"ha":888,"x_min":122,"x_max":813,"o":"m 122 0 l 122 987 l 444 987 q 686 921 599 987 q 774 720 774 854 q 732 603 774 654 q 621 526 690 551 q 762 438 711 507 q 813 279 813 370 q 725 72 813 143 q 487 0 637 0 l 122 0 m 256 463 l 256 104 l 487 104 q 629 150 578 104 q 680 277 680 195 q 637 414 680 364 q 507 463 595 463 l 256 463 m 256 568 l 472 568 q 593 609 547 568 q 640 723 640 650 q 590 843 640 803 q 444 882 539 882 l 256 882 l 256 568 z "},"C":{"ha":880,"x_min":80,"x_max":824,"o":"m 820 316 l 821 312 q 724 79 824 173 q 458 -14 623 -14 q 185 104 291 -14 q 80 406 80 223 l 80 581 q 185 883 80 764 q 458 1002 291 1002 q 725 912 626 1002 q 821 676 824 823 l 820 672 l 692 672 q 631 836 692 776 q 458 897 570 897 q 280 806 347 897 q 214 583 214 716 l 214 406 q 280 180 214 271 q 458 90 347 90 q 631 150 570 90 q 692 316 692 210 l 820 316 z "},"D":{"ha":915,"x_min":122,"x_max":854,"o":"m 122 0 l 122 987 l 425 987 q 736 868 619 987 q 854 561 854 749 l 854 426 q 736 118 854 237 q 425 0 619 0 l 122 0 m 256 882 l 256 104 l 425 104 q 641 195 562 104 q 720 426 720 285 l 720 562 q 641 792 720 702 q 425 882 562 882 l 256 882 z "},"E":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 z "},"F":{"ha":809,"x_min":122,"x_max":775,"o":"m 706 437 l 256 437 l 256 0 l 122 0 l 122 987 l 775 987 l 775 882 l 256 882 l 256 542 l 706 542 l 706 437 z "},"G":{"ha":947,"x_min":81,"x_max":838,"o":"m 838 131 q 715 31 802 77 q 490 -14 628 -14 q 197 99 313 -14 q 81 392 81 212 l 81 595 q 189 888 81 775 q 467 1002 297 1002 q 734 918 637 1002 q 833 703 831 835 l 831 699 l 704 699 q 638 841 698 785 q 467 897 579 897 q 285 812 354 897 q 216 597 216 727 l 216 392 q 293 175 216 260 q 490 90 370 90 q 627 113 574 90 q 704 163 681 135 l 704 388 l 488 388 l 488 493 l 838 493 l 838 131 z "},"H":{"ha":991,"x_min":122,"x_max":869,"o":"m 869 0 l 735 0 l 735 436 l 256 436 l 256 0 l 122 0 l 122 987 l 256 987 l 256 541 l 735 541 l 735 987 l 869 987 l 869 0 z "},"I":{"ha":393,"x_min":129,"x_max":263,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 z "},"J":{"ha":766,"x_min":41,"x_max":653,"o":"m 519 987 l 653 987 l 653 273 q 569 63 653 141 q 352 -14 486 -14 q 125 58 210 -14 q 45 268 41 130 l 46 272 l 174 272 q 221 135 174 180 q 352 90 267 90 q 473 140 426 90 q 519 273 519 190 l 519 987 z "},"K":{"ha":893,"x_min":122,"x_max":890,"o":"m 371 446 l 256 446 l 256 0 l 122 0 l 122 987 l 256 987 l 256 551 l 359 551 l 712 987 l 860 987 l 862 984 l 479 510 l 890 3 l 888 0 l 728 0 l 371 446 z "},"L":{"ha":750,"x_min":122,"x_max":723,"o":"m 256 104 l 723 104 l 723 0 l 122 0 l 122 987 l 256 987 l 256 104 z "},"M":{"ha":1220,"x_min":122,"x_max":1097,"o":"m 293 987 l 608 185 l 612 185 l 926 987 l 1097 987 l 1097 0 l 964 0 l 964 391 l 977 792 l 974 793 l 654 0 l 565 0 l 246 791 l 243 790 l 256 391 l 256 0 l 122 0 l 122 987 l 293 987 z "},"N":{"ha":991,"x_min":122,"x_max":869,"o":"m 869 0 l 735 0 l 260 764 l 256 762 l 256 0 l 122 0 l 122 987 l 256 987 l 731 225 l 735 227 l 735 987 l 869 987 l 869 0 z "},"O":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 z "},"P":{"ha":890,"x_min":122,"x_max":833,"o":"m 256 396 l 256 0 l 122 0 l 122 987 l 500 987 q 745 906 658 987 q 833 692 833 825 q 745 476 833 557 q 500 396 658 396 l 256 396 m 256 500 l 500 500 q 650 554 600 500 q 699 690 699 608 q 649 827 699 772 q 500 882 600 882 l 256 882 l 256 500 z "},"Q":{"ha":947,"x_min":77,"x_max":908,"o":"m 869 406 q 836 227 869 309 q 741 88 802 145 l 908 -70 l 817 -157 l 629 17 q 550 -6 591 1 q 466 -14 509 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 z "},"R":{"ha":920,"x_min":122,"x_max":855,"o":"m 256 428 l 256 0 l 122 0 l 122 987 l 479 987 q 727 915 642 987 q 812 706 812 843 q 773 574 812 630 q 657 484 733 517 q 774 398 739 458 q 810 252 810 339 l 810 159 q 820 76 810 113 q 855 16 830 39 l 855 0 l 718 0 q 684 68 691 23 q 676 160 676 113 l 676 250 q 629 379 676 330 q 504 428 583 428 l 256 428 m 256 533 l 466 533 q 629 576 579 533 q 679 707 679 619 q 630 837 679 791 q 479 882 582 882 l 256 882 l 256 533 z "},"S":{"ha":866,"x_min":66,"x_max":793,"o":"m 660 249 q 609 362 660 317 q 429 439 558 408 q 184 549 272 477 q 96 732 96 622 q 191 924 96 847 q 436 1002 286 1002 q 694 913 598 1002 q 787 707 790 824 l 785 703 l 658 703 q 601 843 658 789 q 436 897 543 897 q 283 851 336 897 q 230 734 230 806 q 288 626 230 669 q 475 551 345 583 q 712 437 631 512 q 793 250 793 361 q 696 58 793 131 q 441 -14 598 -14 q 179 66 293 -14 q 69 280 66 146 l 71 284 l 198 284 q 268 140 198 189 q 441 90 338 90 q 601 133 542 90 q 660 249 660 176 z "},"T":{"ha":814,"x_min":23,"x_max":791,"o":"m 791 882 l 473 882 l 473 0 l 340 0 l 340 882 l 23 882 l 23 987 l 791 987 l 791 882 z "},"U":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 z "},"V":{"ha":878,"x_min":15,"x_max":863,"o":"m 415 245 l 437 168 l 441 168 l 464 245 l 719 987 l 863 987 l 496 0 l 382 0 l 15 987 l 160 987 l 415 245 z "},"W":{"ha":1227,"x_min":37,"x_max":1182,"o":"m 320 342 l 338 218 l 342 218 l 369 342 l 550 987 l 668 987 l 850 342 l 878 215 l 882 215 l 901 342 l 1048 987 l 1182 987 l 944 0 l 825 0 l 630 685 l 612 774 l 608 774 l 591 685 l 393 0 l 274 0 l 37 987 l 170 987 l 320 342 z "},"X":{"ha":878,"x_min":45,"x_max":840,"o":"m 441 602 l 671 987 l 833 987 l 519 498 l 840 0 l 680 0 l 444 392 l 206 0 l 45 0 l 365 498 l 52 987 l 212 987 l 441 602 z "},"Y":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 z "},"Z":{"ha":831,"x_min":66,"x_max":768,"o":"m 216 104 l 768 104 l 768 0 l 66 0 l 66 99 l 593 882 l 73 882 l 73 987 l 746 987 l 746 892 l 216 104 z "},"[":{"ha":374,"x_min":97,"x_max":358,"o":"m 358 1023 l 231 1023 l 231 -106 l 358 -106 l 358 -212 l 97 -212 l 97 1128 l 358 1128 l 358 1023 z "},"\\":{"ha":574,"x_min":26,"x_max":565,"o":"m 26 987 l 153 987 l 565 -85 l 439 -85 l 26 987 z "},"]":{"ha":374,"x_min":7,"x_max":269,"o":"m 7 1128 l 269 1128 l 269 -212 l 7 -212 l 7 -106 l 136 -106 l 136 1023 l 7 1023 l 7 1128 z "},"^":{"ha":581,"x_min":41,"x_max":537,"o":"m 165 494 l 41 494 l 244 987 l 335 987 l 537 494 l 414 494 l 302 779 l 291 826 l 287 826 l 276 779 l 165 494 z "},"_":{"ha":631,"x_min":3,"x_max":629,"o":"m 629 -104 l 3 -104 l 3 0 l 629 0 l 629 -104 z "},"`":{"ha":435,"x_min":56,"x_max":332,"o":"m 332 821 l 225 821 l 56 998 l 58 1002 l 214 1002 l 332 821 z "},"a":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 z "},"b":{"ha":789,"x_min":97,"x_max":724,"o":"m 724 339 q 647 83 724 180 q 437 -14 571 -14 q 311 14 365 -14 q 222 97 258 42 l 206 0 l 97 0 l 97 1058 l 231 1058 l 231 647 q 316 722 265 696 q 436 747 368 747 q 648 639 572 747 q 724 353 724 530 l 724 339 m 590 353 q 544 559 590 479 q 402 639 497 639 q 298 609 340 639 q 231 528 256 578 l 231 210 q 298 125 256 155 q 404 94 340 94 q 544 161 498 94 q 590 339 590 229 l 590 353 z "},"c":{"ha":737,"x_min":66,"x_max":688,"o":"m 395 90 q 512 131 462 90 q 563 232 563 172 l 683 232 l 684 228 q 600 59 688 133 q 395 -14 512 -14 q 151 90 235 -14 q 66 353 66 195 l 66 381 q 151 643 66 538 q 395 747 236 747 q 606 671 524 747 q 685 485 688 595 l 684 481 l 563 481 q 515 595 563 548 q 395 642 468 642 q 245 567 290 642 q 200 381 200 491 l 200 353 q 245 165 200 240 q 395 90 290 90 z "},"d":{"ha":789,"x_min":66,"x_max":687,"o":"m 66 353 q 142 639 66 530 q 354 747 218 747 q 468 724 418 747 q 553 654 518 700 l 553 1058 l 687 1058 l 687 0 l 578 0 l 562 90 q 474 12 526 39 q 353 -14 422 -14 q 142 83 218 -14 q 66 339 66 180 l 66 353 m 200 339 q 245 161 200 228 q 387 94 291 94 q 487 121 446 94 q 553 197 528 149 l 553 540 q 487 612 528 585 q 388 639 446 639 q 246 559 292 639 q 200 353 200 480 l 200 339 z "},"e":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 z "},"f":{"ha":479,"x_min":38,"x_max":484,"o":"m 153 0 l 153 635 l 38 635 l 38 734 l 153 734 l 153 827 q 214 1008 153 944 q 385 1072 275 1072 q 432 1068 408 1072 q 484 1058 455 1065 l 467 956 q 438 961 455 959 q 401 963 420 963 q 315 928 343 963 q 286 827 286 893 l 286 734 l 439 734 l 439 635 l 286 635 l 286 0 l 153 0 z "},"g":{"ha":789,"x_min":68,"x_max":692,"o":"m 68 353 q 145 639 68 530 q 359 747 222 747 q 481 719 429 747 q 570 638 534 691 l 586 734 l 692 734 l 692 -4 q 610 -221 692 -145 q 374 -296 528 -296 q 259 -282 321 -296 q 151 -242 198 -267 l 185 -138 q 272 -171 221 -159 q 372 -184 323 -184 q 514 -139 470 -184 q 559 -4 559 -95 l 559 79 q 473 9 523 33 q 357 -14 422 -14 q 145 83 222 -14 q 68 339 68 181 l 68 353 m 201 339 q 248 161 201 229 q 391 94 295 94 q 492 122 451 94 q 559 199 532 149 l 559 537 q 492 611 533 584 q 392 639 450 639 q 249 559 296 639 q 201 353 201 479 l 201 339 z "},"h":{"ha":789,"x_min":97,"x_max":694,"o":"m 231 635 q 324 718 269 688 q 446 747 379 747 q 629 677 564 747 q 694 460 694 606 l 694 0 l 561 0 l 561 461 q 522 595 561 552 q 406 639 483 639 q 305 613 350 639 q 231 542 260 587 l 231 0 l 97 0 l 97 1058 l 231 1058 l 231 635 z "},"i":{"ha":350,"x_min":108,"x_max":241,"o":"m 241 0 l 108 0 l 108 734 l 241 734 l 241 0 m 241 922 l 108 922 l 108 1058 l 241 1058 l 241 922 z "},"j":{"ha":359,"x_min":-45,"x_max":251,"o":"m 251 734 l 251 -60 q 193 -235 251 -174 q 31 -296 134 -296 q -8 -293 9 -296 q -45 -284 -25 -290 l -35 -179 q -8 -185 -26 -182 q 21 -187 9 -187 q 91 -157 65 -187 q 117 -60 117 -127 l 117 734 l 251 734 m 247 924 l 113 924 l 113 1058 l 247 1058 l 247 924 z "},"k":{"ha":712,"x_min":98,"x_max":713,"o":"m 318 338 l 231 338 l 231 0 l 98 0 l 98 1058 l 231 1058 l 231 445 l 317 445 l 517 734 l 677 734 l 427 400 l 713 0 l 556 0 l 318 338 z "},"l":{"ha":350,"x_min":108,"x_max":241,"o":"m 241 0 l 108 0 l 108 1058 l 241 1058 l 241 0 z "},"m":{"ha":1214,"x_min":97,"x_max":1117,"o":"m 216 734 l 226 637 q 317 719 262 690 q 446 747 372 747 q 571 713 519 747 q 650 612 624 680 q 742 711 685 674 q 875 747 799 747 q 1052 670 987 747 q 1117 439 1117 593 l 1117 0 l 983 0 l 983 440 q 946 594 983 549 q 835 639 909 639 q 724 591 766 639 q 674 471 682 544 l 674 466 l 674 0 l 540 0 l 540 440 q 502 591 540 543 q 391 639 463 639 q 291 614 330 639 q 231 543 252 589 l 231 0 l 97 0 l 97 734 l 216 734 z "},"n":{"ha":789,"x_min":97,"x_max":692,"o":"m 216 734 l 226 625 q 318 715 262 683 q 444 747 373 747 q 627 678 562 747 q 692 463 692 608 l 692 0 l 559 0 l 559 460 q 520 598 559 557 q 404 639 482 639 q 301 611 346 639 q 231 535 257 583 l 231 0 l 97 0 l 97 734 l 216 734 z "},"o":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 z "},"p":{"ha":789,"x_min":97,"x_max":722,"o":"m 722 339 q 646 83 722 180 q 437 -14 570 -14 q 318 8 369 -14 q 231 77 267 31 l 231 -282 l 97 -282 l 97 734 l 199 734 l 220 639 q 310 720 256 692 q 435 747 363 747 q 647 639 571 747 q 722 353 722 531 l 722 339 m 589 353 q 539 558 589 478 q 395 639 490 639 q 296 613 337 639 q 231 541 256 587 l 231 186 q 296 116 256 141 q 396 90 337 90 q 540 160 491 90 q 589 339 589 229 l 589 353 z "},"q":{"ha":789,"x_min":66,"x_max":680,"o":"m 66 353 q 142 639 66 530 q 354 747 218 747 q 472 722 421 747 q 558 648 523 696 l 578 734 l 680 734 l 680 -282 l 546 -282 l 546 69 q 463 7 511 28 q 353 -14 414 -14 q 142 83 218 -14 q 66 339 66 180 l 66 353 m 200 339 q 246 159 200 228 q 387 90 292 90 q 480 115 441 90 q 546 183 519 139 l 546 553 q 480 618 519 595 q 388 642 441 642 q 246 561 292 642 q 200 353 200 480 l 200 339 z "},"r":{"ha":476,"x_min":97,"x_max":463,"o":"m 444 616 l 376 620 q 287 595 323 620 q 231 524 250 570 l 231 0 l 97 0 l 97 734 l 216 734 l 229 627 q 306 715 260 684 q 412 747 352 747 q 440 745 427 747 q 463 740 454 743 l 444 616 z "},"s":{"ha":726,"x_min":70,"x_max":657,"o":"m 524 195 q 490 267 524 239 q 363 317 456 296 q 162 396 229 346 q 94 532 94 446 q 170 684 94 621 q 368 747 246 747 q 572 682 496 747 q 644 522 648 616 l 643 517 l 515 517 q 475 604 515 566 q 368 642 435 642 q 262 611 297 642 q 228 536 228 580 q 258 467 228 492 q 382 422 289 442 q 589 341 522 393 q 657 204 657 290 q 578 46 657 106 q 372 -14 499 -14 q 151 57 231 -14 q 74 223 70 128 l 75 227 l 203 227 q 256 123 206 156 q 372 90 305 90 q 483 119 443 90 q 524 195 524 148 z "},"t":{"ha":480,"x_min":23,"x_max":419,"o":"m 273 911 l 273 734 l 412 734 l 412 635 l 273 635 l 273 189 q 295 117 273 138 q 351 96 316 96 q 377 98 363 96 q 401 105 391 101 l 419 14 q 375 -6 404 1 q 317 -14 347 -14 q 188 35 236 -14 q 140 189 140 84 l 140 635 l 23 635 l 23 734 l 140 734 l 140 911 l 273 911 z "},"u":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 z "},"v":{"ha":699,"x_min":31,"x_max":675,"o":"m 342 216 l 353 165 l 357 165 l 370 216 l 539 734 l 675 734 l 406 0 l 304 0 l 31 734 l 168 734 l 342 216 z "},"w":{"ha":1051,"x_min":31,"x_max":1017,"o":"m 285 267 l 300 178 l 304 178 l 323 267 l 470 734 l 577 734 l 724 267 l 745 168 l 749 168 l 769 267 l 884 734 l 1017 734 l 804 0 l 696 0 l 555 447 l 524 572 l 520 571 l 491 447 l 351 0 l 243 0 l 31 734 l 163 734 l 285 267 z "},"x":{"ha":699,"x_min":31,"x_max":665,"o":"m 346 463 l 502 734 l 658 734 l 420 371 l 665 0 l 511 0 l 349 277 l 186 0 l 31 0 l 276 371 l 38 734 l 192 734 l 346 463 z "},"y":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 z "},"z":{"ha":699,"x_min":64,"x_max":647,"o":"m 223 104 l 647 104 l 647 0 l 64 0 l 64 94 l 460 628 l 68 628 l 68 734 l 624 734 l 624 643 l 223 104 z "},"{":{"ha":472,"x_min":43,"x_max":455,"o":"m 428 -247 q 240 -128 296 -210 q 184 68 184 -47 l 184 208 q 150 326 184 283 q 43 368 115 368 l 43 468 q 150 510 115 468 q 184 628 184 551 l 184 768 q 240 965 184 884 q 428 1083 296 1046 l 455 1004 q 349 919 380 980 q 318 768 318 857 l 318 628 q 289 503 318 557 q 203 418 260 448 q 289 332 260 387 q 318 208 318 277 l 318 68 q 349 -82 318 -21 q 455 -167 380 -142 l 428 -247 z "},"|":{"ha":344,"x_min":119,"x_max":226,"o":"m 226 -183 l 119 -183 l 119 987 l 226 987 l 226 -183 z "},"}":{"ha":472,"x_min":14,"x_max":427,"o":"m 14 -167 q 120 -82 88 -142 q 152 68 152 -21 l 152 208 q 182 334 152 280 q 277 418 213 389 q 182 500 213 446 q 152 628 152 554 l 152 768 q 120 919 152 857 q 14 1004 88 980 l 42 1083 q 230 965 174 1046 q 286 768 286 884 l 286 628 q 320 510 286 551 q 427 468 354 468 l 427 368 q 320 326 354 368 q 286 208 286 283 l 286 68 q 230 -128 286 -47 q 42 -247 174 -210 l 14 -167 z "},"~":{"ha":943,"x_min":87,"x_max":857,"o":"m 857 502 q 798 340 857 409 q 651 272 739 272 q 540 294 590 272 q 433 367 490 317 q 359 416 393 399 q 292 432 326 432 q 215 396 247 432 q 182 309 182 360 l 87 321 q 145 479 87 414 q 292 545 203 545 q 403 521 352 545 q 511 450 454 498 q 583 400 551 416 q 651 385 616 385 q 729 423 696 385 q 762 514 762 462 l 857 502 z "}," ":{"ha":345,"x_min":0,"x_max":0,"o":""},"¡":{"ha":344,"x_min":98,"x_max":231,"o":"m 231 -254 l 98 -254 l 98 410 l 231 410 l 231 -254 m 231 594 l 98 594 l 98 734 l 231 734 l 231 594 z "},"¢":{"ha":761,"x_min":73,"x_max":694,"o":"m 402 90 q 519 131 469 90 q 570 232 570 172 l 690 232 l 692 228 q 626 77 694 145 q 458 -9 557 8 l 458 -166 l 324 -166 l 324 -6 q 137 117 201 18 q 73 353 73 216 l 73 381 q 137 615 73 516 q 324 739 201 713 l 324 894 l 458 894 l 458 743 q 630 654 565 726 q 692 484 694 582 l 691 481 l 570 481 q 522 595 570 548 q 402 642 475 642 q 252 567 297 642 q 207 381 207 491 l 207 353 q 252 165 207 240 q 402 90 296 90 z "},"£":{"ha":810,"x_min":47,"x_max":753,"o":"m 292 417 l 296 316 q 285 200 296 255 q 255 104 275 144 l 753 104 l 753 0 l 91 0 l 91 104 l 98 104 q 146 180 130 113 q 163 316 163 246 l 159 417 l 47 417 l 47 522 l 155 522 l 148 705 q 224 923 148 844 q 427 1002 300 1002 q 637 931 563 1002 q 709 743 712 860 l 708 739 l 579 739 q 536 858 579 819 q 427 897 494 897 q 321 846 360 897 q 281 705 281 795 l 288 522 l 572 522 l 572 417 l 292 417 z "},"¤":{"ha":987,"x_min":71,"x_max":929,"o":"m 744 73 q 629 9 692 31 q 498 -14 566 -14 q 367 8 429 -14 q 253 72 304 31 l 165 -18 l 71 76 l 164 171 q 112 284 130 222 q 94 412 94 345 q 114 545 94 481 q 170 662 133 609 l 71 763 l 165 857 l 262 758 q 372 816 312 795 q 498 837 433 837 q 624 816 564 837 q 735 757 684 795 l 834 858 l 929 763 l 827 659 q 882 544 863 606 q 901 412 901 481 q 883 285 901 346 q 833 173 865 224 l 929 76 l 834 -18 l 744 73 m 218 412 q 299 195 218 285 q 498 105 381 105 q 695 195 613 105 q 777 412 777 285 q 695 628 777 538 q 498 718 613 718 q 299 628 381 718 q 218 412 218 538 z "},"¥":{"ha":843,"x_min":20,"x_max":813,"o":"m 417 538 l 661 987 l 813 987 l 530 500 l 741 500 l 741 395 l 481 395 l 481 304 l 741 304 l 741 199 l 481 199 l 481 0 l 348 0 l 348 199 l 94 199 l 94 304 l 348 304 l 348 395 l 94 395 l 94 500 l 304 500 l 20 987 l 174 987 l 417 538 z "},"¦":{"ha":338,"x_min":98,"x_max":232,"o":"m 98 -183 l 98 354 l 232 354 l 232 -183 l 98 -183 m 232 473 l 98 473 l 98 987 l 232 987 l 232 473 z "},"§":{"ha":854,"x_min":61,"x_max":779,"o":"m 779 292 q 746 181 779 229 q 654 106 713 134 q 725 26 701 72 q 749 -87 749 -20 q 659 -270 749 -203 q 416 -336 568 -336 q 163 -266 266 -336 q 64 -47 61 -197 l 66 -43 l 193 -42 q 259 -185 193 -139 q 416 -231 324 -231 q 562 -190 509 -231 q 615 -88 615 -150 q 566 8 615 -26 q 379 85 517 42 q 140 191 217 127 q 64 374 64 254 q 96 483 64 435 q 186 559 127 531 q 117 640 140 593 q 94 753 94 687 q 185 933 94 865 q 428 1002 276 1002 q 674 926 586 1002 q 760 713 762 850 l 758 709 l 630 709 q 576 843 630 789 q 428 897 523 897 q 279 856 330 897 q 228 754 228 816 q 273 653 228 687 q 462 581 319 620 q 703 472 627 534 q 779 292 779 411 m 409 467 q 349 484 377 475 q 296 503 321 492 q 222 456 247 490 q 197 375 197 422 q 243 272 197 307 q 432 197 290 237 q 495 178 470 186 q 543 163 520 171 q 618 210 591 176 q 646 290 646 243 q 596 388 646 352 q 409 467 546 425 z "},"¨":{"ha":692,"x_min":115,"x_max":583,"o":"m 583 852 l 434 852 l 434 987 l 583 987 l 583 852 m 264 852 l 115 852 l 115 987 l 264 987 l 264 852 z "},"©":{"ha":1088,"x_min":60,"x_max":1022,"o":"m 753 404 l 755 400 q 698 244 758 298 q 532 191 638 191 q 359 263 423 191 q 296 454 296 336 l 296 534 q 359 724 296 652 q 532 797 423 797 q 698 743 638 797 q 755 589 758 690 l 754 585 l 655 585 q 624 679 655 649 q 532 708 593 708 q 433 660 468 708 q 399 535 399 612 l 399 454 q 433 327 399 374 q 532 279 468 279 q 624 309 593 279 q 654 404 654 338 l 753 404 m 142 494 q 258 191 142 315 q 541 68 374 68 q 824 191 707 68 q 941 494 941 315 q 824 795 941 673 q 541 918 707 918 q 258 795 374 918 q 142 494 142 673 m 60 494 q 200 854 60 708 q 541 1001 340 1001 q 882 854 741 1001 q 1022 494 1022 708 q 881 133 1022 280 q 541 -14 741 -14 q 200 133 340 -14 q 60 494 60 280 z "},"ª":{"ha":622,"x_min":81,"x_max":534,"o":"m 416 479 q 407 509 410 493 q 401 543 404 526 q 341 490 379 511 q 250 469 302 469 q 125 511 170 469 q 81 624 81 552 q 139 739 81 699 q 305 780 196 780 l 399 780 l 399 815 q 379 881 399 858 q 319 904 359 904 q 249 886 274 904 q 224 834 224 867 l 115 843 l 114 847 q 167 958 110 913 q 319 1002 224 1002 q 463 954 410 1002 q 516 814 516 905 l 516 602 q 520 538 516 568 q 534 479 524 508 l 416 479 m 279 564 q 350 584 313 564 q 399 628 387 604 l 399 703 l 306 703 q 227 680 255 703 q 199 627 199 658 q 218 580 199 596 q 279 564 238 564 z "},"«":{"ha":655,"x_min":66,"x_max":593,"o":"m 194 350 l 367 80 l 267 80 l 66 344 l 66 357 l 267 621 l 367 621 l 194 350 m 420 350 l 593 80 l 493 80 l 293 344 l 293 357 l 493 621 l 593 621 l 420 350 z "},"¬":{"ha":771,"x_min":86,"x_max":652,"o":"m 652 254 l 518 254 l 518 432 l 86 432 l 86 544 l 652 544 l 652 254 z "},"­":{"ha":380,"x_min":24,"x_max":356,"o":"m 356 365 l 24 365 l 24 469 l 356 469 l 356 365 z "},"®":{"ha":1088,"x_min":60,"x_max":1022,"o":"m 60 494 q 200 854 60 708 q 541 1001 340 1001 q 882 854 741 1001 q 1022 494 1022 708 q 881 133 1022 280 q 541 -14 741 -14 q 200 133 340 -14 q 60 494 60 280 m 142 494 q 258 191 142 314 q 541 68 374 68 q 823 191 707 68 q 940 494 940 315 q 824 796 940 673 q 541 918 707 918 q 258 796 374 918 q 142 494 142 673 m 443 444 l 443 214 l 342 214 l 342 791 l 532 791 q 693 746 635 791 q 752 616 752 702 q 730 543 752 574 q 665 490 707 511 q 729 436 709 472 q 749 349 749 400 l 749 311 q 752 261 749 283 q 761 225 754 239 l 761 214 l 657 214 q 650 256 651 229 q 648 312 648 283 l 648 349 q 626 420 648 397 q 551 444 603 444 l 443 444 m 443 532 l 546 532 q 621 554 590 532 q 652 613 652 575 q 625 683 652 663 q 532 703 598 703 l 443 703 l 443 532 z "},"¯":{"ha":644,"x_min":83,"x_max":572,"o":"m 572 888 l 83 888 l 83 987 l 572 987 l 572 888 z "},"°":{"ha":517,"x_min":87,"x_max":432,"o":"m 87 825 q 138 949 87 897 q 261 1002 190 1002 q 381 949 331 1002 q 432 825 432 897 q 382 701 432 751 q 261 650 332 650 q 138 701 189 650 q 87 825 87 751 m 176 825 q 200 763 176 787 q 261 739 225 739 q 320 763 296 739 q 345 825 345 787 q 320 887 345 862 q 261 913 296 913 q 200 887 225 913 q 176 825 176 862 z "},"±":{"ha":744,"x_min":67,"x_max":688,"o":"m 446 581 l 688 581 l 688 476 l 446 476 l 446 196 l 326 196 l 326 476 l 67 476 l 67 581 l 326 581 l 326 859 l 446 859 l 446 581 m 659 3 l 92 3 l 92 108 l 659 108 l 659 3 z "},"²":{"ha":589,"x_min":77,"x_max":484,"o":"m 484 452 l 83 452 l 83 541 l 288 718 q 349 784 334 759 q 364 838 364 810 q 345 893 364 872 q 286 914 326 914 q 216 892 241 914 q 191 837 191 871 l 82 837 l 81 841 q 134 956 77 908 q 286 1003 191 1003 q 429 960 378 1003 q 481 838 481 916 q 451 745 481 783 q 342 636 420 707 l 238 545 l 239 541 l 484 541 l 484 452 z "},"³":{"ha":594,"x_min":72,"x_max":502,"o":"m 288 771 q 355 790 333 771 q 377 845 377 810 q 352 894 377 874 q 281 913 328 913 q 219 897 243 913 q 196 854 196 881 l 86 854 l 85 858 q 138 962 81 922 q 281 1002 195 1002 q 436 962 379 1002 q 493 847 493 922 q 469 779 493 810 q 403 730 445 748 q 476 682 450 715 q 502 604 502 650 q 441 486 502 528 q 281 444 380 444 q 133 484 195 444 q 76 598 72 523 l 77 602 l 187 602 q 213 552 187 571 q 281 532 238 532 q 358 552 330 532 q 387 605 387 572 q 362 666 387 647 q 288 686 337 686 l 198 686 l 198 771 l 288 771 z "},"´":{"ha":444,"x_min":89,"x_max":372,"o":"m 214 1002 l 370 1002 l 372 998 l 189 821 l 89 821 l 214 1002 z "},"µ":{"ha":789,"x_min":104,"x_max":685,"o":"m 237 734 l 237 298 q 276 134 238 178 q 381 90 313 90 q 489 115 448 90 q 551 186 530 139 l 551 734 l 685 734 l 685 0 l 565 0 l 559 73 q 486 8 529 31 q 387 -14 443 -14 q 301 -3 338 -14 q 237 32 264 8 l 237 -282 l 104 -282 l 104 734 l 237 734 z "},"¶":{"ha":682,"x_min":43,"x_max":567,"o":"m 433 0 l 433 353 l 376 353 q 131 440 218 353 q 43 670 43 528 q 131 899 43 810 q 376 987 218 987 l 567 987 l 567 0 l 433 0 z "},"·":{"ha":366,"x_min":109,"x_max":243,"o":"m 243 423 l 109 423 l 109 567 l 243 567 l 243 423 z "},"¸":{"ha":345,"x_min":81,"x_max":292,"o":"m 198 0 l 190 -35 q 263 -71 234 -43 q 292 -153 292 -98 q 239 -256 292 -218 q 85 -295 185 -295 l 81 -221 q 159 -204 130 -221 q 189 -155 189 -188 q 165 -109 189 -122 q 81 -92 140 -96 l 103 0 l 198 0 z "},"¹":{"ha":378,"x_min":64,"x_max":269,"o":"m 269 451 l 151 451 l 151 895 l 64 895 l 64 986 l 269 1002 l 269 451 z "},"º":{"ha":633,"x_min":81,"x_max":550,"o":"m 81 774 q 145 938 81 875 q 315 1002 209 1002 q 486 938 422 1002 q 550 774 550 875 l 550 695 q 487 531 550 594 q 317 469 423 469 q 145 531 210 469 q 81 695 81 594 l 81 774 m 199 695 q 229 600 199 635 q 317 564 258 564 q 403 600 373 564 q 433 695 433 636 l 433 774 q 403 868 433 831 q 315 904 372 904 q 229 868 258 904 q 199 774 199 831 l 199 695 z "},"»":{"ha":655,"x_min":75,"x_max":610,"o":"m 175 644 l 375 380 l 375 367 l 175 103 l 75 103 l 248 373 l 75 644 l 175 644 m 410 644 l 610 380 l 610 367 l 410 103 l 309 103 l 482 373 l 309 644 l 410 644 z "},"¼":{"ha":1082,"x_min":125,"x_max":1021,"o":"m 329 450 l 211 450 l 211 895 l 125 895 l 125 985 l 329 1001 l 329 450 m 304 80 l 230 125 l 712 897 l 786 852 l 304 80 m 936 191 l 1021 191 l 1021 103 l 936 103 l 936 0 l 821 0 l 821 103 l 538 103 l 532 172 l 819 543 l 936 543 l 936 191 m 656 191 l 821 191 l 821 401 l 817 402 l 808 387 l 656 191 z "},"½":{"ha":1158,"x_min":125,"x_max":1034,"o":"m 313 80 l 239 125 l 721 897 l 795 852 l 313 80 m 329 450 l 211 450 l 211 895 l 125 895 l 125 985 l 329 1001 l 329 450 m 1034 0 l 633 0 l 633 88 l 838 266 q 899 332 884 307 q 914 386 914 357 q 895 441 914 420 q 836 462 876 462 q 766 440 791 462 q 741 385 741 418 l 632 385 l 631 389 q 684 503 627 456 q 836 551 741 551 q 979 507 928 551 q 1031 385 1031 464 q 1001 293 1031 331 q 892 184 970 255 l 788 92 l 789 88 l 1034 88 l 1034 0 z "},"¾":{"ha":1208,"x_min":83,"x_max":1149,"o":"m 428 80 l 354 125 l 836 897 l 910 852 l 428 80 m 1064 191 l 1149 191 l 1149 103 l 1064 103 l 1064 0 l 949 0 l 949 103 l 666 103 l 661 172 l 947 543 l 1064 543 l 1064 191 m 784 191 l 949 191 l 949 401 l 945 402 l 936 387 l 784 191 m 298 772 q 366 791 344 772 q 388 846 388 810 q 363 895 388 875 q 292 914 338 914 q 230 898 254 914 q 207 854 207 882 l 97 854 l 96 859 q 149 963 92 922 q 292 1003 206 1003 q 447 963 390 1003 q 504 848 504 922 q 480 780 504 810 q 414 731 456 749 q 487 683 461 715 q 513 604 513 650 q 452 487 513 529 q 292 445 391 445 q 144 484 205 445 q 87 599 83 524 l 87 603 l 198 603 q 223 552 198 572 q 292 533 249 533 q 369 553 340 533 q 397 606 397 573 q 373 667 397 648 q 298 686 348 686 l 209 686 l 209 772 l 298 772 z "},"¿":{"ha":687,"x_min":77,"x_max":638,"o":"m 437 456 q 420 319 436 357 q 335 219 404 281 q 239 96 267 139 q 211 -5 211 54 q 249 -116 211 -77 q 359 -155 287 -155 q 464 -121 420 -155 q 507 -22 507 -87 l 635 -22 l 637 -26 q 559 -201 638 -136 q 359 -267 480 -267 q 151 -199 224 -267 q 77 -9 77 -131 q 125 150 77 77 q 252 299 172 222 q 296 364 288 335 q 304 456 304 393 l 437 456 m 299 734 l 439 734 l 439 593 l 299 593 l 299 734 z "},"À":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 533 1058 l 426 1058 l 256 1234 l 258 1238 l 414 1238 l 533 1058 z "},"Á":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 541 1236 l 697 1236 l 699 1232 l 515 1055 l 416 1055 l 541 1236 z "},"Â":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 658 1103 l 658 1086 l 549 1086 l 449 1186 l 350 1086 l 241 1086 l 241 1103 l 408 1264 l 490 1264 l 658 1103 z "},"Ã":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 685 1251 q 645 1143 685 1187 q 543 1099 604 1099 q 443 1130 495 1099 q 356 1162 391 1162 q 307 1140 327 1162 q 288 1086 288 1118 l 214 1104 q 254 1214 214 1167 q 356 1260 294 1260 q 451 1228 394 1260 q 543 1196 508 1196 q 591 1218 571 1196 q 612 1272 612 1240 l 685 1251 z "},"Ä":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 684 1088 l 535 1088 l 535 1224 l 684 1224 l 684 1088 m 365 1088 l 216 1088 l 216 1224 l 365 1224 l 365 1088 z "},"Å":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 310 1176 q 351 1272 310 1233 q 451 1310 392 1310 q 549 1272 509 1310 q 590 1176 590 1234 q 550 1081 590 1118 q 451 1044 509 1044 q 351 1081 392 1044 q 310 1176 310 1118 m 380 1176 q 401 1126 380 1147 q 451 1105 422 1105 q 500 1125 479 1105 q 520 1176 520 1145 q 500 1227 520 1206 q 451 1249 479 1249 q 401 1227 422 1249 q 380 1176 380 1206 z "},"Æ":{"ha":1303,"x_min":-14,"x_max":1281,"o":"m 1281 0 l 674 0 l 664 237 l 286 237 l 149 0 l -14 0 l 583 987 l 1239 987 l 1239 882 l 770 882 l 784 566 l 1184 566 l 1184 461 l 788 461 l 803 104 l 1281 104 l 1281 0 m 356 359 l 659 359 l 638 840 l 635 842 l 356 359 z "},"Ç":{"ha":880,"x_min":80,"x_max":824,"o":"m 820 316 l 821 312 q 724 79 824 173 q 458 -14 623 -14 q 185 104 291 -14 q 80 406 80 223 l 80 581 q 185 883 80 764 q 458 1002 291 1002 q 725 912 626 1002 q 821 676 824 823 l 820 672 l 692 672 q 631 836 692 776 q 458 897 570 897 q 280 806 347 897 q 214 583 214 716 l 214 406 q 280 180 214 271 q 458 90 347 90 q 631 150 570 90 q 692 316 692 210 l 820 316 m 511 -5 l 503 -41 q 576 -76 547 -48 q 606 -158 606 -104 q 552 -262 606 -223 q 399 -300 498 -300 l 394 -227 q 473 -210 443 -227 q 503 -160 503 -193 q 478 -115 503 -127 q 395 -97 454 -102 l 416 -5 l 511 -5 z "},"È":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 482 1058 l 375 1058 l 205 1234 l 208 1238 l 363 1238 l 482 1058 z "},"É":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 490 1236 l 646 1236 l 648 1232 l 465 1055 l 365 1055 l 490 1236 z "},"Ê":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 635 1103 l 635 1086 l 526 1086 l 426 1186 l 327 1086 l 218 1086 l 218 1103 l 385 1264 l 467 1264 l 635 1103 z "},"Ë":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 660 1088 l 511 1088 l 511 1224 l 660 1224 l 660 1088 m 341 1088 l 193 1088 l 193 1224 l 341 1224 l 341 1088 z "},"Ì":{"ha":393,"x_min":-23,"x_max":263,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 254 1058 l 146 1058 l -23 1234 l -21 1238 l 135 1238 l 254 1058 z "},"Í":{"ha":393,"x_min":129,"x_max":418,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 260 1236 l 416 1236 l 418 1232 l 235 1055 l 135 1055 l 260 1236 z "},"Î":{"ha":393,"x_min":-10,"x_max":406,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 406 1103 l 406 1086 l 297 1086 l 197 1186 l 98 1086 l -10 1086 l -10 1103 l 157 1264 l 238 1264 l 406 1103 z "},"Ï":{"ha":393,"x_min":-36,"x_max":431,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 431 1088 l 283 1088 l 283 1224 l 431 1224 l 431 1088 m 113 1088 l -36 1088 l -36 1224 l 113 1224 l 113 1088 z "},"Ð":{"ha":935,"x_min":28,"x_max":874,"o":"m 142 0 l 142 450 l 28 450 l 28 555 l 142 555 l 142 987 l 446 987 q 757 868 640 987 q 874 561 874 749 l 874 426 q 757 118 874 237 q 446 0 640 0 l 142 0 m 463 450 l 276 450 l 276 104 l 446 104 q 662 195 583 104 q 741 426 741 285 l 741 562 q 662 792 741 702 q 446 882 583 882 l 276 882 l 276 555 l 463 555 l 463 450 z "},"Ñ":{"ha":991,"x_min":122,"x_max":869,"o":"m 869 0 l 735 0 l 260 764 l 256 762 l 256 0 l 122 0 l 122 987 l 256 987 l 731 225 l 735 227 l 735 987 l 869 987 l 869 0 m 729 1251 q 689 1143 729 1187 q 587 1099 648 1099 q 487 1130 539 1099 q 400 1162 435 1162 q 351 1140 371 1162 q 332 1086 332 1118 l 258 1104 q 298 1214 258 1167 q 400 1260 338 1260 q 495 1228 438 1260 q 587 1196 552 1196 q 635 1218 615 1196 q 656 1272 656 1240 l 729 1251 z "},"Ò":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 530 1072 l 422 1072 l 253 1249 l 255 1253 l 411 1253 l 530 1072 z "},"Ó":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 538 1250 l 694 1250 l 695 1246 l 512 1069 l 412 1069 l 538 1250 z "},"Ô":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 682 1117 l 682 1100 l 573 1100 l 473 1200 l 374 1100 l 266 1100 l 266 1118 l 433 1278 l 514 1278 l 682 1117 z "},"Õ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 709 1265 q 668 1157 709 1201 q 567 1113 628 1113 q 467 1144 519 1113 q 380 1176 414 1176 q 331 1154 351 1176 q 311 1101 311 1132 l 238 1118 q 278 1228 238 1181 q 380 1274 318 1274 q 475 1242 418 1274 q 567 1211 532 1211 q 615 1233 595 1211 q 635 1286 635 1255 l 709 1265 z "},"Ö":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 707 1103 l 559 1103 l 559 1238 l 707 1238 l 707 1103 m 389 1103 l 240 1103 l 240 1238 l 389 1238 l 389 1103 z "},"×":{"ha":743,"x_min":60,"x_max":673,"o":"m 60 238 l 281 465 l 60 691 l 145 777 l 366 551 l 588 777 l 673 691 l 451 465 l 673 238 l 588 153 l 366 378 l 145 153 l 60 238 z "},"Ø":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 357 0 408 -14 q 262 41 306 14 l 201 -64 l 100 -64 l 194 95 q 107 232 137 152 q 77 406 77 312 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 587 984 530 1002 q 693 936 644 967 l 748 1029 l 849 1029 l 760 879 q 841 745 812 822 q 869 581 869 669 l 869 406 m 210 406 q 223 298 210 348 q 260 214 236 249 l 264 213 l 633 834 q 557 877 599 862 q 466 892 515 892 q 280 805 349 892 q 210 583 210 718 l 210 406 m 736 583 q 725 679 736 633 q 693 758 713 724 l 689 759 l 322 141 q 388 106 352 118 q 466 95 424 95 q 663 181 590 95 q 736 406 736 268 l 736 583 z "},"Ù":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 529 1058 l 422 1058 l 252 1234 l 254 1238 l 410 1238 l 529 1058 z "},"Ú":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 537 1236 l 693 1236 l 694 1232 l 511 1055 l 412 1055 l 537 1236 z "},"Û":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 682 1103 l 682 1086 l 572 1086 l 473 1186 l 374 1086 l 265 1086 l 265 1103 l 432 1264 l 513 1264 l 682 1103 z "},"Ü":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 707 1088 l 558 1088 l 558 1224 l 707 1224 l 707 1088 m 388 1088 l 239 1088 l 239 1224 l 388 1224 l 388 1088 z "},"Ý":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 m 488 1235 l 644 1235 l 646 1231 l 463 1055 l 363 1055 l 488 1235 z "},"Þ":{"ha":820,"x_min":111,"x_max":760,"o":"m 244 987 l 244 789 l 427 789 q 672 709 584 789 q 760 500 760 629 q 672 292 760 372 q 427 212 584 212 l 244 212 l 244 0 l 111 0 l 111 987 l 244 987 m 244 684 l 244 317 l 427 317 q 576 370 526 317 q 626 499 626 422 q 576 630 626 576 q 427 684 526 684 l 244 684 z "},"ß":{"ha":828,"x_min":93,"x_max":770,"o":"m 226 0 l 93 0 l 93 734 q 173 970 93 885 q 376 1055 252 1055 q 554 996 486 1055 q 623 825 623 938 q 579 670 623 745 q 535 557 535 595 q 653 405 535 501 q 770 214 770 309 q 700 43 770 101 q 508 -14 629 -14 q 391 0 451 -14 q 306 34 331 14 l 336 142 q 409 106 365 123 q 494 90 453 90 q 602 122 568 90 q 637 208 637 155 q 519 362 637 264 q 401 558 401 459 q 449 687 401 612 q 497 814 497 762 q 463 913 497 877 q 383 950 428 950 q 269 893 313 950 q 226 734 226 837 l 226 0 z "},"à":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 433 840 l 326 840 l 156 1016 l 158 1020 l 314 1020 l 433 840 z "},"á":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 441 1017 l 597 1017 l 598 1013 l 415 837 l 315 837 l 441 1017 z "},"â":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 585 884 l 585 867 l 476 867 l 376 968 l 277 867 l 169 867 l 169 885 l 336 1046 l 417 1046 l 585 884 z "},"ã":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 612 1032 q 571 924 612 968 q 470 880 531 880 q 370 912 422 880 q 283 943 317 943 q 234 921 254 943 q 214 868 214 899 l 141 886 q 181 995 141 949 q 283 1042 221 1042 q 378 1010 321 1042 q 470 978 435 978 q 518 1000 498 978 q 538 1054 538 1022 l 612 1032 z "},"ä":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 610 870 l 462 870 l 462 1006 l 610 1006 l 610 870 m 292 870 l 143 870 l 143 1006 l 292 1006 l 292 870 z "},"å":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 235 958 q 276 1053 235 1015 q 376 1092 317 1092 q 474 1054 433 1092 q 515 958 515 1015 q 474 863 515 899 q 376 826 434 826 q 276 863 317 826 q 235 958 235 899 m 304 958 q 326 908 304 928 q 376 887 347 887 q 425 907 404 887 q 445 958 445 927 q 425 1009 445 988 q 376 1030 404 1030 q 326 1009 347 1030 q 304 958 304 988 z "},"æ":{"ha":1173,"x_min":39,"x_max":1126,"o":"m 856 -14 q 693 19 764 -14 q 578 113 623 52 q 464 22 540 59 q 280 -14 389 -14 q 102 45 165 -14 q 39 206 39 104 q 117 372 39 313 q 345 431 195 431 l 500 431 l 500 488 q 465 601 500 560 q 363 642 430 642 q 252 605 294 642 q 211 515 211 568 l 83 527 l 82 531 q 156 686 79 625 q 363 747 234 747 q 500 720 441 747 q 593 640 559 692 q 696 719 637 691 q 824 747 755 747 q 1047 659 969 747 q 1126 416 1126 571 l 1126 336 l 645 336 l 644 332 q 697 157 644 224 q 856 90 751 90 q 971 109 926 90 q 1069 162 1016 127 l 1114 68 q 1015 12 1078 39 q 856 -14 951 -14 m 307 90 q 414 120 358 90 q 500 188 471 149 l 500 334 l 346 334 q 219 296 264 334 q 173 203 173 258 q 207 122 173 153 q 307 90 241 90 m 824 642 q 701 585 747 642 q 646 437 654 528 l 648 434 l 992 434 l 992 455 q 951 590 992 538 q 824 642 911 642 z "},"ç":{"ha":737,"x_min":66,"x_max":688,"o":"m 395 90 q 512 131 462 90 q 563 232 563 172 l 683 232 l 684 228 q 600 59 688 133 q 395 -14 512 -14 q 151 90 235 -14 q 66 353 66 195 l 66 381 q 151 643 66 538 q 395 747 236 747 q 606 671 524 747 q 685 485 688 595 l 684 481 l 563 481 q 515 595 563 548 q 395 642 468 642 q 245 567 290 642 q 200 381 200 491 l 200 353 q 245 165 200 240 q 395 90 290 90 m 416 -5 l 408 -41 q 481 -76 452 -48 q 510 -158 510 -104 q 456 -262 510 -223 q 303 -300 403 -300 l 298 -227 q 377 -210 347 -227 q 407 -160 407 -193 q 382 -115 407 -127 q 299 -97 358 -102 l 321 -5 l 416 -5 z "},"è":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 435 840 l 328 840 l 158 1017 l 160 1021 l 316 1021 l 435 840 z "},"é":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 443 1018 l 599 1018 l 600 1014 l 417 838 l 317 838 l 443 1018 z "},"ê":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 587 885 l 587 868 l 478 868 l 378 968 l 279 868 l 171 868 l 171 886 l 338 1046 l 419 1046 l 587 885 z "},"ë":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 612 871 l 464 871 l 464 1006 l 612 1006 l 612 871 m 294 871 l 145 871 l 145 1006 l 294 1006 l 294 871 z "},"ì":{"ha":349,"x_min":-48,"x_max":237,"o":"m 237 0 l 104 0 l 104 734 l 237 734 l 237 0 m 229 825 l 121 825 l -48 1002 l -46 1006 l 110 1006 l 229 825 z "},"í":{"ha":349,"x_min":104,"x_max":393,"o":"m 237 0 l 104 0 l 104 734 l 237 734 l 237 0 m 235 1003 l 391 1003 l 393 999 l 210 823 l 110 823 l 235 1003 z "},"î":{"ha":349,"x_min":-35,"x_max":381,"o":"m 237 0 l 104 0 l 104 734 l 237 734 l 237 0 m 381 870 l 381 853 l 272 853 l 172 954 l 73 853 l -35 853 l -35 871 l 132 1031 l 213 1031 l 381 870 z "},"ï":{"ha":349,"x_min":-61,"x_max":406,"o":"m 237 0 l 104 0 l 104 734 l 237 734 l 237 0 m 406 856 l 258 856 l 258 991 l 406 991 l 406 856 m 87 856 l -61 856 l -61 991 l 87 991 l 87 856 z "},"ð":{"ha":815,"x_min":49,"x_max":727,"o":"m 592 880 q 692 716 656 809 q 727 512 727 623 l 727 363 q 629 91 727 197 q 386 -14 532 -14 q 143 81 238 -14 q 49 316 49 176 q 142 567 49 471 q 380 663 236 663 q 495 638 441 663 q 585 572 549 613 l 587 576 q 552 709 581 650 q 477 814 524 769 l 281 702 l 229 771 l 402 870 q 348 897 376 885 q 290 918 319 908 l 330 1029 q 433 994 384 1016 q 524 940 481 971 l 672 1025 l 724 956 l 592 880 m 389 90 q 536 168 479 90 q 593 363 593 245 l 593 463 q 515 531 570 503 q 380 558 460 558 q 237 488 292 558 q 182 316 182 417 q 238 158 182 227 q 389 90 294 90 z "},"ñ":{"ha":789,"x_min":97,"x_max":692,"o":"m 216 734 l 226 625 q 318 715 262 683 q 444 747 373 747 q 627 678 562 747 q 692 463 692 608 l 692 0 l 559 0 l 559 460 q 520 598 559 557 q 404 639 482 639 q 301 611 346 639 q 231 535 257 583 l 231 0 l 97 0 l 97 734 l 216 734 m 627 1032 q 587 924 627 968 q 486 880 547 880 q 385 912 437 880 q 298 943 333 943 q 250 921 269 943 q 230 868 230 899 l 157 886 q 197 995 157 949 q 298 1042 237 1042 q 393 1010 336 1042 q 486 978 450 978 q 534 1000 513 978 q 554 1054 554 1022 l 627 1032 z "},"ò":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 451 840 l 344 840 l 174 1016 l 176 1020 l 332 1020 l 451 840 z "},"ó":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 459 1017 l 615 1017 l 616 1013 l 433 837 l 334 837 l 459 1017 z "},"ô":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 604 884 l 604 867 l 494 867 l 395 968 l 296 867 l 187 867 l 187 885 l 354 1046 l 435 1046 l 604 884 z "},"õ":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 630 1032 q 590 924 630 968 q 488 880 549 880 q 388 912 440 880 q 301 943 336 943 q 252 921 272 943 q 233 868 233 899 l 159 886 q 199 995 159 949 q 301 1042 239 1042 q 396 1010 339 1042 q 488 978 453 978 q 536 1000 516 978 q 557 1054 557 1022 l 630 1032 z "},"ö":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 629 870 l 480 870 l 480 1006 l 629 1006 l 629 870 m 310 870 l 161 870 l 161 1006 l 310 1006 l 310 870 z "},"÷":{"ha":793,"x_min":48,"x_max":725,"o":"m 725 405 l 48 405 l 48 532 l 725 532 l 725 405 m 454 677 l 320 677 l 320 815 l 454 815 l 454 677 m 454 122 l 320 122 l 320 260 l 454 260 l 454 122 z "},"ø":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 466 740 431 747 q 532 719 501 732 l 583 820 l 670 820 l 600 677 q 691 548 659 627 q 723 374 723 469 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 329 -8 360 -14 q 269 8 298 -3 l 220 -92 l 133 -92 l 201 47 q 101 176 136 95 q 66 359 66 258 l 66 374 m 199 359 q 213 246 199 297 q 254 162 227 195 l 258 162 l 484 619 q 441 636 464 630 q 393 642 418 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 589 374 q 577 476 589 428 q 544 555 566 524 l 540 555 l 318 106 q 353 94 334 98 q 395 90 372 90 q 540 166 490 90 q 589 359 589 242 l 589 374 z "},"ù":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 450 825 l 342 825 l 173 1002 l 175 1006 l 331 1006 l 450 825 z "},"ú":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 458 1003 l 614 1003 l 615 999 l 432 823 l 332 823 l 458 1003 z "},"û":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 602 870 l 602 853 l 493 853 l 393 954 l 294 853 l 186 853 l 186 871 l 353 1031 l 434 1031 l 602 870 z "},"ü":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 627 856 l 479 856 l 479 991 l 627 991 l 627 856 m 309 856 l 160 856 l 160 991 l 309 991 l 309 856 z "},"ý":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 413 1003 l 569 1003 l 570 999 l 387 823 l 288 823 l 413 1003 z "},"þ":{"ha":804,"x_min":104,"x_max":729,"o":"m 729 339 q 653 83 729 180 q 444 -14 577 -14 q 325 8 376 -14 q 237 77 273 31 l 237 -282 l 104 -282 l 104 1058 l 237 1058 l 237 652 q 324 723 273 699 q 441 747 375 747 q 653 639 578 747 q 729 353 729 531 l 729 339 m 595 353 q 546 558 595 478 q 401 639 497 639 q 303 613 344 639 q 237 541 262 587 l 237 186 q 303 116 262 141 q 403 90 344 90 q 547 160 498 90 q 595 339 595 229 l 595 353 z "},"ÿ":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 583 856 l 434 856 l 434 991 l 583 991 l 583 856 m 264 856 l 115 856 l 115 991 l 264 991 l 264 856 z "},"Ā":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 694 1112 l 205 1112 l 205 1211 l 694 1211 l 694 1112 z "},"ā":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 625 894 l 136 894 l 136 993 l 625 993 l 625 894 z "},"Ă":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 649 1268 l 650 1264 q 598 1136 653 1185 q 450 1086 543 1086 q 302 1136 357 1086 q 250 1264 247 1185 l 252 1268 l 354 1268 q 377 1196 354 1223 q 450 1168 400 1168 q 523 1196 499 1168 q 547 1268 547 1224 l 649 1268 z "},"ă":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 576 1050 l 577 1046 q 525 918 580 967 q 377 868 470 868 q 229 918 283 868 q 177 1046 174 967 l 178 1050 l 281 1050 q 304 977 281 1005 q 377 949 327 949 q 450 978 426 949 q 473 1050 473 1006 l 576 1050 z "},"Ą":{"ha":899,"x_min":14,"x_max":923,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 869 0 q 795 -67 822 -35 q 768 -136 768 -100 q 784 -181 768 -165 q 833 -197 799 -197 q 867 -192 852 -197 q 901 -180 883 -187 l 923 -263 q 869 -284 899 -276 q 799 -293 840 -293 q 693 -256 734 -293 q 652 -151 652 -218 q 693 -48 652 -97 q 821 39 734 1 l 869 0 z "},"ą":{"ha":764,"x_min":72,"x_max":723,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 669 0 q 595 -67 622 -35 q 568 -136 568 -100 q 584 -181 568 -165 q 633 -197 599 -197 q 667 -192 652 -197 q 701 -180 683 -187 l 723 -263 q 669 -284 699 -276 q 599 -293 640 -293 q 493 -256 534 -293 q 452 -151 452 -218 q 493 -48 452 -97 q 621 39 534 1 l 669 0 z "},"Ć":{"ha":880,"x_min":80,"x_max":824,"o":"m 820 316 l 821 312 q 724 79 824 173 q 458 -14 623 -14 q 185 104 291 -14 q 80 406 80 223 l 80 581 q 185 883 80 764 q 458 1002 291 1002 q 725 912 626 1002 q 821 676 824 823 l 820 672 l 692 672 q 631 836 692 776 q 458 897 570 897 q 280 806 347 897 q 214 583 214 716 l 214 406 q 280 180 214 271 q 458 90 347 90 q 631 150 570 90 q 692 316 692 210 l 820 316 m 524 1250 l 680 1250 l 682 1246 l 498 1069 l 399 1069 l 524 1250 z "},"ć":{"ha":737,"x_min":66,"x_max":688,"o":"m 395 90 q 512 131 462 90 q 563 232 563 172 l 683 232 l 684 228 q 600 59 688 133 q 395 -14 512 -14 q 151 90 235 -14 q 66 353 66 195 l 66 381 q 151 643 66 538 q 395 747 236 747 q 606 671 524 747 q 685 485 688 595 l 684 481 l 563 481 q 515 595 563 548 q 395 642 468 642 q 245 567 290 642 q 200 381 200 491 l 200 353 q 245 165 200 240 q 395 90 290 90 m 429 1017 l 585 1017 l 586 1013 l 403 837 l 303 837 l 429 1017 z "},"Ĉ":{"ha":880,"x_min":80,"x_max":824,"o":"m 820 316 l 821 312 q 724 79 824 173 q 458 -14 623 -14 q 185 104 291 -14 q 80 406 80 223 l 80 581 q 185 883 80 764 q 458 1002 291 1002 q 725 912 626 1002 q 821 676 824 823 l 820 672 l 692 672 q 631 836 692 776 q 458 897 570 897 q 280 806 347 897 q 214 583 214 716 l 214 406 q 280 180 214 271 q 458 90 347 90 q 631 150 570 90 q 692 316 692 210 l 820 316 m 669 1117 l 669 1100 l 559 1100 l 460 1200 l 361 1100 l 252 1100 l 252 1118 l 419 1278 l 500 1278 l 669 1117 z "},"ĉ":{"ha":737,"x_min":66,"x_max":688,"o":"m 395 90 q 512 131 462 90 q 563 232 563 172 l 683 232 l 684 228 q 600 59 688 133 q 395 -14 512 -14 q 151 90 235 -14 q 66 353 66 195 l 66 381 q 151 643 66 538 q 395 747 236 747 q 606 671 524 747 q 685 485 688 595 l 684 481 l 563 481 q 515 595 563 548 q 395 642 468 642 q 245 567 290 642 q 200 381 200 491 l 200 353 q 245 165 200 240 q 395 90 290 90 m 573 884 l 573 867 l 464 867 l 364 968 l 265 867 l 157 867 l 157 885 l 323 1046 l 405 1046 l 573 884 z "},"Ċ":{"ha":880,"x_min":80,"x_max":824,"o":"m 820 316 l 821 312 q 724 79 824 173 q 458 -14 623 -14 q 185 104 291 -14 q 80 406 80 223 l 80 581 q 185 883 80 764 q 458 1002 291 1002 q 725 912 626 1002 q 821 676 824 823 l 820 672 l 692 672 q 631 836 692 776 q 458 897 570 897 q 280 806 347 897 q 214 583 214 716 l 214 406 q 280 180 214 271 q 458 90 347 90 q 631 150 570 90 q 692 316 692 210 l 820 316 m 534 1102 l 386 1102 l 386 1238 l 534 1238 l 534 1102 z "},"ċ":{"ha":737,"x_min":66,"x_max":688,"o":"m 395 90 q 512 131 462 90 q 563 232 563 172 l 683 232 l 684 228 q 600 59 688 133 q 395 -14 512 -14 q 151 90 235 -14 q 66 353 66 195 l 66 381 q 151 643 66 538 q 395 747 236 747 q 606 671 524 747 q 685 485 688 595 l 684 481 l 563 481 q 515 595 563 548 q 395 642 468 642 q 245 567 290 642 q 200 381 200 491 l 200 353 q 245 165 200 240 q 395 90 290 90 m 438 869 l 290 869 l 290 1006 l 438 1006 l 438 869 z "},"Č":{"ha":880,"x_min":80,"x_max":824,"o":"m 820 316 l 821 312 q 724 79 824 173 q 458 -14 623 -14 q 185 104 291 -14 q 80 406 80 223 l 80 581 q 185 883 80 764 q 458 1002 291 1002 q 725 912 626 1002 q 821 676 824 823 l 820 672 l 692 672 q 631 836 692 776 q 458 897 570 897 q 280 806 347 897 q 214 583 214 716 l 214 406 q 280 180 214 271 q 458 90 347 90 q 631 150 570 90 q 692 316 692 210 l 820 316 m 459 1179 l 559 1279 l 674 1279 l 674 1267 l 500 1101 l 419 1101 l 247 1265 l 247 1279 l 359 1279 l 459 1179 z "},"č":{"ha":737,"x_min":66,"x_max":688,"o":"m 395 90 q 512 131 462 90 q 563 232 563 172 l 683 232 l 684 228 q 600 59 688 133 q 395 -14 512 -14 q 151 90 235 -14 q 66 353 66 195 l 66 381 q 151 643 66 538 q 395 747 236 747 q 606 671 524 747 q 685 485 688 595 l 684 481 l 563 481 q 515 595 563 548 q 395 642 468 642 q 245 567 290 642 q 200 381 200 491 l 200 353 q 245 165 200 240 q 395 90 290 90 m 363 946 l 463 1046 l 578 1046 l 578 1034 l 404 868 l 323 868 l 151 1033 l 151 1046 l 264 1046 l 363 946 z "},"Ď":{"ha":915,"x_min":122,"x_max":854,"o":"m 122 0 l 122 987 l 425 987 q 736 868 619 987 q 854 561 854 749 l 854 426 q 736 118 854 237 q 425 0 619 0 l 122 0 m 256 882 l 256 104 l 425 104 q 641 195 562 104 q 720 426 720 285 l 720 562 q 641 792 720 702 q 425 882 562 882 l 256 882 m 420 1164 l 519 1265 l 635 1265 l 635 1253 l 460 1086 l 380 1086 l 208 1251 l 208 1265 l 320 1265 l 420 1164 z "},"ď":{"ha":891,"x_min":66,"x_max":888,"o":"m 66 353 q 142 639 66 530 q 354 747 218 747 q 468 724 418 747 q 553 654 518 700 l 553 1058 l 687 1058 l 687 0 l 578 0 l 562 90 q 474 12 526 39 q 353 -14 422 -14 q 142 83 218 -14 q 66 339 66 180 l 66 353 m 200 339 q 245 161 200 228 q 387 94 291 94 q 487 121 446 94 q 553 197 528 149 l 553 540 q 487 612 528 585 q 388 639 446 639 q 246 559 292 639 q 200 353 200 480 l 200 339 m 888 963 l 805 802 l 739 802 l 781 969 l 781 1058 l 888 1058 l 888 963 z "},"Đ":{"ha":935,"x_min":28,"x_max":874,"o":"m 142 0 l 142 450 l 28 450 l 28 555 l 142 555 l 142 987 l 446 987 q 757 868 640 987 q 874 561 874 749 l 874 426 q 757 118 874 237 q 446 0 640 0 l 142 0 m 463 450 l 276 450 l 276 104 l 446 104 q 662 195 583 104 q 741 426 741 285 l 741 562 q 662 792 741 702 q 446 882 583 882 l 276 882 l 276 555 l 463 555 l 463 450 z "},"đ":{"ha":810,"x_min":66,"x_max":821,"o":"m 821 835 l 687 835 l 687 0 l 578 0 l 562 90 q 474 12 526 39 q 353 -14 422 -14 q 142 83 218 -14 q 66 339 66 180 l 66 353 q 142 639 66 530 q 354 747 218 747 q 468 724 418 747 q 553 654 518 700 l 553 835 l 386 835 l 386 940 l 553 940 l 553 1058 l 687 1058 l 687 940 l 821 940 l 821 835 m 200 339 q 245 161 200 228 q 387 94 291 94 q 487 121 446 94 q 553 197 528 149 l 553 540 q 487 612 528 585 q 388 639 446 639 q 246 559 292 639 q 200 353 200 480 l 200 339 z "},"Ē":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 674 1112 l 185 1112 l 185 1211 l 674 1211 l 674 1112 z "},"ē":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 627 895 l 138 895 l 138 994 l 627 994 l 627 895 z "},"Ĕ":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 625 1268 l 627 1264 q 574 1136 629 1185 q 427 1086 519 1086 q 278 1136 333 1086 q 227 1264 223 1185 l 228 1268 l 330 1268 q 353 1196 330 1223 q 427 1168 376 1168 q 499 1196 475 1168 q 523 1268 523 1224 l 625 1268 z "},"ĕ":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 578 1050 l 579 1046 q 527 918 582 968 q 379 869 472 869 q 231 918 286 869 q 179 1046 176 968 l 180 1050 l 283 1050 q 306 978 283 1006 q 379 950 329 950 q 452 978 428 950 q 475 1050 475 1006 l 578 1050 z "},"Ė":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 500 1088 l 352 1088 l 352 1224 l 500 1224 l 500 1088 z "},"ė":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 452 870 l 304 870 l 304 1006 l 452 1006 l 452 870 z "},"Ę":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 488 0 q 413 -67 440 -35 q 387 -136 387 -100 q 402 -181 387 -165 q 452 -197 417 -197 q 486 -192 470 -197 q 519 -180 501 -187 l 541 -263 q 487 -284 517 -276 q 417 -293 458 -293 q 312 -256 353 -293 q 271 -151 271 -218 q 312 -48 271 -97 q 439 39 353 1 l 488 0 z "},"ę":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 597 42 q 523 -25 549 7 q 496 -94 496 -58 q 511 -139 496 -123 q 561 -155 526 -155 q 595 -150 579 -155 q 628 -138 610 -145 l 650 -221 q 596 -242 626 -234 q 526 -251 567 -251 q 421 -214 462 -251 q 380 -109 380 -176 q 421 -6 380 -55 q 548 81 462 43 l 597 42 z "},"Ě":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 425 1164 l 525 1265 l 640 1265 l 640 1253 l 466 1086 l 385 1086 l 213 1251 l 213 1265 l 326 1265 l 425 1164 z "},"ě":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 378 947 l 477 1047 l 593 1047 l 593 1035 l 418 869 l 338 869 l 165 1034 l 165 1047 l 278 1047 l 378 947 z "},"Ĝ":{"ha":947,"x_min":81,"x_max":838,"o":"m 838 131 q 715 31 802 77 q 490 -14 628 -14 q 197 99 313 -14 q 81 392 81 212 l 81 595 q 189 888 81 775 q 467 1002 297 1002 q 734 918 637 1002 q 833 703 831 835 l 831 699 l 704 699 q 638 841 698 785 q 467 897 579 897 q 285 812 354 897 q 216 597 216 727 l 216 392 q 293 175 216 260 q 490 90 370 90 q 627 113 574 90 q 704 163 681 135 l 704 388 l 488 388 l 488 493 l 838 493 l 838 131 m 662 1117 l 662 1100 l 553 1100 l 453 1200 l 354 1100 l 245 1100 l 245 1118 l 412 1278 l 494 1278 l 662 1117 z "},"ĝ":{"ha":789,"x_min":68,"x_max":692,"o":"m 68 353 q 145 639 68 530 q 359 747 222 747 q 481 719 429 747 q 570 638 534 691 l 586 734 l 692 734 l 692 -4 q 610 -221 692 -145 q 374 -296 528 -296 q 259 -282 321 -296 q 151 -242 198 -267 l 185 -138 q 272 -171 221 -159 q 372 -184 323 -184 q 514 -139 470 -184 q 559 -4 559 -95 l 559 79 q 473 9 523 33 q 357 -14 422 -14 q 145 83 222 -14 q 68 339 68 181 l 68 353 m 201 339 q 248 161 201 229 q 391 94 295 94 q 492 122 451 94 q 559 199 532 149 l 559 537 q 492 611 533 584 q 392 639 450 639 q 249 559 296 639 q 201 353 201 479 l 201 339 m 591 884 l 591 867 l 482 867 l 382 968 l 283 867 l 175 867 l 175 885 l 342 1046 l 423 1046 l 591 884 z "},"Ğ":{"ha":947,"x_min":81,"x_max":838,"o":"m 838 131 q 715 31 802 77 q 490 -14 628 -14 q 197 99 313 -14 q 81 392 81 212 l 81 595 q 189 888 81 775 q 467 1002 297 1002 q 734 918 637 1002 q 833 703 831 835 l 831 699 l 704 699 q 638 841 698 785 q 467 897 579 897 q 285 812 354 897 q 216 597 216 727 l 216 392 q 293 175 216 260 q 490 90 370 90 q 627 113 574 90 q 704 163 681 135 l 704 388 l 488 388 l 488 493 l 838 493 l 838 131 m 652 1282 l 654 1278 q 602 1150 656 1200 q 454 1101 547 1101 q 305 1150 360 1101 q 254 1278 250 1200 l 255 1282 l 357 1282 q 380 1210 357 1238 q 454 1182 404 1182 q 526 1210 503 1182 q 550 1282 550 1238 l 652 1282 z "},"ğ":{"ha":789,"x_min":68,"x_max":692,"o":"m 68 353 q 145 639 68 530 q 359 747 222 747 q 481 719 429 747 q 570 638 534 691 l 586 734 l 692 734 l 692 -4 q 610 -221 692 -145 q 374 -296 528 -296 q 259 -282 321 -296 q 151 -242 198 -267 l 185 -138 q 272 -171 221 -159 q 372 -184 323 -184 q 514 -139 470 -184 q 559 -4 559 -95 l 559 79 q 473 9 523 33 q 357 -14 422 -14 q 145 83 222 -14 q 68 339 68 181 l 68 353 m 201 339 q 248 161 201 229 q 391 94 295 94 q 492 122 451 94 q 559 199 532 149 l 559 537 q 492 611 533 584 q 392 639 450 639 q 249 559 296 639 q 201 353 201 479 l 201 339 m 582 1050 l 583 1046 q 531 918 586 967 q 383 868 476 868 q 235 918 290 868 q 183 1046 180 967 l 184 1050 l 287 1050 q 310 977 287 1005 q 383 949 333 949 q 456 978 432 949 q 479 1050 479 1006 l 582 1050 z "},"Ġ":{"ha":947,"x_min":81,"x_max":838,"o":"m 838 131 q 715 31 802 77 q 490 -14 628 -14 q 197 99 313 -14 q 81 392 81 212 l 81 595 q 189 888 81 775 q 467 1002 297 1002 q 734 918 637 1002 q 833 703 831 835 l 831 699 l 704 699 q 638 841 698 785 q 467 897 579 897 q 285 812 354 897 q 216 597 216 727 l 216 392 q 293 175 216 260 q 490 90 370 90 q 627 113 574 90 q 704 163 681 135 l 704 388 l 488 388 l 488 493 l 838 493 l 838 131 m 527 1102 l 379 1102 l 379 1238 l 527 1238 l 527 1102 z "},"ġ":{"ha":789,"x_min":68,"x_max":692,"o":"m 68 353 q 145 639 68 530 q 359 747 222 747 q 481 719 429 747 q 570 638 534 691 l 586 734 l 692 734 l 692 -4 q 610 -221 692 -145 q 374 -296 528 -296 q 259 -282 321 -296 q 151 -242 198 -267 l 185 -138 q 272 -171 221 -159 q 372 -184 323 -184 q 514 -139 470 -184 q 559 -4 559 -95 l 559 79 q 473 9 523 33 q 357 -14 422 -14 q 145 83 222 -14 q 68 339 68 181 l 68 353 m 201 339 q 248 161 201 229 q 391 94 295 94 q 492 122 451 94 q 559 199 532 149 l 559 537 q 492 611 533 584 q 392 639 450 639 q 249 559 296 639 q 201 353 201 479 l 201 339 m 456 869 l 309 869 l 309 1006 l 456 1006 l 456 869 z "},"Ģ":{"ha":947,"x_min":81,"x_max":838,"o":"m 838 131 q 715 31 802 77 q 490 -14 628 -14 q 197 99 313 -14 q 81 392 81 212 l 81 595 q 189 888 81 775 q 467 1002 297 1002 q 734 918 637 1002 q 833 703 831 835 l 831 699 l 704 699 q 638 841 698 785 q 467 897 579 897 q 285 812 354 897 q 216 597 216 727 l 216 392 q 293 175 216 260 q 490 90 370 90 q 627 113 574 90 q 704 163 681 135 l 704 388 l 488 388 l 488 493 l 838 493 l 838 131 m 502 -174 l 419 -335 l 353 -335 l 395 -168 l 395 -79 l 502 -79 l 502 -174 z "},"ģ":{"ha":789,"x_min":68,"x_max":692,"o":"m 68 353 q 145 639 68 530 q 359 747 222 747 q 481 719 429 747 q 570 638 534 691 l 586 734 l 692 734 l 692 -4 q 610 -221 692 -145 q 374 -296 528 -296 q 259 -282 321 -296 q 151 -242 198 -267 l 185 -138 q 272 -171 221 -159 q 372 -184 323 -184 q 514 -139 470 -184 q 559 -4 559 -95 l 559 79 q 473 9 523 33 q 357 -14 422 -14 q 145 83 222 -14 q 68 339 68 181 l 68 353 m 201 339 q 248 161 201 229 q 391 94 295 94 q 492 122 451 94 q 559 199 532 149 l 559 537 q 492 611 533 584 q 392 639 450 639 q 249 559 296 639 q 201 353 201 479 l 201 339 m 311 950 l 393 1118 l 459 1118 l 445 943 l 445 850 l 311 850 l 311 950 z "},"Ĥ":{"ha":991,"x_min":122,"x_max":869,"o":"m 869 0 l 735 0 l 735 436 l 256 436 l 256 0 l 122 0 l 122 987 l 256 987 l 256 541 l 735 541 l 735 987 l 869 987 l 869 0 m 698 1103 l 698 1086 l 589 1086 l 489 1186 l 390 1086 l 281 1086 l 281 1103 l 448 1264 l 530 1264 l 698 1103 z "},"ĥ":{"ha":789,"x_min":97,"x_max":694,"o":"m 231 635 q 324 718 269 688 q 446 747 379 747 q 629 677 564 747 q 694 460 694 606 l 694 0 l 561 0 l 561 461 q 522 595 561 552 q 406 639 483 639 q 305 613 350 639 q 231 542 260 587 l 231 0 l 97 0 l 97 1058 l 231 1058 l 231 635 m 554 1102 l 554 1085 l 445 1085 l 345 1185 l 246 1085 l 138 1085 l 138 1103 l 304 1263 l 386 1263 l 554 1102 z "},"Ħ":{"ha":976,"x_min":21,"x_max":965,"o":"m 867 793 l 965 793 l 965 694 l 867 694 l 867 0 l 734 0 l 734 436 l 254 436 l 254 0 l 121 0 l 121 694 l 21 694 l 21 793 l 121 793 l 121 987 l 254 987 l 254 793 l 734 793 l 734 987 l 867 987 l 867 793 m 254 541 l 734 541 l 734 694 l 254 694 l 254 541 z "},"ħ":{"ha":810,"x_min":1,"x_max":715,"o":"m 435 835 l 251 835 l 251 635 q 344 718 289 688 q 467 747 399 747 q 649 677 584 747 q 715 460 715 606 l 715 0 l 581 0 l 581 461 q 542 595 581 552 q 426 639 503 639 q 325 613 370 639 q 251 542 280 587 l 251 0 l 117 0 l 117 835 l 1 835 l 1 940 l 117 940 l 117 1058 l 251 1058 l 251 940 l 435 940 l 435 835 z "},"Ĩ":{"ha":393,"x_min":-38,"x_max":433,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 433 1251 q 392 1143 433 1187 q 291 1099 352 1099 q 191 1130 243 1099 q 104 1162 138 1162 q 55 1140 75 1162 q 35 1086 35 1118 l -38 1104 q 2 1214 -38 1167 q 104 1260 42 1260 q 199 1228 142 1260 q 291 1196 256 1196 q 339 1218 319 1196 q 359 1272 359 1240 l 433 1251 z "},"ĩ":{"ha":349,"x_min":-63,"x_max":408,"o":"m 237 0 l 104 0 l 104 734 l 237 734 l 237 0 m 408 1018 q 367 910 408 954 q 266 866 327 866 q 165 898 218 866 q 79 929 113 929 q 30 907 50 929 q 10 854 10 885 l -63 871 q -23 981 -63 935 q 79 1027 17 1027 q 174 996 117 1027 q 266 964 231 964 q 314 986 294 964 q 334 1040 334 1008 l 408 1018 z "},"Ī":{"ha":393,"x_min":-43,"x_max":446,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 446 1112 l -43 1112 l -43 1211 l 446 1211 l 446 1112 z "},"ī":{"ha":349,"x_min":-68,"x_max":420,"o":"m 237 0 l 104 0 l 104 734 l 237 734 l 237 0 m 420 881 l -68 881 l -68 980 l 420 980 l 420 881 z "},"Ĭ":{"ha":393,"x_min":-5,"x_max":401,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 397 1268 l 398 1264 q 346 1136 401 1185 q 198 1086 291 1086 q 50 1136 104 1086 q -2 1264 -5 1185 l -1 1268 l 102 1268 q 125 1196 102 1223 q 198 1168 148 1168 q 271 1196 247 1168 q 294 1268 294 1224 l 397 1268 z "},"ĭ":{"ha":349,"x_min":-31,"x_max":376,"o":"m 237 0 l 104 0 l 104 734 l 237 734 l 237 0 m 372 1036 l 373 1031 q 321 903 376 953 q 173 854 266 854 q 24 903 79 854 q -27 1031 -31 953 l -26 1036 l 77 1036 q 100 963 77 991 q 173 935 123 935 q 245 963 222 935 q 269 1036 269 991 l 372 1036 z "},"Į":{"ha":393,"x_min":31,"x_max":302,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 248 0 q 174 -67 201 -35 q 147 -136 147 -100 q 162 -181 147 -165 q 212 -197 178 -197 q 246 -192 231 -197 q 279 -180 262 -187 l 302 -263 q 248 -284 277 -276 q 178 -293 218 -293 q 72 -256 113 -293 q 31 -151 31 -218 q 72 -48 31 -97 q 199 39 113 1 l 248 0 z "},"į":{"ha":350,"x_min":9,"x_max":280,"o":"m 241 0 l 108 0 l 108 734 l 241 734 l 241 0 m 241 922 l 108 922 l 108 1058 l 241 1058 l 241 922 m 227 0 q 152 -67 179 -35 q 125 -136 125 -100 q 141 -181 125 -165 q 191 -197 156 -197 q 224 -192 209 -197 q 258 -180 240 -187 l 280 -263 q 226 -284 256 -276 q 156 -293 197 -293 q 51 -256 92 -293 q 9 -151 9 -218 q 51 -48 9 -97 q 178 39 92 1 l 227 0 z "},"İ":{"ha":393,"x_min":122,"x_max":270,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 270 1088 l 122 1088 l 122 1224 l 270 1224 l 270 1088 z "},"ı":{"ha":349,"x_min":104,"x_max":237,"o":"m 237 0 l 104 0 l 104 734 l 237 734 l 237 0 z "},"IJ":{"ha":1159,"x_min":129,"x_max":1046,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 912 987 l 1046 987 l 1046 273 q 962 63 1046 141 q 745 -14 878 -14 q 518 58 602 -14 q 437 268 434 130 l 439 272 l 567 272 q 613 135 567 180 q 745 90 660 90 q 865 140 819 90 q 912 273 912 190 l 912 987 z "},"ij":{"ha":709,"x_min":108,"x_max":601,"o":"m 241 0 l 108 0 l 108 734 l 241 734 l 241 0 m 241 922 l 108 922 l 108 1058 l 241 1058 l 241 922 m 601 734 l 601 -60 q 543 -235 601 -174 q 380 -296 484 -296 q 342 -293 359 -296 q 305 -284 325 -290 l 315 -179 q 342 -185 324 -182 q 371 -187 359 -187 q 441 -157 415 -187 q 467 -60 467 -127 l 467 734 l 601 734 m 597 924 l 463 924 l 463 1058 l 597 1058 l 597 924 z "},"Ĵ":{"ha":766,"x_min":41,"x_max":789,"o":"m 519 987 l 653 987 l 653 273 q 569 63 653 141 q 352 -14 486 -14 q 125 58 210 -14 q 45 268 41 130 l 46 272 l 174 272 q 221 135 174 180 q 352 90 267 90 q 473 140 426 90 q 519 273 519 190 l 519 987 m 789 1095 l 789 1078 l 680 1078 l 581 1178 l 481 1078 l 373 1078 l 373 1095 l 540 1256 l 621 1256 l 789 1095 z "},"ĵ":{"ha":355,"x_min":-46,"x_max":393,"o":"m 250 734 l 250 -60 q 191 -235 250 -174 q 29 -296 133 -296 q -9 -293 8 -296 q -46 -284 -26 -290 l -37 -182 q -5 -189 -27 -186 q 29 -191 17 -191 q 93 -156 69 -191 q 116 -60 116 -121 l 116 734 l 250 734 m 393 858 l 393 841 l 284 841 l 184 941 l 85 841 l -23 841 l -23 859 l 144 1019 l 225 1019 l 393 858 z "},"Ķ":{"ha":893,"x_min":122,"x_max":890,"o":"m 371 446 l 256 446 l 256 0 l 122 0 l 122 987 l 256 987 l 256 551 l 359 551 l 712 987 l 860 987 l 862 984 l 479 510 l 890 3 l 888 0 l 728 0 l 371 446 m 479 -163 l 396 -323 l 330 -323 l 372 -157 l 372 -68 l 479 -68 l 479 -163 z "},"ķ":{"ha":712,"x_min":98,"x_max":713,"o":"m 318 338 l 231 338 l 231 0 l 98 0 l 98 1058 l 231 1058 l 231 445 l 317 445 l 517 734 l 677 734 l 427 400 l 713 0 l 556 0 l 318 338 m 412 -161 l 329 -322 l 263 -322 l 304 -155 l 304 -66 l 412 -66 l 412 -161 z "},"ĸ":{"ha":776,"x_min":104,"x_max":738,"o":"m 306 311 l 237 311 l 237 0 l 104 0 l 104 734 l 237 734 l 237 424 l 294 424 l 557 734 l 714 734 l 715 730 l 410 382 l 738 3 l 736 0 l 573 0 l 306 311 z "},"Ĺ":{"ha":750,"x_min":122,"x_max":723,"o":"m 256 104 l 723 104 l 723 0 l 122 0 l 122 987 l 256 987 l 256 104 m 252 1236 l 408 1236 l 409 1232 l 226 1055 l 126 1055 l 252 1236 z "},"ĺ":{"ha":350,"x_min":108,"x_max":397,"o":"m 241 0 l 108 0 l 108 1058 l 241 1058 l 241 0 m 239 1261 l 395 1261 l 397 1257 l 214 1081 l 114 1081 l 239 1261 z "},"Ļ":{"ha":750,"x_min":122,"x_max":723,"o":"m 256 104 l 723 104 l 723 0 l 122 0 l 122 987 l 256 987 l 256 104 m 474 -161 l 391 -322 l 326 -322 l 367 -155 l 367 -66 l 474 -66 l 474 -161 z "},"ļ":{"ha":350,"x_min":75,"x_max":241,"o":"m 241 0 l 108 0 l 108 1058 l 241 1058 l 241 0 m 223 -161 l 140 -322 l 75 -322 l 116 -155 l 116 -66 l 223 -66 l 223 -161 z "},"Ľ":{"ha":750,"x_min":122,"x_max":723,"o":"m 256 104 l 723 104 l 723 0 l 122 0 l 122 987 l 256 987 l 256 104 m 544 893 l 461 732 l 395 732 l 437 899 l 437 988 l 544 988 l 544 893 z "},"ľ":{"ha":452,"x_min":108,"x_max":456,"o":"m 241 0 l 108 0 l 108 1058 l 241 1058 l 241 0 m 456 963 l 373 802 l 307 802 l 349 969 l 349 1058 l 456 1058 l 456 963 z "},"Ŀ":{"ha":750,"x_min":122,"x_max":723,"o":"m 256 104 l 723 104 l 723 0 l 122 0 l 122 987 l 256 987 l 256 104 m 564 467 l 416 467 l 416 603 l 564 603 l 564 467 z "},"ŀ":{"ha":499,"x_min":108,"x_max":477,"o":"m 241 0 l 108 0 l 108 1058 l 241 1058 l 241 0 m 477 455 l 329 455 l 329 591 l 477 591 l 477 455 z "},"Ł":{"ha":730,"x_min":27,"x_max":711,"o":"m 244 572 l 427 630 l 427 517 l 244 459 l 244 104 l 711 104 l 711 0 l 111 0 l 111 417 l 27 391 l 27 503 l 111 530 l 111 987 l 244 987 l 244 572 z "},"ł":{"ha":378,"x_min":25,"x_max":357,"o":"m 255 591 l 357 631 l 357 519 l 255 479 l 255 0 l 121 0 l 121 429 l 25 392 l 25 504 l 121 541 l 121 1058 l 255 1058 l 255 591 z "},"Ń":{"ha":991,"x_min":122,"x_max":869,"o":"m 869 0 l 735 0 l 260 764 l 256 762 l 256 0 l 122 0 l 122 987 l 256 987 l 731 225 l 735 227 l 735 987 l 869 987 l 869 0 m 558 1236 l 714 1236 l 715 1232 l 532 1055 l 433 1055 l 558 1236 z "},"ń":{"ha":789,"x_min":97,"x_max":692,"o":"m 216 734 l 226 625 q 318 715 262 683 q 444 747 373 747 q 627 678 562 747 q 692 463 692 608 l 692 0 l 559 0 l 559 460 q 520 598 559 557 q 404 639 482 639 q 301 611 346 639 q 231 535 257 583 l 231 0 l 97 0 l 97 734 l 216 734 m 456 1017 l 612 1017 l 614 1013 l 431 837 l 331 837 l 456 1017 z "},"Ņ":{"ha":991,"x_min":122,"x_max":869,"o":"m 869 0 l 735 0 l 260 764 l 256 762 l 256 0 l 122 0 l 122 987 l 256 987 l 731 225 l 735 227 l 735 987 l 869 987 l 869 0 m 542 -161 l 459 -322 l 393 -322 l 435 -155 l 435 -66 l 542 -66 l 542 -161 z "},"ņ":{"ha":789,"x_min":97,"x_max":692,"o":"m 216 734 l 226 625 q 318 715 262 683 q 444 747 373 747 q 627 678 562 747 q 692 463 692 608 l 692 0 l 559 0 l 559 460 q 520 598 559 557 q 404 639 482 639 q 301 611 346 639 q 231 535 257 583 l 231 0 l 97 0 l 97 734 l 216 734 m 440 -161 l 357 -322 l 292 -322 l 333 -155 l 333 -66 l 440 -66 l 440 -161 z "},"Ň":{"ha":991,"x_min":122,"x_max":869,"o":"m 869 0 l 735 0 l 260 764 l 256 762 l 256 0 l 122 0 l 122 987 l 256 987 l 731 225 l 735 227 l 735 987 l 869 987 l 869 0 m 493 1164 l 593 1265 l 708 1265 l 708 1253 l 534 1086 l 453 1086 l 281 1251 l 281 1265 l 393 1265 l 493 1164 z "},"ň":{"ha":789,"x_min":97,"x_max":692,"o":"m 216 734 l 226 625 q 318 715 262 683 q 444 747 373 747 q 627 678 562 747 q 692 463 692 608 l 692 0 l 559 0 l 559 460 q 520 598 559 557 q 404 639 482 639 q 301 611 346 639 q 231 535 257 583 l 231 0 l 97 0 l 97 734 l 216 734 m 391 946 l 491 1046 l 606 1046 l 606 1034 l 432 868 l 351 868 l 179 1033 l 179 1046 l 292 1046 l 391 946 z "},"ʼn":{"ha":789,"x_min":-22,"x_max":692,"o":"m 216 734 l 226 625 q 318 715 262 683 q 444 747 373 747 q 627 678 562 747 q 692 463 692 608 l 692 0 l 559 0 l 559 460 q 520 598 559 557 q 404 639 482 639 q 301 611 346 639 q 231 535 257 583 l 231 0 l 97 0 l 97 734 l 216 734 m 127 963 l 44 802 l -22 802 l 20 969 l 20 1058 l 127 1058 l 127 963 z "},"Ŋ":{"ha":960,"x_min":109,"x_max":856,"o":"m 856 987 l 856 -60 q 798 -235 856 -174 q 635 -296 739 -296 q 596 -293 614 -296 q 559 -284 578 -290 l 568 -182 q 600 -189 577 -186 q 635 -191 623 -191 q 699 -156 675 -191 q 722 -60 722 -121 l 722 0 l 247 754 l 243 753 l 243 0 l 109 0 l 109 987 l 243 987 l 718 233 l 722 235 l 722 987 l 856 987 z "},"ŋ":{"ha":789,"x_min":97,"x_max":687,"o":"m 216 734 l 225 632 q 316 717 262 687 q 439 747 370 747 q 622 678 557 747 q 687 463 687 608 l 687 -60 q 629 -235 687 -174 q 466 -296 570 -296 q 427 -293 445 -296 q 390 -284 409 -290 l 399 -176 q 431 -181 408 -179 q 466 -184 454 -184 q 530 -152 507 -184 q 553 -60 553 -120 l 553 460 q 515 598 553 557 q 397 639 476 639 q 298 616 340 639 q 231 554 256 594 l 231 0 l 97 0 l 97 734 l 216 734 z "},"Ō":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 722 1126 l 233 1126 l 233 1225 l 722 1225 l 722 1126 z "},"ō":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 643 894 l 154 894 l 154 993 l 643 993 l 643 894 z "},"Ŏ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 673 1282 l 674 1278 q 622 1150 677 1200 q 474 1101 567 1101 q 326 1150 380 1101 q 274 1278 271 1200 l 275 1282 l 378 1282 q 401 1210 378 1238 q 474 1182 424 1182 q 547 1210 523 1182 q 570 1282 570 1238 l 673 1282 z "},"ŏ":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 594 1050 l 595 1046 q 543 918 598 967 q 395 868 488 868 q 247 918 302 868 q 195 1046 192 967 l 197 1050 l 299 1050 q 322 977 299 1005 q 395 949 345 949 q 468 978 444 949 q 492 1050 492 1006 l 594 1050 z "},"Ő":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 659 1280 l 814 1280 l 817 1276 l 613 1100 l 497 1100 l 496 1103 l 659 1280 m 438 1280 l 581 1280 l 583 1277 l 420 1100 l 313 1100 l 438 1280 z "},"ő":{"ha":789,"x_min":66,"x_max":738,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 581 1048 l 736 1048 l 738 1044 l 534 867 l 418 867 l 417 871 l 581 1048 m 359 1048 l 503 1048 l 504 1044 l 341 867 l 235 867 l 359 1048 z "},"Œ":{"ha":1329,"x_min":71,"x_max":1269,"o":"m 1269 0 l 646 0 q 540 -11 584 -7 q 450 -14 496 -14 q 176 98 281 -14 q 71 391 71 211 l 71 597 q 175 889 71 777 q 449 1002 280 1002 q 544 998 496 1002 q 646 987 593 994 l 1261 987 l 1261 882 l 747 882 l 747 563 l 1200 563 l 1200 458 l 747 458 l 747 104 l 1269 104 l 1269 0 m 450 91 q 533 94 492 91 q 614 103 574 97 l 614 884 q 531 893 572 889 q 449 897 490 897 q 269 820 334 897 q 204 598 204 743 l 204 391 q 270 168 204 245 q 450 91 336 91 z "},"œ":{"ha":1257,"x_min":66,"x_max":1209,"o":"m 929 -14 q 771 21 840 -14 q 659 122 703 57 q 548 21 615 57 q 395 -14 481 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 q 154 642 66 536 q 393 747 242 747 q 549 710 481 747 q 661 607 617 673 q 770 710 705 673 q 909 747 836 747 q 1133 658 1057 747 q 1209 419 1209 568 l 1209 336 l 733 336 l 731 332 q 785 158 733 227 q 929 90 836 90 q 1048 110 997 90 q 1137 163 1099 129 l 1189 76 q 1085 12 1149 37 q 929 -14 1021 -14 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 909 642 q 794 586 842 642 q 736 444 747 529 l 737 440 l 1076 440 l 1076 458 q 1034 589 1076 536 q 909 642 991 642 z "},"Ŕ":{"ha":920,"x_min":122,"x_max":855,"o":"m 256 428 l 256 0 l 122 0 l 122 987 l 479 987 q 727 915 642 987 q 812 706 812 843 q 773 574 812 630 q 657 484 733 517 q 774 398 739 458 q 810 252 810 339 l 810 159 q 820 76 810 113 q 855 16 830 39 l 855 0 l 718 0 q 684 68 691 23 q 676 160 676 113 l 676 250 q 629 379 676 330 q 504 428 583 428 l 256 428 m 256 533 l 466 533 q 629 576 579 533 q 679 707 679 619 q 630 837 679 791 q 479 882 582 882 l 256 882 l 256 533 m 485 1236 l 641 1236 l 642 1232 l 459 1055 l 359 1055 l 485 1236 z "},"ŕ":{"ha":476,"x_min":97,"x_max":502,"o":"m 444 616 l 376 620 q 287 595 323 620 q 231 524 250 570 l 231 0 l 97 0 l 97 734 l 216 734 l 229 627 q 306 715 260 684 q 412 747 352 747 q 440 745 427 747 q 463 740 454 743 l 444 616 m 345 1017 l 500 1017 l 502 1013 l 319 837 l 219 837 l 345 1017 z "},"Ŗ":{"ha":920,"x_min":122,"x_max":855,"o":"m 256 428 l 256 0 l 122 0 l 122 987 l 479 987 q 727 915 642 987 q 812 706 812 843 q 773 574 812 630 q 657 484 733 517 q 774 398 739 458 q 810 252 810 339 l 810 159 q 820 76 810 113 q 855 16 830 39 l 855 0 l 718 0 q 684 68 691 23 q 676 160 676 113 l 676 250 q 629 379 676 330 q 504 428 583 428 l 256 428 m 256 533 l 466 533 q 629 576 579 533 q 679 707 679 619 q 630 837 679 791 q 479 882 582 882 l 256 882 l 256 533 m 469 -161 l 386 -322 l 320 -322 l 361 -155 l 361 -66 l 469 -66 l 469 -161 z "},"ŗ":{"ha":476,"x_min":73,"x_max":463,"o":"m 444 616 l 376 620 q 287 595 323 620 q 231 524 250 570 l 231 0 l 97 0 l 97 734 l 216 734 l 229 627 q 306 715 260 684 q 412 747 352 747 q 440 745 427 747 q 463 740 454 743 l 444 616 m 221 -161 l 138 -322 l 73 -322 l 114 -155 l 114 -66 l 221 -66 l 221 -161 z "},"Ř":{"ha":920,"x_min":122,"x_max":855,"o":"m 256 428 l 256 0 l 122 0 l 122 987 l 479 987 q 727 915 642 987 q 812 706 812 843 q 773 574 812 630 q 657 484 733 517 q 774 398 739 458 q 810 252 810 339 l 810 159 q 820 76 810 113 q 855 16 830 39 l 855 0 l 718 0 q 684 68 691 23 q 676 160 676 113 l 676 250 q 629 379 676 330 q 504 428 583 428 l 256 428 m 256 533 l 466 533 q 629 576 579 533 q 679 707 679 619 q 630 837 679 791 q 479 882 582 882 l 256 882 l 256 533 m 420 1164 l 519 1265 l 635 1265 l 635 1253 l 460 1086 l 380 1086 l 208 1251 l 208 1265 l 320 1265 l 420 1164 z "},"ř":{"ha":476,"x_min":68,"x_max":496,"o":"m 444 616 l 376 620 q 287 595 323 620 q 231 524 250 570 l 231 0 l 97 0 l 97 734 l 216 734 l 229 627 q 306 715 260 684 q 412 747 352 747 q 440 745 427 747 q 463 740 454 743 l 444 616 m 281 946 l 380 1046 l 496 1046 l 496 1034 l 321 868 l 241 868 l 68 1033 l 68 1046 l 181 1046 l 281 946 z "},"Ś":{"ha":866,"x_min":66,"x_max":793,"o":"m 660 249 q 609 362 660 317 q 429 439 558 408 q 184 549 272 477 q 96 732 96 622 q 191 924 96 847 q 436 1002 286 1002 q 694 913 598 1002 q 787 707 790 824 l 785 703 l 658 703 q 601 843 658 789 q 436 897 543 897 q 283 851 336 897 q 230 734 230 806 q 288 626 230 669 q 475 551 345 583 q 712 437 631 512 q 793 250 793 361 q 696 58 793 131 q 441 -14 598 -14 q 179 66 293 -14 q 69 280 66 146 l 71 284 l 198 284 q 268 140 198 189 q 441 90 338 90 q 601 133 542 90 q 660 249 660 176 m 480 1250 l 636 1250 l 637 1246 l 454 1069 l 355 1069 l 480 1250 z "},"ś":{"ha":726,"x_min":70,"x_max":657,"o":"m 524 195 q 490 267 524 239 q 363 317 456 296 q 162 396 229 346 q 94 532 94 446 q 170 684 94 621 q 368 747 246 747 q 572 682 496 747 q 644 522 648 616 l 643 517 l 515 517 q 475 604 515 566 q 368 642 435 642 q 262 611 297 642 q 228 536 228 580 q 258 467 228 492 q 382 422 289 442 q 589 341 522 393 q 657 204 657 290 q 578 46 657 106 q 372 -14 499 -14 q 151 57 231 -14 q 74 223 70 128 l 75 227 l 203 227 q 256 123 206 156 q 372 90 305 90 q 483 119 443 90 q 524 195 524 148 m 427 1017 l 583 1017 l 585 1013 l 401 837 l 302 837 l 427 1017 z "},"Ŝ":{"ha":866,"x_min":66,"x_max":793,"o":"m 660 249 q 609 362 660 317 q 429 439 558 408 q 184 549 272 477 q 96 732 96 622 q 191 924 96 847 q 436 1002 286 1002 q 694 913 598 1002 q 787 707 790 824 l 785 703 l 658 703 q 601 843 658 789 q 436 897 543 897 q 283 851 336 897 q 230 734 230 806 q 288 626 230 669 q 475 551 345 583 q 712 437 631 512 q 793 250 793 361 q 696 58 793 131 q 441 -14 598 -14 q 179 66 293 -14 q 69 280 66 146 l 71 284 l 198 284 q 268 140 198 189 q 441 90 338 90 q 601 133 542 90 q 660 249 660 176 m 625 1117 l 625 1100 l 515 1100 l 416 1200 l 317 1100 l 208 1100 l 208 1118 l 375 1278 l 456 1278 l 625 1117 z "},"ŝ":{"ha":726,"x_min":70,"x_max":657,"o":"m 524 195 q 490 267 524 239 q 363 317 456 296 q 162 396 229 346 q 94 532 94 446 q 170 684 94 621 q 368 747 246 747 q 572 682 496 747 q 644 522 648 616 l 643 517 l 515 517 q 475 604 515 566 q 368 642 435 642 q 262 611 297 642 q 228 536 228 580 q 258 467 228 492 q 382 422 289 442 q 589 341 522 393 q 657 204 657 290 q 578 46 657 106 q 372 -14 499 -14 q 151 57 231 -14 q 74 223 70 128 l 75 227 l 203 227 q 256 123 206 156 q 372 90 305 90 q 483 119 443 90 q 524 195 524 148 m 572 884 l 572 867 l 463 867 l 363 968 l 264 867 l 155 867 l 155 885 l 322 1046 l 404 1046 l 572 884 z "},"Ş":{"ha":866,"x_min":66,"x_max":793,"o":"m 660 249 q 609 362 660 317 q 429 439 558 408 q 184 549 272 477 q 96 732 96 622 q 191 924 96 847 q 436 1002 286 1002 q 694 913 598 1002 q 787 707 790 824 l 785 703 l 658 703 q 601 843 658 789 q 436 897 543 897 q 283 851 336 897 q 230 734 230 806 q 288 626 230 669 q 475 551 345 583 q 712 437 631 512 q 793 250 793 361 q 696 58 793 131 q 441 -14 598 -14 q 179 66 293 -14 q 69 280 66 146 l 71 284 l 198 284 q 268 140 198 189 q 441 90 338 90 q 601 133 542 90 q 660 249 660 176 m 467 -5 l 459 -41 q 532 -76 503 -48 q 562 -158 562 -104 q 508 -262 562 -223 q 355 -300 454 -300 l 350 -227 q 429 -210 399 -227 q 458 -160 458 -193 q 434 -115 458 -127 q 351 -97 410 -102 l 372 -5 l 467 -5 z "},"ş":{"ha":726,"x_min":70,"x_max":657,"o":"m 524 195 q 490 267 524 239 q 363 317 456 296 q 162 396 229 346 q 94 532 94 446 q 170 684 94 621 q 368 747 246 747 q 572 682 496 747 q 644 522 648 616 l 643 517 l 515 517 q 475 604 515 566 q 368 642 435 642 q 262 611 297 642 q 228 536 228 580 q 258 467 228 492 q 382 422 289 442 q 589 341 522 393 q 657 204 657 290 q 578 46 657 106 q 372 -14 499 -14 q 151 57 231 -14 q 74 223 70 128 l 75 227 l 203 227 q 256 123 206 156 q 372 90 305 90 q 483 119 443 90 q 524 195 524 148 m 414 -5 l 406 -40 q 479 -75 450 -47 q 509 -157 509 -103 q 455 -261 509 -222 q 302 -300 401 -300 l 297 -226 q 376 -209 346 -226 q 406 -159 406 -193 q 381 -114 406 -127 q 298 -96 357 -101 l 319 -5 l 414 -5 z "},"Š":{"ha":866,"x_min":66,"x_max":793,"o":"m 660 249 q 609 362 660 317 q 429 439 558 408 q 184 549 272 477 q 96 732 96 622 q 191 924 96 847 q 436 1002 286 1002 q 694 913 598 1002 q 787 707 790 824 l 785 703 l 658 703 q 601 843 658 789 q 436 897 543 897 q 283 851 336 897 q 230 734 230 806 q 288 626 230 669 q 475 551 345 583 q 712 437 631 512 q 793 250 793 361 q 696 58 793 131 q 441 -14 598 -14 q 179 66 293 -14 q 69 280 66 146 l 71 284 l 198 284 q 268 140 198 189 q 441 90 338 90 q 601 133 542 90 q 660 249 660 176 m 415 1179 l 515 1279 l 630 1279 l 630 1267 l 456 1101 l 375 1101 l 203 1265 l 203 1279 l 315 1279 l 415 1179 z "},"š":{"ha":726,"x_min":70,"x_max":657,"o":"m 524 195 q 490 267 524 239 q 363 317 456 296 q 162 396 229 346 q 94 532 94 446 q 170 684 94 621 q 368 747 246 747 q 572 682 496 747 q 644 522 648 616 l 643 517 l 515 517 q 475 604 515 566 q 368 642 435 642 q 262 611 297 642 q 228 536 228 580 q 258 467 228 492 q 382 422 289 442 q 589 341 522 393 q 657 204 657 290 q 578 46 657 106 q 372 -14 499 -14 q 151 57 231 -14 q 74 223 70 128 l 75 227 l 203 227 q 256 123 206 156 q 372 90 305 90 q 483 119 443 90 q 524 195 524 148 m 362 946 l 462 1046 l 577 1046 l 577 1034 l 403 868 l 322 868 l 150 1033 l 150 1046 l 262 1046 l 362 946 z "},"Ţ":{"ha":814,"x_min":23,"x_max":791,"o":"m 791 882 l 473 882 l 473 0 l 340 0 l 340 882 l 23 882 l 23 987 l 791 987 l 791 882 m 457 -161 l 374 -322 l 309 -322 l 350 -155 l 350 -66 l 457 -66 l 457 -161 z "},"ţ":{"ha":480,"x_min":23,"x_max":419,"o":"m 273 911 l 273 734 l 412 734 l 412 635 l 273 635 l 273 189 q 295 117 273 138 q 351 96 316 96 q 377 98 363 96 q 401 105 391 101 l 419 14 q 375 -6 404 1 q 317 -14 347 -14 q 188 35 236 -14 q 140 189 140 84 l 140 635 l 23 635 l 23 734 l 140 734 l 140 911 l 273 911 m 357 -168 l 275 -329 l 209 -329 l 250 -162 l 250 -73 l 357 -73 l 357 -168 z "},"Ť":{"ha":814,"x_min":23,"x_max":791,"o":"m 791 882 l 473 882 l 473 0 l 340 0 l 340 882 l 23 882 l 23 987 l 791 987 l 791 882 m 408 1164 l 508 1264 l 623 1264 l 623 1252 l 449 1086 l 368 1086 l 196 1251 l 196 1264 l 309 1264 l 408 1164 z "},"ť":{"ha":507,"x_min":23,"x_max":518,"o":"m 273 911 l 273 734 l 412 734 l 412 635 l 273 635 l 273 189 q 295 117 273 138 q 351 96 316 96 q 377 98 363 96 q 401 105 391 101 l 419 14 q 375 -6 404 1 q 317 -14 347 -14 q 188 35 236 -14 q 140 189 140 84 l 140 635 l 23 635 l 23 734 l 140 734 l 140 911 l 273 911 m 518 981 l 435 821 l 370 821 l 411 987 l 411 1076 l 518 1076 l 518 981 z "},"Ŧ":{"ha":814,"x_min":23,"x_max":791,"o":"m 623 556 l 473 556 l 473 0 l 340 0 l 340 556 l 188 556 l 188 661 l 340 661 l 340 882 l 23 882 l 23 987 l 791 987 l 791 882 l 473 882 l 473 661 l 623 661 l 623 556 z "},"ŧ":{"ha":480,"x_min":-5,"x_max":429,"o":"m 273 911 l 273 734 l 412 734 l 412 635 l 273 635 l 273 512 l 429 512 l 429 407 l 273 407 l 273 189 q 295 117 273 138 q 351 96 316 96 q 377 98 363 96 q 401 105 391 101 l 419 14 q 375 -6 404 1 q 317 -14 347 -14 q 188 35 236 -14 q 140 189 140 84 l 140 407 l -5 407 l -5 512 l 140 512 l 140 635 l 23 635 l 23 734 l 140 734 l 140 911 l 273 911 z "},"Ũ":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 708 1251 q 668 1143 708 1187 q 566 1099 627 1099 q 466 1130 518 1099 q 379 1162 414 1162 q 330 1140 350 1162 q 311 1086 311 1118 l 237 1104 q 277 1214 237 1167 q 379 1260 317 1260 q 474 1228 417 1260 q 566 1196 531 1196 q 614 1218 594 1196 q 635 1272 635 1240 l 708 1251 z "},"ũ":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 629 1018 q 588 910 629 954 q 487 866 548 866 q 387 898 439 866 q 300 929 334 929 q 251 907 271 929 q 231 854 231 885 l 158 871 q 198 981 158 935 q 300 1027 238 1027 q 395 996 338 1027 q 487 964 452 964 q 535 986 515 964 q 555 1040 555 1008 l 629 1018 z "},"Ū":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 721 1112 l 232 1112 l 232 1211 l 721 1211 l 721 1112 z "},"ū":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 642 881 l 153 881 l 153 980 l 642 980 l 642 881 z "},"Ŭ":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 672 1268 l 673 1264 q 621 1136 676 1185 q 473 1086 566 1086 q 325 1136 380 1086 q 273 1264 270 1185 l 275 1268 l 377 1268 q 400 1196 377 1223 q 473 1168 423 1168 q 546 1196 522 1168 q 570 1268 570 1224 l 672 1268 z "},"ŭ":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 593 1036 l 594 1031 q 542 903 597 953 q 394 854 487 854 q 245 903 300 854 q 194 1031 191 953 l 195 1036 l 298 1036 q 321 963 298 991 q 394 935 344 935 q 467 963 443 935 q 490 1036 490 991 l 593 1036 z "},"Ů":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 331 1176 q 372 1272 331 1233 q 472 1310 413 1310 q 570 1272 530 1310 q 611 1176 611 1234 q 571 1081 611 1118 q 472 1044 530 1044 q 372 1081 413 1044 q 331 1176 331 1118 m 401 1176 q 422 1126 401 1147 q 472 1105 443 1105 q 521 1125 500 1105 q 541 1176 541 1145 q 521 1227 541 1206 q 472 1249 500 1249 q 422 1227 443 1249 q 401 1176 401 1206 z "},"ů":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 252 943 q 293 1039 252 1000 q 393 1078 334 1078 q 491 1039 450 1078 q 532 943 532 1001 q 491 848 532 885 q 393 812 451 812 q 293 848 334 812 q 252 943 252 885 m 321 943 q 342 893 321 914 q 393 873 363 873 q 441 893 421 873 q 462 943 462 913 q 441 995 462 974 q 393 1016 421 1016 q 342 995 363 1016 q 321 943 321 974 z "},"Ű":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 659 1266 l 814 1266 l 816 1262 l 612 1086 l 496 1086 l 495 1089 l 659 1266 m 437 1266 l 581 1266 l 582 1263 l 419 1086 l 313 1086 l 437 1266 z "},"ű":{"ha":789,"x_min":94,"x_max":736,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 579 1034 l 734 1034 l 736 1029 l 533 853 l 417 853 l 416 857 l 579 1034 m 358 1034 l 501 1034 l 503 1030 l 340 853 l 233 853 l 358 1034 z "},"Ų":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 551 0 q 477 -67 504 -35 q 450 -136 450 -100 q 466 -181 450 -165 q 515 -197 481 -197 q 549 -192 534 -197 q 583 -180 565 -187 l 605 -263 q 551 -284 581 -276 q 481 -293 522 -293 q 375 -256 416 -293 q 334 -151 334 -218 q 375 -48 334 -97 q 503 39 416 1 l 551 0 z "},"ų":{"ha":789,"x_min":94,"x_max":728,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 675 0 q 601 -67 627 -35 q 574 -136 574 -100 q 589 -181 574 -165 q 639 -197 604 -197 q 673 -192 657 -197 q 706 -180 688 -187 l 728 -263 q 674 -284 704 -276 q 604 -293 645 -293 q 499 -256 540 -293 q 458 -151 458 -218 q 499 -48 458 -97 q 626 39 540 1 l 675 0 z "},"Ŵ":{"ha":1227,"x_min":37,"x_max":1182,"o":"m 320 342 l 338 218 l 342 218 l 369 342 l 550 987 l 668 987 l 850 342 l 878 215 l 882 215 l 901 342 l 1048 987 l 1182 987 l 944 0 l 825 0 l 630 685 l 612 774 l 608 774 l 591 685 l 393 0 l 274 0 l 37 987 l 170 987 l 320 342 m 818 1103 l 818 1086 l 709 1086 l 609 1186 l 510 1086 l 401 1086 l 401 1103 l 568 1264 l 650 1264 l 818 1103 z "},"ŵ":{"ha":1051,"x_min":31,"x_max":1017,"o":"m 285 267 l 300 178 l 304 178 l 323 267 l 470 734 l 577 734 l 724 267 l 745 168 l 749 168 l 769 267 l 884 734 l 1017 734 l 804 0 l 696 0 l 555 447 l 524 572 l 520 571 l 491 447 l 351 0 l 243 0 l 31 734 l 163 734 l 285 267 m 733 870 l 733 853 l 624 853 l 524 954 l 425 853 l 317 853 l 317 871 l 484 1031 l 565 1031 l 733 870 z "},"Ŷ":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 m 633 1102 l 633 1085 l 524 1085 l 424 1185 l 325 1085 l 216 1085 l 216 1103 l 383 1263 l 465 1263 l 633 1102 z "},"ŷ":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 557 870 l 557 853 l 448 853 l 349 954 l 250 853 l 141 853 l 141 871 l 308 1031 l 389 1031 l 557 870 z "},"Ÿ":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 m 658 1088 l 509 1088 l 509 1223 l 658 1223 l 658 1088 m 339 1088 l 191 1088 l 191 1223 l 339 1223 l 339 1088 z "},"Ź":{"ha":831,"x_min":66,"x_max":768,"o":"m 216 104 l 768 104 l 768 0 l 66 0 l 66 99 l 593 882 l 73 882 l 73 987 l 746 987 l 746 892 l 216 104 m 477 1236 l 633 1236 l 635 1232 l 452 1055 l 352 1055 l 477 1236 z "},"ź":{"ha":699,"x_min":64,"x_max":647,"o":"m 223 104 l 647 104 l 647 0 l 64 0 l 64 94 l 460 628 l 68 628 l 68 734 l 624 734 l 624 643 l 223 104 m 420 1003 l 576 1003 l 577 999 l 394 823 l 294 823 l 420 1003 z "},"Ż":{"ha":831,"x_min":66,"x_max":768,"o":"m 216 104 l 768 104 l 768 0 l 66 0 l 66 99 l 593 882 l 73 882 l 73 987 l 746 987 l 746 892 l 216 104 m 487 1088 l 339 1088 l 339 1224 l 487 1224 l 487 1088 z "},"ż":{"ha":699,"x_min":64,"x_max":647,"o":"m 223 104 l 647 104 l 647 0 l 64 0 l 64 94 l 460 628 l 68 628 l 68 734 l 624 734 l 624 643 l 223 104 m 429 855 l 281 855 l 281 991 l 429 991 l 429 855 z "},"Ž":{"ha":831,"x_min":66,"x_max":768,"o":"m 216 104 l 768 104 l 768 0 l 66 0 l 66 99 l 593 882 l 73 882 l 73 987 l 746 987 l 746 892 l 216 104 m 412 1164 l 512 1265 l 627 1265 l 627 1253 l 453 1086 l 372 1086 l 200 1251 l 200 1265 l 313 1265 l 412 1164 z "},"ž":{"ha":699,"x_min":64,"x_max":647,"o":"m 223 104 l 647 104 l 647 0 l 64 0 l 64 94 l 460 628 l 68 628 l 68 734 l 624 734 l 624 643 l 223 104 m 355 932 l 454 1032 l 570 1032 l 570 1020 l 395 854 l 315 854 l 142 1019 l 142 1032 l 255 1032 l 355 932 z "},"ſ":{"ha":350,"x_min":108,"x_max":439,"o":"m 108 0 l 108 827 q 170 1008 108 944 q 341 1072 231 1072 q 387 1068 363 1072 q 439 1058 410 1065 l 422 960 q 394 965 409 963 q 362 967 379 967 q 272 930 303 967 q 241 827 241 893 l 241 0 l 108 0 z "},"ƒ":{"ha":476,"x_min":-16,"x_max":477,"o":"m 413 635 l 280 635 l 280 -60 q 222 -235 280 -174 q 60 -296 164 -296 q 20 -293 38 -296 q -16 -284 3 -290 l -6 -182 q 25 -189 2 -186 q 60 -191 47 -191 q 123 -156 100 -191 q 146 -60 146 -121 l 146 635 l 32 635 l 32 734 l 146 734 l 146 827 q 208 1008 146 944 q 379 1072 269 1072 q 426 1068 402 1072 q 477 1058 449 1065 l 461 956 q 432 961 449 959 q 396 963 414 963 q 309 928 337 963 q 280 827 280 893 l 280 734 l 413 734 l 413 635 z "},"Ơ":{"ha":951,"x_min":73,"x_max":1041,"o":"m 866 406 q 754 105 866 224 q 463 -14 642 -14 q 181 105 290 -14 q 73 406 73 224 l 73 581 q 181 882 73 762 q 463 1002 290 1002 q 614 975 544 1002 q 737 898 684 947 q 864 963 821 905 q 907 1121 907 1021 l 1041 1121 q 981 908 1041 991 q 812 802 922 826 q 852 697 838 753 q 866 581 866 641 l 866 406 m 732 583 q 659 805 732 718 q 463 892 586 892 q 276 805 346 892 q 207 583 207 718 l 207 406 q 276 182 207 269 q 463 95 346 95 q 660 181 587 95 q 732 406 732 268 l 732 583 z "},"ơ":{"ha":797,"x_min":66,"x_max":852,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 520 724 463 747 q 621 657 578 700 q 704 714 677 669 q 731 829 731 759 l 852 829 q 807 669 852 732 q 674 583 762 605 q 710 485 698 538 q 723 374 723 432 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 z "},"Ư":{"ha":970,"x_min":100,"x_max":1101,"o":"m 844 987 l 844 867 l 848 865 q 937 939 906 884 q 968 1079 968 994 l 1097 1079 l 1099 1076 q 1034 862 1101 945 q 844 757 968 780 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 z "},"ư":{"ha":817,"x_min":94,"x_max":940,"o":"m 936 832 l 938 828 q 880 643 940 708 q 692 568 820 578 l 692 0 l 572 0 l 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 656 l 696 655 q 792 703 764 660 q 821 832 821 747 l 936 832 z "},"ǰ":{"ha":355,"x_min":-46,"x_max":399,"o":"m 250 734 l 250 -60 q 191 -235 250 -174 q 29 -296 133 -296 q -9 -293 8 -296 q -46 -284 -26 -290 l -37 -182 q -5 -189 -27 -186 q 29 -191 17 -191 q 93 -156 69 -191 q 116 -60 116 -121 l 116 734 l 250 734 m 184 920 l 283 1020 l 399 1020 l 399 1008 l 224 842 l 144 842 l -28 1006 l -28 1020 l 84 1020 l 184 920 z "},"Ǻ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 515 1414 l 650 1414 l 651 1410 l 505 1289 l 417 1289 l 515 1414 m 330 1142 q 365 1223 330 1191 q 449 1255 399 1255 q 530 1223 496 1255 q 564 1142 564 1191 q 531 1062 564 1093 q 449 1031 497 1031 q 365 1062 399 1031 q 330 1142 330 1093 m 390 1142 q 407 1102 390 1118 q 449 1085 425 1085 q 489 1101 472 1085 q 505 1142 505 1118 q 489 1184 505 1167 q 449 1202 472 1202 q 407 1184 425 1202 q 390 1142 390 1167 z "},"ǻ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 444 1196 l 579 1196 l 581 1192 l 434 1070 l 347 1070 l 444 1196 m 260 924 q 294 1005 260 972 q 378 1037 329 1037 q 460 1005 426 1037 q 494 924 494 972 q 460 844 494 875 q 378 812 427 812 q 294 844 329 812 q 260 924 260 875 m 319 924 q 337 883 319 900 q 378 867 354 867 q 418 883 401 867 q 435 924 435 899 q 418 966 435 949 q 378 983 401 983 q 337 966 354 983 q 319 924 319 949 z "},"Ǽ":{"ha":1303,"x_min":-14,"x_max":1281,"o":"m 1281 0 l 674 0 l 664 237 l 286 237 l 149 0 l -14 0 l 583 987 l 1239 987 l 1239 882 l 770 882 l 784 566 l 1184 566 l 1184 461 l 788 461 l 803 104 l 1281 104 l 1281 0 m 356 359 l 659 359 l 638 840 l 635 842 l 356 359 m 699 1236 l 854 1236 l 856 1232 l 673 1055 l 573 1055 l 699 1236 z "},"ǽ":{"ha":1173,"x_min":39,"x_max":1126,"o":"m 856 -14 q 693 19 764 -14 q 578 113 623 52 q 464 22 540 59 q 280 -14 389 -14 q 102 45 165 -14 q 39 206 39 104 q 117 372 39 313 q 345 431 195 431 l 500 431 l 500 488 q 465 601 500 560 q 363 642 430 642 q 252 605 294 642 q 211 515 211 568 l 83 527 l 82 531 q 156 686 79 625 q 363 747 234 747 q 500 720 441 747 q 593 640 559 692 q 696 719 637 691 q 824 747 755 747 q 1047 659 969 747 q 1126 416 1126 571 l 1126 336 l 645 336 l 644 332 q 697 157 644 224 q 856 90 751 90 q 971 109 926 90 q 1069 162 1016 127 l 1114 68 q 1015 12 1078 39 q 856 -14 951 -14 m 307 90 q 414 120 358 90 q 500 188 471 149 l 500 334 l 346 334 q 219 296 264 334 q 173 203 173 258 q 207 122 173 153 q 307 90 241 90 m 824 642 q 701 585 747 642 q 646 437 654 528 l 648 434 l 992 434 l 992 455 q 951 590 992 538 q 824 642 911 642 m 647 1018 l 803 1018 l 804 1014 l 621 838 l 522 838 l 647 1018 z "},"Ǿ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 357 0 408 -14 q 262 41 306 14 l 201 -64 l 100 -64 l 194 95 q 107 232 137 152 q 77 406 77 312 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 587 984 530 1002 q 693 936 644 967 l 748 1029 l 849 1029 l 760 879 q 841 745 812 822 q 869 581 869 669 l 869 406 m 210 406 q 223 298 210 348 q 260 214 236 249 l 264 213 l 633 834 q 557 877 599 862 q 466 892 515 892 q 280 805 349 892 q 210 583 210 718 l 210 406 m 736 583 q 725 679 736 633 q 693 758 713 724 l 689 759 l 322 141 q 388 106 352 118 q 466 95 424 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 538 1278 l 694 1278 l 695 1274 l 512 1097 l 412 1097 l 538 1278 z "},"ǿ":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 466 740 431 747 q 532 719 501 732 l 583 820 l 670 820 l 600 677 q 691 548 659 627 q 723 374 723 469 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 329 -8 360 -14 q 269 8 298 -3 l 220 -92 l 133 -92 l 201 47 q 101 176 136 95 q 66 359 66 258 l 66 374 m 199 359 q 213 246 199 297 q 254 162 227 195 l 258 162 l 484 619 q 441 636 464 630 q 393 642 418 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 589 374 q 577 476 589 428 q 544 555 566 524 l 540 555 l 318 106 q 353 94 334 98 q 395 90 372 90 q 540 166 490 90 q 589 359 589 242 l 589 374 m 430 1017 l 586 1017 l 587 1013 l 404 836 l 304 836 l 430 1017 z "},"Ș":{"ha":866,"x_min":66,"x_max":793,"o":"m 660 249 q 609 362 660 317 q 429 439 558 408 q 184 549 272 477 q 96 732 96 622 q 191 924 96 847 q 436 1002 286 1002 q 694 913 598 1002 q 787 707 790 824 l 785 703 l 658 703 q 601 843 658 789 q 436 897 543 897 q 283 851 336 897 q 230 734 230 806 q 288 626 230 669 q 475 551 345 583 q 712 437 631 512 q 793 250 793 361 q 696 58 793 131 q 441 -14 598 -14 q 179 66 293 -14 q 69 280 66 146 l 71 284 l 198 284 q 268 140 198 189 q 441 90 338 90 q 601 133 542 90 q 660 249 660 176 m 464 -175 l 381 -336 l 315 -336 l 357 -169 l 357 -80 l 464 -80 l 464 -175 z "},"ș":{"ha":726,"x_min":70,"x_max":657,"o":"m 524 195 q 490 267 524 239 q 363 317 456 296 q 162 396 229 346 q 94 532 94 446 q 170 684 94 621 q 368 747 246 747 q 572 682 496 747 q 644 522 648 616 l 643 517 l 515 517 q 475 604 515 566 q 368 642 435 642 q 262 611 297 642 q 228 536 228 580 q 258 467 228 492 q 382 422 289 442 q 589 341 522 393 q 657 204 657 290 q 578 46 657 106 q 372 -14 499 -14 q 151 57 231 -14 q 74 223 70 128 l 75 227 l 203 227 q 256 123 206 156 q 372 90 305 90 q 483 119 443 90 q 524 195 524 148 m 411 -174 l 328 -335 l 262 -335 l 304 -168 l 304 -79 l 411 -79 l 411 -174 z "},"ȷ":{"ha":355,"x_min":-46,"x_max":250,"o":"m 250 734 l 250 -60 q 191 -235 250 -174 q 29 -296 133 -296 q -9 -293 8 -296 q -46 -284 -26 -290 l -37 -182 q -5 -189 -27 -186 q 29 -191 17 -191 q 93 -156 69 -191 q 116 -60 116 -121 l 116 734 l 250 734 z "},"ʼ":{"ha":283,"x_min":54,"x_max":229,"o":"m 229 927 l 120 692 l 54 692 l 95 925 l 95 1058 l 229 1058 l 229 927 z "},"ˆ":{"ha":664,"x_min":116,"x_max":532,"o":"m 532 866 l 532 849 l 423 849 l 323 949 l 224 849 l 116 849 l 116 867 l 283 1027 l 364 1027 l 532 866 z "},"ˇ":{"ha":625,"x_min":95,"x_max":522,"o":"m 307 927 l 407 1027 l 522 1027 l 522 1015 l 348 849 l 267 849 l 95 1014 l 95 1027 l 208 1027 l 307 927 z "},"˘":{"ha":594,"x_min":87,"x_max":494,"o":"m 490 987 l 491 983 q 439 855 494 905 q 291 806 384 806 q 142 855 197 806 q 91 983 87 905 l 92 987 l 195 987 q 218 915 195 943 q 291 887 241 887 q 363 915 340 887 q 387 987 387 943 l 490 987 z "},"˙":{"ha":377,"x_min":109,"x_max":256,"o":"m 256 851 l 109 851 l 109 987 l 256 987 l 256 851 z "},"˚":{"ha":472,"x_min":90,"x_max":370,"o":"m 90 887 q 131 983 90 944 q 231 1021 172 1021 q 330 983 289 1021 q 370 887 370 945 q 330 792 370 829 q 231 755 290 755 q 131 792 172 755 q 90 887 90 829 m 160 887 q 181 837 160 858 q 231 817 202 817 q 280 837 260 817 q 300 887 300 857 q 280 939 300 918 q 231 960 260 960 q 181 939 202 960 q 160 887 160 918 z "},"˛":{"ha":381,"x_min":46,"x_max":317,"o":"m 263 0 q 189 -67 216 -35 q 162 -136 162 -100 q 177 -181 162 -165 q 227 -197 193 -197 q 261 -192 245 -197 q 294 -180 277 -187 l 317 -263 q 263 -284 292 -276 q 193 -293 233 -293 q 87 -256 128 -293 q 46 -151 46 -218 q 87 -48 46 -97 q 214 39 128 1 l 263 0 z "},"˜":{"ha":664,"x_min":92,"x_max":562,"o":"m 562 1011 q 522 903 562 947 q 420 859 481 859 q 320 891 372 859 q 233 922 268 922 q 184 900 204 922 q 165 847 165 878 l 92 865 q 132 974 92 928 q 233 1021 172 1021 q 328 989 271 1021 q 420 957 385 957 q 469 979 448 957 q 489 1033 489 1001 l 562 1011 z "},"˝":{"ha":517,"x_min":68,"x_max":571,"o":"m 414 1029 l 569 1029 l 571 1025 l 368 849 l 252 849 l 250 852 l 414 1029 m 193 1029 l 336 1029 l 337 1026 l 174 849 l 68 849 l 193 1029 z "},"˳":{"ha":456,"x_min":123,"x_max":334,"o":"m 123 -159 q 154 -86 123 -115 q 230 -57 185 -57 q 303 -86 273 -57 q 334 -159 334 -115 q 303 -229 334 -201 q 230 -257 273 -257 q 154 -229 185 -257 q 123 -159 123 -201 m 184 -159 q 197 -189 184 -176 q 230 -202 211 -202 q 260 -190 248 -202 q 273 -159 273 -177 q 260 -125 273 -138 q 230 -112 248 -112 q 197 -125 211 -112 q 184 -159 184 -139 z "},"̀":{"ha":0,"x_min":-553,"x_max":-345,"o":"m -345 821 l -433 821 l -553 1057 l -427 1057 l -345 821 z "},"́":{"ha":0,"x_min":-446,"x_max":-236,"o":"m -359 1057 l -236 1057 l -363 821 l -446 821 l -359 1057 z "},"̃":{"ha":0,"x_min":-599,"x_max":-128,"o":"m -128 1011 q -169 903 -128 947 q -270 859 -209 859 q -370 891 -318 859 q -457 922 -422 922 q -506 900 -486 922 q -526 847 -526 878 l -599 865 q -559 974 -599 928 q -457 1021 -519 1021 q -362 989 -419 1021 q -270 957 -305 957 q -222 979 -242 957 q -201 1033 -201 1001 l -128 1011 z "},"̉":{"ha":0,"x_min":-459,"x_max":-248,"o":"m -446 842 l -446 947 q -373 960 -395 949 q -351 996 -351 971 q -380 1036 -351 1023 q -459 1048 -410 1048 l -454 1122 q -301 1087 -355 1122 q -248 994 -248 1052 q -277 921 -248 946 q -350 890 -306 897 l -351 842 l -446 842 z "},"̏":{"ha":0,"x_min":-665,"x_max":-161,"o":"m -344 852 l -345 849 l -461 849 l -665 1025 l -663 1029 l -507 1029 l -344 852 m -161 849 l -268 849 l -431 1026 l -430 1029 l -286 1029 l -161 849 z "},"̣":{"ha":0,"x_min":-480,"x_max":-332,"o":"m -332 -229 l -480 -229 l -480 -93 l -332 -93 l -332 -229 z "},"΄":{"ha":357,"x_min":132,"x_max":315,"o":"m 174 1119 l 315 1119 l 196 861 l 132 861 l 174 1119 z "},"΅":{"ha":709,"x_min":109,"x_max":589,"o":"m 589 852 l 454 852 l 454 987 l 589 987 l 589 852 m 243 852 l 109 852 l 109 987 l 243 987 l 243 852 m 337 1173 l 485 1173 l 399 996 l 302 996 l 337 1173 z "},"Ά":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 205 1119 l 346 1119 l 227 861 l 163 861 l 205 1119 z "},"·":{"ha":367,"x_min":109,"x_max":243,"o":"m 243 423 l 109 423 l 109 567 l 243 567 l 243 423 z "},"Έ":{"ha":880,"x_min":-20,"x_max":845,"o":"m 776 458 l 323 458 l 323 104 l 845 104 l 845 0 l 190 0 l 190 987 l 838 987 l 838 882 l 323 882 l 323 563 l 776 563 l 776 458 m 22 1120 l 163 1120 l 44 863 l -20 863 l 22 1120 z "},"Ή":{"ha":1059,"x_min":14,"x_max":937,"o":"m 937 0 l 803 0 l 803 436 l 323 436 l 323 0 l 190 0 l 190 987 l 323 987 l 323 541 l 803 541 l 803 987 l 937 987 l 937 0 m 55 1120 l 196 1120 l 77 863 l 14 863 l 55 1120 z "},"Ί":{"ha":460,"x_min":16,"x_max":331,"o":"m 331 0 l 197 0 l 197 987 l 331 987 l 331 0 m 58 1120 l 199 1120 l 80 862 l 16 862 l 58 1120 z "},"Ό":{"ha":960,"x_min":46,"x_max":883,"o":"m 883 406 q 771 105 883 224 q 479 -14 659 -14 q 198 105 307 -14 q 90 406 90 224 l 90 581 q 198 882 90 762 q 479 1002 307 1002 q 771 882 659 1002 q 883 581 883 762 l 883 406 m 749 583 q 676 805 749 718 q 479 892 603 892 q 293 805 363 892 q 224 583 224 718 l 224 406 q 293 182 224 269 q 479 95 363 95 q 676 181 604 95 q 749 406 749 268 l 749 583 m 87 1119 l 229 1119 l 110 861 l 46 861 l 87 1119 z "},"Ύ":{"ha":916,"x_min":-86,"x_max":902,"o":"m 492 486 l 749 987 l 902 987 l 555 347 l 555 0 l 422 0 l 422 356 l 81 987 l 234 987 l 492 486 m -45 1119 l 96 1119 l -22 861 l -86 861 l -45 1119 z "},"Ώ":{"ha":940,"x_min":41,"x_max":849,"o":"m 512 108 q 661 222 608 125 q 714 490 714 319 l 714 570 q 649 812 714 728 q 468 897 583 897 q 288 812 353 897 q 223 570 223 728 l 223 490 q 278 222 223 319 q 429 108 332 124 l 429 0 l 94 0 l 94 104 l 252 104 q 133 274 176 170 q 90 490 90 378 l 90 568 q 194 881 90 761 q 468 1002 299 1002 q 742 881 637 1002 q 848 568 848 761 l 848 490 q 804 274 848 378 q 686 104 761 170 l 849 104 l 849 0 l 512 0 l 512 108 m 83 1119 l 224 1119 l 105 861 l 41 861 l 83 1119 z "},"ΐ":{"ha":456,"x_min":-35,"x_max":446,"o":"m 267 733 l 267 182 q 285 113 267 132 q 334 94 303 94 q 367 99 351 94 q 395 112 383 104 l 425 22 q 365 -7 395 1 q 298 -14 334 -14 q 176 34 218 -14 q 134 189 134 82 l 134 733 l 267 733 m 446 803 l 311 803 l 311 939 l 446 939 l 446 803 m 100 803 l -35 803 l -35 939 l 100 939 l 100 803 m 193 1124 l 341 1124 l 255 947 l 159 947 l 193 1124 z "},"Α":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 z "},"Β":{"ha":888,"x_min":122,"x_max":813,"o":"m 122 0 l 122 987 l 444 987 q 686 921 599 987 q 774 720 774 854 q 732 603 774 654 q 621 526 690 551 q 762 438 711 507 q 813 279 813 370 q 725 72 813 143 q 487 0 637 0 l 122 0 m 256 463 l 256 104 l 487 104 q 629 150 578 104 q 680 277 680 195 q 637 414 680 364 q 507 463 595 463 l 256 463 m 256 568 l 472 568 q 593 609 547 568 q 640 723 640 650 q 590 843 640 803 q 444 882 539 882 l 256 882 l 256 568 z "},"Γ":{"ha":773,"x_min":122,"x_max":728,"o":"m 728 882 l 256 882 l 256 0 l 122 0 l 122 987 l 728 987 l 728 882 z "},"Δ":{"ha":981,"x_min":20,"x_max":944,"o":"m 439 987 l 553 987 l 944 0 l 20 0 l 439 987 m 199 104 l 768 104 l 496 817 l 492 817 l 199 104 z "},"Ε":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 z "},"Ζ":{"ha":831,"x_min":66,"x_max":768,"o":"m 216 104 l 768 104 l 768 0 l 66 0 l 66 99 l 593 882 l 73 882 l 73 987 l 746 987 l 746 892 l 216 104 z "},"Η":{"ha":991,"x_min":122,"x_max":869,"o":"m 869 0 l 735 0 l 735 436 l 256 436 l 256 0 l 122 0 l 122 987 l 256 987 l 256 541 l 735 541 l 735 987 l 869 987 l 869 0 z "},"Θ":{"ha":947,"x_min":77,"x_max":869,"o":"m 650 447 l 305 447 l 305 551 l 650 551 l 650 447 m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 z "},"Ι":{"ha":393,"x_min":129,"x_max":263,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 z "},"Κ":{"ha":893,"x_min":122,"x_max":890,"o":"m 371 446 l 256 446 l 256 0 l 122 0 l 122 987 l 256 987 l 256 551 l 359 551 l 712 987 l 860 987 l 862 984 l 479 510 l 890 3 l 888 0 l 728 0 l 371 446 z "},"Λ":{"ha":912,"x_min":33,"x_max":873,"o":"m 455 794 l 451 794 l 170 0 l 33 0 l 395 987 l 511 987 l 873 0 l 736 0 l 455 794 z "},"Μ":{"ha":1220,"x_min":122,"x_max":1097,"o":"m 293 987 l 608 185 l 612 185 l 926 987 l 1097 987 l 1097 0 l 964 0 l 964 391 l 977 792 l 974 793 l 654 0 l 565 0 l 246 791 l 243 790 l 256 391 l 256 0 l 122 0 l 122 987 l 293 987 z "},"Ν":{"ha":991,"x_min":122,"x_max":869,"o":"m 869 0 l 735 0 l 260 764 l 256 762 l 256 0 l 122 0 l 122 987 l 256 987 l 731 225 l 735 227 l 735 987 l 869 987 l 869 0 z "},"Ξ":{"ha":795,"x_min":83,"x_max":719,"o":"m 83 104 l 719 104 l 719 0 l 83 0 l 83 104 m 140 565 l 656 565 l 656 460 l 140 460 l 140 565 m 84 987 l 711 987 l 711 882 l 84 882 l 84 987 z "},"Ο":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 z "},"Π":{"ha":992,"x_min":122,"x_max":870,"o":"m 870 0 l 736 0 l 736 882 l 256 882 l 256 0 l 122 0 l 122 987 l 870 987 l 870 0 z "},"Ρ":{"ha":890,"x_min":122,"x_max":833,"o":"m 256 396 l 256 0 l 122 0 l 122 987 l 500 987 q 745 906 658 987 q 833 692 833 825 q 745 476 833 557 q 500 396 658 396 l 256 396 m 256 500 l 500 500 q 650 554 600 500 q 699 690 699 608 q 649 827 699 772 q 500 882 600 882 l 256 882 l 256 500 z "},"Σ":{"ha":795,"x_min":47,"x_max":743,"o":"m 514 485 l 212 109 l 214 105 l 743 105 l 743 0 l 47 0 l 47 100 l 373 494 l 47 888 l 47 987 l 709 987 l 709 882 l 214 882 l 212 879 l 514 501 l 514 485 z "},"Τ":{"ha":814,"x_min":23,"x_max":791,"o":"m 791 882 l 473 882 l 473 0 l 340 0 l 340 882 l 23 882 l 23 987 l 791 987 l 791 882 z "},"Υ":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 z "},"Φ":{"ha":976,"x_min":57,"x_max":920,"o":"m 556 833 q 816 734 712 830 q 920 490 920 638 q 816 244 920 340 q 556 144 712 147 l 556 0 l 422 0 l 422 144 q 161 243 265 146 q 57 489 57 339 q 161 734 57 637 q 422 834 265 831 l 422 987 l 556 987 l 556 833 m 189 489 q 249 316 189 380 q 418 254 309 253 l 422 255 l 422 724 l 418 725 q 250 662 310 726 q 189 489 189 597 m 787 490 q 727 662 787 598 q 560 725 667 725 l 556 724 l 556 255 l 560 254 q 727 317 667 253 q 787 490 787 381 z "},"Χ":{"ha":878,"x_min":45,"x_max":840,"o":"m 441 602 l 671 987 l 833 987 l 519 498 l 840 0 l 680 0 l 444 392 l 206 0 l 45 0 l 365 498 l 52 987 l 212 987 l 441 602 z "},"Ψ":{"ha":960,"x_min":59,"x_max":886,"o":"m 534 329 l 538 328 q 694 412 635 340 q 753 600 753 484 l 753 987 l 886 987 l 886 600 q 789 333 886 434 q 534 216 692 233 l 534 0 l 399 0 l 399 217 q 152 334 245 233 q 59 600 59 434 l 59 987 l 192 987 l 192 600 q 248 414 192 485 q 395 329 303 342 l 399 330 l 399 987 l 534 987 l 534 329 z "},"Ω":{"ha":926,"x_min":76,"x_max":836,"o":"m 498 108 q 647 222 594 125 q 701 490 701 319 l 701 570 q 635 812 701 728 q 454 897 570 897 q 275 812 340 897 q 210 570 210 728 l 210 490 q 264 222 210 319 q 416 108 319 124 l 416 0 l 80 0 l 80 104 l 239 104 q 119 274 163 170 q 76 490 76 378 l 76 568 q 181 881 76 761 q 454 1002 286 1002 q 729 881 623 1002 q 834 568 834 761 l 834 490 q 791 274 834 378 q 673 104 747 170 l 836 104 l 836 0 l 498 0 l 498 108 z "},"Ϊ":{"ha":393,"x_min":-36,"x_max":431,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 431 1088 l 283 1088 l 283 1224 l 431 1224 l 431 1088 m 113 1088 l -36 1088 l -36 1224 l 113 1224 l 113 1088 z "},"Ϋ":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 m 658 1088 l 509 1088 l 509 1223 l 658 1223 l 658 1088 m 339 1088 l 191 1088 l 191 1223 l 339 1223 l 339 1088 z "},"ά":{"ha":785,"x_min":66,"x_max":781,"o":"m 679 733 l 679 187 q 693 119 679 138 q 730 100 707 100 q 749 101 741 100 q 766 105 758 102 l 781 9 q 741 -9 762 -5 q 696 -14 721 -14 q 611 7 645 -14 q 561 76 577 29 q 472 8 524 31 q 353 -14 420 -14 q 142 83 218 -14 q 66 339 66 180 l 66 353 q 142 639 66 530 q 354 747 218 747 q 475 723 422 747 q 565 652 528 699 l 600 733 l 679 733 m 200 339 q 246 159 200 228 q 387 90 292 90 q 480 114 441 90 q 545 182 519 138 l 545 187 l 545 554 q 480 618 519 595 q 388 642 441 642 q 246 561 292 642 q 200 353 200 480 l 200 339 m 427 1124 l 568 1124 l 449 866 l 385 866 l 427 1124 z "},"έ":{"ha":748,"x_min":66,"x_max":679,"o":"m 365 323 q 242 295 283 323 q 201 207 201 266 q 247 123 201 157 q 374 90 294 90 q 499 127 450 90 q 548 217 548 165 l 674 217 l 675 213 q 589 45 679 103 q 374 -13 498 -13 q 152 46 237 -13 q 66 207 66 104 q 101 312 66 269 q 203 377 136 355 q 112 442 144 401 q 79 533 79 484 q 158 690 79 635 q 374 746 237 746 q 582 687 498 746 q 663 533 667 627 l 662 529 l 536 529 q 489 610 536 576 q 374 643 441 643 q 254 611 295 643 q 213 533 213 578 q 250 454 213 483 q 365 425 287 425 l 507 425 l 507 323 l 365 323 m 376 1123 l 517 1123 l 399 865 l 335 865 l 376 1123 z "},"ή":{"ha":789,"x_min":97,"x_max":687,"o":"m 216 734 l 225 632 q 316 717 262 687 q 439 747 370 747 q 623 681 559 747 q 687 463 687 615 l 687 -281 l 553 -281 l 553 460 q 515 600 553 557 q 397 642 476 642 q 298 620 340 642 q 231 556 256 597 l 231 0 l 97 0 l 97 734 l 216 734 m 395 1124 l 536 1124 l 417 866 l 353 866 l 395 1124 z "},"ί":{"ha":456,"x_min":134,"x_max":425,"o":"m 267 733 l 267 182 q 285 113 267 132 q 334 94 303 94 q 367 99 351 94 q 395 112 383 104 l 425 22 q 365 -7 395 1 q 298 -14 334 -14 q 176 34 218 -14 q 134 189 134 82 l 134 733 l 267 733 m 208 1111 l 349 1111 l 230 853 l 166 853 l 208 1111 z "},"ΰ":{"ha":789,"x_min":96,"x_max":720,"o":"m 229 734 l 229 319 q 276 145 229 200 q 402 90 323 90 q 541 176 495 90 q 587 381 587 262 q 562 554 585 467 q 503 734 540 642 l 642 734 q 699 573 677 661 q 720 381 720 486 q 645 97 720 208 q 409 -14 570 -14 q 177 68 259 -14 q 96 320 96 150 l 96 734 l 229 734 m 646 803 l 511 803 l 511 939 l 646 939 l 646 803 m 300 803 l 166 803 l 166 939 l 300 939 l 300 803 m 394 1124 l 542 1124 l 456 947 l 359 947 l 394 1124 z "},"α":{"ha":785,"x_min":66,"x_max":781,"o":"m 679 733 l 679 187 q 693 119 679 138 q 730 100 707 100 q 749 101 741 100 q 766 105 758 102 l 781 9 q 741 -9 762 -5 q 696 -14 721 -14 q 611 7 645 -14 q 561 76 577 29 q 472 8 524 31 q 353 -14 420 -14 q 142 83 218 -14 q 66 339 66 180 l 66 353 q 142 639 66 530 q 354 747 218 747 q 475 723 422 747 q 565 652 528 699 l 600 733 l 679 733 m 200 339 q 246 159 200 228 q 387 90 292 90 q 480 114 441 90 q 545 182 519 138 l 545 187 l 545 554 q 480 618 519 595 q 388 642 441 642 q 246 561 292 642 q 200 353 200 480 l 200 339 z "},"β":{"ha":823,"x_min":106,"x_max":748,"o":"m 412 1002 q 624 927 544 1002 q 704 734 704 852 q 670 621 704 673 q 577 538 636 569 q 703 442 658 509 q 748 288 748 376 q 662 66 748 146 q 439 -14 576 -14 q 332 1 384 -14 q 240 47 280 16 l 240 -260 l 106 -260 l 106 728 q 197 921 106 840 q 412 1002 287 1002 m 409 583 q 531 624 492 583 q 570 737 570 665 q 528 849 570 802 q 412 897 486 897 q 290 848 339 897 q 240 728 240 800 l 240 165 q 318 110 270 130 q 426 90 366 90 q 564 144 513 90 q 614 286 614 199 q 570 420 614 361 q 450 478 526 478 l 353 478 l 353 583 l 409 583 z "},"γ":{"ha":699,"x_min":31,"x_max":675,"o":"m 539 734 l 675 734 l 421 42 l 421 -283 l 288 -283 l 288 45 l 31 734 l 168 734 l 342 216 l 353 165 l 357 165 l 370 216 l 539 734 z "},"δ":{"ha":789,"x_min":66,"x_max":723,"o":"m 636 987 l 636 885 l 328 885 l 327 881 l 578 693 q 685 559 647 642 q 723 374 723 475 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 q 137 621 66 519 q 334 743 209 722 l 339 743 l 340 747 l 139 907 l 139 987 l 636 987 m 393 642 q 249 566 298 642 q 199 374 199 489 l 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 z "},"ε":{"ha":748,"x_min":66,"x_max":679,"o":"m 365 323 q 242 295 283 323 q 201 207 201 266 q 247 123 201 157 q 374 90 294 90 q 499 127 450 90 q 548 217 548 165 l 674 217 l 675 213 q 589 45 679 103 q 374 -13 498 -13 q 152 46 237 -13 q 66 207 66 104 q 101 312 66 269 q 203 377 136 355 q 112 442 144 401 q 79 533 79 484 q 158 690 79 635 q 374 746 237 746 q 582 687 498 746 q 663 533 667 627 l 662 529 l 536 529 q 489 610 536 576 q 374 643 441 643 q 254 611 295 643 q 213 533 213 578 q 250 454 213 483 q 365 425 287 425 l 507 425 l 507 323 l 365 323 z "},"ζ":{"ha":726,"x_min":78,"x_max":658,"o":"m 658 987 l 658 911 l 426 618 q 300 438 338 515 q 262 262 262 361 q 297 144 262 184 q 402 104 333 104 l 424 104 q 593 61 532 104 q 654 -68 654 18 q 600 -200 652 -144 q 473 -288 547 -256 l 418 -201 q 495 -151 463 -180 q 527 -75 527 -122 q 499 -20 527 -39 q 410 0 471 0 l 375 0 q 191 73 254 0 q 128 259 128 145 q 175 449 128 340 q 320 673 222 558 l 502 879 l 500 882 l 78 882 l 78 987 l 658 987 z "},"η":{"ha":789,"x_min":97,"x_max":687,"o":"m 216 734 l 225 632 q 316 717 262 687 q 439 747 370 747 q 623 681 559 747 q 687 463 687 615 l 687 -281 l 553 -281 l 553 460 q 515 600 553 557 q 397 642 476 642 q 298 620 340 642 q 231 556 256 597 l 231 0 l 97 0 l 97 734 l 216 734 z "},"θ":{"ha":790,"x_min":81,"x_max":709,"o":"m 709 376 q 626 86 709 187 q 396 -14 542 -14 q 165 87 250 -14 q 81 376 81 188 l 81 610 q 165 900 81 799 q 395 1002 250 1002 q 625 900 541 1002 q 709 610 709 799 l 709 376 m 214 545 l 576 545 l 576 639 q 529 832 576 767 q 395 897 483 897 q 260 832 307 897 q 214 639 214 767 l 214 545 m 576 439 l 214 439 l 214 349 q 261 156 214 221 q 396 90 308 90 q 530 155 484 90 q 576 349 576 220 l 576 439 z "},"ι":{"ha":456,"x_min":134,"x_max":425,"o":"m 267 733 l 267 182 q 285 113 267 132 q 334 94 303 94 q 367 99 351 94 q 395 112 383 104 l 425 22 q 365 -7 395 1 q 298 -14 334 -14 q 176 34 218 -14 q 134 189 134 82 l 134 733 l 267 733 z "},"κ":{"ha":776,"x_min":104,"x_max":738,"o":"m 306 311 l 237 311 l 237 0 l 104 0 l 104 734 l 237 734 l 237 424 l 294 424 l 557 734 l 714 734 l 715 730 l 410 382 l 738 3 l 736 0 l 573 0 l 306 311 z "},"λ":{"ha":789,"x_min":38,"x_max":758,"o":"m 186 0 l 38 0 l 303 697 l 266 795 q 215 888 244 852 q 144 924 185 924 q 119 923 138 924 q 98 921 101 921 l 98 1019 q 133 1026 112 1023 q 171 1029 155 1029 q 310 975 258 1029 q 389 846 362 920 l 633 205 q 672 128 648 157 q 726 100 696 100 q 739 100 736 100 q 758 103 742 100 l 756 -1 q 736 -8 749 -5 q 716 -12 724 -12 q 588 33 636 -12 q 503 172 539 77 l 366 532 l 362 531 l 342 454 l 186 0 z "},"μ":{"ha":789,"x_min":104,"x_max":685,"o":"m 237 734 l 237 298 q 276 134 238 178 q 381 90 313 90 q 489 115 448 90 q 551 186 530 139 l 551 734 l 685 734 l 685 0 l 565 0 l 559 73 q 486 8 529 31 q 387 -14 443 -14 q 301 -3 338 -14 q 237 32 264 8 l 237 -282 l 104 -282 l 104 734 l 237 734 z "},"ν":{"ha":699,"x_min":31,"x_max":675,"o":"m 342 216 l 353 165 l 357 165 l 370 216 l 539 734 l 675 734 l 406 0 l 304 0 l 31 734 l 168 734 l 342 216 z "},"ξ":{"ha":707,"x_min":58,"x_max":675,"o":"m 625 987 l 625 882 l 425 882 q 299 833 341 877 q 256 724 256 789 q 306 624 256 660 q 459 589 355 589 l 556 589 l 556 484 l 459 484 q 266 431 332 484 q 200 274 200 378 q 254 142 200 193 q 404 91 309 91 l 445 91 q 614 48 554 91 q 675 -83 675 5 q 621 -214 673 -158 q 494 -301 568 -269 l 441 -215 q 517 -165 485 -194 q 549 -89 549 -136 q 525 -33 549 -54 q 450 -13 501 -13 l 404 -13 q 160 64 254 -13 q 66 277 66 141 q 120 442 66 375 q 277 538 174 509 q 163 613 204 566 q 123 721 123 661 q 143 814 123 773 q 204 882 164 855 l 58 882 l 58 987 l 625 987 z "},"ο":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 z "},"π":{"ha":828,"x_min":54,"x_max":833,"o":"m 758 628 l 675 628 l 675 182 q 693 113 675 132 q 741 94 711 94 q 774 99 758 94 q 803 112 791 104 l 833 22 q 772 -7 802 1 q 706 -14 742 -14 q 583 34 625 -14 q 541 189 541 82 l 541 628 l 273 628 l 273 0 l 140 0 l 140 628 l 54 628 l 54 734 l 758 734 l 758 628 z "},"ρ":{"ha":789,"x_min":97,"x_max":719,"o":"m 719 339 q 645 83 719 180 q 437 -14 570 -14 q 319 6 371 -14 q 231 66 268 26 l 231 -282 l 97 -282 l 97 391 l 97 391 q 184 653 97 559 q 401 747 271 747 q 637 640 555 747 q 719 353 719 532 l 719 339 m 585 353 q 541 562 585 481 q 401 642 496 642 q 274 564 318 642 q 231 391 231 486 l 231 186 q 296 116 256 141 q 396 90 337 90 q 538 159 490 90 q 585 339 585 229 l 585 353 z "},"ς":{"ha":747,"x_min":66,"x_max":673,"o":"m 389 747 q 594 676 515 747 q 671 485 673 606 l 669 481 l 549 481 q 507 596 549 551 q 389 642 466 642 q 248 564 295 642 q 200 381 200 486 l 200 353 q 256 188 200 256 q 424 103 311 119 q 603 50 546 85 q 660 -70 660 14 q 606 -201 659 -145 q 479 -288 553 -256 l 425 -202 q 501 -152 469 -181 q 533 -76 533 -123 q 503 -26 533 -43 q 409 0 473 -9 q 153 115 239 24 q 66 353 66 207 l 66 381 q 153 641 66 535 q 389 747 239 747 z "},"σ":{"ha":789,"x_min":66,"x_max":779,"o":"m 779 628 l 591 628 q 689 507 654 579 q 723 347 723 435 l 723 332 q 633 88 723 190 q 395 -14 544 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 q 154 632 66 530 q 393 734 241 733 l 779 734 l 779 628 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 555 589 483 q 393 628 490 628 q 249 555 298 628 q 199 374 199 483 l 199 359 z "},"τ":{"ha":727,"x_min":55,"x_max":670,"o":"m 670 630 l 427 630 l 427 0 l 294 0 l 294 630 l 55 630 l 55 734 l 670 734 l 670 630 z "},"υ":{"ha":789,"x_min":96,"x_max":720,"o":"m 229 734 l 229 319 q 276 145 229 200 q 402 90 323 90 q 541 176 495 90 q 587 381 587 262 q 562 554 585 467 q 503 734 540 642 l 642 734 q 699 573 677 661 q 720 381 720 486 q 645 97 720 208 q 409 -14 570 -14 q 177 68 259 -14 q 96 320 96 150 l 96 734 l 229 734 z "},"φ":{"ha":983,"x_min":56,"x_max":927,"o":"m 552 734 q 817 625 707 734 q 927 355 927 516 q 835 106 927 208 q 552 -11 743 5 l 552 -324 l 418 -324 l 418 -11 q 144 115 233 6 q 56 382 56 224 q 78 573 56 486 q 135 734 100 661 l 275 734 q 214 555 236 643 q 190 382 191 468 q 245 197 190 277 q 414 100 300 116 l 418 102 l 418 734 l 552 734 m 793 355 q 728 546 791 466 q 556 624 665 627 l 552 623 l 552 100 l 556 98 q 735 186 676 113 q 793 355 793 260 z "},"χ":{"ha":775,"x_min":64,"x_max":745,"o":"m 137 744 q 276 690 224 744 q 355 562 327 635 l 418 412 l 422 412 l 580 734 l 714 734 l 483 254 l 621 -79 q 664 -154 643 -129 q 714 -180 685 -180 q 727 -179 724 -180 q 745 -176 730 -178 l 743 -286 q 724 -293 736 -290 q 703 -296 711 -296 q 577 -252 624 -296 q 494 -112 530 -208 l 408 92 l 404 92 l 224 -281 l 83 -281 l 342 249 l 232 511 q 180 601 210 566 q 111 635 151 635 q 85 633 104 635 q 64 631 67 631 l 64 734 q 99 741 78 737 q 137 744 121 744 z "},"ψ":{"ha":977,"x_min":62,"x_max":920,"o":"m 546 733 l 546 101 l 550 100 q 728 197 670 115 q 787 385 787 279 q 762 556 785 469 q 702 734 740 644 l 842 734 q 899 575 877 662 q 920 385 920 488 q 830 113 920 222 q 546 -12 740 3 l 546 -321 l 412 -321 l 412 -10 q 153 109 244 7 q 62 404 62 212 l 62 734 l 195 734 l 195 403 q 253 188 195 262 q 408 101 310 114 l 412 102 l 412 733 l 546 733 z "},"ω":{"ha":1181,"x_min":73,"x_max":1107,"o":"m 318 734 q 239 555 268 643 q 207 381 210 467 q 245 171 207 252 q 364 90 283 90 q 480 145 437 90 q 523 319 523 200 l 523 522 l 657 522 l 657 319 q 700 145 657 200 q 816 90 743 90 q 935 171 897 90 q 973 381 973 251 q 941 555 970 467 q 862 734 911 643 l 1002 734 q 1078 574 1048 662 q 1107 381 1107 486 q 1038 97 1107 208 q 823 -14 970 -14 q 678 27 737 -14 q 590 149 618 68 q 502 27 561 68 q 357 -14 442 -14 q 142 97 210 -14 q 73 381 73 208 q 102 574 73 486 q 178 734 131 663 l 318 734 z "},"ϊ":{"ha":456,"x_min":-27,"x_max":440,"o":"m 267 733 l 267 182 q 285 113 267 132 q 334 94 303 94 q 367 99 351 94 q 395 112 383 104 l 425 22 q 365 -7 395 1 q 298 -14 334 -14 q 176 34 218 -14 q 134 189 134 82 l 134 733 l 267 733 m 440 856 l 292 856 l 292 991 l 440 991 l 440 856 m 121 856 l -27 856 l -27 991 l 121 991 l 121 856 z "},"ϋ":{"ha":789,"x_min":96,"x_max":720,"o":"m 229 734 l 229 319 q 276 145 229 200 q 402 90 323 90 q 541 176 495 90 q 587 381 587 262 q 562 554 585 467 q 503 734 540 642 l 642 734 q 699 573 677 661 q 720 381 720 486 q 645 97 720 208 q 409 -14 570 -14 q 177 68 259 -14 q 96 320 96 150 l 96 734 l 229 734 m 641 856 l 492 856 l 492 991 l 641 991 l 641 856 m 322 856 l 174 856 l 174 991 l 322 991 l 322 856 z "},"ό":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 397 1124 l 538 1124 l 420 866 l 356 866 l 397 1124 z "},"ύ":{"ha":789,"x_min":96,"x_max":720,"o":"m 229 734 l 229 319 q 276 145 229 200 q 402 90 323 90 q 541 176 495 90 q 587 381 587 262 q 562 554 585 467 q 503 734 540 642 l 642 734 q 699 573 677 661 q 720 381 720 486 q 645 97 720 208 q 409 -14 570 -14 q 177 68 259 -14 q 96 320 96 150 l 96 734 l 229 734 m 410 1111 l 551 1111 l 432 853 l 368 853 l 410 1111 z "},"ώ":{"ha":1181,"x_min":73,"x_max":1107,"o":"m 318 734 q 239 555 268 643 q 207 381 210 467 q 245 171 207 252 q 364 90 283 90 q 480 145 437 90 q 523 319 523 200 l 523 522 l 657 522 l 657 319 q 700 145 657 200 q 816 90 743 90 q 935 171 897 90 q 973 381 973 251 q 941 555 970 467 q 862 734 911 643 l 1002 734 q 1078 574 1048 662 q 1107 381 1107 486 q 1038 97 1107 208 q 823 -14 970 -14 q 678 27 737 -14 q 590 149 618 68 q 502 27 561 68 q 357 -14 442 -14 q 142 97 210 -14 q 73 381 73 208 q 102 574 73 486 q 178 734 131 663 l 318 734 m 593 1111 l 734 1111 l 615 853 l 551 853 l 593 1111 z "},"ϑ":{"ha":858,"x_min":77,"x_max":814,"o":"m 353 703 l 353 745 q 417 931 353 861 q 584 1002 481 1002 q 752 933 690 1002 q 814 745 814 865 l 814 401 q 710 99 814 213 q 439 -14 607 -14 q 177 104 277 -14 q 77 401 77 222 l 77 849 l 210 850 l 210 401 q 272 180 210 266 q 439 95 334 95 q 615 175 551 95 q 681 397 680 256 q 443 487 533 402 q 353 703 353 572 m 681 745 q 656 855 681 818 q 584 892 631 892 q 513 855 539 892 q 487 745 487 818 l 487 701 q 538 566 487 620 q 677 510 589 513 l 681 511 l 681 745 z "},"ϒ":{"ha":739,"x_min":-15,"x_max":751,"o":"m 503 840 q 579 960 538 924 q 676 995 621 995 q 716 991 699 995 q 751 979 733 988 l 735 876 q 724 879 732 878 q 708 881 717 881 q 667 869 686 881 q 637 831 648 857 l 434 392 l 434 0 l 301 0 l 301 392 l 98 831 q 67 869 86 857 q 27 881 49 881 q 11 879 18 881 q 0 876 3 878 l -15 979 q 18 991 1 988 q 59 995 35 995 q 155 960 113 995 q 232 840 197 924 l 353 565 l 366 517 l 370 517 l 382 565 l 503 840 z "},"ϖ":{"ha":1090,"x_min":53,"x_max":1059,"o":"m 1059 628 l 968 628 q 999 511 988 573 q 1010 381 1010 450 q 951 97 1010 209 q 768 -14 892 -14 q 631 27 687 -14 q 548 146 575 68 q 465 26 520 67 q 329 -14 409 -14 q 145 97 203 -14 q 86 381 86 209 q 97 511 86 450 q 128 628 108 573 l 53 628 l 53 734 l 1059 734 l 1059 628 m 877 381 q 861 503 875 441 q 825 628 848 565 l 272 628 q 235 503 248 564 q 220 381 221 441 q 248 171 220 252 q 336 90 276 90 q 442 145 403 90 q 481 319 481 200 l 481 488 l 616 488 l 616 319 q 655 145 616 200 q 761 90 694 90 q 848 171 820 90 q 877 381 877 252 z "},"Ѐ":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 482 1058 l 375 1058 l 205 1234 l 208 1238 l 363 1238 l 482 1058 z "},"Ё":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 660 1088 l 511 1088 l 511 1224 l 660 1224 l 660 1088 m 341 1088 l 193 1088 l 193 1224 l 341 1224 l 341 1088 z "},"Ђ":{"ha":1042,"x_min":28,"x_max":990,"o":"m 795 882 l 444 882 l 444 570 q 549 595 498 585 q 637 605 601 605 q 897 523 804 605 q 990 294 990 441 q 904 71 990 147 q 656 -4 818 -6 l 653 -3 l 652 93 q 809 144 762 93 q 857 294 857 196 q 801 442 855 391 q 637 493 746 493 q 544 485 595 493 q 444 462 492 476 l 444 0 l 311 0 l 311 882 l 28 882 l 28 987 l 795 987 l 795 882 z "},"Ѓ":{"ha":773,"x_min":122,"x_max":728,"o":"m 728 882 l 256 882 l 256 0 l 122 0 l 122 987 l 728 987 l 728 882 m 489 1236 l 645 1236 l 646 1232 l 463 1055 l 363 1055 l 489 1236 z "},"Є":{"ha":940,"x_min":92,"x_max":836,"o":"m 831 317 l 833 313 q 735 80 836 174 q 470 -14 635 -14 q 197 105 302 -14 q 92 406 92 224 l 92 582 q 197 883 92 764 q 470 1002 302 1002 q 736 913 637 1002 q 833 677 836 824 l 831 673 l 703 673 q 642 837 703 777 q 470 897 581 897 q 292 807 358 897 q 225 583 225 717 l 225 551 l 606 551 l 606 447 l 225 447 l 225 406 q 292 181 225 271 q 470 91 358 91 q 642 151 581 91 q 703 317 703 211 l 831 317 z "},"Ѕ":{"ha":866,"x_min":66,"x_max":793,"o":"m 660 249 q 609 362 660 317 q 429 439 558 408 q 184 549 272 477 q 96 732 96 622 q 191 924 96 847 q 436 1002 286 1002 q 694 913 598 1002 q 787 707 790 824 l 785 703 l 658 703 q 601 843 658 789 q 436 897 543 897 q 283 851 336 897 q 230 734 230 806 q 288 626 230 669 q 475 551 345 583 q 712 437 631 512 q 793 250 793 361 q 696 58 793 131 q 441 -14 598 -14 q 179 66 293 -14 q 69 280 66 146 l 71 284 l 198 284 q 268 140 198 189 q 441 90 338 90 q 601 133 542 90 q 660 249 660 176 z "},"І":{"ha":393,"x_min":129,"x_max":263,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 z "},"Ї":{"ha":393,"x_min":-36,"x_max":431,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 431 1088 l 283 1088 l 283 1224 l 431 1224 l 431 1088 m 113 1088 l -36 1088 l -36 1224 l 113 1224 l 113 1088 z "},"Ј":{"ha":766,"x_min":41,"x_max":653,"o":"m 519 987 l 653 987 l 653 273 q 569 63 653 141 q 352 -14 486 -14 q 125 58 210 -14 q 45 268 41 130 l 46 272 l 174 272 q 221 135 174 180 q 352 90 267 90 q 473 140 426 90 q 519 273 519 190 l 519 987 z "},"Љ":{"ha":1493,"x_min":34,"x_max":1438,"o":"m 862 987 l 862 603 l 1105 603 q 1351 519 1263 603 q 1438 301 1438 435 q 1351 83 1438 167 q 1105 0 1263 0 l 728 0 l 728 882 l 387 882 l 386 522 q 312 125 385 250 q 69 0 239 0 l 34 0 l 34 104 l 61 104 q 208 201 163 104 q 253 522 252 298 l 253 987 l 862 987 m 862 498 l 862 104 l 1105 104 q 1255 162 1205 104 q 1305 302 1305 219 q 1255 441 1305 385 q 1105 498 1205 498 l 862 498 z "},"Њ":{"ha":1500,"x_min":122,"x_max":1446,"o":"m 256 561 l 736 561 l 736 987 l 869 987 l 869 570 l 1114 570 q 1359 492 1272 570 q 1446 288 1446 415 q 1358 80 1446 159 q 1114 0 1271 0 l 736 0 l 736 456 l 256 456 l 256 0 l 122 0 l 122 987 l 256 987 l 256 561 m 869 465 l 869 112 l 1114 112 q 1263 162 1213 112 q 1313 289 1313 212 q 1263 415 1313 365 q 1114 465 1213 465 l 869 465 z "},"Ћ":{"ha":1133,"x_min":45,"x_max":1016,"o":"m 812 882 l 454 882 l 454 589 q 559 609 506 602 q 684 616 613 616 q 931 544 847 616 q 1016 312 1016 472 l 1016 0 l 882 0 l 882 312 q 835 467 882 423 q 684 510 788 510 q 567 503 623 510 q 454 481 510 495 l 454 0 l 321 0 l 321 882 l 45 882 l 45 987 l 812 987 l 812 882 z "},"Ќ":{"ha":893,"x_min":122,"x_max":890,"o":"m 371 446 l 256 446 l 256 0 l 122 0 l 122 987 l 256 987 l 256 551 l 359 551 l 712 987 l 860 987 l 862 984 l 479 510 l 890 3 l 888 0 l 728 0 l 371 446 m 481 1236 l 637 1236 l 638 1232 l 455 1055 l 355 1055 l 481 1236 z "},"Ѝ":{"ha":991,"x_min":122,"x_max":869,"o":"m 735 987 l 869 987 l 869 0 l 735 0 l 735 753 l 731 754 l 256 0 l 122 0 l 122 987 l 256 987 l 256 235 l 260 234 l 735 987 m 553 1058 l 446 1058 l 277 1234 l 279 1238 l 435 1238 l 553 1058 z "},"Ў":{"ha":880,"x_min":58,"x_max":830,"o":"m 399 526 l 448 398 l 452 398 l 675 987 l 830 987 l 485 162 q 398 30 445 73 q 248 -14 351 -14 q 208 -12 231 -14 q 179 -8 185 -10 l 182 93 q 212 91 189 92 q 246 90 235 90 q 315 115 294 90 q 361 193 336 139 l 389 250 l 58 987 l 208 987 l 399 526 m 637 1268 l 639 1264 q 587 1136 642 1185 q 439 1086 532 1086 q 290 1136 345 1086 q 239 1264 235 1185 l 240 1268 l 342 1268 q 366 1196 342 1223 q 439 1168 389 1168 q 511 1196 488 1168 q 535 1268 535 1224 l 637 1268 z "},"Џ":{"ha":992,"x_min":122,"x_max":869,"o":"m 122 987 l 256 987 l 256 104 l 736 104 l 736 987 l 869 987 l 869 0 l 568 0 l 568 -243 l 434 -243 l 434 0 l 122 0 l 122 987 z "},"А":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 z "},"Б":{"ha":876,"x_min":111,"x_max":821,"o":"m 716 882 l 244 882 l 244 597 l 488 597 q 733 516 646 597 q 821 301 821 435 q 733 83 821 167 q 488 0 645 0 l 111 0 l 111 987 l 716 987 l 716 882 m 244 492 l 244 104 l 488 104 q 637 162 587 104 q 688 302 688 219 q 638 437 688 383 q 488 492 588 492 l 244 492 z "},"В":{"ha":888,"x_min":122,"x_max":813,"o":"m 122 0 l 122 987 l 444 987 q 686 921 599 987 q 774 720 774 854 q 732 603 774 654 q 621 526 690 551 q 762 438 711 507 q 813 279 813 370 q 725 72 813 143 q 487 0 637 0 l 122 0 m 256 463 l 256 104 l 487 104 q 629 150 578 104 q 680 277 680 195 q 637 414 680 364 q 507 463 595 463 l 256 463 m 256 568 l 472 568 q 593 609 547 568 q 640 723 640 650 q 590 843 640 803 q 444 882 539 882 l 256 882 l 256 568 z "},"Г":{"ha":773,"x_min":122,"x_max":728,"o":"m 728 882 l 256 882 l 256 0 l 122 0 l 122 987 l 728 987 l 728 882 z "},"Д":{"ha":1051,"x_min":33,"x_max":1013,"o":"m 877 104 l 1013 104 l 999 -242 l 879 -242 l 879 0 l 166 0 l 166 -243 l 53 -243 l 33 104 l 117 104 q 213 278 170 163 q 260 588 256 392 l 283 987 l 877 987 l 877 104 m 395 588 q 355 304 389 427 q 266 104 320 181 l 743 104 l 743 882 l 411 882 l 395 588 z "},"Е":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 z "},"Ж":{"ha":1267,"x_min":19,"x_max":1249,"o":"m 808 453 l 704 453 l 704 0 l 570 0 l 570 453 l 460 453 l 186 0 l 19 0 l 349 522 l 47 987 l 203 987 l 459 558 l 570 558 l 570 987 l 704 987 l 704 558 l 810 558 l 1066 987 l 1222 987 l 919 523 l 1249 0 l 1083 0 l 808 453 z "},"З":{"ha":939,"x_min":81,"x_max":846,"o":"m 831 720 q 785 595 831 652 q 657 507 739 538 q 797 419 749 478 q 846 275 846 360 q 738 62 846 139 q 454 -14 629 -14 q 191 58 301 -14 q 85 270 81 131 l 86 274 l 214 274 q 281 143 214 197 q 454 90 348 90 q 644 141 575 90 q 712 273 712 191 q 650 407 712 363 q 465 450 587 450 l 341 450 l 341 556 l 465 556 q 640 601 583 556 q 697 723 697 646 q 636 848 697 799 q 454 897 574 897 q 293 848 359 897 q 228 729 228 800 l 100 729 l 100 733 q 199 927 96 852 q 454 1002 302 1002 q 730 928 629 1002 q 831 720 831 855 z "},"И":{"ha":991,"x_min":122,"x_max":869,"o":"m 735 987 l 869 987 l 869 0 l 735 0 l 735 753 l 731 754 l 256 0 l 122 0 l 122 987 l 256 987 l 256 235 l 260 234 l 735 987 z "},"Й":{"ha":991,"x_min":122,"x_max":869,"o":"m 735 987 l 869 987 l 869 0 l 735 0 l 735 753 l 731 754 l 256 0 l 122 0 l 122 987 l 256 987 l 256 235 l 260 234 l 735 987 m 696 1268 l 698 1264 q 646 1136 701 1185 q 498 1086 591 1086 q 349 1136 404 1086 q 298 1264 294 1185 l 299 1268 l 401 1268 q 425 1196 401 1223 q 498 1168 448 1168 q 570 1196 547 1168 q 594 1268 594 1224 l 696 1268 z "},"К":{"ha":893,"x_min":122,"x_max":890,"o":"m 371 446 l 256 446 l 256 0 l 122 0 l 122 987 l 256 987 l 256 551 l 359 551 l 712 987 l 860 987 l 862 984 l 479 510 l 890 3 l 888 0 l 728 0 l 371 446 z "},"Л":{"ha":984,"x_min":33,"x_max":862,"o":"m 862 987 l 862 0 l 728 0 l 728 882 l 372 882 l 371 522 q 301 125 371 251 q 69 0 231 0 l 33 0 l 33 104 l 61 104 q 196 201 155 104 q 238 522 237 298 l 239 987 l 862 987 z "},"М":{"ha":1220,"x_min":122,"x_max":1097,"o":"m 293 987 l 608 185 l 612 185 l 926 987 l 1097 987 l 1097 0 l 964 0 l 964 391 l 977 792 l 974 793 l 654 0 l 565 0 l 246 791 l 243 790 l 256 391 l 256 0 l 122 0 l 122 987 l 293 987 z "},"Н":{"ha":991,"x_min":122,"x_max":869,"o":"m 869 0 l 735 0 l 735 436 l 256 436 l 256 0 l 122 0 l 122 987 l 256 987 l 256 541 l 735 541 l 735 987 l 869 987 l 869 0 z "},"О":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 z "},"П":{"ha":992,"x_min":122,"x_max":870,"o":"m 870 0 l 736 0 l 736 882 l 256 882 l 256 0 l 122 0 l 122 987 l 870 987 l 870 0 z "},"Р":{"ha":890,"x_min":122,"x_max":833,"o":"m 256 396 l 256 0 l 122 0 l 122 987 l 500 987 q 745 906 658 987 q 833 692 833 825 q 745 476 833 557 q 500 396 658 396 l 256 396 m 256 500 l 500 500 q 650 554 600 500 q 699 690 699 608 q 649 827 699 772 q 500 882 600 882 l 256 882 l 256 500 z "},"С":{"ha":880,"x_min":80,"x_max":824,"o":"m 820 316 l 821 312 q 724 79 824 173 q 458 -14 623 -14 q 185 104 291 -14 q 80 406 80 223 l 80 581 q 185 883 80 764 q 458 1002 291 1002 q 725 912 626 1002 q 821 676 824 823 l 820 672 l 692 672 q 631 836 692 776 q 458 897 570 897 q 280 806 347 897 q 214 583 214 716 l 214 406 q 280 180 214 271 q 458 90 347 90 q 631 150 570 90 q 692 316 692 210 l 820 316 z "},"Т":{"ha":814,"x_min":23,"x_max":791,"o":"m 791 882 l 473 882 l 473 0 l 340 0 l 340 882 l 23 882 l 23 987 l 791 987 l 791 882 z "},"У":{"ha":873,"x_min":58,"x_max":830,"o":"m 399 526 l 448 398 l 452 398 l 675 987 l 830 987 l 485 162 q 398 30 445 73 q 248 -14 351 -14 q 208 -12 231 -14 q 179 -8 185 -10 l 182 93 q 212 91 189 92 q 246 90 235 90 q 315 115 294 90 q 361 193 336 139 l 389 250 l 58 987 l 208 987 l 399 526 z "},"Ф":{"ha":1079,"x_min":58,"x_max":1029,"o":"m 610 889 l 628 889 q 914 778 799 889 q 1029 492 1029 666 q 914 204 1029 316 q 628 92 799 92 l 610 92 l 610 -41 l 477 -41 l 477 92 l 457 92 q 172 203 286 92 q 58 490 58 315 q 172 777 58 665 q 457 889 286 889 l 477 889 l 477 1028 l 610 1028 l 610 889 m 457 784 q 259 705 329 784 q 190 490 190 625 q 259 275 190 354 q 457 197 329 197 l 477 197 l 477 784 l 457 784 m 610 784 l 610 197 l 629 197 q 826 276 755 197 q 896 492 896 355 q 826 705 896 626 q 629 784 755 784 l 610 784 z "},"Х":{"ha":878,"x_min":45,"x_max":840,"o":"m 441 602 l 671 987 l 833 987 l 519 498 l 840 0 l 680 0 l 444 392 l 206 0 l 45 0 l 365 498 l 52 987 l 212 987 l 441 602 z "},"Ц":{"ha":1069,"x_min":123,"x_max":1015,"o":"m 1015 -243 l 881 -243 l 881 109 l 1015 109 l 1015 -243 m 123 987 l 257 987 l 257 105 l 737 105 l 737 987 l 871 987 l 871 0 l 123 0 l 123 987 z "},"Ч":{"ha":956,"x_min":100,"x_max":833,"o":"m 833 987 l 833 0 l 699 0 l 699 409 q 574 380 635 389 q 431 372 514 372 q 184 443 268 372 q 100 675 100 515 l 100 987 l 234 987 l 234 675 q 281 520 234 564 q 431 477 328 477 q 567 487 502 477 q 699 515 632 496 l 699 987 l 833 987 z "},"Ш":{"ha":1310,"x_min":122,"x_max":1188,"o":"m 256 987 l 256 104 l 589 104 l 589 987 l 722 987 l 722 104 l 1055 104 l 1055 987 l 1188 987 l 1188 0 l 122 0 l 122 987 l 256 987 z "},"Щ":{"ha":1352,"x_min":122,"x_max":1293,"o":"m 256 987 l 256 104 l 589 104 l 589 987 l 722 987 l 722 104 l 1055 104 l 1055 987 l 1188 987 l 1188 105 l 1293 105 l 1280 -238 l 1161 -238 l 1161 0 l 122 0 l 122 987 l 256 987 z "},"Ъ":{"ha":1050,"x_min":15,"x_max":996,"o":"m 15 987 l 418 987 l 418 583 l 662 583 q 908 505 821 583 q 996 294 996 427 q 908 81 996 161 q 662 0 820 0 l 285 0 l 285 882 l 15 882 l 15 987 m 418 478 l 418 104 l 662 104 q 812 159 762 104 q 862 296 862 213 q 812 427 862 376 q 662 478 762 478 l 418 478 z "},"Ы":{"ha":1208,"x_min":122,"x_max":1087,"o":"m 256 597 l 499 597 q 745 516 657 597 q 833 301 833 435 q 745 83 833 167 q 499 0 656 0 l 122 0 l 122 987 l 256 987 l 256 597 m 256 492 l 256 104 l 499 104 q 649 162 599 104 q 699 302 699 219 q 649 437 699 383 q 499 492 600 492 l 256 492 m 1087 0 l 953 0 l 953 987 l 1087 987 l 1087 0 z "},"Ь":{"ha":875,"x_min":111,"x_max":821,"o":"m 244 583 l 488 583 q 734 505 646 583 q 821 294 821 427 q 733 81 821 161 q 488 0 646 0 l 111 0 l 111 987 l 244 987 l 244 583 m 244 478 l 244 104 l 488 104 q 638 159 588 104 q 688 296 688 213 q 638 427 688 376 q 488 478 588 478 l 244 478 z "},"Э":{"ha":939,"x_min":123,"x_max":867,"o":"m 127 671 l 126 675 q 223 908 123 813 q 488 1002 324 1002 q 762 883 656 1002 q 867 582 867 764 l 867 406 q 762 105 867 223 q 488 -14 656 -14 q 222 75 321 -14 q 126 311 123 163 l 127 315 l 256 315 q 316 151 256 211 q 488 91 376 91 q 666 181 600 91 q 733 405 733 271 l 733 460 l 344 460 l 344 565 l 733 565 l 733 582 q 666 807 733 716 q 488 897 600 897 q 316 837 376 897 q 256 671 256 777 l 127 671 z "},"Ю":{"ha":1238,"x_min":129,"x_max":1195,"o":"m 1195 406 q 1083 105 1195 224 q 791 -14 970 -14 q 510 105 618 -14 q 402 406 402 224 l 402 429 l 263 429 l 263 0 l 129 0 l 129 987 l 263 987 l 263 533 l 402 533 l 402 581 q 510 882 402 762 q 791 1002 618 1002 q 1083 882 970 1002 q 1195 581 1195 762 l 1195 406 m 1061 583 q 988 805 1061 718 q 791 892 915 892 q 605 805 675 892 q 536 583 536 718 l 536 406 q 605 182 536 269 q 791 95 675 95 q 988 181 916 95 q 1061 406 1061 268 l 1061 583 z "},"Я":{"ha":890,"x_min":67,"x_max":769,"o":"m 209 0 l 67 0 l 298 422 q 153 526 203 458 q 103 690 103 594 q 196 909 103 831 q 453 987 290 987 l 769 987 l 769 0 l 635 0 l 635 386 l 414 386 l 209 0 m 635 882 l 453 882 q 292 831 347 882 q 237 692 237 781 q 292 547 237 603 q 452 492 348 492 l 635 492 l 635 882 z "},"а":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 z "},"б":{"ha":768,"x_min":66,"x_max":723,"o":"m 420 692 q 642 598 560 692 q 723 359 723 505 l 723 345 q 635 86 723 186 q 395 -14 547 -14 q 154 86 243 -14 q 66 345 66 186 l 66 439 q 157 785 66 656 q 401 945 248 914 q 525 982 487 960 q 564 1053 564 1004 l 667 1053 l 668 1049 q 612 892 670 930 q 427 833 553 855 q 269 762 334 818 q 188 599 203 707 l 191 595 q 291 665 231 638 q 420 692 351 692 m 393 587 q 249 522 298 587 q 200 359 200 457 l 200 345 q 249 162 200 234 q 395 90 298 90 q 540 162 490 90 q 589 345 589 234 l 589 359 q 539 522 589 457 q 393 587 490 587 z "},"в":{"ha":789,"x_min":98,"x_max":718,"o":"m 98 0 l 98 734 l 387 734 q 612 683 532 734 q 692 532 692 633 q 661 440 692 480 q 573 378 630 399 q 680 315 642 361 q 718 209 718 269 q 643 53 718 106 q 434 0 568 0 l 98 0 m 231 321 l 231 103 l 434 103 q 546 131 508 103 q 584 212 584 159 q 546 293 584 264 q 434 321 508 321 l 231 321 m 231 424 l 388 424 q 516 449 473 424 q 559 525 559 474 q 515 604 559 577 q 387 630 472 630 l 231 630 l 231 424 z "},"г":{"ha":576,"x_min":97,"x_max":564,"o":"m 564 628 l 231 628 l 231 0 l 97 0 l 97 734 l 564 734 l 564 628 z "},"д":{"ha":846,"x_min":31,"x_max":803,"o":"m 89 104 q 175 240 145 170 q 215 458 205 311 l 226 734 l 705 734 l 705 104 l 803 104 l 790 -216 l 669 -216 l 669 0 l 165 0 l 165 -216 l 44 -216 l 31 104 l 89 104 m 349 458 q 314 250 341 336 q 243 104 286 163 l 572 104 l 572 615 l 355 615 l 349 458 z "},"е":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 z "},"ж":{"ha":1063,"x_min":14,"x_max":1044,"o":"m 682 318 l 596 318 l 596 0 l 463 0 l 463 318 l 376 318 l 182 0 l 14 0 l 276 389 l 37 734 l 199 734 l 379 431 l 463 431 l 463 734 l 596 734 l 596 431 l 680 431 l 861 734 l 1022 734 l 783 389 l 1044 0 l 876 0 l 682 318 z "},"з":{"ha":705,"x_min":60,"x_max":639,"o":"m 360 429 q 461 455 431 429 q 492 533 492 482 q 457 611 492 579 q 351 643 422 643 q 245 610 288 643 q 203 529 203 576 l 76 529 l 75 533 q 152 687 71 627 q 351 746 233 746 q 553 691 480 746 q 625 533 625 635 q 595 443 625 484 q 512 378 566 401 q 606 312 574 355 q 639 207 639 269 q 560 45 639 104 q 351 -13 481 -13 q 146 45 232 -13 q 63 213 60 103 l 64 217 l 191 217 q 236 127 191 165 q 351 90 281 90 q 464 123 424 90 q 505 207 505 157 q 470 293 505 266 q 360 320 435 320 l 233 320 l 233 429 l 360 429 z "},"и":{"ha":789,"x_min":97,"x_max":692,"o":"m 558 734 l 692 734 l 692 0 l 558 0 l 558 521 l 554 522 l 230 0 l 97 0 l 97 734 l 230 734 l 230 213 l 234 212 l 558 734 z "},"й":{"ha":789,"x_min":97,"x_max":692,"o":"m 558 734 l 692 734 l 692 0 l 558 0 l 558 521 l 554 522 l 230 0 l 97 0 l 97 734 l 230 734 l 230 213 l 234 212 l 558 734 m 593 1036 l 595 1031 q 543 903 597 953 q 395 854 488 854 q 246 903 301 854 q 195 1031 191 953 l 196 1036 l 298 1036 q 321 963 298 991 q 395 935 345 935 q 467 963 444 935 q 491 1036 491 991 l 593 1036 z "},"к":{"ha":736,"x_min":104,"x_max":739,"o":"m 325 311 l 237 311 l 237 0 l 104 0 l 104 734 l 237 734 l 237 424 l 315 424 l 557 734 l 713 734 l 715 730 l 428 382 l 739 3 l 736 0 l 572 0 l 325 311 z "},"л":{"ha":768,"x_min":18,"x_max":692,"o":"m 692 734 l 692 0 l 558 0 l 558 628 l 310 628 l 310 420 q 252 102 310 203 q 56 0 195 0 l 18 0 l 20 114 l 48 115 q 148 184 119 115 q 176 420 176 254 l 176 734 l 692 734 z "},"м":{"ha":1036,"x_min":104,"x_max":926,"o":"m 515 175 l 519 175 l 759 734 l 926 734 l 926 0 l 792 0 l 792 509 l 788 511 l 563 0 l 471 0 l 241 522 l 237 521 l 237 0 l 104 0 l 104 734 l 276 734 l 515 175 z "},"н":{"ha":789,"x_min":97,"x_max":691,"o":"m 691 0 l 557 0 l 557 312 l 231 312 l 231 0 l 97 0 l 97 734 l 231 734 l 231 416 l 557 416 l 557 734 l 691 734 l 691 0 z "},"о":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 z "},"п":{"ha":789,"x_min":97,"x_max":692,"o":"m 692 0 l 558 0 l 558 628 l 231 628 l 231 0 l 97 0 l 97 734 l 692 734 l 692 0 z "},"р":{"ha":789,"x_min":97,"x_max":722,"o":"m 722 339 q 646 83 722 180 q 437 -14 570 -14 q 318 8 369 -14 q 231 77 267 31 l 231 -282 l 97 -282 l 97 734 l 199 734 l 220 639 q 310 720 256 692 q 435 747 363 747 q 647 639 571 747 q 722 353 722 531 l 722 339 m 589 353 q 539 558 589 478 q 395 639 490 639 q 296 613 337 639 q 231 541 256 587 l 231 186 q 296 116 256 141 q 396 90 337 90 q 540 160 491 90 q 589 339 589 229 l 589 353 z "},"с":{"ha":737,"x_min":66,"x_max":688,"o":"m 395 90 q 512 131 462 90 q 563 232 563 172 l 683 232 l 684 228 q 600 59 688 133 q 395 -14 512 -14 q 151 90 235 -14 q 66 353 66 195 l 66 381 q 151 643 66 538 q 395 747 236 747 q 606 671 524 747 q 685 485 688 595 l 684 481 l 563 481 q 515 595 563 548 q 395 642 468 642 q 245 567 290 642 q 200 381 200 491 l 200 353 q 245 165 200 240 q 395 90 290 90 z "},"т":{"ha":711,"x_min":48,"x_max":663,"o":"m 663 630 l 420 630 l 420 0 l 287 0 l 287 630 l 48 630 l 48 734 l 663 734 l 663 630 z "},"у":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 z "},"ф":{"ha":1007,"x_min":66,"x_max":941,"o":"m 66 353 q 136 640 66 532 q 334 747 205 747 q 385 743 361 747 q 431 730 409 738 l 431 1058 l 564 1058 l 564 726 q 614 742 587 736 q 673 747 642 747 q 871 640 802 747 q 941 353 941 532 l 941 339 q 871 82 941 179 q 675 -14 802 -14 q 615 -9 643 -14 q 564 6 587 -3 l 564 -282 l 431 -282 l 431 3 q 385 -10 409 -5 q 332 -14 360 -14 q 136 82 205 -14 q 66 339 66 179 l 66 353 m 807 353 q 764 562 807 481 q 633 642 721 642 q 595 639 612 642 q 564 631 578 636 l 564 100 q 595 93 578 95 q 634 90 612 90 q 765 159 722 90 q 807 339 807 227 l 807 353 m 200 339 q 239 158 200 226 q 366 90 278 90 q 401 93 385 90 q 431 100 417 95 l 431 633 q 401 640 417 637 q 368 642 386 642 q 240 562 279 642 q 200 353 200 482 l 200 339 z "},"х":{"ha":699,"x_min":31,"x_max":665,"o":"m 346 463 l 502 734 l 658 734 l 420 371 l 665 0 l 511 0 l 349 277 l 186 0 l 31 0 l 276 371 l 38 734 l 192 734 l 346 463 z "},"ц":{"ha":826,"x_min":97,"x_max":781,"o":"m 97 734 l 231 734 l 231 104 l 558 104 l 558 734 l 692 734 l 692 104 l 781 104 l 781 -240 l 648 -240 l 648 0 l 97 0 l 97 734 z "},"ч":{"ha":767,"x_min":86,"x_max":670,"o":"m 670 0 l 536 0 l 536 262 q 457 247 498 252 q 370 242 416 242 q 162 312 237 242 q 86 519 86 382 l 86 734 l 220 734 l 220 519 q 258 389 220 431 q 370 348 296 348 q 456 353 415 348 q 536 368 496 358 l 536 734 l 670 734 l 670 0 z "},"ш":{"ha":1116,"x_min":97,"x_max":1015,"o":"m 231 734 l 231 104 l 489 104 l 489 734 l 623 734 l 623 104 l 881 104 l 881 734 l 1015 734 l 1015 0 l 97 0 l 97 734 l 231 734 z "},"щ":{"ha":1175,"x_min":97,"x_max":1134,"o":"m 231 734 l 231 104 l 489 104 l 489 734 l 623 734 l 623 104 l 881 104 l 881 734 l 1015 734 l 1015 98 l 1134 98 l 1134 -229 l 1002 -229 l 1002 0 l 97 0 l 97 734 l 231 734 z "},"ъ":{"ha":860,"x_min":20,"x_max":825,"o":"m 368 481 l 551 481 q 753 415 681 481 q 825 243 825 349 q 752 68 825 137 q 551 0 680 0 l 235 0 l 235 629 l 20 629 l 20 734 l 368 734 l 368 481 m 368 377 l 368 104 l 551 104 q 657 143 623 104 q 691 239 691 181 q 656 336 691 294 q 551 377 622 377 l 368 377 z "},"ы":{"ha":1097,"x_min":117,"x_max":971,"o":"m 251 454 l 433 454 q 636 392 564 454 q 708 230 708 330 q 635 65 708 130 q 433 0 562 0 l 117 0 l 117 734 l 251 734 l 251 454 m 971 0 l 838 0 l 838 734 l 971 734 l 971 0 m 251 350 l 251 104 l 433 104 q 539 139 505 104 q 574 225 574 174 q 539 313 574 275 q 433 350 505 350 l 251 350 z "},"ь":{"ha":755,"x_min":104,"x_max":694,"o":"m 237 454 l 420 454 q 622 392 550 454 q 694 230 694 330 q 622 65 694 130 q 420 0 549 0 l 104 0 l 104 734 l 237 734 l 237 454 m 237 350 l 237 104 l 420 104 q 526 139 492 104 q 560 225 560 174 q 526 313 560 275 q 420 350 491 350 l 237 350 z "},"э":{"ha":747,"x_min":67,"x_max":675,"o":"m 353 642 q 242 601 290 642 q 193 500 193 559 l 73 500 l 71 505 q 154 673 67 599 q 353 747 240 747 q 588 641 502 747 q 675 381 675 535 l 675 353 q 588 92 675 198 q 353 -14 501 -14 q 148 61 229 -14 q 71 248 67 137 l 72 252 l 193 252 q 239 137 193 184 q 353 90 285 90 q 485 157 438 90 q 537 318 532 223 l 535 321 l 274 321 l 274 426 l 534 426 l 535 429 q 482 580 528 518 q 353 642 435 642 z "},"ю":{"ha":1133,"x_min":104,"x_max":1066,"o":"m 237 424 l 411 424 q 511 657 425 568 q 736 747 597 747 q 978 642 889 747 q 1066 374 1066 537 l 1066 359 q 978 90 1066 195 q 738 -14 890 -14 q 508 78 595 -14 q 410 319 421 171 l 237 319 l 237 0 l 104 0 l 104 734 l 237 734 l 237 424 m 543 359 q 592 166 543 242 q 738 90 641 90 q 883 166 833 90 q 932 359 932 242 l 932 374 q 883 566 932 489 q 736 642 833 642 q 592 566 641 642 q 543 374 543 489 l 543 359 z "},"я":{"ha":789,"x_min":53,"x_max":685,"o":"m 685 734 l 685 0 l 551 0 l 551 285 l 370 285 l 197 0 l 53 0 l 239 304 q 131 384 169 330 q 94 509 94 438 q 169 671 94 608 q 375 734 243 734 l 685 734 m 228 508 q 261 425 228 459 q 361 390 294 390 l 551 390 l 551 630 l 375 630 q 265 594 302 630 q 228 508 228 557 z "},"ѐ":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 435 840 l 328 840 l 158 1017 l 160 1021 l 316 1021 l 435 840 z "},"ё":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 612 871 l 464 871 l 464 1006 l 612 1006 l 612 871 m 294 871 l 145 871 l 145 1006 l 294 1006 l 294 871 z "},"ђ":{"ha":789,"x_min":-17,"x_max":695,"o":"m 418 819 l 231 819 l 231 635 q 324 718 269 688 q 446 747 379 747 q 629 677 564 747 q 694 460 694 606 l 694 309 l 695 309 l 695 -60 q 637 -235 695 -174 q 474 -296 578 -296 q 434 -294 452 -296 q 397 -285 416 -291 l 408 -182 q 439 -189 416 -186 q 474 -191 463 -191 q 538 -156 515 -191 q 561 -60 561 -121 l 561 461 q 522 595 561 552 q 406 639 483 639 q 305 613 350 639 q 231 542 260 587 l 231 0 l 97 0 l 97 819 l -17 819 l -17 924 l 97 924 l 97 1058 l 231 1058 l 231 924 l 418 924 l 418 819 z "},"ѓ":{"ha":576,"x_min":97,"x_max":564,"o":"m 564 628 l 231 628 l 231 0 l 97 0 l 97 734 l 564 734 l 564 628 m 351 1003 l 507 1003 l 508 999 l 325 823 l 225 823 l 351 1003 z "},"є":{"ha":748,"x_min":73,"x_max":694,"o":"m 402 90 q 519 131 469 90 q 570 232 570 172 l 690 232 l 691 228 q 607 59 694 133 q 402 -14 519 -14 q 157 90 242 -14 q 73 353 73 195 l 73 381 q 158 643 73 538 q 402 747 243 747 q 613 671 531 747 q 692 485 694 595 l 690 481 l 570 481 q 522 595 570 548 q 402 642 475 642 q 261 579 307 642 q 212 422 215 515 l 213 418 l 468 418 l 468 314 l 213 314 l 212 311 q 260 153 215 215 q 402 90 306 90 z "},"ѕ":{"ha":726,"x_min":70,"x_max":657,"o":"m 524 195 q 490 267 524 239 q 363 317 456 296 q 162 396 229 346 q 94 532 94 446 q 170 684 94 621 q 368 747 246 747 q 572 682 496 747 q 644 522 648 616 l 643 517 l 515 517 q 475 604 515 566 q 368 642 435 642 q 262 611 297 642 q 228 536 228 580 q 258 467 228 492 q 382 422 289 442 q 589 341 522 393 q 657 204 657 290 q 578 46 657 106 q 372 -14 499 -14 q 151 57 231 -14 q 74 223 70 128 l 75 227 l 203 227 q 256 123 206 156 q 372 90 305 90 q 483 119 443 90 q 524 195 524 148 z "},"і":{"ha":350,"x_min":108,"x_max":241,"o":"m 241 0 l 108 0 l 108 734 l 241 734 l 241 0 m 241 922 l 108 922 l 108 1058 l 241 1058 l 241 922 z "},"ї":{"ha":349,"x_min":-61,"x_max":406,"o":"m 237 0 l 104 0 l 104 734 l 237 734 l 237 0 m 406 856 l 258 856 l 258 991 l 406 991 l 406 856 m 87 856 l -61 856 l -61 991 l 87 991 l 87 856 z "},"ј":{"ha":359,"x_min":-45,"x_max":251,"o":"m 251 734 l 251 -60 q 193 -235 251 -174 q 31 -296 134 -296 q -8 -293 9 -296 q -45 -284 -25 -290 l -35 -179 q -8 -185 -26 -182 q 21 -187 9 -187 q 91 -157 65 -187 q 117 -60 117 -127 l 117 734 l 251 734 m 247 924 l 113 924 l 113 1058 l 247 1058 l 247 924 z "},"љ":{"ha":1208,"x_min":44,"x_max":1149,"o":"m 692 734 l 692 455 l 874 455 q 1076 392 1004 455 q 1149 230 1149 330 q 1076 65 1149 130 q 874 0 1003 0 l 558 0 l 558 628 l 342 628 l 342 420 q 282 102 342 205 q 82 0 222 0 l 44 0 l 47 107 l 75 108 q 178 182 146 108 q 209 420 209 256 l 209 734 l 692 734 m 692 351 l 692 103 l 874 103 q 980 141 945 103 q 1015 231 1015 179 q 980 316 1015 281 q 874 351 946 351 l 692 351 z "},"њ":{"ha":1208,"x_min":97,"x_max":1148,"o":"m 231 457 l 557 457 l 557 734 l 691 734 l 691 454 l 873 454 q 1076 392 1004 454 q 1148 230 1148 330 q 1075 65 1148 130 q 873 0 1002 0 l 557 0 l 557 353 l 231 353 l 231 0 l 97 0 l 97 734 l 231 734 l 231 457 m 691 351 l 691 103 l 873 103 q 979 141 945 103 q 1014 231 1014 179 q 980 316 1014 281 q 873 351 945 351 l 691 351 z "},"ћ":{"ha":789,"x_min":13,"x_max":694,"o":"m 448 821 l 231 821 l 231 635 q 324 718 269 688 q 446 747 379 747 q 629 677 564 747 q 694 460 694 606 l 694 0 l 561 0 l 561 461 q 522 595 561 552 q 406 639 483 639 q 305 613 350 639 q 231 542 260 587 l 231 0 l 97 0 l 97 821 l 13 821 l 13 926 l 97 926 l 97 1058 l 231 1058 l 231 926 l 448 926 l 448 821 z "},"ќ":{"ha":736,"x_min":104,"x_max":739,"o":"m 325 311 l 237 311 l 237 0 l 104 0 l 104 734 l 237 734 l 237 424 l 315 424 l 557 734 l 713 734 l 715 730 l 428 382 l 739 3 l 736 0 l 572 0 l 325 311 m 430 1002 l 586 1002 l 587 998 l 404 822 l 304 822 l 430 1002 z "},"ѝ":{"ha":789,"x_min":97,"x_max":692,"o":"m 558 734 l 692 734 l 692 0 l 558 0 l 558 521 l 554 522 l 230 0 l 97 0 l 97 734 l 230 734 l 230 213 l 234 212 l 558 734 m 450 825 l 343 825 l 174 1002 l 176 1006 l 332 1006 l 450 825 z "},"ў":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 548 1036 l 549 1031 q 497 903 552 953 q 349 854 442 854 q 201 903 256 854 q 149 1031 146 953 l 151 1036 l 253 1036 q 276 963 253 991 q 349 935 299 935 q 422 963 398 935 q 446 1036 446 991 l 548 1036 z "},"џ":{"ha":789,"x_min":97,"x_max":692,"o":"m 231 734 l 231 104 l 558 104 l 558 734 l 692 734 l 692 0 l 463 0 l 463 -241 l 330 -241 l 330 0 l 97 0 l 97 734 l 231 734 z "},"Ѡ":{"ha":1219,"x_min":106,"x_max":1113,"o":"m 1113 987 l 1113 265 q 1035 57 1113 129 q 829 -14 956 -14 q 698 15 755 -14 q 608 103 640 45 q 514 15 574 45 q 378 -14 454 -14 q 181 57 256 -14 q 106 265 106 129 l 106 987 l 240 987 l 240 265 q 278 135 240 179 q 378 90 315 90 q 496 135 451 90 q 541 265 541 179 l 541 987 l 679 987 l 679 265 q 720 135 679 180 q 829 90 762 90 q 938 135 897 90 q 979 265 979 180 l 979 987 l 1113 987 z "},"ѡ":{"ha":1058,"x_min":84,"x_max":979,"o":"m 979 734 l 979 239 q 908 51 979 115 q 722 -14 837 -14 q 610 10 659 -14 q 530 82 560 34 q 446 10 498 34 q 328 -14 394 -14 q 151 50 218 -14 q 84 239 84 115 l 84 734 l 218 734 l 218 239 q 248 128 218 165 q 328 90 277 90 q 427 128 389 90 q 465 239 465 166 l 465 734 l 599 734 l 599 239 q 632 128 599 165 q 722 90 666 90 q 811 128 777 90 q 846 239 846 166 l 846 734 l 979 734 z "},"Ѣ":{"ha":875,"x_min":-35,"x_max":821,"o":"m 400 747 l 244 747 l 244 597 l 488 597 q 733 516 646 597 q 821 301 821 435 q 733 83 821 167 q 488 0 645 0 l 111 0 l 111 747 l -35 747 l -35 852 l 111 852 l 111 987 l 244 987 l 244 852 l 400 852 l 400 747 m 244 492 l 244 104 l 488 104 q 637 162 587 104 q 688 302 688 219 q 638 437 688 383 q 488 492 588 492 l 244 492 z "},"ѣ":{"ha":755,"x_min":-25,"x_max":694,"o":"m 455 734 l 237 734 l 237 507 l 420 507 q 622 438 550 507 q 694 256 694 368 q 622 72 694 144 q 420 0 549 0 l 104 0 l 104 734 l -25 734 l -25 838 l 104 838 l 104 1058 l 237 1058 l 237 838 l 455 838 l 455 734 m 237 403 l 237 104 l 420 104 q 526 147 492 104 q 560 252 560 189 q 526 358 560 313 q 420 403 491 403 l 237 403 z "},"Ѥ":{"ha":1246,"x_min":130,"x_max":1138,"o":"m 264 566 l 397 566 l 397 582 q 502 883 397 764 q 775 1002 608 1002 q 1032 915 939 1002 q 1138 677 1125 828 l 1137 673 l 1008 673 q 937 839 992 781 q 775 897 882 897 q 597 807 663 897 q 530 583 530 717 l 530 566 l 896 566 l 896 460 l 530 460 l 530 406 q 597 181 530 271 q 775 91 663 91 q 938 149 883 91 q 1008 317 992 206 l 1137 317 l 1138 313 q 1031 78 1125 170 q 775 -14 937 -14 q 502 105 608 -14 q 397 406 397 224 l 397 460 l 264 460 l 264 0 l 130 0 l 130 987 l 264 987 l 264 566 z "},"ѥ":{"ha":1038,"x_min":102,"x_max":983,"o":"m 236 418 l 363 418 q 457 654 372 561 q 691 747 541 747 q 902 671 820 747 q 981 485 983 595 l 979 481 l 859 481 q 811 595 859 548 q 691 642 764 642 q 550 579 595 642 q 500 421 504 515 l 502 418 l 786 418 l 786 313 l 502 313 l 500 310 q 549 153 504 215 q 691 90 595 90 q 808 131 758 90 q 859 232 859 172 l 979 232 l 980 228 q 896 59 983 133 q 691 -14 808 -14 q 457 78 541 -14 q 363 313 373 170 l 236 313 l 236 0 l 102 0 l 102 734 l 236 734 l 236 418 z "},"Ѧ":{"ha":838,"x_min":29,"x_max":848,"o":"m 611 297 l 502 297 l 502 0 l 369 0 l 369 297 l 269 297 l 165 0 l 29 0 l 385 987 l 500 987 l 848 0 l 712 0 l 611 297 m 307 408 l 573 408 l 444 790 l 439 790 l 307 408 z "},"ѧ":{"ha":744,"x_min":9,"x_max":722,"o":"m 505 199 l 433 199 l 433 0 l 300 0 l 300 199 l 224 199 l 145 0 l 9 0 l 307 734 l 422 734 l 722 0 l 586 0 l 505 199 m 265 304 l 463 304 l 378 516 l 366 562 l 361 562 l 349 516 l 265 304 z "},"Ѩ":{"ha":1224,"x_min":142,"x_max":1207,"o":"m 276 409 l 535 409 l 744 987 l 859 987 l 1207 0 l 1071 0 l 970 297 l 861 297 l 861 0 l 728 0 l 728 297 l 627 297 l 524 0 l 388 0 l 495 298 l 276 298 l 276 0 l 142 0 l 142 987 l 276 987 l 276 409 m 666 408 l 932 408 l 802 790 l 798 790 l 666 408 z "},"ѩ":{"ha":1050,"x_min":126,"x_max":1025,"o":"m 260 304 l 435 304 l 610 734 l 725 734 l 1025 0 l 889 0 l 808 199 l 736 199 l 736 0 l 604 0 l 604 199 l 527 199 l 448 0 l 312 0 l 393 199 l 260 199 l 260 0 l 126 0 l 126 734 l 260 734 l 260 304 m 568 304 l 766 304 l 681 516 l 669 562 l 665 562 l 652 516 l 568 304 z "},"Ѫ":{"ha":1193,"x_min":101,"x_max":1093,"o":"m 746 552 l 761 552 q 1008 481 923 552 q 1093 252 1093 410 l 1093 0 l 959 0 l 959 252 q 912 404 959 361 q 761 447 865 447 l 682 447 l 665 418 l 665 0 l 532 0 l 532 429 l 520 447 l 431 447 q 281 404 328 447 q 235 252 235 361 l 235 0 l 101 0 l 101 252 q 185 481 101 410 q 431 552 269 552 l 456 552 l 191 987 l 1011 987 l 746 552 m 598 552 l 605 552 l 798 882 l 406 882 l 598 552 z "},"ѫ":{"ha":1028,"x_min":101,"x_max":927,"o":"m 762 734 l 845 734 l 652 409 q 857 331 786 402 q 927 110 927 260 l 927 0 l 793 0 l 793 110 q 752 263 793 220 q 623 305 712 305 l 591 305 l 583 292 l 583 0 l 450 0 l 450 298 l 446 305 l 405 305 q 275 263 315 305 q 235 110 235 220 l 235 0 l 101 0 l 101 110 q 173 334 101 263 q 384 409 245 404 l 191 734 l 298 734 l 298 734 l 762 734 l 762 734 m 518 412 l 637 629 l 399 629 l 518 412 z "},"Ѭ":{"ha":1577,"x_min":129,"x_max":1477,"o":"m 1131 552 q 1392 481 1308 552 q 1477 252 1477 410 l 1477 0 l 1343 0 l 1343 252 q 1296 404 1343 361 q 1145 447 1249 447 l 1067 447 l 1050 418 l 1050 0 l 916 0 l 916 429 l 905 447 l 816 447 q 666 404 712 447 q 619 252 619 361 l 619 0 l 486 0 l 486 252 q 538 448 486 377 l 263 448 l 263 0 l 129 0 l 129 987 l 263 987 l 263 552 l 841 552 l 576 987 l 1396 987 l 1131 552 m 983 552 l 989 552 l 1182 882 l 790 882 l 983 552 z "},"ѭ":{"ha":1369,"x_min":104,"x_max":1270,"o":"m 1188 734 l 995 409 q 1200 331 1129 402 q 1270 110 1270 260 l 1270 0 l 1136 0 l 1136 110 q 1096 263 1136 220 q 966 305 1055 305 l 934 305 l 926 292 l 926 0 l 793 0 l 793 298 l 789 305 l 748 305 q 618 263 658 305 q 578 110 578 220 l 578 0 l 444 0 l 444 110 q 492 305 444 235 l 237 305 l 237 0 l 104 0 l 104 734 l 237 734 l 237 410 l 726 410 l 534 734 l 1188 734 m 861 412 l 981 629 l 742 629 l 861 412 z "},"Ѯ":{"ha":720,"x_min":50,"x_max":632,"o":"m 279 559 q 433 603 384 559 q 483 723 483 646 q 434 837 483 792 q 293 882 386 882 l 87 882 l 87 987 l 293 987 q 527 915 436 987 q 617 720 617 843 q 573 595 617 650 q 451 509 529 539 q 585 422 538 481 q 632 276 632 362 q 542 63 632 140 q 309 -14 452 -14 l 275 -14 q 200 -34 224 -14 q 177 -90 177 -54 q 209 -166 177 -137 q 285 -215 240 -195 l 231 -301 q 103 -214 156 -269 q 50 -83 51 -158 q 111 48 50 5 q 281 92 172 92 l 309 92 q 447 142 397 92 q 498 273 498 193 q 442 409 498 363 q 279 454 387 454 l 182 454 l 182 559 l 279 559 m 363 1192 l 463 1293 l 578 1293 l 578 1280 l 404 1114 l 323 1114 l 151 1279 l 151 1293 l 263 1293 l 363 1192 z "},"ѯ":{"ha":669,"x_min":50,"x_max":603,"o":"m 278 419 q 411 447 368 419 q 454 526 454 475 q 412 599 454 570 q 292 628 370 628 l 86 628 l 86 734 l 292 734 q 505 677 422 734 q 588 524 588 620 q 553 434 588 474 q 456 370 518 393 q 565 306 528 347 q 603 206 603 264 q 520 45 603 104 q 308 -14 438 -14 l 275 -14 q 200 -34 223 -14 q 176 -90 176 -54 q 208 -166 176 -137 q 285 -215 240 -195 l 231 -301 q 103 -214 155 -269 q 50 -83 50 -158 q 110 48 50 5 q 280 92 171 92 l 308 92 q 426 122 382 92 q 469 203 469 153 q 420 287 469 259 q 278 314 372 314 l 181 314 l 181 419 l 278 419 m 314 959 l 414 1059 l 529 1059 l 529 1047 l 355 881 l 274 881 l 102 1046 l 102 1059 l 214 1059 l 314 959 z "},"Ѱ":{"ha":960,"x_min":59,"x_max":886,"o":"m 534 329 l 538 328 q 694 412 635 340 q 753 600 753 484 l 753 987 l 886 987 l 886 600 q 789 333 886 434 q 534 216 692 233 l 534 0 l 399 0 l 399 217 q 152 334 245 233 q 59 600 59 434 l 59 987 l 192 987 l 192 600 q 248 414 192 485 q 395 329 303 342 l 399 330 l 399 987 l 534 987 l 534 329 z "},"ѱ":{"ha":977,"x_min":62,"x_max":920,"o":"m 546 733 l 546 101 l 550 100 q 728 197 670 115 q 787 385 787 279 q 762 556 785 469 q 702 734 740 644 l 842 734 q 899 575 877 662 q 920 385 920 488 q 830 113 920 222 q 546 -12 740 3 l 546 -321 l 412 -321 l 412 -10 q 153 109 244 7 q 62 404 62 212 l 62 734 l 195 734 l 195 403 q 253 188 195 262 q 408 101 310 114 l 412 102 l 412 733 l 546 733 z "},"Ѳ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 210 540 l 736 540 l 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 540 m 736 435 l 210 435 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 435 z "},"ѳ":{"ha":790,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 395 90 q 530 153 481 90 q 584 315 578 216 l 583 318 l 205 318 l 204 315 q 258 153 210 216 q 395 90 307 90 m 393 642 q 260 582 309 642 q 205 427 212 521 l 206 423 l 582 423 l 583 427 q 527 581 576 520 q 393 642 478 642 z "},"Ѵ":{"ha":878,"x_min":15,"x_max":844,"o":"m 394 259 l 416 177 l 420 177 l 443 259 l 614 805 q 692 956 648 911 q 810 1001 736 1001 l 844 1000 l 843 886 l 835 886 q 780 864 801 886 q 741 789 760 843 l 475 0 l 361 0 l 15 987 l 160 987 l 394 259 z "},"ѵ":{"ha":699,"x_min":31,"x_max":704,"o":"m 328 216 l 339 165 l 343 165 l 356 216 l 457 579 q 530 706 485 665 q 630 747 574 747 q 670 743 653 747 q 704 730 688 740 l 689 627 q 678 631 686 629 q 662 633 671 633 q 620 615 640 633 q 591 569 600 597 l 391 0 l 290 0 l 31 734 l 168 734 l 328 216 z "},"Ѷ":{"ha":878,"x_min":15,"x_max":844,"o":"m 394 259 l 416 177 l 420 177 l 443 259 l 614 805 q 692 956 648 911 q 810 1001 736 1001 l 844 1000 l 843 886 l 835 886 q 780 864 801 886 q 741 789 760 843 l 475 0 l 361 0 l 15 987 l 160 987 l 394 259 m 389 1087 l 387 1084 l 271 1084 l 68 1260 l 70 1264 l 225 1264 l 389 1087 m 571 1084 l 465 1084 l 301 1261 l 302 1264 l 446 1264 l 571 1084 z "},"ѷ":{"ha":699,"x_min":-1,"x_max":704,"o":"m 328 216 l 339 165 l 343 165 l 356 216 l 457 579 q 530 706 485 665 q 630 747 574 747 q 670 743 653 747 q 704 730 688 740 l 689 627 q 678 631 686 629 q 662 633 671 633 q 620 615 640 633 q 591 569 600 597 l 391 0 l 290 0 l 31 734 l 168 734 l 328 216 m 319 886 l 318 883 l 202 883 l -1 1059 l 1 1063 l 156 1063 l 319 886 m 502 883 l 395 883 l 232 1060 l 233 1063 l 377 1063 l 502 883 z "},"Ѹ":{"ha":1645,"x_min":77,"x_max":1625,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 1268 272 l 1292 180 l 1296 180 l 1476 734 l 1625 734 l 1316 -113 q 1237 -241 1289 -186 q 1097 -296 1185 -296 q 1055 -293 1080 -296 q 1017 -286 1030 -289 l 1030 -180 q 1054 -182 1026 -180 q 1090 -184 1082 -184 q 1160 -146 1133 -184 q 1205 -62 1187 -108 l 1237 15 l 964 734 l 1114 734 l 1268 272 z "},"ѹ":{"ha":1488,"x_min":66,"x_max":1468,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 1111 272 l 1135 180 l 1139 180 l 1319 734 l 1468 734 l 1159 -113 q 1079 -241 1131 -186 q 939 -296 1027 -296 q 898 -293 923 -296 q 859 -286 873 -289 l 873 -180 q 897 -182 869 -180 q 932 -184 925 -184 q 1002 -146 975 -184 q 1048 -62 1029 -108 l 1080 15 l 807 734 l 956 734 l 1111 272 z "},"Ѻ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 541 -8 669 12 l 541 -96 l 407 -96 l 407 -10 q 184 105 274 7 q 77 406 77 224 l 77 581 q 184 882 77 762 q 407 998 274 981 l 407 1078 l 541 1078 l 541 996 q 757 882 669 975 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 541 882 613 863 l 541 814 l 407 814 l 407 886 q 279 805 330 869 q 210 583 210 718 l 210 406 q 279 182 210 269 q 407 101 330 118 l 407 174 l 541 174 l 541 104 q 663 181 613 123 q 736 406 736 268 l 736 583 z "},"ѻ":{"ha":789,"x_min":66,"x_max":723,"o":"m 462 -80 l 328 -80 l 328 -9 q 154 90 222 9 q 66 359 66 195 l 66 374 q 154 642 66 536 q 328 742 222 724 l 328 818 l 462 818 l 462 741 q 634 642 567 722 q 723 374 723 537 l 723 359 q 635 90 723 195 q 462 -8 567 10 l 462 -80 m 199 359 q 248 166 199 242 q 328 100 279 119 l 328 170 l 462 170 l 462 101 q 540 166 509 119 q 589 359 589 242 l 589 374 q 539 566 589 489 q 462 630 509 612 l 462 567 l 328 567 l 328 631 q 248 566 279 613 q 199 374 199 489 l 199 359 z "},"Ѽ":{"ha":1214,"x_min":106,"x_max":1109,"o":"m 838 981 l 842 983 q 1035 907 960 985 q 1109 682 1109 829 l 1109 291 q 1035 64 1109 142 q 838 -14 960 -14 q 701 15 761 -14 q 608 101 642 43 q 513 15 573 43 q 378 -14 454 -14 q 181 64 256 -14 q 106 291 106 142 l 106 682 q 181 907 106 829 q 374 983 255 985 l 378 981 l 378 882 q 278 831 315 882 q 240 682 240 779 l 240 291 q 278 141 240 193 q 378 90 315 90 q 496 135 451 90 q 541 265 541 179 l 541 558 l 675 558 l 675 265 q 720 135 675 179 q 838 90 764 90 q 938 141 899 90 q 976 291 976 193 l 976 682 q 938 831 976 779 q 838 882 899 882 l 838 981 m 907 1191 l 907 1103 l 876 1103 q 686 1145 787 1103 q 556 1187 585 1187 q 503 1168 522 1187 q 483 1115 483 1150 l 483 1103 l 392 1103 l 392 1127 q 434 1238 392 1200 q 553 1275 476 1275 q 701 1233 602 1275 q 878 1191 800 1191 l 907 1191 m 578 894 l 524 939 l 564 1017 l 563 1112 l 690 1112 l 690 1028 l 578 894 z "},"ѽ":{"ha":1058,"x_min":83,"x_max":978,"o":"m 734 734 l 738 736 q 911 668 844 739 q 978 462 978 597 l 978 264 q 911 57 978 128 q 734 -14 844 -14 q 614 10 667 -14 q 530 83 562 35 q 446 10 498 35 q 328 -14 394 -14 q 150 57 217 -14 q 83 264 83 128 l 83 462 q 150 668 83 597 q 323 736 216 739 l 328 734 l 328 635 q 247 591 277 635 q 217 462 217 547 l 217 264 q 247 134 217 178 q 328 90 277 90 q 426 128 388 90 q 464 239 464 166 l 464 397 l 597 397 l 597 239 q 635 128 597 166 q 734 90 673 90 q 814 134 784 90 q 844 264 844 178 l 844 462 q 814 591 844 547 q 734 635 784 635 l 734 734 m 852 947 l 852 860 l 821 860 q 630 902 732 860 q 500 943 529 943 q 447 925 467 943 q 427 871 427 907 l 427 859 l 336 859 l 336 884 q 378 994 336 957 q 498 1031 420 1031 q 646 989 547 1031 q 822 947 745 947 l 852 947 m 524 655 l 471 704 l 508 778 l 507 863 l 633 859 l 633 780 l 524 655 z "},"Ѿ":{"ha":1219,"x_min":106,"x_max":1113,"o":"m 318 1145 l 318 1219 l 875 1219 l 876 1145 l 651 1145 l 651 1059 l 530 1059 l 530 1145 l 318 1145 m 1113 987 l 1113 265 q 1035 57 1113 129 q 829 -14 956 -14 q 698 15 755 -14 q 608 103 640 45 q 514 15 574 45 q 378 -14 454 -14 q 181 57 256 -14 q 106 265 106 129 l 106 987 l 240 987 l 240 265 q 278 135 240 179 q 378 90 315 90 q 496 135 451 90 q 541 265 541 179 l 541 987 l 679 987 l 679 265 q 720 135 679 180 q 829 90 762 90 q 938 135 897 90 q 979 265 979 180 l 979 987 l 1113 987 z "},"ѿ":{"ha":1059,"x_min":84,"x_max":979,"o":"m 258 914 l 258 988 l 814 988 l 817 914 l 591 914 l 591 827 l 470 827 l 470 914 l 258 914 m 979 734 l 979 239 q 908 51 979 115 q 722 -14 837 -14 q 610 10 659 -14 q 530 82 560 34 q 446 10 498 34 q 328 -14 394 -14 q 151 50 218 -14 q 84 239 84 115 l 84 734 l 218 734 l 218 239 q 248 128 218 165 q 328 90 277 90 q 427 128 389 90 q 465 239 465 166 l 465 734 l 599 734 l 599 239 q 632 128 599 165 q 722 90 666 90 q 811 128 777 90 q 846 239 846 166 l 846 734 l 979 734 z "},"Ҁ":{"ha":906,"x_min":80,"x_max":824,"o":"m 536 -260 l 404 -260 l 404 -10 q 169 124 258 9 q 80 406 80 239 l 80 581 q 185 883 80 764 q 458 1002 291 1002 q 725 912 626 1002 q 821 676 824 823 l 820 672 l 692 672 q 631 836 692 776 q 458 897 570 897 q 280 806 347 897 q 214 583 214 716 l 214 406 q 280 180 214 271 q 458 90 347 90 l 536 90 l 536 -260 z "},"ҁ":{"ha":745,"x_min":66,"x_max":673,"o":"m 460 -260 l 327 -260 l 327 -9 q 135 114 204 13 q 66 353 66 215 l 66 381 q 153 641 66 535 q 389 747 239 747 q 593 671 512 747 q 671 485 673 595 l 669 481 l 549 481 q 502 595 549 547 q 389 642 456 642 q 248 564 295 642 q 200 381 200 486 l 200 353 q 247 168 200 245 q 389 90 294 90 l 460 90 l 460 -260 z "},"҂":{"ha":869,"x_min":76,"x_max":795,"o":"m 410 303 l 606 186 l 557 102 l 360 217 l 237 0 l 119 0 l 272 270 l 76 386 l 124 470 l 323 354 l 460 601 l 263 717 l 313 802 l 510 686 l 635 910 l 751 910 l 596 634 l 795 518 l 744 434 l 549 549 l 410 303 z "},"҃":{"ha":790,"x_min":144,"x_max":631,"o":"m 262 891 l 262 806 l 144 806 l 144 966 l 513 966 l 513 1039 l 631 1038 l 631 891 l 262 891 z "},"҄":{"ha":820,"x_min":170,"x_max":686,"o":"m 200 972 q 376 1014 277 972 q 524 1056 475 1056 q 643 1019 601 1056 q 686 908 686 981 l 686 884 l 595 884 l 595 896 q 575 949 595 931 q 522 968 555 968 q 391 926 492 968 q 201 884 290 884 l 170 884 l 170 972 l 200 972 z "},"҅":{"ha":534,"x_min":174,"x_max":340,"o":"m 174 1017 l 174 1101 l 300 1101 l 300 1006 l 340 927 l 285 882 l 174 1017 z "},"҆":{"ha":574,"x_min":203,"x_max":370,"o":"m 258 882 l 203 927 l 243 1006 l 242 1101 l 370 1101 l 370 1017 l 258 882 z "},"҈":{"ha":1408,"x_min":40,"x_max":1359,"o":"m 553 859 l 551 863 q 586 952 548 917 q 690 987 624 987 q 793 952 755 987 q 829 863 831 917 l 827 859 l 757 859 q 740 908 757 888 q 690 928 724 928 q 640 908 656 928 q 624 859 624 888 l 553 859 m 954 671 l 952 675 q 987 764 949 728 q 1090 799 1025 799 q 1194 764 1156 799 q 1230 675 1233 729 l 1229 671 l 1158 671 q 1141 721 1158 701 q 1090 740 1125 740 q 1041 720 1057 740 q 1025 671 1025 701 l 954 671 m 1080 330 l 1079 334 q 1114 422 1076 387 q 1217 458 1152 458 q 1321 423 1282 458 q 1356 334 1359 388 l 1355 330 l 1284 330 q 1268 379 1284 360 q 1217 399 1252 399 q 1167 379 1183 399 q 1152 330 1152 359 l 1080 330 m 947 -22 l 945 -18 q 980 71 942 35 q 1084 106 1019 106 q 1187 71 1149 106 q 1223 -18 1225 36 l 1221 -22 l 1151 -22 q 1135 27 1151 8 q 1084 47 1118 47 q 1034 27 1050 47 q 1018 -22 1018 7 l 947 -22 m 556 -214 l 555 -210 q 589 -121 551 -156 q 693 -87 627 -87 q 797 -121 758 -87 q 832 -210 835 -156 l 831 -214 l 760 -214 q 744 -165 760 -184 q 693 -146 727 -146 q 643 -165 659 -146 q 627 -214 627 -184 l 556 -214 m 164 671 l 163 675 q 198 764 159 729 q 302 799 236 799 q 405 764 367 799 q 441 675 444 729 l 439 671 l 369 671 q 352 720 369 701 q 302 740 336 740 q 252 720 268 740 q 236 671 236 701 l 164 671 m 45 330 l 43 334 q 78 422 40 387 q 182 458 117 458 q 285 423 247 458 q 321 334 323 388 l 319 330 l 249 330 q 233 379 249 360 q 182 399 216 399 q 132 379 148 399 q 116 330 116 359 l 45 330 m 157 -22 l 156 -18 q 191 71 153 35 q 294 106 229 106 q 398 71 359 106 q 434 -18 437 36 l 433 -22 l 361 -22 q 345 27 361 8 q 294 47 329 47 q 245 27 260 47 q 229 -22 229 7 l 157 -22 z "},"҉":{"ha":1362,"x_min":52,"x_max":1311,"o":"m 749 -41 l 756 -50 l 673 -280 l 608 -280 l 656 -41 l 749 -41 m 616 764 l 608 773 l 691 1002 l 756 1002 l 709 764 l 616 764 m 1076 428 l 1085 436 l 1311 352 l 1311 286 l 1076 334 l 1076 428 m 287 294 l 278 286 l 52 370 l 52 436 l 287 388 l 287 294 m 913 680 l 915 690 l 1133 794 l 1179 748 q 979 612 1154 732 l 913 680 m 450 14 l 448 3 l 231 -101 l 184 -54 l 384 81 l 450 14 m 355 583 l 343 585 l 243 806 l 287 852 l 421 650 l 355 583 m 1007 109 l 1019 108 l 1120 -113 l 1075 -161 l 941 42 l 1007 109 z "},"Ҋ":{"ha":991,"x_min":122,"x_max":980,"o":"m 735 987 l 869 987 l 869 0 l 735 0 l 735 753 l 731 754 l 256 0 l 122 0 l 122 987 l 256 987 l 256 235 l 260 234 l 735 987 m 696 1268 l 698 1264 q 646 1136 701 1185 q 498 1086 591 1086 q 349 1136 404 1086 q 298 1264 294 1185 l 299 1268 l 401 1268 q 425 1196 401 1223 q 498 1168 448 1168 q 570 1196 547 1168 q 594 1268 594 1224 l 696 1268 m 980 7 l 878 -201 l 799 -201 l 846 14 l 846 124 l 980 124 l 980 7 z "},"ҋ":{"ha":789,"x_min":97,"x_max":803,"o":"m 558 734 l 692 734 l 692 0 l 558 0 l 558 521 l 554 522 l 230 0 l 97 0 l 97 734 l 230 734 l 230 213 l 234 212 l 558 734 m 593 1036 l 595 1031 q 543 903 597 953 q 395 854 488 854 q 246 903 301 854 q 195 1031 191 953 l 196 1036 l 298 1036 q 321 963 298 991 q 395 935 345 935 q 467 963 444 935 q 491 1036 491 991 l 593 1036 m 803 7 l 701 -201 l 622 -201 l 669 14 l 669 124 l 803 124 l 803 7 z "},"Ҍ":{"ha":875,"x_min":-35,"x_max":821,"o":"m 400 747 l 244 747 l 244 597 l 488 597 q 733 516 646 597 q 821 301 821 435 q 733 83 821 167 q 488 0 645 0 l 111 0 l 111 747 l -35 747 l -35 852 l 111 852 l 111 987 l 244 987 l 244 852 l 400 852 l 400 747 m 244 492 l 244 104 l 488 104 q 637 162 587 104 q 688 302 688 219 q 638 437 688 383 q 488 492 588 492 l 244 492 z "},"ҍ":{"ha":755,"x_min":-25,"x_max":694,"o":"m 455 882 l 237 882 l 237 507 l 420 507 q 622 438 550 507 q 694 256 694 368 q 622 72 694 144 q 420 0 549 0 l 104 0 l 104 882 l -25 882 l -25 987 l 104 987 l 104 1119 l 237 1119 l 237 987 l 455 987 l 455 882 m 237 403 l 237 104 l 420 104 q 526 147 492 104 q 560 252 560 189 q 526 358 560 313 q 420 403 491 403 l 237 403 z "},"Ҏ":{"ha":888,"x_min":122,"x_max":850,"o":"m 256 396 l 256 0 l 122 0 l 122 987 l 500 987 q 745 906 658 987 q 833 692 833 825 q 759 490 833 568 l 850 391 l 772 320 l 672 429 q 500 396 600 396 l 256 396 m 256 500 l 500 500 q 592 515 553 500 l 519 595 l 597 666 l 672 584 q 699 690 699 629 q 649 827 699 772 q 500 882 600 882 l 256 882 l 256 500 z "},"ҏ":{"ha":789,"x_min":97,"x_max":724,"o":"m 722 339 q 652 92 722 187 l 724 12 l 646 -59 l 574 20 q 437 -14 515 -14 q 318 8 369 -14 q 231 77 267 31 l 231 -282 l 97 -282 l 97 734 l 212 734 l 224 644 q 313 721 260 694 q 435 747 366 747 q 647 639 571 747 q 722 353 722 531 l 722 339 m 589 353 q 539 558 589 478 q 395 639 490 639 q 296 613 337 639 q 231 541 256 587 l 231 186 q 296 116 256 141 q 396 90 337 90 q 490 113 451 90 l 417 195 l 496 266 l 560 194 q 589 339 589 255 l 589 353 z "},"Ґ":{"ha":762,"x_min":111,"x_max":719,"o":"m 719 882 l 244 882 l 244 0 l 111 0 l 111 987 l 585 987 l 585 1214 l 719 1214 l 719 882 z "},"ґ":{"ha":621,"x_min":97,"x_max":567,"o":"m 567 628 l 231 628 l 231 0 l 97 0 l 97 734 l 433 734 l 433 947 l 567 947 l 567 628 z "},"Ғ":{"ha":773,"x_min":-3,"x_max":728,"o":"m 432 462 l 256 462 l 256 0 l 122 0 l 122 462 l -3 462 l -3 567 l 122 567 l 122 987 l 728 987 l 728 882 l 256 882 l 256 567 l 432 567 l 432 462 z "},"ғ":{"ha":576,"x_min":-9,"x_max":564,"o":"m 426 323 l 231 323 l 231 0 l 97 0 l 97 323 l -9 323 l -9 428 l 97 428 l 97 734 l 564 734 l 564 628 l 231 628 l 231 428 l 426 428 l 426 323 z "},"Ҕ":{"ha":850,"x_min":122,"x_max":785,"o":"m 728 882 l 256 882 l 256 565 l 378 565 q 677 461 570 565 q 785 173 785 357 q 702 -100 785 -5 q 466 -193 620 -195 l 462 -191 l 460 -95 q 607 -26 563 -95 q 651 173 651 43 q 582 381 650 310 q 378 453 514 453 l 256 453 l 256 0 l 122 0 l 122 987 l 728 987 l 728 882 z "},"ҕ":{"ha":700,"x_min":97,"x_max":652,"o":"m 564 628 l 231 628 l 231 439 l 306 439 q 556 352 459 439 q 652 115 652 264 q 585 -74 651 22 q 391 -193 519 -169 l 355 -92 q 481 -15 443 -68 q 519 115 519 38 q 459 271 517 215 q 306 327 401 327 l 231 327 l 231 0 l 97 0 l 97 734 l 564 734 l 564 628 z "},"Җ":{"ha":1267,"x_min":19,"x_max":1297,"o":"m 808 453 l 704 453 l 704 0 l 570 0 l 570 453 l 460 453 l 186 0 l 19 0 l 349 522 l 47 987 l 203 987 l 459 558 l 570 558 l 570 987 l 704 987 l 704 558 l 810 558 l 1066 987 l 1222 987 l 919 523 l 1249 0 l 1083 0 l 808 453 m 1297 -243 l 1164 -243 l 1164 106 l 1297 106 l 1297 -243 z "},"җ":{"ha":1063,"x_min":14,"x_max":1069,"o":"m 682 318 l 596 318 l 596 0 l 463 0 l 463 318 l 376 318 l 182 0 l 14 0 l 276 389 l 37 734 l 199 734 l 379 431 l 463 431 l 463 734 l 596 734 l 596 431 l 680 431 l 861 734 l 1022 734 l 783 389 l 1044 0 l 876 0 l 682 318 m 1069 -243 l 935 -243 l 935 106 l 1069 106 l 1069 -243 z "},"Ҙ":{"ha":824,"x_min":81,"x_max":846,"o":"m 831 720 q 785 595 831 652 q 657 507 739 538 q 797 419 749 478 q 846 275 846 360 q 738 62 846 139 q 454 -14 629 -14 q 191 58 301 -14 q 85 270 81 131 l 86 274 l 214 274 q 281 143 214 197 q 454 90 348 90 q 644 141 575 90 q 712 273 712 191 q 650 407 712 363 q 465 450 587 450 l 341 450 l 341 556 l 465 556 q 640 601 583 556 q 697 723 697 646 q 636 848 697 799 q 454 897 574 897 q 293 848 359 897 q 228 729 228 800 l 100 729 l 100 733 q 199 927 96 852 q 454 1002 302 1002 q 730 928 629 1002 q 831 720 831 855 m 477 -292 l 344 -292 l 344 58 l 477 58 l 477 -292 z "},"ҙ":{"ha":705,"x_min":60,"x_max":639,"o":"m 360 429 q 461 455 431 429 q 492 533 492 482 q 457 611 492 579 q 351 643 422 643 q 245 610 288 643 q 203 529 203 576 l 76 529 l 75 533 q 152 687 71 627 q 351 746 233 746 q 553 691 480 746 q 625 533 625 635 q 595 443 625 484 q 512 378 566 401 q 606 312 574 355 q 639 207 639 269 q 560 45 639 104 q 351 -13 481 -13 q 146 45 232 -13 q 63 213 60 103 l 64 217 l 191 217 q 236 127 191 165 q 351 90 281 90 q 464 123 424 90 q 505 207 505 157 q 470 293 505 266 q 360 320 435 320 l 233 320 l 233 429 l 360 429 m 419 -291 l 286 -291 l 286 59 l 419 59 l 419 -291 z "},"Қ":{"ha":893,"x_min":122,"x_max":937,"o":"m 371 446 l 256 446 l 256 0 l 122 0 l 122 987 l 256 987 l 256 551 l 359 551 l 712 987 l 860 987 l 862 984 l 479 510 l 890 3 l 888 0 l 728 0 l 371 446 m 937 -243 l 804 -243 l 804 106 l 937 106 l 937 -243 z "},"қ":{"ha":736,"x_min":104,"x_max":772,"o":"m 325 311 l 237 311 l 237 0 l 104 0 l 104 734 l 237 734 l 237 424 l 315 424 l 557 734 l 713 734 l 715 730 l 428 382 l 739 3 l 736 0 l 572 0 l 325 311 m 772 -243 l 638 -243 l 638 106 l 772 106 l 772 -243 z "},"Ҝ":{"ha":878,"x_min":111,"x_max":867,"o":"m 839 987 l 569 520 l 867 0 l 701 0 l 470 446 l 417 446 l 417 281 l 311 281 l 311 446 l 244 446 l 244 0 l 111 0 l 111 987 l 244 987 l 244 551 l 311 551 l 311 724 l 417 724 l 417 551 l 469 551 l 684 987 l 839 987 z "},"ҝ":{"ha":765,"x_min":104,"x_max":762,"o":"m 738 734 l 508 387 l 762 0 l 593 0 l 410 311 l 395 311 l 395 182 l 288 182 l 288 311 l 237 311 l 237 0 l 104 0 l 104 734 l 237 734 l 237 424 l 288 424 l 288 567 l 395 567 l 395 424 l 405 424 l 578 734 l 738 734 z "},"Ҟ":{"ha":907,"x_min":-7,"x_max":903,"o":"m 385 446 l 269 446 l 269 0 l 136 0 l 136 783 l -7 783 l -7 888 l 136 888 l 136 987 l 269 987 l 269 888 l 427 888 l 427 783 l 269 783 l 269 551 l 372 551 l 726 987 l 873 987 l 876 984 l 492 510 l 903 3 l 901 0 l 742 0 l 385 446 z "},"ҟ":{"ha":726,"x_min":-33,"x_max":727,"o":"m 332 338 l 245 338 l 245 0 l 111 0 l 111 823 l -33 823 l -33 928 l 111 928 l 111 1058 l 245 1058 l 245 928 l 401 928 l 401 823 l 245 823 l 245 445 l 330 445 l 531 734 l 691 734 l 440 400 l 727 0 l 570 0 l 332 338 z "},"Ҡ":{"ha":1139,"x_min":45,"x_max":1136,"o":"m 617 446 l 502 446 l 502 0 l 368 0 l 368 882 l 45 882 l 45 987 l 502 987 l 502 551 l 605 551 l 958 987 l 1106 987 l 1108 984 l 725 510 l 1136 3 l 1134 0 l 975 0 l 617 446 z "},"ҡ":{"ha":964,"x_min":44,"x_max":959,"o":"m 545 311 l 458 311 l 458 0 l 324 0 l 324 628 l 44 628 l 44 734 l 458 734 l 458 424 l 535 424 l 777 734 l 934 734 l 936 730 l 648 382 l 959 3 l 957 0 l 793 0 l 545 311 z "},"Ң":{"ha":991,"x_min":122,"x_max":967,"o":"m 869 0 l 735 0 l 735 436 l 256 436 l 256 0 l 122 0 l 122 987 l 256 987 l 256 541 l 735 541 l 735 987 l 869 987 l 869 0 m 967 -243 l 833 -243 l 833 106 l 967 106 l 967 -243 z "},"ң":{"ha":789,"x_min":97,"x_max":789,"o":"m 691 0 l 557 0 l 557 312 l 231 312 l 231 0 l 97 0 l 97 734 l 231 734 l 231 416 l 557 416 l 557 734 l 691 734 l 691 0 m 789 -243 l 656 -243 l 656 106 l 789 106 l 789 -243 z "},"Ҥ":{"ha":1348,"x_min":122,"x_max":1298,"o":"m 256 541 l 735 541 l 735 987 l 1298 987 l 1298 882 l 869 882 l 869 0 l 735 0 l 735 436 l 256 436 l 256 0 l 122 0 l 122 987 l 256 987 l 256 541 z "},"ҥ":{"ha":987,"x_min":97,"x_max":937,"o":"m 231 416 l 557 416 l 557 734 l 937 734 l 937 628 l 691 628 l 691 0 l 557 0 l 557 312 l 231 312 l 231 0 l 97 0 l 97 734 l 231 734 l 231 416 z "},"Ҧ":{"ha":1423,"x_min":122,"x_max":1354,"o":"m 870 565 l 947 565 q 1247 461 1140 565 q 1354 173 1354 357 q 1272 -100 1354 -5 q 1036 -193 1190 -195 l 1031 -191 l 1030 -95 q 1177 -26 1133 -95 q 1221 173 1221 43 q 1152 381 1219 310 q 947 453 1084 453 l 870 453 l 870 0 l 736 0 l 736 882 l 256 882 l 256 0 l 122 0 l 122 987 l 870 987 l 870 565 z "},"ҧ":{"ha":1211,"x_min":97,"x_max":1166,"o":"m 692 439 l 806 439 q 1065 352 965 439 q 1166 115 1166 264 q 1099 -74 1164 22 q 904 -193 1033 -169 l 869 -92 q 994 -15 956 -68 q 1032 115 1032 38 q 969 271 1031 216 q 806 327 907 327 l 692 327 l 692 0 l 558 0 l 558 628 l 231 628 l 231 0 l 97 0 l 97 734 l 692 734 l 692 439 z "},"Ҩ":{"ha":1029,"x_min":77,"x_max":973,"o":"m 973 -20 q 832 -8 899 -20 q 705 30 764 5 q 604 -3 657 8 q 494 -14 551 -14 q 193 121 309 -14 q 77 459 77 256 l 77 572 q 162 878 77 755 q 381 996 248 1000 l 385 995 l 385 892 q 257 802 304 892 q 210 573 210 712 l 210 459 q 287 197 210 300 q 494 95 364 95 q 538 97 517 95 q 579 104 559 99 q 452 265 496 170 q 408 473 408 360 l 408 627 q 485 893 408 787 q 687 1000 563 1000 q 888 896 810 1000 q 965 627 965 791 l 965 459 q 927 262 965 353 q 819 106 888 171 q 892 93 854 97 q 973 88 930 88 l 973 -20 m 541 472 q 581 289 541 368 q 696 163 621 209 l 700 163 q 797 286 762 208 q 831 459 831 363 l 831 629 q 792 819 831 746 q 687 891 753 891 q 581 817 621 891 q 541 629 541 742 l 541 472 z "},"ҩ":{"ha":840,"x_min":73,"x_max":804,"o":"m 804 -8 q 688 1 743 -8 q 586 31 633 11 q 501 -3 546 8 q 408 -14 456 -14 q 166 100 260 -14 q 73 387 73 214 l 73 425 q 139 655 73 564 q 309 742 205 745 l 313 741 l 313 638 q 235 579 264 638 q 207 427 207 519 l 207 387 q 261 177 207 259 q 408 95 315 95 q 437 97 422 95 q 466 102 452 98 q 370 229 403 156 q 336 389 336 302 l 336 458 q 395 667 336 587 q 553 748 454 748 q 711 662 651 748 q 770 444 770 576 l 770 373 q 748 232 770 298 q 685 115 726 165 q 741 104 711 107 q 804 100 770 100 l 804 -8 m 637 373 l 637 446 q 614 584 637 530 q 555 635 592 638 l 551 635 q 491 590 512 638 q 470 460 470 541 l 470 387 q 495 263 470 318 q 568 174 521 208 l 572 174 q 620 259 603 208 q 637 373 637 311 z "},"Ҫ":{"ha":880,"x_min":80,"x_max":824,"o":"m 820 316 l 821 312 q 724 79 824 173 q 458 -14 623 -14 q 185 104 291 -14 q 80 406 80 223 l 80 581 q 185 883 80 764 q 458 1002 291 1002 q 725 912 626 1002 q 821 676 824 823 l 820 672 l 692 672 q 631 836 692 776 q 458 897 570 897 q 280 806 347 897 q 214 583 214 716 l 214 406 q 280 180 214 271 q 458 90 347 90 q 631 150 570 90 q 692 316 692 210 l 820 316 m 528 -292 l 394 -292 l 394 58 l 528 58 l 528 -292 z "},"ҫ":{"ha":737,"x_min":66,"x_max":688,"o":"m 395 90 q 512 131 462 90 q 563 232 563 172 l 683 232 l 684 228 q 600 59 688 133 q 395 -14 512 -14 q 151 90 235 -14 q 66 353 66 195 l 66 381 q 151 643 66 538 q 395 747 236 747 q 606 671 524 747 q 685 485 688 595 l 684 481 l 563 481 q 515 595 563 548 q 395 642 468 642 q 245 567 290 642 q 200 381 200 491 l 200 353 q 245 165 200 240 q 395 90 290 90 m 432 -292 l 298 -292 l 298 58 l 432 58 l 432 -292 z "},"Ҭ":{"ha":814,"x_min":23,"x_max":791,"o":"m 791 882 l 473 882 l 473 0 l 340 0 l 340 882 l 23 882 l 23 987 l 791 987 l 791 882 m 572 -243 l 438 -243 l 438 106 l 572 106 l 572 -243 z "},"ҭ":{"ha":711,"x_min":48,"x_max":663,"o":"m 663 630 l 420 630 l 420 0 l 287 0 l 287 630 l 48 630 l 48 734 l 663 734 l 663 630 m 519 -243 l 385 -243 l 385 106 l 519 106 l 519 -243 z "},"Ү":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 z "},"ү":{"ha":699,"x_min":31,"x_max":675,"o":"m 539 734 l 675 734 l 421 42 l 421 -283 l 288 -283 l 288 45 l 31 734 l 168 734 l 342 216 l 353 165 l 357 165 l 370 216 l 539 734 z "},"Ұ":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 550 463 l 631 463 l 631 357 l 493 357 l 488 347 l 488 0 l 355 0 l 355 356 l 354 357 l 197 357 l 197 463 l 297 463 l 14 987 l 166 987 l 424 486 z "},"ұ":{"ha":699,"x_min":31,"x_max":675,"o":"m 576 -9 l 421 -9 l 421 -283 l 288 -283 l 288 -9 l 141 -9 l 141 96 l 269 96 l 31 734 l 168 734 l 342 216 l 353 165 l 357 165 l 370 216 l 539 734 l 675 734 l 441 96 l 576 96 l 576 -9 z "},"Ҳ":{"ha":878,"x_min":45,"x_max":857,"o":"m 441 602 l 671 987 l 833 987 l 519 498 l 840 0 l 680 0 l 444 392 l 206 0 l 45 0 l 365 498 l 52 987 l 212 987 l 441 602 m 857 -243 l 724 -243 l 724 106 l 857 106 l 857 -243 z "},"ҳ":{"ha":699,"x_min":31,"x_max":702,"o":"m 346 463 l 502 734 l 658 734 l 420 371 l 665 0 l 511 0 l 349 277 l 186 0 l 31 0 l 276 371 l 38 734 l 192 734 l 346 463 m 702 -243 l 568 -243 l 568 106 l 702 106 l 702 -243 z "},"Ҵ":{"ha":1253,"x_min":37,"x_max":1147,"o":"m 269 881 l 37 881 l 37 986 l 684 986 l 684 881 l 403 881 l 403 105 l 883 105 l 883 987 l 1017 987 l 1017 109 l 1147 109 l 1147 -241 l 1014 -241 l 1014 0 l 269 0 l 269 881 z "},"ҵ":{"ha":968,"x_min":22,"x_max":888,"o":"m 203 629 l 22 629 l 22 734 l 502 734 l 502 629 l 337 629 l 337 104 l 665 104 l 665 734 l 798 734 l 798 104 l 888 104 l 888 -240 l 754 -240 l 754 0 l 203 0 l 203 629 z "},"Ҷ":{"ha":956,"x_min":100,"x_max":931,"o":"m 833 987 l 833 0 l 699 0 l 699 409 q 574 380 635 389 q 431 372 514 372 q 184 443 268 372 q 100 675 100 515 l 100 987 l 234 987 l 234 675 q 281 520 234 564 q 431 477 328 477 q 567 487 502 477 q 699 515 632 496 l 699 987 l 833 987 m 931 -243 l 798 -243 l 798 106 l 931 106 l 931 -243 z "},"ҷ":{"ha":767,"x_min":86,"x_max":768,"o":"m 670 0 l 536 0 l 536 262 q 457 247 498 252 q 370 242 416 242 q 162 312 237 242 q 86 519 86 382 l 86 734 l 220 734 l 220 519 q 258 389 220 431 q 370 348 296 348 q 456 353 415 348 q 536 368 496 358 l 536 734 l 670 734 l 670 0 m 768 -243 l 635 -243 l 635 106 l 768 106 l 768 -243 z "},"Ҹ":{"ha":948,"x_min":100,"x_max":833,"o":"m 833 987 l 833 0 l 699 0 l 699 409 q 574 380 635 389 q 541 376 558 378 l 541 214 l 434 214 l 434 372 l 431 372 q 184 443 268 372 q 100 675 100 515 l 100 987 l 234 987 l 234 675 q 281 520 234 564 q 431 477 328 477 l 434 477 l 434 690 l 541 690 l 541 484 q 567 487 554 485 q 699 515 632 496 l 699 987 l 833 987 z "},"ҹ":{"ha":768,"x_min":86,"x_max":670,"o":"m 670 0 l 536 0 l 536 262 q 457 247 498 252 q 439 245 448 246 l 439 155 l 332 155 l 332 243 q 161 312 226 252 q 86 519 86 382 l 86 734 l 220 734 l 220 519 q 258 389 220 431 q 332 351 285 359 l 332 539 l 439 539 l 439 351 l 456 353 q 536 368 496 358 l 536 734 l 670 734 l 670 0 z "},"Һ":{"ha":948,"x_min":94,"x_max":827,"o":"m 94 0 l 94 987 l 227 987 l 227 578 q 352 606 292 597 q 495 616 412 616 q 742 544 658 616 q 827 312 827 472 l 827 0 l 692 0 l 692 312 q 645 467 692 423 q 495 510 598 510 q 359 500 424 510 q 227 472 294 490 l 227 0 l 94 0 z "},"һ":{"ha":768,"x_min":100,"x_max":684,"o":"m 100 735 l 234 735 l 234 473 q 313 488 273 483 q 400 493 354 493 q 609 423 533 493 q 684 216 684 353 l 684 1 l 551 1 l 551 216 q 513 346 551 305 q 400 387 475 387 q 315 382 355 387 q 234 367 274 377 l 234 1 l 100 1 l 100 735 z "},"Ҽ":{"ha":1179,"x_min":52,"x_max":1072,"o":"m 743 -16 q 394 119 519 -16 q 270 475 270 254 l 270 479 q 107 559 163 493 q 55 730 52 626 l 56 734 l 159 734 q 187 628 159 671 q 273 574 215 586 q 405 882 291 763 q 677 1000 519 1000 q 970 880 869 1000 q 1072 549 1072 760 l 1072 475 l 408 475 l 407 472 q 487 196 404 303 q 743 89 571 89 q 867 104 815 89 q 970 146 920 120 l 1003 52 q 904 6 969 27 q 743 -16 839 -16 m 677 895 q 490 804 562 895 q 409 570 419 712 l 411 567 l 938 567 l 938 588 q 877 811 938 728 q 677 895 815 895 z "},"ҽ":{"ha":824,"x_min":-22,"x_max":755,"o":"m 475 -14 q 232 88 322 -14 q 141 353 141 190 l 141 358 q 19 437 60 378 q -22 588 -22 496 l 84 588 q 99 508 84 541 q 147 458 115 475 q 257 667 170 586 q 455 747 345 747 q 680 658 604 747 q 755 419 755 568 l 755 336 l 279 336 l 277 332 q 331 158 279 227 q 475 90 382 90 q 594 110 543 90 q 683 163 646 129 l 735 76 q 631 12 696 37 q 475 -14 567 -14 m 455 642 q 340 586 388 642 q 282 444 293 529 l 283 440 l 622 440 l 622 458 q 580 589 622 536 q 455 642 538 642 z "},"Ҿ":{"ha":1078,"x_min":52,"x_max":1072,"o":"m 743 -16 q 394 119 519 -16 q 270 475 270 254 l 270 479 q 107 559 163 493 q 55 730 52 626 l 56 734 l 159 734 q 187 628 159 671 q 273 574 215 586 q 405 882 291 763 q 677 1000 519 1000 q 970 880 869 1000 q 1072 549 1072 760 l 1072 475 l 408 475 l 407 472 q 487 196 404 303 q 743 89 571 89 q 867 104 815 89 q 970 146 920 120 l 1003 52 q 904 6 969 27 q 743 -16 839 -16 m 677 895 q 490 804 562 895 q 409 570 419 712 l 411 567 l 938 567 l 938 588 q 877 811 938 728 q 677 895 815 895 m 730 -288 l 596 -288 l 596 62 l 730 62 l 730 -288 z "},"ҿ":{"ha":824,"x_min":-22,"x_max":755,"o":"m 475 -14 q 232 88 322 -14 q 141 353 141 190 l 141 358 q 19 437 60 378 q -22 588 -22 496 l 84 588 q 99 508 84 541 q 147 458 115 475 q 257 667 170 586 q 455 747 345 747 q 680 658 604 747 q 755 419 755 568 l 755 336 l 279 336 l 277 332 q 331 158 279 227 q 475 90 382 90 q 594 110 543 90 q 683 163 646 129 l 735 76 q 631 12 696 37 q 475 -14 567 -14 m 455 642 q 340 586 388 642 q 282 444 293 529 l 283 440 l 622 440 l 622 458 q 580 589 622 536 q 455 642 538 642 m 549 -287 l 415 -287 l 415 63 l 549 63 l 549 -287 z "},"Ӏ":{"ha":393,"x_min":129,"x_max":263,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 z "},"Ӂ":{"ha":1267,"x_min":19,"x_max":1249,"o":"m 808 453 l 704 453 l 704 0 l 570 0 l 570 453 l 460 453 l 186 0 l 19 0 l 349 522 l 47 987 l 203 987 l 459 558 l 570 558 l 570 987 l 704 987 l 704 558 l 810 558 l 1066 987 l 1222 987 l 919 523 l 1249 0 l 1083 0 l 808 453 m 836 1268 l 837 1264 q 785 1136 840 1185 q 637 1086 730 1086 q 488 1136 543 1086 q 437 1264 433 1185 l 438 1268 l 541 1268 q 564 1196 541 1223 q 637 1168 587 1168 q 709 1196 686 1168 q 733 1268 733 1224 l 836 1268 z "},"ӂ":{"ha":1063,"x_min":14,"x_max":1044,"o":"m 682 318 l 596 318 l 596 0 l 463 0 l 463 318 l 376 318 l 182 0 l 14 0 l 276 389 l 37 734 l 199 734 l 379 431 l 463 431 l 463 734 l 596 734 l 596 431 l 680 431 l 861 734 l 1022 734 l 783 389 l 1044 0 l 876 0 l 682 318 m 731 1036 l 732 1031 q 680 903 735 953 q 532 854 625 854 q 384 903 439 854 q 332 1031 329 953 l 334 1036 l 436 1036 q 459 963 436 991 q 532 935 482 935 q 605 963 581 935 q 629 1036 629 991 l 731 1036 z "},"Ӄ":{"ha":878,"x_min":111,"x_max":836,"o":"m 481 560 q 739 443 648 545 q 831 171 831 340 q 748 -102 831 -7 q 512 -195 666 -197 l 508 -193 l 507 -97 q 653 -28 609 -97 q 697 171 697 41 q 628 379 696 308 q 424 450 560 450 l 244 450 l 244 0 l 111 0 l 111 987 l 244 987 l 244 563 l 331 563 l 684 987 l 834 987 l 836 984 l 481 560 z "},"ӄ":{"ha":760,"x_min":104,"x_max":715,"o":"m 440 416 q 638 320 565 395 q 711 119 711 245 q 644 -61 709 29 q 449 -175 578 -152 l 414 -73 q 539 -2 501 -52 q 578 119 578 47 q 516 264 576 217 q 351 311 456 311 l 237 311 l 237 0 l 104 0 l 104 734 l 237 734 l 237 424 l 294 424 l 557 734 l 713 734 l 715 730 l 440 416 z "},"Ӆ":{"ha":984,"x_min":33,"x_max":973,"o":"m 862 987 l 862 0 l 728 0 l 728 882 l 372 882 l 371 522 q 301 125 371 251 q 69 0 231 0 l 33 0 l 33 104 l 61 104 q 196 201 155 104 q 238 522 237 298 l 239 987 l 862 987 m 973 7 l 871 -201 l 792 -201 l 840 14 l 840 124 l 973 124 l 973 7 z "},"ӆ":{"ha":768,"x_min":18,"x_max":803,"o":"m 692 734 l 692 0 l 558 0 l 558 628 l 310 628 l 310 420 q 252 102 310 203 q 56 0 195 0 l 18 0 l 20 114 l 48 115 q 148 184 119 115 q 176 420 176 254 l 176 734 l 692 734 m 803 7 l 701 -201 l 622 -201 l 669 14 l 669 124 l 803 124 l 803 7 z "},"Ӈ":{"ha":991,"x_min":122,"x_max":869,"o":"m 256 987 l 256 541 l 734 541 l 734 987 l 869 987 l 869 -60 q 810 -235 869 -174 q 647 -296 751 -296 q 608 -293 626 -296 q 571 -284 590 -290 l 581 -182 q 612 -189 589 -186 q 647 -191 635 -191 q 711 -156 688 -191 q 734 -60 734 -121 l 734 436 l 256 436 l 256 0 l 122 0 l 122 987 l 256 987 z "},"ӈ":{"ha":789,"x_min":97,"x_max":691,"o":"m 231 734 l 231 416 l 557 416 l 557 734 l 691 734 l 691 -60 q 632 -235 691 -174 q 470 -296 574 -296 q 431 -293 449 -296 q 394 -284 413 -290 l 404 -182 q 436 -189 413 -186 q 470 -191 458 -191 q 534 -156 511 -191 q 557 -60 557 -121 l 557 312 l 231 312 l 231 0 l 97 0 l 97 734 l 231 734 z "},"Ӊ":{"ha":991,"x_min":122,"x_max":980,"o":"m 869 0 l 735 0 l 735 436 l 256 436 l 256 0 l 122 0 l 122 987 l 256 987 l 256 541 l 735 541 l 735 987 l 869 987 l 869 0 m 980 7 l 878 -201 l 799 -201 l 846 14 l 846 124 l 980 124 l 980 7 z "},"ӊ":{"ha":789,"x_min":97,"x_max":802,"o":"m 691 0 l 557 0 l 557 312 l 231 312 l 231 0 l 97 0 l 97 734 l 231 734 l 231 416 l 557 416 l 557 734 l 691 734 l 691 0 m 802 7 l 701 -201 l 621 -201 l 669 14 l 669 124 l 802 124 l 802 7 z "},"Ӌ":{"ha":956,"x_min":100,"x_max":833,"o":"m 833 987 l 833 0 l 699 0 l 699 409 q 574 380 635 389 q 431 372 514 372 q 184 443 268 372 q 100 675 100 515 l 100 987 l 234 987 l 234 675 q 281 520 234 564 q 431 477 328 477 q 567 487 502 477 q 699 515 632 496 l 699 987 l 833 987 m 734 -243 l 600 -243 l 600 106 l 734 106 l 734 -243 z "},"ӌ":{"ha":767,"x_min":86,"x_max":670,"o":"m 670 0 l 536 0 l 536 262 q 457 247 498 252 q 370 242 416 242 q 162 312 237 242 q 86 519 86 382 l 86 734 l 220 734 l 220 519 q 258 389 220 431 q 370 348 296 348 q 456 353 415 348 q 536 368 496 358 l 536 734 l 670 734 l 670 0 m 570 -243 l 437 -243 l 437 106 l 570 106 l 570 -243 z "},"Ӎ":{"ha":1220,"x_min":122,"x_max":1208,"o":"m 293 987 l 608 185 l 612 185 l 926 987 l 1097 987 l 1097 0 l 964 0 l 964 391 l 977 792 l 974 793 l 654 0 l 565 0 l 246 791 l 243 790 l 256 391 l 256 0 l 122 0 l 122 987 l 293 987 m 1208 7 l 1107 -201 l 1027 -201 l 1075 14 l 1075 124 l 1208 124 l 1208 7 z "},"ӎ":{"ha":1036,"x_min":104,"x_max":1037,"o":"m 515 175 l 519 175 l 759 734 l 926 734 l 926 0 l 792 0 l 792 509 l 788 511 l 563 0 l 471 0 l 241 522 l 237 521 l 237 0 l 104 0 l 104 734 l 276 734 l 515 175 m 1037 7 l 935 -201 l 856 -201 l 903 14 l 903 124 l 1037 124 l 1037 7 z "},"ӏ":{"ha":393,"x_min":129,"x_max":263,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 z "},"Ӑ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 649 1268 l 650 1264 q 598 1136 653 1185 q 450 1086 543 1086 q 302 1136 357 1086 q 250 1264 247 1185 l 252 1268 l 354 1268 q 377 1196 354 1223 q 450 1168 400 1168 q 523 1196 499 1168 q 547 1268 547 1224 l 649 1268 z "},"ӑ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 576 1050 l 577 1046 q 525 918 580 967 q 377 868 470 868 q 229 918 283 868 q 177 1046 174 967 l 178 1050 l 281 1050 q 304 977 281 1005 q 377 949 327 949 q 450 978 426 949 q 473 1050 473 1006 l 576 1050 z "},"Ӓ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 684 1088 l 535 1088 l 535 1224 l 684 1224 l 684 1088 m 365 1088 l 216 1088 l 216 1224 l 365 1224 l 365 1088 z "},"ӓ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 610 870 l 462 870 l 462 1006 l 610 1006 l 610 870 m 292 870 l 143 870 l 143 1006 l 292 1006 l 292 870 z "},"Ӕ":{"ha":1303,"x_min":-14,"x_max":1281,"o":"m 1281 0 l 674 0 l 664 237 l 286 237 l 149 0 l -14 0 l 583 987 l 1239 987 l 1239 882 l 770 882 l 784 566 l 1184 566 l 1184 461 l 788 461 l 803 104 l 1281 104 l 1281 0 m 356 359 l 659 359 l 638 840 l 635 842 l 356 359 z "},"ӕ":{"ha":1173,"x_min":39,"x_max":1126,"o":"m 856 -14 q 693 19 764 -14 q 578 113 623 52 q 464 22 540 59 q 280 -14 389 -14 q 102 45 165 -14 q 39 206 39 104 q 117 372 39 313 q 345 431 195 431 l 500 431 l 500 488 q 465 601 500 560 q 363 642 430 642 q 252 605 294 642 q 211 515 211 568 l 83 527 l 82 531 q 156 686 79 625 q 363 747 234 747 q 500 720 441 747 q 593 640 559 692 q 696 719 637 691 q 824 747 755 747 q 1047 659 969 747 q 1126 416 1126 571 l 1126 336 l 645 336 l 644 332 q 697 157 644 224 q 856 90 751 90 q 971 109 926 90 q 1069 162 1016 127 l 1114 68 q 1015 12 1078 39 q 856 -14 951 -14 m 307 90 q 414 120 358 90 q 500 188 471 149 l 500 334 l 346 334 q 219 296 264 334 q 173 203 173 258 q 207 122 173 153 q 307 90 241 90 m 824 642 q 701 585 747 642 q 646 437 654 528 l 648 434 l 992 434 l 992 455 q 951 590 992 538 q 824 642 911 642 z "},"Ӗ":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 625 1268 l 627 1264 q 574 1136 629 1185 q 427 1086 519 1086 q 278 1136 333 1086 q 227 1264 223 1185 l 228 1268 l 330 1268 q 353 1196 330 1223 q 427 1168 376 1168 q 499 1196 475 1168 q 523 1268 523 1224 l 625 1268 z "},"ӗ":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 578 1050 l 579 1046 q 527 918 582 968 q 379 869 472 869 q 231 918 286 869 q 179 1046 176 968 l 180 1050 l 283 1050 q 306 978 283 1006 q 379 950 329 950 q 452 978 428 950 q 475 1050 475 1006 l 578 1050 z "},"Ә":{"ha":966,"x_min":60,"x_max":890,"o":"m 416 1002 q 765 866 640 1002 q 890 510 890 731 l 890 477 q 772 124 890 262 q 482 -14 653 -14 q 168 105 276 -14 q 60 437 60 225 l 60 510 l 752 510 l 753 513 q 672 789 756 682 q 416 897 587 897 q 291 881 343 897 q 189 840 239 865 l 156 934 q 255 980 190 958 q 416 1002 319 1002 m 482 90 q 669 181 597 90 q 751 415 740 273 l 749 418 l 194 418 l 194 397 q 261 174 194 257 q 482 90 329 90 z "},"ә":{"ha":739,"x_min":79,"x_max":693,"o":"m 359 748 q 603 646 512 748 q 693 381 693 544 l 693 351 q 600 91 693 195 q 379 -13 507 -13 q 155 76 231 -13 q 79 315 79 166 l 79 398 l 555 398 l 557 402 q 503 575 555 507 q 359 644 452 644 q 240 624 291 644 q 151 571 189 605 l 99 658 q 203 722 138 696 q 359 748 267 748 m 379 92 q 494 148 446 92 q 552 290 541 205 l 551 294 l 212 294 l 212 276 q 254 145 212 197 q 379 92 296 92 z "},"Ӛ":{"ha":966,"x_min":60,"x_max":890,"o":"m 416 1002 q 765 866 640 1002 q 890 510 890 731 l 890 477 q 772 124 890 262 q 482 -14 653 -14 q 168 105 276 -14 q 60 437 60 225 l 60 510 l 752 510 l 753 513 q 672 789 756 682 q 416 897 587 897 q 291 881 343 897 q 189 840 239 865 l 156 934 q 255 980 190 958 q 416 1002 319 1002 m 482 90 q 669 181 597 90 q 751 415 740 273 l 749 418 l 194 418 l 194 397 q 261 174 194 257 q 482 90 329 90 m 661 1057 l 512 1057 l 512 1193 l 661 1193 l 661 1057 m 342 1057 l 193 1057 l 193 1193 l 342 1193 l 342 1057 z "},"ӛ":{"ha":739,"x_min":79,"x_max":693,"o":"m 359 748 q 603 646 512 748 q 693 381 693 544 l 693 351 q 600 91 693 195 q 379 -13 507 -13 q 155 76 231 -13 q 79 315 79 166 l 79 398 l 555 398 l 557 402 q 503 575 555 507 q 359 644 452 644 q 240 624 291 644 q 151 571 189 605 l 99 658 q 203 722 138 696 q 359 748 267 748 m 379 92 q 494 148 446 92 q 552 290 541 205 l 551 294 l 212 294 l 212 276 q 254 145 212 197 q 379 92 296 92 m 619 870 l 471 870 l 471 1006 l 619 1006 l 619 870 m 300 870 l 152 870 l 152 1006 l 300 1006 l 300 870 z "},"Ӝ":{"ha":1144,"x_min":19,"x_max":1249,"o":"m 808 453 l 704 453 l 704 0 l 570 0 l 570 453 l 460 453 l 186 0 l 19 0 l 349 522 l 47 987 l 203 987 l 459 558 l 570 558 l 570 987 l 704 987 l 704 558 l 810 558 l 1066 987 l 1222 987 l 919 523 l 1249 0 l 1083 0 l 808 453 m 873 1088 l 725 1088 l 725 1224 l 873 1224 l 873 1088 m 555 1088 l 406 1088 l 406 1224 l 555 1224 l 555 1088 z "},"ӝ":{"ha":999,"x_min":14,"x_max":1044,"o":"m 682 318 l 596 318 l 596 0 l 463 0 l 463 318 l 376 318 l 182 0 l 14 0 l 276 389 l 37 734 l 199 734 l 379 431 l 463 431 l 463 734 l 596 734 l 596 431 l 680 431 l 861 734 l 1022 734 l 783 389 l 1044 0 l 876 0 l 682 318 m 733 856 l 585 856 l 585 991 l 733 991 l 733 856 m 414 856 l 266 856 l 266 991 l 414 991 l 414 856 z "},"Ӟ":{"ha":939,"x_min":81,"x_max":846,"o":"m 831 720 q 785 595 831 652 q 657 507 739 538 q 797 419 749 478 q 846 275 846 360 q 738 62 846 139 q 454 -14 629 -14 q 191 58 301 -14 q 85 270 81 131 l 86 274 l 214 274 q 281 143 214 197 q 454 90 348 90 q 644 141 575 90 q 712 273 712 191 q 650 407 712 363 q 465 450 587 450 l 341 450 l 341 556 l 465 556 q 640 601 583 556 q 697 723 697 646 q 636 848 697 799 q 454 897 574 897 q 293 848 359 897 q 228 729 228 800 l 100 729 l 100 733 q 199 927 96 852 q 454 1002 302 1002 q 730 928 629 1002 q 831 720 831 855 m 697 1103 l 549 1103 l 549 1238 l 697 1238 l 697 1103 m 378 1103 l 230 1103 l 230 1238 l 378 1238 l 378 1103 z "},"ӟ":{"ha":748,"x_min":60,"x_max":639,"o":"m 360 429 q 461 455 431 429 q 492 533 492 482 q 457 611 492 579 q 351 643 422 643 q 245 610 288 643 q 203 529 203 576 l 76 529 l 75 533 q 152 687 71 627 q 351 746 233 746 q 553 691 480 746 q 625 533 625 635 q 595 443 625 484 q 512 378 566 401 q 606 312 574 355 q 639 207 639 269 q 560 45 639 104 q 351 -13 481 -13 q 146 45 232 -13 q 63 213 60 103 l 64 217 l 191 217 q 236 127 191 165 q 351 90 281 90 q 464 123 424 90 q 505 207 505 157 q 470 293 505 266 q 360 320 435 320 l 233 320 l 233 429 l 360 429 m 608 869 l 459 869 l 459 1005 l 608 1005 l 608 869 m 289 869 l 140 869 l 140 1005 l 289 1005 l 289 869 z "},"Ӡ":{"ha":810,"x_min":71,"x_max":725,"o":"m 530 879 l 528 882 l 100 882 l 100 987 l 690 987 l 690 906 l 413 573 q 643 487 562 564 q 725 275 725 410 q 632 63 725 140 q 389 -14 539 -14 q 165 58 259 -14 q 75 270 71 131 l 76 274 l 204 274 q 256 143 204 197 q 389 90 307 90 q 537 141 484 90 q 591 273 591 191 q 537 425 591 376 q 374 473 482 473 l 275 473 l 275 578 l 530 879 z "},"ӡ":{"ha":810,"x_min":71,"x_max":725,"o":"m 515 625 l 513 628 l 100 628 l 100 734 l 690 734 l 690 652 l 422 318 q 646 231 567 307 q 725 21 725 154 q 632 -191 725 -113 q 389 -268 538 -268 q 165 -195 260 -268 q 75 16 71 -122 l 76 20 l 204 20 q 256 -110 204 -56 q 389 -163 307 -163 q 537 -112 484 -163 q 591 18 591 -62 q 536 171 591 123 q 373 219 481 219 l 273 219 l 273 323 l 515 625 z "},"Ӣ":{"ha":991,"x_min":122,"x_max":869,"o":"m 735 987 l 869 987 l 869 0 l 735 0 l 735 753 l 731 754 l 256 0 l 122 0 l 122 987 l 256 987 l 256 235 l 260 234 l 735 987 m 745 1112 l 256 1112 l 256 1211 l 745 1211 l 745 1112 z "},"ӣ":{"ha":789,"x_min":97,"x_max":692,"o":"m 558 734 l 692 734 l 692 0 l 558 0 l 558 521 l 554 522 l 230 0 l 97 0 l 97 734 l 230 734 l 230 213 l 234 212 l 558 734 m 642 881 l 153 881 l 153 980 l 642 980 l 642 881 z "},"Ӥ":{"ha":991,"x_min":122,"x_max":869,"o":"m 735 987 l 869 987 l 869 0 l 735 0 l 735 753 l 731 754 l 256 0 l 122 0 l 122 987 l 256 987 l 256 235 l 260 234 l 735 987 m 731 1088 l 583 1088 l 583 1224 l 731 1224 l 731 1088 m 412 1088 l 264 1088 l 264 1224 l 412 1224 l 412 1088 z "},"ӥ":{"ha":789,"x_min":97,"x_max":692,"o":"m 558 734 l 692 734 l 692 0 l 558 0 l 558 521 l 554 522 l 230 0 l 97 0 l 97 734 l 230 734 l 230 213 l 234 212 l 558 734 m 628 856 l 479 856 l 479 991 l 628 991 l 628 856 m 309 856 l 161 856 l 161 991 l 309 991 l 309 856 z "},"Ӧ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 707 1103 l 559 1103 l 559 1238 l 707 1238 l 707 1103 m 389 1103 l 240 1103 l 240 1238 l 389 1238 l 389 1103 z "},"ӧ":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 629 870 l 480 870 l 480 1006 l 629 1006 l 629 870 m 310 870 l 161 870 l 161 1006 l 310 1006 l 310 870 z "},"Ө":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 210 540 l 736 540 l 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 540 m 736 435 l 210 435 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 435 z "},"ө":{"ha":790,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 395 90 q 530 153 481 90 q 584 315 578 216 l 583 318 l 205 318 l 204 315 q 258 153 210 216 q 395 90 307 90 m 393 642 q 260 582 309 642 q 205 427 212 521 l 206 423 l 582 423 l 583 427 q 527 581 576 520 q 393 642 478 642 z "},"Ӫ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 210 540 l 736 540 l 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 540 m 736 435 l 210 435 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 435 m 722 1085 l 574 1085 l 574 1221 l 722 1221 l 722 1085 m 404 1085 l 255 1085 l 255 1221 l 404 1221 l 404 1085 z "},"ӫ":{"ha":790,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 395 90 q 530 153 481 90 q 584 315 578 216 l 583 318 l 205 318 l 204 315 q 258 153 210 216 q 395 90 307 90 m 393 642 q 260 582 309 642 q 205 427 212 521 l 206 423 l 582 423 l 583 427 q 527 581 576 520 q 393 642 478 642 m 613 889 l 465 889 l 465 1025 l 613 1025 l 613 889 m 294 889 l 146 889 l 146 1025 l 294 1025 l 294 889 z "},"Ӭ":{"ha":939,"x_min":123,"x_max":867,"o":"m 127 671 l 126 675 q 223 908 123 813 q 488 1002 324 1002 q 762 883 656 1002 q 867 582 867 764 l 867 406 q 762 105 867 223 q 488 -14 656 -14 q 222 75 321 -14 q 126 311 123 163 l 127 315 l 256 315 q 316 151 256 211 q 488 91 376 91 q 666 181 600 91 q 733 405 733 271 l 733 460 l 344 460 l 344 565 l 733 565 l 733 582 q 666 807 733 716 q 488 897 600 897 q 316 837 376 897 q 256 671 256 777 l 127 671 m 703 1103 l 555 1103 l 555 1239 l 703 1239 l 703 1103 m 385 1103 l 236 1103 l 236 1239 l 385 1239 l 385 1103 z "},"ӭ":{"ha":747,"x_min":67,"x_max":675,"o":"m 353 642 q 242 601 290 642 q 193 500 193 559 l 73 500 l 71 505 q 154 673 67 599 q 353 747 240 747 q 588 641 502 747 q 675 381 675 535 l 675 353 q 588 92 675 198 q 353 -14 501 -14 q 148 61 229 -14 q 71 248 67 137 l 72 252 l 193 252 q 239 137 193 184 q 353 90 285 90 q 485 157 438 90 q 537 318 532 223 l 535 321 l 274 321 l 274 426 l 534 426 l 535 429 q 482 580 528 518 q 353 642 435 642 m 605 870 l 456 870 l 456 1006 l 605 1006 l 605 870 m 286 870 l 138 870 l 138 1006 l 286 1006 l 286 870 z "},"Ӯ":{"ha":873,"x_min":58,"x_max":830,"o":"m 399 526 l 448 398 l 452 398 l 675 987 l 830 987 l 485 162 q 398 30 445 73 q 248 -14 351 -14 q 208 -12 231 -14 q 179 -8 185 -10 l 182 93 q 212 91 189 92 q 246 90 235 90 q 315 115 294 90 q 361 193 336 139 l 389 250 l 58 987 l 208 987 l 399 526 m 686 1112 l 197 1112 l 197 1211 l 686 1211 l 686 1112 z "},"ӯ":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 597 881 l 108 881 l 108 980 l 597 980 l 597 881 z "},"Ӱ":{"ha":873,"x_min":58,"x_max":830,"o":"m 399 526 l 448 398 l 452 398 l 675 987 l 830 987 l 485 162 q 398 30 445 73 q 248 -14 351 -14 q 208 -12 231 -14 q 179 -8 185 -10 l 182 93 q 212 91 189 92 q 246 90 235 90 q 315 115 294 90 q 361 193 336 139 l 389 250 l 58 987 l 208 987 l 399 526 m 672 1088 l 524 1088 l 524 1224 l 672 1224 l 672 1088 m 353 1088 l 205 1088 l 205 1224 l 353 1224 l 353 1088 z "},"ӱ":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 583 856 l 434 856 l 434 991 l 583 991 l 583 856 m 264 856 l 115 856 l 115 991 l 264 991 l 264 856 z "},"Ӳ":{"ha":873,"x_min":58,"x_max":830,"o":"m 399 526 l 448 398 l 452 398 l 675 987 l 830 987 l 485 162 q 398 30 445 73 q 248 -14 351 -14 q 208 -12 231 -14 q 179 -8 185 -10 l 182 93 q 212 91 189 92 q 246 90 235 90 q 315 115 294 90 q 361 193 336 139 l 389 250 l 58 987 l 208 987 l 399 526 m 624 1266 l 779 1266 l 781 1262 l 578 1086 l 462 1086 l 460 1089 l 624 1266 m 403 1266 l 546 1266 l 547 1263 l 385 1086 l 278 1086 l 403 1266 z "},"ӳ":{"ha":699,"x_min":18,"x_max":692,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 534 1034 l 690 1034 l 692 1029 l 488 853 l 372 853 l 371 857 l 534 1034 m 313 1034 l 456 1034 l 458 1030 l 295 853 l 189 853 l 313 1034 z "},"Ӵ":{"ha":956,"x_min":100,"x_max":833,"o":"m 833 987 l 833 0 l 699 0 l 699 409 q 574 380 635 389 q 431 372 514 372 q 184 443 268 372 q 100 675 100 515 l 100 987 l 234 987 l 234 675 q 281 520 234 564 q 431 477 328 477 q 567 487 502 477 q 699 515 632 496 l 699 987 l 833 987 m 701 1088 l 552 1088 l 552 1224 l 701 1224 l 701 1088 m 382 1088 l 233 1088 l 233 1224 l 382 1224 l 382 1088 z "},"ӵ":{"ha":767,"x_min":86,"x_max":670,"o":"m 670 0 l 536 0 l 536 262 q 457 247 498 252 q 370 242 416 242 q 162 312 237 242 q 86 519 86 382 l 86 734 l 220 734 l 220 519 q 258 389 220 431 q 370 348 296 348 q 456 353 415 348 q 536 368 496 358 l 536 734 l 670 734 l 670 0 m 608 856 l 460 856 l 460 991 l 608 991 l 608 856 m 290 856 l 141 856 l 141 991 l 290 991 l 290 856 z "},"Ӷ":{"ha":773,"x_min":122,"x_max":728,"o":"m 728 882 l 256 882 l 256 0 l 122 0 l 122 987 l 728 987 l 728 882 m 354 -243 l 220 -243 l 220 106 l 354 106 l 354 -243 z "},"ӷ":{"ha":576,"x_min":97,"x_max":564,"o":"m 564 628 l 231 628 l 231 0 l 97 0 l 97 734 l 564 734 l 564 628 m 307 -243 l 173 -243 l 173 106 l 307 106 l 307 -243 z "},"Ӹ":{"ha":1208,"x_min":122,"x_max":1087,"o":"m 256 583 l 499 583 q 745 505 658 583 q 833 294 833 427 q 745 81 833 161 q 499 0 657 0 l 122 0 l 122 987 l 256 987 l 256 583 m 256 478 l 256 104 l 499 104 q 649 159 600 104 q 699 296 699 213 q 649 427 699 376 q 499 478 600 478 l 256 478 m 1087 0 l 953 0 l 953 987 l 1087 987 l 1087 0 m 839 1088 l 690 1088 l 690 1224 l 839 1224 l 839 1088 m 520 1088 l 372 1088 l 372 1224 l 520 1224 l 520 1088 z "},"ӹ":{"ha":1097,"x_min":117,"x_max":971,"o":"m 251 454 l 433 454 q 636 392 564 454 q 708 230 708 330 q 635 65 708 130 q 433 0 562 0 l 117 0 l 117 734 l 251 734 l 251 454 m 251 350 l 251 104 l 433 104 q 539 139 505 104 q 574 225 574 174 q 539 313 574 275 q 433 350 505 350 l 251 350 m 971 0 l 838 0 l 838 734 l 971 734 l 971 0 m 779 856 l 631 856 l 631 991 l 779 991 l 779 856 m 460 856 l 312 856 l 312 991 l 460 991 l 460 856 z "},"Ӻ":{"ha":824,"x_min":44,"x_max":779,"o":"m 779 882 l 307 882 l 307 0 l 174 0 l 174 987 l 779 987 l 779 882 m 479 482 l 44 482 l 44 587 l 479 587 l 479 482 m 429 104 l 429 -60 q 370 -235 429 -174 q 208 -296 312 -296 q 170 -293 187 -296 q 133 -284 153 -290 l 142 -176 q 174 -181 152 -179 q 208 -184 195 -184 q 272 -152 249 -184 q 295 -60 295 -120 l 295 104 l 429 104 z "},"ӻ":{"ha":570,"x_min":45,"x_max":630,"o":"m 630 628 l 297 628 l 297 0 l 163 0 l 163 734 l 630 734 l 630 628 m 479 364 l 45 364 l 45 469 l 479 469 l 479 364 m 418 104 l 418 -60 q 359 -235 418 -174 q 197 -296 301 -296 q 159 -293 176 -296 q 122 -284 142 -290 l 132 -176 q 163 -181 141 -179 q 197 -184 184 -184 q 261 -152 238 -184 q 284 -60 284 -120 l 284 104 l 418 104 z "},"Ӽ":{"ha":878,"x_min":45,"x_max":892,"o":"m 441 602 l 671 987 l 833 987 l 519 498 l 840 0 l 680 0 l 444 392 l 206 0 l 45 0 l 365 498 l 52 987 l 212 987 l 441 602 m 892 104 l 892 -60 q 833 -235 892 -174 q 671 -296 775 -296 q 633 -293 650 -296 q 596 -284 616 -290 l 606 -176 q 637 -181 615 -179 q 671 -184 659 -184 q 735 -152 712 -184 q 758 -60 758 -120 l 758 104 l 892 104 z "},"ӽ":{"ha":699,"x_min":31,"x_max":736,"o":"m 346 463 l 502 734 l 658 734 l 420 371 l 665 0 l 511 0 l 349 277 l 186 0 l 31 0 l 276 371 l 38 734 l 192 734 l 346 463 m 736 104 l 736 -60 q 678 -235 736 -174 q 516 -296 620 -296 q 478 -293 495 -296 q 441 -284 460 -290 l 450 -176 q 481 -181 460 -179 q 516 -184 503 -184 q 580 -152 557 -184 q 603 -60 603 -120 l 603 104 l 736 104 z "},"Ӿ":{"ha":878,"x_min":45,"x_max":840,"o":"m 665 452 l 549 452 l 840 0 l 680 0 l 444 392 l 206 0 l 45 0 l 336 452 l 231 452 l 231 557 l 326 557 l 52 987 l 212 987 l 441 602 l 671 987 l 833 987 l 557 557 l 665 557 l 665 452 z "},"ӿ":{"ha":699,"x_min":31,"x_max":665,"o":"m 559 324 l 450 324 l 665 0 l 511 0 l 349 277 l 186 0 l 31 0 l 245 324 l 124 324 l 124 429 l 237 429 l 38 734 l 192 734 l 346 463 l 502 734 l 658 734 l 458 429 l 559 429 l 559 324 z "},"Ԁ":{"ha":873,"x_min":62,"x_max":772,"o":"m 638 597 l 638 987 l 772 987 l 772 0 l 395 0 q 149 83 237 0 q 62 301 62 167 q 149 516 62 435 q 395 597 236 597 l 638 597 m 638 104 l 638 492 l 395 492 q 245 437 294 492 q 195 302 195 383 q 245 162 195 219 q 395 104 294 104 l 638 104 z "},"ԁ":{"ha":789,"x_min":66,"x_max":687,"o":"m 66 353 q 142 639 66 530 q 354 747 218 747 q 468 724 418 747 q 553 654 518 700 l 553 1058 l 687 1058 l 687 0 l 578 0 l 562 90 q 474 12 526 39 q 353 -14 422 -14 q 142 83 218 -14 q 66 339 66 180 l 66 353 m 200 339 q 245 161 200 228 q 387 94 291 94 q 487 121 446 94 q 553 197 528 149 l 553 540 q 487 612 528 585 q 388 639 446 639 q 246 559 292 639 q 200 353 200 480 l 200 339 z "},"Ԃ":{"ha":1153,"x_min":62,"x_max":1116,"o":"m 395 0 q 149 83 237 0 q 62 301 62 167 q 149 516 62 435 q 395 597 236 597 l 638 597 l 638 987 l 772 987 l 772 104 l 828 104 q 939 153 900 105 q 981 286 979 201 q 971 395 982 338 q 941 505 961 452 l 1069 505 q 1104 386 1092 437 q 1115 286 1116 335 q 1030 74 1112 148 q 828 0 947 0 l 395 0 m 638 104 l 638 492 l 395 492 q 245 437 294 492 q 195 302 195 383 q 245 162 195 219 q 395 104 294 104 l 638 104 z "},"ԃ":{"ha":1197,"x_min":66,"x_max":1120,"o":"m 66 353 q 142 639 66 530 q 354 747 218 747 q 462 726 414 747 q 545 665 509 705 l 545 1058 l 678 1058 l 678 234 q 708 130 677 170 q 791 90 739 90 q 932 162 882 91 q 985 359 983 233 q 976 493 986 425 q 945 631 965 562 l 1074 632 q 1108 485 1096 549 q 1119 359 1120 421 q 1023 82 1116 178 q 791 -14 929 -14 q 655 13 710 -16 q 572 105 600 42 q 481 16 536 46 q 353 -14 427 -14 q 142 83 218 -14 q 66 339 66 180 l 66 353 m 545 554 q 479 616 518 593 q 388 639 441 639 q 246 559 292 639 q 200 353 200 480 l 200 339 q 245 161 200 228 q 387 94 291 94 q 483 119 444 94 q 549 189 522 144 q 546 210 547 199 q 545 234 545 222 l 545 554 z "},"Ԅ":{"ha":1101,"x_min":37,"x_max":1011,"o":"m 477 251 q 430 380 477 331 q 305 429 384 429 l 176 429 l 176 534 l 268 534 q 430 577 380 534 q 480 709 480 620 q 432 837 480 791 q 280 882 383 882 l 37 882 l 37 987 l 280 987 q 528 916 442 987 q 614 707 614 844 q 574 575 614 631 q 459 486 534 519 q 575 399 539 458 q 610 252 610 339 l 610 206 q 636 122 610 155 q 709 90 663 90 q 831 163 787 91 q 877 359 874 235 q 867 494 878 425 q 836 632 857 563 l 965 632 q 1000 480 988 541 q 1010 359 1011 420 q 922 82 1008 179 q 709 -14 836 -14 q 541 37 600 -16 q 477 206 482 90 l 477 251 z "},"ԅ":{"ha":898,"x_min":33,"x_max":854,"o":"m 507 144 q 520 101 507 116 q 565 86 533 86 q 676 139 637 87 q 719 284 716 191 q 709 391 720 336 q 677 500 698 447 l 806 500 q 842 382 829 431 q 852 284 854 332 q 767 60 849 138 q 565 -18 685 -18 q 425 19 471 -20 q 374 145 378 58 l 374 196 q 338 271 374 244 q 235 298 302 298 l 92 298 l 91 402 l 216 402 q 335 430 296 402 q 373 511 373 458 q 334 598 373 566 q 215 630 296 630 l 37 630 l 33 734 l 215 734 q 431 676 355 734 q 508 515 508 618 q 475 422 508 460 q 380 359 443 383 q 477 298 447 340 q 507 197 507 257 l 507 144 z "},"Ԇ":{"ha":745,"x_min":54,"x_max":663,"o":"m 663 31 l 561 -176 l 481 -176 l 520 0 l 479 0 q 444 68 451 24 q 437 161 437 113 l 437 250 q 390 379 437 330 q 265 429 344 429 l 116 429 l 116 533 l 226 533 q 390 576 339 533 q 440 707 440 619 q 392 836 440 790 q 240 882 343 882 l 54 882 l 54 987 l 240 987 q 488 916 402 987 q 573 706 573 844 q 533 574 573 630 q 418 485 494 517 q 535 398 499 458 q 570 252 570 338 l 570 159 l 570 149 l 663 149 l 663 31 z "},"ԇ":{"ha":701,"x_min":83,"x_max":652,"o":"m 652 18 l 550 -190 l 471 -190 l 513 0 l 470 0 q 438 49 445 16 q 431 117 431 83 l 431 182 q 395 267 431 236 q 293 298 359 298 l 131 298 l 131 402 l 273 402 q 393 430 355 402 q 431 511 431 458 q 392 598 431 566 q 273 630 354 630 l 83 630 l 83 734 l 273 734 q 489 676 412 734 q 565 515 565 619 q 532 421 565 460 q 435 357 499 382 q 535 293 505 338 q 565 182 565 248 l 565 135 l 652 135 l 652 18 z "},"Ԉ":{"ha":1347,"x_min":47,"x_max":1295,"o":"m 719 882 l 399 882 l 399 521 q 326 125 399 251 q 83 0 252 0 l 47 0 l 47 104 l 75 104 q 221 202 176 104 q 266 521 266 300 l 266 987 l 852 987 l 852 234 q 883 130 852 170 q 966 90 913 90 q 1107 162 1057 91 q 1160 359 1157 233 q 1150 493 1160 425 q 1119 631 1139 562 l 1248 632 q 1282 485 1270 549 q 1293 359 1295 421 q 1197 82 1291 178 q 966 -14 1103 -14 q 787 44 850 -16 q 719 234 724 104 l 719 882 z "},"ԉ":{"ha":1122,"x_min":44,"x_max":1086,"o":"m 551 628 l 343 628 l 343 422 q 283 103 343 207 q 83 0 222 0 l 44 0 l 47 114 l 75 115 q 178 186 147 115 q 210 422 210 258 l 210 734 l 685 734 l 685 234 q 715 130 684 170 q 797 90 745 90 q 909 154 869 91 q 951 329 948 218 q 941 456 951 391 q 909 587 930 522 l 1039 587 q 1074 447 1061 506 q 1084 329 1086 387 q 999 75 1082 163 q 797 -14 917 -14 q 620 44 683 -16 q 551 234 557 104 l 551 628 z "},"Ԋ":{"ha":1391,"x_min":115,"x_max":1301,"o":"m 859 987 l 859 234 q 888 130 858 170 q 971 90 919 90 q 1113 162 1063 91 q 1166 359 1163 233 q 1156 493 1166 425 q 1124 631 1145 562 l 1253 632 q 1289 485 1276 548 q 1299 359 1301 421 q 1202 82 1296 178 q 971 -14 1109 -14 q 793 44 857 -16 q 725 234 730 104 l 725 436 l 248 436 l 248 0 l 115 0 l 115 987 l 248 987 l 248 541 l 725 541 l 725 987 l 859 987 z "},"ԋ":{"ha":1152,"x_min":97,"x_max":1099,"o":"m 564 312 l 231 312 l 231 0 l 97 0 l 97 734 l 231 734 l 231 416 l 564 416 l 564 734 l 698 734 l 698 234 q 728 130 697 170 q 810 90 759 90 q 922 154 882 91 q 964 329 962 218 q 955 456 965 391 q 924 587 944 522 l 1052 587 q 1087 446 1075 504 q 1098 329 1099 387 q 1013 75 1095 163 q 810 -14 931 -14 q 633 44 696 -16 q 564 234 570 104 l 564 312 z "},"Ԍ":{"ha":862,"x_min":80,"x_max":802,"o":"m 473 -14 q 190 104 299 -14 q 80 405 80 223 l 80 583 q 190 883 80 764 q 473 1002 299 1002 q 610 986 549 1002 q 716 942 670 971 l 673 850 q 579 885 628 873 q 473 897 530 897 q 284 806 354 897 q 214 584 214 716 l 214 405 q 284 180 214 271 q 473 90 354 90 q 615 143 565 91 q 668 288 665 195 q 660 406 669 345 q 634 533 650 467 l 763 533 q 797 370 791 399 q 802 288 802 341 q 705 64 799 142 q 473 -14 611 -14 z "},"ԍ":{"ha":715,"x_min":66,"x_max":655,"o":"m 402 90 q 493 119 467 91 q 522 204 519 147 q 518 285 522 243 q 509 364 515 326 l 637 364 q 650 279 646 318 q 655 204 655 240 q 583 41 652 97 q 402 -14 514 -14 q 156 92 246 -14 q 66 353 66 199 l 66 381 q 153 641 66 534 q 388 747 239 747 q 500 735 452 747 q 580 703 548 724 l 549 603 q 475 632 517 621 q 388 642 434 642 q 248 564 295 642 q 200 381 200 486 l 200 353 q 251 168 200 245 q 402 90 301 90 z "},"Ԏ":{"ha":986,"x_min":24,"x_max":920,"o":"m 345 882 l 24 882 l 24 987 l 806 987 l 806 882 l 478 882 l 478 234 q 508 130 477 170 q 591 90 539 90 q 733 162 682 91 q 786 359 783 233 q 776 492 787 424 q 744 631 765 561 l 873 632 q 908 485 897 548 q 919 359 920 421 q 823 82 916 178 q 591 -14 729 -14 q 413 44 476 -16 q 345 234 350 104 l 345 882 z "},"ԏ":{"ha":890,"x_min":47,"x_max":823,"o":"m 288 630 l 47 630 l 47 734 l 663 734 l 663 630 l 421 630 l 421 234 q 451 130 420 170 q 534 90 481 90 q 645 143 606 91 q 688 289 685 196 q 677 397 688 340 q 647 508 667 454 l 775 508 q 810 388 798 438 q 821 289 823 338 q 736 64 819 142 q 534 -14 654 -14 q 356 44 419 -16 q 288 234 293 104 l 288 630 z "},"Ԑ":{"ha":939,"x_min":106,"x_max":869,"o":"m 486 450 q 301 407 363 450 q 239 273 239 363 q 308 141 239 191 q 497 90 376 90 q 670 143 603 90 q 738 274 738 197 l 865 274 l 867 270 q 760 58 869 131 q 497 -14 650 -14 q 214 63 322 -14 q 106 275 106 140 q 154 419 106 361 q 294 507 202 478 q 166 595 212 539 q 121 720 121 652 q 222 928 121 855 q 497 1002 323 1002 q 752 927 648 1002 q 852 733 856 852 l 852 729 l 724 729 q 658 848 724 800 q 497 897 592 897 q 315 848 376 897 q 254 723 254 799 q 311 601 254 646 q 486 556 368 556 l 611 556 l 611 450 l 486 450 z "},"ԑ":{"ha":748,"x_min":66,"x_max":679,"o":"m 365 323 q 242 295 283 323 q 201 207 201 266 q 247 123 201 157 q 374 90 294 90 q 499 127 450 90 q 548 217 548 165 l 674 217 l 675 213 q 589 45 679 103 q 374 -13 498 -13 q 152 46 237 -13 q 66 207 66 104 q 101 312 66 269 q 203 377 136 355 q 112 442 144 401 q 79 533 79 484 q 158 690 79 635 q 374 746 237 746 q 582 687 498 746 q 663 533 667 627 l 662 529 l 536 529 q 489 610 536 576 q 374 643 441 643 q 254 611 295 643 q 213 533 213 578 q 250 454 213 483 q 365 425 287 425 l 507 425 l 507 323 l 365 323 z "},"Ԓ":{"ha":984,"x_min":33,"x_max":995,"o":"m 862 987 l 862 0 l 728 0 l 728 882 l 372 882 l 371 522 q 301 125 371 251 q 69 0 231 0 l 33 0 l 33 104 l 61 104 q 196 201 155 104 q 238 522 237 298 l 239 987 l 862 987 m 995 104 l 995 -60 q 937 -235 995 -174 q 774 -296 878 -296 q 736 -293 753 -296 q 699 -284 719 -290 l 709 -176 q 740 -181 718 -179 q 774 -184 762 -184 q 838 -152 815 -184 q 861 -60 861 -120 l 861 104 l 995 104 z "},"ԓ":{"ha":768,"x_min":18,"x_max":825,"o":"m 692 734 l 692 0 l 558 0 l 558 628 l 310 628 l 310 420 q 252 102 310 203 q 56 0 195 0 l 18 0 l 20 114 l 48 115 q 148 184 119 115 q 176 420 176 254 l 176 734 l 692 734 m 825 104 l 825 -60 q 766 -235 825 -174 q 604 -296 708 -296 q 566 -293 583 -296 q 529 -284 549 -290 l 538 -176 q 570 -181 548 -179 q 604 -184 591 -184 q 668 -152 645 -184 q 691 -60 691 -120 l 691 104 l 825 104 z "},"Ḁ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 355 -159 q 386 -86 355 -115 q 461 -57 416 -57 q 534 -86 504 -57 q 565 -159 565 -115 q 535 -229 565 -201 q 461 -257 505 -257 q 386 -229 416 -257 q 355 -159 355 -201 m 415 -159 q 429 -189 415 -176 q 461 -202 442 -202 q 492 -190 479 -202 q 505 -159 505 -177 q 492 -125 505 -138 q 461 -112 479 -112 q 429 -125 442 -112 q 415 -159 415 -139 z "},"ḁ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 229 -159 q 260 -86 229 -115 q 336 -57 291 -57 q 409 -86 378 -57 q 439 -159 439 -115 q 409 -229 439 -201 q 336 -257 379 -257 q 260 -229 291 -257 q 229 -159 229 -201 m 290 -159 q 303 -189 290 -176 q 336 -202 317 -202 q 366 -190 353 -202 q 379 -159 379 -177 q 366 -125 379 -138 q 336 -112 353 -112 q 303 -125 317 -112 q 290 -159 290 -139 z "},"Ḿ":{"ha":1220,"x_min":122,"x_max":1097,"o":"m 293 987 l 608 185 l 612 185 l 926 987 l 1097 987 l 1097 0 l 964 0 l 964 391 l 977 792 l 974 793 l 654 0 l 565 0 l 246 791 l 243 790 l 256 391 l 256 0 l 122 0 l 122 987 l 293 987 m 674 1236 l 830 1236 l 831 1232 l 648 1055 l 549 1055 l 674 1236 z "},"ḿ":{"ha":1214,"x_min":97,"x_max":1117,"o":"m 216 734 l 226 637 q 317 719 262 690 q 446 747 372 747 q 571 713 519 747 q 650 612 624 680 q 742 711 685 674 q 875 747 799 747 q 1052 670 987 747 q 1117 439 1117 593 l 1117 0 l 983 0 l 983 440 q 946 594 983 549 q 835 639 909 639 q 724 591 766 639 q 674 471 682 544 l 674 466 l 674 0 l 540 0 l 540 440 q 502 591 540 543 q 391 639 463 639 q 291 614 330 639 q 231 543 252 589 l 231 0 l 97 0 l 97 734 l 216 734 m 686 1017 l 842 1017 l 843 1013 l 660 837 l 560 837 l 686 1017 z "},"Ẁ":{"ha":1227,"x_min":37,"x_max":1182,"o":"m 320 342 l 338 218 l 342 218 l 369 342 l 550 987 l 668 987 l 850 342 l 878 215 l 882 215 l 901 342 l 1048 987 l 1182 987 l 944 0 l 825 0 l 630 685 l 612 774 l 608 774 l 591 685 l 393 0 l 274 0 l 37 987 l 170 987 l 320 342 m 665 1058 l 558 1058 l 389 1234 l 391 1238 l 547 1238 l 665 1058 z "},"ẁ":{"ha":1051,"x_min":31,"x_max":1017,"o":"m 285 267 l 300 178 l 304 178 l 323 267 l 470 734 l 577 734 l 724 267 l 745 168 l 749 168 l 769 267 l 884 734 l 1017 734 l 804 0 l 696 0 l 555 447 l 524 572 l 520 571 l 491 447 l 351 0 l 243 0 l 31 734 l 163 734 l 285 267 m 581 825 l 473 825 l 304 1002 l 306 1006 l 462 1006 l 581 825 z "},"Ẃ":{"ha":1227,"x_min":37,"x_max":1182,"o":"m 320 342 l 338 218 l 342 218 l 369 342 l 550 987 l 668 987 l 850 342 l 878 215 l 882 215 l 901 342 l 1048 987 l 1182 987 l 944 0 l 825 0 l 630 685 l 612 774 l 608 774 l 591 685 l 393 0 l 274 0 l 37 987 l 170 987 l 320 342 m 673 1236 l 829 1236 l 831 1232 l 648 1055 l 548 1055 l 673 1236 z "},"ẃ":{"ha":1051,"x_min":31,"x_max":1017,"o":"m 285 267 l 300 178 l 304 178 l 323 267 l 470 734 l 577 734 l 724 267 l 745 168 l 749 168 l 769 267 l 884 734 l 1017 734 l 804 0 l 696 0 l 555 447 l 524 572 l 520 571 l 491 447 l 351 0 l 243 0 l 31 734 l 163 734 l 285 267 m 589 1003 l 745 1003 l 746 999 l 563 823 l 463 823 l 589 1003 z "},"Ẅ":{"ha":1227,"x_min":37,"x_max":1182,"o":"m 320 342 l 338 218 l 342 218 l 369 342 l 550 987 l 668 987 l 850 342 l 878 215 l 882 215 l 901 342 l 1048 987 l 1182 987 l 944 0 l 825 0 l 630 685 l 612 774 l 608 774 l 591 685 l 393 0 l 274 0 l 37 987 l 170 987 l 320 342 m 843 1088 l 694 1088 l 694 1224 l 843 1224 l 843 1088 m 524 1088 l 376 1088 l 376 1224 l 524 1224 l 524 1088 z "},"ẅ":{"ha":1051,"x_min":31,"x_max":1017,"o":"m 285 267 l 300 178 l 304 178 l 323 267 l 470 734 l 577 734 l 724 267 l 745 168 l 749 168 l 769 267 l 884 734 l 1017 734 l 804 0 l 696 0 l 555 447 l 524 572 l 520 571 l 491 447 l 351 0 l 243 0 l 31 734 l 163 734 l 285 267 m 758 856 l 610 856 l 610 991 l 758 991 l 758 856 m 439 856 l 291 856 l 291 991 l 439 991 l 439 856 z "},"Ạ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 524 -229 l 376 -229 l 376 -93 l 524 -93 l 524 -229 z "},"ạ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 418 -229 l 270 -229 l 270 -93 l 418 -93 l 418 -229 z "},"Ả":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 406 1072 l 406 1176 q 479 1190 457 1179 q 501 1225 501 1200 q 472 1265 501 1252 q 393 1278 442 1278 l 397 1351 q 551 1316 497 1351 q 604 1223 604 1281 q 575 1151 604 1175 q 502 1120 546 1126 l 501 1072 l 406 1072 z "},"ả":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 332 853 l 331 958 q 405 971 382 960 q 427 1007 427 982 q 397 1046 427 1034 q 318 1059 368 1059 l 323 1133 q 476 1098 422 1133 q 530 1004 530 1063 q 500 932 530 957 q 427 901 471 907 l 427 853 l 332 853 z "},"Ấ":{"ha":899,"x_min":14,"x_max":892,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 399 1261 l 506 1261 l 701 1087 l 700 1083 l 566 1083 l 452 1190 l 339 1083 l 204 1083 l 203 1087 l 399 1261 m 749 1379 l 892 1379 l 754 1202 l 654 1202 l 749 1379 z "},"ấ":{"ha":764,"x_min":72,"x_max":812,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 319 1043 l 426 1043 l 621 869 l 620 865 l 486 865 l 372 971 l 259 865 l 124 865 l 123 869 l 319 1043 m 669 1160 l 812 1160 l 674 984 l 574 984 l 669 1160 z "},"Ầ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 706 1076 l 705 1072 l 570 1072 l 456 1178 l 343 1072 l 209 1072 l 208 1076 l 403 1250 l 510 1250 l 706 1076 m 254 1191 l 155 1191 l 17 1367 l 159 1367 l 254 1191 z "},"ầ":{"ha":764,"x_min":-63,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 626 857 l 625 853 l 490 853 l 376 960 l 263 853 l 129 853 l 127 857 l 323 1031 l 430 1031 l 626 857 m 174 972 l 75 972 l -63 1149 l 79 1149 l 174 972 z "},"Ẩ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 701 1062 l 699 1058 l 584 1058 l 451 1184 l 318 1058 l 203 1058 l 202 1062 l 384 1236 l 518 1236 l 701 1062 m 684 1152 l 683 1242 q 746 1253 728 1244 q 765 1284 765 1262 q 740 1318 765 1307 q 672 1329 714 1329 l 676 1392 q 809 1363 762 1392 q 855 1282 855 1333 q 830 1219 855 1241 q 766 1193 804 1198 l 765 1152 l 684 1152 z "},"ẩ":{"ha":764,"x_min":72,"x_max":775,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 621 845 l 619 841 l 504 841 l 371 967 l 238 841 l 123 841 l 122 845 l 304 1019 l 438 1019 l 621 845 m 604 935 l 603 1025 q 666 1036 648 1027 q 685 1067 685 1045 q 660 1101 685 1090 q 592 1112 634 1112 l 596 1175 q 729 1146 682 1175 q 775 1065 775 1116 q 750 1002 775 1024 q 686 976 724 981 l 685 935 l 604 935 z "},"Ẫ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 699 1063 l 698 1059 l 583 1059 l 450 1179 l 317 1059 l 202 1059 l 201 1063 l 397 1238 l 503 1238 l 699 1063 m 627 1407 q 594 1324 627 1360 q 516 1288 561 1288 q 442 1312 480 1288 q 378 1336 404 1336 q 339 1316 357 1336 q 322 1273 322 1296 l 268 1286 q 300 1370 268 1333 q 378 1408 333 1408 q 448 1384 406 1408 q 516 1361 490 1361 q 555 1380 536 1361 q 573 1423 573 1399 l 627 1407 z "},"ẫ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 623 846 l 622 842 l 507 842 l 374 962 l 241 842 l 126 842 l 125 846 l 321 1021 l 427 1021 l 623 846 m 551 1190 q 518 1107 551 1143 q 440 1071 485 1071 q 366 1095 404 1071 q 302 1119 328 1119 q 263 1099 281 1119 q 246 1056 246 1079 l 192 1069 q 224 1153 192 1116 q 302 1191 257 1191 q 372 1167 330 1191 q 440 1144 414 1144 q 479 1163 460 1144 q 497 1206 497 1182 l 551 1190 z "},"Ậ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 658 1103 l 658 1086 l 549 1086 l 449 1186 l 350 1086 l 241 1086 l 241 1103 l 408 1264 l 490 1264 l 658 1103 m 524 -229 l 376 -229 l 376 -93 l 524 -93 l 524 -229 z "},"ậ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 585 884 l 585 867 l 476 867 l 376 968 l 277 867 l 169 867 l 169 885 l 336 1046 l 417 1046 l 585 884 m 418 -229 l 270 -229 l 270 -93 l 418 -93 l 418 -229 z "},"Ắ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 650 1218 l 652 1214 q 600 1115 656 1154 q 450 1076 545 1076 q 300 1115 355 1076 q 249 1214 244 1154 l 250 1218 l 353 1218 q 376 1162 353 1183 q 450 1141 399 1141 q 524 1162 500 1141 q 547 1218 547 1183 l 650 1218 m 484 1367 l 589 1367 l 591 1363 l 483 1233 l 411 1233 l 484 1367 z "},"ắ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 573 1000 l 574 996 q 523 897 578 935 q 373 858 467 858 q 222 897 278 858 q 172 996 167 935 l 173 1000 l 275 1000 q 299 944 275 965 q 373 922 322 922 q 446 944 422 922 q 470 1000 470 965 l 573 1000 m 407 1148 l 512 1148 l 513 1145 l 406 1015 l 334 1015 l 407 1148 z "},"Ằ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 495 1233 l 414 1233 l 279 1362 l 280 1367 l 401 1367 l 495 1233 m 650 1218 l 652 1214 q 600 1115 656 1154 q 450 1076 545 1076 q 300 1115 355 1076 q 249 1214 244 1154 l 250 1218 l 353 1218 q 376 1162 353 1183 q 450 1141 399 1141 q 524 1162 500 1141 q 547 1218 547 1183 l 650 1218 z "},"ằ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 418 1015 l 337 1015 l 201 1144 l 203 1148 l 324 1148 l 418 1015 m 573 1000 l 574 996 q 523 897 578 935 q 373 858 467 858 q 222 897 278 858 q 172 996 167 935 l 173 1000 l 275 1000 q 299 944 275 965 q 373 922 322 922 q 446 944 422 922 q 470 1000 470 965 l 573 1000 z "},"Ẳ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 643 1213 l 644 1209 q 595 1111 648 1149 q 450 1072 541 1072 q 305 1111 359 1072 q 256 1209 252 1149 l 258 1213 l 355 1213 q 378 1158 355 1179 q 450 1136 401 1136 q 522 1157 498 1136 q 545 1213 545 1179 l 643 1213 m 417 1251 l 416 1337 q 486 1347 466 1339 q 503 1372 507 1354 l 503 1376 q 479 1404 507 1395 q 404 1413 452 1413 l 409 1470 q 557 1443 505 1470 q 608 1372 608 1417 q 580 1317 608 1336 q 509 1294 552 1299 l 509 1251 l 417 1251 z "},"ẳ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 561 992 l 562 988 q 513 889 566 928 q 368 851 459 851 q 223 889 277 851 q 174 988 170 928 l 176 992 l 273 992 q 296 937 273 958 q 368 915 319 915 q 439 936 416 915 q 463 992 463 958 l 561 992 m 335 1030 l 334 1116 q 404 1125 384 1118 q 421 1151 425 1133 l 421 1155 q 397 1183 425 1174 q 322 1192 370 1192 l 327 1249 q 475 1222 423 1249 q 526 1151 526 1196 q 498 1096 526 1115 q 427 1073 470 1078 l 427 1030 l 335 1030 z "},"Ẵ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 646 1216 l 647 1212 q 597 1111 651 1150 q 450 1072 543 1072 q 303 1111 357 1072 q 253 1212 248 1150 l 254 1216 l 355 1216 q 377 1159 355 1181 q 450 1137 400 1137 q 522 1159 498 1137 q 545 1216 545 1181 l 646 1216 m 646 1398 q 613 1311 646 1347 q 533 1274 581 1274 q 452 1300 494 1274 q 382 1326 410 1326 q 343 1308 359 1326 q 328 1265 328 1291 l 269 1280 q 300 1368 269 1330 q 382 1405 332 1405 q 458 1379 412 1405 q 533 1354 504 1354 q 571 1371 555 1354 q 587 1414 587 1388 l 646 1398 z "},"ẵ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 567 998 l 568 994 q 518 892 572 932 q 372 853 464 853 q 224 892 279 853 q 174 994 170 932 l 176 998 l 276 998 q 299 940 276 962 q 372 918 321 918 q 443 940 420 918 q 467 998 467 962 l 567 998 m 567 1179 q 535 1092 567 1128 q 454 1056 503 1056 q 373 1082 415 1056 q 303 1107 331 1107 q 265 1090 280 1107 q 250 1047 250 1072 l 190 1061 q 222 1149 190 1112 q 303 1187 254 1187 q 379 1161 334 1187 q 454 1135 425 1135 q 492 1153 476 1135 q 509 1196 509 1170 l 567 1179 z "},"Ặ":{"ha":899,"x_min":14,"x_max":886,"o":"m 657 254 l 243 254 l 150 0 l 14 0 l 395 987 l 510 987 l 886 0 l 749 0 l 657 254 m 285 366 l 617 366 l 454 816 l 450 816 l 285 366 m 649 1268 l 650 1264 q 598 1136 653 1185 q 450 1086 543 1086 q 302 1136 357 1086 q 250 1264 247 1185 l 252 1268 l 354 1268 q 377 1196 354 1223 q 450 1168 400 1168 q 523 1196 499 1168 q 547 1268 547 1224 l 649 1268 m 524 -229 l 376 -229 l 376 -93 l 524 -93 l 524 -229 z "},"ặ":{"ha":764,"x_min":72,"x_max":686,"o":"m 548 0 q 537 59 541 33 q 533 110 534 84 q 436 21 496 57 q 307 -14 376 -14 q 132 44 192 -14 q 72 206 72 103 q 157 371 72 311 q 388 430 242 430 l 533 430 l 533 503 q 494 605 533 567 q 382 642 454 642 q 278 609 318 642 q 237 530 237 576 l 110 530 l 109 534 q 184 681 104 614 q 390 747 264 747 q 591 684 515 747 q 667 501 667 621 l 667 148 q 671 72 667 109 q 686 0 675 35 l 548 0 m 326 98 q 457 135 399 98 q 533 220 515 172 l 533 340 l 383 340 q 254 299 302 340 q 205 203 205 258 q 236 126 205 155 q 326 98 267 98 m 576 1050 l 577 1046 q 525 918 580 967 q 377 868 470 868 q 229 918 283 868 q 177 1046 174 967 l 178 1050 l 281 1050 q 304 977 281 1005 q 377 949 327 949 q 450 978 426 949 q 473 1050 473 1006 l 576 1050 m 418 -229 l 270 -229 l 270 -93 l 418 -93 l 418 -229 z "},"Ẹ":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 500 -222 l 352 -222 l 352 -86 l 500 -86 l 500 -222 z "},"ẹ":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 463 -229 l 315 -229 l 315 -93 l 463 -93 l 463 -229 z "},"Ẻ":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 381 1072 l 380 1176 q 454 1190 432 1179 q 476 1225 476 1200 q 447 1265 476 1252 q 368 1278 417 1278 l 372 1351 q 526 1316 472 1351 q 579 1223 579 1281 q 550 1151 579 1175 q 477 1120 521 1126 l 476 1072 l 381 1072 z "},"ẻ":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 334 854 l 333 958 q 407 972 385 961 q 429 1008 429 983 q 399 1047 429 1034 q 320 1060 370 1060 l 325 1133 q 478 1098 425 1133 q 532 1005 532 1063 q 503 933 532 958 q 429 902 473 908 l 429 854 l 334 854 z "},"Ẽ":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 661 1251 q 621 1143 661 1187 q 519 1099 581 1099 q 419 1130 471 1099 q 332 1162 367 1162 q 283 1140 303 1162 q 264 1086 264 1118 l 191 1104 q 231 1214 191 1167 q 332 1260 271 1260 q 427 1228 370 1260 q 519 1196 484 1196 q 568 1218 547 1196 q 588 1272 588 1240 l 661 1251 z "},"ẽ":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 614 1033 q 573 925 614 969 q 472 881 533 881 q 372 912 424 881 q 285 944 319 944 q 236 922 256 944 q 216 869 216 900 l 143 886 q 183 996 143 949 q 285 1042 223 1042 q 380 1010 323 1042 q 472 979 437 979 q 520 1001 500 979 q 541 1055 541 1023 l 614 1033 z "},"Ế":{"ha":812,"x_min":122,"x_max":862,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 368 1261 l 475 1261 l 671 1087 l 669 1083 l 535 1083 l 422 1190 l 309 1083 l 174 1083 l 172 1087 l 368 1261 m 719 1379 l 862 1379 l 724 1202 l 624 1202 l 719 1379 z "},"ế":{"ha":734,"x_min":67,"x_max":814,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 321 1044 l 428 1044 l 623 869 l 622 865 l 488 865 l 374 972 l 261 865 l 126 865 l 125 869 l 321 1044 m 671 1161 l 814 1161 l 676 985 l 576 985 l 671 1161 z "},"Ề":{"ha":812,"x_min":-14,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 675 1076 l 674 1072 l 539 1072 l 426 1178 l 313 1072 l 178 1072 l 177 1076 l 372 1250 l 479 1250 l 675 1076 m 224 1191 l 124 1191 l -14 1367 l 129 1367 l 224 1191 z "},"ề":{"ha":734,"x_min":-61,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 628 858 l 627 854 l 492 854 l 378 960 l 265 854 l 131 854 l 130 858 l 325 1032 l 432 1032 l 628 858 m 176 973 l 77 973 l -61 1149 l 81 1149 l 176 973 z "},"Ể":{"ha":812,"x_min":122,"x_max":825,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 670 1062 l 669 1058 l 553 1058 l 420 1184 l 288 1058 l 173 1058 l 172 1062 l 353 1236 l 488 1236 l 670 1062 m 653 1152 l 652 1242 q 716 1253 697 1244 q 734 1284 734 1262 q 709 1318 734 1307 q 642 1329 684 1329 l 646 1392 q 778 1363 732 1392 q 825 1282 825 1333 q 799 1219 825 1241 q 735 1193 774 1198 l 734 1152 l 653 1152 z "},"ể":{"ha":734,"x_min":67,"x_max":777,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 623 846 l 621 842 l 506 842 l 373 968 l 240 842 l 125 842 l 124 846 l 306 1020 l 440 1020 l 623 846 m 606 935 l 605 1025 q 668 1037 650 1028 q 687 1067 687 1046 q 662 1101 687 1090 q 594 1112 636 1112 l 598 1176 q 731 1146 684 1176 q 777 1066 777 1117 q 752 1003 777 1025 q 688 977 726 981 l 687 935 l 606 935 z "},"Ễ":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 673 1063 l 671 1059 l 556 1059 l 423 1179 l 290 1059 l 176 1059 l 174 1063 l 370 1238 l 477 1238 l 673 1063 m 600 1407 q 567 1324 600 1360 q 490 1288 534 1288 q 415 1312 454 1288 q 351 1336 377 1336 q 313 1316 330 1336 q 296 1273 296 1296 l 241 1286 q 274 1370 241 1333 q 351 1408 307 1408 q 421 1384 380 1408 q 490 1361 463 1361 q 528 1380 510 1361 q 547 1423 547 1399 l 600 1407 z "},"ễ":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 625 847 l 624 843 l 509 843 l 376 962 l 243 843 l 128 843 l 127 847 l 323 1021 l 429 1021 l 625 847 m 553 1191 q 520 1108 553 1144 q 442 1072 487 1072 q 368 1096 406 1072 q 304 1120 330 1120 q 266 1100 283 1120 q 248 1057 248 1080 l 194 1069 q 227 1154 194 1116 q 304 1192 259 1192 q 374 1168 332 1192 q 442 1145 416 1145 q 481 1164 463 1145 q 499 1206 499 1183 l 553 1191 z "},"Ệ":{"ha":812,"x_min":122,"x_max":777,"o":"m 708 458 l 256 458 l 256 104 l 777 104 l 777 0 l 122 0 l 122 987 l 770 987 l 770 882 l 256 882 l 256 563 l 708 563 l 708 458 m 635 1103 l 635 1086 l 526 1086 l 426 1186 l 327 1086 l 218 1086 l 218 1103 l 385 1264 l 467 1264 l 635 1103 m 500 -222 l 352 -222 l 352 -86 l 500 -86 l 500 -222 z "},"ệ":{"ha":734,"x_min":67,"x_max":682,"o":"m 401 -14 q 158 88 248 -14 q 67 353 67 190 l 67 382 q 160 643 67 539 q 381 747 254 747 q 606 658 530 747 q 682 419 682 568 l 682 336 l 205 336 l 203 332 q 257 158 205 227 q 401 90 309 90 q 520 110 469 90 q 609 163 572 129 l 661 76 q 557 12 622 37 q 401 -14 493 -14 m 381 642 q 267 586 314 642 q 208 444 219 529 l 210 440 l 548 440 l 548 458 q 506 589 548 536 q 381 642 464 642 m 587 885 l 587 868 l 478 868 l 378 968 l 279 868 l 171 868 l 171 886 l 338 1046 l 419 1046 l 587 885 m 463 -229 l 315 -229 l 315 -93 l 463 -93 l 463 -229 z "},"Ỉ":{"ha":393,"x_min":129,"x_max":349,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 151 1072 l 151 1176 q 224 1190 202 1179 q 246 1225 246 1200 q 217 1265 246 1252 q 138 1278 187 1278 l 142 1351 q 296 1316 242 1351 q 349 1223 349 1281 q 320 1151 349 1175 q 247 1120 291 1126 l 246 1072 l 151 1072 z "},"ỉ":{"ha":349,"x_min":104,"x_max":324,"o":"m 237 0 l 104 0 l 104 734 l 237 734 l 237 0 m 126 840 l 125 945 q 199 958 177 947 q 221 994 221 969 q 192 1034 221 1021 q 113 1046 162 1046 l 117 1120 q 271 1085 217 1120 q 324 991 324 1050 q 295 919 324 944 q 222 888 266 895 l 221 840 l 126 840 z "},"Ị":{"ha":393,"x_min":122,"x_max":270,"o":"m 263 0 l 129 0 l 129 987 l 263 987 l 263 0 m 270 -222 l 122 -222 l 122 -87 l 270 -87 l 270 -222 z "},"ị":{"ha":350,"x_min":101,"x_max":249,"o":"m 241 0 l 108 0 l 108 734 l 241 734 l 241 0 m 241 922 l 108 922 l 108 1058 l 241 1058 l 241 922 m 249 -222 l 101 -222 l 101 -86 l 249 -86 l 249 -222 z "},"Ọ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 547 -233 l 399 -233 l 399 -98 l 547 -98 l 547 -233 z "},"ọ":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 469 -234 l 321 -234 l 321 -98 l 469 -98 l 469 -234 z "},"Ỏ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 429 1086 l 428 1190 q 502 1204 479 1193 q 524 1240 524 1215 q 494 1279 524 1266 q 415 1292 465 1292 l 420 1365 q 573 1330 519 1365 q 627 1237 627 1295 q 597 1165 627 1190 q 524 1134 568 1140 l 524 1086 l 429 1086 z "},"ỏ":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 350 853 l 349 958 q 423 971 401 960 q 445 1007 445 982 q 415 1046 445 1034 q 336 1059 386 1059 l 341 1133 q 494 1098 441 1133 q 548 1004 548 1063 q 519 932 548 957 q 446 901 490 907 l 445 853 l 350 853 z "},"Ố":{"ha":947,"x_min":77,"x_max":909,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 416 1276 l 523 1276 l 718 1101 l 717 1097 l 583 1097 l 469 1204 l 356 1097 l 221 1097 l 220 1101 l 416 1276 m 766 1393 l 909 1393 l 771 1217 l 671 1217 l 766 1393 z "},"ố":{"ha":789,"x_min":66,"x_max":831,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 337 1043 l 444 1043 l 640 869 l 638 865 l 504 865 l 391 971 l 277 865 l 142 865 l 141 869 l 337 1043 m 688 1160 l 831 1160 l 692 984 l 593 984 l 688 1160 z "},"Ồ":{"ha":947,"x_min":34,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 723 1090 l 722 1086 l 587 1086 l 473 1192 l 360 1086 l 226 1086 l 224 1090 l 420 1264 l 527 1264 l 723 1090 m 271 1205 l 172 1205 l 34 1381 l 176 1381 l 271 1205 z "},"ồ":{"ha":789,"x_min":-45,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 644 857 l 643 853 l 508 853 l 395 960 l 281 853 l 147 853 l 146 857 l 341 1031 l 448 1031 l 644 857 m 193 972 l 93 972 l -45 1149 l 98 1149 l 193 972 z "},"Ổ":{"ha":947,"x_min":77,"x_max":872,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 718 1076 l 716 1072 l 601 1072 l 468 1198 l 335 1072 l 220 1072 l 219 1076 l 401 1251 l 535 1251 l 718 1076 m 701 1166 l 700 1256 q 763 1267 745 1259 q 782 1298 782 1276 q 756 1332 782 1321 q 689 1343 731 1343 l 693 1407 q 826 1377 779 1407 q 872 1297 872 1348 q 847 1234 872 1255 q 783 1207 821 1212 l 782 1166 l 701 1166 z "},"ổ":{"ha":789,"x_min":66,"x_max":793,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 639 845 l 637 841 l 522 841 l 389 967 l 256 841 l 142 841 l 140 845 l 322 1019 l 456 1019 l 639 845 m 622 935 l 621 1025 q 685 1036 666 1027 q 703 1067 703 1045 q 678 1101 703 1090 q 610 1112 652 1112 l 614 1175 q 747 1146 701 1175 q 793 1065 793 1116 q 768 1002 793 1024 q 704 976 743 981 l 703 935 l 622 935 z "},"Ỗ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 720 1078 l 719 1074 l 604 1074 l 471 1193 l 338 1074 l 223 1074 l 222 1078 l 418 1252 l 524 1252 l 720 1078 m 648 1421 q 615 1338 648 1375 q 537 1302 582 1302 q 463 1326 501 1302 q 399 1350 425 1350 q 360 1330 378 1350 q 343 1287 343 1310 l 289 1300 q 321 1384 289 1347 q 399 1422 354 1422 q 469 1399 427 1422 q 537 1375 511 1375 q 576 1394 557 1375 q 594 1437 594 1413 l 648 1421 z "},"ỗ":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 642 846 l 640 842 l 525 842 l 392 962 l 259 842 l 144 842 l 143 846 l 339 1021 l 446 1021 l 642 846 m 569 1190 q 536 1107 569 1143 q 458 1071 503 1071 q 384 1095 422 1071 q 320 1119 346 1119 q 282 1099 299 1119 q 264 1056 264 1079 l 210 1069 q 243 1153 210 1116 q 320 1191 275 1191 q 390 1167 349 1191 q 458 1144 432 1144 q 497 1163 479 1144 q 515 1206 515 1182 l 569 1190 z "},"Ộ":{"ha":947,"x_min":77,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 682 1117 l 682 1100 l 573 1100 l 473 1200 l 374 1100 l 266 1100 l 266 1118 l 433 1278 l 514 1278 l 682 1117 m 547 -233 l 399 -233 l 399 -98 l 547 -98 l 547 -233 z "},"ộ":{"ha":789,"x_min":66,"x_max":723,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 634 642 546 747 q 723 374 723 537 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 604 884 l 604 867 l 494 867 l 395 968 l 296 867 l 187 867 l 187 885 l 354 1046 l 435 1046 l 604 884 m 469 -234 l 321 -234 l 321 -98 l 469 -98 l 469 -234 z "},"Ớ":{"ha":951,"x_min":73,"x_max":1041,"o":"m 866 406 q 754 105 866 224 q 463 -14 642 -14 q 181 105 290 -14 q 73 406 73 224 l 73 581 q 181 882 73 762 q 463 1002 290 1002 q 614 975 544 1002 q 737 898 684 947 q 864 963 821 905 q 907 1121 907 1021 l 1041 1121 q 981 908 1041 991 q 812 802 922 826 q 852 697 838 753 q 866 581 866 641 l 866 406 m 732 583 q 659 805 732 718 q 463 892 586 892 q 276 805 346 892 q 207 583 207 718 l 207 406 q 276 182 207 269 q 463 95 346 95 q 660 181 587 95 q 732 406 732 268 l 732 583 m 540 1223 l 696 1223 l 697 1219 l 514 1043 l 414 1043 l 540 1223 z "},"ớ":{"ha":797,"x_min":66,"x_max":852,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 520 724 463 747 q 621 657 578 700 q 704 714 677 669 q 731 829 731 759 l 852 829 q 807 669 852 732 q 674 583 762 605 q 710 485 698 538 q 723 374 723 432 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 459 1017 l 615 1017 l 616 1013 l 433 837 l 334 837 l 459 1017 z "},"Ờ":{"ha":951,"x_min":73,"x_max":1041,"o":"m 866 406 q 754 105 866 224 q 463 -14 642 -14 q 181 105 290 -14 q 73 406 73 224 l 73 581 q 181 882 73 762 q 463 1002 290 1002 q 614 975 544 1002 q 737 898 684 947 q 864 963 821 905 q 907 1121 907 1021 l 1041 1121 q 981 908 1041 991 q 812 802 922 826 q 852 697 838 753 q 866 581 866 641 l 866 406 m 732 583 q 659 805 732 718 q 463 892 586 892 q 276 805 346 892 q 207 583 207 718 l 207 406 q 276 182 207 269 q 463 95 346 95 q 660 181 587 95 q 732 406 732 268 l 732 583 m 532 1046 l 425 1046 l 255 1222 l 257 1226 l 413 1226 l 532 1046 z "},"ờ":{"ha":797,"x_min":66,"x_max":852,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 520 724 463 747 q 621 657 578 700 q 704 714 677 669 q 731 829 731 759 l 852 829 q 807 669 852 732 q 674 583 762 605 q 710 485 698 538 q 723 374 723 432 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 451 840 l 344 840 l 174 1016 l 176 1020 l 332 1020 l 451 840 z "},"Ở":{"ha":951,"x_min":73,"x_max":1041,"o":"m 866 406 q 754 105 866 224 q 463 -14 642 -14 q 181 105 290 -14 q 73 406 73 224 l 73 581 q 181 882 73 762 q 463 1002 290 1002 q 614 975 544 1002 q 737 898 684 947 q 864 963 821 905 q 907 1121 907 1021 l 1041 1121 q 981 908 1041 991 q 812 802 922 826 q 852 697 838 753 q 866 581 866 641 l 866 406 m 732 583 q 659 805 732 718 q 463 892 586 892 q 276 805 346 892 q 207 583 207 718 l 207 406 q 276 182 207 269 q 463 95 346 95 q 660 181 587 95 q 732 406 732 268 l 732 583 m 431 1086 l 430 1190 q 504 1204 481 1193 q 526 1240 526 1215 q 496 1279 526 1266 q 417 1292 467 1292 l 422 1365 q 575 1330 522 1365 q 629 1237 629 1295 q 600 1165 629 1190 q 526 1134 570 1140 l 526 1086 l 431 1086 z "},"ở":{"ha":797,"x_min":66,"x_max":852,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 520 724 463 747 q 621 657 578 700 q 704 714 677 669 q 731 829 731 759 l 852 829 q 807 669 852 732 q 674 583 762 605 q 710 485 698 538 q 723 374 723 432 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 350 853 l 349 958 q 423 971 401 960 q 445 1007 445 982 q 415 1046 445 1034 q 336 1059 386 1059 l 341 1133 q 494 1098 441 1133 q 548 1004 548 1063 q 519 932 548 957 q 446 901 490 907 l 445 853 l 350 853 z "},"Ỡ":{"ha":951,"x_min":73,"x_max":1041,"o":"m 866 406 q 754 105 866 224 q 463 -14 642 -14 q 181 105 290 -14 q 73 406 73 224 l 73 581 q 181 882 73 762 q 463 1002 290 1002 q 614 975 544 1002 q 737 898 684 947 q 864 963 821 905 q 907 1121 907 1021 l 1041 1121 q 981 908 1041 991 q 812 802 922 826 q 852 697 838 753 q 866 581 866 641 l 866 406 m 732 583 q 659 805 732 718 q 463 892 586 892 q 276 805 346 892 q 207 583 207 718 l 207 406 q 276 182 207 269 q 463 95 346 95 q 660 181 587 95 q 732 406 732 268 l 732 583 m 711 1238 q 670 1131 711 1175 q 569 1086 630 1086 q 469 1118 521 1086 q 382 1149 416 1149 q 333 1127 353 1149 q 313 1074 313 1105 l 240 1092 q 280 1201 240 1155 q 382 1248 320 1248 q 477 1216 420 1248 q 569 1184 534 1184 q 617 1206 597 1184 q 637 1260 637 1228 l 711 1238 z "},"ỡ":{"ha":797,"x_min":66,"x_max":852,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 520 724 463 747 q 621 657 578 700 q 704 714 677 669 q 731 829 731 759 l 852 829 q 807 669 852 732 q 674 583 762 605 q 710 485 698 538 q 723 374 723 432 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 630 1032 q 590 924 630 968 q 488 880 549 880 q 388 912 440 880 q 301 943 336 943 q 252 921 272 943 q 233 868 233 899 l 159 886 q 199 995 159 949 q 301 1042 239 1042 q 396 1010 339 1042 q 488 978 453 978 q 536 1000 516 978 q 557 1054 557 1022 l 630 1032 z "},"Ợ":{"ha":951,"x_min":73,"x_max":1041,"o":"m 866 406 q 754 105 866 224 q 463 -14 642 -14 q 181 105 290 -14 q 73 406 73 224 l 73 581 q 181 882 73 762 q 463 1002 290 1002 q 614 975 544 1002 q 737 898 684 947 q 864 963 821 905 q 907 1121 907 1021 l 1041 1121 q 981 908 1041 991 q 812 802 922 826 q 852 697 838 753 q 866 581 866 641 l 866 406 m 732 583 q 659 805 732 718 q 463 892 586 892 q 276 805 346 892 q 207 583 207 718 l 207 406 q 276 182 207 269 q 463 95 346 95 q 660 181 587 95 q 732 406 732 268 l 732 583 m 543 -229 l 395 -229 l 395 -93 l 543 -93 l 543 -229 z "},"ợ":{"ha":797,"x_min":66,"x_max":852,"o":"m 66 374 q 154 642 66 536 q 393 747 242 747 q 520 724 463 747 q 621 657 578 700 q 704 714 677 669 q 731 829 731 759 l 852 829 q 807 669 852 732 q 674 583 762 605 q 710 485 698 538 q 723 374 723 432 l 723 359 q 635 90 723 195 q 395 -14 547 -14 q 154 91 243 -14 q 66 359 66 195 l 66 374 m 199 359 q 249 166 199 242 q 395 90 298 90 q 540 166 490 90 q 589 359 589 242 l 589 374 q 539 566 589 489 q 393 642 490 642 q 249 566 298 642 q 199 374 199 489 l 199 359 m 469 -234 l 321 -234 l 321 -98 l 469 -98 l 469 -234 z "},"Ụ":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 546 -233 l 398 -233 l 398 -98 l 546 -98 l 546 -233 z "},"ụ":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 422 -229 l 275 -229 l 275 -93 l 422 -93 l 422 -229 z "},"Ủ":{"ha":940,"x_min":100,"x_max":844,"o":"m 844 987 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 428 1072 l 427 1176 q 501 1190 479 1179 q 523 1225 523 1200 q 493 1265 523 1252 q 414 1278 464 1278 l 419 1351 q 572 1316 519 1351 q 626 1223 626 1281 q 597 1151 626 1175 q 524 1120 568 1126 l 523 1072 l 428 1072 z "},"ủ":{"ha":789,"x_min":94,"x_max":692,"o":"m 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 0 l 572 0 l 563 109 m 349 840 l 348 945 q 421 958 399 947 q 444 994 444 969 q 414 1034 444 1021 q 335 1046 385 1046 l 340 1120 q 493 1085 439 1120 q 547 991 547 1050 q 517 919 547 944 q 444 888 488 895 l 444 840 l 349 840 z "},"Ứ":{"ha":970,"x_min":100,"x_max":1101,"o":"m 844 987 l 844 867 l 848 865 q 937 939 906 884 q 968 1079 968 994 l 1097 1079 l 1099 1076 q 1034 862 1101 945 q 844 757 968 780 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 536 1236 l 692 1236 l 694 1232 l 511 1055 l 411 1055 l 536 1236 z "},"ứ":{"ha":817,"x_min":94,"x_max":940,"o":"m 936 832 l 938 828 q 880 643 940 708 q 692 568 820 578 l 692 0 l 572 0 l 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 656 l 696 655 q 792 703 764 660 q 821 832 821 747 l 936 832 m 458 1003 l 614 1003 l 615 999 l 432 823 l 332 823 l 458 1003 z "},"Ừ":{"ha":970,"x_min":100,"x_max":1101,"o":"m 844 987 l 844 867 l 848 865 q 937 939 906 884 q 968 1079 968 994 l 1097 1079 l 1099 1076 q 1034 862 1101 945 q 844 757 968 780 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 528 1058 l 421 1058 l 252 1234 l 254 1238 l 410 1238 l 528 1058 z "},"ừ":{"ha":817,"x_min":94,"x_max":940,"o":"m 936 832 l 938 828 q 880 643 940 708 q 692 568 820 578 l 692 0 l 572 0 l 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 656 l 696 655 q 792 703 764 660 q 821 832 821 747 l 936 832 m 450 825 l 342 825 l 173 1002 l 175 1006 l 331 1006 l 450 825 z "},"Ử":{"ha":970,"x_min":100,"x_max":1101,"o":"m 844 987 l 844 867 l 848 865 q 937 939 906 884 q 968 1079 968 994 l 1097 1079 l 1099 1076 q 1034 862 1101 945 q 844 757 968 780 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 427 1072 l 427 1176 q 500 1190 478 1179 q 522 1225 522 1200 q 493 1265 522 1252 q 414 1278 463 1278 l 418 1351 q 572 1316 518 1351 q 625 1223 625 1281 q 596 1151 625 1175 q 523 1120 567 1126 l 522 1072 l 427 1072 z "},"ử":{"ha":817,"x_min":94,"x_max":940,"o":"m 936 832 l 938 828 q 880 643 940 708 q 692 568 820 578 l 692 0 l 572 0 l 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 656 l 696 655 q 792 703 764 660 q 821 832 821 747 l 936 832 m 349 840 l 348 945 q 421 958 399 947 q 444 994 444 969 q 414 1034 444 1021 q 335 1046 385 1046 l 340 1120 q 493 1085 439 1120 q 547 991 547 1050 q 517 919 547 944 q 444 888 488 895 l 444 840 l 349 840 z "},"Ữ":{"ha":970,"x_min":100,"x_max":1101,"o":"m 844 987 l 844 867 l 848 865 q 937 939 906 884 q 968 1079 968 994 l 1097 1079 l 1099 1076 q 1034 862 1101 945 q 844 757 968 780 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 707 1251 q 667 1143 707 1187 q 566 1099 627 1099 q 465 1130 517 1099 q 378 1162 413 1162 q 330 1140 349 1162 q 310 1086 310 1118 l 237 1104 q 277 1214 237 1167 q 378 1260 317 1260 q 473 1228 416 1260 q 566 1196 530 1196 q 614 1218 593 1196 q 634 1272 634 1240 l 707 1251 z "},"ữ":{"ha":817,"x_min":94,"x_max":940,"o":"m 936 832 l 938 828 q 880 643 940 708 q 692 568 820 578 l 692 0 l 572 0 l 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 656 l 696 655 q 792 703 764 660 q 821 832 821 747 l 936 832 m 629 1018 q 588 910 629 954 q 487 866 548 866 q 387 898 439 866 q 300 929 334 929 q 251 907 271 929 q 231 854 231 885 l 158 871 q 198 981 158 935 q 300 1027 238 1027 q 395 996 338 1027 q 487 964 452 964 q 535 986 515 964 q 555 1040 555 1008 l 629 1018 z "},"Ự":{"ha":970,"x_min":100,"x_max":1101,"o":"m 844 987 l 844 867 l 848 865 q 937 939 906 884 q 968 1079 968 994 l 1097 1079 l 1099 1076 q 1034 862 1101 945 q 844 757 968 780 l 844 318 q 739 71 844 157 q 465 -14 634 -14 q 201 72 302 -14 q 100 318 100 157 l 100 987 l 233 987 l 233 318 q 297 148 233 206 q 465 90 361 90 q 643 148 575 90 q 710 318 710 206 l 710 987 l 844 987 m 546 -233 l 398 -233 l 398 -98 l 546 -98 l 546 -233 z "},"ự":{"ha":817,"x_min":94,"x_max":940,"o":"m 936 832 l 938 828 q 880 643 940 708 q 692 568 820 578 l 692 0 l 572 0 l 563 109 q 474 18 528 50 q 349 -14 420 -14 q 161 62 229 -14 q 94 301 94 139 l 94 734 l 228 734 l 228 300 q 262 138 228 182 q 370 94 297 94 q 488 123 441 94 q 558 205 534 152 l 558 734 l 692 734 l 692 656 l 696 655 q 792 703 764 660 q 821 832 821 747 l 936 832 m 422 -229 l 275 -229 l 275 -93 l 422 -93 l 422 -229 z "},"Ỳ":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 m 480 1057 l 373 1057 l 203 1234 l 205 1238 l 361 1238 l 480 1057 z "},"ỳ":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 405 825 l 298 825 l 128 1002 l 130 1006 l 286 1006 l 405 825 z "},"Ỵ":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 m 498 -222 l 350 -222 l 350 -86 l 498 -86 l 498 -222 z "},"ỵ":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 560 -334 l 412 -334 l 412 -199 l 560 -199 l 560 -334 z "},"Ỷ":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 m 379 1071 l 378 1175 q 452 1189 430 1178 q 474 1225 474 1200 q 445 1264 474 1251 q 366 1277 415 1277 l 370 1350 q 524 1315 470 1350 q 577 1222 577 1280 q 548 1150 577 1175 q 475 1119 519 1125 l 474 1071 l 379 1071 z "},"ỷ":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 304 840 l 303 945 q 377 958 355 947 q 399 994 399 969 q 369 1034 399 1021 q 290 1046 340 1046 l 295 1120 q 448 1085 395 1120 q 502 991 502 1050 q 473 919 502 944 q 399 888 444 895 l 399 840 l 304 840 z "},"Ỹ":{"ha":848,"x_min":14,"x_max":834,"o":"m 424 486 l 682 987 l 834 987 l 488 347 l 488 0 l 355 0 l 355 356 l 14 987 l 166 987 l 424 486 m 659 1250 q 619 1142 659 1186 q 517 1098 578 1098 q 417 1129 469 1098 q 330 1161 365 1161 q 281 1139 301 1161 q 262 1086 262 1117 l 189 1103 q 229 1213 189 1166 q 330 1259 269 1259 q 425 1227 368 1259 q 517 1196 482 1196 q 566 1218 545 1196 q 586 1272 586 1240 l 659 1250 z "},"ỹ":{"ha":699,"x_min":18,"x_max":678,"o":"m 321 272 l 345 180 l 349 180 l 530 734 l 678 734 l 370 -113 q 290 -241 342 -186 q 150 -296 238 -296 q 109 -293 134 -296 q 70 -286 83 -289 l 83 -180 q 107 -182 79 -180 q 143 -184 136 -184 q 213 -146 186 -184 q 258 -62 240 -108 l 290 15 l 18 734 l 167 734 l 321 272 m 584 1018 q 544 910 584 954 q 442 866 503 866 q 342 898 394 866 q 255 929 290 929 q 206 907 226 929 q 186 854 186 885 l 113 871 q 153 981 113 935 q 255 1027 193 1027 q 350 996 293 1027 q 442 964 407 964 q 490 986 470 964 q 511 1040 511 1008 l 584 1018 z "},"Ὅ":{"ha":947,"x_min":-149,"x_max":869,"o":"m 869 406 q 757 105 869 224 q 466 -14 645 -14 q 185 105 293 -14 q 77 406 77 224 l 77 581 q 185 882 77 762 q 466 1002 293 1002 q 757 882 645 1002 q 869 581 869 762 l 869 406 m 736 583 q 663 805 736 718 q 466 892 589 892 q 280 805 349 892 q 210 583 210 718 l 210 406 q 280 182 210 269 q 466 95 349 95 q 663 181 590 95 q 736 406 736 268 l 736 583 m 55 929 l 124 1141 l 266 1141 l 266 1127 l 111 911 l 55 911 l 55 929 m -149 1006 l -39 1141 l 34 1141 l -22 1002 l -22 909 l -149 909 l -149 1006 z "}," ":{"ha":708,"x_min":0,"x_max":0,"o":""}," ":{"ha":1417,"x_min":0,"x_max":0,"o":""}," ":{"ha":708,"x_min":0,"x_max":0,"o":""}," ":{"ha":1417,"x_min":0,"x_max":0,"o":""}," ":{"ha":473,"x_min":0,"x_max":0,"o":""}," ":{"ha":354,"x_min":0,"x_max":0,"o":""}," ":{"ha":236,"x_min":0,"x_max":0,"o":""}," ":{"ha":781,"x_min":0,"x_max":0,"o":""}," ":{"ha":380,"x_min":0,"x_max":0,"o":""}," ":{"ha":283,"x_min":0,"x_max":0,"o":""}," ":{"ha":142,"x_min":0,"x_max":0,"o":""},"​":{"ha":0,"x_min":0,"x_max":0,"o":""},"–":{"ha":960,"x_min":122,"x_max":859,"o":"m 858 439 l 122 439 l 122 545 l 858 545 l 858 439 z "},"—":{"ha":1126,"x_min":128,"x_max":1034,"o":"m 1034 439 l 128 439 l 128 545 l 1034 545 l 1034 439 z "},"―":{"ha":1126,"x_min":128,"x_max":1034,"o":"m 1034 439 l 128 439 l 128 545 l 1034 545 l 1034 439 z "},"‗":{"ha":634,"x_min":3,"x_max":629,"o":"m 629 -277 l 3 -277 l 3 -172 l 629 -172 l 629 -277 m 629 -104 l 3 -104 l 3 0 l 629 0 l 629 -104 z "},"‘":{"ha":283,"x_min":54,"x_max":229,"o":"m 54 817 l 163 1058 l 229 1058 l 188 812 l 188 692 l 54 692 l 54 817 z "},"’":{"ha":283,"x_min":54,"x_max":229,"o":"m 229 927 l 120 692 l 54 692 l 95 925 l 95 1058 l 229 1058 l 229 927 z "},"‚":{"ha":283,"x_min":54,"x_max":229,"o":"m 229 18 l 120 -173 l 54 -173 l 95 5 l 95 169 l 229 169 l 229 18 z "},"‛":{"ha":283,"x_min":29,"x_max":203,"o":"m 29 927 l 138 692 l 203 692 l 163 925 l 163 1058 l 29 1058 l 29 927 z "},"“":{"ha":505,"x_min":54,"x_max":452,"o":"m 54 817 l 163 1058 l 229 1058 l 188 812 l 188 692 l 54 692 l 54 817 m 277 817 l 386 1058 l 452 1058 l 411 812 l 411 692 l 277 692 l 277 817 z "},"”":{"ha":510,"x_min":54,"x_max":457,"o":"m 229 927 l 120 692 l 54 692 l 95 925 l 95 1058 l 229 1058 l 229 927 m 457 927 l 349 692 l 283 692 l 323 925 l 323 1058 l 457 1058 l 457 927 z "},"„":{"ha":492,"x_min":54,"x_max":437,"o":"m 229 65 l 120 -162 l 54 -162 l 95 58 l 95 190 l 229 190 l 229 65 m 437 65 l 329 -162 l 263 -162 l 304 64 l 304 190 l 437 190 l 437 65 z "},"†":{"ha":766,"x_min":47,"x_max":719,"o":"m 719 628 l 448 628 l 448 0 l 315 0 l 315 628 l 47 628 l 47 734 l 315 734 l 315 987 l 448 987 l 448 734 l 719 734 l 719 628 z "},"‡":{"ha":793,"x_min":59,"x_max":730,"o":"m 730 0 l 459 0 l 459 -282 l 326 -282 l 326 0 l 59 0 l 59 104 l 326 104 l 326 628 l 59 628 l 59 734 l 326 734 l 326 987 l 459 987 l 459 734 l 730 734 l 730 628 l 459 628 l 459 104 l 730 104 l 730 0 z "},"•":{"ha":471,"x_min":93,"x_max":374,"o":"m 93 538 q 131 635 93 597 q 233 673 169 673 q 335 635 297 673 q 374 538 374 597 l 374 497 q 336 400 374 437 q 233 363 298 363 q 131 400 169 363 q 93 497 93 437 l 93 538 z "},"‥":{"ha":658,"x_min":109,"x_max":543,"o":"m 243 0 l 109 0 l 109 137 l 243 137 l 243 0 m 543 0 l 410 0 l 410 137 l 543 137 l 543 0 z "},"…":{"ha":936,"x_min":109,"x_max":828,"o":"m 243 0 l 109 0 l 109 137 l 243 137 l 243 0 m 543 0 l 410 0 l 410 137 l 543 137 l 543 0 m 828 0 l 694 0 l 694 137 l 828 137 l 828 0 z "},"‰":{"ha":1326,"x_min":43,"x_max":1273,"o":"m 555 242 q 611 387 555 328 q 759 446 667 446 q 849 424 809 446 q 913 366 888 403 q 978 424 939 403 q 1068 446 1018 446 q 1217 387 1161 446 q 1273 242 1273 328 l 1273 189 q 1217 44 1273 102 q 1069 -14 1162 -14 q 979 6 1019 -14 q 913 64 939 27 q 849 6 888 27 q 760 -14 810 -14 q 611 44 667 -14 q 555 189 555 102 l 555 242 m 43 798 q 99 943 43 884 q 247 1002 155 1002 q 396 943 340 1002 q 452 798 452 884 l 452 745 q 396 601 452 659 q 248 543 340 543 q 99 601 155 543 q 43 745 43 659 l 43 798 m 654 189 q 682 103 654 138 q 760 68 709 68 q 838 103 810 68 q 865 189 865 138 l 865 242 q 837 328 865 292 q 759 363 809 363 q 682 328 709 363 q 654 242 654 292 l 654 189 m 964 189 q 991 103 964 138 q 1069 68 1019 68 q 1146 103 1119 68 q 1173 189 1173 138 l 1173 242 q 1146 328 1173 292 q 1068 363 1118 363 q 991 328 1018 363 q 964 242 964 292 l 964 189 m 142 745 q 170 660 142 695 q 248 625 197 625 q 325 660 298 625 q 353 745 353 694 l 353 798 q 325 883 353 848 q 247 919 297 919 q 170 883 197 919 q 142 798 142 848 l 142 745 m 311 75 l 237 120 l 719 892 l 793 846 l 311 75 z "},"′":{"ha":243,"x_min":54,"x_max":189,"o":"m 189 907 l 120 715 l 54 715 l 55 895 l 55 1058 l 189 1058 l 189 907 z "},"″":{"ha":453,"x_min":54,"x_max":398,"o":"m 189 875 l 120 705 l 54 705 l 55 868 l 55 1058 l 189 1058 l 189 875 m 398 875 l 330 705 l 264 705 l 264 873 l 264 1058 l 398 1058 l 398 875 z "},"‹":{"ha":417,"x_min":73,"x_max":374,"o":"m 201 373 l 374 103 l 273 103 l 73 367 l 73 380 l 273 644 l 374 644 l 201 373 z "},"›":{"ha":417,"x_min":60,"x_max":360,"o":"m 160 644 l 360 380 l 360 367 l 160 103 l 60 103 l 233 373 l 60 644 l 160 644 z "},"‼":{"ha":731,"x_min":116,"x_max":616,"o":"m 250 324 l 116 324 l 116 987 l 250 987 l 250 324 m 250 0 l 116 0 l 116 138 l 250 138 l 250 0 m 615 324 l 481 324 l 481 987 l 615 987 l 615 324 m 616 0 l 481 0 l 481 138 l 616 138 l 616 0 z "},"⁄":{"ha":633,"x_min":40,"x_max":596,"o":"m 114 75 l 40 120 l 522 892 l 596 846 l 114 75 z "},"⁴":{"ha":638,"x_min":48,"x_max":577,"o":"m 476 592 l 577 592 l 577 505 l 476 505 l 476 380 l 359 380 l 359 505 l 51 505 l 48 570 l 356 1002 l 476 1002 l 476 592 m 177 592 l 359 592 l 359 848 l 355 848 l 347 831 l 177 592 z "},"ⁿ":{"ha":586,"x_min":83,"x_max":517,"o":"m 175 984 l 196 903 q 258 970 220 946 q 342 994 295 994 q 471 943 425 994 q 517 786 517 892 l 517 441 l 395 441 l 395 764 q 371 864 395 833 q 302 895 347 895 q 242 876 267 895 q 205 826 218 858 l 205 441 l 83 441 l 83 984 l 175 984 z "},"₣":{"ha":809,"x_min":19,"x_max":775,"o":"m 706 437 l 256 437 l 256 0 l 122 0 l 122 987 l 775 987 l 775 882 l 256 882 l 256 542 l 706 542 l 706 437 m 454 179 l 19 179 l 19 284 l 454 284 l 454 179 z "},"₤":{"ha":810,"x_min":47,"x_max":753,"o":"m 295 299 q 283 192 294 243 q 255 104 273 141 l 753 104 l 753 0 l 91 0 l 91 104 l 98 104 q 144 171 128 113 q 163 299 160 230 l 47 299 l 47 404 l 159 404 l 155 501 l 48 501 l 48 606 l 151 606 l 148 705 q 224 923 148 844 q 427 1002 300 1002 q 637 931 563 1002 q 709 743 712 860 l 708 739 l 579 739 q 536 858 579 819 q 427 897 494 897 q 321 846 360 897 q 281 705 281 795 l 285 606 l 571 606 l 571 501 l 289 501 l 292 404 l 571 404 l 571 299 l 295 299 z "},"₧":{"ha":1141,"x_min":111,"x_max":1053,"o":"m 907 911 l 907 734 l 1046 734 l 1046 635 l 907 635 l 907 189 q 928 117 907 138 q 985 96 949 96 q 1010 98 996 96 q 1035 105 1024 101 l 1053 14 q 1009 -6 1038 1 q 951 -14 980 -14 q 821 35 869 -14 q 773 189 773 84 l 773 635 l 682 635 q 597 466 668 534 q 351 382 509 382 l 245 382 l 245 0 l 111 0 l 111 987 l 351 987 q 597 903 509 987 q 682 734 668 834 l 773 734 l 773 911 l 907 911 m 245 488 l 351 488 q 501 544 451 488 q 551 684 551 601 q 501 825 551 767 q 351 882 451 882 l 245 882 l 245 488 z "},"₫":{"ha":810,"x_min":66,"x_max":821,"o":"m 738 -187 l 112 -187 l 112 -83 l 738 -83 l 738 -187 m 821 835 l 687 835 l 687 0 l 578 0 l 562 90 q 474 12 526 39 q 353 -14 422 -14 q 142 83 218 -14 q 66 339 66 180 l 66 353 q 142 639 66 530 q 354 747 218 747 q 468 724 418 747 q 553 654 518 700 l 553 835 l 386 835 l 386 940 l 553 940 l 553 1058 l 687 1058 l 687 940 l 821 940 l 821 835 m 200 339 q 245 161 200 228 q 387 94 291 94 q 487 121 446 94 q 553 197 528 149 l 553 540 q 487 612 528 585 q 388 639 446 639 q 246 559 292 639 q 200 353 200 480 l 200 339 z "},"€":{"ha":738,"x_min":54,"x_max":665,"o":"m 620 326 l 291 326 l 290 323 q 345 160 287 229 q 503 90 403 90 q 579 96 541 90 q 652 113 617 102 l 665 7 q 586 -9 627 -3 q 503 -14 544 -14 q 249 84 346 -14 q 153 326 153 182 l 54 326 l 54 431 l 153 431 l 153 524 l 54 524 l 54 629 l 153 629 l 153 639 q 249 903 153 804 q 501 1002 345 1002 q 581 996 541 1002 q 665 981 621 991 l 652 873 q 577 890 616 884 q 501 897 539 897 q 344 827 402 897 q 286 640 286 757 l 286 629 l 620 629 l 620 524 l 286 524 l 286 431 l 620 431 l 620 326 z "},"℅":{"ha":1026,"x_min":84,"x_max":957,"o":"m 459 716 l 460 712 q 412 592 463 641 q 276 543 361 543 q 136 601 189 543 q 84 745 84 659 l 84 798 q 136 943 84 884 q 275 1002 188 1002 q 412 951 360 1002 q 460 831 463 901 l 459 827 l 366 827 q 342 892 366 866 q 275 919 318 919 q 207 883 231 919 q 183 798 183 848 l 183 745 q 207 660 183 695 q 276 625 231 625 q 342 652 319 625 q 366 716 366 680 l 459 716 m 549 242 q 604 387 549 328 q 753 446 660 446 q 901 387 845 446 q 957 242 957 328 l 957 189 q 901 44 957 102 q 754 -14 846 -14 q 605 44 661 -14 q 549 189 549 102 l 549 242 m 648 189 q 675 103 648 138 q 754 68 703 68 q 831 103 804 68 q 858 189 858 138 l 858 242 q 830 328 858 292 q 753 363 802 363 q 675 328 703 363 q 648 242 648 292 l 648 189 m 303 75 l 229 120 l 711 892 l 785 846 l 303 75 z "},"ℓ":{"ha":663,"x_min":72,"x_max":599,"o":"m 487 -9 l 483 -10 q 278 68 348 -13 q 209 292 209 149 l 209 300 q 141 288 176 292 q 72 284 107 284 l 72 406 q 143 411 109 406 q 209 424 178 415 l 209 745 q 263 933 209 865 q 411 1002 317 1002 q 546 943 494 1002 q 599 787 599 885 l 599 759 q 530 537 599 652 q 342 355 461 422 l 342 292 q 375 144 342 194 q 487 95 408 95 l 487 -9 m 465 758 l 465 787 q 450 865 465 839 q 411 892 435 892 q 359 855 376 892 q 342 745 342 818 l 342 503 l 347 502 q 435 614 404 545 q 465 758 465 684 z "},"№":{"ha":1527,"x_min":116,"x_max":1442,"o":"m 863 0 l 729 0 l 254 764 l 250 762 l 250 0 l 116 0 l 116 987 l 250 987 l 725 225 l 729 227 l 729 987 l 863 987 l 863 0 m 973 772 q 1037 936 973 873 q 1207 1000 1101 1000 q 1378 936 1314 1000 q 1442 772 1442 873 l 1442 693 q 1378 529 1442 592 q 1208 467 1315 467 q 1037 529 1101 467 q 973 693 973 592 l 973 772 m 1090 693 q 1120 598 1090 633 q 1208 562 1150 562 q 1295 598 1265 562 q 1325 693 1325 634 l 1325 772 q 1295 866 1325 829 q 1207 902 1264 902 q 1120 866 1150 902 q 1090 772 1090 829 l 1090 693 m 1364 206 l 1031 206 l 1031 311 l 1364 311 l 1364 206 z "},"™":{"ha":871,"x_min":70,"x_max":760,"o":"m 696 856 l 692 857 l 591 623 l 556 623 l 450 867 l 446 865 l 446 623 l 383 623 l 383 987 l 462 987 l 571 723 l 575 723 l 685 987 l 760 987 l 760 623 l 696 623 l 696 856 m 330 932 l 232 932 l 232 623 l 168 623 l 168 932 l 70 932 l 70 987 l 330 987 l 330 932 z "},"℮":{"ha":884,"x_min":103,"x_max":794,"o":"m 709 64 q 587 6 650 26 q 458 -14 523 -14 q 207 98 311 -14 q 103 367 103 210 q 213 634 103 520 q 458 747 322 747 q 696 642 599 747 q 794 380 794 537 l 794 349 l 273 349 l 273 126 q 358 71 311 90 q 458 52 406 52 q 586 72 523 52 q 708 134 649 92 l 709 64 m 458 684 q 360 662 408 684 q 273 601 313 640 l 273 413 l 640 413 l 640 607 q 556 663 603 642 q 458 684 509 684 z "},"⅛":{"ha":1171,"x_min":73,"x_max":1097,"o":"m 277 438 l 159 438 l 159 882 l 73 882 l 73 973 l 277 989 l 277 438 m 292 75 l 218 120 l 700 892 l 774 846 l 292 75 m 1081 401 q 1056 331 1081 361 q 989 281 1031 300 q 1068 229 1039 262 q 1097 153 1097 195 q 1035 35 1097 77 q 877 -7 972 -7 q 713 35 778 -7 q 648 153 648 77 q 678 229 648 195 q 760 282 708 263 q 690 331 715 300 q 665 401 665 361 q 725 512 665 473 q 876 551 785 551 q 1023 512 964 551 q 1081 401 1081 473 m 982 157 q 951 215 982 192 q 876 237 920 237 q 796 215 829 237 q 764 157 764 193 q 796 101 764 122 q 877 81 828 81 q 951 101 921 81 q 982 157 982 122 m 964 395 q 939 444 964 426 q 876 462 913 462 q 808 444 835 462 q 781 395 781 427 q 809 345 781 364 q 877 326 836 326 q 939 345 913 326 q 964 395 964 364 z "},"⅜":{"ha":1274,"x_min":75,"x_max":1200,"o":"m 290 767 q 358 786 336 767 q 380 841 380 806 q 355 890 380 870 q 283 909 330 909 q 222 893 245 909 q 199 850 199 877 l 89 850 l 87 854 q 141 958 83 918 q 283 998 198 998 q 439 958 382 998 q 496 843 496 918 q 472 775 496 806 q 406 726 448 744 q 479 678 453 711 q 505 600 505 646 q 444 482 505 524 q 283 440 382 440 q 136 479 197 440 q 79 594 75 519 l 79 598 l 190 598 q 215 548 190 567 q 283 528 241 528 q 361 548 332 528 q 389 601 389 568 q 365 662 389 643 q 290 682 340 682 l 201 682 l 201 767 l 290 767 m 417 75 l 343 120 l 825 892 l 899 846 l 417 75 m 1183 401 q 1159 331 1183 361 q 1092 281 1134 300 q 1171 229 1141 262 q 1200 153 1200 195 q 1137 35 1200 77 q 979 -7 1074 -7 q 815 35 880 -7 q 750 153 750 77 q 780 229 750 195 q 862 282 810 263 q 792 331 817 300 q 767 401 767 361 q 827 512 767 473 q 979 551 887 551 q 1125 512 1067 551 q 1183 401 1183 473 m 1084 157 q 1053 215 1084 192 q 979 237 1022 237 q 899 215 931 237 q 866 157 866 193 q 898 101 866 122 q 979 81 930 81 q 1054 101 1023 81 q 1084 157 1084 122 m 1067 395 q 1041 444 1067 426 q 979 462 1016 462 q 910 444 937 462 q 884 395 884 427 q 911 345 884 364 q 979 326 939 326 q 1041 345 1015 326 q 1067 395 1067 364 z "},"⅝":{"ha":1306,"x_min":76,"x_max":1232,"o":"m 98 678 l 133 987 l 483 987 l 483 897 l 237 897 l 219 771 q 266 791 239 783 q 321 800 293 800 q 462 752 411 802 q 513 616 513 703 q 459 485 513 534 q 292 436 405 436 q 138 473 199 436 q 80 583 76 511 l 81 587 l 191 593 q 218 543 191 561 q 292 524 246 524 q 371 548 345 524 q 397 616 397 571 q 371 688 397 661 q 299 715 345 715 q 232 704 255 715 q 199 672 210 692 l 98 678 m 455 75 l 381 120 l 863 892 l 937 846 l 455 75 m 1216 401 q 1191 331 1216 361 q 1124 281 1166 300 q 1203 229 1174 262 q 1232 153 1232 195 q 1170 35 1232 77 q 1012 -7 1107 -7 q 848 35 913 -7 q 783 153 783 77 q 813 229 783 195 q 895 282 843 263 q 825 331 850 300 q 800 401 800 361 q 860 512 800 473 q 1011 551 920 551 q 1158 512 1099 551 q 1216 401 1216 473 m 1117 157 q 1086 215 1117 192 q 1011 237 1055 237 q 931 215 964 237 q 899 157 899 193 q 931 101 899 122 q 1012 81 963 81 q 1086 101 1056 81 q 1117 157 1117 122 m 1099 395 q 1074 444 1099 426 q 1011 462 1048 462 q 943 444 970 462 q 916 395 916 427 q 944 345 916 364 q 1012 326 971 326 q 1074 345 1048 326 q 1099 395 1099 364 z "},"⅞":{"ha":1193,"x_min":73,"x_max":1119,"o":"m 472 898 q 343 722 381 791 q 306 530 306 653 l 306 444 l 189 444 l 189 530 q 242 747 189 652 q 355 898 294 842 l 73 898 l 73 987 l 472 987 l 472 898 m 324 75 l 250 120 l 732 892 l 806 846 l 324 75 m 1103 401 q 1078 331 1103 361 q 1011 281 1053 300 q 1090 229 1061 262 q 1119 153 1119 195 q 1056 35 1119 77 q 899 -7 994 -7 q 734 35 800 -7 q 669 153 669 77 q 700 229 669 195 q 781 282 730 263 q 711 331 736 300 q 686 401 686 361 q 746 512 686 473 q 898 551 806 551 q 1044 512 986 551 q 1103 401 1103 473 m 1004 157 q 972 215 1004 192 q 898 237 941 237 q 818 215 850 237 q 785 157 785 193 q 818 101 785 122 q 899 81 850 81 q 973 101 943 81 q 1004 157 1004 122 m 986 395 q 961 444 986 426 q 898 462 935 462 q 830 444 857 462 q 803 395 803 427 q 830 345 803 364 q 899 326 858 326 q 960 345 935 326 q 986 395 986 364 z "},"∂":{"ha":804,"x_min":49,"x_max":727,"o":"m 330 1029 q 618 849 509 986 q 727 512 727 712 l 727 363 q 629 91 727 197 q 386 -14 532 -14 q 143 81 238 -14 q 49 316 49 176 q 134 569 49 474 q 366 663 218 663 q 488 643 431 663 q 581 588 545 623 l 583 591 q 489 802 568 722 q 290 918 409 882 l 330 1029 m 389 90 q 536 168 479 90 q 593 363 593 245 l 593 450 q 511 527 569 496 q 366 558 452 558 q 228 490 274 558 q 182 316 182 422 q 238 158 182 227 q 389 90 294 90 z "},"∏":{"ha":974,"x_min":114,"x_max":860,"o":"m 860 -143 l 726 -143 l 726 882 l 248 882 l 248 -143 l 114 -143 l 114 987 l 860 987 l 860 -143 z "},"∑":{"ha":815,"x_min":47,"x_max":812,"o":"m 589 372 l 211 -74 l 212 -77 l 812 -77 l 812 -182 l 47 -182 l 47 -83 l 461 400 l 47 888 l 47 987 l 759 987 l 759 882 l 211 882 l 210 879 l 589 428 l 589 372 z "},"−":{"ha":793,"x_min":114,"x_max":680,"o":"m 680 439 l 114 439 l 114 545 l 680 545 l 680 439 z "},"√":{"ha":840,"x_min":43,"x_max":812,"o":"m 376 231 l 388 174 l 392 174 l 405 231 l 675 987 l 812 987 l 439 0 l 338 0 l 170 426 l 43 426 l 43 532 l 265 532 l 376 231 z "},"∞":{"ha":1421,"x_min":71,"x_max":1342,"o":"m 1342 344 q 1257 89 1342 191 q 1034 -14 1173 -14 q 841 59 922 -14 q 706 237 760 132 q 571 59 652 132 q 379 -14 490 -14 q 155 89 239 -14 q 71 344 71 191 l 71 389 q 155 644 71 541 q 378 747 239 747 q 570 674 489 747 q 707 496 652 601 q 842 674 760 600 q 1035 747 923 747 q 1257 644 1173 747 q 1342 389 1342 540 l 1342 344 m 204 344 q 249 159 204 229 q 379 90 293 90 q 544 185 472 90 q 635 353 616 279 l 635 381 q 544 548 616 453 q 378 642 471 642 q 248 572 292 642 q 204 389 204 502 l 204 344 m 1208 389 q 1164 572 1208 502 q 1035 642 1119 642 q 869 548 941 642 q 777 381 798 454 l 777 353 q 869 184 797 278 q 1034 90 941 90 q 1164 160 1119 90 q 1208 344 1208 229 l 1208 389 z "},"∫":{"ha":356,"x_min":-46,"x_max":447,"o":"m 250 -60 q 191 -235 250 -174 q 29 -296 133 -296 q -9 -293 8 -296 q -46 -284 -26 -290 l -37 -182 q -5 -189 -27 -186 q 29 -191 17 -191 q 93 -156 69 -191 q 116 -60 116 -121 l 116 827 q 178 1008 116 944 q 349 1072 239 1072 q 395 1068 372 1072 q 447 1058 418 1065 l 431 960 q 402 965 417 963 q 370 967 387 967 q 280 930 311 967 q 250 827 250 893 l 250 -60 z "},"≈":{"ha":783,"x_min":68,"x_max":708,"o":"m 75 593 q 149 665 107 639 q 235 692 191 692 q 304 684 282 692 q 394 642 326 676 q 475 604 452 612 q 542 595 497 595 q 627 622 585 595 q 702 694 669 648 l 708 576 q 633 504 675 530 q 548 477 591 477 q 481 486 503 477 q 400 524 458 494 q 310 566 332 558 q 241 574 288 574 q 155 547 197 574 q 81 475 113 521 l 75 593 m 68 303 q 142 376 100 349 q 229 402 184 402 q 297 395 275 403 q 387 353 319 387 q 469 313 448 321 q 535 305 491 305 q 621 331 578 305 q 695 405 663 357 l 701 286 q 627 213 669 239 q 541 187 585 187 q 474 196 496 187 q 393 234 452 204 q 301 277 322 269 q 235 284 281 285 q 149 258 191 284 q 75 184 106 231 l 68 303 z "},"≠":{"ha":727,"x_min":103,"x_max":669,"o":"m 538 669 l 669 669 l 669 558 l 476 558 l 381 387 l 669 387 l 669 276 l 319 276 l 229 113 l 170 154 l 238 276 l 103 276 l 103 387 l 300 387 l 395 558 l 103 558 l 103 669 l 456 669 l 556 848 l 615 808 l 538 669 z "},"≤":{"ha":732,"x_min":107,"x_max":677,"o":"m 677 5 l 111 5 l 111 110 l 677 110 l 677 5 m 281 469 l 224 458 l 224 454 l 281 442 l 661 303 l 661 181 l 107 412 l 107 503 l 661 734 l 661 611 l 281 469 z "},"≥":{"ha":738,"x_min":104,"x_max":685,"o":"m 677 3 l 111 3 l 111 109 l 677 109 l 677 3 m 104 615 l 104 734 l 685 503 l 685 412 l 104 181 l 104 300 l 510 445 l 568 456 l 568 460 l 510 472 l 104 615 z "},"◊":{"ha":700,"x_min":28,"x_max":672,"o":"m 298 987 l 399 987 l 672 493 l 401 0 l 300 0 l 28 493 l 298 987 m 536 493 l 361 840 l 350 874 l 346 874 l 334 840 l 164 493 l 338 146 l 350 113 l 354 113 l 366 146 l 536 493 z "},"":{"ha":353,"x_min":68,"x_max":217,"o":"m 217 70 l 134 -91 l 68 -91 l 110 76 l 110 165 l 217 165 l 217 70 z "},"fi":{"ha":773,"x_min":19,"x_max":665,"o":"m 134 0 l 134 635 l 19 635 l 19 734 l 134 734 l 134 813 q 207 1004 134 937 q 407 1072 279 1072 q 496 1062 452 1072 q 600 1031 541 1051 l 577 922 q 500 947 541 937 q 417 957 460 957 q 303 922 338 957 q 268 813 268 886 l 268 734 l 414 734 l 414 635 l 268 635 l 268 0 l 134 0 m 665 0 l 531 0 l 531 734 l 665 734 l 665 0 z "},"fl":{"ha":829,"x_min":38,"x_max":721,"o":"m 153 0 l 153 635 l 38 635 l 38 734 l 153 734 l 153 827 q 214 1008 153 944 q 385 1072 275 1072 q 432 1068 408 1072 q 484 1058 455 1065 l 467 956 q 438 961 455 959 q 401 963 420 963 q 315 928 343 963 q 286 827 286 893 l 286 734 l 439 734 l 439 635 l 286 635 l 286 0 l 153 0 m 721 0 l 587 0 l 587 1058 l 721 1058 l 721 0 z "},"ffi":{"ha":1253,"x_min":38,"x_max":1145,"o":"m 153 0 l 153 635 l 38 635 l 38 734 l 153 734 l 153 827 q 214 1008 153 944 q 385 1072 275 1072 q 432 1068 408 1072 q 484 1058 455 1065 l 467 956 q 438 961 455 959 q 401 963 420 963 q 315 928 343 963 q 286 827 286 893 l 286 734 l 439 734 l 439 635 l 286 635 l 286 0 l 153 0 m 614 0 l 614 635 l 498 635 l 498 734 l 614 734 l 614 813 q 686 1004 614 937 q 886 1072 758 1072 q 976 1062 932 1072 q 1080 1031 1020 1051 l 1057 922 q 980 947 1021 937 q 897 957 939 957 q 782 922 817 957 q 747 813 747 886 l 747 734 l 893 734 l 893 635 l 747 635 l 747 0 l 614 0 m 1145 0 l 1010 0 l 1010 734 l 1145 734 l 1145 0 z "},"ffl":{"ha":1309,"x_min":38,"x_max":1200,"o":"m 153 0 l 153 635 l 38 635 l 38 734 l 153 734 l 153 827 q 214 1008 153 944 q 385 1072 275 1072 q 432 1068 408 1072 q 484 1058 455 1065 l 467 956 q 438 961 455 959 q 401 963 420 963 q 315 928 343 963 q 286 827 286 893 l 286 734 l 439 734 l 439 635 l 286 635 l 286 0 l 153 0 m 632 0 l 632 635 l 517 635 l 517 734 l 632 734 l 632 827 q 693 1008 632 944 q 865 1072 755 1072 q 911 1068 888 1072 q 963 1058 935 1065 l 947 956 q 917 961 935 959 q 881 963 900 963 q 794 928 823 963 q 766 827 766 893 l 766 734 l 918 734 l 918 635 l 766 635 l 766 0 l 632 0 m 1200 0 l 1067 0 l 1067 1058 l 1200 1058 l 1200 0 z "},"":{"ha":0,"x_min":0,"x_max":0,"o":""},"":{"ha":1424,"x_min":62,"x_max":1377,"o":"m 559 317 q 516 210 559 251 q 404 169 473 169 q 290 210 334 169 q 247 317 247 251 l 247 393 q 290 500 247 458 q 403 542 334 542 q 516 500 472 542 q 559 393 559 458 l 559 317 m 605 171 l 605 543 l 732 543 q 839 518 801 543 q 876 441 876 492 q 861 394 876 415 q 819 363 846 373 q 870 330 852 354 q 888 276 888 307 q 853 198 888 224 q 755 171 817 171 l 605 171 m 497 393 q 472 466 497 439 q 403 493 446 493 q 334 466 359 493 q 309 393 309 439 l 309 317 q 334 244 309 271 q 404 218 359 218 q 472 244 447 218 q 497 317 497 271 l 497 393 m 1144 545 l 1206 545 l 1206 288 q 1171 203 1206 235 q 1080 172 1135 172 q 982 200 1018 172 q 951 279 947 227 l 952 283 l 1009 283 q 1027 237 1009 252 q 1080 222 1046 222 q 1125 240 1107 222 q 1144 288 1144 258 l 1144 545 m 62 -270 l 62 -56 l 138 -56 l 138 -193 l 271 -193 l 271 -270 l 62 -270 m 1166 -270 l 1166 -193 l 1301 -193 l 1301 -56 l 1377 -56 l 1377 -270 l 1166 -270 m 62 793 l 62 986 l 271 986 l 271 907 l 138 907 l 138 793 l 62 793 m 1166 907 l 1166 986 l 1377 986 l 1377 793 l 1301 793 l 1301 907 l 1166 907 m 669 336 l 669 222 l 755 222 q 807 236 789 222 q 825 278 825 251 q 807 319 825 304 q 758 336 790 335 l 755 336 l 669 336 m 896 907 l 896 986 l 1084 986 l 1084 907 l 896 907 m 625 907 l 625 986 l 813 986 l 813 907 l 625 907 m 355 907 l 355 986 l 542 986 l 542 907 l 355 907 m 896 -270 l 896 -193 l 1084 -193 l 1084 -270 l 896 -270 m 625 -270 l 625 -193 l 813 -193 l 813 -270 l 625 -270 m 355 -270 l 355 -193 l 542 -193 l 542 -270 l 355 -270 m 669 384 l 732 384 q 792 397 772 384 q 812 438 812 411 q 793 475 812 465 q 732 486 774 486 l 669 486 l 669 384 m 138 282 l 62 282 l 62 453 l 138 453 l 138 282 m 138 538 l 62 538 l 62 708 l 138 708 l 138 538 m 138 28 l 62 28 l 62 197 l 138 197 l 138 28 m 1377 282 l 1301 282 l 1301 453 l 1377 453 l 1377 282 m 1377 538 l 1301 538 l 1301 708 l 1377 708 l 1377 538 m 1377 28 l 1301 28 l 1301 197 l 1377 197 l 1377 28 z "},"�":{"ha":1425,"x_min":62,"x_max":1361,"o":"m 711 1097 l 1361 436 l 711 -225 l 62 436 l 711 1097 m 767 273 q 776 329 767 309 q 812 368 785 350 q 892 438 861 394 q 924 536 924 483 q 867 674 924 623 q 710 725 810 725 q 561 681 618 725 q 507 549 505 637 l 509 545 l 640 545 q 661 597 641 579 q 710 614 681 614 q 767 593 747 614 q 787 536 787 572 q 769 476 787 502 q 724 431 752 450 q 650 363 670 393 q 630 273 630 332 l 767 273 m 767 211 l 630 211 l 630 96 l 767 96 l 767 211 m 716 -374 l 719 -374 l 719 -376 l 716 -376 l 716 -374 m 715 1455 l 718 1455 l 718 1453 l 715 1453 l 715 1455 z "}},"familyName":"Roboto","ascender":1455,"descender":-376,"underlinePosition":-150,"underlineThickness":100,"boundingBox":{"yMin":-555,"xMin":-980,"yMax":2167,"xMax":2396},"resolution":1000,"original_font_information":{"format":0,"copyright":"Font data copyright Google 2012","fontFamily":"Roboto","fontSubfamily":"Regular","uniqueID":"Google:Roboto Regular:2013","fullName":"Roboto Regular","version":"Version 1.100141; 2013","postScriptName":"Roboto-Regular","trademark":"Roboto is a trademark of Google.","designer":"Google","manufacturerURL":"Google.com","designerURL":"Christian Robertson","licence":"Licensed under the Apache License, Version 2.0","licenceURL":"http://www.apache.org/licenses/LICENSE-2.0"},"cssFontWeight":"normal","cssFontStyle":"normal"} \ No newline at end of file diff --git a/cameras.js b/cameras.js new file mode 100644 index 0000000..e69de29 diff --git a/game.js b/game.js new file mode 100644 index 0000000..8a04b23 --- /dev/null +++ b/game.js @@ -0,0 +1,7 @@ +//to do +//to make physical linking points +//if all linking points are same text 'x' or 'o'; +//turn the sqares black and do some animation with the text? +//for each there is one points.lol +//for now thats it but for the final game i want to make even a computer.**) + diff --git a/grids.js b/grids.js index a2ebcd2..682dc51 100644 --- a/grids.js +++ b/grids.js @@ -1,63 +1,68 @@ const lineMaterial = new THREE.LineBasicMaterial({ - color: '#00008B', + color: '', linewidth: 10, }); - -const sideLineGeometries = [ - - new THREE.BufferGeometry().setFromPoints([ +const lineGeometry1 =new THREE.BufferGeometry().setFromPoints([ new THREE.Vector3(1.15, 0.38, -1.15), new THREE.Vector3(-1.15, 0.38, -1.15) - ]), - + ]) + const line1 = new THREE.Line(lineGeometry1, lineMaterial); + scene.add(line1);//1st side (1,0)and horizndal line1(1,1). - new THREE.BufferGeometry().setFromPoints([ + const lineGeometry2 =new THREE.BufferGeometry().setFromPoints([ new THREE.Vector3(1.15, 0.38, 1.15), new THREE.Vector3(-1.15, 0.38, 1.15) - ]), + ]) + const line2 = new THREE.Line(lineGeometry2, lineMaterial); +scene.add(line2);//(1,) - new THREE.BufferGeometry().setFromPoints([ + const lineGeometry3 =new THREE.BufferGeometry().setFromPoints([ new THREE.Vector3(1.15, 0.38, 1.15), new THREE.Vector3(1.15, 0.38, -1.15) - ]), - + ]) + const line3 = new THREE.Line(lineGeometry3, lineMaterial); + scene.add(line3); - new THREE.BufferGeometry().setFromPoints([ + const lineGeometry4 =new THREE.BufferGeometry().setFromPoints([ new THREE.Vector3(-1.15, 0.38, 1.15), new THREE.Vector3(-1.15, 0.38, -1.15) - ]), - + ]) + const line4 = new THREE.Line(lineGeometry4, lineMaterial); + scene.add(line4); - new THREE.BufferGeometry().setFromPoints([ + const lineGeometry5 =new THREE.BufferGeometry().setFromPoints([ new THREE.Vector3(1.15, -0.38, 1.15), new THREE.Vector3(-1.15, -0.38, 1.15) - ]), + ]) + + const line5 = new THREE.Line(lineGeometry5, lineMaterial); +scene.add(line5); - new THREE.BufferGeometry().setFromPoints([ + const lineGeometry6 =new THREE.BufferGeometry().setFromPoints([ new THREE.Vector3(1.15, -0.38, -1.15), new THREE.Vector3(1.15, -0.38, 1.15) - ]), + ]) + const line6 = new THREE.Line(lineGeometry6, lineMaterial); +scene.add(line6); // Line 7 - new THREE.BufferGeometry().setFromPoints([ + const lineGeometry7 =new THREE.BufferGeometry().setFromPoints([ new THREE.Vector3(1.15, -0.38, -1.15), new THREE.Vector3(-1.15, -0.38, -1.15) - ]), + ]) + const line7 = new THREE.Line(lineGeometry7, lineMaterial); +scene.add(line7); // Line 8 - new THREE.BufferGeometry().setFromPoints([ + const lineGeometry8 =new THREE.BufferGeometry().setFromPoints([ new THREE.Vector3(-1.15, -0.38, 1.15), new THREE.Vector3(-1.15, -0.38, -1.15) ]) -]; - -sideLineGeometries.forEach((geometry) => { - const sideLine = new THREE.Line(geometry, lineMaterial); - scene.add(sideLine); -}); + const line8 = new THREE.Line(lineGeometry8, lineMaterial); + scene.add(line8); const lineGeometry9 = new THREE.BufferGeometry().setFromPoints([ @@ -184,7 +189,107 @@ const lineGeometry24 = new THREE.BufferGeometry().setFromPoints([ new THREE.Vector3(-0.36, 1.15, -1.15) ]); const line24 = new THREE.Line(lineGeometry24, lineMaterial); -scene.add(line24); +cube.add(line24); + + + + + + +// ... (Your existing code) + +// Add lines to the top corners +const lineGeometry25 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(1.15, 1.15,1.15), + new THREE.Vector3(1.15, 1.15,-1.15) +]); +const line25 = new THREE.Line(lineGeometry25, lineMaterial); +scene.add(line25); + +const lineGeometry26 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(-1.15, 1.15,1.15), + new THREE.Vector3(-1.15, 1.15, -1.15) +]); +const line26 = new THREE.Line(lineGeometry26, lineMaterial); +scene.add(line26); + +// Add lines to the bottom corners +const lineGeometry27 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(1.15, -1.15, 1.15), + new THREE.Vector3(1.15, -1.15, -1.15) +]); +const line27 = new THREE.Line(lineGeometry27, lineMaterial); +scene.add(line27); + +const lineGeometry28 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(-1.15, -1.15, 1.15), + new THREE.Vector3(-1.15, -1.15, -1.15) +]); +const line28 = new THREE.Line(lineGeometry28, lineMaterial); +scene.add(line28); + +// ... (The rest of your code) +// ... (Your existing code) + +// Add lines to the sides +const lineGeometry29 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(1.15, 1.15, -1.15), + new THREE.Vector3(1.15, -1.15, -1.15) +]); +const line29 = new THREE.Line(lineGeometry29, lineMaterial); +scene.add(line29); + +const lineGeometry30 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(-1.15, 1.15, -1.15), + new THREE.Vector3(-1.15, -1.15, -1.15) +]); +const line30 = new THREE.Line(lineGeometry30, lineMaterial); +scene.add(line30); + +const lineGeometry31 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(1.15, 1.15, 1.15), + new THREE.Vector3(1.15, -1.15, 1.15) +]); +const line31 = new THREE.Line(lineGeometry31, lineMaterial); +scene.add(line31); +const lineGeometry32 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(-1.15, 1.15, 1.15), + new THREE.Vector3(-1.15, -1.15, 1.15) +]); +const line32 = new THREE.Line(lineGeometry32, lineMaterial); +scene.add(line32); + +// ... (The rest of your code) +const lineGeometry33 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(-1.15, 1.15, 1.15), + new THREE.Vector3(1.15, 1.15, 1.15) +]); +const line33= new THREE.Line(lineGeometry33, lineMaterial); +scene.add(line33); + + +const lineGeometry34 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(1.15, 1.15, -1.15), + new THREE.Vector3(-1.15, 1.15, -1.15) +]); +const line34= new THREE.Line(lineGeometry34, lineMaterial); +scene.add(line34); + +const lineGeometry35 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(-1.15, -1.15, 1.15), + new THREE.Vector3(1.15, -1.15, 1.15) +]); +const line35= new THREE.Line(lineGeometry35, lineMaterial); +scene.add(line35); + + + +const lineGeometry36 = new THREE.BufferGeometry().setFromPoints([ + new THREE.Vector3(1.15, -1.15, -1.15), + new THREE.Vector3(-1.15, -1.15, -1.15) +]); +const line36= new THREE.Line(lineGeometry36, lineMaterial); +scene.add(line36); \ No newline at end of file diff --git a/htmlcube.js b/htmlcube.js index 8e0340b..bb8d0fa 100644 --- a/htmlcube.js +++ b/htmlcube.js @@ -1,32 +1,63 @@ const scene = new THREE.Scene(); - - const width = window.innerWidth; const height = window.innerHeight; const camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000); -camera.position.z = 5; +camera.position.z = 6; + const renderer = new THREE.WebGLRenderer(); renderer.setSize(width, height); document.querySelector('#renderer-container').appendChild(renderer.domElement); const controls = new THREE.OrbitControls(camera, renderer.domElement); -controls.autoRotate = false; - - -const cubeSize = 2.3; +controls.autoRotate = false; + +// Matter.js setup +const engine = Matter.Engine.create(); +const render = Matter.Render.create({ + element: document.body, + engine: engine +}); +Matter.Render.run(render); +Matter.Runner.run(engine); + +// Cube +const cubeSize = 2.28; const cubeGeometry = new THREE.BoxGeometry(cubeSize, cubeSize, cubeSize); const cubeMaterial = new THREE.MeshBasicMaterial({ color: 0x44aa88 }); const cube = new THREE.Mesh(cubeGeometry, cubeMaterial); scene.add(cube); -function animate() { - requestAnimationFrame(animate); - renderer.render(scene, camera); -} -animate(); +// Ground +const ground = Matter.Bodies.rectangle(9, -8, 800, 2, { isStatic: true }); +Matter.World.add(engine.world, [ground]); +const matterGroundPosition = ground.position; +const threeGround = new THREE.Mesh( + new THREE.BoxGeometry(800, 2, 800), + new THREE.MeshBasicMaterial({ color: 0x808080, transparent: true, opacity: 0.8 }) +); +scene.add(threeGround); +threeGround.position.set(matterGroundPosition.x, matterGroundPosition.y, matterGroundPosition.z); + +window.addEventListener('resize', function () { + var newWidth = window.innerWidth; + var newHeight = window.innerHeight; + camera.aspect = newWidth / newHeight; + camera.updateProjectionMatrix(); + renderer.setSize(newWidth, newHeight); +}); +function animate() { + requestAnimationFrame(animate); + renderer.render(scene, camera); + xno(); + updateFragments() + + +} + +animate(); diff --git a/mat.js b/mat.js new file mode 100644 index 0000000..235b995 --- /dev/null +++ b/mat.js @@ -0,0 +1,20 @@ + +const { Engine, Render, World, Bodies, Runner } = Matter; + +const engine = Engine.create(); +const render = Render.create({ + element: document.body, + engine: engine +}); + + +const boxA = Bodies.rectangle(400, 200, 80, 80); +const boxB = Bodies.rectangle(450, 50, 80, 80); +const ground = Bodies.rectangle(400, 610, 810, 60, { isStatic: true }); + + +World.add(engine.world, [boxA, boxB, ground]); + +Runner.run(engine); + +Render.run(render); diff --git a/matter.js b/matter.js new file mode 100644 index 0000000..533a452 --- /dev/null +++ b/matter.js @@ -0,0 +1,11001 @@ +/*! + * matter-js 0.19.0 by @liabru + * http://brm.io/matter-js/ + * License MIT + * + * The MIT License (MIT) + * + * Copyright (c) Liam Brummitt and contributors. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("Matter", [], factory); + else if(typeof exports === 'object') + exports["Matter"] = factory(); + else + root["Matter"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 20); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +/** +* The `Matter.Common` module contains utility functions that are common to all modules. +* +* @class Common +*/ + +var Common = {}; + +module.exports = Common; + +(function() { + + Common._baseDelta = 1000 / 60; + Common._nextId = 0; + Common._seed = 0; + Common._nowStartTime = +(new Date()); + Common._warnedOnce = {}; + Common._decomp = null; + + /** + * Extends the object in the first argument using the object in the second argument. + * @method extend + * @param {} obj + * @param {boolean} deep + * @return {} obj extended + */ + Common.extend = function(obj, deep) { + var argsStart, + args, + deepClone; + + if (typeof deep === 'boolean') { + argsStart = 2; + deepClone = deep; + } else { + argsStart = 1; + deepClone = true; + } + + for (var i = argsStart; i < arguments.length; i++) { + var source = arguments[i]; + + if (source) { + for (var prop in source) { + if (deepClone && source[prop] && source[prop].constructor === Object) { + if (!obj[prop] || obj[prop].constructor === Object) { + obj[prop] = obj[prop] || {}; + Common.extend(obj[prop], deepClone, source[prop]); + } else { + obj[prop] = source[prop]; + } + } else { + obj[prop] = source[prop]; + } + } + } + } + + return obj; + }; + + /** + * Creates a new clone of the object, if deep is true references will also be cloned. + * @method clone + * @param {} obj + * @param {bool} deep + * @return {} obj cloned + */ + Common.clone = function(obj, deep) { + return Common.extend({}, deep, obj); + }; + + /** + * Returns the list of keys for the given object. + * @method keys + * @param {} obj + * @return {string[]} keys + */ + Common.keys = function(obj) { + if (Object.keys) + return Object.keys(obj); + + // avoid hasOwnProperty for performance + var keys = []; + for (var key in obj) + keys.push(key); + return keys; + }; + + /** + * Returns the list of values for the given object. + * @method values + * @param {} obj + * @return {array} Array of the objects property values + */ + Common.values = function(obj) { + var values = []; + + if (Object.keys) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + values.push(obj[keys[i]]); + } + return values; + } + + // avoid hasOwnProperty for performance + for (var key in obj) + values.push(obj[key]); + return values; + }; + + /** + * Gets a value from `base` relative to the `path` string. + * @method get + * @param {} obj The base object + * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz' + * @param {number} [begin] Path slice begin + * @param {number} [end] Path slice end + * @return {} The object at the given path + */ + Common.get = function(obj, path, begin, end) { + path = path.split('.').slice(begin, end); + + for (var i = 0; i < path.length; i += 1) { + obj = obj[path[i]]; + } + + return obj; + }; + + /** + * Sets a value on `base` relative to the given `path` string. + * @method set + * @param {} obj The base object + * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz' + * @param {} val The value to set + * @param {number} [begin] Path slice begin + * @param {number} [end] Path slice end + * @return {} Pass through `val` for chaining + */ + Common.set = function(obj, path, val, begin, end) { + var parts = path.split('.').slice(begin, end); + Common.get(obj, path, 0, -1)[parts[parts.length - 1]] = val; + return val; + }; + + /** + * Shuffles the given array in-place. + * The function uses a seeded random generator. + * @method shuffle + * @param {array} array + * @return {array} array shuffled randomly + */ + Common.shuffle = function(array) { + for (var i = array.length - 1; i > 0; i--) { + var j = Math.floor(Common.random() * (i + 1)); + var temp = array[i]; + array[i] = array[j]; + array[j] = temp; + } + return array; + }; + + /** + * Randomly chooses a value from a list with equal probability. + * The function uses a seeded random generator. + * @method choose + * @param {array} choices + * @return {object} A random choice object from the array + */ + Common.choose = function(choices) { + return choices[Math.floor(Common.random() * choices.length)]; + }; + + /** + * Returns true if the object is a HTMLElement, otherwise false. + * @method isElement + * @param {object} obj + * @return {boolean} True if the object is a HTMLElement, otherwise false + */ + Common.isElement = function(obj) { + if (typeof HTMLElement !== 'undefined') { + return obj instanceof HTMLElement; + } + + return !!(obj && obj.nodeType && obj.nodeName); + }; + + /** + * Returns true if the object is an array. + * @method isArray + * @param {object} obj + * @return {boolean} True if the object is an array, otherwise false + */ + Common.isArray = function(obj) { + return Object.prototype.toString.call(obj) === '[object Array]'; + }; + + /** + * Returns true if the object is a function. + * @method isFunction + * @param {object} obj + * @return {boolean} True if the object is a function, otherwise false + */ + Common.isFunction = function(obj) { + return typeof obj === "function"; + }; + + /** + * Returns true if the object is a plain object. + * @method isPlainObject + * @param {object} obj + * @return {boolean} True if the object is a plain object, otherwise false + */ + Common.isPlainObject = function(obj) { + return typeof obj === 'object' && obj.constructor === Object; + }; + + /** + * Returns true if the object is a string. + * @method isString + * @param {object} obj + * @return {boolean} True if the object is a string, otherwise false + */ + Common.isString = function(obj) { + return toString.call(obj) === '[object String]'; + }; + + /** + * Returns the given value clamped between a minimum and maximum value. + * @method clamp + * @param {number} value + * @param {number} min + * @param {number} max + * @return {number} The value clamped between min and max inclusive + */ + Common.clamp = function(value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + + /** + * Returns the sign of the given value. + * @method sign + * @param {number} value + * @return {number} -1 if negative, +1 if 0 or positive + */ + Common.sign = function(value) { + return value < 0 ? -1 : 1; + }; + + /** + * Returns the current timestamp since the time origin (e.g. from page load). + * The result is in milliseconds and will use high-resolution timing if available. + * @method now + * @return {number} the current timestamp in milliseconds + */ + Common.now = function() { + if (typeof window !== 'undefined' && window.performance) { + if (window.performance.now) { + return window.performance.now(); + } else if (window.performance.webkitNow) { + return window.performance.webkitNow(); + } + } + + if (Date.now) { + return Date.now(); + } + + return (new Date()) - Common._nowStartTime; + }; + + /** + * Returns a random value between a minimum and a maximum value inclusive. + * The function uses a seeded random generator. + * @method random + * @param {number} min + * @param {number} max + * @return {number} A random number between min and max inclusive + */ + Common.random = function(min, max) { + min = (typeof min !== "undefined") ? min : 0; + max = (typeof max !== "undefined") ? max : 1; + return min + _seededRandom() * (max - min); + }; + + var _seededRandom = function() { + // https://en.wikipedia.org/wiki/Linear_congruential_generator + Common._seed = (Common._seed * 9301 + 49297) % 233280; + return Common._seed / 233280; + }; + + /** + * Converts a CSS hex colour string into an integer. + * @method colorToNumber + * @param {string} colorString + * @return {number} An integer representing the CSS hex string + */ + Common.colorToNumber = function(colorString) { + colorString = colorString.replace('#',''); + + if (colorString.length == 3) { + colorString = colorString.charAt(0) + colorString.charAt(0) + + colorString.charAt(1) + colorString.charAt(1) + + colorString.charAt(2) + colorString.charAt(2); + } + + return parseInt(colorString, 16); + }; + + /** + * The console logging level to use, where each level includes all levels above and excludes the levels below. + * The default level is 'debug' which shows all console messages. + * + * Possible level values are: + * - 0 = None + * - 1 = Debug + * - 2 = Info + * - 3 = Warn + * - 4 = Error + * @static + * @property logLevel + * @type {Number} + * @default 1 + */ + Common.logLevel = 1; + + /** + * Shows a `console.log` message only if the current `Common.logLevel` allows it. + * The message will be prefixed with 'matter-js' to make it easily identifiable. + * @method log + * @param ...objs {} The objects to log. + */ + Common.log = function() { + if (console && Common.logLevel > 0 && Common.logLevel <= 3) { + console.log.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments))); + } + }; + + /** + * Shows a `console.info` message only if the current `Common.logLevel` allows it. + * The message will be prefixed with 'matter-js' to make it easily identifiable. + * @method info + * @param ...objs {} The objects to log. + */ + Common.info = function() { + if (console && Common.logLevel > 0 && Common.logLevel <= 2) { + console.info.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments))); + } + }; + + /** + * Shows a `console.warn` message only if the current `Common.logLevel` allows it. + * The message will be prefixed with 'matter-js' to make it easily identifiable. + * @method warn + * @param ...objs {} The objects to log. + */ + Common.warn = function() { + if (console && Common.logLevel > 0 && Common.logLevel <= 3) { + console.warn.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments))); + } + }; + + /** + * Uses `Common.warn` to log the given message one time only. + * @method warnOnce + * @param ...objs {} The objects to log. + */ + Common.warnOnce = function() { + var message = Array.prototype.slice.call(arguments).join(' '); + + if (!Common._warnedOnce[message]) { + Common.warn(message); + Common._warnedOnce[message] = true; + } + }; + + /** + * Shows a deprecated console warning when the function on the given object is called. + * The target function will be replaced with a new function that first shows the warning + * and then calls the original function. + * @method deprecated + * @param {object} obj The object or module + * @param {string} name The property name of the function on obj + * @param {string} warning The one-time message to show if the function is called + */ + Common.deprecated = function(obj, prop, warning) { + obj[prop] = Common.chain(function() { + Common.warnOnce('🔅 deprecated 🔅', warning); + }, obj[prop]); + }; + + /** + * Returns the next unique sequential ID. + * @method nextId + * @return {Number} Unique sequential ID + */ + Common.nextId = function() { + return Common._nextId++; + }; + + /** + * A cross browser compatible indexOf implementation. + * @method indexOf + * @param {array} haystack + * @param {object} needle + * @return {number} The position of needle in haystack, otherwise -1. + */ + Common.indexOf = function(haystack, needle) { + if (haystack.indexOf) + return haystack.indexOf(needle); + + for (var i = 0; i < haystack.length; i++) { + if (haystack[i] === needle) + return i; + } + + return -1; + }; + + /** + * A cross browser compatible array map implementation. + * @method map + * @param {array} list + * @param {function} func + * @return {array} Values from list transformed by func. + */ + Common.map = function(list, func) { + if (list.map) { + return list.map(func); + } + + var mapped = []; + + for (var i = 0; i < list.length; i += 1) { + mapped.push(func(list[i])); + } + + return mapped; + }; + + /** + * Takes a directed graph and returns the partially ordered set of vertices in topological order. + * Circular dependencies are allowed. + * @method topologicalSort + * @param {object} graph + * @return {array} Partially ordered set of vertices in topological order. + */ + Common.topologicalSort = function(graph) { + // https://github.com/mgechev/javascript-algorithms + // Copyright (c) Minko Gechev (MIT license) + // Modifications: tidy formatting and naming + var result = [], + visited = [], + temp = []; + + for (var node in graph) { + if (!visited[node] && !temp[node]) { + Common._topologicalSort(node, visited, temp, graph, result); + } + } + + return result; + }; + + Common._topologicalSort = function(node, visited, temp, graph, result) { + var neighbors = graph[node] || []; + temp[node] = true; + + for (var i = 0; i < neighbors.length; i += 1) { + var neighbor = neighbors[i]; + + if (temp[neighbor]) { + // skip circular dependencies + continue; + } + + if (!visited[neighbor]) { + Common._topologicalSort(neighbor, visited, temp, graph, result); + } + } + + temp[node] = false; + visited[node] = true; + + result.push(node); + }; + + /** + * Takes _n_ functions as arguments and returns a new function that calls them in order. + * The arguments applied when calling the new function will also be applied to every function passed. + * The value of `this` refers to the last value returned in the chain that was not `undefined`. + * Therefore if a passed function does not return a value, the previously returned value is maintained. + * After all passed functions have been called the new function returns the last returned value (if any). + * If any of the passed functions are a chain, then the chain will be flattened. + * @method chain + * @param ...funcs {function} The functions to chain. + * @return {function} A new function that calls the passed functions in order. + */ + Common.chain = function() { + var funcs = []; + + for (var i = 0; i < arguments.length; i += 1) { + var func = arguments[i]; + + if (func._chained) { + // flatten already chained functions + funcs.push.apply(funcs, func._chained); + } else { + funcs.push(func); + } + } + + var chain = function() { + // https://github.com/GoogleChrome/devtools-docs/issues/53#issuecomment-51941358 + var lastResult, + args = new Array(arguments.length); + + for (var i = 0, l = arguments.length; i < l; i++) { + args[i] = arguments[i]; + } + + for (i = 0; i < funcs.length; i += 1) { + var result = funcs[i].apply(lastResult, args); + + if (typeof result !== 'undefined') { + lastResult = result; + } + } + + return lastResult; + }; + + chain._chained = funcs; + + return chain; + }; + + /** + * Chains a function to excute before the original function on the given `path` relative to `base`. + * See also docs for `Common.chain`. + * @method chainPathBefore + * @param {} base The base object + * @param {string} path The path relative to `base` + * @param {function} func The function to chain before the original + * @return {function} The chained function that replaced the original + */ + Common.chainPathBefore = function(base, path, func) { + return Common.set(base, path, Common.chain( + func, + Common.get(base, path) + )); + }; + + /** + * Chains a function to excute after the original function on the given `path` relative to `base`. + * See also docs for `Common.chain`. + * @method chainPathAfter + * @param {} base The base object + * @param {string} path The path relative to `base` + * @param {function} func The function to chain after the original + * @return {function} The chained function that replaced the original + */ + Common.chainPathAfter = function(base, path, func) { + return Common.set(base, path, Common.chain( + Common.get(base, path), + func + )); + }; + + /** + * Provide the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module to enable + * concave vertex decomposition support when using `Bodies.fromVertices` e.g. `Common.setDecomp(require('poly-decomp'))`. + * @method setDecomp + * @param {} decomp The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module. + */ + Common.setDecomp = function(decomp) { + Common._decomp = decomp; + }; + + /** + * Returns the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module provided through `Common.setDecomp`, + * otherwise returns the global `decomp` if set. + * @method getDecomp + * @return {} The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module if provided. + */ + Common.getDecomp = function() { + // get user provided decomp if set + var decomp = Common._decomp; + + try { + // otherwise from window global + if (!decomp && typeof window !== 'undefined') { + decomp = window.decomp; + } + + // otherwise from node global + if (!decomp && typeof global !== 'undefined') { + decomp = global.decomp; + } + } catch (e) { + // decomp not available + decomp = null; + } + + return decomp; + }; +})(); + + +/***/ }), +/* 1 */ +/***/ (function(module, exports) { + +/** +* The `Matter.Bounds` module contains methods for creating and manipulating axis-aligned bounding boxes (AABB). +* +* @class Bounds +*/ + +var Bounds = {}; + +module.exports = Bounds; + +(function() { + + /** + * Creates a new axis-aligned bounding box (AABB) for the given vertices. + * @method create + * @param {vertices} vertices + * @return {bounds} A new bounds object + */ + Bounds.create = function(vertices) { + var bounds = { + min: { x: 0, y: 0 }, + max: { x: 0, y: 0 } + }; + + if (vertices) + Bounds.update(bounds, vertices); + + return bounds; + }; + + /** + * Updates bounds using the given vertices and extends the bounds given a velocity. + * @method update + * @param {bounds} bounds + * @param {vertices} vertices + * @param {vector} velocity + */ + Bounds.update = function(bounds, vertices, velocity) { + bounds.min.x = Infinity; + bounds.max.x = -Infinity; + bounds.min.y = Infinity; + bounds.max.y = -Infinity; + + for (var i = 0; i < vertices.length; i++) { + var vertex = vertices[i]; + if (vertex.x > bounds.max.x) bounds.max.x = vertex.x; + if (vertex.x < bounds.min.x) bounds.min.x = vertex.x; + if (vertex.y > bounds.max.y) bounds.max.y = vertex.y; + if (vertex.y < bounds.min.y) bounds.min.y = vertex.y; + } + + if (velocity) { + if (velocity.x > 0) { + bounds.max.x += velocity.x; + } else { + bounds.min.x += velocity.x; + } + + if (velocity.y > 0) { + bounds.max.y += velocity.y; + } else { + bounds.min.y += velocity.y; + } + } + }; + + /** + * Returns true if the bounds contains the given point. + * @method contains + * @param {bounds} bounds + * @param {vector} point + * @return {boolean} True if the bounds contain the point, otherwise false + */ + Bounds.contains = function(bounds, point) { + return point.x >= bounds.min.x && point.x <= bounds.max.x + && point.y >= bounds.min.y && point.y <= bounds.max.y; + }; + + /** + * Returns true if the two bounds intersect. + * @method overlaps + * @param {bounds} boundsA + * @param {bounds} boundsB + * @return {boolean} True if the bounds overlap, otherwise false + */ + Bounds.overlaps = function(boundsA, boundsB) { + return (boundsA.min.x <= boundsB.max.x && boundsA.max.x >= boundsB.min.x + && boundsA.max.y >= boundsB.min.y && boundsA.min.y <= boundsB.max.y); + }; + + /** + * Translates the bounds by the given vector. + * @method translate + * @param {bounds} bounds + * @param {vector} vector + */ + Bounds.translate = function(bounds, vector) { + bounds.min.x += vector.x; + bounds.max.x += vector.x; + bounds.min.y += vector.y; + bounds.max.y += vector.y; + }; + + /** + * Shifts the bounds to the given position. + * @method shift + * @param {bounds} bounds + * @param {vector} position + */ + Bounds.shift = function(bounds, position) { + var deltaX = bounds.max.x - bounds.min.x, + deltaY = bounds.max.y - bounds.min.y; + + bounds.min.x = position.x; + bounds.max.x = position.x + deltaX; + bounds.min.y = position.y; + bounds.max.y = position.y + deltaY; + }; + +})(); + + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +/** +* The `Matter.Vector` module contains methods for creating and manipulating vectors. +* Vectors are the basis of all the geometry related operations in the engine. +* A `Matter.Vector` object is of the form `{ x: 0, y: 0 }`. +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Vector +*/ + +// TODO: consider params for reusing vector objects + +var Vector = {}; + +module.exports = Vector; + +(function() { + + /** + * Creates a new vector. + * @method create + * @param {number} x + * @param {number} y + * @return {vector} A new vector + */ + Vector.create = function(x, y) { + return { x: x || 0, y: y || 0 }; + }; + + /** + * Returns a new vector with `x` and `y` copied from the given `vector`. + * @method clone + * @param {vector} vector + * @return {vector} A new cloned vector + */ + Vector.clone = function(vector) { + return { x: vector.x, y: vector.y }; + }; + + /** + * Returns the magnitude (length) of a vector. + * @method magnitude + * @param {vector} vector + * @return {number} The magnitude of the vector + */ + Vector.magnitude = function(vector) { + return Math.sqrt((vector.x * vector.x) + (vector.y * vector.y)); + }; + + /** + * Returns the magnitude (length) of a vector (therefore saving a `sqrt` operation). + * @method magnitudeSquared + * @param {vector} vector + * @return {number} The squared magnitude of the vector + */ + Vector.magnitudeSquared = function(vector) { + return (vector.x * vector.x) + (vector.y * vector.y); + }; + + /** + * Rotates the vector about (0, 0) by specified angle. + * @method rotate + * @param {vector} vector + * @param {number} angle + * @param {vector} [output] + * @return {vector} The vector rotated about (0, 0) + */ + Vector.rotate = function(vector, angle, output) { + var cos = Math.cos(angle), sin = Math.sin(angle); + if (!output) output = {}; + var x = vector.x * cos - vector.y * sin; + output.y = vector.x * sin + vector.y * cos; + output.x = x; + return output; + }; + + /** + * Rotates the vector about a specified point by specified angle. + * @method rotateAbout + * @param {vector} vector + * @param {number} angle + * @param {vector} point + * @param {vector} [output] + * @return {vector} A new vector rotated about the point + */ + Vector.rotateAbout = function(vector, angle, point, output) { + var cos = Math.cos(angle), sin = Math.sin(angle); + if (!output) output = {}; + var x = point.x + ((vector.x - point.x) * cos - (vector.y - point.y) * sin); + output.y = point.y + ((vector.x - point.x) * sin + (vector.y - point.y) * cos); + output.x = x; + return output; + }; + + /** + * Normalises a vector (such that its magnitude is `1`). + * @method normalise + * @param {vector} vector + * @return {vector} A new vector normalised + */ + Vector.normalise = function(vector) { + var magnitude = Vector.magnitude(vector); + if (magnitude === 0) + return { x: 0, y: 0 }; + return { x: vector.x / magnitude, y: vector.y / magnitude }; + }; + + /** + * Returns the dot-product of two vectors. + * @method dot + * @param {vector} vectorA + * @param {vector} vectorB + * @return {number} The dot product of the two vectors + */ + Vector.dot = function(vectorA, vectorB) { + return (vectorA.x * vectorB.x) + (vectorA.y * vectorB.y); + }; + + /** + * Returns the cross-product of two vectors. + * @method cross + * @param {vector} vectorA + * @param {vector} vectorB + * @return {number} The cross product of the two vectors + */ + Vector.cross = function(vectorA, vectorB) { + return (vectorA.x * vectorB.y) - (vectorA.y * vectorB.x); + }; + + /** + * Returns the cross-product of three vectors. + * @method cross3 + * @param {vector} vectorA + * @param {vector} vectorB + * @param {vector} vectorC + * @return {number} The cross product of the three vectors + */ + Vector.cross3 = function(vectorA, vectorB, vectorC) { + return (vectorB.x - vectorA.x) * (vectorC.y - vectorA.y) - (vectorB.y - vectorA.y) * (vectorC.x - vectorA.x); + }; + + /** + * Adds the two vectors. + * @method add + * @param {vector} vectorA + * @param {vector} vectorB + * @param {vector} [output] + * @return {vector} A new vector of vectorA and vectorB added + */ + Vector.add = function(vectorA, vectorB, output) { + if (!output) output = {}; + output.x = vectorA.x + vectorB.x; + output.y = vectorA.y + vectorB.y; + return output; + }; + + /** + * Subtracts the two vectors. + * @method sub + * @param {vector} vectorA + * @param {vector} vectorB + * @param {vector} [output] + * @return {vector} A new vector of vectorA and vectorB subtracted + */ + Vector.sub = function(vectorA, vectorB, output) { + if (!output) output = {}; + output.x = vectorA.x - vectorB.x; + output.y = vectorA.y - vectorB.y; + return output; + }; + + /** + * Multiplies a vector and a scalar. + * @method mult + * @param {vector} vector + * @param {number} scalar + * @return {vector} A new vector multiplied by scalar + */ + Vector.mult = function(vector, scalar) { + return { x: vector.x * scalar, y: vector.y * scalar }; + }; + + /** + * Divides a vector and a scalar. + * @method div + * @param {vector} vector + * @param {number} scalar + * @return {vector} A new vector divided by scalar + */ + Vector.div = function(vector, scalar) { + return { x: vector.x / scalar, y: vector.y / scalar }; + }; + + /** + * Returns the perpendicular vector. Set `negate` to true for the perpendicular in the opposite direction. + * @method perp + * @param {vector} vector + * @param {bool} [negate=false] + * @return {vector} The perpendicular vector + */ + Vector.perp = function(vector, negate) { + negate = negate === true ? -1 : 1; + return { x: negate * -vector.y, y: negate * vector.x }; + }; + + /** + * Negates both components of a vector such that it points in the opposite direction. + * @method neg + * @param {vector} vector + * @return {vector} The negated vector + */ + Vector.neg = function(vector) { + return { x: -vector.x, y: -vector.y }; + }; + + /** + * Returns the angle between the vector `vectorB - vectorA` and the x-axis in radians. + * @method angle + * @param {vector} vectorA + * @param {vector} vectorB + * @return {number} The angle in radians + */ + Vector.angle = function(vectorA, vectorB) { + return Math.atan2(vectorB.y - vectorA.y, vectorB.x - vectorA.x); + }; + + /** + * Temporary vector pool (not thread-safe). + * @property _temp + * @type {vector[]} + * @private + */ + Vector._temp = [ + Vector.create(), Vector.create(), + Vector.create(), Vector.create(), + Vector.create(), Vector.create() + ]; + +})(); + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Vertices` module contains methods for creating and manipulating sets of vertices. +* A set of vertices is an array of `Matter.Vector` with additional indexing properties inserted by `Vertices.create`. +* A `Matter.Body` maintains a set of vertices to represent the shape of the object (its convex hull). +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Vertices +*/ + +var Vertices = {}; + +module.exports = Vertices; + +var Vector = __webpack_require__(2); +var Common = __webpack_require__(0); + +(function() { + + /** + * Creates a new set of `Matter.Body` compatible vertices. + * The `points` argument accepts an array of `Matter.Vector` points orientated around the origin `(0, 0)`, for example: + * + * [{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }] + * + * The `Vertices.create` method returns a new array of vertices, which are similar to Matter.Vector objects, + * but with some additional references required for efficient collision detection routines. + * + * Vertices must be specified in clockwise order. + * + * Note that the `body` argument is not optional, a `Matter.Body` reference must be provided. + * + * @method create + * @param {vector[]} points + * @param {body} body + */ + Vertices.create = function(points, body) { + var vertices = []; + + for (var i = 0; i < points.length; i++) { + var point = points[i], + vertex = { + x: point.x, + y: point.y, + index: i, + body: body, + isInternal: false + }; + + vertices.push(vertex); + } + + return vertices; + }; + + /** + * Parses a string containing ordered x y pairs separated by spaces (and optionally commas), + * into a `Matter.Vertices` object for the given `Matter.Body`. + * For parsing SVG paths, see `Svg.pathToVertices`. + * @method fromPath + * @param {string} path + * @param {body} body + * @return {vertices} vertices + */ + Vertices.fromPath = function(path, body) { + var pathPattern = /L?\s*([-\d.e]+)[\s,]*([-\d.e]+)*/ig, + points = []; + + path.replace(pathPattern, function(match, x, y) { + points.push({ x: parseFloat(x), y: parseFloat(y) }); + }); + + return Vertices.create(points, body); + }; + + /** + * Returns the centre (centroid) of the set of vertices. + * @method centre + * @param {vertices} vertices + * @return {vector} The centre point + */ + Vertices.centre = function(vertices) { + var area = Vertices.area(vertices, true), + centre = { x: 0, y: 0 }, + cross, + temp, + j; + + for (var i = 0; i < vertices.length; i++) { + j = (i + 1) % vertices.length; + cross = Vector.cross(vertices[i], vertices[j]); + temp = Vector.mult(Vector.add(vertices[i], vertices[j]), cross); + centre = Vector.add(centre, temp); + } + + return Vector.div(centre, 6 * area); + }; + + /** + * Returns the average (mean) of the set of vertices. + * @method mean + * @param {vertices} vertices + * @return {vector} The average point + */ + Vertices.mean = function(vertices) { + var average = { x: 0, y: 0 }; + + for (var i = 0; i < vertices.length; i++) { + average.x += vertices[i].x; + average.y += vertices[i].y; + } + + return Vector.div(average, vertices.length); + }; + + /** + * Returns the area of the set of vertices. + * @method area + * @param {vertices} vertices + * @param {bool} signed + * @return {number} The area + */ + Vertices.area = function(vertices, signed) { + var area = 0, + j = vertices.length - 1; + + for (var i = 0; i < vertices.length; i++) { + area += (vertices[j].x - vertices[i].x) * (vertices[j].y + vertices[i].y); + j = i; + } + + if (signed) + return area / 2; + + return Math.abs(area) / 2; + }; + + /** + * Returns the moment of inertia (second moment of area) of the set of vertices given the total mass. + * @method inertia + * @param {vertices} vertices + * @param {number} mass + * @return {number} The polygon's moment of inertia + */ + Vertices.inertia = function(vertices, mass) { + var numerator = 0, + denominator = 0, + v = vertices, + cross, + j; + + // find the polygon's moment of inertia, using second moment of area + // from equations at http://www.physicsforums.com/showthread.php?t=25293 + for (var n = 0; n < v.length; n++) { + j = (n + 1) % v.length; + cross = Math.abs(Vector.cross(v[j], v[n])); + numerator += cross * (Vector.dot(v[j], v[j]) + Vector.dot(v[j], v[n]) + Vector.dot(v[n], v[n])); + denominator += cross; + } + + return (mass / 6) * (numerator / denominator); + }; + + /** + * Translates the set of vertices in-place. + * @method translate + * @param {vertices} vertices + * @param {vector} vector + * @param {number} scalar + */ + Vertices.translate = function(vertices, vector, scalar) { + scalar = typeof scalar !== 'undefined' ? scalar : 1; + + var verticesLength = vertices.length, + translateX = vector.x * scalar, + translateY = vector.y * scalar, + i; + + for (i = 0; i < verticesLength; i++) { + vertices[i].x += translateX; + vertices[i].y += translateY; + } + + return vertices; + }; + + /** + * Rotates the set of vertices in-place. + * @method rotate + * @param {vertices} vertices + * @param {number} angle + * @param {vector} point + */ + Vertices.rotate = function(vertices, angle, point) { + if (angle === 0) + return; + + var cos = Math.cos(angle), + sin = Math.sin(angle), + pointX = point.x, + pointY = point.y, + verticesLength = vertices.length, + vertex, + dx, + dy, + i; + + for (i = 0; i < verticesLength; i++) { + vertex = vertices[i]; + dx = vertex.x - pointX; + dy = vertex.y - pointY; + vertex.x = pointX + (dx * cos - dy * sin); + vertex.y = pointY + (dx * sin + dy * cos); + } + + return vertices; + }; + + /** + * Returns `true` if the `point` is inside the set of `vertices`. + * @method contains + * @param {vertices} vertices + * @param {vector} point + * @return {boolean} True if the vertices contains point, otherwise false + */ + Vertices.contains = function(vertices, point) { + var pointX = point.x, + pointY = point.y, + verticesLength = vertices.length, + vertex = vertices[verticesLength - 1], + nextVertex; + + for (var i = 0; i < verticesLength; i++) { + nextVertex = vertices[i]; + + if ((pointX - vertex.x) * (nextVertex.y - vertex.y) + + (pointY - vertex.y) * (vertex.x - nextVertex.x) > 0) { + return false; + } + + vertex = nextVertex; + } + + return true; + }; + + /** + * Scales the vertices from a point (default is centre) in-place. + * @method scale + * @param {vertices} vertices + * @param {number} scaleX + * @param {number} scaleY + * @param {vector} point + */ + Vertices.scale = function(vertices, scaleX, scaleY, point) { + if (scaleX === 1 && scaleY === 1) + return vertices; + + point = point || Vertices.centre(vertices); + + var vertex, + delta; + + for (var i = 0; i < vertices.length; i++) { + vertex = vertices[i]; + delta = Vector.sub(vertex, point); + vertices[i].x = point.x + delta.x * scaleX; + vertices[i].y = point.y + delta.y * scaleY; + } + + return vertices; + }; + + /** + * Chamfers a set of vertices by giving them rounded corners, returns a new set of vertices. + * The radius parameter is a single number or an array to specify the radius for each vertex. + * @method chamfer + * @param {vertices} vertices + * @param {number[]} radius + * @param {number} quality + * @param {number} qualityMin + * @param {number} qualityMax + */ + Vertices.chamfer = function(vertices, radius, quality, qualityMin, qualityMax) { + if (typeof radius === 'number') { + radius = [radius]; + } else { + radius = radius || [8]; + } + + // quality defaults to -1, which is auto + quality = (typeof quality !== 'undefined') ? quality : -1; + qualityMin = qualityMin || 2; + qualityMax = qualityMax || 14; + + var newVertices = []; + + for (var i = 0; i < vertices.length; i++) { + var prevVertex = vertices[i - 1 >= 0 ? i - 1 : vertices.length - 1], + vertex = vertices[i], + nextVertex = vertices[(i + 1) % vertices.length], + currentRadius = radius[i < radius.length ? i : radius.length - 1]; + + if (currentRadius === 0) { + newVertices.push(vertex); + continue; + } + + var prevNormal = Vector.normalise({ + x: vertex.y - prevVertex.y, + y: prevVertex.x - vertex.x + }); + + var nextNormal = Vector.normalise({ + x: nextVertex.y - vertex.y, + y: vertex.x - nextVertex.x + }); + + var diagonalRadius = Math.sqrt(2 * Math.pow(currentRadius, 2)), + radiusVector = Vector.mult(Common.clone(prevNormal), currentRadius), + midNormal = Vector.normalise(Vector.mult(Vector.add(prevNormal, nextNormal), 0.5)), + scaledVertex = Vector.sub(vertex, Vector.mult(midNormal, diagonalRadius)); + + var precision = quality; + + if (quality === -1) { + // automatically decide precision + precision = Math.pow(currentRadius, 0.32) * 1.75; + } + + precision = Common.clamp(precision, qualityMin, qualityMax); + + // use an even value for precision, more likely to reduce axes by using symmetry + if (precision % 2 === 1) + precision += 1; + + var alpha = Math.acos(Vector.dot(prevNormal, nextNormal)), + theta = alpha / precision; + + for (var j = 0; j < precision; j++) { + newVertices.push(Vector.add(Vector.rotate(radiusVector, theta * j), scaledVertex)); + } + } + + return newVertices; + }; + + /** + * Sorts the input vertices into clockwise order in place. + * @method clockwiseSort + * @param {vertices} vertices + * @return {vertices} vertices + */ + Vertices.clockwiseSort = function(vertices) { + var centre = Vertices.mean(vertices); + + vertices.sort(function(vertexA, vertexB) { + return Vector.angle(centre, vertexA) - Vector.angle(centre, vertexB); + }); + + return vertices; + }; + + /** + * Returns true if the vertices form a convex shape (vertices must be in clockwise order). + * @method isConvex + * @param {vertices} vertices + * @return {bool} `true` if the `vertices` are convex, `false` if not (or `null` if not computable). + */ + Vertices.isConvex = function(vertices) { + // http://paulbourke.net/geometry/polygonmesh/ + // Copyright (c) Paul Bourke (use permitted) + + var flag = 0, + n = vertices.length, + i, + j, + k, + z; + + if (n < 3) + return null; + + for (i = 0; i < n; i++) { + j = (i + 1) % n; + k = (i + 2) % n; + z = (vertices[j].x - vertices[i].x) * (vertices[k].y - vertices[j].y); + z -= (vertices[j].y - vertices[i].y) * (vertices[k].x - vertices[j].x); + + if (z < 0) { + flag |= 1; + } else if (z > 0) { + flag |= 2; + } + + if (flag === 3) { + return false; + } + } + + if (flag !== 0){ + return true; + } else { + return null; + } + }; + + /** + * Returns the convex hull of the input vertices as a new array of points. + * @method hull + * @param {vertices} vertices + * @return [vertex] vertices + */ + Vertices.hull = function(vertices) { + // http://geomalgorithms.com/a10-_hull-1.html + + var upper = [], + lower = [], + vertex, + i; + + // sort vertices on x-axis (y-axis for ties) + vertices = vertices.slice(0); + vertices.sort(function(vertexA, vertexB) { + var dx = vertexA.x - vertexB.x; + return dx !== 0 ? dx : vertexA.y - vertexB.y; + }); + + // build lower hull + for (i = 0; i < vertices.length; i += 1) { + vertex = vertices[i]; + + while (lower.length >= 2 + && Vector.cross3(lower[lower.length - 2], lower[lower.length - 1], vertex) <= 0) { + lower.pop(); + } + + lower.push(vertex); + } + + // build upper hull + for (i = vertices.length - 1; i >= 0; i -= 1) { + vertex = vertices[i]; + + while (upper.length >= 2 + && Vector.cross3(upper[upper.length - 2], upper[upper.length - 1], vertex) <= 0) { + upper.pop(); + } + + upper.push(vertex); + } + + // concatenation of the lower and upper hulls gives the convex hull + // omit last points because they are repeated at the beginning of the other list + upper.pop(); + lower.pop(); + + return upper.concat(lower); + }; + +})(); + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Body` module contains methods for creating and manipulating rigid bodies. +* For creating bodies with common configurations such as rectangles, circles and other polygons see the module `Matter.Bodies`. +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). + +* @class Body +*/ + +var Body = {}; + +module.exports = Body; + +var Vertices = __webpack_require__(3); +var Vector = __webpack_require__(2); +var Sleeping = __webpack_require__(7); +var Common = __webpack_require__(0); +var Bounds = __webpack_require__(1); +var Axes = __webpack_require__(11); + +(function() { + + Body._timeCorrection = true; + Body._inertiaScale = 4; + Body._nextCollidingGroupId = 1; + Body._nextNonCollidingGroupId = -1; + Body._nextCategory = 0x0001; + Body._baseDelta = 1000 / 60; + + /** + * Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults. + * All properties have default values, and many are pre-calculated automatically based on other properties. + * Vertices must be specified in clockwise order. + * See the properties section below for detailed information on what you can pass via the `options` object. + * @method create + * @param {} options + * @return {body} body + */ + Body.create = function(options) { + var defaults = { + id: Common.nextId(), + type: 'body', + label: 'Body', + parts: [], + plugin: {}, + angle: 0, + vertices: Vertices.fromPath('L 0 0 L 40 0 L 40 40 L 0 40'), + position: { x: 0, y: 0 }, + force: { x: 0, y: 0 }, + torque: 0, + positionImpulse: { x: 0, y: 0 }, + constraintImpulse: { x: 0, y: 0, angle: 0 }, + totalContacts: 0, + speed: 0, + angularSpeed: 0, + velocity: { x: 0, y: 0 }, + angularVelocity: 0, + isSensor: false, + isStatic: false, + isSleeping: false, + motion: 0, + sleepThreshold: 60, + density: 0.001, + restitution: 0, + friction: 0.1, + frictionStatic: 0.5, + frictionAir: 0.01, + collisionFilter: { + category: 0x0001, + mask: 0xFFFFFFFF, + group: 0 + }, + slop: 0.05, + timeScale: 1, + render: { + visible: true, + opacity: 1, + strokeStyle: null, + fillStyle: null, + lineWidth: null, + sprite: { + xScale: 1, + yScale: 1, + xOffset: 0, + yOffset: 0 + } + }, + events: null, + bounds: null, + chamfer: null, + circleRadius: 0, + positionPrev: null, + anglePrev: 0, + parent: null, + axes: null, + area: 0, + mass: 0, + inertia: 0, + deltaTime: 1000 / 60, + _original: null + }; + + var body = Common.extend(defaults, options); + + _initProperties(body, options); + + return body; + }; + + /** + * Returns the next unique group index for which bodies will collide. + * If `isNonColliding` is `true`, returns the next unique group index for which bodies will _not_ collide. + * See `body.collisionFilter` for more information. + * @method nextGroup + * @param {bool} [isNonColliding=false] + * @return {Number} Unique group index + */ + Body.nextGroup = function(isNonColliding) { + if (isNonColliding) + return Body._nextNonCollidingGroupId--; + + return Body._nextCollidingGroupId++; + }; + + /** + * Returns the next unique category bitfield (starting after the initial default category `0x0001`). + * There are 32 available. See `body.collisionFilter` for more information. + * @method nextCategory + * @return {Number} Unique category bitfield + */ + Body.nextCategory = function() { + Body._nextCategory = Body._nextCategory << 1; + return Body._nextCategory; + }; + + /** + * Initialises body properties. + * @method _initProperties + * @private + * @param {body} body + * @param {} [options] + */ + var _initProperties = function(body, options) { + options = options || {}; + + // init required properties (order is important) + Body.set(body, { + bounds: body.bounds || Bounds.create(body.vertices), + positionPrev: body.positionPrev || Vector.clone(body.position), + anglePrev: body.anglePrev || body.angle, + vertices: body.vertices, + parts: body.parts || [body], + isStatic: body.isStatic, + isSleeping: body.isSleeping, + parent: body.parent || body + }); + + Vertices.rotate(body.vertices, body.angle, body.position); + Axes.rotate(body.axes, body.angle); + Bounds.update(body.bounds, body.vertices, body.velocity); + + // allow options to override the automatically calculated properties + Body.set(body, { + axes: options.axes || body.axes, + area: options.area || body.area, + mass: options.mass || body.mass, + inertia: options.inertia || body.inertia + }); + + // render properties + var defaultFillStyle = (body.isStatic ? '#14151f' : Common.choose(['#f19648', '#f5d259', '#f55a3c', '#063e7b', '#ececd1'])), + defaultStrokeStyle = body.isStatic ? '#555' : '#ccc', + defaultLineWidth = body.isStatic && body.render.fillStyle === null ? 1 : 0; + body.render.fillStyle = body.render.fillStyle || defaultFillStyle; + body.render.strokeStyle = body.render.strokeStyle || defaultStrokeStyle; + body.render.lineWidth = body.render.lineWidth || defaultLineWidth; + body.render.sprite.xOffset += -(body.bounds.min.x - body.position.x) / (body.bounds.max.x - body.bounds.min.x); + body.render.sprite.yOffset += -(body.bounds.min.y - body.position.y) / (body.bounds.max.y - body.bounds.min.y); + }; + + /** + * Given a property and a value (or map of), sets the property(s) on the body, using the appropriate setter functions if they exist. + * Prefer to use the actual setter functions in performance critical situations. + * @method set + * @param {body} body + * @param {} settings A property name (or map of properties and values) to set on the body. + * @param {} value The value to set if `settings` is a single property name. + */ + Body.set = function(body, settings, value) { + var property; + + if (typeof settings === 'string') { + property = settings; + settings = {}; + settings[property] = value; + } + + for (property in settings) { + if (!Object.prototype.hasOwnProperty.call(settings, property)) + continue; + + value = settings[property]; + switch (property) { + + case 'isStatic': + Body.setStatic(body, value); + break; + case 'isSleeping': + Sleeping.set(body, value); + break; + case 'mass': + Body.setMass(body, value); + break; + case 'density': + Body.setDensity(body, value); + break; + case 'inertia': + Body.setInertia(body, value); + break; + case 'vertices': + Body.setVertices(body, value); + break; + case 'position': + Body.setPosition(body, value); + break; + case 'angle': + Body.setAngle(body, value); + break; + case 'velocity': + Body.setVelocity(body, value); + break; + case 'angularVelocity': + Body.setAngularVelocity(body, value); + break; + case 'speed': + Body.setSpeed(body, value); + break; + case 'angularSpeed': + Body.setAngularSpeed(body, value); + break; + case 'parts': + Body.setParts(body, value); + break; + case 'centre': + Body.setCentre(body, value); + break; + default: + body[property] = value; + + } + } + }; + + /** + * Sets the body as static, including isStatic flag and setting mass and inertia to Infinity. + * @method setStatic + * @param {body} body + * @param {bool} isStatic + */ + Body.setStatic = function(body, isStatic) { + for (var i = 0; i < body.parts.length; i++) { + var part = body.parts[i]; + part.isStatic = isStatic; + + if (isStatic) { + part._original = { + restitution: part.restitution, + friction: part.friction, + mass: part.mass, + inertia: part.inertia, + density: part.density, + inverseMass: part.inverseMass, + inverseInertia: part.inverseInertia + }; + + part.restitution = 0; + part.friction = 1; + part.mass = part.inertia = part.density = Infinity; + part.inverseMass = part.inverseInertia = 0; + + part.positionPrev.x = part.position.x; + part.positionPrev.y = part.position.y; + part.anglePrev = part.angle; + part.angularVelocity = 0; + part.speed = 0; + part.angularSpeed = 0; + part.motion = 0; + } else if (part._original) { + part.restitution = part._original.restitution; + part.friction = part._original.friction; + part.mass = part._original.mass; + part.inertia = part._original.inertia; + part.density = part._original.density; + part.inverseMass = part._original.inverseMass; + part.inverseInertia = part._original.inverseInertia; + + part._original = null; + } + } + }; + + /** + * Sets the mass of the body. Inverse mass, density and inertia are automatically updated to reflect the change. + * @method setMass + * @param {body} body + * @param {number} mass + */ + Body.setMass = function(body, mass) { + var moment = body.inertia / (body.mass / 6); + body.inertia = moment * (mass / 6); + body.inverseInertia = 1 / body.inertia; + + body.mass = mass; + body.inverseMass = 1 / body.mass; + body.density = body.mass / body.area; + }; + + /** + * Sets the density of the body. Mass and inertia are automatically updated to reflect the change. + * @method setDensity + * @param {body} body + * @param {number} density + */ + Body.setDensity = function(body, density) { + Body.setMass(body, density * body.area); + body.density = density; + }; + + /** + * Sets the moment of inertia of the body. This is the second moment of area in two dimensions. + * Inverse inertia is automatically updated to reflect the change. Mass is not changed. + * @method setInertia + * @param {body} body + * @param {number} inertia + */ + Body.setInertia = function(body, inertia) { + body.inertia = inertia; + body.inverseInertia = 1 / body.inertia; + }; + + /** + * Sets the body's vertices and updates body properties accordingly, including inertia, area and mass (with respect to `body.density`). + * Vertices will be automatically transformed to be orientated around their centre of mass as the origin. + * They are then automatically translated to world space based on `body.position`. + * + * The `vertices` argument should be passed as an array of `Matter.Vector` points (or a `Matter.Vertices` array). + * Vertices must form a convex hull. Concave vertices must be decomposed into convex parts. + * + * @method setVertices + * @param {body} body + * @param {vector[]} vertices + */ + Body.setVertices = function(body, vertices) { + // change vertices + if (vertices[0].body === body) { + body.vertices = vertices; + } else { + body.vertices = Vertices.create(vertices, body); + } + + // update properties + body.axes = Axes.fromVertices(body.vertices); + body.area = Vertices.area(body.vertices); + Body.setMass(body, body.density * body.area); + + // orient vertices around the centre of mass at origin (0, 0) + var centre = Vertices.centre(body.vertices); + Vertices.translate(body.vertices, centre, -1); + + // update inertia while vertices are at origin (0, 0) + Body.setInertia(body, Body._inertiaScale * Vertices.inertia(body.vertices, body.mass)); + + // update geometry + Vertices.translate(body.vertices, body.position); + Bounds.update(body.bounds, body.vertices, body.velocity); + }; + + /** + * Sets the parts of the `body` and updates mass, inertia and centroid. + * Each part will have its parent set to `body`. + * By default the convex hull will be automatically computed and set on `body`, unless `autoHull` is set to `false.` + * Note that this method will ensure that the first part in `body.parts` will always be the `body`. + * @method setParts + * @param {body} body + * @param {body[]} parts + * @param {bool} [autoHull=true] + */ + Body.setParts = function(body, parts, autoHull) { + var i; + + // add all the parts, ensuring that the first part is always the parent body + parts = parts.slice(0); + body.parts.length = 0; + body.parts.push(body); + body.parent = body; + + for (i = 0; i < parts.length; i++) { + var part = parts[i]; + if (part !== body) { + part.parent = body; + body.parts.push(part); + } + } + + if (body.parts.length === 1) + return; + + autoHull = typeof autoHull !== 'undefined' ? autoHull : true; + + // find the convex hull of all parts to set on the parent body + if (autoHull) { + var vertices = []; + for (i = 0; i < parts.length; i++) { + vertices = vertices.concat(parts[i].vertices); + } + + Vertices.clockwiseSort(vertices); + + var hull = Vertices.hull(vertices), + hullCentre = Vertices.centre(hull); + + Body.setVertices(body, hull); + Vertices.translate(body.vertices, hullCentre); + } + + // sum the properties of all compound parts of the parent body + var total = Body._totalProperties(body); + + body.area = total.area; + body.parent = body; + body.position.x = total.centre.x; + body.position.y = total.centre.y; + body.positionPrev.x = total.centre.x; + body.positionPrev.y = total.centre.y; + + Body.setMass(body, total.mass); + Body.setInertia(body, total.inertia); + Body.setPosition(body, total.centre); + }; + + /** + * Set the centre of mass of the body. + * The `centre` is a vector in world-space unless `relative` is set, in which case it is a translation. + * The centre of mass is the point the body rotates about and can be used to simulate non-uniform density. + * This is equal to moving `body.position` but not the `body.vertices`. + * Invalid if the `centre` falls outside the body's convex hull. + * @method setCentre + * @param {body} body + * @param {vector} centre + * @param {bool} relative + */ + Body.setCentre = function(body, centre, relative) { + if (!relative) { + body.positionPrev.x = centre.x - (body.position.x - body.positionPrev.x); + body.positionPrev.y = centre.y - (body.position.y - body.positionPrev.y); + body.position.x = centre.x; + body.position.y = centre.y; + } else { + body.positionPrev.x += centre.x; + body.positionPrev.y += centre.y; + body.position.x += centre.x; + body.position.y += centre.y; + } + }; + + /** + * Sets the position of the body. By default velocity is unchanged. + * If `updateVelocity` is `true` then velocity is inferred from the change in position. + * @method setPosition + * @param {body} body + * @param {vector} position + * @param {boolean} [updateVelocity=false] + */ + Body.setPosition = function(body, position, updateVelocity) { + var delta = Vector.sub(position, body.position); + + if (updateVelocity) { + body.positionPrev.x = body.position.x; + body.positionPrev.y = body.position.y; + body.velocity.x = delta.x; + body.velocity.y = delta.y; + body.speed = Vector.magnitude(delta); + } else { + body.positionPrev.x += delta.x; + body.positionPrev.y += delta.y; + } + + for (var i = 0; i < body.parts.length; i++) { + var part = body.parts[i]; + part.position.x += delta.x; + part.position.y += delta.y; + Vertices.translate(part.vertices, delta); + Bounds.update(part.bounds, part.vertices, body.velocity); + } + }; + + /** + * Sets the angle of the body. By default angular velocity is unchanged. + * If `updateVelocity` is `true` then angular velocity is inferred from the change in angle. + * @method setAngle + * @param {body} body + * @param {number} angle + * @param {boolean} [updateVelocity=false] + */ + Body.setAngle = function(body, angle, updateVelocity) { + var delta = angle - body.angle; + + if (updateVelocity) { + body.anglePrev = body.angle; + body.angularVelocity = delta; + body.angularSpeed = Math.abs(delta); + } else { + body.anglePrev += delta; + } + + for (var i = 0; i < body.parts.length; i++) { + var part = body.parts[i]; + part.angle += delta; + Vertices.rotate(part.vertices, delta, body.position); + Axes.rotate(part.axes, delta); + Bounds.update(part.bounds, part.vertices, body.velocity); + if (i > 0) { + Vector.rotateAbout(part.position, delta, body.position, part.position); + } + } + }; + + /** + * Sets the current linear velocity of the body. + * Affects body speed. + * @method setVelocity + * @param {body} body + * @param {vector} velocity + */ + Body.setVelocity = function(body, velocity) { + var timeScale = body.deltaTime / Body._baseDelta; + body.positionPrev.x = body.position.x - velocity.x * timeScale; + body.positionPrev.y = body.position.y - velocity.y * timeScale; + body.velocity.x = (body.position.x - body.positionPrev.x) / timeScale; + body.velocity.y = (body.position.y - body.positionPrev.y) / timeScale; + body.speed = Vector.magnitude(body.velocity); + }; + + /** + * Gets the current linear velocity of the body. + * @method getVelocity + * @param {body} body + * @return {vector} velocity + */ + Body.getVelocity = function(body) { + var timeScale = Body._baseDelta / body.deltaTime; + + return { + x: (body.position.x - body.positionPrev.x) * timeScale, + y: (body.position.y - body.positionPrev.y) * timeScale + }; + }; + + /** + * Gets the current linear speed of the body. + * Equivalent to the magnitude of its velocity. + * @method getSpeed + * @param {body} body + * @return {number} speed + */ + Body.getSpeed = function(body) { + return Vector.magnitude(Body.getVelocity(body)); + }; + + /** + * Sets the current linear speed of the body. + * Direction is maintained. Affects body velocity. + * @method setSpeed + * @param {body} body + * @param {number} speed + */ + Body.setSpeed = function(body, speed) { + Body.setVelocity(body, Vector.mult(Vector.normalise(Body.getVelocity(body)), speed)); + }; + + /** + * Sets the current rotational velocity of the body. + * Affects body angular speed. + * @method setAngularVelocity + * @param {body} body + * @param {number} velocity + */ + Body.setAngularVelocity = function(body, velocity) { + var timeScale = body.deltaTime / Body._baseDelta; + body.anglePrev = body.angle - velocity * timeScale; + body.angularVelocity = (body.angle - body.anglePrev) / timeScale; + body.angularSpeed = Math.abs(body.angularVelocity); + }; + + /** + * Gets the current rotational velocity of the body. + * @method getAngularVelocity + * @param {body} body + * @return {number} angular velocity + */ + Body.getAngularVelocity = function(body) { + return (body.angle - body.anglePrev) * Body._baseDelta / body.deltaTime; + }; + + /** + * Gets the current rotational speed of the body. + * Equivalent to the magnitude of its angular velocity. + * @method getAngularSpeed + * @param {body} body + * @return {number} angular speed + */ + Body.getAngularSpeed = function(body) { + return Math.abs(Body.getAngularVelocity(body)); + }; + + /** + * Sets the current rotational speed of the body. + * Direction is maintained. Affects body angular velocity. + * @method setAngularSpeed + * @param {body} body + * @param {number} speed + */ + Body.setAngularSpeed = function(body, speed) { + Body.setAngularVelocity(body, Common.sign(Body.getAngularVelocity(body)) * speed); + }; + + /** + * Moves a body by a given vector relative to its current position. By default velocity is unchanged. + * If `updateVelocity` is `true` then velocity is inferred from the change in position. + * @method translate + * @param {body} body + * @param {vector} translation + * @param {boolean} [updateVelocity=false] + */ + Body.translate = function(body, translation, updateVelocity) { + Body.setPosition(body, Vector.add(body.position, translation), updateVelocity); + }; + + /** + * Rotates a body by a given angle relative to its current angle. By default angular velocity is unchanged. + * If `updateVelocity` is `true` then angular velocity is inferred from the change in angle. + * @method rotate + * @param {body} body + * @param {number} rotation + * @param {vector} [point] + * @param {boolean} [updateVelocity=false] + */ + Body.rotate = function(body, rotation, point, updateVelocity) { + if (!point) { + Body.setAngle(body, body.angle + rotation, updateVelocity); + } else { + var cos = Math.cos(rotation), + sin = Math.sin(rotation), + dx = body.position.x - point.x, + dy = body.position.y - point.y; + + Body.setPosition(body, { + x: point.x + (dx * cos - dy * sin), + y: point.y + (dx * sin + dy * cos) + }, updateVelocity); + + Body.setAngle(body, body.angle + rotation, updateVelocity); + } + }; + + /** + * Scales the body, including updating physical properties (mass, area, axes, inertia), from a world-space point (default is body centre). + * @method scale + * @param {body} body + * @param {number} scaleX + * @param {number} scaleY + * @param {vector} [point] + */ + Body.scale = function(body, scaleX, scaleY, point) { + var totalArea = 0, + totalInertia = 0; + + point = point || body.position; + + for (var i = 0; i < body.parts.length; i++) { + var part = body.parts[i]; + + // scale vertices + Vertices.scale(part.vertices, scaleX, scaleY, point); + + // update properties + part.axes = Axes.fromVertices(part.vertices); + part.area = Vertices.area(part.vertices); + Body.setMass(part, body.density * part.area); + + // update inertia (requires vertices to be at origin) + Vertices.translate(part.vertices, { x: -part.position.x, y: -part.position.y }); + Body.setInertia(part, Body._inertiaScale * Vertices.inertia(part.vertices, part.mass)); + Vertices.translate(part.vertices, { x: part.position.x, y: part.position.y }); + + if (i > 0) { + totalArea += part.area; + totalInertia += part.inertia; + } + + // scale position + part.position.x = point.x + (part.position.x - point.x) * scaleX; + part.position.y = point.y + (part.position.y - point.y) * scaleY; + + // update bounds + Bounds.update(part.bounds, part.vertices, body.velocity); + } + + // handle parent body + if (body.parts.length > 1) { + body.area = totalArea; + + if (!body.isStatic) { + Body.setMass(body, body.density * totalArea); + Body.setInertia(body, totalInertia); + } + } + + // handle circles + if (body.circleRadius) { + if (scaleX === scaleY) { + body.circleRadius *= scaleX; + } else { + // body is no longer a circle + body.circleRadius = null; + } + } + }; + + /** + * Performs an update by integrating the equations of motion on the `body`. + * This is applied every update by `Matter.Engine` automatically. + * @method update + * @param {body} body + * @param {number} [deltaTime=16.666] + */ + Body.update = function(body, deltaTime) { + deltaTime = (typeof deltaTime !== 'undefined' ? deltaTime : (1000 / 60)) * body.timeScale; + + var deltaTimeSquared = deltaTime * deltaTime, + correction = Body._timeCorrection ? deltaTime / (body.deltaTime || deltaTime) : 1; + + // from the previous step + var frictionAir = 1 - body.frictionAir * (deltaTime / Common._baseDelta), + velocityPrevX = (body.position.x - body.positionPrev.x) * correction, + velocityPrevY = (body.position.y - body.positionPrev.y) * correction; + + // update velocity with Verlet integration + body.velocity.x = (velocityPrevX * frictionAir) + (body.force.x / body.mass) * deltaTimeSquared; + body.velocity.y = (velocityPrevY * frictionAir) + (body.force.y / body.mass) * deltaTimeSquared; + + body.positionPrev.x = body.position.x; + body.positionPrev.y = body.position.y; + body.position.x += body.velocity.x; + body.position.y += body.velocity.y; + body.deltaTime = deltaTime; + + // update angular velocity with Verlet integration + body.angularVelocity = ((body.angle - body.anglePrev) * frictionAir * correction) + (body.torque / body.inertia) * deltaTimeSquared; + body.anglePrev = body.angle; + body.angle += body.angularVelocity; + + // transform the body geometry + for (var i = 0; i < body.parts.length; i++) { + var part = body.parts[i]; + + Vertices.translate(part.vertices, body.velocity); + + if (i > 0) { + part.position.x += body.velocity.x; + part.position.y += body.velocity.y; + } + + if (body.angularVelocity !== 0) { + Vertices.rotate(part.vertices, body.angularVelocity, body.position); + Axes.rotate(part.axes, body.angularVelocity); + if (i > 0) { + Vector.rotateAbout(part.position, body.angularVelocity, body.position, part.position); + } + } + + Bounds.update(part.bounds, part.vertices, body.velocity); + } + }; + + /** + * Updates properties `body.velocity`, `body.speed`, `body.angularVelocity` and `body.angularSpeed` which are normalised in relation to `Body._baseDelta`. + * @method updateVelocities + * @param {body} body + */ + Body.updateVelocities = function(body) { + var timeScale = Body._baseDelta / body.deltaTime, + bodyVelocity = body.velocity; + + bodyVelocity.x = (body.position.x - body.positionPrev.x) * timeScale; + bodyVelocity.y = (body.position.y - body.positionPrev.y) * timeScale; + body.speed = Math.sqrt((bodyVelocity.x * bodyVelocity.x) + (bodyVelocity.y * bodyVelocity.y)); + + body.angularVelocity = (body.angle - body.anglePrev) * timeScale; + body.angularSpeed = Math.abs(body.angularVelocity); + }; + + /** + * Applies the `force` to the `body` from the force origin `position` in world-space, over a single timestep, including applying any resulting angular torque. + * + * Forces are useful for effects like gravity, wind or rocket thrust, but can be difficult in practice when precise control is needed. In these cases see `Body.setVelocity` and `Body.setPosition` as an alternative. + * + * The force from this function is only applied once for the duration of a single timestep, in other words the duration depends directly on the current engine update `delta` and the rate of calls to this function. + * + * Therefore to account for time, you should apply the force constantly over as many engine updates as equivalent to the intended duration. + * + * If all or part of the force duration is some fraction of a timestep, first multiply the force by `duration / timestep`. + * + * The force origin `position` in world-space must also be specified. Passing `body.position` will result in zero angular effect as the force origin would be at the centre of mass. + * + * The `body` will take time to accelerate under a force, the resulting effect depends on duration of the force, the body mass and other forces on the body including friction combined. + * @method applyForce + * @param {body} body + * @param {vector} position The force origin in world-space. Pass `body.position` to avoid angular torque. + * @param {vector} force + */ + Body.applyForce = function(body, position, force) { + var offset = { x: position.x - body.position.x, y: position.y - body.position.y }; + body.force.x += force.x; + body.force.y += force.y; + body.torque += offset.x * force.y - offset.y * force.x; + }; + + /** + * Returns the sums of the properties of all compound parts of the parent body. + * @method _totalProperties + * @private + * @param {body} body + * @return {} + */ + Body._totalProperties = function(body) { + // from equations at: + // https://ecourses.ou.edu/cgi-bin/ebook.cgi?doc=&topic=st&chap_sec=07.2&page=theory + // http://output.to/sideway/default.asp?qno=121100087 + + var properties = { + mass: 0, + area: 0, + inertia: 0, + centre: { x: 0, y: 0 } + }; + + // sum the properties of all compound parts of the parent body + for (var i = body.parts.length === 1 ? 0 : 1; i < body.parts.length; i++) { + var part = body.parts[i], + mass = part.mass !== Infinity ? part.mass : 1; + + properties.mass += mass; + properties.area += part.area; + properties.inertia += part.inertia; + properties.centre = Vector.add(properties.centre, Vector.mult(part.position, mass)); + } + + properties.centre = Vector.div(properties.centre, properties.mass); + + return properties; + }; + + /* + * + * Events Documentation + * + */ + + /** + * Fired when a body starts sleeping (where `this` is the body). + * + * @event sleepStart + * @this {body} The body that has started sleeping + * @param {} event An event object + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired when a body ends sleeping (where `this` is the body). + * + * @event sleepEnd + * @this {body} The body that has ended sleeping + * @param {} event An event object + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /* + * + * Properties Documentation + * + */ + + /** + * An integer `Number` uniquely identifying number generated in `Body.create` by `Common.nextId`. + * + * @property id + * @type number + */ + + /** + * _Read only_. Set by `Body.create`. + * + * A `String` denoting the type of object. + * + * @readOnly + * @property type + * @type string + * @default "body" + */ + + /** + * An arbitrary `String` name to help the user identify and manage bodies. + * + * @property label + * @type string + * @default "Body" + */ + + /** + * _Read only_. Use `Body.setParts` to set. + * + * An array of bodies that make up this body. + * The first body in the array must always be a self reference to the current body instance. + * All bodies in the `parts` array together form a single rigid compound body. + * Parts are allowed to overlap, have gaps or holes or even form concave bodies. + * Parts themselves should never be added to a `World`, only the parent body should be. + * Use `Body.setParts` when setting parts to ensure correct updates of all properties. + * + * @readOnly + * @property parts + * @type body[] + */ + + /** + * An object reserved for storing plugin-specific properties. + * + * @property plugin + * @type {} + */ + + /** + * _Read only_. Updated by `Body.setParts`. + * + * A reference to the body that this is a part of. See `body.parts`. + * This is a self reference if the body is not a part of another body. + * + * @readOnly + * @property parent + * @type body + */ + + /** + * A `Number` specifying the angle of the body, in radians. + * + * @property angle + * @type number + * @default 0 + */ + + /** + * _Read only_. Use `Body.setVertices` or `Body.setParts` to set. See also `Bodies.fromVertices`. + * + * An array of `Vector` objects that specify the convex hull of the rigid body. + * These should be provided about the origin `(0, 0)`. E.g. + * + * `[{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]` + * + * Vertices must always be convex, in clockwise order and must not contain any duplicate points. + * + * Concave vertices should be decomposed into convex `parts`, see `Bodies.fromVertices` and `Body.setParts`. + * + * When set the vertices are translated such that `body.position` is at the centre of mass. + * Many other body properties are automatically calculated from these vertices when set including `density`, `area` and `inertia`. + * + * The module `Matter.Vertices` contains useful methods for working with vertices. + * + * @readOnly + * @property vertices + * @type vector[] + */ + + /** + * _Read only_. Use `Body.setPosition` to set. + * + * A `Vector` that specifies the current world-space position of the body. + * + * @readOnly + * @property position + * @type vector + * @default { x: 0, y: 0 } + */ + + /** + * A `Vector` that accumulates the total force applied to the body for a single update. + * Force is zeroed after every `Engine.update`, so constant forces should be applied for every update they are needed. See also `Body.applyForce`. + * + * @property force + * @type vector + * @default { x: 0, y: 0 } + */ + + /** + * A `Number` that accumulates the total torque (turning force) applied to the body for a single update. See also `Body.applyForce`. + * Torque is zeroed after every `Engine.update`, so constant torques should be applied for every update they are needed. + * + * Torques result in angular acceleration on every update, which depends on body inertia and the engine update delta. + * + * @property torque + * @type number + * @default 0 + */ + + /** + * _Read only_. Use `Body.setSpeed` to set. + * + * See `Body.getSpeed` for details. + * + * Equivalent to the magnitude of `body.velocity` (always positive). + * + * @readOnly + * @property speed + * @type number + * @default 0 + */ + + /** + * _Read only_. Use `Body.setVelocity` to set. + * + * See `Body.getVelocity` for details. + * + * Equivalent to the magnitude of `body.angularVelocity` (always positive). + * + * @readOnly + * @property velocity + * @type vector + * @default { x: 0, y: 0 } + */ + + /** + * _Read only_. Use `Body.setAngularSpeed` to set. + * + * See `Body.getAngularSpeed` for details. + * + * + * @readOnly + * @property angularSpeed + * @type number + * @default 0 + */ + + /** + * _Read only_. Use `Body.setAngularVelocity` to set. + * + * See `Body.getAngularVelocity` for details. + * + * + * @readOnly + * @property angularVelocity + * @type number + * @default 0 + */ + + /** + * _Read only_. Use `Body.setStatic` to set. + * + * A flag that indicates whether a body is considered static. A static body can never change position or angle and is completely fixed. + * + * @readOnly + * @property isStatic + * @type boolean + * @default false + */ + + /** + * A flag that indicates whether a body is a sensor. Sensor triggers collision events, but doesn't react with colliding body physically. + * + * @property isSensor + * @type boolean + * @default false + */ + + /** + * _Read only_. Use `Sleeping.set` to set. + * + * A flag that indicates whether the body is considered sleeping. A sleeping body acts similar to a static body, except it is only temporary and can be awoken. + * + * @readOnly + * @property isSleeping + * @type boolean + * @default false + */ + + /** + * _Read only_. Calculated during engine update only when sleeping is enabled. + * + * A `Number` that loosely measures the amount of movement a body currently has. + * + * Derived from `body.speed^2 + body.angularSpeed^2`. See `Sleeping.update`. + * + * @readOnly + * @property motion + * @type number + * @default 0 + */ + + /** + * A `Number` that defines the length of time during which this body must have near-zero velocity before it is set as sleeping by the `Matter.Sleeping` module (if sleeping is enabled by the engine). + * + * @property sleepThreshold + * @type number + * @default 60 + */ + + /** + * _Read only_. Use `Body.setDensity` to set. + * + * A `Number` that defines the density of the body (mass per unit area). + * + * Mass will also be updated when set. + * + * @readOnly + * @property density + * @type number + * @default 0.001 + */ + + /** + * _Read only_. Use `Body.setMass` to set. + * + * A `Number` that defines the mass of the body. + * + * Density will also be updated when set. + * + * @readOnly + * @property mass + * @type number + */ + + /** + * _Read only_. Use `Body.setMass` to set. + * + * A `Number` that defines the inverse mass of the body (`1 / mass`). + * + * @readOnly + * @property inverseMass + * @type number + */ + + /** + * _Read only_. Automatically calculated when vertices, mass or density are set or set through `Body.setInertia`. + * + * A `Number` that defines the moment of inertia of the body. This is the second moment of area in two dimensions. + * + * Can be manually set to `Infinity` to prevent rotation of the body. See `Body.setInertia`. + * + * @readOnly + * @property inertia + * @type number + */ + + /** + * _Read only_. Automatically calculated when vertices, mass or density are set or calculated by `Body.setInertia`. + * + * A `Number` that defines the inverse moment of inertia of the body (`1 / inertia`). + * + * @readOnly + * @property inverseInertia + * @type number + */ + + /** + * A `Number` that defines the restitution (elasticity) of the body. The value is always positive and is in the range `(0, 1)`. + * A value of `0` means collisions may be perfectly inelastic and no bouncing may occur. + * A value of `0.8` means the body may bounce back with approximately 80% of its kinetic energy. + * Note that collision response is based on _pairs_ of bodies, and that `restitution` values are _combined_ with the following formula: + * + * `Math.max(bodyA.restitution, bodyB.restitution)` + * + * @property restitution + * @type number + * @default 0 + */ + + /** + * A `Number` that defines the friction of the body. The value is always positive and is in the range `(0, 1)`. + * A value of `0` means that the body may slide indefinitely. + * A value of `1` means the body may come to a stop almost instantly after a force is applied. + * + * The effects of the value may be non-linear. + * High values may be unstable depending on the body. + * The engine uses a Coulomb friction model including static and kinetic friction. + * Note that collision response is based on _pairs_ of bodies, and that `friction` values are _combined_ with the following formula: + * + * `Math.min(bodyA.friction, bodyB.friction)` + * + * @property friction + * @type number + * @default 0.1 + */ + + /** + * A `Number` that defines the static friction of the body (in the Coulomb friction model). + * A value of `0` means the body will never 'stick' when it is nearly stationary and only dynamic `friction` is used. + * The higher the value (e.g. `10`), the more force it will take to initially get the body moving when nearly stationary. + * This value is multiplied with the `friction` property to make it easier to change `friction` and maintain an appropriate amount of static friction. + * + * @property frictionStatic + * @type number + * @default 0.5 + */ + + /** + * A `Number` that defines the air friction of the body (air resistance). + * A value of `0` means the body will never slow as it moves through space. + * The higher the value, the faster a body slows when moving through space. + * The effects of the value are non-linear. + * + * @property frictionAir + * @type number + * @default 0.01 + */ + + /** + * An `Object` that specifies the collision filtering properties of this body. + * + * Collisions between two bodies will obey the following rules: + * - If the two bodies have the same non-zero value of `collisionFilter.group`, + * they will always collide if the value is positive, and they will never collide + * if the value is negative. + * - If the two bodies have different values of `collisionFilter.group` or if one + * (or both) of the bodies has a value of 0, then the category/mask rules apply as follows: + * + * Each body belongs to a collision category, given by `collisionFilter.category`. This + * value is used as a bit field and the category should have only one bit set, meaning that + * the value of this property is a power of two in the range [1, 2^31]. Thus, there are 32 + * different collision categories available. + * + * Each body also defines a collision bitmask, given by `collisionFilter.mask` which specifies + * the categories it collides with (the value is the bitwise AND value of all these categories). + * + * Using the category/mask rules, two bodies `A` and `B` collide if each includes the other's + * category in its mask, i.e. `(categoryA & maskB) !== 0` and `(categoryB & maskA) !== 0` + * are both true. + * + * @property collisionFilter + * @type object + */ + + /** + * An Integer `Number`, that specifies the collision group this body belongs to. + * See `body.collisionFilter` for more information. + * + * @property collisionFilter.group + * @type object + * @default 0 + */ + + /** + * A bit field that specifies the collision category this body belongs to. + * The category value should have only one bit set, for example `0x0001`. + * This means there are up to 32 unique collision categories available. + * See `body.collisionFilter` for more information. + * + * @property collisionFilter.category + * @type object + * @default 1 + */ + + /** + * A bit mask that specifies the collision categories this body may collide with. + * See `body.collisionFilter` for more information. + * + * @property collisionFilter.mask + * @type object + * @default -1 + */ + + /** + * A `Number` that specifies a thin boundary around the body where it is allowed to slightly sink into other bodies. + * + * This is required for proper collision response, including friction and restitution effects. + * + * The default should generally suffice in most cases. You may need to decrease this value for very small bodies that are nearing the default value in scale. + * + * @property slop + * @type number + * @default 0.05 + */ + + /** + * A `Number` that specifies per-body time scaling. + * + * @property timeScale + * @type number + * @default 1 + */ + + /** + * _Read only_. Updated during engine update. + * + * A `Number` that records the last delta time value used to update this body. + * Used to calculate speed and velocity. + * + * @readOnly + * @property deltaTime + * @type number + * @default 1000 / 60 + */ + + /** + * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`. + * + * @property render + * @type object + */ + + /** + * A flag that indicates if the body should be rendered. + * + * @property render.visible + * @type boolean + * @default true + */ + + /** + * Sets the opacity to use when rendering. + * + * @property render.opacity + * @type number + * @default 1 + */ + + /** + * An `Object` that defines the sprite properties to use when rendering, if any. + * + * @property render.sprite + * @type object + */ + + /** + * An `String` that defines the path to the image to use as the sprite texture, if any. + * + * @property render.sprite.texture + * @type string + */ + + /** + * A `Number` that defines the scaling in the x-axis for the sprite, if any. + * + * @property render.sprite.xScale + * @type number + * @default 1 + */ + + /** + * A `Number` that defines the scaling in the y-axis for the sprite, if any. + * + * @property render.sprite.yScale + * @type number + * @default 1 + */ + + /** + * A `Number` that defines the offset in the x-axis for the sprite (normalised by texture width). + * + * @property render.sprite.xOffset + * @type number + * @default 0 + */ + + /** + * A `Number` that defines the offset in the y-axis for the sprite (normalised by texture height). + * + * @property render.sprite.yOffset + * @type number + * @default 0 + */ + + /** + * A `Number` that defines the line width to use when rendering the body outline (if a sprite is not defined). + * A value of `0` means no outline will be rendered. + * + * @property render.lineWidth + * @type number + * @default 0 + */ + + /** + * A `String` that defines the fill style to use when rendering the body (if a sprite is not defined). + * It is the same as when using a canvas, so it accepts CSS style property values. + * + * @property render.fillStyle + * @type string + * @default a random colour + */ + + /** + * A `String` that defines the stroke style to use when rendering the body outline (if a sprite is not defined). + * It is the same as when using a canvas, so it accepts CSS style property values. + * + * @property render.strokeStyle + * @type string + * @default a random colour + */ + + /** + * _Read only_. Calculated automatically when vertices are set. + * + * An array of unique axis vectors (edge normals) used for collision detection. + * These are automatically calculated when vertices are set. + * They are constantly updated by `Body.update` during the simulation. + * + * @readOnly + * @property axes + * @type vector[] + */ + + /** + * _Read only_. Calculated automatically when vertices are set. + * + * A `Number` that measures the area of the body's convex hull. + * + * @readOnly + * @property area + * @type string + * @default + */ + + /** + * A `Bounds` object that defines the AABB region for the body. + * It is automatically calculated when vertices are set and constantly updated by `Body.update` during simulation. + * + * @property bounds + * @type bounds + */ + +})(); + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Events` module contains methods to fire and listen to events on other objects. +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Events +*/ + +var Events = {}; + +module.exports = Events; + +var Common = __webpack_require__(0); + +(function() { + + /** + * Subscribes a callback function to the given object's `eventName`. + * @method on + * @param {} object + * @param {string} eventNames + * @param {function} callback + */ + Events.on = function(object, eventNames, callback) { + var names = eventNames.split(' '), + name; + + for (var i = 0; i < names.length; i++) { + name = names[i]; + object.events = object.events || {}; + object.events[name] = object.events[name] || []; + object.events[name].push(callback); + } + + return callback; + }; + + /** + * Removes the given event callback. If no callback, clears all callbacks in `eventNames`. If no `eventNames`, clears all events. + * @method off + * @param {} object + * @param {string} eventNames + * @param {function} callback + */ + Events.off = function(object, eventNames, callback) { + if (!eventNames) { + object.events = {}; + return; + } + + // handle Events.off(object, callback) + if (typeof eventNames === 'function') { + callback = eventNames; + eventNames = Common.keys(object.events).join(' '); + } + + var names = eventNames.split(' '); + + for (var i = 0; i < names.length; i++) { + var callbacks = object.events[names[i]], + newCallbacks = []; + + if (callback && callbacks) { + for (var j = 0; j < callbacks.length; j++) { + if (callbacks[j] !== callback) + newCallbacks.push(callbacks[j]); + } + } + + object.events[names[i]] = newCallbacks; + } + }; + + /** + * Fires all the callbacks subscribed to the given object's `eventName`, in the order they subscribed, if any. + * @method trigger + * @param {} object + * @param {string} eventNames + * @param {} event + */ + Events.trigger = function(object, eventNames, event) { + var names, + name, + callbacks, + eventClone; + + var events = object.events; + + if (events && Common.keys(events).length > 0) { + if (!event) + event = {}; + + names = eventNames.split(' '); + + for (var i = 0; i < names.length; i++) { + name = names[i]; + callbacks = events[name]; + + if (callbacks) { + eventClone = Common.clone(event, false); + eventClone.name = name; + eventClone.source = object; + + for (var j = 0; j < callbacks.length; j++) { + callbacks[j].apply(object, [eventClone]); + } + } + } + } + }; + +})(); + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* A composite is a collection of `Matter.Body`, `Matter.Constraint` and other `Matter.Composite` objects. +* +* They are a container that can represent complex objects made of multiple parts, even if they are not physically connected. +* A composite could contain anything from a single body all the way up to a whole world. +* +* When making any changes to composites, use the included functions rather than changing their properties directly. +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Composite +*/ + +var Composite = {}; + +module.exports = Composite; + +var Events = __webpack_require__(5); +var Common = __webpack_require__(0); +var Bounds = __webpack_require__(1); +var Body = __webpack_require__(4); + +(function() { + + /** + * Creates a new composite. The options parameter is an object that specifies any properties you wish to override the defaults. + * See the properites section below for detailed information on what you can pass via the `options` object. + * @method create + * @param {} [options] + * @return {composite} A new composite + */ + Composite.create = function(options) { + return Common.extend({ + id: Common.nextId(), + type: 'composite', + parent: null, + isModified: false, + bodies: [], + constraints: [], + composites: [], + label: 'Composite', + plugin: {}, + cache: { + allBodies: null, + allConstraints: null, + allComposites: null + } + }, options); + }; + + /** + * Sets the composite's `isModified` flag. + * If `updateParents` is true, all parents will be set (default: false). + * If `updateChildren` is true, all children will be set (default: false). + * @private + * @method setModified + * @param {composite} composite + * @param {boolean} isModified + * @param {boolean} [updateParents=false] + * @param {boolean} [updateChildren=false] + */ + Composite.setModified = function(composite, isModified, updateParents, updateChildren) { + composite.isModified = isModified; + + if (isModified && composite.cache) { + composite.cache.allBodies = null; + composite.cache.allConstraints = null; + composite.cache.allComposites = null; + } + + if (updateParents && composite.parent) { + Composite.setModified(composite.parent, isModified, updateParents, updateChildren); + } + + if (updateChildren) { + for (var i = 0; i < composite.composites.length; i++) { + var childComposite = composite.composites[i]; + Composite.setModified(childComposite, isModified, updateParents, updateChildren); + } + } + }; + + /** + * Generic single or multi-add function. Adds a single or an array of body(s), constraint(s) or composite(s) to the given composite. + * Triggers `beforeAdd` and `afterAdd` events on the `composite`. + * @method add + * @param {composite} composite + * @param {object|array} object A single or an array of body(s), constraint(s) or composite(s) + * @return {composite} The original composite with the objects added + */ + Composite.add = function(composite, object) { + var objects = [].concat(object); + + Events.trigger(composite, 'beforeAdd', { object: object }); + + for (var i = 0; i < objects.length; i++) { + var obj = objects[i]; + + switch (obj.type) { + + case 'body': + // skip adding compound parts + if (obj.parent !== obj) { + Common.warn('Composite.add: skipped adding a compound body part (you must add its parent instead)'); + break; + } + + Composite.addBody(composite, obj); + break; + case 'constraint': + Composite.addConstraint(composite, obj); + break; + case 'composite': + Composite.addComposite(composite, obj); + break; + case 'mouseConstraint': + Composite.addConstraint(composite, obj.constraint); + break; + + } + } + + Events.trigger(composite, 'afterAdd', { object: object }); + + return composite; + }; + + /** + * Generic remove function. Removes one or many body(s), constraint(s) or a composite(s) to the given composite. + * Optionally searching its children recursively. + * Triggers `beforeRemove` and `afterRemove` events on the `composite`. + * @method remove + * @param {composite} composite + * @param {object|array} object + * @param {boolean} [deep=false] + * @return {composite} The original composite with the objects removed + */ + Composite.remove = function(composite, object, deep) { + var objects = [].concat(object); + + Events.trigger(composite, 'beforeRemove', { object: object }); + + for (var i = 0; i < objects.length; i++) { + var obj = objects[i]; + + switch (obj.type) { + + case 'body': + Composite.removeBody(composite, obj, deep); + break; + case 'constraint': + Composite.removeConstraint(composite, obj, deep); + break; + case 'composite': + Composite.removeComposite(composite, obj, deep); + break; + case 'mouseConstraint': + Composite.removeConstraint(composite, obj.constraint); + break; + + } + } + + Events.trigger(composite, 'afterRemove', { object: object }); + + return composite; + }; + + /** + * Adds a composite to the given composite. + * @private + * @method addComposite + * @param {composite} compositeA + * @param {composite} compositeB + * @return {composite} The original compositeA with the objects from compositeB added + */ + Composite.addComposite = function(compositeA, compositeB) { + compositeA.composites.push(compositeB); + compositeB.parent = compositeA; + Composite.setModified(compositeA, true, true, false); + return compositeA; + }; + + /** + * Removes a composite from the given composite, and optionally searching its children recursively. + * @private + * @method removeComposite + * @param {composite} compositeA + * @param {composite} compositeB + * @param {boolean} [deep=false] + * @return {composite} The original compositeA with the composite removed + */ + Composite.removeComposite = function(compositeA, compositeB, deep) { + var position = Common.indexOf(compositeA.composites, compositeB); + if (position !== -1) { + Composite.removeCompositeAt(compositeA, position); + } + + if (deep) { + for (var i = 0; i < compositeA.composites.length; i++){ + Composite.removeComposite(compositeA.composites[i], compositeB, true); + } + } + + return compositeA; + }; + + /** + * Removes a composite from the given composite. + * @private + * @method removeCompositeAt + * @param {composite} composite + * @param {number} position + * @return {composite} The original composite with the composite removed + */ + Composite.removeCompositeAt = function(composite, position) { + composite.composites.splice(position, 1); + Composite.setModified(composite, true, true, false); + return composite; + }; + + /** + * Adds a body to the given composite. + * @private + * @method addBody + * @param {composite} composite + * @param {body} body + * @return {composite} The original composite with the body added + */ + Composite.addBody = function(composite, body) { + composite.bodies.push(body); + Composite.setModified(composite, true, true, false); + return composite; + }; + + /** + * Removes a body from the given composite, and optionally searching its children recursively. + * @private + * @method removeBody + * @param {composite} composite + * @param {body} body + * @param {boolean} [deep=false] + * @return {composite} The original composite with the body removed + */ + Composite.removeBody = function(composite, body, deep) { + var position = Common.indexOf(composite.bodies, body); + if (position !== -1) { + Composite.removeBodyAt(composite, position); + } + + if (deep) { + for (var i = 0; i < composite.composites.length; i++){ + Composite.removeBody(composite.composites[i], body, true); + } + } + + return composite; + }; + + /** + * Removes a body from the given composite. + * @private + * @method removeBodyAt + * @param {composite} composite + * @param {number} position + * @return {composite} The original composite with the body removed + */ + Composite.removeBodyAt = function(composite, position) { + composite.bodies.splice(position, 1); + Composite.setModified(composite, true, true, false); + return composite; + }; + + /** + * Adds a constraint to the given composite. + * @private + * @method addConstraint + * @param {composite} composite + * @param {constraint} constraint + * @return {composite} The original composite with the constraint added + */ + Composite.addConstraint = function(composite, constraint) { + composite.constraints.push(constraint); + Composite.setModified(composite, true, true, false); + return composite; + }; + + /** + * Removes a constraint from the given composite, and optionally searching its children recursively. + * @private + * @method removeConstraint + * @param {composite} composite + * @param {constraint} constraint + * @param {boolean} [deep=false] + * @return {composite} The original composite with the constraint removed + */ + Composite.removeConstraint = function(composite, constraint, deep) { + var position = Common.indexOf(composite.constraints, constraint); + if (position !== -1) { + Composite.removeConstraintAt(composite, position); + } + + if (deep) { + for (var i = 0; i < composite.composites.length; i++){ + Composite.removeConstraint(composite.composites[i], constraint, true); + } + } + + return composite; + }; + + /** + * Removes a body from the given composite. + * @private + * @method removeConstraintAt + * @param {composite} composite + * @param {number} position + * @return {composite} The original composite with the constraint removed + */ + Composite.removeConstraintAt = function(composite, position) { + composite.constraints.splice(position, 1); + Composite.setModified(composite, true, true, false); + return composite; + }; + + /** + * Removes all bodies, constraints and composites from the given composite. + * Optionally clearing its children recursively. + * @method clear + * @param {composite} composite + * @param {boolean} keepStatic + * @param {boolean} [deep=false] + */ + Composite.clear = function(composite, keepStatic, deep) { + if (deep) { + for (var i = 0; i < composite.composites.length; i++){ + Composite.clear(composite.composites[i], keepStatic, true); + } + } + + if (keepStatic) { + composite.bodies = composite.bodies.filter(function(body) { return body.isStatic; }); + } else { + composite.bodies.length = 0; + } + + composite.constraints.length = 0; + composite.composites.length = 0; + + Composite.setModified(composite, true, true, false); + + return composite; + }; + + /** + * Returns all bodies in the given composite, including all bodies in its children, recursively. + * @method allBodies + * @param {composite} composite + * @return {body[]} All the bodies + */ + Composite.allBodies = function(composite) { + if (composite.cache && composite.cache.allBodies) { + return composite.cache.allBodies; + } + + var bodies = [].concat(composite.bodies); + + for (var i = 0; i < composite.composites.length; i++) + bodies = bodies.concat(Composite.allBodies(composite.composites[i])); + + if (composite.cache) { + composite.cache.allBodies = bodies; + } + + return bodies; + }; + + /** + * Returns all constraints in the given composite, including all constraints in its children, recursively. + * @method allConstraints + * @param {composite} composite + * @return {constraint[]} All the constraints + */ + Composite.allConstraints = function(composite) { + if (composite.cache && composite.cache.allConstraints) { + return composite.cache.allConstraints; + } + + var constraints = [].concat(composite.constraints); + + for (var i = 0; i < composite.composites.length; i++) + constraints = constraints.concat(Composite.allConstraints(composite.composites[i])); + + if (composite.cache) { + composite.cache.allConstraints = constraints; + } + + return constraints; + }; + + /** + * Returns all composites in the given composite, including all composites in its children, recursively. + * @method allComposites + * @param {composite} composite + * @return {composite[]} All the composites + */ + Composite.allComposites = function(composite) { + if (composite.cache && composite.cache.allComposites) { + return composite.cache.allComposites; + } + + var composites = [].concat(composite.composites); + + for (var i = 0; i < composite.composites.length; i++) + composites = composites.concat(Composite.allComposites(composite.composites[i])); + + if (composite.cache) { + composite.cache.allComposites = composites; + } + + return composites; + }; + + /** + * Searches the composite recursively for an object matching the type and id supplied, null if not found. + * @method get + * @param {composite} composite + * @param {number} id + * @param {string} type + * @return {object} The requested object, if found + */ + Composite.get = function(composite, id, type) { + var objects, + object; + + switch (type) { + case 'body': + objects = Composite.allBodies(composite); + break; + case 'constraint': + objects = Composite.allConstraints(composite); + break; + case 'composite': + objects = Composite.allComposites(composite).concat(composite); + break; + } + + if (!objects) + return null; + + object = objects.filter(function(object) { + return object.id.toString() === id.toString(); + }); + + return object.length === 0 ? null : object[0]; + }; + + /** + * Moves the given object(s) from compositeA to compositeB (equal to a remove followed by an add). + * @method move + * @param {compositeA} compositeA + * @param {object[]} objects + * @param {compositeB} compositeB + * @return {composite} Returns compositeA + */ + Composite.move = function(compositeA, objects, compositeB) { + Composite.remove(compositeA, objects); + Composite.add(compositeB, objects); + return compositeA; + }; + + /** + * Assigns new ids for all objects in the composite, recursively. + * @method rebase + * @param {composite} composite + * @return {composite} Returns composite + */ + Composite.rebase = function(composite) { + var objects = Composite.allBodies(composite) + .concat(Composite.allConstraints(composite)) + .concat(Composite.allComposites(composite)); + + for (var i = 0; i < objects.length; i++) { + objects[i].id = Common.nextId(); + } + + return composite; + }; + + /** + * Translates all children in the composite by a given vector relative to their current positions, + * without imparting any velocity. + * @method translate + * @param {composite} composite + * @param {vector} translation + * @param {bool} [recursive=true] + */ + Composite.translate = function(composite, translation, recursive) { + var bodies = recursive ? Composite.allBodies(composite) : composite.bodies; + + for (var i = 0; i < bodies.length; i++) { + Body.translate(bodies[i], translation); + } + + return composite; + }; + + /** + * Rotates all children in the composite by a given angle about the given point, without imparting any angular velocity. + * @method rotate + * @param {composite} composite + * @param {number} rotation + * @param {vector} point + * @param {bool} [recursive=true] + */ + Composite.rotate = function(composite, rotation, point, recursive) { + var cos = Math.cos(rotation), + sin = Math.sin(rotation), + bodies = recursive ? Composite.allBodies(composite) : composite.bodies; + + for (var i = 0; i < bodies.length; i++) { + var body = bodies[i], + dx = body.position.x - point.x, + dy = body.position.y - point.y; + + Body.setPosition(body, { + x: point.x + (dx * cos - dy * sin), + y: point.y + (dx * sin + dy * cos) + }); + + Body.rotate(body, rotation); + } + + return composite; + }; + + /** + * Scales all children in the composite, including updating physical properties (mass, area, axes, inertia), from a world-space point. + * @method scale + * @param {composite} composite + * @param {number} scaleX + * @param {number} scaleY + * @param {vector} point + * @param {bool} [recursive=true] + */ + Composite.scale = function(composite, scaleX, scaleY, point, recursive) { + var bodies = recursive ? Composite.allBodies(composite) : composite.bodies; + + for (var i = 0; i < bodies.length; i++) { + var body = bodies[i], + dx = body.position.x - point.x, + dy = body.position.y - point.y; + + Body.setPosition(body, { + x: point.x + dx * scaleX, + y: point.y + dy * scaleY + }); + + Body.scale(body, scaleX, scaleY); + } + + return composite; + }; + + /** + * Returns the union of the bounds of all of the composite's bodies. + * @method bounds + * @param {composite} composite The composite. + * @returns {bounds} The composite bounds. + */ + Composite.bounds = function(composite) { + var bodies = Composite.allBodies(composite), + vertices = []; + + for (var i = 0; i < bodies.length; i += 1) { + var body = bodies[i]; + vertices.push(body.bounds.min, body.bounds.max); + } + + return Bounds.create(vertices); + }; + + /* + * + * Events Documentation + * + */ + + /** + * Fired when a call to `Composite.add` is made, before objects have been added. + * + * @event beforeAdd + * @param {} event An event object + * @param {} event.object The object(s) to be added (may be a single body, constraint, composite or a mixed array of these) + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired when a call to `Composite.add` is made, after objects have been added. + * + * @event afterAdd + * @param {} event An event object + * @param {} event.object The object(s) that have been added (may be a single body, constraint, composite or a mixed array of these) + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired when a call to `Composite.remove` is made, before objects have been removed. + * + * @event beforeRemove + * @param {} event An event object + * @param {} event.object The object(s) to be removed (may be a single body, constraint, composite or a mixed array of these) + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired when a call to `Composite.remove` is made, after objects have been removed. + * + * @event afterRemove + * @param {} event An event object + * @param {} event.object The object(s) that have been removed (may be a single body, constraint, composite or a mixed array of these) + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /* + * + * Properties Documentation + * + */ + + /** + * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`. + * + * @property id + * @type number + */ + + /** + * A `String` denoting the type of object. + * + * @property type + * @type string + * @default "composite" + * @readOnly + */ + + /** + * An arbitrary `String` name to help the user identify and manage composites. + * + * @property label + * @type string + * @default "Composite" + */ + + /** + * A flag that specifies whether the composite has been modified during the current step. + * This is automatically managed when bodies, constraints or composites are added or removed. + * + * @property isModified + * @type boolean + * @default false + */ + + /** + * The `Composite` that is the parent of this composite. It is automatically managed by the `Matter.Composite` methods. + * + * @property parent + * @type composite + * @default null + */ + + /** + * An array of `Body` that are _direct_ children of this composite. + * To add or remove bodies you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property. + * If you wish to recursively find all descendants, you should use the `Composite.allBodies` method. + * + * @property bodies + * @type body[] + * @default [] + */ + + /** + * An array of `Constraint` that are _direct_ children of this composite. + * To add or remove constraints you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property. + * If you wish to recursively find all descendants, you should use the `Composite.allConstraints` method. + * + * @property constraints + * @type constraint[] + * @default [] + */ + + /** + * An array of `Composite` that are _direct_ children of this composite. + * To add or remove composites you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property. + * If you wish to recursively find all descendants, you should use the `Composite.allComposites` method. + * + * @property composites + * @type composite[] + * @default [] + */ + + /** + * An object reserved for storing plugin-specific properties. + * + * @property plugin + * @type {} + */ + + /** + * An object used for storing cached results for performance reasons. + * This is used internally only and is automatically managed. + * + * @private + * @property cache + * @type {} + */ + +})(); + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Sleeping` module contains methods to manage the sleeping state of bodies. +* +* @class Sleeping +*/ + +var Sleeping = {}; + +module.exports = Sleeping; + +var Body = __webpack_require__(4); +var Events = __webpack_require__(5); +var Common = __webpack_require__(0); + +(function() { + + Sleeping._motionWakeThreshold = 0.18; + Sleeping._motionSleepThreshold = 0.08; + Sleeping._minBias = 0.9; + + /** + * Puts bodies to sleep or wakes them up depending on their motion. + * @method update + * @param {body[]} bodies + * @param {number} delta + */ + Sleeping.update = function(bodies, delta) { + var timeScale = delta / Common._baseDelta, + motionSleepThreshold = Sleeping._motionSleepThreshold; + + // update bodies sleeping status + for (var i = 0; i < bodies.length; i++) { + var body = bodies[i], + speed = Body.getSpeed(body), + angularSpeed = Body.getAngularSpeed(body), + motion = speed * speed + angularSpeed * angularSpeed; + + // wake up bodies if they have a force applied + if (body.force.x !== 0 || body.force.y !== 0) { + Sleeping.set(body, false); + continue; + } + + var minMotion = Math.min(body.motion, motion), + maxMotion = Math.max(body.motion, motion); + + // biased average motion estimation between frames + body.motion = Sleeping._minBias * minMotion + (1 - Sleeping._minBias) * maxMotion; + + if (body.sleepThreshold > 0 && body.motion < motionSleepThreshold) { + body.sleepCounter += 1; + + if (body.sleepCounter >= body.sleepThreshold / timeScale) { + Sleeping.set(body, true); + } + } else if (body.sleepCounter > 0) { + body.sleepCounter -= 1; + } + } + }; + + /** + * Given a set of colliding pairs, wakes the sleeping bodies involved. + * @method afterCollisions + * @param {pair[]} pairs + */ + Sleeping.afterCollisions = function(pairs) { + var motionSleepThreshold = Sleeping._motionSleepThreshold; + + // wake up bodies involved in collisions + for (var i = 0; i < pairs.length; i++) { + var pair = pairs[i]; + + // don't wake inactive pairs + if (!pair.isActive) + continue; + + var collision = pair.collision, + bodyA = collision.bodyA.parent, + bodyB = collision.bodyB.parent; + + // don't wake if at least one body is static + if ((bodyA.isSleeping && bodyB.isSleeping) || bodyA.isStatic || bodyB.isStatic) + continue; + + if (bodyA.isSleeping || bodyB.isSleeping) { + var sleepingBody = (bodyA.isSleeping && !bodyA.isStatic) ? bodyA : bodyB, + movingBody = sleepingBody === bodyA ? bodyB : bodyA; + + if (!sleepingBody.isStatic && movingBody.motion > motionSleepThreshold) { + Sleeping.set(sleepingBody, false); + } + } + } + }; + + /** + * Set a body as sleeping or awake. + * @method set + * @param {body} body + * @param {boolean} isSleeping + */ + Sleeping.set = function(body, isSleeping) { + var wasSleeping = body.isSleeping; + + if (isSleeping) { + body.isSleeping = true; + body.sleepCounter = body.sleepThreshold; + + body.positionImpulse.x = 0; + body.positionImpulse.y = 0; + + body.positionPrev.x = body.position.x; + body.positionPrev.y = body.position.y; + + body.anglePrev = body.angle; + body.speed = 0; + body.angularSpeed = 0; + body.motion = 0; + + if (!wasSleeping) { + Events.trigger(body, 'sleepStart'); + } + } else { + body.isSleeping = false; + body.sleepCounter = 0; + + if (wasSleeping) { + Events.trigger(body, 'sleepEnd'); + } + } + }; + +})(); + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Collision` module contains methods for detecting collisions between a given pair of bodies. +* +* For efficient detection between a list of bodies, see `Matter.Detector` and `Matter.Query`. +* +* See `Matter.Engine` for collision events. +* +* @class Collision +*/ + +var Collision = {}; + +module.exports = Collision; + +var Vertices = __webpack_require__(3); +var Pair = __webpack_require__(9); + +(function() { + var _supports = []; + + var _overlapAB = { + overlap: 0, + axis: null + }; + + var _overlapBA = { + overlap: 0, + axis: null + }; + + /** + * Creates a new collision record. + * @method create + * @param {body} bodyA The first body part represented by the collision record + * @param {body} bodyB The second body part represented by the collision record + * @return {collision} A new collision record + */ + Collision.create = function(bodyA, bodyB) { + return { + pair: null, + collided: false, + bodyA: bodyA, + bodyB: bodyB, + parentA: bodyA.parent, + parentB: bodyB.parent, + depth: 0, + normal: { x: 0, y: 0 }, + tangent: { x: 0, y: 0 }, + penetration: { x: 0, y: 0 }, + supports: [] + }; + }; + + /** + * Detect collision between two bodies. + * @method collides + * @param {body} bodyA + * @param {body} bodyB + * @param {pairs} [pairs] Optionally reuse collision records from existing pairs. + * @return {collision|null} A collision record if detected, otherwise null + */ + Collision.collides = function(bodyA, bodyB, pairs) { + Collision._overlapAxes(_overlapAB, bodyA.vertices, bodyB.vertices, bodyA.axes); + + if (_overlapAB.overlap <= 0) { + return null; + } + + Collision._overlapAxes(_overlapBA, bodyB.vertices, bodyA.vertices, bodyB.axes); + + if (_overlapBA.overlap <= 0) { + return null; + } + + // reuse collision records for gc efficiency + var pair = pairs && pairs.table[Pair.id(bodyA, bodyB)], + collision; + + if (!pair) { + collision = Collision.create(bodyA, bodyB); + collision.collided = true; + collision.bodyA = bodyA.id < bodyB.id ? bodyA : bodyB; + collision.bodyB = bodyA.id < bodyB.id ? bodyB : bodyA; + collision.parentA = collision.bodyA.parent; + collision.parentB = collision.bodyB.parent; + } else { + collision = pair.collision; + } + + bodyA = collision.bodyA; + bodyB = collision.bodyB; + + var minOverlap; + + if (_overlapAB.overlap < _overlapBA.overlap) { + minOverlap = _overlapAB; + } else { + minOverlap = _overlapBA; + } + + var normal = collision.normal, + supports = collision.supports, + minAxis = minOverlap.axis, + minAxisX = minAxis.x, + minAxisY = minAxis.y; + + // ensure normal is facing away from bodyA + if (minAxisX * (bodyB.position.x - bodyA.position.x) + minAxisY * (bodyB.position.y - bodyA.position.y) < 0) { + normal.x = minAxisX; + normal.y = minAxisY; + } else { + normal.x = -minAxisX; + normal.y = -minAxisY; + } + + collision.tangent.x = -normal.y; + collision.tangent.y = normal.x; + + collision.depth = minOverlap.overlap; + + collision.penetration.x = normal.x * collision.depth; + collision.penetration.y = normal.y * collision.depth; + + // find support points, there is always either exactly one or two + var supportsB = Collision._findSupports(bodyA, bodyB, normal, 1), + supportCount = 0; + + // find the supports from bodyB that are inside bodyA + if (Vertices.contains(bodyA.vertices, supportsB[0])) { + supports[supportCount++] = supportsB[0]; + } + + if (Vertices.contains(bodyA.vertices, supportsB[1])) { + supports[supportCount++] = supportsB[1]; + } + + // find the supports from bodyA that are inside bodyB + if (supportCount < 2) { + var supportsA = Collision._findSupports(bodyB, bodyA, normal, -1); + + if (Vertices.contains(bodyB.vertices, supportsA[0])) { + supports[supportCount++] = supportsA[0]; + } + + if (supportCount < 2 && Vertices.contains(bodyB.vertices, supportsA[1])) { + supports[supportCount++] = supportsA[1]; + } + } + + // account for the edge case of overlapping but no vertex containment + if (supportCount === 0) { + supports[supportCount++] = supportsB[0]; + } + + // update supports array size + supports.length = supportCount; + + return collision; + }; + + /** + * Find the overlap between two sets of vertices. + * @method _overlapAxes + * @private + * @param {object} result + * @param {vertices} verticesA + * @param {vertices} verticesB + * @param {axes} axes + */ + Collision._overlapAxes = function(result, verticesA, verticesB, axes) { + var verticesALength = verticesA.length, + verticesBLength = verticesB.length, + verticesAX = verticesA[0].x, + verticesAY = verticesA[0].y, + verticesBX = verticesB[0].x, + verticesBY = verticesB[0].y, + axesLength = axes.length, + overlapMin = Number.MAX_VALUE, + overlapAxisNumber = 0, + overlap, + overlapAB, + overlapBA, + dot, + i, + j; + + for (i = 0; i < axesLength; i++) { + var axis = axes[i], + axisX = axis.x, + axisY = axis.y, + minA = verticesAX * axisX + verticesAY * axisY, + minB = verticesBX * axisX + verticesBY * axisY, + maxA = minA, + maxB = minB; + + for (j = 1; j < verticesALength; j += 1) { + dot = verticesA[j].x * axisX + verticesA[j].y * axisY; + + if (dot > maxA) { + maxA = dot; + } else if (dot < minA) { + minA = dot; + } + } + + for (j = 1; j < verticesBLength; j += 1) { + dot = verticesB[j].x * axisX + verticesB[j].y * axisY; + + if (dot > maxB) { + maxB = dot; + } else if (dot < minB) { + minB = dot; + } + } + + overlapAB = maxA - minB; + overlapBA = maxB - minA; + overlap = overlapAB < overlapBA ? overlapAB : overlapBA; + + if (overlap < overlapMin) { + overlapMin = overlap; + overlapAxisNumber = i; + + if (overlap <= 0) { + // can not be intersecting + break; + } + } + } + + result.axis = axes[overlapAxisNumber]; + result.overlap = overlapMin; + }; + + /** + * Projects vertices on an axis and returns an interval. + * @method _projectToAxis + * @private + * @param {} projection + * @param {} vertices + * @param {} axis + */ + Collision._projectToAxis = function(projection, vertices, axis) { + var min = vertices[0].x * axis.x + vertices[0].y * axis.y, + max = min; + + for (var i = 1; i < vertices.length; i += 1) { + var dot = vertices[i].x * axis.x + vertices[i].y * axis.y; + + if (dot > max) { + max = dot; + } else if (dot < min) { + min = dot; + } + } + + projection.min = min; + projection.max = max; + }; + + /** + * Finds supporting vertices given two bodies along a given direction using hill-climbing. + * @method _findSupports + * @private + * @param {body} bodyA + * @param {body} bodyB + * @param {vector} normal + * @param {number} direction + * @return [vector] + */ + Collision._findSupports = function(bodyA, bodyB, normal, direction) { + var vertices = bodyB.vertices, + verticesLength = vertices.length, + bodyAPositionX = bodyA.position.x, + bodyAPositionY = bodyA.position.y, + normalX = normal.x * direction, + normalY = normal.y * direction, + nearestDistance = Number.MAX_VALUE, + vertexA, + vertexB, + vertexC, + distance, + j; + + // find deepest vertex relative to the axis + for (j = 0; j < verticesLength; j += 1) { + vertexB = vertices[j]; + distance = normalX * (bodyAPositionX - vertexB.x) + normalY * (bodyAPositionY - vertexB.y); + + // convex hill-climbing + if (distance < nearestDistance) { + nearestDistance = distance; + vertexA = vertexB; + } + } + + // measure next vertex + vertexC = vertices[(verticesLength + vertexA.index - 1) % verticesLength]; + nearestDistance = normalX * (bodyAPositionX - vertexC.x) + normalY * (bodyAPositionY - vertexC.y); + + // compare with previous vertex + vertexB = vertices[(vertexA.index + 1) % verticesLength]; + if (normalX * (bodyAPositionX - vertexB.x) + normalY * (bodyAPositionY - vertexB.y) < nearestDistance) { + _supports[0] = vertexA; + _supports[1] = vertexB; + + return _supports; + } + + _supports[0] = vertexA; + _supports[1] = vertexC; + + return _supports; + }; + + /* + * + * Properties Documentation + * + */ + + /** + * A reference to the pair using this collision record, if there is one. + * + * @property pair + * @type {pair|null} + * @default null + */ + + /** + * A flag that indicates if the bodies were colliding when the collision was last updated. + * + * @property collided + * @type boolean + * @default false + */ + + /** + * The first body part represented by the collision (see also `collision.parentA`). + * + * @property bodyA + * @type body + */ + + /** + * The second body part represented by the collision (see also `collision.parentB`). + * + * @property bodyB + * @type body + */ + + /** + * The first body represented by the collision (i.e. `collision.bodyA.parent`). + * + * @property parentA + * @type body + */ + + /** + * The second body represented by the collision (i.e. `collision.bodyB.parent`). + * + * @property parentB + * @type body + */ + + /** + * A `Number` that represents the minimum separating distance between the bodies along the collision normal. + * + * @readOnly + * @property depth + * @type number + * @default 0 + */ + + /** + * A normalised `Vector` that represents the direction between the bodies that provides the minimum separating distance. + * + * @property normal + * @type vector + * @default { x: 0, y: 0 } + */ + + /** + * A normalised `Vector` that is the tangent direction to the collision normal. + * + * @property tangent + * @type vector + * @default { x: 0, y: 0 } + */ + + /** + * A `Vector` that represents the direction and depth of the collision. + * + * @property penetration + * @type vector + * @default { x: 0, y: 0 } + */ + + /** + * An array of body vertices that represent the support points in the collision. + * These are the deepest vertices (along the collision normal) of each body that are contained by the other body's vertices. + * + * @property supports + * @type vector[] + * @default [] + */ + +})(); + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Pair` module contains methods for creating and manipulating collision pairs. +* +* @class Pair +*/ + +var Pair = {}; + +module.exports = Pair; + +var Contact = __webpack_require__(16); + +(function() { + + /** + * Creates a pair. + * @method create + * @param {collision} collision + * @param {number} timestamp + * @return {pair} A new pair + */ + Pair.create = function(collision, timestamp) { + var bodyA = collision.bodyA, + bodyB = collision.bodyB; + + var pair = { + id: Pair.id(bodyA, bodyB), + bodyA: bodyA, + bodyB: bodyB, + collision: collision, + contacts: [], + activeContacts: [], + separation: 0, + isActive: true, + confirmedActive: true, + isSensor: bodyA.isSensor || bodyB.isSensor, + timeCreated: timestamp, + timeUpdated: timestamp, + inverseMass: 0, + friction: 0, + frictionStatic: 0, + restitution: 0, + slop: 0 + }; + + Pair.update(pair, collision, timestamp); + + return pair; + }; + + /** + * Updates a pair given a collision. + * @method update + * @param {pair} pair + * @param {collision} collision + * @param {number} timestamp + */ + Pair.update = function(pair, collision, timestamp) { + var contacts = pair.contacts, + supports = collision.supports, + activeContacts = pair.activeContacts, + parentA = collision.parentA, + parentB = collision.parentB, + parentAVerticesLength = parentA.vertices.length; + + pair.isActive = true; + pair.timeUpdated = timestamp; + pair.collision = collision; + pair.separation = collision.depth; + pair.inverseMass = parentA.inverseMass + parentB.inverseMass; + pair.friction = parentA.friction < parentB.friction ? parentA.friction : parentB.friction; + pair.frictionStatic = parentA.frictionStatic > parentB.frictionStatic ? parentA.frictionStatic : parentB.frictionStatic; + pair.restitution = parentA.restitution > parentB.restitution ? parentA.restitution : parentB.restitution; + pair.slop = parentA.slop > parentB.slop ? parentA.slop : parentB.slop; + + collision.pair = pair; + activeContacts.length = 0; + + for (var i = 0; i < supports.length; i++) { + var support = supports[i], + contactId = support.body === parentA ? support.index : parentAVerticesLength + support.index, + contact = contacts[contactId]; + + if (contact) { + activeContacts.push(contact); + } else { + activeContacts.push(contacts[contactId] = Contact.create(support)); + } + } + }; + + /** + * Set a pair as active or inactive. + * @method setActive + * @param {pair} pair + * @param {bool} isActive + * @param {number} timestamp + */ + Pair.setActive = function(pair, isActive, timestamp) { + if (isActive) { + pair.isActive = true; + pair.timeUpdated = timestamp; + } else { + pair.isActive = false; + pair.activeContacts.length = 0; + } + }; + + /** + * Get the id for the given pair. + * @method id + * @param {body} bodyA + * @param {body} bodyB + * @return {string} Unique pairId + */ + Pair.id = function(bodyA, bodyB) { + if (bodyA.id < bodyB.id) { + return 'A' + bodyA.id + 'B' + bodyB.id; + } else { + return 'A' + bodyB.id + 'B' + bodyA.id; + } + }; + +})(); + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Constraint` module contains methods for creating and manipulating constraints. +* Constraints are used for specifying that a fixed distance must be maintained between two bodies (or a body and a fixed world-space position). +* The stiffness of constraints can be modified to create springs or elastic. +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Constraint +*/ + +var Constraint = {}; + +module.exports = Constraint; + +var Vertices = __webpack_require__(3); +var Vector = __webpack_require__(2); +var Sleeping = __webpack_require__(7); +var Bounds = __webpack_require__(1); +var Axes = __webpack_require__(11); +var Common = __webpack_require__(0); + +(function() { + + Constraint._warming = 0.4; + Constraint._torqueDampen = 1; + Constraint._minLength = 0.000001; + + /** + * Creates a new constraint. + * All properties have default values, and many are pre-calculated automatically based on other properties. + * To simulate a revolute constraint (or pin joint) set `length: 0` and a high `stiffness` value (e.g. `0.7` or above). + * If the constraint is unstable, try lowering the `stiffness` value and / or increasing `engine.constraintIterations`. + * For compound bodies, constraints must be applied to the parent body (not one of its parts). + * See the properties section below for detailed information on what you can pass via the `options` object. + * @method create + * @param {} options + * @return {constraint} constraint + */ + Constraint.create = function(options) { + var constraint = options; + + // if bodies defined but no points, use body centre + if (constraint.bodyA && !constraint.pointA) + constraint.pointA = { x: 0, y: 0 }; + if (constraint.bodyB && !constraint.pointB) + constraint.pointB = { x: 0, y: 0 }; + + // calculate static length using initial world space points + var initialPointA = constraint.bodyA ? Vector.add(constraint.bodyA.position, constraint.pointA) : constraint.pointA, + initialPointB = constraint.bodyB ? Vector.add(constraint.bodyB.position, constraint.pointB) : constraint.pointB, + length = Vector.magnitude(Vector.sub(initialPointA, initialPointB)); + + constraint.length = typeof constraint.length !== 'undefined' ? constraint.length : length; + + // option defaults + constraint.id = constraint.id || Common.nextId(); + constraint.label = constraint.label || 'Constraint'; + constraint.type = 'constraint'; + constraint.stiffness = constraint.stiffness || (constraint.length > 0 ? 1 : 0.7); + constraint.damping = constraint.damping || 0; + constraint.angularStiffness = constraint.angularStiffness || 0; + constraint.angleA = constraint.bodyA ? constraint.bodyA.angle : constraint.angleA; + constraint.angleB = constraint.bodyB ? constraint.bodyB.angle : constraint.angleB; + constraint.plugin = {}; + + // render + var render = { + visible: true, + lineWidth: 2, + strokeStyle: '#ffffff', + type: 'line', + anchors: true + }; + + if (constraint.length === 0 && constraint.stiffness > 0.1) { + render.type = 'pin'; + render.anchors = false; + } else if (constraint.stiffness < 0.9) { + render.type = 'spring'; + } + + constraint.render = Common.extend(render, constraint.render); + + return constraint; + }; + + /** + * Prepares for solving by constraint warming. + * @private + * @method preSolveAll + * @param {body[]} bodies + */ + Constraint.preSolveAll = function(bodies) { + for (var i = 0; i < bodies.length; i += 1) { + var body = bodies[i], + impulse = body.constraintImpulse; + + if (body.isStatic || (impulse.x === 0 && impulse.y === 0 && impulse.angle === 0)) { + continue; + } + + body.position.x += impulse.x; + body.position.y += impulse.y; + body.angle += impulse.angle; + } + }; + + /** + * Solves all constraints in a list of collisions. + * @private + * @method solveAll + * @param {constraint[]} constraints + * @param {number} delta + */ + Constraint.solveAll = function(constraints, delta) { + var timeScale = Common.clamp(delta / Common._baseDelta, 0, 1); + + // Solve fixed constraints first. + for (var i = 0; i < constraints.length; i += 1) { + var constraint = constraints[i], + fixedA = !constraint.bodyA || (constraint.bodyA && constraint.bodyA.isStatic), + fixedB = !constraint.bodyB || (constraint.bodyB && constraint.bodyB.isStatic); + + if (fixedA || fixedB) { + Constraint.solve(constraints[i], timeScale); + } + } + + // Solve free constraints last. + for (i = 0; i < constraints.length; i += 1) { + constraint = constraints[i]; + fixedA = !constraint.bodyA || (constraint.bodyA && constraint.bodyA.isStatic); + fixedB = !constraint.bodyB || (constraint.bodyB && constraint.bodyB.isStatic); + + if (!fixedA && !fixedB) { + Constraint.solve(constraints[i], timeScale); + } + } + }; + + /** + * Solves a distance constraint with Gauss-Siedel method. + * @private + * @method solve + * @param {constraint} constraint + * @param {number} timeScale + */ + Constraint.solve = function(constraint, timeScale) { + var bodyA = constraint.bodyA, + bodyB = constraint.bodyB, + pointA = constraint.pointA, + pointB = constraint.pointB; + + if (!bodyA && !bodyB) + return; + + // update reference angle + if (bodyA && !bodyA.isStatic) { + Vector.rotate(pointA, bodyA.angle - constraint.angleA, pointA); + constraint.angleA = bodyA.angle; + } + + // update reference angle + if (bodyB && !bodyB.isStatic) { + Vector.rotate(pointB, bodyB.angle - constraint.angleB, pointB); + constraint.angleB = bodyB.angle; + } + + var pointAWorld = pointA, + pointBWorld = pointB; + + if (bodyA) pointAWorld = Vector.add(bodyA.position, pointA); + if (bodyB) pointBWorld = Vector.add(bodyB.position, pointB); + + if (!pointAWorld || !pointBWorld) + return; + + var delta = Vector.sub(pointAWorld, pointBWorld), + currentLength = Vector.magnitude(delta); + + // prevent singularity + if (currentLength < Constraint._minLength) { + currentLength = Constraint._minLength; + } + + // solve distance constraint with Gauss-Siedel method + var difference = (currentLength - constraint.length) / currentLength, + isRigid = constraint.stiffness >= 1 || constraint.length === 0, + stiffness = isRigid ? constraint.stiffness * timeScale + : constraint.stiffness * timeScale * timeScale, + damping = constraint.damping * timeScale, + force = Vector.mult(delta, difference * stiffness), + massTotal = (bodyA ? bodyA.inverseMass : 0) + (bodyB ? bodyB.inverseMass : 0), + inertiaTotal = (bodyA ? bodyA.inverseInertia : 0) + (bodyB ? bodyB.inverseInertia : 0), + resistanceTotal = massTotal + inertiaTotal, + torque, + share, + normal, + normalVelocity, + relativeVelocity; + + if (damping > 0) { + var zero = Vector.create(); + normal = Vector.div(delta, currentLength); + + relativeVelocity = Vector.sub( + bodyB && Vector.sub(bodyB.position, bodyB.positionPrev) || zero, + bodyA && Vector.sub(bodyA.position, bodyA.positionPrev) || zero + ); + + normalVelocity = Vector.dot(normal, relativeVelocity); + } + + if (bodyA && !bodyA.isStatic) { + share = bodyA.inverseMass / massTotal; + + // keep track of applied impulses for post solving + bodyA.constraintImpulse.x -= force.x * share; + bodyA.constraintImpulse.y -= force.y * share; + + // apply forces + bodyA.position.x -= force.x * share; + bodyA.position.y -= force.y * share; + + // apply damping + if (damping > 0) { + bodyA.positionPrev.x -= damping * normal.x * normalVelocity * share; + bodyA.positionPrev.y -= damping * normal.y * normalVelocity * share; + } + + // apply torque + torque = (Vector.cross(pointA, force) / resistanceTotal) * Constraint._torqueDampen * bodyA.inverseInertia * (1 - constraint.angularStiffness); + bodyA.constraintImpulse.angle -= torque; + bodyA.angle -= torque; + } + + if (bodyB && !bodyB.isStatic) { + share = bodyB.inverseMass / massTotal; + + // keep track of applied impulses for post solving + bodyB.constraintImpulse.x += force.x * share; + bodyB.constraintImpulse.y += force.y * share; + + // apply forces + bodyB.position.x += force.x * share; + bodyB.position.y += force.y * share; + + // apply damping + if (damping > 0) { + bodyB.positionPrev.x += damping * normal.x * normalVelocity * share; + bodyB.positionPrev.y += damping * normal.y * normalVelocity * share; + } + + // apply torque + torque = (Vector.cross(pointB, force) / resistanceTotal) * Constraint._torqueDampen * bodyB.inverseInertia * (1 - constraint.angularStiffness); + bodyB.constraintImpulse.angle += torque; + bodyB.angle += torque; + } + + }; + + /** + * Performs body updates required after solving constraints. + * @private + * @method postSolveAll + * @param {body[]} bodies + */ + Constraint.postSolveAll = function(bodies) { + for (var i = 0; i < bodies.length; i++) { + var body = bodies[i], + impulse = body.constraintImpulse; + + if (body.isStatic || (impulse.x === 0 && impulse.y === 0 && impulse.angle === 0)) { + continue; + } + + Sleeping.set(body, false); + + // update geometry and reset + for (var j = 0; j < body.parts.length; j++) { + var part = body.parts[j]; + + Vertices.translate(part.vertices, impulse); + + if (j > 0) { + part.position.x += impulse.x; + part.position.y += impulse.y; + } + + if (impulse.angle !== 0) { + Vertices.rotate(part.vertices, impulse.angle, body.position); + Axes.rotate(part.axes, impulse.angle); + if (j > 0) { + Vector.rotateAbout(part.position, impulse.angle, body.position, part.position); + } + } + + Bounds.update(part.bounds, part.vertices, body.velocity); + } + + // dampen the cached impulse for warming next step + impulse.angle *= Constraint._warming; + impulse.x *= Constraint._warming; + impulse.y *= Constraint._warming; + } + }; + + /** + * Returns the world-space position of `constraint.pointA`, accounting for `constraint.bodyA`. + * @method pointAWorld + * @param {constraint} constraint + * @returns {vector} the world-space position + */ + Constraint.pointAWorld = function(constraint) { + return { + x: (constraint.bodyA ? constraint.bodyA.position.x : 0) + + (constraint.pointA ? constraint.pointA.x : 0), + y: (constraint.bodyA ? constraint.bodyA.position.y : 0) + + (constraint.pointA ? constraint.pointA.y : 0) + }; + }; + + /** + * Returns the world-space position of `constraint.pointB`, accounting for `constraint.bodyB`. + * @method pointBWorld + * @param {constraint} constraint + * @returns {vector} the world-space position + */ + Constraint.pointBWorld = function(constraint) { + return { + x: (constraint.bodyB ? constraint.bodyB.position.x : 0) + + (constraint.pointB ? constraint.pointB.x : 0), + y: (constraint.bodyB ? constraint.bodyB.position.y : 0) + + (constraint.pointB ? constraint.pointB.y : 0) + }; + }; + + /* + * + * Properties Documentation + * + */ + + /** + * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`. + * + * @property id + * @type number + */ + + /** + * A `String` denoting the type of object. + * + * @property type + * @type string + * @default "constraint" + * @readOnly + */ + + /** + * An arbitrary `String` name to help the user identify and manage bodies. + * + * @property label + * @type string + * @default "Constraint" + */ + + /** + * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`. + * + * @property render + * @type object + */ + + /** + * A flag that indicates if the constraint should be rendered. + * + * @property render.visible + * @type boolean + * @default true + */ + + /** + * A `Number` that defines the line width to use when rendering the constraint outline. + * A value of `0` means no outline will be rendered. + * + * @property render.lineWidth + * @type number + * @default 2 + */ + + /** + * A `String` that defines the stroke style to use when rendering the constraint outline. + * It is the same as when using a canvas, so it accepts CSS style property values. + * + * @property render.strokeStyle + * @type string + * @default a random colour + */ + + /** + * A `String` that defines the constraint rendering type. + * The possible values are 'line', 'pin', 'spring'. + * An appropriate render type will be automatically chosen unless one is given in options. + * + * @property render.type + * @type string + * @default 'line' + */ + + /** + * A `Boolean` that defines if the constraint's anchor points should be rendered. + * + * @property render.anchors + * @type boolean + * @default true + */ + + /** + * The first possible `Body` that this constraint is attached to. + * + * @property bodyA + * @type body + * @default null + */ + + /** + * The second possible `Body` that this constraint is attached to. + * + * @property bodyB + * @type body + * @default null + */ + + /** + * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyA` if defined, otherwise a world-space position. + * + * @property pointA + * @type vector + * @default { x: 0, y: 0 } + */ + + /** + * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyB` if defined, otherwise a world-space position. + * + * @property pointB + * @type vector + * @default { x: 0, y: 0 } + */ + + /** + * A `Number` that specifies the stiffness of the constraint, i.e. the rate at which it returns to its resting `constraint.length`. + * A value of `1` means the constraint should be very stiff. + * A value of `0.2` means the constraint acts like a soft spring. + * + * @property stiffness + * @type number + * @default 1 + */ + + /** + * A `Number` that specifies the damping of the constraint, + * i.e. the amount of resistance applied to each body based on their velocities to limit the amount of oscillation. + * Damping will only be apparent when the constraint also has a very low `stiffness`. + * A value of `0.1` means the constraint will apply heavy damping, resulting in little to no oscillation. + * A value of `0` means the constraint will apply no damping. + * + * @property damping + * @type number + * @default 0 + */ + + /** + * A `Number` that specifies the target resting length of the constraint. + * It is calculated automatically in `Constraint.create` from initial positions of the `constraint.bodyA` and `constraint.bodyB`. + * + * @property length + * @type number + */ + + /** + * An object reserved for storing plugin-specific properties. + * + * @property plugin + * @type {} + */ + +})(); + + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Axes` module contains methods for creating and manipulating sets of axes. +* +* @class Axes +*/ + +var Axes = {}; + +module.exports = Axes; + +var Vector = __webpack_require__(2); +var Common = __webpack_require__(0); + +(function() { + + /** + * Creates a new set of axes from the given vertices. + * @method fromVertices + * @param {vertices} vertices + * @return {axes} A new axes from the given vertices + */ + Axes.fromVertices = function(vertices) { + var axes = {}; + + // find the unique axes, using edge normal gradients + for (var i = 0; i < vertices.length; i++) { + var j = (i + 1) % vertices.length, + normal = Vector.normalise({ + x: vertices[j].y - vertices[i].y, + y: vertices[i].x - vertices[j].x + }), + gradient = (normal.y === 0) ? Infinity : (normal.x / normal.y); + + // limit precision + gradient = gradient.toFixed(3).toString(); + axes[gradient] = normal; + } + + return Common.values(axes); + }; + + /** + * Rotates a set of axes by the given angle. + * @method rotate + * @param {axes} axes + * @param {number} angle + */ + Axes.rotate = function(axes, angle) { + if (angle === 0) + return; + + var cos = Math.cos(angle), + sin = Math.sin(angle); + + for (var i = 0; i < axes.length; i++) { + var axis = axes[i], + xx; + xx = axis.x * cos - axis.y * sin; + axis.y = axis.x * sin + axis.y * cos; + axis.x = xx; + } + }; + +})(); + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Bodies` module contains factory methods for creating rigid body models +* with commonly used body configurations (such as rectangles, circles and other polygons). +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Bodies +*/ + +// TODO: true circle bodies + +var Bodies = {}; + +module.exports = Bodies; + +var Vertices = __webpack_require__(3); +var Common = __webpack_require__(0); +var Body = __webpack_require__(4); +var Bounds = __webpack_require__(1); +var Vector = __webpack_require__(2); + +(function() { + + /** + * Creates a new rigid body model with a rectangle hull. + * The options parameter is an object that specifies any properties you wish to override the defaults. + * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object. + * @method rectangle + * @param {number} x + * @param {number} y + * @param {number} width + * @param {number} height + * @param {object} [options] + * @return {body} A new rectangle body + */ + Bodies.rectangle = function(x, y, width, height, options) { + options = options || {}; + + var rectangle = { + label: 'Rectangle Body', + position: { x: x, y: y }, + vertices: Vertices.fromPath('L 0 0 L ' + width + ' 0 L ' + width + ' ' + height + ' L 0 ' + height) + }; + + if (options.chamfer) { + var chamfer = options.chamfer; + rectangle.vertices = Vertices.chamfer(rectangle.vertices, chamfer.radius, + chamfer.quality, chamfer.qualityMin, chamfer.qualityMax); + delete options.chamfer; + } + + return Body.create(Common.extend({}, rectangle, options)); + }; + + /** + * Creates a new rigid body model with a trapezoid hull. + * The options parameter is an object that specifies any properties you wish to override the defaults. + * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object. + * @method trapezoid + * @param {number} x + * @param {number} y + * @param {number} width + * @param {number} height + * @param {number} slope + * @param {object} [options] + * @return {body} A new trapezoid body + */ + Bodies.trapezoid = function(x, y, width, height, slope, options) { + options = options || {}; + + slope *= 0.5; + var roof = (1 - (slope * 2)) * width; + + var x1 = width * slope, + x2 = x1 + roof, + x3 = x2 + x1, + verticesPath; + + if (slope < 0.5) { + verticesPath = 'L 0 0 L ' + x1 + ' ' + (-height) + ' L ' + x2 + ' ' + (-height) + ' L ' + x3 + ' 0'; + } else { + verticesPath = 'L 0 0 L ' + x2 + ' ' + (-height) + ' L ' + x3 + ' 0'; + } + + var trapezoid = { + label: 'Trapezoid Body', + position: { x: x, y: y }, + vertices: Vertices.fromPath(verticesPath) + }; + + if (options.chamfer) { + var chamfer = options.chamfer; + trapezoid.vertices = Vertices.chamfer(trapezoid.vertices, chamfer.radius, + chamfer.quality, chamfer.qualityMin, chamfer.qualityMax); + delete options.chamfer; + } + + return Body.create(Common.extend({}, trapezoid, options)); + }; + + /** + * Creates a new rigid body model with a circle hull. + * The options parameter is an object that specifies any properties you wish to override the defaults. + * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object. + * @method circle + * @param {number} x + * @param {number} y + * @param {number} radius + * @param {object} [options] + * @param {number} [maxSides] + * @return {body} A new circle body + */ + Bodies.circle = function(x, y, radius, options, maxSides) { + options = options || {}; + + var circle = { + label: 'Circle Body', + circleRadius: radius + }; + + // approximate circles with polygons until true circles implemented in SAT + maxSides = maxSides || 25; + var sides = Math.ceil(Math.max(10, Math.min(maxSides, radius))); + + // optimisation: always use even number of sides (half the number of unique axes) + if (sides % 2 === 1) + sides += 1; + + return Bodies.polygon(x, y, sides, radius, Common.extend({}, circle, options)); + }; + + /** + * Creates a new rigid body model with a regular polygon hull with the given number of sides. + * The options parameter is an object that specifies any properties you wish to override the defaults. + * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object. + * @method polygon + * @param {number} x + * @param {number} y + * @param {number} sides + * @param {number} radius + * @param {object} [options] + * @return {body} A new regular polygon body + */ + Bodies.polygon = function(x, y, sides, radius, options) { + options = options || {}; + + if (sides < 3) + return Bodies.circle(x, y, radius, options); + + var theta = 2 * Math.PI / sides, + path = '', + offset = theta * 0.5; + + for (var i = 0; i < sides; i += 1) { + var angle = offset + (i * theta), + xx = Math.cos(angle) * radius, + yy = Math.sin(angle) * radius; + + path += 'L ' + xx.toFixed(3) + ' ' + yy.toFixed(3) + ' '; + } + + var polygon = { + label: 'Polygon Body', + position: { x: x, y: y }, + vertices: Vertices.fromPath(path) + }; + + if (options.chamfer) { + var chamfer = options.chamfer; + polygon.vertices = Vertices.chamfer(polygon.vertices, chamfer.radius, + chamfer.quality, chamfer.qualityMin, chamfer.qualityMax); + delete options.chamfer; + } + + return Body.create(Common.extend({}, polygon, options)); + }; + + /** + * Utility to create a compound body based on set(s) of vertices. + * + * _Note:_ To optionally enable automatic concave vertices decomposition the [poly-decomp](https://github.com/schteppe/poly-decomp.js) + * package must be first installed and provided see `Common.setDecomp`, otherwise the convex hull of each vertex set will be used. + * + * The resulting vertices are reorientated about their centre of mass, + * and offset such that `body.position` corresponds to this point. + * + * The resulting offset may be found if needed by subtracting `body.bounds` from the original input bounds. + * To later move the centre of mass see `Body.setCentre`. + * + * Note that automatic conconcave decomposition results are not always optimal. + * For best results, simplify the input vertices as much as possible first. + * By default this function applies some addtional simplification to help. + * + * Some outputs may also require further manual processing afterwards to be robust. + * In particular some parts may need to be overlapped to avoid collision gaps. + * Thin parts and sharp points should be avoided or removed where possible. + * + * The options parameter object specifies any `Matter.Body` properties you wish to override the defaults. + * + * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object. + * @method fromVertices + * @param {number} x + * @param {number} y + * @param {array} vertexSets One or more arrays of vertex points e.g. `[[{ x: 0, y: 0 }...], ...]`. + * @param {object} [options] The body options. + * @param {bool} [flagInternal=false] Optionally marks internal edges with `isInternal`. + * @param {number} [removeCollinear=0.01] Threshold when simplifying vertices along the same edge. + * @param {number} [minimumArea=10] Threshold when removing small parts. + * @param {number} [removeDuplicatePoints=0.01] Threshold when simplifying nearby vertices. + * @return {body} + */ + Bodies.fromVertices = function(x, y, vertexSets, options, flagInternal, removeCollinear, minimumArea, removeDuplicatePoints) { + var decomp = Common.getDecomp(), + canDecomp, + body, + parts, + isConvex, + isConcave, + vertices, + i, + j, + k, + v, + z; + + // check decomp is as expected + canDecomp = Boolean(decomp && decomp.quickDecomp); + + options = options || {}; + parts = []; + + flagInternal = typeof flagInternal !== 'undefined' ? flagInternal : false; + removeCollinear = typeof removeCollinear !== 'undefined' ? removeCollinear : 0.01; + minimumArea = typeof minimumArea !== 'undefined' ? minimumArea : 10; + removeDuplicatePoints = typeof removeDuplicatePoints !== 'undefined' ? removeDuplicatePoints : 0.01; + + // ensure vertexSets is an array of arrays + if (!Common.isArray(vertexSets[0])) { + vertexSets = [vertexSets]; + } + + for (v = 0; v < vertexSets.length; v += 1) { + vertices = vertexSets[v]; + isConvex = Vertices.isConvex(vertices); + isConcave = !isConvex; + + if (isConcave && !canDecomp) { + Common.warnOnce( + 'Bodies.fromVertices: Install the \'poly-decomp\' library and use Common.setDecomp or provide \'decomp\' as a global to decompose concave vertices.' + ); + } + + if (isConvex || !canDecomp) { + if (isConvex) { + vertices = Vertices.clockwiseSort(vertices); + } else { + // fallback to convex hull when decomposition is not possible + vertices = Vertices.hull(vertices); + } + + parts.push({ + position: { x: x, y: y }, + vertices: vertices + }); + } else { + // initialise a decomposition + var concave = vertices.map(function(vertex) { + return [vertex.x, vertex.y]; + }); + + // vertices are concave and simple, we can decompose into parts + decomp.makeCCW(concave); + if (removeCollinear !== false) + decomp.removeCollinearPoints(concave, removeCollinear); + if (removeDuplicatePoints !== false && decomp.removeDuplicatePoints) + decomp.removeDuplicatePoints(concave, removeDuplicatePoints); + + // use the quick decomposition algorithm (Bayazit) + var decomposed = decomp.quickDecomp(concave); + + // for each decomposed chunk + for (i = 0; i < decomposed.length; i++) { + var chunk = decomposed[i]; + + // convert vertices into the correct structure + var chunkVertices = chunk.map(function(vertices) { + return { + x: vertices[0], + y: vertices[1] + }; + }); + + // skip small chunks + if (minimumArea > 0 && Vertices.area(chunkVertices) < minimumArea) + continue; + + // create a compound part + parts.push({ + position: Vertices.centre(chunkVertices), + vertices: chunkVertices + }); + } + } + } + + // create body parts + for (i = 0; i < parts.length; i++) { + parts[i] = Body.create(Common.extend(parts[i], options)); + } + + // flag internal edges (coincident part edges) + if (flagInternal) { + var coincident_max_dist = 5; + + for (i = 0; i < parts.length; i++) { + var partA = parts[i]; + + for (j = i + 1; j < parts.length; j++) { + var partB = parts[j]; + + if (Bounds.overlaps(partA.bounds, partB.bounds)) { + var pav = partA.vertices, + pbv = partB.vertices; + + // iterate vertices of both parts + for (k = 0; k < partA.vertices.length; k++) { + for (z = 0; z < partB.vertices.length; z++) { + // find distances between the vertices + var da = Vector.magnitudeSquared(Vector.sub(pav[(k + 1) % pav.length], pbv[z])), + db = Vector.magnitudeSquared(Vector.sub(pav[k], pbv[(z + 1) % pbv.length])); + + // if both vertices are very close, consider the edge concident (internal) + if (da < coincident_max_dist && db < coincident_max_dist) { + pav[k].isInternal = true; + pbv[z].isInternal = true; + } + } + } + + } + } + } + } + + if (parts.length > 1) { + // create the parent body to be returned, that contains generated compound parts + body = Body.create(Common.extend({ parts: parts.slice(0) }, options)); + + // offset such that body.position is at the centre off mass + Body.setPosition(body, { x: x, y: y }); + + return body; + } else { + return parts[0]; + } + }; + +})(); + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Detector` module contains methods for efficiently detecting collisions between a list of bodies using a broadphase algorithm. +* +* @class Detector +*/ + +var Detector = {}; + +module.exports = Detector; + +var Common = __webpack_require__(0); +var Collision = __webpack_require__(8); + +(function() { + + /** + * Creates a new collision detector. + * @method create + * @param {} options + * @return {detector} A new collision detector + */ + Detector.create = function(options) { + var defaults = { + bodies: [], + pairs: null + }; + + return Common.extend(defaults, options); + }; + + /** + * Sets the list of bodies in the detector. + * @method setBodies + * @param {detector} detector + * @param {body[]} bodies + */ + Detector.setBodies = function(detector, bodies) { + detector.bodies = bodies.slice(0); + }; + + /** + * Clears the detector including its list of bodies. + * @method clear + * @param {detector} detector + */ + Detector.clear = function(detector) { + detector.bodies = []; + }; + + /** + * Efficiently finds all collisions among all the bodies in `detector.bodies` using a broadphase algorithm. + * + * _Note:_ The specific ordering of collisions returned is not guaranteed between releases and may change for performance reasons. + * If a specific ordering is required then apply a sort to the resulting array. + * @method collisions + * @param {detector} detector + * @return {collision[]} collisions + */ + Detector.collisions = function(detector) { + var collisions = [], + pairs = detector.pairs, + bodies = detector.bodies, + bodiesLength = bodies.length, + canCollide = Detector.canCollide, + collides = Collision.collides, + i, + j; + + bodies.sort(Detector._compareBoundsX); + + for (i = 0; i < bodiesLength; i++) { + var bodyA = bodies[i], + boundsA = bodyA.bounds, + boundXMax = bodyA.bounds.max.x, + boundYMax = bodyA.bounds.max.y, + boundYMin = bodyA.bounds.min.y, + bodyAStatic = bodyA.isStatic || bodyA.isSleeping, + partsALength = bodyA.parts.length, + partsASingle = partsALength === 1; + + for (j = i + 1; j < bodiesLength; j++) { + var bodyB = bodies[j], + boundsB = bodyB.bounds; + + if (boundsB.min.x > boundXMax) { + break; + } + + if (boundYMax < boundsB.min.y || boundYMin > boundsB.max.y) { + continue; + } + + if (bodyAStatic && (bodyB.isStatic || bodyB.isSleeping)) { + continue; + } + + if (!canCollide(bodyA.collisionFilter, bodyB.collisionFilter)) { + continue; + } + + var partsBLength = bodyB.parts.length; + + if (partsASingle && partsBLength === 1) { + var collision = collides(bodyA, bodyB, pairs); + + if (collision) { + collisions.push(collision); + } + } else { + var partsAStart = partsALength > 1 ? 1 : 0, + partsBStart = partsBLength > 1 ? 1 : 0; + + for (var k = partsAStart; k < partsALength; k++) { + var partA = bodyA.parts[k], + boundsA = partA.bounds; + + for (var z = partsBStart; z < partsBLength; z++) { + var partB = bodyB.parts[z], + boundsB = partB.bounds; + + if (boundsA.min.x > boundsB.max.x || boundsA.max.x < boundsB.min.x + || boundsA.max.y < boundsB.min.y || boundsA.min.y > boundsB.max.y) { + continue; + } + + var collision = collides(partA, partB, pairs); + + if (collision) { + collisions.push(collision); + } + } + } + } + } + } + + return collisions; + }; + + /** + * Returns `true` if both supplied collision filters will allow a collision to occur. + * See `body.collisionFilter` for more information. + * @method canCollide + * @param {} filterA + * @param {} filterB + * @return {bool} `true` if collision can occur + */ + Detector.canCollide = function(filterA, filterB) { + if (filterA.group === filterB.group && filterA.group !== 0) + return filterA.group > 0; + + return (filterA.mask & filterB.category) !== 0 && (filterB.mask & filterA.category) !== 0; + }; + + /** + * The comparison function used in the broadphase algorithm. + * Returns the signed delta of the bodies bounds on the x-axis. + * @private + * @method _sortCompare + * @param {body} bodyA + * @param {body} bodyB + * @return {number} The signed delta used for sorting + */ + Detector._compareBoundsX = function(bodyA, bodyB) { + return bodyA.bounds.min.x - bodyB.bounds.min.x; + }; + + /* + * + * Properties Documentation + * + */ + + /** + * The array of `Matter.Body` between which the detector finds collisions. + * + * _Note:_ The order of bodies in this array _is not fixed_ and will be continually managed by the detector. + * @property bodies + * @type body[] + * @default [] + */ + + /** + * Optional. A `Matter.Pairs` object from which previous collision objects may be reused. Intended for internal `Matter.Engine` usage. + * @property pairs + * @type {pairs|null} + * @default null + */ + +})(); + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Mouse` module contains methods for creating and manipulating mouse inputs. +* +* @class Mouse +*/ + +var Mouse = {}; + +module.exports = Mouse; + +var Common = __webpack_require__(0); + +(function() { + + /** + * Creates a mouse input. + * @method create + * @param {HTMLElement} element + * @return {mouse} A new mouse + */ + Mouse.create = function(element) { + var mouse = {}; + + if (!element) { + Common.log('Mouse.create: element was undefined, defaulting to document.body', 'warn'); + } + + mouse.element = element || document.body; + mouse.absolute = { x: 0, y: 0 }; + mouse.position = { x: 0, y: 0 }; + mouse.mousedownPosition = { x: 0, y: 0 }; + mouse.mouseupPosition = { x: 0, y: 0 }; + mouse.offset = { x: 0, y: 0 }; + mouse.scale = { x: 1, y: 1 }; + mouse.wheelDelta = 0; + mouse.button = -1; + mouse.pixelRatio = parseInt(mouse.element.getAttribute('data-pixel-ratio'), 10) || 1; + + mouse.sourceEvents = { + mousemove: null, + mousedown: null, + mouseup: null, + mousewheel: null + }; + + mouse.mousemove = function(event) { + var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio), + touches = event.changedTouches; + + if (touches) { + mouse.button = 0; + event.preventDefault(); + } + + mouse.absolute.x = position.x; + mouse.absolute.y = position.y; + mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x; + mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y; + mouse.sourceEvents.mousemove = event; + }; + + mouse.mousedown = function(event) { + var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio), + touches = event.changedTouches; + + if (touches) { + mouse.button = 0; + event.preventDefault(); + } else { + mouse.button = event.button; + } + + mouse.absolute.x = position.x; + mouse.absolute.y = position.y; + mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x; + mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y; + mouse.mousedownPosition.x = mouse.position.x; + mouse.mousedownPosition.y = mouse.position.y; + mouse.sourceEvents.mousedown = event; + }; + + mouse.mouseup = function(event) { + var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio), + touches = event.changedTouches; + + if (touches) { + event.preventDefault(); + } + + mouse.button = -1; + mouse.absolute.x = position.x; + mouse.absolute.y = position.y; + mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x; + mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y; + mouse.mouseupPosition.x = mouse.position.x; + mouse.mouseupPosition.y = mouse.position.y; + mouse.sourceEvents.mouseup = event; + }; + + mouse.mousewheel = function(event) { + mouse.wheelDelta = Math.max(-1, Math.min(1, event.wheelDelta || -event.detail)); + event.preventDefault(); + }; + + Mouse.setElement(mouse, mouse.element); + + return mouse; + }; + + /** + * Sets the element the mouse is bound to (and relative to). + * @method setElement + * @param {mouse} mouse + * @param {HTMLElement} element + */ + Mouse.setElement = function(mouse, element) { + mouse.element = element; + + element.addEventListener('mousemove', mouse.mousemove); + element.addEventListener('mousedown', mouse.mousedown); + element.addEventListener('mouseup', mouse.mouseup); + + element.addEventListener('mousewheel', mouse.mousewheel); + element.addEventListener('DOMMouseScroll', mouse.mousewheel); + + element.addEventListener('touchmove', mouse.mousemove); + element.addEventListener('touchstart', mouse.mousedown); + element.addEventListener('touchend', mouse.mouseup); + }; + + /** + * Clears all captured source events. + * @method clearSourceEvents + * @param {mouse} mouse + */ + Mouse.clearSourceEvents = function(mouse) { + mouse.sourceEvents.mousemove = null; + mouse.sourceEvents.mousedown = null; + mouse.sourceEvents.mouseup = null; + mouse.sourceEvents.mousewheel = null; + mouse.wheelDelta = 0; + }; + + /** + * Sets the mouse position offset. + * @method setOffset + * @param {mouse} mouse + * @param {vector} offset + */ + Mouse.setOffset = function(mouse, offset) { + mouse.offset.x = offset.x; + mouse.offset.y = offset.y; + mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x; + mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y; + }; + + /** + * Sets the mouse position scale. + * @method setScale + * @param {mouse} mouse + * @param {vector} scale + */ + Mouse.setScale = function(mouse, scale) { + mouse.scale.x = scale.x; + mouse.scale.y = scale.y; + mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x; + mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y; + }; + + /** + * Gets the mouse position relative to an element given a screen pixel ratio. + * @method _getRelativeMousePosition + * @private + * @param {} event + * @param {} element + * @param {number} pixelRatio + * @return {} + */ + Mouse._getRelativeMousePosition = function(event, element, pixelRatio) { + var elementBounds = element.getBoundingClientRect(), + rootNode = (document.documentElement || document.body.parentNode || document.body), + scrollX = (window.pageXOffset !== undefined) ? window.pageXOffset : rootNode.scrollLeft, + scrollY = (window.pageYOffset !== undefined) ? window.pageYOffset : rootNode.scrollTop, + touches = event.changedTouches, + x, y; + + if (touches) { + x = touches[0].pageX - elementBounds.left - scrollX; + y = touches[0].pageY - elementBounds.top - scrollY; + } else { + x = event.pageX - elementBounds.left - scrollX; + y = event.pageY - elementBounds.top - scrollY; + } + + return { + x: x / (element.clientWidth / (element.width || element.clientWidth) * pixelRatio), + y: y / (element.clientHeight / (element.height || element.clientHeight) * pixelRatio) + }; + }; + +})(); + + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Plugin` module contains functions for registering and installing plugins on modules. +* +* @class Plugin +*/ + +var Plugin = {}; + +module.exports = Plugin; + +var Common = __webpack_require__(0); + +(function() { + + Plugin._registry = {}; + + /** + * Registers a plugin object so it can be resolved later by name. + * @method register + * @param plugin {} The plugin to register. + * @return {object} The plugin. + */ + Plugin.register = function(plugin) { + if (!Plugin.isPlugin(plugin)) { + Common.warn('Plugin.register:', Plugin.toString(plugin), 'does not implement all required fields.'); + } + + if (plugin.name in Plugin._registry) { + var registered = Plugin._registry[plugin.name], + pluginVersion = Plugin.versionParse(plugin.version).number, + registeredVersion = Plugin.versionParse(registered.version).number; + + if (pluginVersion > registeredVersion) { + Common.warn('Plugin.register:', Plugin.toString(registered), 'was upgraded to', Plugin.toString(plugin)); + Plugin._registry[plugin.name] = plugin; + } else if (pluginVersion < registeredVersion) { + Common.warn('Plugin.register:', Plugin.toString(registered), 'can not be downgraded to', Plugin.toString(plugin)); + } else if (plugin !== registered) { + Common.warn('Plugin.register:', Plugin.toString(plugin), 'is already registered to different plugin object'); + } + } else { + Plugin._registry[plugin.name] = plugin; + } + + return plugin; + }; + + /** + * Resolves a dependency to a plugin object from the registry if it exists. + * The `dependency` may contain a version, but only the name matters when resolving. + * @method resolve + * @param dependency {string} The dependency. + * @return {object} The plugin if resolved, otherwise `undefined`. + */ + Plugin.resolve = function(dependency) { + return Plugin._registry[Plugin.dependencyParse(dependency).name]; + }; + + /** + * Returns a pretty printed plugin name and version. + * @method toString + * @param plugin {} The plugin. + * @return {string} Pretty printed plugin name and version. + */ + Plugin.toString = function(plugin) { + return typeof plugin === 'string' ? plugin : (plugin.name || 'anonymous') + '@' + (plugin.version || plugin.range || '0.0.0'); + }; + + /** + * Returns `true` if the object meets the minimum standard to be considered a plugin. + * This means it must define the following properties: + * - `name` + * - `version` + * - `install` + * @method isPlugin + * @param obj {} The obj to test. + * @return {boolean} `true` if the object can be considered a plugin otherwise `false`. + */ + Plugin.isPlugin = function(obj) { + return obj && obj.name && obj.version && obj.install; + }; + + /** + * Returns `true` if a plugin with the given `name` been installed on `module`. + * @method isUsed + * @param module {} The module. + * @param name {string} The plugin name. + * @return {boolean} `true` if a plugin with the given `name` been installed on `module`, otherwise `false`. + */ + Plugin.isUsed = function(module, name) { + return module.used.indexOf(name) > -1; + }; + + /** + * Returns `true` if `plugin.for` is applicable to `module` by comparing against `module.name` and `module.version`. + * If `plugin.for` is not specified then it is assumed to be applicable. + * The value of `plugin.for` is a string of the format `'module-name'` or `'module-name@version'`. + * @method isFor + * @param plugin {} The plugin. + * @param module {} The module. + * @return {boolean} `true` if `plugin.for` is applicable to `module`, otherwise `false`. + */ + Plugin.isFor = function(plugin, module) { + var parsed = plugin.for && Plugin.dependencyParse(plugin.for); + return !plugin.for || (module.name === parsed.name && Plugin.versionSatisfies(module.version, parsed.range)); + }; + + /** + * Installs the plugins by calling `plugin.install` on each plugin specified in `plugins` if passed, otherwise `module.uses`. + * For installing plugins on `Matter` see the convenience function `Matter.use`. + * Plugins may be specified either by their name or a reference to the plugin object. + * Plugins themselves may specify further dependencies, but each plugin is installed only once. + * Order is important, a topological sort is performed to find the best resulting order of installation. + * This sorting attempts to satisfy every dependency's requested ordering, but may not be exact in all cases. + * This function logs the resulting status of each dependency in the console, along with any warnings. + * - A green tick ✅ indicates a dependency was resolved and installed. + * - An orange diamond 🔶 indicates a dependency was resolved but a warning was thrown for it or one if its dependencies. + * - A red cross ❌ indicates a dependency could not be resolved. + * Avoid calling this function multiple times on the same module unless you intend to manually control installation order. + * @method use + * @param module {} The module install plugins on. + * @param [plugins=module.uses] {} The plugins to install on module (optional, defaults to `module.uses`). + */ + Plugin.use = function(module, plugins) { + module.uses = (module.uses || []).concat(plugins || []); + + if (module.uses.length === 0) { + Common.warn('Plugin.use:', Plugin.toString(module), 'does not specify any dependencies to install.'); + return; + } + + var dependencies = Plugin.dependencies(module), + sortedDependencies = Common.topologicalSort(dependencies), + status = []; + + for (var i = 0; i < sortedDependencies.length; i += 1) { + if (sortedDependencies[i] === module.name) { + continue; + } + + var plugin = Plugin.resolve(sortedDependencies[i]); + + if (!plugin) { + status.push('❌ ' + sortedDependencies[i]); + continue; + } + + if (Plugin.isUsed(module, plugin.name)) { + continue; + } + + if (!Plugin.isFor(plugin, module)) { + Common.warn('Plugin.use:', Plugin.toString(plugin), 'is for', plugin.for, 'but installed on', Plugin.toString(module) + '.'); + plugin._warned = true; + } + + if (plugin.install) { + plugin.install(module); + } else { + Common.warn('Plugin.use:', Plugin.toString(plugin), 'does not specify an install function.'); + plugin._warned = true; + } + + if (plugin._warned) { + status.push('🔶 ' + Plugin.toString(plugin)); + delete plugin._warned; + } else { + status.push('✅ ' + Plugin.toString(plugin)); + } + + module.used.push(plugin.name); + } + + if (status.length > 0) { + Common.info(status.join(' ')); + } + }; + + /** + * Recursively finds all of a module's dependencies and returns a flat dependency graph. + * @method dependencies + * @param module {} The module. + * @return {object} A dependency graph. + */ + Plugin.dependencies = function(module, tracked) { + var parsedBase = Plugin.dependencyParse(module), + name = parsedBase.name; + + tracked = tracked || {}; + + if (name in tracked) { + return; + } + + module = Plugin.resolve(module) || module; + + tracked[name] = Common.map(module.uses || [], function(dependency) { + if (Plugin.isPlugin(dependency)) { + Plugin.register(dependency); + } + + var parsed = Plugin.dependencyParse(dependency), + resolved = Plugin.resolve(dependency); + + if (resolved && !Plugin.versionSatisfies(resolved.version, parsed.range)) { + Common.warn( + 'Plugin.dependencies:', Plugin.toString(resolved), 'does not satisfy', + Plugin.toString(parsed), 'used by', Plugin.toString(parsedBase) + '.' + ); + + resolved._warned = true; + module._warned = true; + } else if (!resolved) { + Common.warn( + 'Plugin.dependencies:', Plugin.toString(dependency), 'used by', + Plugin.toString(parsedBase), 'could not be resolved.' + ); + + module._warned = true; + } + + return parsed.name; + }); + + for (var i = 0; i < tracked[name].length; i += 1) { + Plugin.dependencies(tracked[name][i], tracked); + } + + return tracked; + }; + + /** + * Parses a dependency string into its components. + * The `dependency` is a string of the format `'module-name'` or `'module-name@version'`. + * See documentation for `Plugin.versionParse` for a description of the format. + * This function can also handle dependencies that are already resolved (e.g. a module object). + * @method dependencyParse + * @param dependency {string} The dependency of the format `'module-name'` or `'module-name@version'`. + * @return {object} The dependency parsed into its components. + */ + Plugin.dependencyParse = function(dependency) { + if (Common.isString(dependency)) { + var pattern = /^[\w-]+(@(\*|[\^~]?\d+\.\d+\.\d+(-[0-9A-Za-z-+]+)?))?$/; + + if (!pattern.test(dependency)) { + Common.warn('Plugin.dependencyParse:', dependency, 'is not a valid dependency string.'); + } + + return { + name: dependency.split('@')[0], + range: dependency.split('@')[1] || '*' + }; + } + + return { + name: dependency.name, + range: dependency.range || dependency.version + }; + }; + + /** + * Parses a version string into its components. + * Versions are strictly of the format `x.y.z` (as in [semver](http://semver.org/)). + * Versions may optionally have a prerelease tag in the format `x.y.z-alpha`. + * Ranges are a strict subset of [npm ranges](https://docs.npmjs.com/misc/semver#advanced-range-syntax). + * Only the following range types are supported: + * - Tilde ranges e.g. `~1.2.3` + * - Caret ranges e.g. `^1.2.3` + * - Greater than ranges e.g. `>1.2.3` + * - Greater than or equal ranges e.g. `>=1.2.3` + * - Exact version e.g. `1.2.3` + * - Any version `*` + * @method versionParse + * @param range {string} The version string. + * @return {object} The version range parsed into its components. + */ + Plugin.versionParse = function(range) { + var pattern = /^(\*)|(\^|~|>=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/; + + if (!pattern.test(range)) { + Common.warn('Plugin.versionParse:', range, 'is not a valid version or range.'); + } + + var parts = pattern.exec(range); + var major = Number(parts[4]); + var minor = Number(parts[5]); + var patch = Number(parts[6]); + + return { + isRange: Boolean(parts[1] || parts[2]), + version: parts[3], + range: range, + operator: parts[1] || parts[2] || '', + major: major, + minor: minor, + patch: patch, + parts: [major, minor, patch], + prerelease: parts[7], + number: major * 1e8 + minor * 1e4 + patch + }; + }; + + /** + * Returns `true` if `version` satisfies the given `range`. + * See documentation for `Plugin.versionParse` for a description of the format. + * If a version or range is not specified, then any version (`*`) is assumed to satisfy. + * @method versionSatisfies + * @param version {string} The version string. + * @param range {string} The range string. + * @return {boolean} `true` if `version` satisfies `range`, otherwise `false`. + */ + Plugin.versionSatisfies = function(version, range) { + range = range || '*'; + + var r = Plugin.versionParse(range), + v = Plugin.versionParse(version); + + if (r.isRange) { + if (r.operator === '*' || version === '*') { + return true; + } + + if (r.operator === '>') { + return v.number > r.number; + } + + if (r.operator === '>=') { + return v.number >= r.number; + } + + if (r.operator === '~') { + return v.major === r.major && v.minor === r.minor && v.patch >= r.patch; + } + + if (r.operator === '^') { + if (r.major > 0) { + return v.major === r.major && v.number >= r.number; + } + + if (r.minor > 0) { + return v.minor === r.minor && v.patch >= r.patch; + } + + return v.patch === r.patch; + } + } + + return version === range || version === '*'; + }; + +})(); + + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + +/** +* The `Matter.Contact` module contains methods for creating and manipulating collision contacts. +* +* @class Contact +*/ + +var Contact = {}; + +module.exports = Contact; + +(function() { + + /** + * Creates a new contact. + * @method create + * @param {vertex} vertex + * @return {contact} A new contact + */ + Contact.create = function(vertex) { + return { + vertex: vertex, + normalImpulse: 0, + tangentImpulse: 0 + }; + }; + +})(); + + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Engine` module contains methods for creating and manipulating engines. +* An engine is a controller that manages updating the simulation of the world. +* See `Matter.Runner` for an optional game loop utility. +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Engine +*/ + +var Engine = {}; + +module.exports = Engine; + +var Sleeping = __webpack_require__(7); +var Resolver = __webpack_require__(18); +var Detector = __webpack_require__(13); +var Pairs = __webpack_require__(19); +var Events = __webpack_require__(5); +var Composite = __webpack_require__(6); +var Constraint = __webpack_require__(10); +var Common = __webpack_require__(0); +var Body = __webpack_require__(4); + +(function() { + + /** + * Creates a new engine. The options parameter is an object that specifies any properties you wish to override the defaults. + * All properties have default values, and many are pre-calculated automatically based on other properties. + * See the properties section below for detailed information on what you can pass via the `options` object. + * @method create + * @param {object} [options] + * @return {engine} engine + */ + Engine.create = function(options) { + options = options || {}; + + var defaults = { + positionIterations: 6, + velocityIterations: 4, + constraintIterations: 2, + enableSleeping: false, + events: [], + plugin: {}, + gravity: { + x: 0, + y: 1, + scale: 0.001 + }, + timing: { + timestamp: 0, + timeScale: 1, + lastDelta: 0, + lastElapsed: 0 + } + }; + + var engine = Common.extend(defaults, options); + + engine.world = options.world || Composite.create({ label: 'World' }); + engine.pairs = options.pairs || Pairs.create(); + engine.detector = options.detector || Detector.create(); + + // for temporary back compatibility only + engine.grid = { buckets: [] }; + engine.world.gravity = engine.gravity; + engine.broadphase = engine.grid; + engine.metrics = {}; + + return engine; + }; + + /** + * Moves the simulation forward in time by `delta` milliseconds. + * Triggers `beforeUpdate` and `afterUpdate` events. + * Triggers `collisionStart`, `collisionActive` and `collisionEnd` events. + * @method update + * @param {engine} engine + * @param {number} [delta=16.666] + */ + Engine.update = function(engine, delta) { + var startTime = Common.now(); + + var world = engine.world, + detector = engine.detector, + pairs = engine.pairs, + timing = engine.timing, + timestamp = timing.timestamp, + i; + + delta = typeof delta !== 'undefined' ? delta : Common._baseDelta; + delta *= timing.timeScale; + + // increment timestamp + timing.timestamp += delta; + timing.lastDelta = delta; + + // create an event object + var event = { + timestamp: timing.timestamp, + delta: delta + }; + + Events.trigger(engine, 'beforeUpdate', event); + + // get all bodies and all constraints in the world + var allBodies = Composite.allBodies(world), + allConstraints = Composite.allConstraints(world); + + // if the world has changed + if (world.isModified) { + // update the detector bodies + Detector.setBodies(detector, allBodies); + + // reset all composite modified flags + Composite.setModified(world, false, false, true); + } + + // update sleeping if enabled + if (engine.enableSleeping) + Sleeping.update(allBodies, delta); + + // apply gravity to all bodies + Engine._bodiesApplyGravity(allBodies, engine.gravity); + + // update all body position and rotation by integration + if (delta > 0) { + Engine._bodiesUpdate(allBodies, delta); + } + + // update all constraints (first pass) + Constraint.preSolveAll(allBodies); + for (i = 0; i < engine.constraintIterations; i++) { + Constraint.solveAll(allConstraints, delta); + } + Constraint.postSolveAll(allBodies); + + // find all collisions + detector.pairs = engine.pairs; + var collisions = Detector.collisions(detector); + + // update collision pairs + Pairs.update(pairs, collisions, timestamp); + + // wake up bodies involved in collisions + if (engine.enableSleeping) + Sleeping.afterCollisions(pairs.list); + + // trigger collision events + if (pairs.collisionStart.length > 0) + Events.trigger(engine, 'collisionStart', { pairs: pairs.collisionStart }); + + // iteratively resolve position between collisions + var positionDamping = Common.clamp(20 / engine.positionIterations, 0, 1); + + Resolver.preSolvePosition(pairs.list); + for (i = 0; i < engine.positionIterations; i++) { + Resolver.solvePosition(pairs.list, delta, positionDamping); + } + Resolver.postSolvePosition(allBodies); + + // update all constraints (second pass) + Constraint.preSolveAll(allBodies); + for (i = 0; i < engine.constraintIterations; i++) { + Constraint.solveAll(allConstraints, delta); + } + Constraint.postSolveAll(allBodies); + + // iteratively resolve velocity between collisions + Resolver.preSolveVelocity(pairs.list); + for (i = 0; i < engine.velocityIterations; i++) { + Resolver.solveVelocity(pairs.list, delta); + } + + // update body speed and velocity properties + Engine._bodiesUpdateVelocities(allBodies); + + // trigger collision events + if (pairs.collisionActive.length > 0) + Events.trigger(engine, 'collisionActive', { pairs: pairs.collisionActive }); + + if (pairs.collisionEnd.length > 0) + Events.trigger(engine, 'collisionEnd', { pairs: pairs.collisionEnd }); + + // clear force buffers + Engine._bodiesClearForces(allBodies); + + Events.trigger(engine, 'afterUpdate', event); + + // log the time elapsed computing this update + engine.timing.lastElapsed = Common.now() - startTime; + + return engine; + }; + + /** + * Merges two engines by keeping the configuration of `engineA` but replacing the world with the one from `engineB`. + * @method merge + * @param {engine} engineA + * @param {engine} engineB + */ + Engine.merge = function(engineA, engineB) { + Common.extend(engineA, engineB); + + if (engineB.world) { + engineA.world = engineB.world; + + Engine.clear(engineA); + + var bodies = Composite.allBodies(engineA.world); + + for (var i = 0; i < bodies.length; i++) { + var body = bodies[i]; + Sleeping.set(body, false); + body.id = Common.nextId(); + } + } + }; + + /** + * Clears the engine pairs and detector. + * @method clear + * @param {engine} engine + */ + Engine.clear = function(engine) { + Pairs.clear(engine.pairs); + Detector.clear(engine.detector); + }; + + /** + * Zeroes the `body.force` and `body.torque` force buffers. + * @method _bodiesClearForces + * @private + * @param {body[]} bodies + */ + Engine._bodiesClearForces = function(bodies) { + var bodiesLength = bodies.length; + + for (var i = 0; i < bodiesLength; i++) { + var body = bodies[i]; + + // reset force buffers + body.force.x = 0; + body.force.y = 0; + body.torque = 0; + } + }; + + /** + * Applies gravitational acceleration to all `bodies`. + * This models a [uniform gravitational field](https://en.wikipedia.org/wiki/Gravity_of_Earth), similar to near the surface of a planet. + * + * @method _bodiesApplyGravity + * @private + * @param {body[]} bodies + * @param {vector} gravity + */ + Engine._bodiesApplyGravity = function(bodies, gravity) { + var gravityScale = typeof gravity.scale !== 'undefined' ? gravity.scale : 0.001, + bodiesLength = bodies.length; + + if ((gravity.x === 0 && gravity.y === 0) || gravityScale === 0) { + return; + } + + for (var i = 0; i < bodiesLength; i++) { + var body = bodies[i]; + + if (body.isStatic || body.isSleeping) + continue; + + // add the resultant force of gravity + body.force.y += body.mass * gravity.y * gravityScale; + body.force.x += body.mass * gravity.x * gravityScale; + } + }; + + /** + * Applies `Body.update` to all given `bodies`. + * @method _bodiesUpdate + * @private + * @param {body[]} bodies + * @param {number} delta The amount of time elapsed between updates + */ + Engine._bodiesUpdate = function(bodies, delta) { + var bodiesLength = bodies.length; + + for (var i = 0; i < bodiesLength; i++) { + var body = bodies[i]; + + if (body.isStatic || body.isSleeping) + continue; + + Body.update(body, delta); + } + }; + + /** + * Applies `Body.updateVelocities` to all given `bodies`. + * @method _bodiesUpdateVelocities + * @private + * @param {body[]} bodies + */ + Engine._bodiesUpdateVelocities = function(bodies) { + var bodiesLength = bodies.length; + + for (var i = 0; i < bodiesLength; i++) { + Body.updateVelocities(bodies[i]); + } + }; + + /** + * A deprecated alias for `Runner.run`, use `Matter.Runner.run(engine)` instead and see `Matter.Runner` for more information. + * @deprecated use Matter.Runner.run(engine) instead + * @method run + * @param {engine} engine + */ + + /** + * Fired just before an update + * + * @event beforeUpdate + * @param {object} event An event object + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {number} event.delta The delta time in milliseconds value used in the update + * @param {engine} event.source The source object of the event + * @param {string} event.name The name of the event + */ + + /** + * Fired after engine update and all collision events + * + * @event afterUpdate + * @param {object} event An event object + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {number} event.delta The delta time in milliseconds value used in the update + * @param {engine} event.source The source object of the event + * @param {string} event.name The name of the event + */ + + /** + * Fired after engine update, provides a list of all pairs that have started to collide in the current tick (if any) + * + * @event collisionStart + * @param {object} event An event object + * @param {pair[]} event.pairs List of affected pairs + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {number} event.delta The delta time in milliseconds value used in the update + * @param {engine} event.source The source object of the event + * @param {string} event.name The name of the event + */ + + /** + * Fired after engine update, provides a list of all pairs that are colliding in the current tick (if any) + * + * @event collisionActive + * @param {object} event An event object + * @param {pair[]} event.pairs List of affected pairs + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {number} event.delta The delta time in milliseconds value used in the update + * @param {engine} event.source The source object of the event + * @param {string} event.name The name of the event + */ + + /** + * Fired after engine update, provides a list of all pairs that have ended collision in the current tick (if any) + * + * @event collisionEnd + * @param {object} event An event object + * @param {pair[]} event.pairs List of affected pairs + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {number} event.delta The delta time in milliseconds value used in the update + * @param {engine} event.source The source object of the event + * @param {string} event.name The name of the event + */ + + /* + * + * Properties Documentation + * + */ + + /** + * An integer `Number` that specifies the number of position iterations to perform each update. + * The higher the value, the higher quality the simulation will be at the expense of performance. + * + * @property positionIterations + * @type number + * @default 6 + */ + + /** + * An integer `Number` that specifies the number of velocity iterations to perform each update. + * The higher the value, the higher quality the simulation will be at the expense of performance. + * + * @property velocityIterations + * @type number + * @default 4 + */ + + /** + * An integer `Number` that specifies the number of constraint iterations to perform each update. + * The higher the value, the higher quality the simulation will be at the expense of performance. + * The default value of `2` is usually very adequate. + * + * @property constraintIterations + * @type number + * @default 2 + */ + + /** + * A flag that specifies whether the engine should allow sleeping via the `Matter.Sleeping` module. + * Sleeping can improve stability and performance, but often at the expense of accuracy. + * + * @property enableSleeping + * @type boolean + * @default false + */ + + /** + * An `Object` containing properties regarding the timing systems of the engine. + * + * @property timing + * @type object + */ + + /** + * A `Number` that specifies the global scaling factor of time for all bodies. + * A value of `0` freezes the simulation. + * A value of `0.1` gives a slow-motion effect. + * A value of `1.2` gives a speed-up effect. + * + * @property timing.timeScale + * @type number + * @default 1 + */ + + /** + * A `Number` that specifies the current simulation-time in milliseconds starting from `0`. + * It is incremented on every `Engine.update` by the given `delta` argument. + * + * @property timing.timestamp + * @type number + * @default 0 + */ + + /** + * A `Number` that represents the total execution time elapsed during the last `Engine.update` in milliseconds. + * It is updated by timing from the start of the last `Engine.update` call until it ends. + * + * This value will also include the total execution time of all event handlers directly or indirectly triggered by the engine update. + * + * @property timing.lastElapsed + * @type number + * @default 0 + */ + + /** + * A `Number` that represents the `delta` value used in the last engine update. + * + * @property timing.lastDelta + * @type number + * @default 0 + */ + + /** + * A `Matter.Detector` instance. + * + * @property detector + * @type detector + * @default a Matter.Detector instance + */ + + /** + * A `Matter.Grid` instance. + * + * @deprecated replaced by `engine.detector` + * @property grid + * @type grid + * @default a Matter.Grid instance + */ + + /** + * Replaced by and now alias for `engine.grid`. + * + * @deprecated replaced by `engine.detector` + * @property broadphase + * @type grid + * @default a Matter.Grid instance + */ + + /** + * The root `Matter.Composite` instance that will contain all bodies, constraints and other composites to be simulated by this engine. + * + * @property world + * @type composite + * @default a Matter.Composite instance + */ + + /** + * An object reserved for storing plugin-specific properties. + * + * @property plugin + * @type {} + */ + + /** + * An optional gravitational acceleration applied to all bodies in `engine.world` on every update. + * + * This models a [uniform gravitational field](https://en.wikipedia.org/wiki/Gravity_of_Earth), similar to near the surface of a planet. For gravity in other contexts, disable this and apply forces as needed. + * + * To disable set the `scale` component to `0`. + * + * This is split into three components for ease of use: + * a normalised direction (`x` and `y`) and magnitude (`scale`). + * + * @property gravity + * @type object + */ + + /** + * The gravitational direction normal `x` component, to be multiplied by `gravity.scale`. + * + * @property gravity.x + * @type object + * @default 0 + */ + + /** + * The gravitational direction normal `y` component, to be multiplied by `gravity.scale`. + * + * @property gravity.y + * @type object + * @default 1 + */ + + /** + * The magnitude of the gravitational acceleration. + * + * @property gravity.scale + * @type object + * @default 0.001 + */ + +})(); + + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Resolver` module contains methods for resolving collision pairs. +* +* @class Resolver +*/ + +var Resolver = {}; + +module.exports = Resolver; + +var Vertices = __webpack_require__(3); +var Common = __webpack_require__(0); +var Bounds = __webpack_require__(1); + +(function() { + + Resolver._restingThresh = 2; + Resolver._restingThreshTangent = Math.sqrt(6); + Resolver._positionDampen = 0.9; + Resolver._positionWarming = 0.8; + Resolver._frictionNormalMultiplier = 5; + Resolver._frictionMaxStatic = Number.MAX_VALUE; + + /** + * Prepare pairs for position solving. + * @method preSolvePosition + * @param {pair[]} pairs + */ + Resolver.preSolvePosition = function(pairs) { + var i, + pair, + activeCount, + pairsLength = pairs.length; + + // find total contacts on each body + for (i = 0; i < pairsLength; i++) { + pair = pairs[i]; + + if (!pair.isActive) + continue; + + activeCount = pair.activeContacts.length; + pair.collision.parentA.totalContacts += activeCount; + pair.collision.parentB.totalContacts += activeCount; + } + }; + + /** + * Find a solution for pair positions. + * @method solvePosition + * @param {pair[]} pairs + * @param {number} delta + * @param {number} [damping=1] + */ + Resolver.solvePosition = function(pairs, delta, damping) { + var i, + pair, + collision, + bodyA, + bodyB, + normal, + contactShare, + positionImpulse, + positionDampen = Resolver._positionDampen * (damping || 1), + slopDampen = Common.clamp(delta / Common._baseDelta, 0, 1), + pairsLength = pairs.length; + + // find impulses required to resolve penetration + for (i = 0; i < pairsLength; i++) { + pair = pairs[i]; + + if (!pair.isActive || pair.isSensor) + continue; + + collision = pair.collision; + bodyA = collision.parentA; + bodyB = collision.parentB; + normal = collision.normal; + + // get current separation between body edges involved in collision + pair.separation = + normal.x * (bodyB.positionImpulse.x + collision.penetration.x - bodyA.positionImpulse.x) + + normal.y * (bodyB.positionImpulse.y + collision.penetration.y - bodyA.positionImpulse.y); + } + + for (i = 0; i < pairsLength; i++) { + pair = pairs[i]; + + if (!pair.isActive || pair.isSensor) + continue; + + collision = pair.collision; + bodyA = collision.parentA; + bodyB = collision.parentB; + normal = collision.normal; + positionImpulse = pair.separation - pair.slop * slopDampen; + + if (bodyA.isStatic || bodyB.isStatic) + positionImpulse *= 2; + + if (!(bodyA.isStatic || bodyA.isSleeping)) { + contactShare = positionDampen / bodyA.totalContacts; + bodyA.positionImpulse.x += normal.x * positionImpulse * contactShare; + bodyA.positionImpulse.y += normal.y * positionImpulse * contactShare; + } + + if (!(bodyB.isStatic || bodyB.isSleeping)) { + contactShare = positionDampen / bodyB.totalContacts; + bodyB.positionImpulse.x -= normal.x * positionImpulse * contactShare; + bodyB.positionImpulse.y -= normal.y * positionImpulse * contactShare; + } + } + }; + + /** + * Apply position resolution. + * @method postSolvePosition + * @param {body[]} bodies + */ + Resolver.postSolvePosition = function(bodies) { + var positionWarming = Resolver._positionWarming, + bodiesLength = bodies.length, + verticesTranslate = Vertices.translate, + boundsUpdate = Bounds.update; + + for (var i = 0; i < bodiesLength; i++) { + var body = bodies[i], + positionImpulse = body.positionImpulse, + positionImpulseX = positionImpulse.x, + positionImpulseY = positionImpulse.y, + velocity = body.velocity; + + // reset contact count + body.totalContacts = 0; + + if (positionImpulseX !== 0 || positionImpulseY !== 0) { + // update body geometry + for (var j = 0; j < body.parts.length; j++) { + var part = body.parts[j]; + verticesTranslate(part.vertices, positionImpulse); + boundsUpdate(part.bounds, part.vertices, velocity); + part.position.x += positionImpulseX; + part.position.y += positionImpulseY; + } + + // move the body without changing velocity + body.positionPrev.x += positionImpulseX; + body.positionPrev.y += positionImpulseY; + + if (positionImpulseX * velocity.x + positionImpulseY * velocity.y < 0) { + // reset cached impulse if the body has velocity along it + positionImpulse.x = 0; + positionImpulse.y = 0; + } else { + // warm the next iteration + positionImpulse.x *= positionWarming; + positionImpulse.y *= positionWarming; + } + } + } + }; + + /** + * Prepare pairs for velocity solving. + * @method preSolveVelocity + * @param {pair[]} pairs + */ + Resolver.preSolveVelocity = function(pairs) { + var pairsLength = pairs.length, + i, + j; + + for (i = 0; i < pairsLength; i++) { + var pair = pairs[i]; + + if (!pair.isActive || pair.isSensor) + continue; + + var contacts = pair.activeContacts, + contactsLength = contacts.length, + collision = pair.collision, + bodyA = collision.parentA, + bodyB = collision.parentB, + normal = collision.normal, + tangent = collision.tangent; + + // resolve each contact + for (j = 0; j < contactsLength; j++) { + var contact = contacts[j], + contactVertex = contact.vertex, + normalImpulse = contact.normalImpulse, + tangentImpulse = contact.tangentImpulse; + + if (normalImpulse !== 0 || tangentImpulse !== 0) { + // total impulse from contact + var impulseX = normal.x * normalImpulse + tangent.x * tangentImpulse, + impulseY = normal.y * normalImpulse + tangent.y * tangentImpulse; + + // apply impulse from contact + if (!(bodyA.isStatic || bodyA.isSleeping)) { + bodyA.positionPrev.x += impulseX * bodyA.inverseMass; + bodyA.positionPrev.y += impulseY * bodyA.inverseMass; + bodyA.anglePrev += bodyA.inverseInertia * ( + (contactVertex.x - bodyA.position.x) * impulseY + - (contactVertex.y - bodyA.position.y) * impulseX + ); + } + + if (!(bodyB.isStatic || bodyB.isSleeping)) { + bodyB.positionPrev.x -= impulseX * bodyB.inverseMass; + bodyB.positionPrev.y -= impulseY * bodyB.inverseMass; + bodyB.anglePrev -= bodyB.inverseInertia * ( + (contactVertex.x - bodyB.position.x) * impulseY + - (contactVertex.y - bodyB.position.y) * impulseX + ); + } + } + } + } + }; + + /** + * Find a solution for pair velocities. + * @method solveVelocity + * @param {pair[]} pairs + * @param {number} delta + */ + Resolver.solveVelocity = function(pairs, delta) { + var timeScale = delta / Common._baseDelta, + timeScaleSquared = timeScale * timeScale, + timeScaleCubed = timeScaleSquared * timeScale, + restingThresh = -Resolver._restingThresh * timeScale, + restingThreshTangent = Resolver._restingThreshTangent, + frictionNormalMultiplier = Resolver._frictionNormalMultiplier * timeScale, + frictionMaxStatic = Resolver._frictionMaxStatic, + pairsLength = pairs.length, + tangentImpulse, + maxFriction, + i, + j; + + for (i = 0; i < pairsLength; i++) { + var pair = pairs[i]; + + if (!pair.isActive || pair.isSensor) + continue; + + var collision = pair.collision, + bodyA = collision.parentA, + bodyB = collision.parentB, + bodyAVelocity = bodyA.velocity, + bodyBVelocity = bodyB.velocity, + normalX = collision.normal.x, + normalY = collision.normal.y, + tangentX = collision.tangent.x, + tangentY = collision.tangent.y, + contacts = pair.activeContacts, + contactsLength = contacts.length, + contactShare = 1 / contactsLength, + inverseMassTotal = bodyA.inverseMass + bodyB.inverseMass, + friction = pair.friction * pair.frictionStatic * frictionNormalMultiplier; + + // update body velocities + bodyAVelocity.x = bodyA.position.x - bodyA.positionPrev.x; + bodyAVelocity.y = bodyA.position.y - bodyA.positionPrev.y; + bodyBVelocity.x = bodyB.position.x - bodyB.positionPrev.x; + bodyBVelocity.y = bodyB.position.y - bodyB.positionPrev.y; + bodyA.angularVelocity = bodyA.angle - bodyA.anglePrev; + bodyB.angularVelocity = bodyB.angle - bodyB.anglePrev; + + // resolve each contact + for (j = 0; j < contactsLength; j++) { + var contact = contacts[j], + contactVertex = contact.vertex; + + var offsetAX = contactVertex.x - bodyA.position.x, + offsetAY = contactVertex.y - bodyA.position.y, + offsetBX = contactVertex.x - bodyB.position.x, + offsetBY = contactVertex.y - bodyB.position.y; + + var velocityPointAX = bodyAVelocity.x - offsetAY * bodyA.angularVelocity, + velocityPointAY = bodyAVelocity.y + offsetAX * bodyA.angularVelocity, + velocityPointBX = bodyBVelocity.x - offsetBY * bodyB.angularVelocity, + velocityPointBY = bodyBVelocity.y + offsetBX * bodyB.angularVelocity; + + var relativeVelocityX = velocityPointAX - velocityPointBX, + relativeVelocityY = velocityPointAY - velocityPointBY; + + var normalVelocity = normalX * relativeVelocityX + normalY * relativeVelocityY, + tangentVelocity = tangentX * relativeVelocityX + tangentY * relativeVelocityY; + + // coulomb friction + var normalOverlap = pair.separation + normalVelocity; + var normalForce = Math.min(normalOverlap, 1); + normalForce = normalOverlap < 0 ? 0 : normalForce; + + var frictionLimit = normalForce * friction; + + if (tangentVelocity < -frictionLimit || tangentVelocity > frictionLimit) { + maxFriction = (tangentVelocity > 0 ? tangentVelocity : -tangentVelocity); + tangentImpulse = pair.friction * (tangentVelocity > 0 ? 1 : -1) * timeScaleCubed; + + if (tangentImpulse < -maxFriction) { + tangentImpulse = -maxFriction; + } else if (tangentImpulse > maxFriction) { + tangentImpulse = maxFriction; + } + } else { + tangentImpulse = tangentVelocity; + maxFriction = frictionMaxStatic; + } + + // account for mass, inertia and contact offset + var oAcN = offsetAX * normalY - offsetAY * normalX, + oBcN = offsetBX * normalY - offsetBY * normalX, + share = contactShare / (inverseMassTotal + bodyA.inverseInertia * oAcN * oAcN + bodyB.inverseInertia * oBcN * oBcN); + + // raw impulses + var normalImpulse = (1 + pair.restitution) * normalVelocity * share; + tangentImpulse *= share; + + // handle high velocity and resting collisions separately + if (normalVelocity < restingThresh) { + // high normal velocity so clear cached contact normal impulse + contact.normalImpulse = 0; + } else { + // solve resting collision constraints using Erin Catto's method (GDC08) + // impulse constraint tends to 0 + var contactNormalImpulse = contact.normalImpulse; + contact.normalImpulse += normalImpulse; + if (contact.normalImpulse > 0) contact.normalImpulse = 0; + normalImpulse = contact.normalImpulse - contactNormalImpulse; + } + + // handle high velocity and resting collisions separately + if (tangentVelocity < -restingThreshTangent || tangentVelocity > restingThreshTangent) { + // high tangent velocity so clear cached contact tangent impulse + contact.tangentImpulse = 0; + } else { + // solve resting collision constraints using Erin Catto's method (GDC08) + // tangent impulse tends to -tangentSpeed or +tangentSpeed + var contactTangentImpulse = contact.tangentImpulse; + contact.tangentImpulse += tangentImpulse; + if (contact.tangentImpulse < -maxFriction) contact.tangentImpulse = -maxFriction; + if (contact.tangentImpulse > maxFriction) contact.tangentImpulse = maxFriction; + tangentImpulse = contact.tangentImpulse - contactTangentImpulse; + } + + // total impulse from contact + var impulseX = normalX * normalImpulse + tangentX * tangentImpulse, + impulseY = normalY * normalImpulse + tangentY * tangentImpulse; + + // apply impulse from contact + if (!(bodyA.isStatic || bodyA.isSleeping)) { + bodyA.positionPrev.x += impulseX * bodyA.inverseMass; + bodyA.positionPrev.y += impulseY * bodyA.inverseMass; + bodyA.anglePrev += (offsetAX * impulseY - offsetAY * impulseX) * bodyA.inverseInertia; + } + + if (!(bodyB.isStatic || bodyB.isSleeping)) { + bodyB.positionPrev.x -= impulseX * bodyB.inverseMass; + bodyB.positionPrev.y -= impulseY * bodyB.inverseMass; + bodyB.anglePrev -= (offsetBX * impulseY - offsetBY * impulseX) * bodyB.inverseInertia; + } + } + } + }; + +})(); + + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Pairs` module contains methods for creating and manipulating collision pair sets. +* +* @class Pairs +*/ + +var Pairs = {}; + +module.exports = Pairs; + +var Pair = __webpack_require__(9); +var Common = __webpack_require__(0); + +(function() { + + /** + * Creates a new pairs structure. + * @method create + * @param {object} options + * @return {pairs} A new pairs structure + */ + Pairs.create = function(options) { + return Common.extend({ + table: {}, + list: [], + collisionStart: [], + collisionActive: [], + collisionEnd: [] + }, options); + }; + + /** + * Updates pairs given a list of collisions. + * @method update + * @param {object} pairs + * @param {collision[]} collisions + * @param {number} timestamp + */ + Pairs.update = function(pairs, collisions, timestamp) { + var pairsList = pairs.list, + pairsListLength = pairsList.length, + pairsTable = pairs.table, + collisionsLength = collisions.length, + collisionStart = pairs.collisionStart, + collisionEnd = pairs.collisionEnd, + collisionActive = pairs.collisionActive, + collision, + pairIndex, + pair, + i; + + // clear collision state arrays, but maintain old reference + collisionStart.length = 0; + collisionEnd.length = 0; + collisionActive.length = 0; + + for (i = 0; i < pairsListLength; i++) { + pairsList[i].confirmedActive = false; + } + + for (i = 0; i < collisionsLength; i++) { + collision = collisions[i]; + pair = collision.pair; + + if (pair) { + // pair already exists (but may or may not be active) + if (pair.isActive) { + // pair exists and is active + collisionActive.push(pair); + } else { + // pair exists but was inactive, so a collision has just started again + collisionStart.push(pair); + } + + // update the pair + Pair.update(pair, collision, timestamp); + pair.confirmedActive = true; + } else { + // pair did not exist, create a new pair + pair = Pair.create(collision, timestamp); + pairsTable[pair.id] = pair; + + // push the new pair + collisionStart.push(pair); + pairsList.push(pair); + } + } + + // find pairs that are no longer active + var removePairIndex = []; + pairsListLength = pairsList.length; + + for (i = 0; i < pairsListLength; i++) { + pair = pairsList[i]; + + if (!pair.confirmedActive) { + Pair.setActive(pair, false, timestamp); + collisionEnd.push(pair); + + if (!pair.collision.bodyA.isSleeping && !pair.collision.bodyB.isSleeping) { + removePairIndex.push(i); + } + } + } + + // remove inactive pairs + for (i = 0; i < removePairIndex.length; i++) { + pairIndex = removePairIndex[i] - i; + pair = pairsList[pairIndex]; + pairsList.splice(pairIndex, 1); + delete pairsTable[pair.id]; + } + }; + + /** + * Clears the given pairs structure. + * @method clear + * @param {pairs} pairs + * @return {pairs} pairs + */ + Pairs.clear = function(pairs) { + pairs.table = {}; + pairs.list.length = 0; + pairs.collisionStart.length = 0; + pairs.collisionActive.length = 0; + pairs.collisionEnd.length = 0; + return pairs; + }; + +})(); + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +var Matter = module.exports = __webpack_require__(21); + +Matter.Axes = __webpack_require__(11); +Matter.Bodies = __webpack_require__(12); +Matter.Body = __webpack_require__(4); +Matter.Bounds = __webpack_require__(1); +Matter.Collision = __webpack_require__(8); +Matter.Common = __webpack_require__(0); +Matter.Composite = __webpack_require__(6); +Matter.Composites = __webpack_require__(22); +Matter.Constraint = __webpack_require__(10); +Matter.Contact = __webpack_require__(16); +Matter.Detector = __webpack_require__(13); +Matter.Engine = __webpack_require__(17); +Matter.Events = __webpack_require__(5); +Matter.Grid = __webpack_require__(23); +Matter.Mouse = __webpack_require__(14); +Matter.MouseConstraint = __webpack_require__(24); +Matter.Pair = __webpack_require__(9); +Matter.Pairs = __webpack_require__(19); +Matter.Plugin = __webpack_require__(15); +Matter.Query = __webpack_require__(25); +Matter.Render = __webpack_require__(26); +Matter.Resolver = __webpack_require__(18); +Matter.Runner = __webpack_require__(27); +Matter.SAT = __webpack_require__(28); +Matter.Sleeping = __webpack_require__(7); +Matter.Svg = __webpack_require__(29); +Matter.Vector = __webpack_require__(2); +Matter.Vertices = __webpack_require__(3); +Matter.World = __webpack_require__(30); + +// temporary back compatibility +Matter.Engine.run = Matter.Runner.run; +Matter.Common.deprecated(Matter.Engine, 'run', 'Engine.run ➤ use Matter.Runner.run(engine) instead'); + + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter` module is the top level namespace. It also includes a function for installing plugins on top of the library. +* +* @class Matter +*/ + +var Matter = {}; + +module.exports = Matter; + +var Plugin = __webpack_require__(15); +var Common = __webpack_require__(0); + +(function() { + + /** + * The library name. + * @property name + * @readOnly + * @type {String} + */ + Matter.name = 'matter-js'; + + /** + * The library version. + * @property version + * @readOnly + * @type {String} + */ + Matter.version = true ? "0.19.0" : undefined; + + /** + * A list of plugin dependencies to be installed. These are normally set and installed through `Matter.use`. + * Alternatively you may set `Matter.uses` manually and install them by calling `Plugin.use(Matter)`. + * @property uses + * @type {Array} + */ + Matter.uses = []; + + /** + * The plugins that have been installed through `Matter.Plugin.install`. Read only. + * @property used + * @readOnly + * @type {Array} + */ + Matter.used = []; + + /** + * Installs the given plugins on the `Matter` namespace. + * This is a short-hand for `Plugin.use`, see it for more information. + * Call this function once at the start of your code, with all of the plugins you wish to install as arguments. + * Avoid calling this function multiple times unless you intend to manually control installation order. + * @method use + * @param ...plugin {Function} The plugin(s) to install on `base` (multi-argument). + */ + Matter.use = function() { + Plugin.use(Matter, Array.prototype.slice.call(arguments)); + }; + + /** + * Chains a function to excute before the original function on the given `path` relative to `Matter`. + * See also docs for `Common.chain`. + * @method before + * @param {string} path The path relative to `Matter` + * @param {function} func The function to chain before the original + * @return {function} The chained function that replaced the original + */ + Matter.before = function(path, func) { + path = path.replace(/^Matter./, ''); + return Common.chainPathBefore(Matter, path, func); + }; + + /** + * Chains a function to excute after the original function on the given `path` relative to `Matter`. + * See also docs for `Common.chain`. + * @method after + * @param {string} path The path relative to `Matter` + * @param {function} func The function to chain after the original + * @return {function} The chained function that replaced the original + */ + Matter.after = function(path, func) { + path = path.replace(/^Matter./, ''); + return Common.chainPathAfter(Matter, path, func); + }; + +})(); + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Composites` module contains factory methods for creating composite bodies +* with commonly used configurations (such as stacks and chains). +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Composites +*/ + +var Composites = {}; + +module.exports = Composites; + +var Composite = __webpack_require__(6); +var Constraint = __webpack_require__(10); +var Common = __webpack_require__(0); +var Body = __webpack_require__(4); +var Bodies = __webpack_require__(12); +var deprecated = Common.deprecated; + +(function() { + + /** + * Create a new composite containing bodies created in the callback in a grid arrangement. + * This function uses the body's bounds to prevent overlaps. + * @method stack + * @param {number} xx + * @param {number} yy + * @param {number} columns + * @param {number} rows + * @param {number} columnGap + * @param {number} rowGap + * @param {function} callback + * @return {composite} A new composite containing objects created in the callback + */ + Composites.stack = function(xx, yy, columns, rows, columnGap, rowGap, callback) { + var stack = Composite.create({ label: 'Stack' }), + x = xx, + y = yy, + lastBody, + i = 0; + + for (var row = 0; row < rows; row++) { + var maxHeight = 0; + + for (var column = 0; column < columns; column++) { + var body = callback(x, y, column, row, lastBody, i); + + if (body) { + var bodyHeight = body.bounds.max.y - body.bounds.min.y, + bodyWidth = body.bounds.max.x - body.bounds.min.x; + + if (bodyHeight > maxHeight) + maxHeight = bodyHeight; + + Body.translate(body, { x: bodyWidth * 0.5, y: bodyHeight * 0.5 }); + + x = body.bounds.max.x + columnGap; + + Composite.addBody(stack, body); + + lastBody = body; + i += 1; + } else { + x += columnGap; + } + } + + y += maxHeight + rowGap; + x = xx; + } + + return stack; + }; + + /** + * Chains all bodies in the given composite together using constraints. + * @method chain + * @param {composite} composite + * @param {number} xOffsetA + * @param {number} yOffsetA + * @param {number} xOffsetB + * @param {number} yOffsetB + * @param {object} options + * @return {composite} A new composite containing objects chained together with constraints + */ + Composites.chain = function(composite, xOffsetA, yOffsetA, xOffsetB, yOffsetB, options) { + var bodies = composite.bodies; + + for (var i = 1; i < bodies.length; i++) { + var bodyA = bodies[i - 1], + bodyB = bodies[i], + bodyAHeight = bodyA.bounds.max.y - bodyA.bounds.min.y, + bodyAWidth = bodyA.bounds.max.x - bodyA.bounds.min.x, + bodyBHeight = bodyB.bounds.max.y - bodyB.bounds.min.y, + bodyBWidth = bodyB.bounds.max.x - bodyB.bounds.min.x; + + var defaults = { + bodyA: bodyA, + pointA: { x: bodyAWidth * xOffsetA, y: bodyAHeight * yOffsetA }, + bodyB: bodyB, + pointB: { x: bodyBWidth * xOffsetB, y: bodyBHeight * yOffsetB } + }; + + var constraint = Common.extend(defaults, options); + + Composite.addConstraint(composite, Constraint.create(constraint)); + } + + composite.label += ' Chain'; + + return composite; + }; + + /** + * Connects bodies in the composite with constraints in a grid pattern, with optional cross braces. + * @method mesh + * @param {composite} composite + * @param {number} columns + * @param {number} rows + * @param {boolean} crossBrace + * @param {object} options + * @return {composite} The composite containing objects meshed together with constraints + */ + Composites.mesh = function(composite, columns, rows, crossBrace, options) { + var bodies = composite.bodies, + row, + col, + bodyA, + bodyB, + bodyC; + + for (row = 0; row < rows; row++) { + for (col = 1; col < columns; col++) { + bodyA = bodies[(col - 1) + (row * columns)]; + bodyB = bodies[col + (row * columns)]; + Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyA, bodyB: bodyB }, options))); + } + + if (row > 0) { + for (col = 0; col < columns; col++) { + bodyA = bodies[col + ((row - 1) * columns)]; + bodyB = bodies[col + (row * columns)]; + Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyA, bodyB: bodyB }, options))); + + if (crossBrace && col > 0) { + bodyC = bodies[(col - 1) + ((row - 1) * columns)]; + Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyC, bodyB: bodyB }, options))); + } + + if (crossBrace && col < columns - 1) { + bodyC = bodies[(col + 1) + ((row - 1) * columns)]; + Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyC, bodyB: bodyB }, options))); + } + } + } + } + + composite.label += ' Mesh'; + + return composite; + }; + + /** + * Create a new composite containing bodies created in the callback in a pyramid arrangement. + * This function uses the body's bounds to prevent overlaps. + * @method pyramid + * @param {number} xx + * @param {number} yy + * @param {number} columns + * @param {number} rows + * @param {number} columnGap + * @param {number} rowGap + * @param {function} callback + * @return {composite} A new composite containing objects created in the callback + */ + Composites.pyramid = function(xx, yy, columns, rows, columnGap, rowGap, callback) { + return Composites.stack(xx, yy, columns, rows, columnGap, rowGap, function(x, y, column, row, lastBody, i) { + var actualRows = Math.min(rows, Math.ceil(columns / 2)), + lastBodyWidth = lastBody ? lastBody.bounds.max.x - lastBody.bounds.min.x : 0; + + if (row > actualRows) + return; + + // reverse row order + row = actualRows - row; + + var start = row, + end = columns - 1 - row; + + if (column < start || column > end) + return; + + // retroactively fix the first body's position, since width was unknown + if (i === 1) { + Body.translate(lastBody, { x: (column + (columns % 2 === 1 ? 1 : -1)) * lastBodyWidth, y: 0 }); + } + + var xOffset = lastBody ? column * lastBodyWidth : 0; + + return callback(xx + xOffset + column * columnGap, y, column, row, lastBody, i); + }); + }; + + /** + * This has now moved to the [newtonsCradle example](https://github.com/liabru/matter-js/blob/master/examples/newtonsCradle.js), follow that instead as this function is deprecated here. + * @deprecated moved to newtonsCradle example + * @method newtonsCradle + * @param {number} xx + * @param {number} yy + * @param {number} number + * @param {number} size + * @param {number} length + * @return {composite} A new composite newtonsCradle body + */ + Composites.newtonsCradle = function(xx, yy, number, size, length) { + var newtonsCradle = Composite.create({ label: 'Newtons Cradle' }); + + for (var i = 0; i < number; i++) { + var separation = 1.9, + circle = Bodies.circle(xx + i * (size * separation), yy + length, size, + { inertia: Infinity, restitution: 1, friction: 0, frictionAir: 0.0001, slop: 1 }), + constraint = Constraint.create({ pointA: { x: xx + i * (size * separation), y: yy }, bodyB: circle }); + + Composite.addBody(newtonsCradle, circle); + Composite.addConstraint(newtonsCradle, constraint); + } + + return newtonsCradle; + }; + + deprecated(Composites, 'newtonsCradle', 'Composites.newtonsCradle ➤ moved to newtonsCradle example'); + + /** + * This has now moved to the [car example](https://github.com/liabru/matter-js/blob/master/examples/car.js), follow that instead as this function is deprecated here. + * @deprecated moved to car example + * @method car + * @param {number} xx + * @param {number} yy + * @param {number} width + * @param {number} height + * @param {number} wheelSize + * @return {composite} A new composite car body + */ + Composites.car = function(xx, yy, width, height, wheelSize) { + var group = Body.nextGroup(true), + wheelBase = 20, + wheelAOffset = -width * 0.5 + wheelBase, + wheelBOffset = width * 0.5 - wheelBase, + wheelYOffset = 0; + + var car = Composite.create({ label: 'Car' }), + body = Bodies.rectangle(xx, yy, width, height, { + collisionFilter: { + group: group + }, + chamfer: { + radius: height * 0.5 + }, + density: 0.0002 + }); + + var wheelA = Bodies.circle(xx + wheelAOffset, yy + wheelYOffset, wheelSize, { + collisionFilter: { + group: group + }, + friction: 0.8 + }); + + var wheelB = Bodies.circle(xx + wheelBOffset, yy + wheelYOffset, wheelSize, { + collisionFilter: { + group: group + }, + friction: 0.8 + }); + + var axelA = Constraint.create({ + bodyB: body, + pointB: { x: wheelAOffset, y: wheelYOffset }, + bodyA: wheelA, + stiffness: 1, + length: 0 + }); + + var axelB = Constraint.create({ + bodyB: body, + pointB: { x: wheelBOffset, y: wheelYOffset }, + bodyA: wheelB, + stiffness: 1, + length: 0 + }); + + Composite.addBody(car, body); + Composite.addBody(car, wheelA); + Composite.addBody(car, wheelB); + Composite.addConstraint(car, axelA); + Composite.addConstraint(car, axelB); + + return car; + }; + + deprecated(Composites, 'car', 'Composites.car ➤ moved to car example'); + + /** + * This has now moved to the [softBody example](https://github.com/liabru/matter-js/blob/master/examples/softBody.js) + * and the [cloth example](https://github.com/liabru/matter-js/blob/master/examples/cloth.js), follow those instead as this function is deprecated here. + * @deprecated moved to softBody and cloth examples + * @method softBody + * @param {number} xx + * @param {number} yy + * @param {number} columns + * @param {number} rows + * @param {number} columnGap + * @param {number} rowGap + * @param {boolean} crossBrace + * @param {number} particleRadius + * @param {} particleOptions + * @param {} constraintOptions + * @return {composite} A new composite softBody + */ + Composites.softBody = function(xx, yy, columns, rows, columnGap, rowGap, crossBrace, particleRadius, particleOptions, constraintOptions) { + particleOptions = Common.extend({ inertia: Infinity }, particleOptions); + constraintOptions = Common.extend({ stiffness: 0.2, render: { type: 'line', anchors: false } }, constraintOptions); + + var softBody = Composites.stack(xx, yy, columns, rows, columnGap, rowGap, function(x, y) { + return Bodies.circle(x, y, particleRadius, particleOptions); + }); + + Composites.mesh(softBody, columns, rows, crossBrace, constraintOptions); + + softBody.label = 'Soft Body'; + + return softBody; + }; + + deprecated(Composites, 'softBody', 'Composites.softBody ➤ moved to softBody and cloth examples'); +})(); + + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* This module has now been replaced by `Matter.Detector`. +* +* All usage should be migrated to `Matter.Detector` or another alternative. +* For back-compatibility purposes this module will remain for a short term and then later removed in a future release. +* +* The `Matter.Grid` module contains methods for creating and manipulating collision broadphase grid structures. +* +* @class Grid +* @deprecated +*/ + +var Grid = {}; + +module.exports = Grid; + +var Pair = __webpack_require__(9); +var Common = __webpack_require__(0); +var deprecated = Common.deprecated; + +(function() { + + /** + * Creates a new grid. + * @deprecated replaced by Matter.Detector + * @method create + * @param {} options + * @return {grid} A new grid + */ + Grid.create = function(options) { + var defaults = { + buckets: {}, + pairs: {}, + pairsList: [], + bucketWidth: 48, + bucketHeight: 48 + }; + + return Common.extend(defaults, options); + }; + + /** + * The width of a single grid bucket. + * + * @property bucketWidth + * @type number + * @default 48 + */ + + /** + * The height of a single grid bucket. + * + * @property bucketHeight + * @type number + * @default 48 + */ + + /** + * Updates the grid. + * @deprecated replaced by Matter.Detector + * @method update + * @param {grid} grid + * @param {body[]} bodies + * @param {engine} engine + * @param {boolean} forceUpdate + */ + Grid.update = function(grid, bodies, engine, forceUpdate) { + var i, col, row, + world = engine.world, + buckets = grid.buckets, + bucket, + bucketId, + gridChanged = false; + + for (i = 0; i < bodies.length; i++) { + var body = bodies[i]; + + if (body.isSleeping && !forceUpdate) + continue; + + // temporary back compatibility bounds check + if (world.bounds && (body.bounds.max.x < world.bounds.min.x || body.bounds.min.x > world.bounds.max.x + || body.bounds.max.y < world.bounds.min.y || body.bounds.min.y > world.bounds.max.y)) + continue; + + var newRegion = Grid._getRegion(grid, body); + + // if the body has changed grid region + if (!body.region || newRegion.id !== body.region.id || forceUpdate) { + + if (!body.region || forceUpdate) + body.region = newRegion; + + var union = Grid._regionUnion(newRegion, body.region); + + // update grid buckets affected by region change + // iterate over the union of both regions + for (col = union.startCol; col <= union.endCol; col++) { + for (row = union.startRow; row <= union.endRow; row++) { + bucketId = Grid._getBucketId(col, row); + bucket = buckets[bucketId]; + + var isInsideNewRegion = (col >= newRegion.startCol && col <= newRegion.endCol + && row >= newRegion.startRow && row <= newRegion.endRow); + + var isInsideOldRegion = (col >= body.region.startCol && col <= body.region.endCol + && row >= body.region.startRow && row <= body.region.endRow); + + // remove from old region buckets + if (!isInsideNewRegion && isInsideOldRegion) { + if (isInsideOldRegion) { + if (bucket) + Grid._bucketRemoveBody(grid, bucket, body); + } + } + + // add to new region buckets + if (body.region === newRegion || (isInsideNewRegion && !isInsideOldRegion) || forceUpdate) { + if (!bucket) + bucket = Grid._createBucket(buckets, bucketId); + Grid._bucketAddBody(grid, bucket, body); + } + } + } + + // set the new region + body.region = newRegion; + + // flag changes so we can update pairs + gridChanged = true; + } + } + + // update pairs list only if pairs changed (i.e. a body changed region) + if (gridChanged) + grid.pairsList = Grid._createActivePairsList(grid); + }; + + deprecated(Grid, 'update', 'Grid.update ➤ replaced by Matter.Detector'); + + /** + * Clears the grid. + * @deprecated replaced by Matter.Detector + * @method clear + * @param {grid} grid + */ + Grid.clear = function(grid) { + grid.buckets = {}; + grid.pairs = {}; + grid.pairsList = []; + }; + + deprecated(Grid, 'clear', 'Grid.clear ➤ replaced by Matter.Detector'); + + /** + * Finds the union of two regions. + * @method _regionUnion + * @deprecated replaced by Matter.Detector + * @private + * @param {} regionA + * @param {} regionB + * @return {} region + */ + Grid._regionUnion = function(regionA, regionB) { + var startCol = Math.min(regionA.startCol, regionB.startCol), + endCol = Math.max(regionA.endCol, regionB.endCol), + startRow = Math.min(regionA.startRow, regionB.startRow), + endRow = Math.max(regionA.endRow, regionB.endRow); + + return Grid._createRegion(startCol, endCol, startRow, endRow); + }; + + /** + * Gets the region a given body falls in for a given grid. + * @method _getRegion + * @deprecated replaced by Matter.Detector + * @private + * @param {} grid + * @param {} body + * @return {} region + */ + Grid._getRegion = function(grid, body) { + var bounds = body.bounds, + startCol = Math.floor(bounds.min.x / grid.bucketWidth), + endCol = Math.floor(bounds.max.x / grid.bucketWidth), + startRow = Math.floor(bounds.min.y / grid.bucketHeight), + endRow = Math.floor(bounds.max.y / grid.bucketHeight); + + return Grid._createRegion(startCol, endCol, startRow, endRow); + }; + + /** + * Creates a region. + * @method _createRegion + * @deprecated replaced by Matter.Detector + * @private + * @param {} startCol + * @param {} endCol + * @param {} startRow + * @param {} endRow + * @return {} region + */ + Grid._createRegion = function(startCol, endCol, startRow, endRow) { + return { + id: startCol + ',' + endCol + ',' + startRow + ',' + endRow, + startCol: startCol, + endCol: endCol, + startRow: startRow, + endRow: endRow + }; + }; + + /** + * Gets the bucket id at the given position. + * @method _getBucketId + * @deprecated replaced by Matter.Detector + * @private + * @param {} column + * @param {} row + * @return {string} bucket id + */ + Grid._getBucketId = function(column, row) { + return 'C' + column + 'R' + row; + }; + + /** + * Creates a bucket. + * @method _createBucket + * @deprecated replaced by Matter.Detector + * @private + * @param {} buckets + * @param {} bucketId + * @return {} bucket + */ + Grid._createBucket = function(buckets, bucketId) { + var bucket = buckets[bucketId] = []; + return bucket; + }; + + /** + * Adds a body to a bucket. + * @method _bucketAddBody + * @deprecated replaced by Matter.Detector + * @private + * @param {} grid + * @param {} bucket + * @param {} body + */ + Grid._bucketAddBody = function(grid, bucket, body) { + var gridPairs = grid.pairs, + pairId = Pair.id, + bucketLength = bucket.length, + i; + + // add new pairs + for (i = 0; i < bucketLength; i++) { + var bodyB = bucket[i]; + + if (body.id === bodyB.id || (body.isStatic && bodyB.isStatic)) + continue; + + // keep track of the number of buckets the pair exists in + // important for Grid.update to work + var id = pairId(body, bodyB), + pair = gridPairs[id]; + + if (pair) { + pair[2] += 1; + } else { + gridPairs[id] = [body, bodyB, 1]; + } + } + + // add to bodies (after pairs, otherwise pairs with self) + bucket.push(body); + }; + + /** + * Removes a body from a bucket. + * @method _bucketRemoveBody + * @deprecated replaced by Matter.Detector + * @private + * @param {} grid + * @param {} bucket + * @param {} body + */ + Grid._bucketRemoveBody = function(grid, bucket, body) { + var gridPairs = grid.pairs, + pairId = Pair.id, + i; + + // remove from bucket + bucket.splice(Common.indexOf(bucket, body), 1); + + var bucketLength = bucket.length; + + // update pair counts + for (i = 0; i < bucketLength; i++) { + // keep track of the number of buckets the pair exists in + // important for _createActivePairsList to work + var pair = gridPairs[pairId(body, bucket[i])]; + + if (pair) + pair[2] -= 1; + } + }; + + /** + * Generates a list of the active pairs in the grid. + * @method _createActivePairsList + * @deprecated replaced by Matter.Detector + * @private + * @param {} grid + * @return [] pairs + */ + Grid._createActivePairsList = function(grid) { + var pair, + gridPairs = grid.pairs, + pairKeys = Common.keys(gridPairs), + pairKeysLength = pairKeys.length, + pairs = [], + k; + + // iterate over grid.pairs + for (k = 0; k < pairKeysLength; k++) { + pair = gridPairs[pairKeys[k]]; + + // if pair exists in at least one bucket + // it is a pair that needs further collision testing so push it + if (pair[2] > 0) { + pairs.push(pair); + } else { + delete gridPairs[pairKeys[k]]; + } + } + + return pairs; + }; + +})(); + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.MouseConstraint` module contains methods for creating mouse constraints. +* Mouse constraints are used for allowing user interaction, providing the ability to move bodies via the mouse or touch. +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class MouseConstraint +*/ + +var MouseConstraint = {}; + +module.exports = MouseConstraint; + +var Vertices = __webpack_require__(3); +var Sleeping = __webpack_require__(7); +var Mouse = __webpack_require__(14); +var Events = __webpack_require__(5); +var Detector = __webpack_require__(13); +var Constraint = __webpack_require__(10); +var Composite = __webpack_require__(6); +var Common = __webpack_require__(0); +var Bounds = __webpack_require__(1); + +(function() { + + /** + * Creates a new mouse constraint. + * All properties have default values, and many are pre-calculated automatically based on other properties. + * See the properties section below for detailed information on what you can pass via the `options` object. + * @method create + * @param {engine} engine + * @param {} options + * @return {MouseConstraint} A new MouseConstraint + */ + MouseConstraint.create = function(engine, options) { + var mouse = (engine ? engine.mouse : null) || (options ? options.mouse : null); + + if (!mouse) { + if (engine && engine.render && engine.render.canvas) { + mouse = Mouse.create(engine.render.canvas); + } else if (options && options.element) { + mouse = Mouse.create(options.element); + } else { + mouse = Mouse.create(); + Common.warn('MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected'); + } + } + + var constraint = Constraint.create({ + label: 'Mouse Constraint', + pointA: mouse.position, + pointB: { x: 0, y: 0 }, + length: 0.01, + stiffness: 0.1, + angularStiffness: 1, + render: { + strokeStyle: '#90EE90', + lineWidth: 3 + } + }); + + var defaults = { + type: 'mouseConstraint', + mouse: mouse, + element: null, + body: null, + constraint: constraint, + collisionFilter: { + category: 0x0001, + mask: 0xFFFFFFFF, + group: 0 + } + }; + + var mouseConstraint = Common.extend(defaults, options); + + Events.on(engine, 'beforeUpdate', function() { + var allBodies = Composite.allBodies(engine.world); + MouseConstraint.update(mouseConstraint, allBodies); + MouseConstraint._triggerEvents(mouseConstraint); + }); + + return mouseConstraint; + }; + + /** + * Updates the given mouse constraint. + * @private + * @method update + * @param {MouseConstraint} mouseConstraint + * @param {body[]} bodies + */ + MouseConstraint.update = function(mouseConstraint, bodies) { + var mouse = mouseConstraint.mouse, + constraint = mouseConstraint.constraint, + body = mouseConstraint.body; + + if (mouse.button === 0) { + if (!constraint.bodyB) { + for (var i = 0; i < bodies.length; i++) { + body = bodies[i]; + if (Bounds.contains(body.bounds, mouse.position) + && Detector.canCollide(body.collisionFilter, mouseConstraint.collisionFilter)) { + for (var j = body.parts.length > 1 ? 1 : 0; j < body.parts.length; j++) { + var part = body.parts[j]; + if (Vertices.contains(part.vertices, mouse.position)) { + constraint.pointA = mouse.position; + constraint.bodyB = mouseConstraint.body = body; + constraint.pointB = { x: mouse.position.x - body.position.x, y: mouse.position.y - body.position.y }; + constraint.angleB = body.angle; + + Sleeping.set(body, false); + Events.trigger(mouseConstraint, 'startdrag', { mouse: mouse, body: body }); + + break; + } + } + } + } + } else { + Sleeping.set(constraint.bodyB, false); + constraint.pointA = mouse.position; + } + } else { + constraint.bodyB = mouseConstraint.body = null; + constraint.pointB = null; + + if (body) + Events.trigger(mouseConstraint, 'enddrag', { mouse: mouse, body: body }); + } + }; + + /** + * Triggers mouse constraint events. + * @method _triggerEvents + * @private + * @param {mouse} mouseConstraint + */ + MouseConstraint._triggerEvents = function(mouseConstraint) { + var mouse = mouseConstraint.mouse, + mouseEvents = mouse.sourceEvents; + + if (mouseEvents.mousemove) + Events.trigger(mouseConstraint, 'mousemove', { mouse: mouse }); + + if (mouseEvents.mousedown) + Events.trigger(mouseConstraint, 'mousedown', { mouse: mouse }); + + if (mouseEvents.mouseup) + Events.trigger(mouseConstraint, 'mouseup', { mouse: mouse }); + + // reset the mouse state ready for the next step + Mouse.clearSourceEvents(mouse); + }; + + /* + * + * Events Documentation + * + */ + + /** + * Fired when the mouse has moved (or a touch moves) during the last step + * + * @event mousemove + * @param {} event An event object + * @param {mouse} event.mouse The engine's mouse instance + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired when the mouse is down (or a touch has started) during the last step + * + * @event mousedown + * @param {} event An event object + * @param {mouse} event.mouse The engine's mouse instance + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired when the mouse is up (or a touch has ended) during the last step + * + * @event mouseup + * @param {} event An event object + * @param {mouse} event.mouse The engine's mouse instance + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired when the user starts dragging a body + * + * @event startdrag + * @param {} event An event object + * @param {mouse} event.mouse The engine's mouse instance + * @param {body} event.body The body being dragged + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired when the user ends dragging a body + * + * @event enddrag + * @param {} event An event object + * @param {mouse} event.mouse The engine's mouse instance + * @param {body} event.body The body that has stopped being dragged + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /* + * + * Properties Documentation + * + */ + + /** + * A `String` denoting the type of object. + * + * @property type + * @type string + * @default "constraint" + * @readOnly + */ + + /** + * The `Mouse` instance in use. If not supplied in `MouseConstraint.create`, one will be created. + * + * @property mouse + * @type mouse + * @default mouse + */ + + /** + * The `Body` that is currently being moved by the user, or `null` if no body. + * + * @property body + * @type body + * @default null + */ + + /** + * The `Constraint` object that is used to move the body during interaction. + * + * @property constraint + * @type constraint + */ + + /** + * An `Object` that specifies the collision filter properties. + * The collision filter allows the user to define which types of body this mouse constraint can interact with. + * See `body.collisionFilter` for more information. + * + * @property collisionFilter + * @type object + */ + +})(); + + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Query` module contains methods for performing collision queries. +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Query +*/ + +var Query = {}; + +module.exports = Query; + +var Vector = __webpack_require__(2); +var Collision = __webpack_require__(8); +var Bounds = __webpack_require__(1); +var Bodies = __webpack_require__(12); +var Vertices = __webpack_require__(3); + +(function() { + + /** + * Returns a list of collisions between `body` and `bodies`. + * @method collides + * @param {body} body + * @param {body[]} bodies + * @return {collision[]} Collisions + */ + Query.collides = function(body, bodies) { + var collisions = [], + bodiesLength = bodies.length, + bounds = body.bounds, + collides = Collision.collides, + overlaps = Bounds.overlaps; + + for (var i = 0; i < bodiesLength; i++) { + var bodyA = bodies[i], + partsALength = bodyA.parts.length, + partsAStart = partsALength === 1 ? 0 : 1; + + if (overlaps(bodyA.bounds, bounds)) { + for (var j = partsAStart; j < partsALength; j++) { + var part = bodyA.parts[j]; + + if (overlaps(part.bounds, bounds)) { + var collision = collides(part, body); + + if (collision) { + collisions.push(collision); + break; + } + } + } + } + } + + return collisions; + }; + + /** + * Casts a ray segment against a set of bodies and returns all collisions, ray width is optional. Intersection points are not provided. + * @method ray + * @param {body[]} bodies + * @param {vector} startPoint + * @param {vector} endPoint + * @param {number} [rayWidth] + * @return {collision[]} Collisions + */ + Query.ray = function(bodies, startPoint, endPoint, rayWidth) { + rayWidth = rayWidth || 1e-100; + + var rayAngle = Vector.angle(startPoint, endPoint), + rayLength = Vector.magnitude(Vector.sub(startPoint, endPoint)), + rayX = (endPoint.x + startPoint.x) * 0.5, + rayY = (endPoint.y + startPoint.y) * 0.5, + ray = Bodies.rectangle(rayX, rayY, rayLength, rayWidth, { angle: rayAngle }), + collisions = Query.collides(ray, bodies); + + for (var i = 0; i < collisions.length; i += 1) { + var collision = collisions[i]; + collision.body = collision.bodyB = collision.bodyA; + } + + return collisions; + }; + + /** + * Returns all bodies whose bounds are inside (or outside if set) the given set of bounds, from the given set of bodies. + * @method region + * @param {body[]} bodies + * @param {bounds} bounds + * @param {bool} [outside=false] + * @return {body[]} The bodies matching the query + */ + Query.region = function(bodies, bounds, outside) { + var result = []; + + for (var i = 0; i < bodies.length; i++) { + var body = bodies[i], + overlaps = Bounds.overlaps(body.bounds, bounds); + if ((overlaps && !outside) || (!overlaps && outside)) + result.push(body); + } + + return result; + }; + + /** + * Returns all bodies whose vertices contain the given point, from the given set of bodies. + * @method point + * @param {body[]} bodies + * @param {vector} point + * @return {body[]} The bodies matching the query + */ + Query.point = function(bodies, point) { + var result = []; + + for (var i = 0; i < bodies.length; i++) { + var body = bodies[i]; + + if (Bounds.contains(body.bounds, point)) { + for (var j = body.parts.length === 1 ? 0 : 1; j < body.parts.length; j++) { + var part = body.parts[j]; + + if (Bounds.contains(part.bounds, point) + && Vertices.contains(part.vertices, point)) { + result.push(body); + break; + } + } + } + } + + return result; + }; + +})(); + + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Render` module is a simple canvas based renderer for visualising instances of `Matter.Engine`. +* It is intended for development and debugging purposes, but may also be suitable for simple games. +* It includes a number of drawing options including wireframe, vector with support for sprites and viewports. +* +* @class Render +*/ + +var Render = {}; + +module.exports = Render; + +var Body = __webpack_require__(4); +var Common = __webpack_require__(0); +var Composite = __webpack_require__(6); +var Bounds = __webpack_require__(1); +var Events = __webpack_require__(5); +var Vector = __webpack_require__(2); +var Mouse = __webpack_require__(14); + +(function() { + + var _requestAnimationFrame, + _cancelAnimationFrame; + + if (typeof window !== 'undefined') { + _requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame + || window.mozRequestAnimationFrame || window.msRequestAnimationFrame + || function(callback){ window.setTimeout(function() { callback(Common.now()); }, 1000 / 60); }; + + _cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame + || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame; + } + + Render._goodFps = 30; + Render._goodDelta = 1000 / 60; + + /** + * Creates a new renderer. The options parameter is an object that specifies any properties you wish to override the defaults. + * All properties have default values, and many are pre-calculated automatically based on other properties. + * See the properties section below for detailed information on what you can pass via the `options` object. + * @method create + * @param {object} [options] + * @return {render} A new renderer + */ + Render.create = function(options) { + var defaults = { + engine: null, + element: null, + canvas: null, + mouse: null, + frameRequestId: null, + timing: { + historySize: 60, + delta: 0, + deltaHistory: [], + lastTime: 0, + lastTimestamp: 0, + lastElapsed: 0, + timestampElapsed: 0, + timestampElapsedHistory: [], + engineDeltaHistory: [], + engineElapsedHistory: [], + elapsedHistory: [] + }, + options: { + width: 800, + height: 600, + pixelRatio: 1, + background: '#14151f', + wireframeBackground: '#14151f', + hasBounds: !!options.bounds, + enabled: true, + wireframes: true, + showSleeping: true, + showDebug: false, + showStats: false, + showPerformance: false, + showBounds: false, + showVelocity: false, + showCollisions: false, + showSeparations: false, + showAxes: false, + showPositions: false, + showAngleIndicator: false, + showIds: false, + showVertexNumbers: false, + showConvexHulls: false, + showInternalEdges: false, + showMousePosition: false + } + }; + + var render = Common.extend(defaults, options); + + if (render.canvas) { + render.canvas.width = render.options.width || render.canvas.width; + render.canvas.height = render.options.height || render.canvas.height; + } + + render.mouse = options.mouse; + render.engine = options.engine; + render.canvas = render.canvas || _createCanvas(render.options.width, render.options.height); + render.context = render.canvas.getContext('2d'); + render.textures = {}; + + render.bounds = render.bounds || { + min: { + x: 0, + y: 0 + }, + max: { + x: render.canvas.width, + y: render.canvas.height + } + }; + + // for temporary back compatibility only + render.controller = Render; + render.options.showBroadphase = false; + + if (render.options.pixelRatio !== 1) { + Render.setPixelRatio(render, render.options.pixelRatio); + } + + if (Common.isElement(render.element)) { + render.element.appendChild(render.canvas); + } + + return render; + }; + + /** + * Continuously updates the render canvas on the `requestAnimationFrame` event. + * @method run + * @param {render} render + */ + Render.run = function(render) { + (function loop(time){ + render.frameRequestId = _requestAnimationFrame(loop); + + _updateTiming(render, time); + + Render.world(render, time); + + if (render.options.showStats || render.options.showDebug) { + Render.stats(render, render.context, time); + } + + if (render.options.showPerformance || render.options.showDebug) { + Render.performance(render, render.context, time); + } + })(); + }; + + /** + * Ends execution of `Render.run` on the given `render`, by canceling the animation frame request event loop. + * @method stop + * @param {render} render + */ + Render.stop = function(render) { + _cancelAnimationFrame(render.frameRequestId); + }; + + /** + * Sets the pixel ratio of the renderer and updates the canvas. + * To automatically detect the correct ratio, pass the string `'auto'` for `pixelRatio`. + * @method setPixelRatio + * @param {render} render + * @param {number} pixelRatio + */ + Render.setPixelRatio = function(render, pixelRatio) { + var options = render.options, + canvas = render.canvas; + + if (pixelRatio === 'auto') { + pixelRatio = _getPixelRatio(canvas); + } + + options.pixelRatio = pixelRatio; + canvas.setAttribute('data-pixel-ratio', pixelRatio); + canvas.width = options.width * pixelRatio; + canvas.height = options.height * pixelRatio; + canvas.style.width = options.width + 'px'; + canvas.style.height = options.height + 'px'; + }; + + /** + * Positions and sizes the viewport around the given object bounds. + * Objects must have at least one of the following properties: + * - `object.bounds` + * - `object.position` + * - `object.min` and `object.max` + * - `object.x` and `object.y` + * @method lookAt + * @param {render} render + * @param {object[]} objects + * @param {vector} [padding] + * @param {bool} [center=true] + */ + Render.lookAt = function(render, objects, padding, center) { + center = typeof center !== 'undefined' ? center : true; + objects = Common.isArray(objects) ? objects : [objects]; + padding = padding || { + x: 0, + y: 0 + }; + + // find bounds of all objects + var bounds = { + min: { x: Infinity, y: Infinity }, + max: { x: -Infinity, y: -Infinity } + }; + + for (var i = 0; i < objects.length; i += 1) { + var object = objects[i], + min = object.bounds ? object.bounds.min : (object.min || object.position || object), + max = object.bounds ? object.bounds.max : (object.max || object.position || object); + + if (min && max) { + if (min.x < bounds.min.x) + bounds.min.x = min.x; + + if (max.x > bounds.max.x) + bounds.max.x = max.x; + + if (min.y < bounds.min.y) + bounds.min.y = min.y; + + if (max.y > bounds.max.y) + bounds.max.y = max.y; + } + } + + // find ratios + var width = (bounds.max.x - bounds.min.x) + 2 * padding.x, + height = (bounds.max.y - bounds.min.y) + 2 * padding.y, + viewHeight = render.canvas.height, + viewWidth = render.canvas.width, + outerRatio = viewWidth / viewHeight, + innerRatio = width / height, + scaleX = 1, + scaleY = 1; + + // find scale factor + if (innerRatio > outerRatio) { + scaleY = innerRatio / outerRatio; + } else { + scaleX = outerRatio / innerRatio; + } + + // enable bounds + render.options.hasBounds = true; + + // position and size + render.bounds.min.x = bounds.min.x; + render.bounds.max.x = bounds.min.x + width * scaleX; + render.bounds.min.y = bounds.min.y; + render.bounds.max.y = bounds.min.y + height * scaleY; + + // center + if (center) { + render.bounds.min.x += width * 0.5 - (width * scaleX) * 0.5; + render.bounds.max.x += width * 0.5 - (width * scaleX) * 0.5; + render.bounds.min.y += height * 0.5 - (height * scaleY) * 0.5; + render.bounds.max.y += height * 0.5 - (height * scaleY) * 0.5; + } + + // padding + render.bounds.min.x -= padding.x; + render.bounds.max.x -= padding.x; + render.bounds.min.y -= padding.y; + render.bounds.max.y -= padding.y; + + // update mouse + if (render.mouse) { + Mouse.setScale(render.mouse, { + x: (render.bounds.max.x - render.bounds.min.x) / render.canvas.width, + y: (render.bounds.max.y - render.bounds.min.y) / render.canvas.height + }); + + Mouse.setOffset(render.mouse, render.bounds.min); + } + }; + + /** + * Applies viewport transforms based on `render.bounds` to a render context. + * @method startViewTransform + * @param {render} render + */ + Render.startViewTransform = function(render) { + var boundsWidth = render.bounds.max.x - render.bounds.min.x, + boundsHeight = render.bounds.max.y - render.bounds.min.y, + boundsScaleX = boundsWidth / render.options.width, + boundsScaleY = boundsHeight / render.options.height; + + render.context.setTransform( + render.options.pixelRatio / boundsScaleX, 0, 0, + render.options.pixelRatio / boundsScaleY, 0, 0 + ); + + render.context.translate(-render.bounds.min.x, -render.bounds.min.y); + }; + + /** + * Resets all transforms on the render context. + * @method endViewTransform + * @param {render} render + */ + Render.endViewTransform = function(render) { + render.context.setTransform(render.options.pixelRatio, 0, 0, render.options.pixelRatio, 0, 0); + }; + + /** + * Renders the given `engine`'s `Matter.World` object. + * This is the entry point for all rendering and should be called every time the scene changes. + * @method world + * @param {render} render + */ + Render.world = function(render, time) { + var startTime = Common.now(), + engine = render.engine, + world = engine.world, + canvas = render.canvas, + context = render.context, + options = render.options, + timing = render.timing; + + var allBodies = Composite.allBodies(world), + allConstraints = Composite.allConstraints(world), + background = options.wireframes ? options.wireframeBackground : options.background, + bodies = [], + constraints = [], + i; + + var event = { + timestamp: engine.timing.timestamp + }; + + Events.trigger(render, 'beforeRender', event); + + // apply background if it has changed + if (render.currentBackground !== background) + _applyBackground(render, background); + + // clear the canvas with a transparent fill, to allow the canvas background to show + context.globalCompositeOperation = 'source-in'; + context.fillStyle = "transparent"; + context.fillRect(0, 0, canvas.width, canvas.height); + context.globalCompositeOperation = 'source-over'; + + // handle bounds + if (options.hasBounds) { + // filter out bodies that are not in view + for (i = 0; i < allBodies.length; i++) { + var body = allBodies[i]; + if (Bounds.overlaps(body.bounds, render.bounds)) + bodies.push(body); + } + + // filter out constraints that are not in view + for (i = 0; i < allConstraints.length; i++) { + var constraint = allConstraints[i], + bodyA = constraint.bodyA, + bodyB = constraint.bodyB, + pointAWorld = constraint.pointA, + pointBWorld = constraint.pointB; + + if (bodyA) pointAWorld = Vector.add(bodyA.position, constraint.pointA); + if (bodyB) pointBWorld = Vector.add(bodyB.position, constraint.pointB); + + if (!pointAWorld || !pointBWorld) + continue; + + if (Bounds.contains(render.bounds, pointAWorld) || Bounds.contains(render.bounds, pointBWorld)) + constraints.push(constraint); + } + + // transform the view + Render.startViewTransform(render); + + // update mouse + if (render.mouse) { + Mouse.setScale(render.mouse, { + x: (render.bounds.max.x - render.bounds.min.x) / render.options.width, + y: (render.bounds.max.y - render.bounds.min.y) / render.options.height + }); + + Mouse.setOffset(render.mouse, render.bounds.min); + } + } else { + constraints = allConstraints; + bodies = allBodies; + + if (render.options.pixelRatio !== 1) { + render.context.setTransform(render.options.pixelRatio, 0, 0, render.options.pixelRatio, 0, 0); + } + } + + if (!options.wireframes || (engine.enableSleeping && options.showSleeping)) { + // fully featured rendering of bodies + Render.bodies(render, bodies, context); + } else { + if (options.showConvexHulls) + Render.bodyConvexHulls(render, bodies, context); + + // optimised method for wireframes only + Render.bodyWireframes(render, bodies, context); + } + + if (options.showBounds) + Render.bodyBounds(render, bodies, context); + + if (options.showAxes || options.showAngleIndicator) + Render.bodyAxes(render, bodies, context); + + if (options.showPositions) + Render.bodyPositions(render, bodies, context); + + if (options.showVelocity) + Render.bodyVelocity(render, bodies, context); + + if (options.showIds) + Render.bodyIds(render, bodies, context); + + if (options.showSeparations) + Render.separations(render, engine.pairs.list, context); + + if (options.showCollisions) + Render.collisions(render, engine.pairs.list, context); + + if (options.showVertexNumbers) + Render.vertexNumbers(render, bodies, context); + + if (options.showMousePosition) + Render.mousePosition(render, render.mouse, context); + + Render.constraints(constraints, context); + + if (options.hasBounds) { + // revert view transforms + Render.endViewTransform(render); + } + + Events.trigger(render, 'afterRender', event); + + // log the time elapsed computing this update + timing.lastElapsed = Common.now() - startTime; + }; + + /** + * Renders statistics about the engine and world useful for debugging. + * @private + * @method stats + * @param {render} render + * @param {RenderingContext} context + * @param {Number} time + */ + Render.stats = function(render, context, time) { + var engine = render.engine, + world = engine.world, + bodies = Composite.allBodies(world), + parts = 0, + width = 55, + height = 44, + x = 0, + y = 0; + + // count parts + for (var i = 0; i < bodies.length; i += 1) { + parts += bodies[i].parts.length; + } + + // sections + var sections = { + 'Part': parts, + 'Body': bodies.length, + 'Cons': Composite.allConstraints(world).length, + 'Comp': Composite.allComposites(world).length, + 'Pair': engine.pairs.list.length + }; + + // background + context.fillStyle = '#0e0f19'; + context.fillRect(x, y, width * 5.5, height); + + context.font = '12px Arial'; + context.textBaseline = 'top'; + context.textAlign = 'right'; + + // sections + for (var key in sections) { + var section = sections[key]; + // label + context.fillStyle = '#aaa'; + context.fillText(key, x + width, y + 8); + + // value + context.fillStyle = '#eee'; + context.fillText(section, x + width, y + 26); + + x += width; + } + }; + + /** + * Renders engine and render performance information. + * @private + * @method performance + * @param {render} render + * @param {RenderingContext} context + */ + Render.performance = function(render, context) { + var engine = render.engine, + timing = render.timing, + deltaHistory = timing.deltaHistory, + elapsedHistory = timing.elapsedHistory, + timestampElapsedHistory = timing.timestampElapsedHistory, + engineDeltaHistory = timing.engineDeltaHistory, + engineElapsedHistory = timing.engineElapsedHistory, + lastEngineDelta = engine.timing.lastDelta; + + var deltaMean = _mean(deltaHistory), + elapsedMean = _mean(elapsedHistory), + engineDeltaMean = _mean(engineDeltaHistory), + engineElapsedMean = _mean(engineElapsedHistory), + timestampElapsedMean = _mean(timestampElapsedHistory), + rateMean = (timestampElapsedMean / deltaMean) || 0, + fps = (1000 / deltaMean) || 0; + + var graphHeight = 4, + gap = 12, + width = 60, + height = 34, + x = 10, + y = 69; + + // background + context.fillStyle = '#0e0f19'; + context.fillRect(0, 50, gap * 4 + width * 5 + 22, height); + + // show FPS + Render.status( + context, x, y, width, graphHeight, deltaHistory.length, + Math.round(fps) + ' fps', + fps / Render._goodFps, + function(i) { return (deltaHistory[i] / deltaMean) - 1; } + ); + + // show engine delta + Render.status( + context, x + gap + width, y, width, graphHeight, engineDeltaHistory.length, + lastEngineDelta.toFixed(2) + ' dt', + Render._goodDelta / lastEngineDelta, + function(i) { return (engineDeltaHistory[i] / engineDeltaMean) - 1; } + ); + + // show engine update time + Render.status( + context, x + (gap + width) * 2, y, width, graphHeight, engineElapsedHistory.length, + engineElapsedMean.toFixed(2) + ' ut', + 1 - (engineElapsedMean / Render._goodFps), + function(i) { return (engineElapsedHistory[i] / engineElapsedMean) - 1; } + ); + + // show render time + Render.status( + context, x + (gap + width) * 3, y, width, graphHeight, elapsedHistory.length, + elapsedMean.toFixed(2) + ' rt', + 1 - (elapsedMean / Render._goodFps), + function(i) { return (elapsedHistory[i] / elapsedMean) - 1; } + ); + + // show effective speed + Render.status( + context, x + (gap + width) * 4, y, width, graphHeight, timestampElapsedHistory.length, + rateMean.toFixed(2) + ' x', + rateMean * rateMean * rateMean, + function(i) { return (((timestampElapsedHistory[i] / deltaHistory[i]) / rateMean) || 0) - 1; } + ); + }; + + /** + * Renders a label, indicator and a chart. + * @private + * @method status + * @param {RenderingContext} context + * @param {number} x + * @param {number} y + * @param {number} width + * @param {number} height + * @param {number} count + * @param {string} label + * @param {string} indicator + * @param {function} plotY + */ + Render.status = function(context, x, y, width, height, count, label, indicator, plotY) { + // background + context.strokeStyle = '#888'; + context.fillStyle = '#444'; + context.lineWidth = 1; + context.fillRect(x, y + 7, width, 1); + + // chart + context.beginPath(); + context.moveTo(x, y + 7 - height * Common.clamp(0.4 * plotY(0), -2, 2)); + for (var i = 0; i < width; i += 1) { + context.lineTo(x + i, y + 7 - (i < count ? height * Common.clamp(0.4 * plotY(i), -2, 2) : 0)); + } + context.stroke(); + + // indicator + context.fillStyle = 'hsl(' + Common.clamp(25 + 95 * indicator, 0, 120) + ',100%,60%)'; + context.fillRect(x, y - 7, 4, 4); + + // label + context.font = '12px Arial'; + context.textBaseline = 'middle'; + context.textAlign = 'right'; + context.fillStyle = '#eee'; + context.fillText(label, x + width, y - 5); + }; + + /** + * Description + * @private + * @method constraints + * @param {constraint[]} constraints + * @param {RenderingContext} context + */ + Render.constraints = function(constraints, context) { + var c = context; + + for (var i = 0; i < constraints.length; i++) { + var constraint = constraints[i]; + + if (!constraint.render.visible || !constraint.pointA || !constraint.pointB) + continue; + + var bodyA = constraint.bodyA, + bodyB = constraint.bodyB, + start, + end; + + if (bodyA) { + start = Vector.add(bodyA.position, constraint.pointA); + } else { + start = constraint.pointA; + } + + if (constraint.render.type === 'pin') { + c.beginPath(); + c.arc(start.x, start.y, 3, 0, 2 * Math.PI); + c.closePath(); + } else { + if (bodyB) { + end = Vector.add(bodyB.position, constraint.pointB); + } else { + end = constraint.pointB; + } + + c.beginPath(); + c.moveTo(start.x, start.y); + + if (constraint.render.type === 'spring') { + var delta = Vector.sub(end, start), + normal = Vector.perp(Vector.normalise(delta)), + coils = Math.ceil(Common.clamp(constraint.length / 5, 12, 20)), + offset; + + for (var j = 1; j < coils; j += 1) { + offset = j % 2 === 0 ? 1 : -1; + + c.lineTo( + start.x + delta.x * (j / coils) + normal.x * offset * 4, + start.y + delta.y * (j / coils) + normal.y * offset * 4 + ); + } + } + + c.lineTo(end.x, end.y); + } + + if (constraint.render.lineWidth) { + c.lineWidth = constraint.render.lineWidth; + c.strokeStyle = constraint.render.strokeStyle; + c.stroke(); + } + + if (constraint.render.anchors) { + c.fillStyle = constraint.render.strokeStyle; + c.beginPath(); + c.arc(start.x, start.y, 3, 0, 2 * Math.PI); + c.arc(end.x, end.y, 3, 0, 2 * Math.PI); + c.closePath(); + c.fill(); + } + } + }; + + /** + * Description + * @private + * @method bodies + * @param {render} render + * @param {body[]} bodies + * @param {RenderingContext} context + */ + Render.bodies = function(render, bodies, context) { + var c = context, + engine = render.engine, + options = render.options, + showInternalEdges = options.showInternalEdges || !options.wireframes, + body, + part, + i, + k; + + for (i = 0; i < bodies.length; i++) { + body = bodies[i]; + + if (!body.render.visible) + continue; + + // handle compound parts + for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) { + part = body.parts[k]; + + if (!part.render.visible) + continue; + + if (options.showSleeping && body.isSleeping) { + c.globalAlpha = 0.5 * part.render.opacity; + } else if (part.render.opacity !== 1) { + c.globalAlpha = part.render.opacity; + } + + if (part.render.sprite && part.render.sprite.texture && !options.wireframes) { + // part sprite + var sprite = part.render.sprite, + texture = _getTexture(render, sprite.texture); + + c.translate(part.position.x, part.position.y); + c.rotate(part.angle); + + c.drawImage( + texture, + texture.width * -sprite.xOffset * sprite.xScale, + texture.height * -sprite.yOffset * sprite.yScale, + texture.width * sprite.xScale, + texture.height * sprite.yScale + ); + + // revert translation, hopefully faster than save / restore + c.rotate(-part.angle); + c.translate(-part.position.x, -part.position.y); + } else { + // part polygon + if (part.circleRadius) { + c.beginPath(); + c.arc(part.position.x, part.position.y, part.circleRadius, 0, 2 * Math.PI); + } else { + c.beginPath(); + c.moveTo(part.vertices[0].x, part.vertices[0].y); + + for (var j = 1; j < part.vertices.length; j++) { + if (!part.vertices[j - 1].isInternal || showInternalEdges) { + c.lineTo(part.vertices[j].x, part.vertices[j].y); + } else { + c.moveTo(part.vertices[j].x, part.vertices[j].y); + } + + if (part.vertices[j].isInternal && !showInternalEdges) { + c.moveTo(part.vertices[(j + 1) % part.vertices.length].x, part.vertices[(j + 1) % part.vertices.length].y); + } + } + + c.lineTo(part.vertices[0].x, part.vertices[0].y); + c.closePath(); + } + + if (!options.wireframes) { + c.fillStyle = part.render.fillStyle; + + if (part.render.lineWidth) { + c.lineWidth = part.render.lineWidth; + c.strokeStyle = part.render.strokeStyle; + c.stroke(); + } + + c.fill(); + } else { + c.lineWidth = 1; + c.strokeStyle = '#bbb'; + c.stroke(); + } + } + + c.globalAlpha = 1; + } + } + }; + + /** + * Optimised method for drawing body wireframes in one pass + * @private + * @method bodyWireframes + * @param {render} render + * @param {body[]} bodies + * @param {RenderingContext} context + */ + Render.bodyWireframes = function(render, bodies, context) { + var c = context, + showInternalEdges = render.options.showInternalEdges, + body, + part, + i, + j, + k; + + c.beginPath(); + + // render all bodies + for (i = 0; i < bodies.length; i++) { + body = bodies[i]; + + if (!body.render.visible) + continue; + + // handle compound parts + for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) { + part = body.parts[k]; + + c.moveTo(part.vertices[0].x, part.vertices[0].y); + + for (j = 1; j < part.vertices.length; j++) { + if (!part.vertices[j - 1].isInternal || showInternalEdges) { + c.lineTo(part.vertices[j].x, part.vertices[j].y); + } else { + c.moveTo(part.vertices[j].x, part.vertices[j].y); + } + + if (part.vertices[j].isInternal && !showInternalEdges) { + c.moveTo(part.vertices[(j + 1) % part.vertices.length].x, part.vertices[(j + 1) % part.vertices.length].y); + } + } + + c.lineTo(part.vertices[0].x, part.vertices[0].y); + } + } + + c.lineWidth = 1; + c.strokeStyle = '#bbb'; + c.stroke(); + }; + + /** + * Optimised method for drawing body convex hull wireframes in one pass + * @private + * @method bodyConvexHulls + * @param {render} render + * @param {body[]} bodies + * @param {RenderingContext} context + */ + Render.bodyConvexHulls = function(render, bodies, context) { + var c = context, + body, + part, + i, + j, + k; + + c.beginPath(); + + // render convex hulls + for (i = 0; i < bodies.length; i++) { + body = bodies[i]; + + if (!body.render.visible || body.parts.length === 1) + continue; + + c.moveTo(body.vertices[0].x, body.vertices[0].y); + + for (j = 1; j < body.vertices.length; j++) { + c.lineTo(body.vertices[j].x, body.vertices[j].y); + } + + c.lineTo(body.vertices[0].x, body.vertices[0].y); + } + + c.lineWidth = 1; + c.strokeStyle = 'rgba(255,255,255,0.2)'; + c.stroke(); + }; + + /** + * Renders body vertex numbers. + * @private + * @method vertexNumbers + * @param {render} render + * @param {body[]} bodies + * @param {RenderingContext} context + */ + Render.vertexNumbers = function(render, bodies, context) { + var c = context, + i, + j, + k; + + for (i = 0; i < bodies.length; i++) { + var parts = bodies[i].parts; + for (k = parts.length > 1 ? 1 : 0; k < parts.length; k++) { + var part = parts[k]; + for (j = 0; j < part.vertices.length; j++) { + c.fillStyle = 'rgba(255,255,255,0.2)'; + c.fillText(i + '_' + j, part.position.x + (part.vertices[j].x - part.position.x) * 0.8, part.position.y + (part.vertices[j].y - part.position.y) * 0.8); + } + } + } + }; + + /** + * Renders mouse position. + * @private + * @method mousePosition + * @param {render} render + * @param {mouse} mouse + * @param {RenderingContext} context + */ + Render.mousePosition = function(render, mouse, context) { + var c = context; + c.fillStyle = 'rgba(255,255,255,0.8)'; + c.fillText(mouse.position.x + ' ' + mouse.position.y, mouse.position.x + 5, mouse.position.y - 5); + }; + + /** + * Draws body bounds + * @private + * @method bodyBounds + * @param {render} render + * @param {body[]} bodies + * @param {RenderingContext} context + */ + Render.bodyBounds = function(render, bodies, context) { + var c = context, + engine = render.engine, + options = render.options; + + c.beginPath(); + + for (var i = 0; i < bodies.length; i++) { + var body = bodies[i]; + + if (body.render.visible) { + var parts = bodies[i].parts; + for (var j = parts.length > 1 ? 1 : 0; j < parts.length; j++) { + var part = parts[j]; + c.rect(part.bounds.min.x, part.bounds.min.y, part.bounds.max.x - part.bounds.min.x, part.bounds.max.y - part.bounds.min.y); + } + } + } + + if (options.wireframes) { + c.strokeStyle = 'rgba(255,255,255,0.08)'; + } else { + c.strokeStyle = 'rgba(0,0,0,0.1)'; + } + + c.lineWidth = 1; + c.stroke(); + }; + + /** + * Draws body angle indicators and axes + * @private + * @method bodyAxes + * @param {render} render + * @param {body[]} bodies + * @param {RenderingContext} context + */ + Render.bodyAxes = function(render, bodies, context) { + var c = context, + engine = render.engine, + options = render.options, + part, + i, + j, + k; + + c.beginPath(); + + for (i = 0; i < bodies.length; i++) { + var body = bodies[i], + parts = body.parts; + + if (!body.render.visible) + continue; + + if (options.showAxes) { + // render all axes + for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) { + part = parts[j]; + for (k = 0; k < part.axes.length; k++) { + var axis = part.axes[k]; + c.moveTo(part.position.x, part.position.y); + c.lineTo(part.position.x + axis.x * 20, part.position.y + axis.y * 20); + } + } + } else { + for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) { + part = parts[j]; + for (k = 0; k < part.axes.length; k++) { + // render a single axis indicator + c.moveTo(part.position.x, part.position.y); + c.lineTo((part.vertices[0].x + part.vertices[part.vertices.length-1].x) / 2, + (part.vertices[0].y + part.vertices[part.vertices.length-1].y) / 2); + } + } + } + } + + if (options.wireframes) { + c.strokeStyle = 'indianred'; + c.lineWidth = 1; + } else { + c.strokeStyle = 'rgba(255, 255, 255, 0.4)'; + c.globalCompositeOperation = 'overlay'; + c.lineWidth = 2; + } + + c.stroke(); + c.globalCompositeOperation = 'source-over'; + }; + + /** + * Draws body positions + * @private + * @method bodyPositions + * @param {render} render + * @param {body[]} bodies + * @param {RenderingContext} context + */ + Render.bodyPositions = function(render, bodies, context) { + var c = context, + engine = render.engine, + options = render.options, + body, + part, + i, + k; + + c.beginPath(); + + // render current positions + for (i = 0; i < bodies.length; i++) { + body = bodies[i]; + + if (!body.render.visible) + continue; + + // handle compound parts + for (k = 0; k < body.parts.length; k++) { + part = body.parts[k]; + c.arc(part.position.x, part.position.y, 3, 0, 2 * Math.PI, false); + c.closePath(); + } + } + + if (options.wireframes) { + c.fillStyle = 'indianred'; + } else { + c.fillStyle = 'rgba(0,0,0,0.5)'; + } + c.fill(); + + c.beginPath(); + + // render previous positions + for (i = 0; i < bodies.length; i++) { + body = bodies[i]; + if (body.render.visible) { + c.arc(body.positionPrev.x, body.positionPrev.y, 2, 0, 2 * Math.PI, false); + c.closePath(); + } + } + + c.fillStyle = 'rgba(255,165,0,0.8)'; + c.fill(); + }; + + /** + * Draws body velocity + * @private + * @method bodyVelocity + * @param {render} render + * @param {body[]} bodies + * @param {RenderingContext} context + */ + Render.bodyVelocity = function(render, bodies, context) { + var c = context; + + c.beginPath(); + + for (var i = 0; i < bodies.length; i++) { + var body = bodies[i]; + + if (!body.render.visible) + continue; + + var velocity = Body.getVelocity(body); + + c.moveTo(body.position.x, body.position.y); + c.lineTo(body.position.x + velocity.x, body.position.y + velocity.y); + } + + c.lineWidth = 3; + c.strokeStyle = 'cornflowerblue'; + c.stroke(); + }; + + /** + * Draws body ids + * @private + * @method bodyIds + * @param {render} render + * @param {body[]} bodies + * @param {RenderingContext} context + */ + Render.bodyIds = function(render, bodies, context) { + var c = context, + i, + j; + + for (i = 0; i < bodies.length; i++) { + if (!bodies[i].render.visible) + continue; + + var parts = bodies[i].parts; + for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) { + var part = parts[j]; + c.font = "12px Arial"; + c.fillStyle = 'rgba(255,255,255,0.5)'; + c.fillText(part.id, part.position.x + 10, part.position.y - 10); + } + } + }; + + /** + * Description + * @private + * @method collisions + * @param {render} render + * @param {pair[]} pairs + * @param {RenderingContext} context + */ + Render.collisions = function(render, pairs, context) { + var c = context, + options = render.options, + pair, + collision, + corrected, + bodyA, + bodyB, + i, + j; + + c.beginPath(); + + // render collision positions + for (i = 0; i < pairs.length; i++) { + pair = pairs[i]; + + if (!pair.isActive) + continue; + + collision = pair.collision; + for (j = 0; j < pair.activeContacts.length; j++) { + var contact = pair.activeContacts[j], + vertex = contact.vertex; + c.rect(vertex.x - 1.5, vertex.y - 1.5, 3.5, 3.5); + } + } + + if (options.wireframes) { + c.fillStyle = 'rgba(255,255,255,0.7)'; + } else { + c.fillStyle = 'orange'; + } + c.fill(); + + c.beginPath(); + + // render collision normals + for (i = 0; i < pairs.length; i++) { + pair = pairs[i]; + + if (!pair.isActive) + continue; + + collision = pair.collision; + + if (pair.activeContacts.length > 0) { + var normalPosX = pair.activeContacts[0].vertex.x, + normalPosY = pair.activeContacts[0].vertex.y; + + if (pair.activeContacts.length === 2) { + normalPosX = (pair.activeContacts[0].vertex.x + pair.activeContacts[1].vertex.x) / 2; + normalPosY = (pair.activeContacts[0].vertex.y + pair.activeContacts[1].vertex.y) / 2; + } + + if (collision.bodyB === collision.supports[0].body || collision.bodyA.isStatic === true) { + c.moveTo(normalPosX - collision.normal.x * 8, normalPosY - collision.normal.y * 8); + } else { + c.moveTo(normalPosX + collision.normal.x * 8, normalPosY + collision.normal.y * 8); + } + + c.lineTo(normalPosX, normalPosY); + } + } + + if (options.wireframes) { + c.strokeStyle = 'rgba(255,165,0,0.7)'; + } else { + c.strokeStyle = 'orange'; + } + + c.lineWidth = 1; + c.stroke(); + }; + + /** + * Description + * @private + * @method separations + * @param {render} render + * @param {pair[]} pairs + * @param {RenderingContext} context + */ + Render.separations = function(render, pairs, context) { + var c = context, + options = render.options, + pair, + collision, + corrected, + bodyA, + bodyB, + i, + j; + + c.beginPath(); + + // render separations + for (i = 0; i < pairs.length; i++) { + pair = pairs[i]; + + if (!pair.isActive) + continue; + + collision = pair.collision; + bodyA = collision.bodyA; + bodyB = collision.bodyB; + + var k = 1; + + if (!bodyB.isStatic && !bodyA.isStatic) k = 0.5; + if (bodyB.isStatic) k = 0; + + c.moveTo(bodyB.position.x, bodyB.position.y); + c.lineTo(bodyB.position.x - collision.penetration.x * k, bodyB.position.y - collision.penetration.y * k); + + k = 1; + + if (!bodyB.isStatic && !bodyA.isStatic) k = 0.5; + if (bodyA.isStatic) k = 0; + + c.moveTo(bodyA.position.x, bodyA.position.y); + c.lineTo(bodyA.position.x + collision.penetration.x * k, bodyA.position.y + collision.penetration.y * k); + } + + if (options.wireframes) { + c.strokeStyle = 'rgba(255,165,0,0.5)'; + } else { + c.strokeStyle = 'orange'; + } + c.stroke(); + }; + + /** + * Description + * @private + * @method inspector + * @param {inspector} inspector + * @param {RenderingContext} context + */ + Render.inspector = function(inspector, context) { + var engine = inspector.engine, + selected = inspector.selected, + render = inspector.render, + options = render.options, + bounds; + + if (options.hasBounds) { + var boundsWidth = render.bounds.max.x - render.bounds.min.x, + boundsHeight = render.bounds.max.y - render.bounds.min.y, + boundsScaleX = boundsWidth / render.options.width, + boundsScaleY = boundsHeight / render.options.height; + + context.scale(1 / boundsScaleX, 1 / boundsScaleY); + context.translate(-render.bounds.min.x, -render.bounds.min.y); + } + + for (var i = 0; i < selected.length; i++) { + var item = selected[i].data; + + context.translate(0.5, 0.5); + context.lineWidth = 1; + context.strokeStyle = 'rgba(255,165,0,0.9)'; + context.setLineDash([1,2]); + + switch (item.type) { + + case 'body': + + // render body selections + bounds = item.bounds; + context.beginPath(); + context.rect(Math.floor(bounds.min.x - 3), Math.floor(bounds.min.y - 3), + Math.floor(bounds.max.x - bounds.min.x + 6), Math.floor(bounds.max.y - bounds.min.y + 6)); + context.closePath(); + context.stroke(); + + break; + + case 'constraint': + + // render constraint selections + var point = item.pointA; + if (item.bodyA) + point = item.pointB; + context.beginPath(); + context.arc(point.x, point.y, 10, 0, 2 * Math.PI); + context.closePath(); + context.stroke(); + + break; + + } + + context.setLineDash([]); + context.translate(-0.5, -0.5); + } + + // render selection region + if (inspector.selectStart !== null) { + context.translate(0.5, 0.5); + context.lineWidth = 1; + context.strokeStyle = 'rgba(255,165,0,0.6)'; + context.fillStyle = 'rgba(255,165,0,0.1)'; + bounds = inspector.selectBounds; + context.beginPath(); + context.rect(Math.floor(bounds.min.x), Math.floor(bounds.min.y), + Math.floor(bounds.max.x - bounds.min.x), Math.floor(bounds.max.y - bounds.min.y)); + context.closePath(); + context.stroke(); + context.fill(); + context.translate(-0.5, -0.5); + } + + if (options.hasBounds) + context.setTransform(1, 0, 0, 1, 0, 0); + }; + + /** + * Updates render timing. + * @method _updateTiming + * @private + * @param {render} render + * @param {number} time + */ + var _updateTiming = function(render, time) { + var engine = render.engine, + timing = render.timing, + historySize = timing.historySize, + timestamp = engine.timing.timestamp; + + timing.delta = time - timing.lastTime || Render._goodDelta; + timing.lastTime = time; + + timing.timestampElapsed = timestamp - timing.lastTimestamp || 0; + timing.lastTimestamp = timestamp; + + timing.deltaHistory.unshift(timing.delta); + timing.deltaHistory.length = Math.min(timing.deltaHistory.length, historySize); + + timing.engineDeltaHistory.unshift(engine.timing.lastDelta); + timing.engineDeltaHistory.length = Math.min(timing.engineDeltaHistory.length, historySize); + + timing.timestampElapsedHistory.unshift(timing.timestampElapsed); + timing.timestampElapsedHistory.length = Math.min(timing.timestampElapsedHistory.length, historySize); + + timing.engineElapsedHistory.unshift(engine.timing.lastElapsed); + timing.engineElapsedHistory.length = Math.min(timing.engineElapsedHistory.length, historySize); + + timing.elapsedHistory.unshift(timing.lastElapsed); + timing.elapsedHistory.length = Math.min(timing.elapsedHistory.length, historySize); + }; + + /** + * Returns the mean value of the given numbers. + * @method _mean + * @private + * @param {Number[]} values + * @return {Number} the mean of given values + */ + var _mean = function(values) { + var result = 0; + for (var i = 0; i < values.length; i += 1) { + result += values[i]; + } + return (result / values.length) || 0; + }; + + /** + * @method _createCanvas + * @private + * @param {} width + * @param {} height + * @return canvas + */ + var _createCanvas = function(width, height) { + var canvas = document.createElement('canvas'); + canvas.width = width; + canvas.height = height; + canvas.oncontextmenu = function() { return false; }; + canvas.onselectstart = function() { return false; }; + return canvas; + }; + + /** + * Gets the pixel ratio of the canvas. + * @method _getPixelRatio + * @private + * @param {HTMLElement} canvas + * @return {Number} pixel ratio + */ + var _getPixelRatio = function(canvas) { + var context = canvas.getContext('2d'), + devicePixelRatio = window.devicePixelRatio || 1, + backingStorePixelRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio + || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio + || context.backingStorePixelRatio || 1; + + return devicePixelRatio / backingStorePixelRatio; + }; + + /** + * Gets the requested texture (an Image) via its path + * @method _getTexture + * @private + * @param {render} render + * @param {string} imagePath + * @return {Image} texture + */ + var _getTexture = function(render, imagePath) { + var image = render.textures[imagePath]; + + if (image) + return image; + + image = render.textures[imagePath] = new Image(); + image.src = imagePath; + + return image; + }; + + /** + * Applies the background to the canvas using CSS. + * @method applyBackground + * @private + * @param {render} render + * @param {string} background + */ + var _applyBackground = function(render, background) { + var cssBackground = background; + + if (/(jpg|gif|png)$/.test(background)) + cssBackground = 'url(' + background + ')'; + + render.canvas.style.background = cssBackground; + render.canvas.style.backgroundSize = "contain"; + render.currentBackground = background; + }; + + /* + * + * Events Documentation + * + */ + + /** + * Fired before rendering + * + * @event beforeRender + * @param {} event An event object + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired after rendering + * + * @event afterRender + * @param {} event An event object + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /* + * + * Properties Documentation + * + */ + + /** + * A back-reference to the `Matter.Render` module. + * + * @deprecated + * @property controller + * @type render + */ + + /** + * A reference to the `Matter.Engine` instance to be used. + * + * @property engine + * @type engine + */ + + /** + * A reference to the element where the canvas is to be inserted (if `render.canvas` has not been specified) + * + * @property element + * @type HTMLElement + * @default null + */ + + /** + * The canvas element to render to. If not specified, one will be created if `render.element` has been specified. + * + * @property canvas + * @type HTMLCanvasElement + * @default null + */ + + /** + * A `Bounds` object that specifies the drawing view region. + * Rendering will be automatically transformed and scaled to fit within the canvas size (`render.options.width` and `render.options.height`). + * This allows for creating views that can pan or zoom around the scene. + * You must also set `render.options.hasBounds` to `true` to enable bounded rendering. + * + * @property bounds + * @type bounds + */ + + /** + * The 2d rendering context from the `render.canvas` element. + * + * @property context + * @type CanvasRenderingContext2D + */ + + /** + * The sprite texture cache. + * + * @property textures + * @type {} + */ + + /** + * The mouse to render if `render.options.showMousePosition` is enabled. + * + * @property mouse + * @type mouse + * @default null + */ + + /** + * The configuration options of the renderer. + * + * @property options + * @type {} + */ + + /** + * The target width in pixels of the `render.canvas` to be created. + * See also the `options.pixelRatio` property to change render quality. + * + * @property options.width + * @type number + * @default 800 + */ + + /** + * The target height in pixels of the `render.canvas` to be created. + * See also the `options.pixelRatio` property to change render quality. + * + * @property options.height + * @type number + * @default 600 + */ + + /** + * The [pixel ratio](https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio) to use when rendering. + * + * @property options.pixelRatio + * @type number + * @default 1 + */ + + /** + * A CSS background color string to use when `render.options.wireframes` is disabled. + * This may be also set to `'transparent'` or equivalent. + * + * @property options.background + * @type string + * @default '#14151f' + */ + + /** + * A CSS background color string to use when `render.options.wireframes` is enabled. + * This may be also set to `'transparent'` or equivalent. + * + * @property options.wireframeBackground + * @type string + * @default '#14151f' + */ + + /** + * A flag that specifies if `render.bounds` should be used when rendering. + * + * @property options.hasBounds + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable all debug information overlays together. + * This includes and has priority over the values of: + * + * - `render.options.showStats` + * - `render.options.showPerformance` + * + * @property options.showDebug + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the engine stats info overlay. + * From left to right, the values shown are: + * + * - body parts total + * - body total + * - constraints total + * - composites total + * - collision pairs total + * + * @property options.showStats + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable performance charts. + * From left to right, the values shown are: + * + * - average render frequency (e.g. 60 fps) + * - exact engine delta time used for last update (e.g. 16.66ms) + * - average engine execution duration (e.g. 5.00ms) + * - average render execution duration (e.g. 0.40ms) + * - average effective play speed (e.g. '1.00x' is 'real-time') + * + * Each value is recorded over a fixed sample of past frames (60 frames). + * + * A chart shown below each value indicates the variance from the average over the sample. + * The more stable or fixed the value is the flatter the chart will appear. + * + * @property options.showPerformance + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable rendering entirely. + * + * @property options.enabled + * @type boolean + * @default false + */ + + /** + * A flag to toggle wireframe rendering otherwise solid fill rendering is used. + * + * @property options.wireframes + * @type boolean + * @default true + */ + + /** + * A flag to enable or disable sleeping bodies indicators. + * + * @property options.showSleeping + * @type boolean + * @default true + */ + + /** + * A flag to enable or disable the debug information overlay. + * + * @property options.showDebug + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the collision broadphase debug overlay. + * + * @deprecated no longer implemented + * @property options.showBroadphase + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the body bounds debug overlay. + * + * @property options.showBounds + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the body velocity debug overlay. + * + * @property options.showVelocity + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the body collisions debug overlay. + * + * @property options.showCollisions + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the collision resolver separations debug overlay. + * + * @property options.showSeparations + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the body axes debug overlay. + * + * @property options.showAxes + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the body positions debug overlay. + * + * @property options.showPositions + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the body angle debug overlay. + * + * @property options.showAngleIndicator + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the body and part ids debug overlay. + * + * @property options.showIds + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the body vertex numbers debug overlay. + * + * @property options.showVertexNumbers + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the body convex hulls debug overlay. + * + * @property options.showConvexHulls + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the body internal edges debug overlay. + * + * @property options.showInternalEdges + * @type boolean + * @default false + */ + + /** + * A flag to enable or disable the mouse position debug overlay. + * + * @property options.showMousePosition + * @type boolean + * @default false + */ + +})(); + + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Runner` module is an optional utility which provides a game loop, +* that handles continuously updating a `Matter.Engine` for you within a browser. +* It is intended for development and debugging purposes, but may also be suitable for simple games. +* If you are using your own game loop instead, then you do not need the `Matter.Runner` module. +* Instead just call `Engine.update(engine, delta)` in your own loop. +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Runner +*/ + +var Runner = {}; + +module.exports = Runner; + +var Events = __webpack_require__(5); +var Engine = __webpack_require__(17); +var Common = __webpack_require__(0); + +(function() { + + var _requestAnimationFrame, + _cancelAnimationFrame; + + if (typeof window !== 'undefined') { + _requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame + || window.mozRequestAnimationFrame || window.msRequestAnimationFrame; + + _cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame + || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame; + } + + if (!_requestAnimationFrame) { + var _frameTimeout; + + _requestAnimationFrame = function(callback){ + _frameTimeout = setTimeout(function() { + callback(Common.now()); + }, 1000 / 60); + }; + + _cancelAnimationFrame = function() { + clearTimeout(_frameTimeout); + }; + } + + /** + * Creates a new Runner. The options parameter is an object that specifies any properties you wish to override the defaults. + * @method create + * @param {} options + */ + Runner.create = function(options) { + var defaults = { + fps: 60, + deltaSampleSize: 60, + counterTimestamp: 0, + frameCounter: 0, + deltaHistory: [], + timePrev: null, + frameRequestId: null, + isFixed: false, + enabled: true + }; + + var runner = Common.extend(defaults, options); + + runner.delta = runner.delta || 1000 / runner.fps; + runner.deltaMin = runner.deltaMin || 1000 / runner.fps; + runner.deltaMax = runner.deltaMax || 1000 / (runner.fps * 0.5); + runner.fps = 1000 / runner.delta; + + return runner; + }; + + /** + * Continuously ticks a `Matter.Engine` by calling `Runner.tick` on the `requestAnimationFrame` event. + * @method run + * @param {engine} engine + */ + Runner.run = function(runner, engine) { + // create runner if engine is first argument + if (typeof runner.positionIterations !== 'undefined') { + engine = runner; + runner = Runner.create(); + } + + (function run(time){ + runner.frameRequestId = _requestAnimationFrame(run); + + if (time && runner.enabled) { + Runner.tick(runner, engine, time); + } + })(); + + return runner; + }; + + /** + * A game loop utility that updates the engine and renderer by one step (a 'tick'). + * Features delta smoothing, time correction and fixed or dynamic timing. + * Consider just `Engine.update(engine, delta)` if you're using your own loop. + * @method tick + * @param {runner} runner + * @param {engine} engine + * @param {number} time + */ + Runner.tick = function(runner, engine, time) { + var timing = engine.timing, + delta; + + if (runner.isFixed) { + // fixed timestep + delta = runner.delta; + } else { + // dynamic timestep based on wall clock between calls + delta = (time - runner.timePrev) || runner.delta; + runner.timePrev = time; + + // optimistically filter delta over a few frames, to improve stability + runner.deltaHistory.push(delta); + runner.deltaHistory = runner.deltaHistory.slice(-runner.deltaSampleSize); + delta = Math.min.apply(null, runner.deltaHistory); + + // limit delta + delta = delta < runner.deltaMin ? runner.deltaMin : delta; + delta = delta > runner.deltaMax ? runner.deltaMax : delta; + + // update engine timing object + runner.delta = delta; + } + + // create an event object + var event = { + timestamp: timing.timestamp + }; + + Events.trigger(runner, 'beforeTick', event); + + // fps counter + runner.frameCounter += 1; + if (time - runner.counterTimestamp >= 1000) { + runner.fps = runner.frameCounter * ((time - runner.counterTimestamp) / 1000); + runner.counterTimestamp = time; + runner.frameCounter = 0; + } + + Events.trigger(runner, 'tick', event); + + // update + Events.trigger(runner, 'beforeUpdate', event); + + Engine.update(engine, delta); + + Events.trigger(runner, 'afterUpdate', event); + + Events.trigger(runner, 'afterTick', event); + }; + + /** + * Ends execution of `Runner.run` on the given `runner`, by canceling the animation frame request event loop. + * If you wish to only temporarily pause the engine, see `engine.enabled` instead. + * @method stop + * @param {runner} runner + */ + Runner.stop = function(runner) { + _cancelAnimationFrame(runner.frameRequestId); + }; + + /** + * Alias for `Runner.run`. + * @method start + * @param {runner} runner + * @param {engine} engine + */ + Runner.start = function(runner, engine) { + Runner.run(runner, engine); + }; + + /* + * + * Events Documentation + * + */ + + /** + * Fired at the start of a tick, before any updates to the engine or timing + * + * @event beforeTick + * @param {} event An event object + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired after engine timing updated, but just before update + * + * @event tick + * @param {} event An event object + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired at the end of a tick, after engine update and after rendering + * + * @event afterTick + * @param {} event An event object + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired before update + * + * @event beforeUpdate + * @param {} event An event object + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /** + * Fired after update + * + * @event afterUpdate + * @param {} event An event object + * @param {number} event.timestamp The engine.timing.timestamp of the event + * @param {} event.source The source object of the event + * @param {} event.name The name of the event + */ + + /* + * + * Properties Documentation + * + */ + + /** + * A flag that specifies whether the runner is running or not. + * + * @property enabled + * @type boolean + * @default true + */ + + /** + * A `Boolean` that specifies if the runner should use a fixed timestep (otherwise it is variable). + * If timing is fixed, then the apparent simulation speed will change depending on the frame rate (but behaviour will be deterministic). + * If the timing is variable, then the apparent simulation speed will be constant (approximately, but at the cost of determininism). + * + * @property isFixed + * @type boolean + * @default false + */ + + /** + * A `Number` that specifies the time step between updates in milliseconds. + * If `engine.timing.isFixed` is set to `true`, then `delta` is fixed. + * If it is `false`, then `delta` can dynamically change to maintain the correct apparent simulation speed. + * + * @property delta + * @type number + * @default 1000 / 60 + */ + +})(); + + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* This module has now been replaced by `Matter.Collision`. +* +* All usage should be migrated to `Matter.Collision`. +* For back-compatibility purposes this module will remain for a short term and then later removed in a future release. +* +* The `Matter.SAT` module contains methods for detecting collisions using the Separating Axis Theorem. +* +* @class SAT +* @deprecated +*/ + +var SAT = {}; + +module.exports = SAT; + +var Collision = __webpack_require__(8); +var Common = __webpack_require__(0); +var deprecated = Common.deprecated; + +(function() { + + /** + * Detect collision between two bodies using the Separating Axis Theorem. + * @deprecated replaced by Collision.collides + * @method collides + * @param {body} bodyA + * @param {body} bodyB + * @return {collision} collision + */ + SAT.collides = function(bodyA, bodyB) { + return Collision.collides(bodyA, bodyB); + }; + + deprecated(SAT, 'collides', 'SAT.collides ➤ replaced by Collision.collides'); + +})(); + + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* The `Matter.Svg` module contains methods for converting SVG images into an array of vector points. +* +* To use this module you also need the SVGPathSeg polyfill: https://github.com/progers/pathseg +* +* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples). +* +* @class Svg +*/ + +var Svg = {}; + +module.exports = Svg; + +var Bounds = __webpack_require__(1); +var Common = __webpack_require__(0); + +(function() { + + /** + * Converts an SVG path into an array of vector points. + * If the input path forms a concave shape, you must decompose the result into convex parts before use. + * See `Bodies.fromVertices` which provides support for this. + * Note that this function is not guaranteed to support complex paths (such as those with holes). + * You must load the `pathseg.js` polyfill on newer browsers. + * @method pathToVertices + * @param {SVGPathElement} path + * @param {Number} [sampleLength=15] + * @return {Vector[]} points + */ + Svg.pathToVertices = function(path, sampleLength) { + if (typeof window !== 'undefined' && !('SVGPathSeg' in window)) { + Common.warn('Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.'); + } + + // https://github.com/wout/svg.topoly.js/blob/master/svg.topoly.js + var i, il, total, point, segment, segments, + segmentsQueue, lastSegment, + lastPoint, segmentIndex, points = [], + lx, ly, length = 0, x = 0, y = 0; + + sampleLength = sampleLength || 15; + + var addPoint = function(px, py, pathSegType) { + // all odd-numbered path types are relative except PATHSEG_CLOSEPATH (1) + var isRelative = pathSegType % 2 === 1 && pathSegType > 1; + + // when the last point doesn't equal the current point add the current point + if (!lastPoint || px != lastPoint.x || py != lastPoint.y) { + if (lastPoint && isRelative) { + lx = lastPoint.x; + ly = lastPoint.y; + } else { + lx = 0; + ly = 0; + } + + var point = { + x: lx + px, + y: ly + py + }; + + // set last point + if (isRelative || !lastPoint) { + lastPoint = point; + } + + points.push(point); + + x = lx + px; + y = ly + py; + } + }; + + var addSegmentPoint = function(segment) { + var segType = segment.pathSegTypeAsLetter.toUpperCase(); + + // skip path ends + if (segType === 'Z') + return; + + // map segment to x and y + switch (segType) { + + case 'M': + case 'L': + case 'T': + case 'C': + case 'S': + case 'Q': + x = segment.x; + y = segment.y; + break; + case 'H': + x = segment.x; + break; + case 'V': + y = segment.y; + break; + } + + addPoint(x, y, segment.pathSegType); + }; + + // ensure path is absolute + Svg._svgPathToAbsolute(path); + + // get total length + total = path.getTotalLength(); + + // queue segments + segments = []; + for (i = 0; i < path.pathSegList.numberOfItems; i += 1) + segments.push(path.pathSegList.getItem(i)); + + segmentsQueue = segments.concat(); + + // sample through path + while (length < total) { + // get segment at position + segmentIndex = path.getPathSegAtLength(length); + segment = segments[segmentIndex]; + + // new segment + if (segment != lastSegment) { + while (segmentsQueue.length && segmentsQueue[0] != segment) + addSegmentPoint(segmentsQueue.shift()); + + lastSegment = segment; + } + + // add points in between when curving + // TODO: adaptive sampling + switch (segment.pathSegTypeAsLetter.toUpperCase()) { + + case 'C': + case 'T': + case 'S': + case 'Q': + case 'A': + point = path.getPointAtLength(length); + addPoint(point.x, point.y, 0); + break; + + } + + // increment by sample value + length += sampleLength; + } + + // add remaining segments not passed by sampling + for (i = 0, il = segmentsQueue.length; i < il; ++i) + addSegmentPoint(segmentsQueue[i]); + + return points; + }; + + Svg._svgPathToAbsolute = function(path) { + // http://phrogz.net/convert-svg-path-to-all-absolute-commands + // Copyright (c) Gavin Kistner + // http://phrogz.net/js/_ReuseLicense.txt + // Modifications: tidy formatting and naming + var x0, y0, x1, y1, x2, y2, segs = path.pathSegList, + x = 0, y = 0, len = segs.numberOfItems; + + for (var i = 0; i < len; ++i) { + var seg = segs.getItem(i), + segType = seg.pathSegTypeAsLetter; + + if (/[MLHVCSQTA]/.test(segType)) { + if ('x' in seg) x = seg.x; + if ('y' in seg) y = seg.y; + } else { + if ('x1' in seg) x1 = x + seg.x1; + if ('x2' in seg) x2 = x + seg.x2; + if ('y1' in seg) y1 = y + seg.y1; + if ('y2' in seg) y2 = y + seg.y2; + if ('x' in seg) x += seg.x; + if ('y' in seg) y += seg.y; + + switch (segType) { + + case 'm': + segs.replaceItem(path.createSVGPathSegMovetoAbs(x, y), i); + break; + case 'l': + segs.replaceItem(path.createSVGPathSegLinetoAbs(x, y), i); + break; + case 'h': + segs.replaceItem(path.createSVGPathSegLinetoHorizontalAbs(x), i); + break; + case 'v': + segs.replaceItem(path.createSVGPathSegLinetoVerticalAbs(y), i); + break; + case 'c': + segs.replaceItem(path.createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2), i); + break; + case 's': + segs.replaceItem(path.createSVGPathSegCurvetoCubicSmoothAbs(x, y, x2, y2), i); + break; + case 'q': + segs.replaceItem(path.createSVGPathSegCurvetoQuadraticAbs(x, y, x1, y1), i); + break; + case 't': + segs.replaceItem(path.createSVGPathSegCurvetoQuadraticSmoothAbs(x, y), i); + break; + case 'a': + segs.replaceItem(path.createSVGPathSegArcAbs(x, y, seg.r1, seg.r2, seg.angle, seg.largeArcFlag, seg.sweepFlag), i); + break; + case 'z': + case 'Z': + x = x0; + y = y0; + break; + + } + } + + if (segType == 'M' || segType == 'm') { + x0 = x; + y0 = y; + } + } + }; + +})(); + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +/** +* This module has now been replaced by `Matter.Composite`. +* +* All usage should be migrated to the equivalent functions found on `Matter.Composite`. +* For example `World.add(world, body)` now becomes `Composite.add(world, body)`. +* +* The property `world.gravity` has been moved to `engine.gravity`. +* +* For back-compatibility purposes this module will remain as a direct alias to `Matter.Composite` in the short term during migration. +* Eventually this alias module will be marked as deprecated and then later removed in a future release. +* +* @class World +*/ + +var World = {}; + +module.exports = World; + +var Composite = __webpack_require__(6); +var Common = __webpack_require__(0); + +(function() { + + /** + * See above, aliases for back compatibility only + */ + World.create = Composite.create; + World.add = Composite.add; + World.remove = Composite.remove; + World.clear = Composite.clear; + World.addComposite = Composite.addComposite; + World.addBody = Composite.addBody; + World.addConstraint = Composite.addConstraint; + +})(); + + +/***/ }) +/******/ ]); +}); \ No newline at end of file diff --git a/matter.min.js b/matter.min.js new file mode 100644 index 0000000..1b31215 --- /dev/null +++ b/matter.min.js @@ -0,0 +1,6 @@ +/*! + * matter-js 0.19.0 by @liabru + * http://brm.io/matter-js/ + * License MIT + */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Matter",[],t):"object"==typeof exports?exports.Matter=t():e.Matter=t()}(this,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=20)}([function(e,t){var n={};e.exports=n,function(){n._baseDelta=1e3/60,n._nextId=0,n._seed=0,n._nowStartTime=+new Date,n._warnedOnce={},n._decomp=null,n.extend=function(e,t){var i,o;"boolean"==typeof t?(i=2,o=t):(i=1,o=!0);for(var r=i;r0;t--){var i=Math.floor(n.random()*(t+1)),o=e[t];e[t]=e[i],e[i]=o}return e},n.choose=function(e){return e[Math.floor(n.random()*e.length)]},n.isElement=function(e){return"undefined"!=typeof HTMLElement?e instanceof HTMLElement:!!(e&&e.nodeType&&e.nodeName)},n.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},n.isFunction=function(e){return"function"==typeof e},n.isPlainObject=function(e){return"object"==typeof e&&e.constructor===Object},n.isString=function(e){return"[object String]"===toString.call(e)},n.clamp=function(e,t,n){return en?n:e},n.sign=function(e){return e<0?-1:1},n.now=function(){if("undefined"!=typeof window&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-n._nowStartTime},n.random=function(t,n){return n=void 0!==n?n:1,(t=void 0!==t?t:0)+e()*(n-t)};var e=function(){return n._seed=(9301*n._seed+49297)%233280,n._seed/233280};n.colorToNumber=function(e){return 3==(e=e.replace("#","")).length&&(e=e.charAt(0)+e.charAt(0)+e.charAt(1)+e.charAt(1)+e.charAt(2)+e.charAt(2)),parseInt(e,16)},n.logLevel=1,n.log=function(){console&&n.logLevel>0&&n.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},n.info=function(){console&&n.logLevel>0&&n.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},n.warn=function(){console&&n.logLevel>0&&n.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},n.warnOnce=function(){var e=Array.prototype.slice.call(arguments).join(" ");n._warnedOnce[e]||(n.warn(e),n._warnedOnce[e]=!0)},n.deprecated=function(e,t,i){e[t]=n.chain((function(){n.warnOnce("🔅 deprecated 🔅",i)}),e[t])},n.nextId=function(){return n._nextId++},n.indexOf=function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0;ne.max.x&&(e.max.x=o.x),o.xe.max.y&&(e.max.y=o.y),o.y0?e.max.x+=n.x:e.min.x+=n.x,n.y>0?e.max.y+=n.y:e.min.y+=n.y)},n.contains=function(e,t){return t.x>=e.min.x&&t.x<=e.max.x&&t.y>=e.min.y&&t.y<=e.max.y},n.overlaps=function(e,t){return e.min.x<=t.max.x&&e.max.x>=t.min.x&&e.max.y>=t.min.y&&e.min.y<=t.max.y},n.translate=function(e,t){e.min.x+=t.x,e.max.x+=t.x,e.min.y+=t.y,e.max.y+=t.y},n.shift=function(e,t){var n=e.max.x-e.min.x,i=e.max.y-e.min.y;e.min.x=t.x,e.max.x=t.x+n,e.min.y=t.y,e.max.y=t.y+i}},function(e,t){var n={};e.exports=n,n.create=function(e,t){return{x:e||0,y:t||0}},n.clone=function(e){return{x:e.x,y:e.y}},n.magnitude=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},n.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},n.rotate=function(e,t,n){var i=Math.cos(t),o=Math.sin(t);n||(n={});var r=e.x*i-e.y*o;return n.y=e.x*o+e.y*i,n.x=r,n},n.rotateAbout=function(e,t,n,i){var o=Math.cos(t),r=Math.sin(t);i||(i={});var a=n.x+((e.x-n.x)*o-(e.y-n.y)*r);return i.y=n.y+((e.x-n.x)*r+(e.y-n.y)*o),i.x=a,i},n.normalise=function(e){var t=n.magnitude(e);return 0===t?{x:0,y:0}:{x:e.x/t,y:e.y/t}},n.dot=function(e,t){return e.x*t.x+e.y*t.y},n.cross=function(e,t){return e.x*t.y-e.y*t.x},n.cross3=function(e,t,n){return(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x)},n.add=function(e,t,n){return n||(n={}),n.x=e.x+t.x,n.y=e.y+t.y,n},n.sub=function(e,t,n){return n||(n={}),n.x=e.x-t.x,n.y=e.y-t.y,n},n.mult=function(e,t){return{x:e.x*t,y:e.y*t}},n.div=function(e,t){return{x:e.x/t,y:e.y/t}},n.perp=function(e,t){return{x:(t=!0===t?-1:1)*-e.y,y:t*e.x}},n.neg=function(e){return{x:-e.x,y:-e.y}},n.angle=function(e,t){return Math.atan2(t.y-e.y,t.x-e.x)},n._temp=[n.create(),n.create(),n.create(),n.create(),n.create(),n.create()]},function(e,t,n){var i={};e.exports=i;var o=n(2),r=n(0);i.create=function(e,t){for(var n=[],i=0;i0)return!1;a=n}return!0},i.scale=function(e,t,n,r){if(1===t&&1===n)return e;var a,s;r=r||i.centre(e);for(var l=0;l=0?l-1:e.length-1],u=e[l],d=e[(l+1)%e.length],p=t[l0&&(r|=2),3===r)return!1;return 0!==r||null},i.hull=function(e){var t,n,i=[],r=[];for((e=e.slice(0)).sort((function(e,t){var n=e.x-t.x;return 0!==n?n:e.y-t.y})),n=0;n=2&&o.cross3(r[r.length-2],r[r.length-1],t)<=0;)r.pop();r.push(t)}for(n=e.length-1;n>=0;n-=1){for(t=e[n];i.length>=2&&o.cross3(i[i.length-2],i[i.length-1],t)<=0;)i.pop();i.push(t)}return i.pop(),r.pop(),i.concat(r)}},function(e,t,n){var i={};e.exports=i;var o=n(3),r=n(2),a=n(7),s=n(0),l=n(1),c=n(11);!function(){i._timeCorrection=!0,i._inertiaScale=4,i._nextCollidingGroupId=1,i._nextNonCollidingGroupId=-1,i._nextCategory=1,i._baseDelta=1e3/60,i.create=function(t){var n={id:s.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:o.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,render:{visible:!0,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,deltaTime:1e3/60,_original:null},i=s.extend(n,t);return e(i,t),i},i.nextGroup=function(e){return e?i._nextNonCollidingGroupId--:i._nextCollidingGroupId++},i.nextCategory=function(){return i._nextCategory=i._nextCategory<<1,i._nextCategory};var e=function(e,t){t=t||{},i.set(e,{bounds:e.bounds||l.create(e.vertices),positionPrev:e.positionPrev||r.clone(e.position),anglePrev:e.anglePrev||e.angle,vertices:e.vertices,parts:e.parts||[e],isStatic:e.isStatic,isSleeping:e.isSleeping,parent:e.parent||e}),o.rotate(e.vertices,e.angle,e.position),c.rotate(e.axes,e.angle),l.update(e.bounds,e.vertices,e.velocity),i.set(e,{axes:t.axes||e.axes,area:t.area||e.area,mass:t.mass||e.mass,inertia:t.inertia||e.inertia});var n=e.isStatic?"#14151f":s.choose(["#f19648","#f5d259","#f55a3c","#063e7b","#ececd1"]),a=e.isStatic?"#555":"#ccc",u=e.isStatic&&null===e.render.fillStyle?1:0;e.render.fillStyle=e.render.fillStyle||n,e.render.strokeStyle=e.render.strokeStyle||a,e.render.lineWidth=e.render.lineWidth||u,e.render.sprite.xOffset+=-(e.bounds.min.x-e.position.x)/(e.bounds.max.x-e.bounds.min.x),e.render.sprite.yOffset+=-(e.bounds.min.y-e.position.y)/(e.bounds.max.y-e.bounds.min.y)};i.set=function(e,t,n){var o;for(o in"string"==typeof t&&(o=t,(t={})[o]=n),t)if(Object.prototype.hasOwnProperty.call(t,o))switch(n=t[o],o){case"isStatic":i.setStatic(e,n);break;case"isSleeping":a.set(e,n);break;case"mass":i.setMass(e,n);break;case"density":i.setDensity(e,n);break;case"inertia":i.setInertia(e,n);break;case"vertices":i.setVertices(e,n);break;case"position":i.setPosition(e,n);break;case"angle":i.setAngle(e,n);break;case"velocity":i.setVelocity(e,n);break;case"angularVelocity":i.setAngularVelocity(e,n);break;case"speed":i.setSpeed(e,n);break;case"angularSpeed":i.setAngularSpeed(e,n);break;case"parts":i.setParts(e,n);break;case"centre":i.setCentre(e,n);break;default:e[o]=n}},i.setStatic=function(e,t){for(var n=0;n0&&r.rotateAbout(s.position,i,e.position,s.position)}},i.setVelocity=function(e,t){var n=e.deltaTime/i._baseDelta;e.positionPrev.x=e.position.x-t.x*n,e.positionPrev.y=e.position.y-t.y*n,e.velocity.x=(e.position.x-e.positionPrev.x)/n,e.velocity.y=(e.position.y-e.positionPrev.y)/n,e.speed=r.magnitude(e.velocity)},i.getVelocity=function(e){var t=i._baseDelta/e.deltaTime;return{x:(e.position.x-e.positionPrev.x)*t,y:(e.position.y-e.positionPrev.y)*t}},i.getSpeed=function(e){return r.magnitude(i.getVelocity(e))},i.setSpeed=function(e,t){i.setVelocity(e,r.mult(r.normalise(i.getVelocity(e)),t))},i.setAngularVelocity=function(e,t){var n=e.deltaTime/i._baseDelta;e.anglePrev=e.angle-t*n,e.angularVelocity=(e.angle-e.anglePrev)/n,e.angularSpeed=Math.abs(e.angularVelocity)},i.getAngularVelocity=function(e){return(e.angle-e.anglePrev)*i._baseDelta/e.deltaTime},i.getAngularSpeed=function(e){return Math.abs(i.getAngularVelocity(e))},i.setAngularSpeed=function(e,t){i.setAngularVelocity(e,s.sign(i.getAngularVelocity(e))*t)},i.translate=function(e,t,n){i.setPosition(e,r.add(e.position,t),n)},i.rotate=function(e,t,n,o){if(n){var r=Math.cos(t),a=Math.sin(t),s=e.position.x-n.x,l=e.position.y-n.y;i.setPosition(e,{x:n.x+(s*r-l*a),y:n.y+(s*a+l*r)},o),i.setAngle(e,e.angle+t,o)}else i.setAngle(e,e.angle+t,o)},i.scale=function(e,t,n,r){var a=0,s=0;r=r||e.position;for(var u=0;u0&&(a+=d.area,s+=d.inertia),d.position.x=r.x+(d.position.x-r.x)*t,d.position.y=r.y+(d.position.y-r.y)*n,l.update(d.bounds,d.vertices,e.velocity)}e.parts.length>1&&(e.area=a,e.isStatic||(i.setMass(e,e.density*a),i.setInertia(e,s))),e.circleRadius&&(t===n?e.circleRadius*=t:e.circleRadius=null)},i.update=function(e,t){var n=(t=(void 0!==t?t:1e3/60)*e.timeScale)*t,a=i._timeCorrection?t/(e.deltaTime||t):1,u=1-e.frictionAir*(t/s._baseDelta),d=(e.position.x-e.positionPrev.x)*a,p=(e.position.y-e.positionPrev.y)*a;e.velocity.x=d*u+e.force.x/e.mass*n,e.velocity.y=p*u+e.force.y/e.mass*n,e.positionPrev.x=e.position.x,e.positionPrev.y=e.position.y,e.position.x+=e.velocity.x,e.position.y+=e.velocity.y,e.deltaTime=t,e.angularVelocity=(e.angle-e.anglePrev)*u*a+e.torque/e.inertia*n,e.anglePrev=e.angle,e.angle+=e.angularVelocity;for(var f=0;f0&&(v.position.x+=e.velocity.x,v.position.y+=e.velocity.y),0!==e.angularVelocity&&(o.rotate(v.vertices,e.angularVelocity,e.position),c.rotate(v.axes,e.angularVelocity),f>0&&r.rotateAbout(v.position,e.angularVelocity,e.position,v.position)),l.update(v.bounds,v.vertices,e.velocity)}},i.updateVelocities=function(e){var t=i._baseDelta/e.deltaTime,n=e.velocity;n.x=(e.position.x-e.positionPrev.x)*t,n.y=(e.position.y-e.positionPrev.y)*t,e.speed=Math.sqrt(n.x*n.x+n.y*n.y),e.angularVelocity=(e.angle-e.anglePrev)*t,e.angularSpeed=Math.abs(e.angularVelocity)},i.applyForce=function(e,t,n){var i=t.x-e.position.x,o=t.y-e.position.y;e.force.x+=n.x,e.force.y+=n.y,e.torque+=i*n.y-o*n.x},i._totalProperties=function(e){for(var t={mass:0,area:0,inertia:0,centre:{x:0,y:0}},n=1===e.parts.length?0:1;n0){n||(n={}),i=t.split(" ");for(var c=0;c0&&l.motion=l.sleepThreshold/n&&i.set(l,!0)):l.sleepCounter>0&&(l.sleepCounter-=1)}else i.set(l,!1)}},i.afterCollisions=function(e){for(var t=i._motionSleepThreshold,n=0;nt&&i.set(l,!1)}}}},i.set=function(e,t){var n=e.isSleeping;t?(e.isSleeping=!0,e.sleepCounter=e.sleepThreshold,e.positionImpulse.x=0,e.positionImpulse.y=0,e.positionPrev.x=e.position.x,e.positionPrev.y=e.position.y,e.anglePrev=e.angle,e.speed=0,e.angularSpeed=0,e.motion=0,n||r.trigger(e,"sleepStart")):(e.isSleeping=!1,e.sleepCounter=0,n&&r.trigger(e,"sleepEnd"))}},function(e,t,n){var i={};e.exports=i;var o,r,a,s=n(3),l=n(9);o=[],r={overlap:0,axis:null},a={overlap:0,axis:null},i.create=function(e,t){return{pair:null,collided:!1,bodyA:e,bodyB:t,parentA:e.parent,parentB:t.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[]}},i.collides=function(e,t,n){if(i._overlapAxes(r,e.vertices,t.vertices,e.axes),r.overlap<=0)return null;if(i._overlapAxes(a,t.vertices,e.vertices,t.axes),a.overlap<=0)return null;var o,c,u=n&&n.table[l.id(e,t)];u?o=u.collision:((o=i.create(e,t)).collided=!0,o.bodyA=e.idP?P=s:sC?C=s:so?o=a:al.frictionStatic?s.frictionStatic:l.frictionStatic,e.restitution=s.restitution>l.restitution?s.restitution:l.restitution,e.slop=s.slop>l.slop?s.slop:l.slop,t.pair=e,a.length=0;for(var u=0;u0?1:.7),t.damping=t.damping||0,t.angularStiffness=t.angularStiffness||0,t.angleA=t.bodyA?t.bodyA.angle:t.angleA,t.angleB=t.bodyB?t.bodyB.angle:t.angleB,t.plugin={};var a={visible:!0,lineWidth:2,strokeStyle:"#ffffff",type:"line",anchors:!0};return 0===t.length&&t.stiffness>.1?(a.type="pin",a.anchors=!1):t.stiffness<.9&&(a.type="spring"),t.render=c.extend(a,t.render),t},i.preSolveAll=function(e){for(var t=0;t=1||0===e.length?e.stiffness*t:e.stiffness*t*t,h=e.damping*t,b=r.mult(u,g*x),S=(n?n.inverseMass:0)+(o?o.inverseMass:0),w=S+((n?n.inverseInertia:0)+(o?o.inverseInertia:0));if(h>0){var A=r.create();v=r.div(u,d),m=r.sub(o&&r.sub(o.position,o.positionPrev)||A,n&&r.sub(n.position,n.positionPrev)||A),y=r.dot(v,m)}n&&!n.isStatic&&(f=n.inverseMass/S,n.constraintImpulse.x-=b.x*f,n.constraintImpulse.y-=b.y*f,n.position.x-=b.x*f,n.position.y-=b.y*f,h>0&&(n.positionPrev.x-=h*v.x*y*f,n.positionPrev.y-=h*v.y*y*f),p=r.cross(a,b)/w*i._torqueDampen*n.inverseInertia*(1-e.angularStiffness),n.constraintImpulse.angle-=p,n.angle-=p),o&&!o.isStatic&&(f=o.inverseMass/S,o.constraintImpulse.x+=b.x*f,o.constraintImpulse.y+=b.y*f,o.position.x+=b.x*f,o.position.y+=b.y*f,h>0&&(o.positionPrev.x+=h*v.x*y*f,o.positionPrev.y+=h*v.y*y*f),p=r.cross(s,b)/w*i._torqueDampen*o.inverseInertia*(1-e.angularStiffness),o.constraintImpulse.angle+=p,o.angle+=p)}}},i.postSolveAll=function(e){for(var t=0;t0&&(d.position.x+=c.x,d.position.y+=c.y),0!==c.angle&&(o.rotate(d.vertices,c.angle,n.position),l.rotate(d.axes,c.angle),u>0&&r.rotateAbout(d.position,c.angle,n.position,d.position)),s.update(d.bounds,d.vertices,n.velocity)}c.angle*=i._warming,c.x*=i._warming,c.y*=i._warming}}},i.pointAWorld=function(e){return{x:(e.bodyA?e.bodyA.position.x:0)+(e.pointA?e.pointA.x:0),y:(e.bodyA?e.bodyA.position.y:0)+(e.pointA?e.pointA.y:0)}},i.pointBWorld=function(e){return{x:(e.bodyB?e.bodyB.position.x:0)+(e.pointB?e.pointB.x:0),y:(e.bodyB?e.bodyB.position.y:0)+(e.pointB?e.pointB.y:0)}}},function(e,t,n){var i={};e.exports=i;var o=n(2),r=n(0);i.fromVertices=function(e){for(var t={},n=0;n0&&o.area(M)1?(v=a.create(r.extend({parts:y.slice(0)},i)),a.setPosition(v,{x:e,y:t}),v):y[0]}},function(e,t,n){var i={};e.exports=i;var o=n(0),r=n(8);i.create=function(e){return o.extend({bodies:[],pairs:null},e)},i.setBodies=function(e,t){e.bodies=t.slice(0)},i.clear=function(e){e.bodies=[]},i.collisions=function(e){var t,n,o=[],a=e.pairs,s=e.bodies,l=s.length,c=i.canCollide,u=r.collides;for(s.sort(i._compareBoundsX),t=0;tf)break;if(!(vB.max.y)&&(!m||!h.isStatic&&!h.isSleeping)&&c(d.collisionFilter,h.collisionFilter)){var b=h.parts.length;if(x&&1===b)(C=u(d,h,a))&&o.push(C);else for(var S=b>1?1:0,w=g>1?1:0;wB.max.x||p.max.xB.max.y||(C=u(A,M,a))&&o.push(C)}}}}return o},i.canCollide=function(e,t){return e.group===t.group&&0!==e.group?e.group>0:0!=(e.mask&t.category)&&0!=(t.mask&e.category)},i._compareBoundsX=function(e,t){return e.bounds.min.x-t.bounds.min.x}},function(e,t,n){var i={};e.exports=i;var o=n(0);i.create=function(e){var t={};return e||o.log("Mouse.create: element was undefined, defaulting to document.body","warn"),t.element=e||document.body,t.absolute={x:0,y:0},t.position={x:0,y:0},t.mousedownPosition={x:0,y:0},t.mouseupPosition={x:0,y:0},t.offset={x:0,y:0},t.scale={x:1,y:1},t.wheelDelta=0,t.button=-1,t.pixelRatio=parseInt(t.element.getAttribute("data-pixel-ratio"),10)||1,t.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null},t.mousemove=function(e){var n=i._getRelativeMousePosition(e,t.element,t.pixelRatio);e.changedTouches&&(t.button=0,e.preventDefault()),t.absolute.x=n.x,t.absolute.y=n.y,t.position.x=t.absolute.x*t.scale.x+t.offset.x,t.position.y=t.absolute.y*t.scale.y+t.offset.y,t.sourceEvents.mousemove=e},t.mousedown=function(e){var n=i._getRelativeMousePosition(e,t.element,t.pixelRatio);e.changedTouches?(t.button=0,e.preventDefault()):t.button=e.button,t.absolute.x=n.x,t.absolute.y=n.y,t.position.x=t.absolute.x*t.scale.x+t.offset.x,t.position.y=t.absolute.y*t.scale.y+t.offset.y,t.mousedownPosition.x=t.position.x,t.mousedownPosition.y=t.position.y,t.sourceEvents.mousedown=e},t.mouseup=function(e){var n=i._getRelativeMousePosition(e,t.element,t.pixelRatio);e.changedTouches&&e.preventDefault(),t.button=-1,t.absolute.x=n.x,t.absolute.y=n.y,t.position.x=t.absolute.x*t.scale.x+t.offset.x,t.position.y=t.absolute.y*t.scale.y+t.offset.y,t.mouseupPosition.x=t.position.x,t.mouseupPosition.y=t.position.y,t.sourceEvents.mouseup=e},t.mousewheel=function(e){t.wheelDelta=Math.max(-1,Math.min(1,e.wheelDelta||-e.detail)),e.preventDefault()},i.setElement(t,t.element),t},i.setElement=function(e,t){e.element=t,t.addEventListener("mousemove",e.mousemove),t.addEventListener("mousedown",e.mousedown),t.addEventListener("mouseup",e.mouseup),t.addEventListener("mousewheel",e.mousewheel),t.addEventListener("DOMMouseScroll",e.mousewheel),t.addEventListener("touchmove",e.mousemove),t.addEventListener("touchstart",e.mousedown),t.addEventListener("touchend",e.mouseup)},i.clearSourceEvents=function(e){e.sourceEvents.mousemove=null,e.sourceEvents.mousedown=null,e.sourceEvents.mouseup=null,e.sourceEvents.mousewheel=null,e.wheelDelta=0},i.setOffset=function(e,t){e.offset.x=t.x,e.offset.y=t.y,e.position.x=e.absolute.x*e.scale.x+e.offset.x,e.position.y=e.absolute.y*e.scale.y+e.offset.y},i.setScale=function(e,t){e.scale.x=t.x,e.scale.y=t.y,e.position.x=e.absolute.x*e.scale.x+e.offset.x,e.position.y=e.absolute.y*e.scale.y+e.offset.y},i._getRelativeMousePosition=function(e,t,n){var i,o,r=t.getBoundingClientRect(),a=document.documentElement||document.body.parentNode||document.body,s=void 0!==window.pageXOffset?window.pageXOffset:a.scrollLeft,l=void 0!==window.pageYOffset?window.pageYOffset:a.scrollTop,c=e.changedTouches;return c?(i=c[0].pageX-r.left-s,o=c[0].pageY-r.top-l):(i=e.pageX-r.left-s,o=e.pageY-r.top-l),{x:i/(t.clientWidth/(t.width||t.clientWidth)*n),y:o/(t.clientHeight/(t.height||t.clientHeight)*n)}}},function(e,t,n){var i={};e.exports=i;var o=n(0);i._registry={},i.register=function(e){if(i.isPlugin(e)||o.warn("Plugin.register:",i.toString(e),"does not implement all required fields."),e.name in i._registry){var t=i._registry[e.name],n=i.versionParse(e.version).number,r=i.versionParse(t.version).number;n>r?(o.warn("Plugin.register:",i.toString(t),"was upgraded to",i.toString(e)),i._registry[e.name]=e):n-1},i.isFor=function(e,t){var n=e.for&&i.dependencyParse(e.for);return!e.for||t.name===n.name&&i.versionSatisfies(t.version,n.range)},i.use=function(e,t){if(e.uses=(e.uses||[]).concat(t||[]),0!==e.uses.length){for(var n=i.dependencies(e),r=o.topologicalSort(n),a=[],s=0;s0&&o.info(a.join(" "))}else o.warn("Plugin.use:",i.toString(e),"does not specify any dependencies to install.")},i.dependencies=function(e,t){var n=i.dependencyParse(e),r=n.name;if(!(r in(t=t||{}))){e=i.resolve(e)||e,t[r]=o.map(e.uses||[],(function(t){i.isPlugin(t)&&i.register(t);var r=i.dependencyParse(t),a=i.resolve(t);return a&&!i.versionSatisfies(a.version,r.range)?(o.warn("Plugin.dependencies:",i.toString(a),"does not satisfy",i.toString(r),"used by",i.toString(n)+"."),a._warned=!0,e._warned=!0):a||(o.warn("Plugin.dependencies:",i.toString(t),"used by",i.toString(n),"could not be resolved."),e._warned=!0),r.name}));for(var a=0;a=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/;t.test(e)||o.warn("Plugin.versionParse:",e,"is not a valid version or range.");var n=t.exec(e),i=Number(n[4]),r=Number(n[5]),a=Number(n[6]);return{isRange:Boolean(n[1]||n[2]),version:n[3],range:e,operator:n[1]||n[2]||"",major:i,minor:r,patch:a,parts:[i,r,a],prerelease:n[7],number:1e8*i+1e4*r+a}},i.versionSatisfies=function(e,t){t=t||"*";var n=i.versionParse(t),o=i.versionParse(e);if(n.isRange){if("*"===n.operator||"*"===e)return!0;if(">"===n.operator)return o.number>n.number;if(">="===n.operator)return o.number>=n.number;if("~"===n.operator)return o.major===n.major&&o.minor===n.minor&&o.patch>=n.patch;if("^"===n.operator)return n.major>0?o.major===n.major&&o.number>=n.number:n.minor>0?o.minor===n.minor&&o.patch>=n.patch:o.patch===n.patch}return e===t||"*"===e}},function(e,t){var n={};e.exports=n,n.create=function(e){return{vertex:e,normalImpulse:0,tangentImpulse:0}}},function(e,t,n){var i={};e.exports=i;var o=n(7),r=n(18),a=n(13),s=n(19),l=n(5),c=n(6),u=n(10),d=n(0),p=n(4);i.create=function(e){e=e||{};var t=d.extend({positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0}},e);return t.world=e.world||c.create({label:"World"}),t.pairs=e.pairs||s.create(),t.detector=e.detector||a.create(),t.grid={buckets:[]},t.world.gravity=t.gravity,t.broadphase=t.grid,t.metrics={},t},i.update=function(e,t){var n,p=d.now(),f=e.world,v=e.detector,y=e.pairs,m=e.timing,g=m.timestamp;t=void 0!==t?t:d._baseDelta,t*=m.timeScale,m.timestamp+=t,m.lastDelta=t;var x={timestamp:m.timestamp,delta:t};l.trigger(e,"beforeUpdate",x);var h=c.allBodies(f),b=c.allConstraints(f);for(f.isModified&&(a.setBodies(v,h),c.setModified(f,!1,!1,!0)),e.enableSleeping&&o.update(h,t),i._bodiesApplyGravity(h,e.gravity),t>0&&i._bodiesUpdate(h,t),u.preSolveAll(h),n=0;n0&&l.trigger(e,"collisionStart",{pairs:y.collisionStart});var w=d.clamp(20/e.positionIterations,0,1);for(r.preSolvePosition(y.list),n=0;n0&&l.trigger(e,"collisionActive",{pairs:y.collisionActive}),y.collisionEnd.length>0&&l.trigger(e,"collisionEnd",{pairs:y.collisionEnd}),i._bodiesClearForces(h),l.trigger(e,"afterUpdate",x),e.timing.lastElapsed=d.now()-p,e},i.merge=function(e,t){if(d.extend(e,t),t.world){e.world=t.world,i.clear(e);for(var n=c.allBodies(e.world),r=0;rU?(o=q>0?q:-q,(n=y.friction*(q>0?1:-1)*c)<-o?n=-o:n>o&&(n=o)):(n=q,o=f);var N=R*w-V*S,z=E*w-L*S,X=B/(_+g.inverseInertia*N*N+x.inverseInertia*z*z),Q=(1+y.restitution)*j*X;if(n*=X,j0&&(I.normalImpulse=0),Q=I.normalImpulse-Y}if(q<-d||q>d)I.tangentImpulse=0;else{var Z=I.tangentImpulse;I.tangentImpulse+=n,I.tangentImpulse<-o&&(I.tangentImpulse=-o),I.tangentImpulse>o&&(I.tangentImpulse=o),n=I.tangentImpulse-Z}var $=S*Q+A*n,J=w*Q+P*n;g.isStatic||g.isSleeping||(g.positionPrev.x+=$*g.inverseMass,g.positionPrev.y+=J*g.inverseMass,g.anglePrev+=(R*J-V*$)*g.inverseInertia),x.isStatic||x.isSleeping||(x.positionPrev.x-=$*x.inverseMass,x.positionPrev.y-=J*x.inverseMass,x.anglePrev-=(E*J-L*$)*x.inverseInertia)}}}}},function(e,t,n){var i={};e.exports=i;var o=n(9),r=n(0);i.create=function(e){return r.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},e)},i.update=function(e,t,n){var i,r,a,s,l=e.list,c=l.length,u=e.table,d=t.length,p=e.collisionStart,f=e.collisionEnd,v=e.collisionActive;for(p.length=0,f.length=0,v.length=0,s=0;sy&&(y=x),s.translate(g,{x:.5*h,y:.5*x}),d=g.bounds.max.x+r,o.addBody(u,g),c=g,f+=1}else d+=r}p+=y+a,d=e}return u},i.chain=function(e,t,n,i,s,l){for(var c=e.bodies,u=1;u0)for(c=0;c0&&(p=f[c-1+(l-1)*t],o.addConstraint(e,r.create(a.extend({bodyA:p,bodyB:d},s)))),i&&cp||a<(c=p-c)||a>n-1-c))return 1===d&&s.translate(u,{x:(a+(n%2==1?1:-1))*f,y:0}),l(e+(u?a*f:0)+a*r,i,a,c,u,d)}))},i.newtonsCradle=function(e,t,n,i,a){for(var s=o.create({label:"Newtons Cradle"}),c=0;cu.bounds.max.x||f.bounds.max.yu.bounds.max.y))){var v=i._getRegion(e,f);if(!f.region||v.id!==f.region.id||o){f.region&&!o||(f.region=v);var y=i._regionUnion(v,f.region);for(a=y.startCol;a<=y.endCol;a++)for(s=y.startRow;s<=y.endRow;s++){l=d[c=i._getBucketId(a,s)];var m=a>=v.startCol&&a<=v.endCol&&s>=v.startRow&&s<=v.endRow,g=a>=f.region.startCol&&a<=f.region.endCol&&s>=f.region.startRow&&s<=f.region.endRow;!m&&g&&g&&l&&i._bucketRemoveBody(e,l,f),(f.region===v||m&&!g||o)&&(l||(l=i._createBucket(d,c)),i._bucketAddBody(e,l,f))}f.region=v,p=!0}}}p&&(e.pairsList=i._createActivePairsList(e))},a(i,"update","Grid.update ➤ replaced by Matter.Detector"),i.clear=function(e){e.buckets={},e.pairs={},e.pairsList=[]},a(i,"clear","Grid.clear ➤ replaced by Matter.Detector"),i._regionUnion=function(e,t){var n=Math.min(e.startCol,t.startCol),o=Math.max(e.endCol,t.endCol),r=Math.min(e.startRow,t.startRow),a=Math.max(e.endRow,t.endRow);return i._createRegion(n,o,r,a)},i._getRegion=function(e,t){var n=t.bounds,o=Math.floor(n.min.x/e.bucketWidth),r=Math.floor(n.max.x/e.bucketWidth),a=Math.floor(n.min.y/e.bucketHeight),s=Math.floor(n.max.y/e.bucketHeight);return i._createRegion(o,r,a,s)},i._createRegion=function(e,t,n,i){return{id:e+","+t+","+n+","+i,startCol:e,endCol:t,startRow:n,endRow:i}},i._getBucketId=function(e,t){return"C"+e+"R"+t},i._createBucket=function(e,t){return e[t]=[]},i._bucketAddBody=function(e,t,n){var i,r=e.pairs,a=o.id,s=t.length;for(i=0;i0?s.push(t):delete i[o[n]];return s}},function(e,t,n){var i={};e.exports=i;var o=n(3),r=n(7),a=n(14),s=n(5),l=n(13),c=n(10),u=n(6),d=n(0),p=n(1);i.create=function(e,t){var n=(e?e.mouse:null)||(t?t.mouse:null);n||(e&&e.render&&e.render.canvas?n=a.create(e.render.canvas):t&&t.element?n=a.create(t.element):(n=a.create(),d.warn("MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected")));var o={type:"mouseConstraint",mouse:n,element:null,body:null,constraint:c.create({label:"Mouse Constraint",pointA:n.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:"#90EE90",lineWidth:3}}),collisionFilter:{category:1,mask:4294967295,group:0}},r=d.extend(o,t);return s.on(e,"beforeUpdate",(function(){var t=u.allBodies(e.world);i.update(r,t),i._triggerEvents(r)})),r},i.update=function(e,t){var n=e.mouse,i=e.constraint,a=e.body;if(0===n.button){if(i.bodyB)r.set(i.bodyB,!1),i.pointA=n.position;else for(var c=0;c1?1:0;uo.max.x&&(o.max.x=c.x),l.yo.max.y&&(o.max.y=c.y))}var d=o.max.x-o.min.x+2*n.x,p=o.max.y-o.min.y+2*n.y,f=e.canvas.height,v=e.canvas.width/f,y=d/p,m=1,g=1;y>v?g=y/v:m=v/y,e.options.hasBounds=!0,e.bounds.min.x=o.min.x,e.bounds.max.x=o.min.x+d*m,e.bounds.min.y=o.min.y,e.bounds.max.y=o.min.y+p*g,i&&(e.bounds.min.x+=.5*d-d*m*.5,e.bounds.max.x+=.5*d-d*m*.5,e.bounds.min.y+=.5*p-p*g*.5,e.bounds.max.y+=.5*p-p*g*.5),e.bounds.min.x-=n.x,e.bounds.max.x-=n.x,e.bounds.min.y-=n.y,e.bounds.max.y-=n.y,e.mouse&&(u.setScale(e.mouse,{x:(e.bounds.max.x-e.bounds.min.x)/e.canvas.width,y:(e.bounds.max.y-e.bounds.min.y)/e.canvas.height}),u.setOffset(e.mouse,e.bounds.min))},i.startViewTransform=function(e){var t=e.bounds.max.x-e.bounds.min.x,n=e.bounds.max.y-e.bounds.min.y,i=t/e.options.width,o=n/e.options.height;e.context.setTransform(e.options.pixelRatio/i,0,0,e.options.pixelRatio/o,0,0),e.context.translate(-e.bounds.min.x,-e.bounds.min.y)},i.endViewTransform=function(e){e.context.setTransform(e.options.pixelRatio,0,0,e.options.pixelRatio,0,0)},i.world=function(e,t){var n,o=r.now(),d=e.engine,p=d.world,f=e.canvas,v=e.context,m=e.options,g=e.timing,x=a.allBodies(p),h=a.allConstraints(p),b=m.wireframes?m.wireframeBackground:m.background,S=[],w=[],A={timestamp:d.timing.timestamp};if(l.trigger(e,"beforeRender",A),e.currentBackground!==b&&y(e,b),v.globalCompositeOperation="source-in",v.fillStyle="transparent",v.fillRect(0,0,f.width,f.height),v.globalCompositeOperation="source-over",m.hasBounds){for(n=0;n1?1:0;a1?1:0;s1?1:0;r1?1:0;s1?1:0;r1?1:0;r1?1:0;o0)){var u=i.activeContacts[0].vertex.x,d=i.activeContacts[0].vertex.y;2===i.activeContacts.length&&(u=(i.activeContacts[0].vertex.x+i.activeContacts[1].vertex.x)/2,d=(i.activeContacts[0].vertex.y+i.activeContacts[1].vertex.y)/2),o.bodyB===o.supports[0].body||!0===o.bodyA.isStatic?s.moveTo(u-8*o.normal.x,d-8*o.normal.y):s.moveTo(u+8*o.normal.x,d+8*o.normal.y),s.lineTo(u,d)}l.wireframes?s.strokeStyle="rgba(255,165,0,0.7)":s.strokeStyle="orange",s.lineWidth=1,s.stroke()},i.separations=function(e,t,n){var i,o,r,a,s,l=n,c=e.options;for(l.beginPath(),s=0;se.deltaMax?e.deltaMax:i,e.delta=i);var s={timestamp:a.timestamp};o.trigger(e,"beforeTick",s),e.frameCounter+=1,n-e.counterTimestamp>=1e3&&(e.fps=e.frameCounter*((n-e.counterTimestamp)/1e3),e.counterTimestamp=n,e.frameCounter=0),o.trigger(e,"tick",s),o.trigger(e,"beforeUpdate",s),r.update(t,i),o.trigger(e,"afterUpdate",s),o.trigger(e,"afterTick",s)},i.stop=function(e){t(e.frameRequestId)},i.start=function(e,t){i.run(e,t)}}()},function(e,t,n){var i={};e.exports=i;var o=n(8),r=n(0).deprecated;i.collides=function(e,t){return o.collides(e,t)},r(i,"collides","SAT.collides ➤ replaced by Collision.collides")},function(e,t,n){var i={};e.exports=i;n(1);var o=n(0);i.pathToVertices=function(e,t){"undefined"==typeof window||"SVGPathSeg"in window||o.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");var n,r,a,s,l,c,u,d,p,f,v,y=[],m=0,g=0,x=0;t=t||15;var h=function(e,t,n){var i=n%2==1&&n>1;if(!p||e!=p.x||t!=p.y){p&&i?(f=p.x,v=p.y):(f=0,v=0);var o={x:f+e,y:v+t};!i&&p||(p=o),y.push(o),g=f+e,x=v+t}},b=function(e){var t=e.pathSegTypeAsLetter.toUpperCase();if("Z"!==t){switch(t){case"M":case"L":case"T":case"C":case"S":case"Q":g=e.x,x=e.y;break;case"H":g=e.x;break;case"V":x=e.y}h(g,x,e.pathSegType)}};for(i._svgPathToAbsolute(e),a=e.getTotalLength(),c=[],n=0;n=0.10.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz", + "integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz", + "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.6", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz", + "integrity": "sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.6.tgz", + "integrity": "sha512-D7Ccq9LfkBFnow3azZGJvZYgcfeqAw3I1e5LoTpj6UKIFQilh8yqXsIGcRIqbBdsPWIz+Ze7ZZfggSj62Qp+Fg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/plugin-syntax-decorators": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz", + "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz", + "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", + "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz", + "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-flow": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz", + "integrity": "sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", + "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", + "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.6.tgz", + "integrity": "sha512-kF1Zg62aPseQ11orDhFRw+aPG/eynNQtI+TyY+m33qJa2cJ5EEvza2P2BNTIA9E5MyqFABHEyY6CPHwgdy9aNg==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", + "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.6.tgz", + "integrity": "sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.4", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", + "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-transform-react-display-name": "^7.23.3", + "@babel/plugin-transform-react-jsx": "^7.22.15", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", + "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", + "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==", + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.1.tgz", + "integrity": "sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.3.tgz", + "integrity": "sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "peer": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/react/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/react/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@testing-library/react/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.11", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz", + "integrity": "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@types/jest/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@types/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@types/jest/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/jest/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@types/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "20.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", + "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", + "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + }, + "node_modules/@types/qs": { + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/react": { + "version": "18.2.45", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.45.tgz", + "integrity": "sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.18", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", + "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", + "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dependencies": { + "has-symbols": "^1.0.3" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.4", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001572", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", + "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.34.0.tgz", + "integrity": "sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.34.0.tgz", + "integrity": "sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "node_modules/cssdb": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.10.0.tgz", + "integrity": "sha512-yGZ5tmA57gWh/uvdQBHs45wwFY0IBh3ypABk5sEubPBPSzXzkNgsWReqx7gdx6uhC+QoFBe+V8JwBB9/hQ6cIA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.616", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", + "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", + "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", + "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "safe-array-concat": "^1.0.0" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "engines": { + "node": ">=14" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz", + "integrity": "sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz", + "integrity": "sha512-65xXYsT40i9GyWzlHQ5ShZoK7JZdySeOozi/tz2EezDo6c04q6+ckYMeoY7idaie1qp2dT5KoYQ2yky6JuoHnA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/react-dev-utils/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", + "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwindcss": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.0.tgz", + "integrity": "sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", + "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/my-react-app/package.json b/my-react-app/package.json new file mode 100644 index 0000000..08b2102 --- /dev/null +++ b/my-react-app/package.json @@ -0,0 +1,38 @@ +{ + "name": "my-react-app", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/my-react-app/public/favicon.ico b/my-react-app/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= z!sii`1giyH7EKL_+Wi0ab<)&E_0KD!3Rp2^HNB*K2@PHCs4PWSA32*-^7d{9nH2_E zmC{C*N*)(vEF1_aMamw2A{ZH5aIDqiabnFdJ|y0%aS|64E$`s2ccV~3lR!u<){eS` z#^Mx6o(iP1Ix%4dv`t@!&Za-K@mTm#vadc{0aWDV*_%EiGK7qMC_(`exc>-$Gb9~W!w_^{*pYRm~G zBN{nA;cm^w$VWg1O^^<6vY`1XCD|s_zv*g*5&V#wv&s#h$xlUilPe4U@I&UXZbL z0)%9Uj&@yd03n;!7do+bfixH^FeZ-Ema}s;DQX2gY+7g0s(9;`8GyvPY1*vxiF&|w z>!vA~GA<~JUqH}d;DfBSi^IT*#lrzXl$fNpq0_T1tA+`A$1?(gLb?e#0>UELvljtQ zK+*74m0jn&)5yk8mLBv;=@}c{t0ztT<v;Avck$S6D`Z)^c0(jiwKhQsn|LDRY&w(Fmi91I7H6S;b0XM{e zXp0~(T@k_r-!jkLwd1_Vre^v$G4|kh4}=Gi?$AaJ)3I+^m|Zyj#*?Kp@w(lQdJZf4 z#|IJW5z+S^e9@(6hW6N~{pj8|NO*>1)E=%?nNUAkmv~OY&ZV;m-%?pQ_11)hAr0oAwILrlsGawpxx4D43J&K=n+p3WLnlDsQ$b(9+4 z?mO^hmV^F8MV{4Lx>(Q=aHhQ1){0d*(e&s%G=i5rq3;t{JC zmgbn5Nkl)t@fPH$v;af26lyhH!k+#}_&aBK4baYPbZy$5aFx4}ka&qxl z$=Rh$W;U)>-=S-0=?7FH9dUAd2(q#4TCAHky!$^~;Dz^j|8_wuKc*YzfdAht@Q&ror?91Dm!N03=4=O!a)I*0q~p0g$Fm$pmr$ zb;wD;STDIi$@M%y1>p&_>%?UP($15gou_ue1u0!4(%81;qcIW8NyxFEvXpiJ|H4wz z*mFT(qVx1FKufG11hByuX%lPk4t#WZ{>8ka2efjY`~;AL6vWyQKpJun2nRiZYDij$ zP>4jQXPaP$UC$yIVgGa)jDV;F0l^n(V=HMRB5)20V7&r$jmk{UUIe zVjKroK}JAbD>B`2cwNQ&GDLx8{pg`7hbA~grk|W6LgiZ`8y`{Iq0i>t!3p2}MS6S+ zO_ruKyAElt)rdS>CtF7j{&6rP-#c=7evGMt7B6`7HG|-(WL`bDUAjyn+k$mx$CH;q2Dz4x;cPP$hW=`pFfLO)!jaCL@V2+F)So3}vg|%O*^T1j>C2lx zsURO-zIJC$^$g2byVbRIo^w>UxK}74^TqUiRR#7s_X$e)$6iYG1(PcW7un-va-S&u zHk9-6Zn&>T==A)lM^D~bk{&rFzCi35>UR!ZjQkdSiNX*-;l4z9j*7|q`TBl~Au`5& z+c)*8?#-tgUR$Zd%Q3bs96w6k7q@#tUn`5rj+r@_sAVVLqco|6O{ILX&U-&-cbVa3 zY?ngHR@%l{;`ri%H*0EhBWrGjv!LE4db?HEWb5mu*t@{kv|XwK8?npOshmzf=vZA@ zVSN9sL~!sn?r(AK)Q7Jk2(|M67Uy3I{eRy z_l&Y@A>;vjkWN5I2xvFFTLX0i+`{qz7C_@bo`ZUzDugfq4+>a3?1v%)O+YTd6@Ul7 zAfLfm=nhZ`)P~&v90$&UcF+yXm9sq!qCx3^9gzIcO|Y(js^Fj)Rvq>nQAHI92ap=P z10A4@prk+AGWCb`2)dQYFuR$|H6iDE8p}9a?#nV2}LBCoCf(Xi2@szia7#gY>b|l!-U`c}@ zLdhvQjc!BdLJvYvzzzngnw51yRYCqh4}$oRCy-z|v3Hc*d|?^Wj=l~18*E~*cR_kU z{XsxM1i{V*4GujHQ3DBpl2w4FgFR48Nma@HPgnyKoIEY-MqmMeY=I<%oG~l!f<+FN z1ZY^;10j4M4#HYXP zw5eJpA_y(>uLQ~OucgxDLuf}fVs272FaMxhn4xnDGIyLXnw>Xsd^J8XhcWIwIoQ9} z%FoSJTAGW(SRGwJwb=@pY7r$uQRK3Zd~XbxU)ts!4XsJrCycrWSI?e!IqwqIR8+Jh zlRjZ`UO1I!BtJR_2~7AbkbSm%XQqxEPkz6BTGWx8e}nQ=w7bZ|eVP4?*Tb!$(R)iC z9)&%bS*u(lXqzitAN)Oo=&Ytn>%Hzjc<5liuPi>zC_nw;Z0AE3Y$Jao_Q90R-gl~5 z_xAb2J%eArrC1CN4G$}-zVvCqF1;H;abAu6G*+PDHSYFx@Tdbfox*uEd3}BUyYY-l zTfEsOqsi#f9^FoLO;ChK<554qkri&Av~SIM*{fEYRE?vH7pTAOmu2pz3X?Wn*!ROX ztd54huAk&mFBemMooL33RV-*1f0Q3_(7hl$<#*|WF9P!;r;4_+X~k~uKEqdzZ$5Al zV63XN@)j$FN#cCD;ek1R#l zv%pGrhB~KWgoCj%GT?%{@@o(AJGt*PG#l3i>lhmb_twKH^EYvacVY-6bsCl5*^~L0 zonm@lk2UvvTKr2RS%}T>^~EYqdL1q4nD%0n&Xqr^cK^`J5W;lRRB^R-O8b&HENO||mo0xaD+S=I8RTlIfVgqN@SXDr2&-)we--K7w= zJVU8?Z+7k9dy;s;^gDkQa`0nz6N{T?(A&Iz)2!DEecLyRa&FI!id#5Z7B*O2=PsR0 zEvc|8{NS^)!d)MDX(97Xw}m&kEO@5jqRaDZ!+%`wYOI<23q|&js`&o4xvjP7D_xv@ z5hEwpsp{HezI9!~6O{~)lLR@oF7?J7i>1|5a~UuoN=q&6N}EJPV_GD`&M*v8Y`^2j zKII*d_@Fi$+i*YEW+Hbzn{iQk~yP z>7N{S4)r*!NwQ`(qcN#8SRQsNK6>{)X12nbF`*7#ecO7I)Q$uZsV+xS4E7aUn+U(K baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/my-react-app/public/index.html b/my-react-app/public/index.html new file mode 100644 index 0000000..aa069f2 --- /dev/null +++ b/my-react-app/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/my-react-app/public/logo192.png b/my-react-app/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 zcmZWtbyO6NvR-oO24RV%BvuJ&=?+<7=`LvyB&A_#M7mSDYw1v6DJkiYl9XjT!%$dLEBTQ8R9|wd3008in6lFF3GV-6mLi?MoP_y~}QUnaDCHI#t z7w^m$@6DI)|C8_jrT?q=f8D?0AM?L)Z}xAo^e^W>t$*Y0KlT5=@bBjT9kxb%-KNdk zeOS1tKO#ChhG7%{ApNBzE2ZVNcxbrin#E1TiAw#BlUhXllzhN$qWez5l;h+t^q#Eav8PhR2|T}y5kkflaK`ba-eoE+Z2q@o6P$)=&` z+(8}+-McnNO>e#$Rr{32ngsZIAX>GH??tqgwUuUz6kjns|LjsB37zUEWd|(&O!)DY zQLrq%Y>)Y8G`yYbYCx&aVHi@-vZ3|ebG!f$sTQqMgi0hWRJ^Wc+Ibv!udh_r%2|U) zPi|E^PK?UE!>_4`f`1k4hqqj_$+d!EB_#IYt;f9)fBOumGNyglU(ofY`yHq4Y?B%- zp&G!MRY<~ajTgIHErMe(Z8JG*;D-PJhd@RX@QatggM7+G(Lz8eZ;73)72Hfx5KDOE zkT(m}i2;@X2AT5fW?qVp?@WgN$aT+f_6eo?IsLh;jscNRp|8H}Z9p_UBO^SJXpZew zEK8fz|0Th%(Wr|KZBGTM4yxkA5CFdAj8=QSrT$fKW#tweUFqr0TZ9D~a5lF{)%-tTGMK^2tz(y2v$i%V8XAxIywrZCp=)83p(zIk6@S5AWl|Oa2hF`~~^W zI;KeOSkw1O#TiQ8;U7OPXjZM|KrnN}9arP)m0v$c|L)lF`j_rpG(zW1Qjv$=^|p*f z>)Na{D&>n`jOWMwB^TM}slgTEcjxTlUby89j1)|6ydRfWERn3|7Zd2&e7?!K&5G$x z`5U3uFtn4~SZq|LjFVrz$3iln-+ucY4q$BC{CSm7Xe5c1J<=%Oagztj{ifpaZk_bQ z9Sb-LaQMKp-qJA*bP6DzgE3`}*i1o3GKmo2pn@dj0;He}F=BgINo};6gQF8!n0ULZ zL>kC0nPSFzlcB7p41doao2F7%6IUTi_+!L`MM4o*#Y#0v~WiO8uSeAUNp=vA2KaR&=jNR2iVwG>7t%sG2x_~yXzY)7K& zk3p+O0AFZ1eu^T3s};B%6TpJ6h-Y%B^*zT&SN7C=N;g|#dGIVMSOru3iv^SvO>h4M=t-N1GSLLDqVTcgurco6)3&XpU!FP6Hlrmj}f$ zp95;b)>M~`kxuZF3r~a!rMf4|&1=uMG$;h^g=Kl;H&Np-(pFT9FF@++MMEx3RBsK?AU0fPk-#mdR)Wdkj)`>ZMl#^<80kM87VvsI3r_c@_vX=fdQ`_9-d(xiI z4K;1y1TiPj_RPh*SpDI7U~^QQ?%0&!$Sh#?x_@;ag)P}ZkAik{_WPB4rHyW#%>|Gs zdbhyt=qQPA7`?h2_8T;-E6HI#im9K>au*(j4;kzwMSLgo6u*}-K`$_Gzgu&XE)udQ zmQ72^eZd|vzI)~!20JV-v-T|<4@7ruqrj|o4=JJPlybwMg;M$Ud7>h6g()CT@wXm` zbq=A(t;RJ^{Xxi*Ff~!|3!-l_PS{AyNAU~t{h;(N(PXMEf^R(B+ZVX3 z8y0;0A8hJYp@g+c*`>eTA|3Tgv9U8#BDTO9@a@gVMDxr(fVaEqL1tl?md{v^j8aUv zm&%PX4^|rX|?E4^CkplWWNv*OKM>DxPa z!RJ)U^0-WJMi)Ksc!^ixOtw^egoAZZ2Cg;X7(5xZG7yL_;UJ#yp*ZD-;I^Z9qkP`} zwCTs0*%rIVF1sgLervtnUo&brwz?6?PXRuOCS*JI-WL6GKy7-~yi0giTEMmDs_-UX zo=+nFrW_EfTg>oY72_4Z0*uG>MnXP=c0VpT&*|rvv1iStW;*^={rP1y?Hv+6R6bxFMkxpWkJ>m7Ba{>zc_q zEefC3jsXdyS5??Mz7IET$Kft|EMNJIv7Ny8ZOcKnzf`K5Cd)&`-fTY#W&jnV0l2vt z?Gqhic}l}mCv1yUEy$%DP}4AN;36$=7aNI^*AzV(eYGeJ(Px-j<^gSDp5dBAv2#?; zcMXv#aj>%;MiG^q^$0MSg-(uTl!xm49dH!{X0){Ew7ThWV~Gtj7h%ZD zVN-R-^7Cf0VH!8O)uUHPL2mO2tmE*cecwQv_5CzWeh)ykX8r5Hi`ehYo)d{Jnh&3p z9ndXT$OW51#H5cFKa76c<%nNkP~FU93b5h-|Cb}ScHs@4Q#|}byWg;KDMJ#|l zE=MKD*F@HDBcX@~QJH%56eh~jfPO-uKm}~t7VkHxHT;)4sd+?Wc4* z>CyR*{w@4(gnYRdFq=^(#-ytb^5ESD?x<0Skhb%Pt?npNW1m+Nv`tr9+qN<3H1f<% zZvNEqyK5FgPsQ`QIu9P0x_}wJR~^CotL|n zk?dn;tLRw9jJTur4uWoX6iMm914f0AJfB@C74a;_qRrAP4E7l890P&{v<}>_&GLrW z)klculcg`?zJO~4;BBAa=POU%aN|pmZJn2{hA!d!*lwO%YSIzv8bTJ}=nhC^n}g(ld^rn#kq9Z3)z`k9lvV>y#!F4e{5c$tnr9M{V)0m(Z< z#88vX6-AW7T2UUwW`g<;8I$Jb!R%z@rCcGT)-2k7&x9kZZT66}Ztid~6t0jKb&9mm zpa}LCb`bz`{MzpZR#E*QuBiZXI#<`5qxx=&LMr-UUf~@dRk}YI2hbMsAMWOmDzYtm zjof16D=mc`^B$+_bCG$$@R0t;e?~UkF?7<(vkb70*EQB1rfUWXh$j)R2)+dNAH5%R zEBs^?N;UMdy}V};59Gu#0$q53$}|+q7CIGg_w_WlvE}AdqoS<7DY1LWS9?TrfmcvT zaypmplwn=P4;a8-%l^e?f`OpGb}%(_mFsL&GywhyN(-VROj`4~V~9bGv%UhcA|YW% zs{;nh@aDX11y^HOFXB$a7#Sr3cEtNd4eLm@Y#fc&j)TGvbbMwze zXtekX_wJqxe4NhuW$r}cNy|L{V=t#$%SuWEW)YZTH|!iT79k#?632OFse{+BT_gau zJwQcbH{b}dzKO?^dV&3nTILYlGw{27UJ72ZN){BILd_HV_s$WfI2DC<9LIHFmtyw? zQ;?MuK7g%Ym+4e^W#5}WDLpko%jPOC=aN)3!=8)s#Rnercak&b3ESRX3z{xfKBF8L z5%CGkFmGO@x?_mPGlpEej!3!AMddChabyf~nJNZxx!D&{@xEb!TDyvqSj%Y5@A{}9 zRzoBn0?x}=krh{ok3Nn%e)#~uh;6jpezhA)ySb^b#E>73e*frBFu6IZ^D7Ii&rsiU z%jzygxT-n*joJpY4o&8UXr2s%j^Q{?e-voloX`4DQyEK+DmrZh8A$)iWL#NO9+Y@!sO2f@rI!@jN@>HOA< z?q2l{^%mY*PNx2FoX+A7X3N}(RV$B`g&N=e0uvAvEN1W^{*W?zT1i#fxuw10%~))J zjx#gxoVlXREWZf4hRkgdHx5V_S*;p-y%JtGgQ4}lnA~MBz-AFdxUxU1RIT$`sal|X zPB6sEVRjGbXIP0U+?rT|y5+ev&OMX*5C$n2SBPZr`jqzrmpVrNciR0e*Wm?fK6DY& zl(XQZ60yWXV-|Ps!A{EF;=_z(YAF=T(-MkJXUoX zI{UMQDAV2}Ya?EisdEW;@pE6dt;j0fg5oT2dxCi{wqWJ<)|SR6fxX~5CzblPGr8cb zUBVJ2CQd~3L?7yfTpLNbt)He1D>*KXI^GK%<`bq^cUq$Q@uJifG>p3LU(!H=C)aEL zenk7pVg}0{dKU}&l)Y2Y2eFMdS(JS0}oZUuVaf2+K*YFNGHB`^YGcIpnBlMhO7d4@vV zv(@N}(k#REdul8~fP+^F@ky*wt@~&|(&&meNO>rKDEnB{ykAZ}k>e@lad7to>Ao$B zz<1(L=#J*u4_LB=8w+*{KFK^u00NAmeNN7pr+Pf+N*Zl^dO{LM-hMHyP6N!~`24jd zXYP|Ze;dRXKdF2iJG$U{k=S86l@pytLx}$JFFs8e)*Vi?aVBtGJ3JZUj!~c{(rw5>vuRF$`^p!P8w1B=O!skwkO5yd4_XuG^QVF z`-r5K7(IPSiKQ2|U9+`@Js!g6sfJwAHVd|s?|mnC*q zp|B|z)(8+mxXyxQ{8Pg3F4|tdpgZZSoU4P&9I8)nHo1@)9_9u&NcT^FI)6|hsAZFk zZ+arl&@*>RXBf-OZxhZerOr&dN5LW9@gV=oGFbK*J+m#R-|e6(Loz(;g@T^*oO)0R zN`N=X46b{7yk5FZGr#5&n1!-@j@g02g|X>MOpF3#IjZ_4wg{dX+G9eqS+Es9@6nC7 zD9$NuVJI}6ZlwtUm5cCAiYv0(Yi{%eH+}t)!E^>^KxB5^L~a`4%1~5q6h>d;paC9c zTj0wTCKrhWf+F#5>EgX`sl%POl?oyCq0(w0xoL?L%)|Q7d|Hl92rUYAU#lc**I&^6p=4lNQPa0 znQ|A~i0ip@`B=FW-Q;zh?-wF;Wl5!+q3GXDu-x&}$gUO)NoO7^$BeEIrd~1Dh{Tr` z8s<(Bn@gZ(mkIGnmYh_ehXnq78QL$pNDi)|QcT*|GtS%nz1uKE+E{7jdEBp%h0}%r zD2|KmYGiPa4;md-t_m5YDz#c*oV_FqXd85d@eub?9N61QuYcb3CnVWpM(D-^|CmkL z(F}L&N7qhL2PCq)fRh}XO@U`Yn<?TNGR4L(mF7#4u29{i~@k;pLsgl({YW5`Mo+p=zZn3L*4{JU;++dG9 X@eDJUQo;Ye2mwlRs?y0|+_a0zY+Zo%Dkae}+MySoIppb75o?vUW_?)>@g{U2`ERQIXV zeY$JrWnMZ$QC<=ii4X|@0H8`si75jB(ElJb00HAB%>SlLR{!zO|C9P3zxw_U8?1d8uRZ=({Ga4shyN}3 zAK}WA(ds|``G4jA)9}Bt2Hy0+f3rV1E6b|@?hpGA=PI&r8)ah|)I2s(P5Ic*Ndhn^ z*T&j@gbCTv7+8rpYbR^Ty}1AY)YH;p!m948r#%7x^Z@_-w{pDl|1S4`EM3n_PaXvK z1JF)E3qy$qTj5Xs{jU9k=y%SQ0>8E$;x?p9ayU0bZZeo{5Z@&FKX>}s!0+^>C^D#z z>xsCPvxD3Z=dP}TTOSJhNTPyVt14VCQ9MQFN`rn!c&_p?&4<5_PGm4a;WS&1(!qKE z_H$;dDdiPQ!F_gsN`2>`X}$I=B;={R8%L~`>RyKcS$72ai$!2>d(YkciA^J0@X%G4 z4cu!%Ps~2JuJ8ex`&;Fa0NQOq_nDZ&X;^A=oc1&f#3P1(!5il>6?uK4QpEG8z0Rhu zvBJ+A9RV?z%v?!$=(vcH?*;vRs*+PPbOQ3cdPr5=tOcLqmfx@#hOqX0iN)wTTO21jH<>jpmwRIAGw7`a|sl?9y9zRBh>(_%| zF?h|P7}~RKj?HR+q|4U`CjRmV-$mLW>MScKnNXiv{vD3&2@*u)-6P@h0A`eeZ7}71 zK(w%@R<4lLt`O7fs1E)$5iGb~fPfJ?WxhY7c3Q>T-w#wT&zW522pH-B%r5v#5y^CF zcC30Se|`D2mY$hAlIULL%-PNXgbbpRHgn<&X3N9W!@BUk@9g*P5mz-YnZBb*-$zMM z7Qq}ic0mR8n{^L|=+diODdV}Q!gwr?y+2m=3HWwMq4z)DqYVg0J~^}-%7rMR@S1;9 z7GFj6K}i32X;3*$SmzB&HW{PJ55kT+EI#SsZf}bD7nW^Haf}_gXciYKX{QBxIPSx2Ma? zHQqgzZq!_{&zg{yxqv3xq8YV+`S}F6A>Gtl39_m;K4dA{pP$BW0oIXJ>jEQ!2V3A2 zdpoTxG&V=(?^q?ZTj2ZUpDUdMb)T?E$}CI>r@}PFPWD9@*%V6;4Ag>D#h>!s)=$0R zRXvdkZ%|c}ubej`jl?cS$onl9Tw52rBKT)kgyw~Xy%z62Lr%V6Y=f?2)J|bZJ5(Wx zmji`O;_B+*X@qe-#~`HFP<{8$w@z4@&`q^Q-Zk8JG3>WalhnW1cvnoVw>*R@c&|o8 zZ%w!{Z+MHeZ*OE4v*otkZqz11*s!#s^Gq>+o`8Z5 z^i-qzJLJh9!W-;SmFkR8HEZJWiXk$40i6)7 zZpr=k2lp}SasbM*Nbn3j$sn0;rUI;%EDbi7T1ZI4qL6PNNM2Y%6{LMIKW+FY_yF3) zSKQ2QSujzNMSL2r&bYs`|i2Dnn z=>}c0>a}>|uT!IiMOA~pVT~R@bGlm}Edf}Kq0?*Af6#mW9f9!}RjW7om0c9Qlp;yK z)=XQs(|6GCadQbWIhYF=rf{Y)sj%^Id-ARO0=O^Ad;Ph+ z0?$eE1xhH?{T$QI>0JP75`r)U_$#%K1^BQ8z#uciKf(C701&RyLQWBUp*Q7eyn76} z6JHpC9}R$J#(R0cDCkXoFSp;j6{x{b&0yE@P7{;pCEpKjS(+1RQy38`=&Yxo%F=3y zCPeefABp34U-s?WmU#JJw23dcC{sPPFc2#J$ZgEN%zod}J~8dLm*fx9f6SpO zn^Ww3bt9-r0XaT2a@Wpw;C23XM}7_14#%QpubrIw5aZtP+CqIFmsG4`Cm6rfxl9n5 z7=r2C-+lM2AB9X0T_`?EW&Byv&K?HS4QLoylJ|OAF z`8atBNTzJ&AQ!>sOo$?^0xj~D(;kS$`9zbEGd>f6r`NC3X`tX)sWgWUUOQ7w=$TO&*j;=u%25ay-%>3@81tGe^_z*C7pb9y*Ed^H3t$BIKH2o+olp#$q;)_ zfpjCb_^VFg5fU~K)nf*d*r@BCC>UZ!0&b?AGk_jTPXaSnCuW110wjHPPe^9R^;jo3 zwvzTl)C`Zl5}O2}3lec=hZ*$JnkW#7enKKc)(pM${_$9Hc=Sr_A9Biwe*Y=T?~1CK z6eZ9uPICjy-sMGbZl$yQmpB&`ouS8v{58__t0$JP%i3R&%QR3ianbZqDs<2#5FdN@n5bCn^ZtH992~5k(eA|8|@G9u`wdn7bnpg|@{m z^d6Y`*$Zf2Xr&|g%sai#5}Syvv(>Jnx&EM7-|Jr7!M~zdAyjt*xl;OLhvW-a%H1m0 z*x5*nb=R5u><7lyVpNAR?q@1U59 zO+)QWwL8t zyip?u_nI+K$uh{y)~}qj?(w0&=SE^8`_WMM zTybjG=999h38Yes7}-4*LJ7H)UE8{mE(6;8voE+TYY%33A>S6`G_95^5QHNTo_;Ao ztIQIZ_}49%{8|=O;isBZ?=7kfdF8_@azfoTd+hEJKWE!)$)N%HIe2cplaK`ry#=pV z0q{9w-`i0h@!R8K3GC{ivt{70IWG`EP|(1g7i_Q<>aEAT{5(yD z=!O?kq61VegV+st@XCw475j6vS)_z@efuqQgHQR1T4;|-#OLZNQJPV4k$AX1Uk8Lm z{N*b*ia=I+MB}kWpupJ~>!C@xEN#Wa7V+7{m4j8c?)ChV=D?o~sjT?0C_AQ7B-vxqX30s0I_`2$in86#`mAsT-w?j{&AL@B3$;P z31G4(lV|b}uSDCIrjk+M1R!X7s4Aabn<)zpgT}#gE|mIvV38^ODy@<&yflpCwS#fRf9ZX3lPV_?8@C5)A;T zqmouFLFk;qIs4rA=hh=GL~sCFsXHsqO6_y~*AFt939UYVBSx1s(=Kb&5;j7cSowdE;7()CC2|-i9Zz+_BIw8#ll~-tyH?F3{%`QCsYa*b#s*9iCc`1P1oC26?`g<9))EJ3%xz+O!B3 zZ7$j~To)C@PquR>a1+Dh>-a%IvH_Y7^ys|4o?E%3`I&ADXfC8++hAdZfzIT#%C+Jz z1lU~K_vAm0m8Qk}K$F>|>RPK%<1SI0(G+8q~H zAsjezyP+u!Se4q3GW)`h`NPSRlMoBjCzNPesWJwVTY!o@G8=(6I%4XHGaSiS3MEBK zhgGFv6Jc>L$4jVE!I?TQuwvz_%CyO!bLh94nqK11C2W$*aa2ueGopG8DnBICVUORP zgytv#)49fVXDaR$SukloYC3u7#5H)}1K21=?DKj^U)8G;MS)&Op)g^zR2($<>C*zW z;X7`hLxiIO#J`ANdyAOJle4V%ppa*(+0i3w;8i*BA_;u8gOO6)MY`ueq7stBMJTB; z-a0R>hT*}>z|Gg}@^zDL1MrH+2hsR8 zHc}*9IvuQC^Ju)^#Y{fOr(96rQNPNhxc;mH@W*m206>Lo<*SaaH?~8zg&f&%YiOEG zGiz?*CP>Bci}!WiS=zj#K5I}>DtpregpP_tfZtPa(N<%vo^#WCQ5BTv0vr%Z{)0q+ z)RbfHktUm|lg&U3YM%lMUM(fu}i#kjX9h>GYctkx9Mt_8{@s%!K_EI zScgwy6%_fR?CGJQtmgNAj^h9B#zmaMDWgH55pGuY1Gv7D z;8Psm(vEPiwn#MgJYu4Ty9D|h!?Rj0ddE|&L3S{IP%H4^N!m`60ZwZw^;eg4sk6K{ ziA^`Sbl_4~f&Oo%n;8Ye(tiAdlZKI!Z=|j$5hS|D$bDJ}p{gh$KN&JZYLUjv4h{NY zBJ>X9z!xfDGY z+oh_Z&_e#Q(-}>ssZfm=j$D&4W4FNy&-kAO1~#3Im;F)Nwe{(*75(p=P^VI?X0GFakfh+X-px4a%Uw@fSbmp9hM1_~R>?Z8+ ziy|e9>8V*`OP}4x5JjdWp}7eX;lVxp5qS}0YZek;SNmm7tEeSF*-dI)6U-A%m6YvCgM(}_=k#a6o^%-K4{`B1+}O4x zztDT%hVb;v#?j`lTvlFQ3aV#zkX=7;YFLS$uIzb0E3lozs5`Xy zi~vF+%{z9uLjKvKPhP%x5f~7-Gj+%5N`%^=yk*Qn{`> z;xj&ROY6g`iy2a@{O)V(jk&8#hHACVDXey5a+KDod_Z&}kHM}xt7}Md@pil{2x7E~ zL$k^d2@Ec2XskjrN+IILw;#7((abu;OJii&v3?60x>d_Ma(onIPtcVnX@ELF0aL?T zSmWiL3(dOFkt!x=1O!_0n(cAzZW+3nHJ{2S>tgSK?~cFha^y(l@-Mr2W$%MN{#af8J;V*>hdq!gx=d0h$T7l}>91Wh07)9CTX zh2_ZdQCyFOQ)l(}gft0UZG`Sh2`x-w`5vC2UD}lZs*5 zG76$akzn}Xi))L3oGJ75#pcN=cX3!=57$Ha=hQ2^lwdyU#a}4JJOz6ddR%zae%#4& za)bFj)z=YQela(F#Y|Q#dp}PJghITwXouVaMq$BM?K%cXn9^Y@g43$=O)F&ZlOUom zJiad#dea;-eywBA@e&D6Pdso1?2^(pXiN91?jvcaUyYoKUmvl5G9e$W!okWe*@a<^ z8cQQ6cNSf+UPDx%?_G4aIiybZHHagF{;IcD(dPO!#=u zWfqLcPc^+7Uu#l(Bpxft{*4lv#*u7X9AOzDO z1D9?^jIo}?%iz(_dwLa{ex#T}76ZfN_Z-hwpus9y+4xaUu9cX}&P{XrZVWE{1^0yw zO;YhLEW!pJcbCt3L8~a7>jsaN{V3>tz6_7`&pi%GxZ=V3?3K^U+*ryLSb)8^IblJ0 zSRLNDvIxt)S}g30?s_3NX>F?NKIGrG_zB9@Z>uSW3k2es_H2kU;Rnn%j5qP)!XHKE zPB2mHP~tLCg4K_vH$xv`HbRsJwbZMUV(t=ez;Ec(vyHH)FbfLg`c61I$W_uBB>i^r z&{_P;369-&>23R%qNIULe=1~T$(DA`ev*EWZ6j(B$(te}x1WvmIll21zvygkS%vwG zzkR6Z#RKA2!z!C%M!O>!=Gr0(J0FP=-MN=5t-Ir)of50y10W}j`GtRCsXBakrKtG& zazmITDJMA0C51&BnLY)SY9r)NVTMs);1<=oosS9g31l{4ztjD3#+2H7u_|66b|_*O z;Qk6nalpqdHOjx|K&vUS_6ITgGll;TdaN*ta=M_YtyC)I9Tmr~VaPrH2qb6sd~=AcIxV+%z{E&0@y=DPArw zdV7z(G1hBx7hd{>(cr43^WF%4Y@PXZ?wPpj{OQ#tvc$pABJbvPGvdR`cAtHn)cSEV zrpu}1tJwQ3y!mSmH*uz*x0o|CS<^w%&KJzsj~DU0cLQUxk5B!hWE>aBkjJle8z~;s z-!A=($+}Jq_BTK5^B!`R>!MulZN)F=iXXeUd0w5lUsE5VP*H*oCy(;?S$p*TVvTxwAeWFB$jHyb0593)$zqalVlDX=GcCN1gU0 zlgU)I$LcXZ8Oyc2TZYTPu@-;7<4YYB-``Qa;IDcvydIA$%kHhJKV^m*-zxcvU4viy&Kr5GVM{IT>WRywKQ9;>SEiQD*NqplK-KK4YR`p0@JW)n_{TU3bt0 zim%;(m1=#v2}zTps=?fU5w^(*y)xT%1vtQH&}50ZF!9YxW=&7*W($2kgKyz1mUgfs zfV<*XVVIFnohW=|j+@Kfo!#liQR^x>2yQdrG;2o8WZR+XzU_nG=Ed2rK?ntA;K5B{ z>M8+*A4!Jm^Bg}aW?R?6;@QG@uQ8&oJ{hFixcfEnJ4QH?A4>P=q29oDGW;L;= z9-a0;g%c`C+Ai!UmK$NC*4#;Jp<1=TioL=t^YM)<<%u#hnnfSS`nq63QKGO1L8RzX z@MFDqs1z ztYmxDl@LU)5acvHk)~Z`RW7=aJ_nGD!mOSYD>5Odjn@TK#LY{jf?+piB5AM-CAoT_ z?S-*q7}wyLJzK>N%eMPuFgN)Q_otKP;aqy=D5f!7<=n(lNkYRXVpkB{TAYLYg{|(jtRqYmg$xH zjmq?B(RE4 zQx^~Pt}gxC2~l=K$$-sYy_r$CO(d=+b3H1MB*y_5g6WLaWTXn+TKQ|hNY^>Mp6k*$ zwkovomhu776vQATqT4blf~g;TY(MWCrf^^yfWJvSAB$p5l;jm@o#=!lqw+Lqfq>X= z$6~kxfm7`3q4zUEB;u4qa#BdJxO!;xGm)wwuisj{0y2x{R(IGMrsIzDY9LW>m!Y`= z04sx3IjnYvL<4JqxQ8f7qYd0s2Ig%`ytYPEMKI)s(LD}D@EY>x`VFtqvnADNBdeao zC96X+MxnwKmjpg{U&gP3HE}1=s!lv&D{6(g_lzyF3A`7Jn*&d_kL<;dAFx!UZ>hB8 z5A*%LsAn;VLp>3${0>M?PSQ)9s3}|h2e?TG4_F{}{Cs>#3Q*t$(CUc}M)I}8cPF6% z=+h(Kh^8)}gj(0}#e7O^FQ6`~fd1#8#!}LMuo3A0bN`o}PYsm!Y}sdOz$+Tegc=qT z8x`PH$7lvnhJp{kHWb22l;@7B7|4yL4UOOVM0MP_>P%S1Lnid)+k9{+3D+JFa#Pyf zhVc#&df87APl4W9X)F3pGS>@etfl=_E5tBcVoOfrD4hmVeTY-cj((pkn%n@EgN{0f zwb_^Rk0I#iZuHK!l*lN`ceJn(sI{$Fq6nN& zE<-=0_2WN}m+*ivmIOxB@#~Q-cZ>l136w{#TIJe478`KE7@=a{>SzPHsKLzYAyBQO zAtuuF$-JSDy_S@6GW0MOE~R)b;+0f%_NMrW(+V#c_d&U8Z9+ec4=HmOHw?gdjF(Lu zzra83M_BoO-1b3;9`%&DHfuUY)6YDV21P$C!Rc?mv&{lx#f8oc6?0?x zK08{WP65?#>(vPfA-c=MCY|%*1_<3D4NX zeVTi-JGl2uP_2@0F{G({pxQOXt_d{g_CV6b?jNpfUG9;8yle-^4KHRvZs-_2siata zt+d_T@U$&t*xaD22(fH(W1r$Mo?3dc%Tncm=C6{V9y{v&VT#^1L04vDrLM9qBoZ4@ z6DBN#m57hX7$C(=#$Y5$bJmwA$T8jKD8+6A!-IJwA{WOfs%s}yxUw^?MRZjF$n_KN z6`_bGXcmE#5e4Ym)aQJ)xg3Pg0@k`iGuHe?f(5LtuzSq=nS^5z>vqU0EuZ&75V%Z{ zYyhRLN^)$c6Ds{f7*FBpE;n5iglx5PkHfWrj3`x^j^t z7ntuV`g!9Xg#^3!x)l*}IW=(Tz3>Y5l4uGaB&lz{GDjm2D5S$CExLT`I1#n^lBH7Y zDgpMag@`iETKAI=p<5E#LTkwzVR@=yY|uBVI1HG|8h+d;G-qfuj}-ZR6fN>EfCCW z9~wRQoAPEa#aO?3h?x{YvV*d+NtPkf&4V0k4|L=uj!U{L+oLa(z#&iuhJr3-PjO3R z5s?=nn_5^*^Rawr>>Nr@K(jwkB#JK-=+HqwfdO<+P5byeim)wvqGlP-P|~Nse8=XF zz`?RYB|D6SwS}C+YQv+;}k6$-%D(@+t14BL@vM z2q%q?f6D-A5s$_WY3{^G0F131bbh|g!}#BKw=HQ7mx;Dzg4Z*bTLQSfo{ed{4}NZW zfrRm^Ca$rlE{Ue~uYv>R9{3smwATcdM_6+yWIO z*ZRH~uXE@#p$XTbCt5j7j2=86e{9>HIB6xDzV+vAo&B?KUiMP|ttOElepnl%|DPqL b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/my-react-app/public/manifest.json b/my-react-app/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/my-react-app/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/my-react-app/public/robots.txt b/my-react-app/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/my-react-app/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/my-react-app/src/App.css b/my-react-app/src/App.css new file mode 100644 index 0000000..74b5e05 --- /dev/null +++ b/my-react-app/src/App.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/my-react-app/src/App.js b/my-react-app/src/App.js new file mode 100644 index 0000000..d86c27b --- /dev/null +++ b/my-react-app/src/App.js @@ -0,0 +1,42 @@ +import React, { useState } from 'react'; + +function App() { + const [player1Name, setPlayer1Name] = useState(''); + const [player2Name, setPlayer2Name] = useState(''); + + const handleSubmit = (event) => { + event.preventDefault(); + console.log('Player 1 Name:', player1Name); + console.log('Player 2 Name:', player2Name); + // Add your logic for handling the form data here + }; + + return ( +
+

Player Information Form

+
+ +
+ +
+ +
+
+ ); +} + +export default App; diff --git a/my-react-app/src/App.test.js b/my-react-app/src/App.test.js new file mode 100644 index 0000000..1f03afe --- /dev/null +++ b/my-react-app/src/App.test.js @@ -0,0 +1,8 @@ +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/my-react-app/src/index.css b/my-react-app/src/index.css new file mode 100644 index 0000000..ec2585e --- /dev/null +++ b/my-react-app/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/my-react-app/src/index.js b/my-react-app/src/index.js new file mode 100644 index 0000000..d563c0f --- /dev/null +++ b/my-react-app/src/index.js @@ -0,0 +1,17 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + + + +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/my-react-app/src/logo.svg b/my-react-app/src/logo.svg new file mode 100644 index 0000000..9dfc1c0 --- /dev/null +++ b/my-react-app/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/my-react-app/src/messege.jsx b/my-react-app/src/messege.jsx new file mode 100644 index 0000000..bc76cef --- /dev/null +++ b/my-react-app/src/messege.jsx @@ -0,0 +1,8 @@ +function Messege(){ + + + return

hello

+ +} + +export default Messege; \ No newline at end of file diff --git a/my-react-app/src/reportWebVitals.js b/my-react-app/src/reportWebVitals.js new file mode 100644 index 0000000..5253d3a --- /dev/null +++ b/my-react-app/src/reportWebVitals.js @@ -0,0 +1,13 @@ +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/my-react-app/src/setupTests.js b/my-react-app/src/setupTests.js new file mode 100644 index 0000000..8f2609b --- /dev/null +++ b/my-react-app/src/setupTests.js @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/sqaureobject.js b/sqaureobject.js new file mode 100644 index 0000000..64db57e --- /dev/null +++ b/sqaureobject.js @@ -0,0 +1,93 @@ +function create_squares() { + const squareSize = 0.7; + const squares = []; + + const squareGeometry = new THREE.PlaneGeometry(squareSize, squareSize); + const squareMaterial = new THREE.MeshBasicMaterial({ color: 0xff0000, side: THREE.DoubleSide }); + + const squarePositions = [ + new THREE.Vector3(-0.76, -0.76, -1.16), // square1 + new THREE.Vector3(0, -0.76, -1.16), // square2 + new THREE.Vector3(0.76, -0.76, -1.16), // square3 + new THREE.Vector3(-0.76, 0, -1.16), // square4 + new THREE.Vector3(0, 0, -1.16), // square5 + new THREE.Vector3(0.76, 0, -1.16), // square6 + new THREE.Vector3(-0.76, 0.76, -1.16), // square7 + new THREE.Vector3(0, 0.76, -1.16), // square8 + new THREE.Vector3(0.76, 0.76, -1.16), // square9 + new THREE.Vector3(-0.76, -0.76, 1.16), // square10 + new THREE.Vector3(0, -0.76, 1.16), // square11 + new THREE.Vector3(0.76, -0.76, 1.16), // square12 + new THREE.Vector3(-0.76, 0, 1.16), // square13 + new THREE.Vector3(0, 0, 1.16), // square14 + new THREE.Vector3(0.76, 0, 1.16), // square15 + new THREE.Vector3(-0.76, 0.76, 1.16), // square16 + new THREE.Vector3(0, 0.76, 1.16), // square17 + new THREE.Vector3(0.76, 0.76, 1.16), // square18 + new THREE.Vector3(-1.16, -0.76, -0.76), // square19 + new THREE.Vector3(-1.16, 0, -0.76), // square20 + new THREE.Vector3(-1.16, 0.76, -0.76), // square21 + new THREE.Vector3(-1.16, -0.76, 0), // square22 + new THREE.Vector3(-1.16, 0, 0), // square23 + new THREE.Vector3(-1.16, 0.76, 0), // square24 + new THREE.Vector3(-1.16, -0.76, 0.76), // square25 + new THREE.Vector3(-1.16, 0, 0.76), // square26 + new THREE.Vector3(-1.16, 0.76, 0.76), // square27 + new THREE.Vector3(1.16, -0.76, -0.76), // square28 + new THREE.Vector3(1.16, 0, -0.76), // square29 + new THREE.Vector3(1.16, 0.76, -0.76), // square30 + new THREE.Vector3(1.16, -0.76, 0), // square31 + new THREE.Vector3(1.16, 0, 0), // square32 + new THREE.Vector3(1.16, 0.76, 0), // square33 + new THREE.Vector3(1.16, -0.76, 0.76), // square34 + new THREE.Vector3(1.16, 0, 0.76), // square35 + new THREE.Vector3(1.16, 0.76, 0.76), // square36 + new THREE.Vector3(-0.76, 1.16, -0.76), // square37 + new THREE.Vector3(0, 1.16, -0.76), // square38 + new THREE.Vector3(0.76, 1.16, -0.76), // square39 + new THREE.Vector3(-0.76, 1.16, 0), // square40 + new THREE.Vector3(0, 1.16, 0), // square41 + new THREE.Vector3(0.76, 1.16, 0), // square42 + new THREE.Vector3(-0.76, 1.16, 0.76), // square43 + new THREE.Vector3(0, 1.16, 0.76), // square44 + new THREE.Vector3(0.76, 1.16, 0.76), // square45 + new THREE.Vector3(-0.76, -1.16, -0.76), // square46 + new THREE.Vector3(0, -1.16, -0.76), // square47 + new THREE.Vector3(0.76, -1.16, -0.76), // square48 + new THREE.Vector3(-0.76, -1.16, 0), // square49 + new THREE.Vector3(0, -1.16, 0), // square50 + new THREE.Vector3(0.76, -1.16, 0), // square51 + new THREE.Vector3(-0.76, -1.16, 0.76), // square52 + new THREE.Vector3(0, -1.16, 0.76), // square53 + new THREE.Vector3(0.76, -1.16, 0.76) // square54 + ]; + + const squarenumb = squarePositions.length; + + for (let i = 1; i <= squarenumb; i++) { + const square = new THREE.Mesh(squareGeometry, squareMaterial); + square.position.copy(squarePositions[i - 1]); + square.name = "square" + i; + cube.add(square); + squares.push(square); + } + + return squares; + +} + + +const squaresArray = create_squares(); +function rotate(){ +for (var s = 18; s <= 35; s++) { + squaresArray[s].rotation.set(0, -Math.PI / 2, 0); +} + +// Rotate squares from index 36 to 54 +for (var s = 36; s <= 54; s++) { + squaresArray[s].rotation.set(-Math.PI / 2, 0, 0); +} +} + +rotate(); +create_sqaure(); \ No newline at end of file diff --git a/startUI.js b/startUI.js new file mode 100644 index 0000000..bae88fe --- /dev/null +++ b/startUI.js @@ -0,0 +1,294 @@ +let lay=[]; +let layP=[]; + +const windowGeometry = new THREE.BoxGeometry(5,5,0); + const windowMaterial = new THREE.MeshBasicMaterial({ color: 0x808080, transparent: true, opacity: 0.8}); + const windowMesh = new THREE.Mesh(windowGeometry, windowMaterial,2); + windowMesh.position.set(0, 0, 2); + windowMesh.name='windowMeshstart'; + lay.push(windowMesh); +//scene.add(windowMesh); +//addTextToScene(scene, 'Play', new THREE.Vector3(-0.422, 0, 2), fontPath, 0xFF0000); +//addTextToScene(scene, 'X', new THREE.Vector3(-0.7, 1.72 , 2 ), fontPath, false); +//addTextToScene(scene, 'O', new THREE.Vector3(0.5 , 1.72, 2 ), fontPath, false); +//addTextToScene(scene, '&', new THREE.Vector3(-0.1 , 1.7 , 2), fontPath, true); + + + + +function addTextToScene(scene, textValue, position, fontPath,col) { + const loader = new THREE.FontLoader(); + loader.load(fontPath, function (loadedFont) { + const matLite = new THREE.MeshBasicMaterial({ + transparent: false, + opacity: 1, + side: THREE.DoubleSide + }); + + const geometry = new THREE.TextGeometry(textValue, { + font: loadedFont, + size: 0.38, + height: 0.1 + }); + + if (textValue === 'Play'||textValue=='Player1 is X'||textValue=='Player2 is O') { + const play = new THREE.Mesh(geometry, matLite); + lay.push(play); + play.position.copy(position); + scene.add(play); + play.name = 'play'; + + } else if (textValue === 'X') { + const X = new THREE.Mesh(geometry, matLite); + X.position.copy(position); + scene.add(X); + X.name = 'X'; + lay.push(X); + if (col === false) { + const originalColor = new THREE.Color(0x006699); + animateColorChange(X, originalColor); + } + + } else if (textValue === 'O') { + const O = new THREE.Mesh(geometry, matLite); + O.position.copy(position); + scene.add(O); + O.name = 'O'; + lay.push(O); + if (col === false) { + const originalColor = new THREE.Color(0x006699); + animateColorChange(O, originalColor); + } + } else if (textValue === '&') { + const mesh = new THREE.Mesh(geometry, matLite); + mesh.position.copy(position); + scene.add(mesh); + mesh.name = '&'; + lay.push(mesh); + } + + + + + + + + + }); +} + + +function animateColorChange(mesh, originalColor) { + const speed = 0.4; + function updateColor() { + const time = performance.now() * 0.001; + const value = Math.sin(time * speed); + mesh.material.color.set(originalColor.clone().lerp(new THREE.Color(0xFF0000), value)); + requestAnimationFrame(updateColor); + } + + + updateColor(); + + + +} + + + +const fontPath = './helvetiker_bold.typeface.json'; + + + + + +function onClick(event) { + const mouse = new THREE.Vector2(); + const raycaster = new THREE.Raycaster(); + mouse.x = (event.clientX / window.innerWidth) * 2 - 1; + mouse.y = - (event.clientY / window.innerHeight) * 2 + 1; + raycaster.setFromCamera(mouse, camera); + const intersects = raycaster.intersectObjects(lay); + + if (intersects.length > 0) { + + + const clickedObject = intersects[0].object; + + + if (clickedObject.name === 'play') { + + xno() + destroymesh(); + breakMesh(clickedObject); + setTimeout(() => { + Next_Action(); + }, 9000); + + + + } + + +} + + +} + +function destroymesh() { + let i = 0; + while (i < lay.length) { + const mesh = lay[i]; + + + // Check if the mesh is not undefined + if (mesh) { + // Remove the mesh from the scene + scene.remove(mesh); + + // Dispose of the mesh to free up resources + mesh.geometry.dispose(); + mesh.material.dispose(); + + // Remove the mesh from the array + + lay.splice(i, 1); + } else { + // Increment i if the mesh is undefined + i++; + } + } + +} + + +function updateFragments() { + + + for (let i = fragments.length - 1; i >= 0; i--) { + const fragment = fragments[i]; + + + fragment.position.add(fragment.userData.velocity.clone().multiplyScalar(9)); + + // Remove fragments that go below the ground + if (fragment.position.y <-10) { + // Remove the fragment from the scene + scene.remove(fragment); + + // Dispose of the fragment's geometry and material + fragment.geometry.dispose(); + fragment.material.dispose(); + + // Remove the fragment from the array + fragments.splice(i, 1); + } + } + +} + +let createdObjects = []; + +function xnx() { + let index = 0; + const interval = setInterval(() => { + if (index <= 22) { + const a = index; + const xPosition = -0.7+ a * Math.random(-10); + const yPosition = 1.72 + a * Math.random(-10); + const zPosition = 2 - a / Math.random(1.2); + + const objectX = addTextToScene(scene, 'X', new THREE.Vector3(xPosition, yPosition, zPosition), fontPath, false); + const objectO = addTextToScene(scene, 'O', new THREE.Vector3(0.5, yPosition, zPosition), fontPath, false); + const objectAmp = addTextToScene(scene, '&', new THREE.Vector3(-0.1, 1.7 + a * Math.sin(-10), zPosition), fontPath, true); + + // Store the created objects in the array + createdObjects.push(objectX, objectO, objectAmp); + index++; + } else { + clearInterval(interval); // Stop the interval when all objects are created + // Set a timeout to delete the objects after a certain duration (in milliseconds) + setTimeout(() => { + removeTextGradually(scene); + }, 10); // Adjust the duration as needed + } + }, 1); // Adjust the interval duration as needed +} + + + + + + + + +function removeTextGradually(scene) { + const delay = 200; + lay.forEach((object, index) => { + setTimeout(() => { + scene.remove(object); + lay.splice(index, 1); + }, index * delay); + }); +} + + + + + + + + +const fragments = []; + +function breakMesh(mesh) { + const numFragments = 13; + for (let i = 0; i < numFragments; i++) { + const fragment = new THREE.Mesh(mesh.geometry, mesh.material.clone()); + fragment.position.copy(mesh.position); + fragment.rotation.set(Math.random()-1 * Math.PI, Math.random() -1* Math.PI, Math.random()-1 * Math.PI); + fragment.scale.set(Math.random() + 0.2, Math.random() + 0.2, Math.random() + 0.2); + scene.add(fragment); + fragments.push(fragment); + const speed = 0.2; + const direction = new THREE.Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5); + direction.normalize(); + fragment.userData = { velocity: direction.multiplyScalar(speed) }; + } + + + // Remove the original mesh + scene.remove(mesh); + + +} + + + + + + + + + + +function xno(){ + const xPosition = -10; + const yPosition = 15; + const zPosition = -16; + const initialRotation = new THREE.Euler(Math.PI/9, 0, Math.PI/12); + + const objectX = addTextToScene(scene, 'X', new THREE.Vector3(xPosition, yPosition, zPosition), fontPath, false, initialRotation); + const objectO = addTextToScene(scene, 'O', new THREE.Vector3(5.0, yPosition, zPosition), fontPath, false, initialRotation); + const objectAmp = addTextToScene(scene, '&', new THREE.Vector3(-1.5, yPosition, zPosition), fontPath, true, initialRotation); +} + + + +function Next_Action() { + const fontPath3 = 'Press Start 2P_Regular.json'; + const player1Text = addTextToScene(scene, 'Player1 is X', new THREE.Vector3(-4, 5, -5), fontPath3, 0xFF0000); + const player2Text = addTextToScene(scene, 'Player2 is O' , new THREE.Vector3(2.5, 3.7, -5), fontPath3, 0xFF0000); +} + + diff --git a/three.html b/three.html index 3149496..69cfee9 100644 --- a/three.html +++ b/three.html @@ -4,28 +4,32 @@ - Draggable 3D Cube + x ............ o + - +
- - - - + - - + + + + diff --git a/x.js b/x.js index 06875b6..67abf80 100644 --- a/x.js +++ b/x.js @@ -1,70 +1,390 @@ -import { FontLoader } from './FontLoader.js'; -import { TextGeometry } from './TextGeometry.js'; +let intersectedIndex=-1; +let game=true; +let all_clicked_pos=[]; +let TextXO=[] +let addedtext=[] +let contextMenuOccurred = false; +let dividedArrays = []; +let matchingElements; +let arr=[]; +let match = false; +let xMatchCount = 0; +let oMatchCount = 0; +let xMatchCountText; +let oMatchCountText; +const textpositions= [ + new THREE.Vector3(-0.94, -0.94, -1.2), // 1 + new THREE.Vector3(-0.21, -0.94, -1.2), // 2 + new THREE.Vector3(0.56, -0.94, -1.2), // 3 + new THREE.Vector3(-0.94, -0.21, -1.2), // 4 + new THREE.Vector3(-0.21, -0.21, -1.2), // 5 + new THREE.Vector3(0.56, -0.21, -1.2), // 6 + new THREE.Vector3(-0.94, 0.56, -1.2), // 8 + new THREE.Vector3(-0.21, 0.56, -1.2) , // 9 + new THREE.Vector3(0.56, 0.56, -1.2), // 7 + new THREE.Vector3(-0.94, -0.94, 1.14), // 10 + new THREE.Vector3(-0.21, -0.94, 1.14), // 11 + new THREE.Vector3(0.56, -0.94, 1.14), // 12 + new THREE.Vector3(-0.94, -0.21, 1.14), // 13 + new THREE.Vector3(-0.21, -0.21, 1.14), // 14 + new THREE.Vector3(0.56, -0.21, 1.14), // 15 + new THREE.Vector3(-0.94, 0.56, 1.14), // 16 + new THREE.Vector3(-0.21, 0.56, 1.14), // 17 + new THREE.Vector3(0.56, 0.56, 1.14), // 18 + new THREE.Vector3(-1.15, -0.96, -0.90), // 19 + new THREE.Vector3(-1.15, -0.23, -0.90 ), // 20 + new THREE.Vector3(-1.15, 0.53, -0.9 ), // 21 + new THREE.Vector3(-1.15, -0.96, -0.2 ), // 22 + new THREE.Vector3(-1.15, -0.21, -0.2 ), // 23 + new THREE.Vector3(-1.15, 0.56, -0.17 ), // 24 + new THREE.Vector3(-1.15, -0.94,0.6), // 25 + new THREE.Vector3(-1.15, -0.21, 0.59 ), // 26 + new THREE.Vector3(-1.15, 0.57, 0.6) ,// 27 + new THREE.Vector3(1.2, -0.92, -0.92), // 28 + new THREE.Vector3(1.2, -0.21, -0.92 ), // 29 + new THREE.Vector3(1.2, 0.57, -0.92), // 30 + new THREE.Vector3(1.2, -0.92, -0.21 ), // 31 + new THREE.Vector3(1.2, -0.21, -0.21 ), // 32 + new THREE.Vector3(1.2, 0.57, -0.21 ), // 33 + new THREE.Vector3(1.2, -0.92,0.57), // 34 + new THREE.Vector3(1.2, -0.21, 0.57 ), // 35 + new THREE.Vector3(1.2, 0.57, 0.57 ) , // 36 + new THREE.Vector3(-0.9, 1.2, -0.9), // 37 + new THREE.Vector3(-0.19, 1.2, -0.9 ), // 38 + new THREE.Vector3(0.57, 1.2,-0.9 ), // 39 + new THREE.Vector3(-0.9, 1.2, -0.21), // 40 + new THREE.Vector3(-0.19, 1.2, -0.21), // 41 + new THREE.Vector3(0.62, 1.2, -0.19 ), // 42 + new THREE.Vector3(-0.97, 1.2, 0.59), // 43 + new THREE.Vector3(-0.11, 1.2, 0.59 ), // 44 + new THREE.Vector3(0.65, 1.2, 0.59) , // 45 + new THREE.Vector3(-0.92 ,-1.15,- 0.9), // 46 + new THREE.Vector3(-0.20, -1.15, -0.92 ), // 47 + new THREE.Vector3(0.62, -1.15, -0.92 ), // 48 + new THREE.Vector3(-0.92, -1.15, -0.21 ), // 49 + new THREE.Vector3(-0.21, -1.15, -0.21), // 50 + new THREE.Vector3(0.63, -1.15, -0.21 ), // 51 + new THREE.Vector3(-0.92, -1.15,0.62), // 52 + new THREE.Vector3(-0.21, -1.15, 0.62 ), // 53 + new THREE.Vector3(0.62, -1.15, 0.62 ) // 54 + ]; +const raycaster = new THREE.Raycaster(); +const mouse = new THREE.Vector2(); +window.addEventListener('click', mouseclick, false); -animate(); - -window.addEventListener('resize', onWindowResize); +let clickedPositions = new Set(); +function mouseclick(event) { + + mouse.x = (event.clientX / window.innerWidth) * 2 - 1; + mouse.y = -(event.clientY / window.innerHeight) * 2 + 1; + raycaster.setFromCamera(mouse, camera); + + const intersects = raycaster.intersectObjects(squaresArray); -function onWindowResize() { - camera.aspect = window.innerWidth / window.innerHeight; - camera.updateProjectionMatrix(); - renderer.setSize(window.innerWidth, window.innerHeight); + if (intersects.length > 0) { + const intersectedSquare = intersects[0].object; + for (let i = 0; i <= 53; i++) { + if (squaresArray[i] === intersectedSquare) { + intersectedIndex = i; + + if (game && !clickedPositions.has(i)) { + addXManually(textpositions[i]); + console.log(clickedPositions) + clickedPositions.add(i); + all_clicked_pos.push(i); + keyval(TextXO, all_clicked_pos,setsz); + updateTextContent(); + } + break; + + } + + } + }} + + + + + +let currentPlayer = 'X'; +let currentPosition=[]; + +function addXManually({ x, y, z }) { + const currentPositionn= new THREE.Vector3(x, y, z); + currentPosition.push(currentPositionn); + if(contextMenuOccurred){ + currentPlayer=TextXO[TextXO.length-3] + } + addText(new THREE.Vector3(x, y, z), currentPlayer); + TextXO.push(currentPlayer); + +// console.log(currentPosition) + + + currentPlayer = currentPlayer === 'X' ? 'O' : 'X'; + console.log(TextXO) } -const raycaster=new THREE.Raycaster(); -const mouse=new THREE.Vector2(); -window.addEventListener('click',mouseclick,false) -function mouseclick(event) { - mouse.x = (event.clientX / window.innerWidth) * 2 - 1; - mouse.y = -(event.clientY / window.innerHeight) * 2 + 1; - raycaster.setFromCamera(mouse,camera); - const intersects=raycaster.intersectObject(cube); - if (intersects.length > 0) { - const intersectionPoint = intersects[0].point; - addtext(intersectionPoint); - console.log(intersectionPoint); - }} - - function addtext(position){ - const loader = new THREE.FontLoader(); - let font; - loader.load('./helvetiker_bold.typeface.json', function (loadedFont) { - font = loadedFont; +document.addEventListener('contextmenu', function (event) { + event.preventDefault(); + contextMenuOccurred = true; + handleContextMenu(); +}); + + +function handleContextMenu() { + if (contextMenuOccurred) { + currentPlayer=TextXO[TextXO.length-1] + const lastClickedPosition = [...clickedPositions].pop(); + if (lastClickedPosition !== undefined) { + clickedPositions.delete(lastClickedPosition); + const lastObject = addedtext.pop(); + scene.remove(lastObject); + TextXO.pop() + currentPosition.pop() + all_clicked_pos.pop() + + } else { + console.log("No elements to remove."); + } + contextMenuOccurred = false; + } else { + console.log("No context menu occurred."); + } + +} + + + +function addText(position, textValue) { + const loader = new THREE.FontLoader(); + loader.load('./helvetiker_bold.typeface.json', function (loadedFont) { const color = 0x006699; const matLite = new THREE.MeshBasicMaterial({ color: color, transparent: false, - opacity: 0.4, + opacity: 1, side: THREE.DoubleSide }); - - const geometry = new THREE.TextGeometry('X', { - font: font, + + const geometry = new THREE.TextGeometry(textValue, { + font: loadedFont, size: 0.38, - height: 10 + height: 0.1 }); - - const text = new THREE.Mesh(geometry, matLite); - console.log() - text.position.copy(position); - scene.add(text); + + + if (intersectedIndex >= 18 && intersectedIndex <=35) { + const textw = new THREE.Mesh(geometry, matLite); + textw.rotation.set(0, -Math.PI / 2, 0); + textw.position.copy(textpositions[intersectedIndex]); + textw.name=textValue; + scene.add(textw); + addedtext.push(textw) + + + + } else if (intersectedIndex >=36 && intersectedIndex <=53) { + const textu = new THREE.Mesh(geometry, matLite); + textu.rotation.set(Math.PI / 2, 0, 0); + textu.name=textValue; + textu.position.copy(textpositions[intersectedIndex]); + scene.add(textu); + addedtext.push(textu); + + + + + } else { + + const text = new THREE.Mesh(geometry, matLite); + text.name=textValue; + text.position.copy(textpositions[intersectedIndex]); + scene.add(text); + addedtext.push(text); + + } + + }); +} + + + +///textxo contains all x and o so the last element is the current player +//currentpossible contains all positions and the last posiition all postition are accessable... +//allclickedpos contains the number[location] of the clicked sqaure and clicked text,,, +// divided aray consists of allclicked positions divided by 3!!!! +let setsz = [ + [15,16,17], + [12,13,14], + [9,10,11], + [15,12,9], + [16,13,10], + [17,14,11], + [15,13,11], + [17,13,9] + ]; + + + let setsnz = [ + [15,16,17], + [12,13,14], + [9,10,11], + [15,12,9], + [16,13,10], + [17,14,11], + [15,13,11], + [17,13,9] + ]; + +function keyval(arr1, arr2, arr3) { + let keyvalue = []; + const minLength = Math.min(arr1.length, arr2.length); + for (let i = 0; i < minLength; i++) { + let obj = {}; + obj[arr1[i]] = arr2[i]; + keyvalue.push(obj); + } + if (keyvalue.length < 0) { + console.log("No keyvalue entries to compare."); + } else { + let matchCount = 0; + for (let set of arr3) { + let foundMatch = false; + for (let j = 0; j < keyvalue.length - 2; j++) { + for (let k = j + 1; k < keyvalue.length - 1; k++) { + for (let i = k + 1; i < keyvalue.length; i++) { + let values = [Object.values(keyvalue[j])[0], Object.values(keyvalue[k])[0], Object.values(keyvalue[i])[0]]; + if (values.every(value => set.includes(value))) { + let matchedValues = values; + console.log(matchedValues); + foundMatch = true; + + break; + } + } + if (foundMatch) { + break; + } + } + if (foundMatch) { + break; + } + } + + if (foundMatch) { + matchCount++; + } + } + + console.log("Total matching sets with setsz:", matchCount); + divideAndCheck(keyvalue, setsz); + console.log(keyvalue) + } +} + + +function divideAndCheck(keyvalue, arr3) { + let xValues = []; + let oValues = []; + + keyvalue.forEach(item => { + const position = parseInt(Object.values(item)[0]); + const symbol = Object.keys(item)[0]; + if (symbol === 'X') { + xValues.push(position); + } else if (symbol === 'O') { + oValues.push(position); + } }); - + + xMatchCount = 0; + oMatchCount = 0; + + + for (let set of arr3) { + let xMatch = set.every(pos => xValues.includes(pos)); + if (xMatch) { + xMatchCount++; + } + } + + for (let set of arr3) { + let oMatch = set.every(pos => oValues.includes(pos)); + if (oMatch) { + oMatchCount++; + } + } + + console.log("Total matching sets with setsz for X:", xMatchCount); + console.log("Total matching sets with setsz for O:", oMatchCount); +} + + + +let xTextMesh = null; +let oTextMesh = null; + +function createText(position, textValue, isX) { + const loader = new THREE.FontLoader(); + loader.load('./helvetiker_bold.typeface.json', function (loadedFont) { + const color = 0xffffff; + const matLite = new THREE.MeshBasicMaterial({ + color: color, + transparent: false, + opacity: 1, + side: THREE.DoubleSide + }); + + const geometry = new THREE.TextGeometry(textValue, { + font: loadedFont, + size: 0.7, + height: 0.01 + }); + + const textMesh = new THREE.Mesh(geometry, matLite); + textMesh.position.copy(position); + + if (isX) { + if (xTextMesh) { + scene.remove(xTextMesh); + xTextMesh.geometry.dispose(); + xTextMesh.material.dispose(); + } + xTextMesh = textMesh; + } else { + if (oTextMesh) { + scene.remove(oTextMesh); + oTextMesh.geometry.dispose(); + oTextMesh.material.dispose(); + } + oTextMesh = textMesh; + } + + scene.add(textMesh); + }); } +function updateTextContent() { + const xMatchCountText = "Points For X: " + xMatchCount; + const oMatchCountText = "Points For O: " + oMatchCount; + + createText(xMatchCountPosition, xMatchCountText, true); + createText(oMatchCountPosition, oMatchCountText, false); +} +let xMatchCountPosition = new THREE.Vector3(7, -4, -15); +let oMatchCountPosition = new THREE.Vector3(7, -5.5, -15); -//} -addtext(); \ No newline at end of file