summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-03-29 12:21:02 +0200
committerChristian Grothoff <christian@grothoff.org>2021-03-29 12:21:02 +0200
commit9753a6edb80e8e5496a427bbec013fc45b140b65 (patch)
tree9588684d95def42ead178d9b90d745006998adf9
parent319274126cd0d4baafdac1fe8fb9a90359939d05 (diff)
parent5f62198bd0ccc1599a836295f4c42be84b362606 (diff)
downloaddocs-9753a6edb80e8e5496a427bbec013fc45b140b65.tar.gz
docs-9753a6edb80e8e5496a427bbec013fc45b140b65.tar.bz2
docs-9753a6edb80e8e5496a427bbec013fc45b140b65.zip
Merge branch 'master' of git+ssh://git.taler.net/docs
-rw-r--r--backoffice-order-details.paid.svg16
-rw-r--r--backoffice-order-list.pagination.svg16
-rw-r--r--backoffice-order-list.svg16
-rw-r--r--backoffice-product-create.with-stock.svg16
-rw-r--r--backoffice-product-create.without-stock.svg16
-rw-r--r--backoffice-product-list.actions.svg16
-rw-r--r--backoffice-product-list.svg16
-rw-r--r--backoffice-product-update.svg16
-rw-r--r--core/api-auditor.rst22
-rw-r--r--core/api-bank-access.rst18
-rw-r--r--core/api-bank-integration.rst19
-rw-r--r--core/api-common.rst114
-rw-r--r--core/api-error.rst370
-rw-r--r--core/api-exchange.rst335
-rw-r--r--core/api-merchant.rst503
-rw-r--r--core/api-sync.rst40
-rw-r--r--core/api-wire.rst42
-rw-r--r--core/errors.rst10
-rw-r--r--core/taler-uri.rst45
-rw-r--r--core/wireformats.rst16
-rw-r--r--design-documents/015-merchant-backoffice-routing.rst160
-rw-r--r--design-documents/016-backoffice-order-management.rst252
-rw-r--r--design-documents/017-backoffice-inventory-management.rst129
-rw-r--r--design-documents/index.rst3
-rw-r--r--taler-mcig.rst225
25 files changed, 1640 insertions, 791 deletions
diff --git a/backoffice-order-details.paid.svg b/backoffice-order-details.paid.svg
new file mode 100644
index 00000000..8ab4b395
--- /dev/null
+++ b/backoffice-order-details.paid.svg
@@ -0,0 +1,16 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 732 1016" width="732" height="1016">
+ <!-- svg-source:excalidraw -->
+ <!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO2dW1Piylx1MDAxNsff51NQ7vO4dfp+8U1cdTAwMTRcdTAwMDVcdTAwMTRBUERP7bJcIlx1MDAwNIgkXHUwMDA0kqDCrv3dT4OjXHUwMDA00sFsJpxCXHUwMDBiypqaJJ2Qy69cdTAwMTf/tXr1yt8/Mpm9YDww91x1MDAwZTN75mvTsK2WZ7zs/Tld/2x6vuX21SY0W/bdkdectexcdTAwMDbBwD/8+XO+x0HTdd72Mm3TMfuBr9r9Vy1nMn/P/lVbrNbsW7J+XHSWe0NcdTAwMGZcdTAwMWM3XHUwMDFlbqtl3M1WerNdZ43eT8Yzm4HR79jmfNOrWk85/lhcdTAwMWWrZVxi58svVivoqnVcdTAwMWOij3Vd0+p0XHUwMDAztVJK9rHy7biHXHUwMDE58LHGXHUwMDBmPLdnXHUwMDFlu7brTb/8XHUwMDBmMPvMv/rRaPY6njvqtz7aXHUwMDA0ntH3XHUwMDA3hqeudd6ubdl2LVx1MDAxONtvd8lodkde6Fx1MDAwMt6+5fbXacKl9Vx1MDAxZvv5rrqn873U13a6fdP3XHUwMDE39nFcdTAwMDdG01xuZrdcdTAwMDDMr2N6joNCa3bz/1o+ftfwXHUwMDA2v46z509cdTAwMTdCZ2aa04cjIeRcZlx1MDAxMcE/NsxcdTAwMTmQeHnlpduf4aD2gVxmUlx1MDAwMue7Wf6J4iCYXHUwMDFktG3Yvjm/k9ObmHtj5O1E+yPbnm39509cdTAwMWQvvcDovvZcdTAwMGKsdoK7J1dnne5FyT+K8lx1MDAxMpivwVwiKlxm80VUXGKIoFx1MDAwMjGIooLwjpTPSIGUXHUwMDEzSYUgUINcblx1MDAwMrGoICiFVKzgtVGZP/npXHUwMDEzVyfoei3Ty/xcdTAwMDFcdTAwMTFWf6FcdTAwMWLs9oOaNTFcdTAwMTfPZ7r21HAse/xu1j6OdWRbnenZ79lmO/Sg1Fx1MDAxNVx1MDAwNJYyc1x1MDAxZptcdTAwMDN3XHUwMDEwfty+aVv92bWJXHUwMDE1XHUwMDE0d4+zk2z32OlcdTAwMGa9rlMu3zn3/dp9lOLZoZYopotcdTAwMTQzXHUwMDEypZhqKFx1MDAwNjuI51x1MDAxMM+uJVxuMVx1MDAxMVxic2W4qFx1MDAwNmIqYiHGXHUwMDAyXHUwMDAzgqVMXHUwMDAx4oFrhX8rp5/5/zLzRzZb+Pj/X39qW4c4WGr/Y2m/Pdvwg2PXcaxAnXRlelx1MDAxMstn5lx1MDAwN4ZcdTAwMTdkrX7L6neWt5n9VsyW2V5Hnue+dE2jpdlveduKPlNcdTAwMTlcZi+ZXHUwMDA0Q2x4/K5KveCyalRcdTAwMTMrXHUwMDA1XHUwMDAxl5RCyFR9dFx1MDAxY6BRXG6Ipttz/iCgXHQo/4K9Rm/6MaZYXHRcdTAwMDUkdZ2GxHVcdTAwMWFcdTAwMDQkXCJcYnC0XHUwMDExkUBG2Yn9hCpnoCgvR1eF5zNwW09cIlx1MDAxMlx1MDAwNIaLlGBcdTAwMTmhJLRqY5B8bfNcdTAwMWGjXHUwMDExXHUwMDEwUjJcdTAwMDFcdTAwMTKiIyWy7lx1MDAxZFx1MDAxNEZcdTAwMTCRjOFcdTAwMTRcdTAwMTXCwFxi34FcdTAwMDTCXHUwMDAwLlx1MDAxY2KjwiAvh1x1MDAwNlx1MDAwM+XOa7F9ZFr5Wks0XHUwMDFlTtaSt1wiat+kiJKLUbrkfjfzppBFXGZcdTAwMDCq01x1MDAwNCTWXHUwMDA3QpBgXHUwMDA2XHUwMDAx5zQ9bG9qJ4dcdTAwMTDowVx1MDAxNXpw01W0iK5cdTAwMDBcdTAwMTd0jnvlQjC4PjubnGZcdTAwMDcvt7eXOY3J1SnaRZOLQrb0XHUwMDFkXFyKWZTclFx1MDAxNe3XXHUwMDA1V69mXHUwMDExXHUwMDA1iFDCXCKMqm08VsxcIiZcdTAwMTlggMPf5zZVLVx1MDAxYlwiYKn9l9SyZ6+lm9F1a5yz6s/+8blbfsRcdTAwMTZNZublYm/RyFjENL1cdTAwMDWKXXdZaeehXHUwMDAwXHUwMDEwUVx1MDAwMnRcdTAwMTFcZlx1MDAxNomAvfdcdTAwMTdcdTAwMDIwV32MpdBf3u38yLNcdTAwMGYz05Dq4c+f01x1MDAxYq/IOmiZjnug+Ps5i278/E/hRPs7XHUwMDAw2cLaTUU2yFxusjtccve1WWrdkPxcdTAwMDW/uFx1MDAxZdnooVd7SeylQSCWZYyI8FxyQ1x1MDAwZfpcXIGnzXfboIii78M34JJBiJGOb1x1MDAxYVx1MDAxYqFcdTAwMTOIXHUwMDExwVx1MDAxMF6f71WsPLYvjuXgJtsp1YOy+chcdTAwMDekTpJYQVx1MDAxOEbgXHJcdTAwMTN5oJFcclxcw0nK0dzvxsnUMVx1MDAwN1x1MDAxY1x1MDAwMK7TXHKUxXFcdTAwMDIpxFx1MDAxMHFcdTAwMGVSXHUwMDE0vJ7ZXlx1MDAxMDbbXHUwMDE1wnVLvGG3Jrx98zTCreKZXHUwMDExyNIg0U84WYxEIVx1MDAxOSVcdTAwMTdcdTAwMDKNiUvdVftu6GKJMFwiWFx1MDAxN18g8YpcdTAwMTdcIlxiJJW/XHUwMDExiYqQe2055qKns13OWnHQLFg5XHUwMDAxy1x1MDAxZfNcdTAwMWVvubh+rlx1MDAxNNqJnDVCXHUwMDE22MVYY3VDkdaNOWtfXHUwMDE2Xb2zRtRcdTAwMDVLpSV16PL44TNBsPLWKNo6b22OwFL7XHUwMDFmS/t9XHRv7dKoiG6hcVGu1W/G3WblmPLm1b/RtGyh0yDJI51GaoLKeDdmlyCozCiVlEZDcXurhlx1MDAxZtRcdTAwMTlcYlx1MDAwMNDvxDlWmddzXHUwMDBmlvKtYe8y93o8XHUwMDE5XHUwMDAwXrl59Vx1MDAxMulaINnBorLFXHUwMDAwaJQt10Ryd3lcbp/jQlx1MDAxOVx1MDAxNFxcmVlcdTAwMWQtoTShSEZcdTAwMGJWXG6B0TTFrdFqZfpuXHUwMDEwI1x1MDAxMf6dvG2qrzK9XHUwMDE1XCLBsVqtsFlKqnFl17dezv1K0H06M1x1MDAxMW1Xb868IFxusmnb1sCPSIUlkGnU6kFNolx1MDAwMkxZ5X5HjFx0Y4jLcKQ8hHGsj8ZcdTAwMDFnnJHN2Lzb/NPD5Mipv1x1MDAxNqqTosvt+7Z5rVx1MDAxObiKQYUsWT1cdTAwMDI1aS1wXHUwMDA3y3ojWJBThLHQXHUwMDE5vfjcLIRcdTAwMDQlSP6GzVtBy0X5/q7qPnWaXHUwMDBm+VZtuF+5aeSrXHUwMDE3iWnBy7QwTZBQ44TA3Sh9XHUwMDAyQcWpxFx1MDAxMEOdK1x1MDAxMk3yeKdcdTAwMDVzXGJcdTAwMTgnXFxugpY721x1MDAwMY1etfA8cTEgoyN2yoflRO4qRVx1MDAwYqDg0MjIOyianyBcbr9cdTAwMDEnIC1OYpLlXHUwMDA0ZJgo9a3BhMV7rFxcXHUwMDEwRlx0XHUwMDEx63PysTlVj3WhNYXz5j+WdvtcdTAwMTJcdTAwMGVr6f5y/9rLO65smmV+Uj/rX1x1MDAxZLvrdFx1MDAxOIKQxvvYdZm1uoxyPFx1MDAwMGFY6kZgojn2XHUwMDFmqo1cdTAwMDIkhZS7XHUwMDFls8lcdTAwMWUj7vlV58or3Ji5Ry5LVf8o15skiuazxVx1MDAwMUtMsabHQK2nk/KQ5dfuM3HD8lxmc4LDeZmhoH6sx67kXGKiXHUwMDFjgVx1MDAxNDrN4mhUZpaFdVx1MDAxMMrV2K7h976Dc6TQ61Tb9+UgW7tqPFZz54k4XHUwMDBlhZlnllx1MDAxZkQpRnxH8XpcdTAwMTQzXHUwMDAwXHUwMDA1kFx1MDAxMmopjkioeZI0ZVx1MDAxMoPfXHUwMDEw1Vx1MDAxMYqnIafDTNA1M03bUk0zijhbLVx1MDAxYkHmxeirXHUwMDAzZ1aMum5cdTAwMDHf91x1MDAwZlx1MDAxNXwueu7F3XUna2FcdTAwMDflaW9/XHUwMDFkO631XHUwMDE50f8hcepb8i1cdTAwMTlcdTAwMTBcdTAwMWPwKMozq1x1MDAxMetcckCpXGY1TDVpYGCMpy1cdTAwMGUzK9Jlt4DjIXx5rCN8Nyx20eV+rse7161k01x1MDAxOJfCqlSTLlx1MDAwYsX/IXvge3JMuJRA69RGg61zscGUNZEwRTNdeaM40zJcdTAwMDPDsrc1jeC6sn9dz1x1MDAxZlVcdTAwMDLQh1xy9ehrsm48JHIzlyYrUFx1MDAxNp22TZFmjOs7jIhuOjCDXHSAmGOsm7XNYtNgKFwilErGt21cdTAwMTJjXGKDpfY/lvb7XHUwMDEyfqaDrs97XHUwMDBmxafqRaFZXHUwMDE5s9NO5yHfWMvPXGZp8Vx1MDAwZrtPdEMkO/2SwO5cdTAwMGKlReKC3rFcdTAwMDNqXHUwMDA0IFx1MDAwMVx1MDAwNUxRvSCA4E+Af0KqLu9cdTAwMTCArr+tXHUwMDAy5rSLikf3k27jLn/7xIYje3jf1OR5J1x1MDAxMOJII8R3IK89i4Fcbs60eWTxUXmppLtcdTAwMDRcdTAwMDRtXHUwMDAyZLLtIOfO8iBcdTAwMTi3qsA+5bWz4knNXHUwMDE5O/ZaIMuoiNmBvCbIXHUwMDAyM8F5OL00lNZcdTAwMTWrxLnAXHUwMDEyIchSTOX9XHUwMDAwXHUwMDE5bzvI3lVcdTAwMWSQs0b5XHUwMDE0o3y1+DAmV082T1x1MDAwNHIoOXqmxmU0+WJcdTAwMTf5W9Mgc1xuMVx1MDAxNjI6g2xvIUchXHUwMDEy+SNU/Vx1MDAxMZlcIsn+yHFcZm98uK38iopN67m7U3mMjcbjuO7WXHUwMDFmy/46/DLCXHUwMDBmXGJCXHUwMDE0U3XfMdCUXHUwMDA0o1x1MDAxYddyR3OCXHUwMDE5XHUwMDE2XHUwMDE0S86QLpGIxKpkwaaZRFx1MDAwNKVYwcFwVLtga0melPmkYtmTotOqymzWXHUwMDFjWv6ls1x1MDAxNsmcXHUwMDFkcEpcdTAwMDVTv2pcbmVcdTAwMTJVykhTsWZHclx1MDAxMrtcZjhcdTAwMTZcdTAwMTRcdTAwMDOdwOCxXHUwMDExa1x1MDAwNNQj4lx1MDAxMNP1cygjMLdNfVx1MDAxMvBcdTAwMTaATCdcdTAwMGbAXHUwMDFkdoutUu2p0W9Palx1MDAwNVB+Wlx1MDAwN2RcdTAwMGXRXHUwMDAxhpAgwlx1MDAwNYXK14gqZaBL2NuRnCR2gdg0UVOb085izbJcdTAwMTSSUEHSXHUwMDFmIX8zztuK9KRAJ6xYXHUwMDFjXFzkiX90XGZOee7FP0uCNMeL0zapxJ+oXGYkdEjzXHUwMDAz5dl8h0TUTXNNyPTOSm3aMoxGt+eT4qTqXHUwMDExWNJcdTAwMTTJXHUwMDBlupafUX/TcfNfMjrjtt+G0Vx1MDAxNcee0VxmMoHpOTG+IT3gKPRcdP3mbLJcdTAwMTfgXHUwMDE5aCu6wuhy/6kqn1x1MDAwNuXLm4v8w8M5rZzcJYtFL1t3JbhcdTAwMDVTj1xuYFx1MDAwMjhcdFx1MDAxNcPYyZTfdlx1MDAxZlx1MDAxMVx1MDAxMExcdTAwMDBtYDpq8ueTmlX3wanOae6bW2vT96lRXHUwMDAy48ZltjjOXHUwMDFl7Vf3n0dcdTAwMTdOwqn4SyCLz2w6XHUwMDA0u4DemuZcdTAwMWNcdTAwMGKCgLJcdTAwMGY6kqNcdTAwMDHrUDVpTlx1MDAwMZFpzHF+R7k58qb3NuNcdTAwMDdGMPK31o10Xy97N/v+Wb08zDdcdTAwMDN051x1MDAwZtGNkVx1MDAwNOuwuUhcdTAwMThcdTAwMTDZJT6tWVVcdTAwMDdhXGZcYtdWP10xoZRcdMnxQiRlk+VcdTAwMDG3gOXCaak1csA4L4eOuohWn/BqIVx1MDAxOcuL+U5MoFx1MDAwM8lcdTAwMTXhkFAoKIvWZ2W7UPW6WoNcdTAwMTB1e7X1WeND1ZBcdTAwMTOBXHUwMDE5hSTF0cMtT7J+dSq9nOFcdTAwMWKgWKhm87A7XGaccaIhw2XDzKE4oFx1MDAxOCv7XGaUblx1MDAwZaef7lxm829WpWZSKlx1MDAxM6Et5b6CZcxcdMDpvo9gu+3y9UV//JQ72n88XHUwMDE59c/L2dur48ptolJcdTAwMTVcdTAwMDIuSWdKXHUwMDBlgJBcYiDKkFRmJIIy0VRj26GcoGZcdTAwMDVcdTAwMTZYXHRcZn1cdTAwMWMkVmJcYkKmNYjTyOdcdTAwMGKTvLUgt4h/fHV7/XBJb4ev2Lm88qqjRMFcZlx1MDAxMSqz8+5cdTAwMDMyQjhcdTAwMTXTZFx1MDAxYaQrXHUwMDAwv1x1MDAxM1x1MDAxOOtcdTAwMTZcIkCEL8zKSjK1XFxZcVwiXHShqU5cdTAwMTKIqVx1MDAwML9cdTAwMDUgn/P7rlxibto13jdaV8+9xpHjdaIgx1x1MDAxNJtieLHWlEDiXHUwMDAwKmHB2dRcdTAwMWFcdTAwMTBcdTAwMTY1y5RoJEbIVu9wjvf9OFx1MDAxN0pi6CZ18fjSU9OpMlx1MDAwNFG6vmVeQc9N5eRcdTAwMTT3XHUwMDFmSXPQPitJ19inJ1x1MDAxZI00jStVXHUwMDA2Q2GWXHUwMDE5Plx1MDAxOH6CXHUwMDBm08TDyG6qyeclfCilyrfVJrjh+Hdcclx0jKeTrX4jcLBcdTAwMDKes5vqwOxcdTAwMTNcImVQcy9q486R7dei8Fx1MDAxONN092VwyGIypOpcdTAwMTefgKP7XHUwMDExlTtuPpveISVcdTAwMDHqtmpn2sWrQTR9Q5XYvrL+XHUwMDBiraGcN/+xtNt2TO74hf6KLsTs19tg8FjhzsvpZb/Uadt+2UxcIkNcdTAwMTld9KdcdTAwMDRmn3QghDRcdTAwMGXVbpZfgiy2aZ1/SZC2psCK2apKuUJcdTAwMGVcdTAwMTlJcSTiVK2cXHUwMDBmIW/3bL+63XnMtTxcdTAwMGaOxqVB1anmn/L54b9cdTAwMTCmi6EvidhcdTAwMDHbXHTTzZRwx5wzqk+ehyheXFwgztD0tZlcdTAwMWIp4jW6br3YjcE4V2SwOFx1MDAxYZct037RXHUwMDE0XGKMV6ZkiVx1MDAxZvlcdD87ZbpusVxuJFx0R1xcWyRVxo9pXHRcbjjGZDOvirBcdTAwMWWpXGbscsVcdTAwMTHDx5eXYfFcdTAwMDbQkuY10VppSlx1MDAxN1x1MDAwMzxcdTAwMTJ/Rs5Omq4lTae54ZAy7Vxif3xcdTAwMWWielximEl1XHUwMDFhO226YW3qPD27+1x1MDAxM/FcXM91XHUwMDA3zoPzUCp4Y5BImzK41IPIJz1cYjNdPfOd8U1QfpNAXHUwMDA2sP41PTBaP2g+coWleiRcIs2Mglx1MDAwYoV1xjP9gdv3zUzbc52M+drsqme3XHIvtvjxq1x1MDAwN+5cdTAwMTmDQS0wgum2N+DVM7Bav85pfmF7z5b5ktW9SmL2mXacf3788z9RXHUwMDAxll8ifQ==<!-- payload-end -->
+ <defs>
+ <style>
+ @font-face {
+ font-family: "Virgil";
+ src: url("https://excalidraw.com/Virgil.woff2");
+ }
+ @font-face {
+ font-family: "Cascadia";
+ src: url("https://excalidraw.com/Cascadia.woff2");
+ }
+ </style>
+ </defs>
+ <rect x="0" y="0" width="732" height="1016" fill="#ffffff"></rect><g transform="translate(10 10) rotate(0 356 498)"><path d="M0.4417973451316357 -0.4003531508147717 C218.48239935040473 -1.1999100227355957, 438.3987757392228 -0.6788687486648559, 711.3234317474067 0.5738790698349476 M0.34496696926653386 -0.09942653514444828 C152.55734228752556 -2.0128741817325353, 305.1977789003402 -2.661992497906089, 711.6562983963638 0.3798908796161413 M711.7507497482002 0.44109537079930305 C712.5673431443721 327.2232735168189, 713.771147375062 654.1071308925749, 711.4803509168327 995.2191064305604 M712.3758837196976 0.28303352259099485 C712.4284526577294 284.7087545715273, 712.2771141639055 569.7187617380173, 711.6836724374443 996.1522278752178 M711.6294279508293 996.1166144795716 C464.5634378001094 997.1404017668366, 216.20071226730943 997.0276097279191, -0.1155871219933033 995.6940342612564 M712.2200637910515 996.2992578472943 C469.09911191277206 993.7619872846155, 226.40849183686072 993.7257939257174, 0.07173411585390568 996.277506383881 M-0.17268074229359628 996.5278887458146 C3.1938204421848067 620.4918202046305, 2.4249882593005903 244.0400969088076, 0.10932368561625481 0.3636283822357655 M0.19358384348452093 995.685708841309 C2.5640428843498233 609.4822888463735, 2.8633658590316773 222.6495563361794, -0.09429928325116635 0.0792981829494238" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(74 37) rotate(0 65 11.5)"><text x="0" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">order #123123</text></g><g><g transform="translate(72 61) rotate(0 74.87931007258595 0.16238413520157735)"><path d="M0.6838276427239178 -0.5558580737560987 C25.617098943516613 -0.4168975096195936, 125.40953028611838 0.436441220715642, 150.17492171935737 0.4463150996714831 M-0.4163015741854905 1.766712492182851 C24.323915870711208 1.5729951006919147, 123.9509148173779 -1.240850350186229, 149.31871015839278 -1.4419442217797043" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(250 38) rotate(0 51 12.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.3232458650739739 6.178985301454656 C1.0243466491093125 5.526964590144516, 2.68572893162173 3.5610844065081997, 5.464296233984179 0.7828650895354562 M-0.6335086147906134 6.2857937295484465 C1.4085922466133567 4.101849794108339, 3.71571743393605 1.8055582683767109, 4.965621974276847 0.47767475692902145 M0.4070029162894593 12.217950801968156 C4.184997538069662 7.727113025236818, 6.4297731812947525 5.010225829096842, 9.83144166762842 -1.1806510110303998 M0.3284309090207922 11.468587936132728 C2.3563008325156747 9.669525310588892, 5.297054791117207 7.337659438510284, 10.238672525388134 0.2600839081302049 M0.8833838095376034 17.980187070463472 C7.2997161003842015 12.003832022246403, 10.81475243644168 5.631858359092213, 15.198311263232906 0.7209528523427418 M0.49089759955645995 18.27834507068681 C4.626166315203809 13.555805086230347, 9.216349395813028 8.595460915535194, 14.761166899002571 1.3253470898536017 M1.6085245853475545 23.050616498752593 C6.89289328945433 16.38633118035816, 14.442457627058724 7.212293723570946, 20.338720001557732 0.15041698833699257 M0.06043618844815235 23.275609767711817 C5.788443910687235 18.579439888502097, 10.120468272487923 12.922919667509879, 21.923437935577596 0.06981006117309363 M2.281672236337032 26.220623775118515 C8.069591618812444 17.712167251473574, 17.99182080390482 11.48756679374716, 25.03025545613131 1.3976991487678827 M3.253790559074547 27.34418063770376 C8.762108978678187 19.52374492618252, 15.404828153938599 10.548695059819712, 25.732841128159674 -0.08932637013376343 M7.176187496268303 28.125992375834446 C14.362553255002426 19.066834588483218, 20.795578332876847 13.431320013519095, 32.8294814857159 0.596629684908617 M8.089469150276036 27.144712983107727 C15.078654120922813 19.552780357759524, 19.905223619234505 12.236392933280149, 32.11315835308919 -1.0373053391218896 M11.772036991979578 26.516354293955764 C17.874215135095156 20.353944206650212, 25.076795358177975 13.081146212823773, 35.43630395811175 -1.3364508560765067 M12.781844106468954 26.915577810650966 C20.26234798078415 18.902508295981708, 29.017979832210433 8.582922253846494, 36.152021308244514 1.055757402544888 M19.065237707233116 27.36733675575568 C23.67936105612463 21.10363293258686, 27.253294001390472 16.512570267468952, 41.754942982081104 0.4471316270857102 M18.831845741493687 27.303758547778564 C24.855786718246584 19.475606763018135, 32.85929758975369 10.16602849795818, 42.94313374496602 -0.3965531551883572 M23.507648634829156 27.124577183398483 C31.031308109839188 16.77009656119827, 40.82954559838214 8.693715485198172, 46.45796067542422 -0.046438568440432704 M24.748004190728597 28.327616005326686 C32.1191224041046 20.00584661556705, 38.29077181245486 11.476317021889372, 46.931549236132085 0.5469753610145496 M30.06794300852996 25.853546553157383 C39.33401861157046 16.108216767071994, 48.514796263350036 7.701329188572007, 55.04723339690334 -0.5036435913817279 M29.88867164301407 26.245461735740417 C33.315335870670125 21.222202800241185, 38.45055694247003 16.354760222073274, 52.75589340808308 0.2237560660986908 M32.79563607113577 26.464726037196673 C42.930293668197045 18.673496240234844, 51.30808666617801 8.87189021258287, 56.417979514318716 -1.0784553945738828 M34.80730010872848 27.499484674855925 C41.74083901075976 18.514907812670582, 50.457049355150396 10.177829567114333, 58.59364170869739 0.31132945840023396 M41.22599827741833 28.618139942012323 C50.10453146823421 18.24431690225388, 60.076437431874936 4.464124396828975, 63.9197316364326 -1.2425123767436972 M40.438604622721684 28.339034080341055 C48.71077935533677 17.978205533172705, 56.43179052410611 6.7665757940782605, 63.00334163931538 -0.30406322213574555 M46.22437820714941 28.17498444910032 C51.54807065979656 23.124971713321656, 55.95895142691546 14.137643910719298, 67.92036438104525 1.4400572592731251 M45.72413615734359 26.99099827236367 C52.58087736226191 17.337110075008578, 61.723229142679514 8.772994849688775, 68.26989052281543 -0.5835533521730767 M51.83052547812923 26.64925635562497 C53.387626672116795 22.242886995515455, 59.50411842792465 14.413878652976468, 72.8670666069189 -1.5375411352501942 M50.237854535472536 26.830183374259946 C58.520852343239035 18.03306439221243, 66.99415396033078 8.156304905993366, 75.24675773553791 0.5329284332333373 M55.66350394912008 27.11228601285945 C65.71936482519787 16.035713281115257, 74.97297914918781 6.3398498296221, 77.85036918185381 -0.3995920131493875 M56.37229163344893 27.00259625097494 C63.23437739493077 19.8020096308196, 69.45052436784148 9.52893690091361, 78.7012624753612 1.070578882419639 M61.48571948792217 27.417913967968076 C69.6752620206793 18.160056197732324, 78.12838591970234 7.463090240459223, 85.66511721461222 0.06195372684877043 M60.68382914915112 27.36937115084484 C67.42259989466424 19.65242122251602, 74.85290348454961 12.000585224470715, 84.15679599362568 -0.11170451466907139 M68.26389220329777 27.35231432222404 C75.61807989249698 15.362050175863434, 85.06310404467976 7.169466408501272, 91.37449782299439 1.7126553819085615 M66.7349208339195 26.375343063814718 C74.70192006642061 16.06997751399171, 83.78043788474528 6.586091099548501, 89.2380993632097 -0.3773968846966369 M70.73308421304714 25.859171372791646 C78.86020822724547 18.3278959935993, 91.00147693686111 7.491019495515069, 95.3710123657626 0.2254058033032038 M70.43937026063244 27.99297436322075 C76.03872441659735 21.865715440416267, 83.37516655969583 15.802630051401511, 96.5134857104537 0.5562273872820356 M76.4576718759325 28.189502970944105 C84.44951007176378 19.438310960035622, 89.86013031936116 15.171989319966826, 99.94050421071702 -1.6943919618030137 M76.90455305563032 27.59092816400802 C85.13520579396946 17.591340754143154, 94.57137812522973 8.002117805902454, 100.84011798323596 -0.43797870039689 M82.39537355975413 27.126837163845696 C86.24983775000693 23.11431083323845, 91.93088536163631 14.915723145041945, 104.35495387964846 3.105127428531425 M81.7766946667915 26.877994964512684 C86.24556137154653 22.140972767420102, 93.11866558294064 15.952677075080775, 104.2380540959254 2.235667332879977 M87.95822187327427 26.137035552769632 C91.31490358990614 21.677334556104256, 94.14850706788536 18.374248344389397, 104.06074293237609 8.428629931916369 M88.08309259545636 27.77166600467983 C90.19240556284761 23.487237232491815, 94.04615911522703 18.292994271623506, 103.85976081341934 8.820765770894361 M91.68461271278628 28.48860407561757 C97.24060969989759 23.816907500759292, 102.3025214763108 17.027903836428294, 103.75496900945862 13.415637088484427 M93.48533516997539 27.362335051286447 C97.75375339034544 22.24208702365101, 100.80812152834876 17.28987571459878, 104.73840781541502 13.590239409554115 M98.95701025655043 27.949695573181373 C100.06289980652532 25.71099927349325, 101.01993356382992 23.290994217858845, 104.86924538501967 20.430700082391898 M97.97675169846524 27.38883824305841 C100.2290989760085 24.696528207722412, 102.25963249412256 21.77477258723368, 103.84775742540563 20.48540155386033" stroke="#40c057" stroke-width="0.5" fill="none"></path><path d="M-0.41981918923556805 -1.092083590105176 C38.79980516117066 -1.5303800253756346, 76.06525356248021 -0.45897789286449553, 102.18402575142682 -0.8929528761655092 M0.413792691193521 0.18699660245329142 C32.49874155782163 1.5485317982546984, 64.13199116755277 0.2659945465438067, 102.80482476111501 -0.30395621713250875 M101.36514328606427 -1.1684383917599916 C100.29370086663403 7.724629051517696, 103.2191601919476 13.395328254438938, 103.22397975809872 23.72690318338573 M101.14147012587637 -0.09555382188409567 C101.30101078446023 6.0101304720155895, 101.49209209973924 11.12575682066381, 102.81655122991651 24.74441929999739 M102.89342431910336 23.48530743829906 C62.862246359325944 23.696799232084302, 23.153869989514348 22.786439432222394, 0.0021864045411348343 26.539933605119586 M101.14645983930677 25.762903177179396 C81.0104967162013 24.859351538363843, 60.29118150416762 24.75882684463635, 0.04122840519994497 25.13634740654379 M-1.309280289337039 24.73115341179073 C-1.5675150493625551 18.000548352021724, -0.36579916276969016 11.463956887833772, -1.859955383464694 -1.9063152242451906 M-0.35019935015589 24.527168625034392 C-0.13939273240976036 16.996861706022173, 0.8762373041827232 8.652094986289738, -0.8010814571753144 0.9969806903973222" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(268 36) rotate(0 19.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">paid</text></g><g transform="translate(74 78) rotate(0 49 16)"><text x="0" y="25" font-family="Helvetica, Segoe UI Emoji" font-size="28px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g><g transform="translate(68 122) rotate(0 268.7087950899452 0.567786744609478)"><path d="M0.8034188669174911 0.23212497420609002 C90.22025657904645 0.27199381776154047, 446.26234930368764 0.39657163806259643, 535.3046299021692 0.1900076050311328 M-0.23392495729029172 -0.6916133596748113 C89.67873126489421 -0.42644562505185596, 448.036463819171 1.7483485362678768, 537.6515151371807 1.8271868488937617" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(76 138) rotate(0 133 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">url: http://backend.demo.tar/order/$ID</text></g><g transform="translate(524 85) rotate(0 57.5 14)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.6003328621061395 6.912551561792485 C2.121678388770893 3.7734142139519067, 3.2141843052579233 2.148607581670102, 4.7216673973524035 -0.25370796287085473 M-0.46052240539806577 6.103107317214005 C0.5113416945122231 5.447892964056262, 2.0457797737938117 4.145653247656213, 4.780308546828574 0.013218401357274645 M-1.1017044640053406 11.003996591686784 C4.495226707215 7.926054062846433, 7.9763022313608385 4.282579259706544, 9.265918186259402 -0.36462017492505305 M0.8020484388898719 12.66037224647361 C4.208474850315459 7.35749852003643, 7.611754232071016 3.9344020542641402, 10.559728867513073 0.37077462105897685 M-1.6755865822127323 17.920406890009218 C3.841851859060866 14.829450395922372, 6.9999616002807565 10.802088528876164, 15.045920842796047 0.682967944715636 M-0.8246932887053351 19.390577785578245 C7.14126390901279 10.414973955260772, 11.923798177106265 4.615313895375262, 15.501914320982475 -0.05584651819197628 M0.8906892186216329 24.41962927178955 C7.375453416327225 14.4578176584892, 16.080847539577285 6.443217864772162, 20.702330328801537 -0.015476625955152201 M-0.6176320023649122 24.245971030271708 C6.131929450032474 18.291400564375024, 11.683434484874809 12.749874487482757, 21.309490037428105 0.19081848712409766 M2.663715653060761 30.598588408185975 C8.27124244645919 21.705825090882914, 10.561957502389975 16.971672776079068, 24.49049397246203 -1.4288790510955511 M0.5273171932760743 28.508536141580777 C7.311066632903433 22.72616215769844, 11.98428878096971 17.083616438802068, 25.369880282927664 -0.5722865644830524 M6.004171166838439 29.86604840980339 C13.808765639746827 17.534313950686098, 23.879610176967365 6.049789893175365, 32.648616257539786 -1.948799604432356 M7.146644511529537 30.196869993782222 C14.253695420964 19.80953787963429, 23.634113152593176 8.897204589279625, 32.375421621321536 0.6729155044316535 M11.229722040783383 27.1915410644744 C19.466467123225065 22.044882358626367, 23.24280769359693 13.49522536805215, 37.62074367683505 -0.24678836380126867 M12.129335813302315 28.447954325880524 C18.498934191010925 21.299262062371135, 26.57065994585639 12.369806929734711, 36.65105043798809 -0.30912074529561195 M16.95628976769583 30.481641294363296 C26.134351452033457 19.042542643092247, 38.00535285689142 5.292129143840185, 41.117736964110065 -2.124561852929091 M16.839389983972772 29.61218119871185 C25.75119413831923 17.039854999950272, 35.808940925816415 6.629123835383904, 41.9965251717677 -0.13899001121977506 M22.56661008133804 29.012757575743287 C26.394697338647514 24.455903470409417, 34.80802139682362 17.1402264074067, 48.68129886216509 -1.2888263996515228 M22.365627962381296 29.40489341472128 C32.04366963081824 19.121776500893404, 39.483509104412946 9.312870330475555, 48.03170408303875 0.12159039249533876 M26.77426072451025 28.65630858077867 C38.94585205749946 19.17311431619394, 46.38998788246913 7.822738585710649, 52.74494635476238 1.798545222304643 M27.866970508906242 28.85031115974499 C34.190729593258695 22.257136301284106, 40.79566368078322 15.164953216725888, 54.0387674856416 -0.16164610670518798 M34.68463368097473 29.02854653574265 C44.09350056748434 19.32337576384521, 52.086093668134666 6.25493925648583, 59.19803843470217 -0.854309564896301 M32.41466043738801 29.150105361228057 C40.63570018987821 20.689120614728715, 48.57557256450677 10.92756452531033, 57.30749551495464 0.7484113020148122 M36.3589629435317 30.715733862799514 C45.33096899792721 22.611818099404353, 51.81156298519241 13.8353888967773, 62.44674833574672 0.38058021501884554 M37.337540383204946 29.627324330006648 C48.465672651827866 18.515020177138098, 58.26395765892108 6.7548915405042855, 62.97749035981823 -0.17117582889958527 M41.875296745943444 28.423966538222473 C49.51947403383457 19.60533358940662, 57.64605367571258 14.522772955138024, 67.97809130069628 -0.023804265785621226 M44.064275035197454 28.594967118525844 C48.96762131340175 21.32223453658827, 56.55233638528017 14.15087445784096, 68.38345403061076 -0.7594685636122094 M47.892525331010184 30.20435073417583 C56.35059169588773 19.900535102038994, 61.81499991567904 12.812858796709563, 75.42089681331309 -1.5996482810364796 M48.468628903743884 29.299910162621824 C56.246564817297966 22.031594238106194, 61.21349008849691 13.861665742859737, 74.8974105911726 -0.8030772246779634 M52.71135318249419 30.602826176932773 C62.37755756602059 18.0697952206136, 72.02214220719888 9.180273058206495, 81.10983636639742 1.340873091430538 M54.711688552684635 28.791480639739653 C60.08758988587578 23.548989416600904, 65.81845391893219 17.35552175230893, 80.27398392688212 -0.09223475126070468 M58.8383267931957 29.885342788657606 C68.42617658147711 17.20685978566645, 77.07180165284221 7.786862685025827, 85.1463956937115 0.8554183278886569 M59.58714036739806 29.86538311071551 C67.88942901464942 19.52127843867293, 76.49620401729712 10.568434121166327, 84.4926199765797 0.447776659084667 M64.04680689687697 27.187684045623534 C71.71814146073672 23.066696771649124, 78.91555488138364 13.807501625843114, 89.96290253805557 -1.403343899497841 M64.36349278672455 27.93227287799447 C74.75161387556807 18.229757085979262, 83.33701114505949 8.343430782107987, 90.1028645006437 0.7005521921943085 M71.94099623633825 27.740643619994852 C80.60058668720224 17.238134854195668, 88.31678263796519 7.42198344257428, 95.38349888319195 -1.0379113644557378 M69.12935407104247 28.96168262741271 C79.05604575964063 19.441029096839113, 87.93988085962573 9.86223552242707, 96.06658531291455 0.22713777551331304 M75.01691179534178 28.01984873804477 C82.63317215566487 18.48617053756744, 92.29986385295231 11.003662300711735, 101.18816872192079 0.31922835517925563 M76.6356545341922 28.35059578641531 C84.53953754806956 19.13782368446563, 93.28039033337913 9.265624321462639, 100.10325004877055 0.20995671987784448 M81.22641256668783 30.970936821937574 C88.56894681245132 21.757025375613026, 95.17207500448677 9.814409738925924, 106.1737102880044 0.15542123568034327 M80.64092431155211 28.867373165838433 C89.33056918393507 18.404339051708966, 99.10968876512422 7.670948509304139, 106.53214839705211 0.3213830777329818 M85.03817178413863 27.15937884794647 C95.119674458156 18.563078706425543, 103.86127262936395 8.738494473431548, 110.71776382424302 -1.696976550788186 M85.75351559196258 29.52032631812716 C95.41793995664347 18.66741218990523, 106.01643594588076 6.78338562168959, 110.61766986813761 0.6676682849148889 M90.00170469049444 29.995655988235765 C96.13075696724582 21.927073492492173, 100.50799326891016 15.897249719226494, 114.52766575641789 -0.40135611750756084 M91.77688038580199 29.501644179117672 C99.29903330263478 18.163215366079392, 109.13098668289048 9.095360461453428, 115.0994079678864 0.1669336793142122 M95.152281740527 29.63979254930142 C103.30821594544345 21.258047747292828, 113.58805974177102 12.062522413589107, 115.86053549035773 8.353611198354798 M96.8957337279202 29.810676006477806 C101.0256994498402 23.914537959739405, 106.59385304512767 17.27991515605919, 115.19349699470536 7.738387562435406 M100.85525151400807 28.452984712639413 C104.33108248459507 24.149328759218385, 109.4597416925591 20.51815192162715, 115.1766608467963 12.220830132403798 M101.3016265906671 29.424310120375416 C104.08052539648853 25.257263077262955, 108.53447508793393 21.396324894500545, 115.02724747440632 13.887931496055252 M108.14379196426299 30.128413407297145 C110.89312899421125 25.127575244205143, 114.09082853632182 20.123055954302348, 114.94024682505373 17.67962690271052 M107.5615005819912 28.741099765409988 C109.7690862467592 25.491534532010277, 113.9191098591526 21.17454411752681, 116.53687549423744 18.542117069154852 M112.86781987387569 29.038894779796088 C113.405465186129 27.579988637088203, 114.25017468752955 26.91852268088433, 115.4615647145346 24.79560832074747 M112.47588494376161 28.947883243255625 C113.93868344437257 27.51395216920391, 114.616764804214 26.432472263640694, 115.97423577655891 25.44044329622664" stroke="#fa5252" stroke-width="0.5" fill="none"></path><path d="M-0.7654163967818022 0.5851109456270933 C32.87654843414202 -0.1487584721762687, 67.71185928862542 -0.508750916691497, 115.54438595660031 -1.9454889465123415 M0.4227743661031127 -0.2585738366469741 C42.3749429048039 0.264422100270167, 84.4906160440296 0.5635947103146464, 114.86645211931318 -0.489748633466661 M113.9505858886987 -0.2685666251927614 C115.13667844954878 4.99574102908373, 114.96902673665434 14.842306907847526, 116.87188612110913 29.81495205871761 M114.42417444940656 0.32484730426222086 C115.69569964528084 10.169872020743787, 114.56903289079666 21.410123215802013, 114.42823790665716 28.471992247737944 M116.8967841733247 27.668830556795 C83.93521563103423 29.627601164998488, 56.27600190136582 29.134113389672713, -1.5032180082052946 26.163525922223926 M114.60544418450445 28.39623021427542 C83.45987117988989 29.073807933321223, 50.89888431876898 27.72363323806785, -0.4462260389700532 28.222872876562178 M-1.719485117122531 26.73391137830913 C0.5345506174489856 17.997313112765553, 0.015591989271342754 10.114823657646777, 0.2846131194382906 -1.44011159427464 M0.4561770772561431 28.123696231283247 C0.8961223613470792 19.482062935642897, -0.13811237104237079 11.014769888110457, 0.4504272257909179 0.572616153396666" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(552 86.5) rotate(0 28.5 11.5)"><text x="0" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">refund</text></g><g transform="translate(80 192) rotate(0 52.5 16)"><text x="0" y="25" font-family="Helvetica, Segoe UI Emoji" font-size="28px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Timeline</text></g><g><g transform="translate(81 232) rotate(0 256.80591274760656 -0.5675759426504214)"><path d="M0.5162265222519635 -0.4295443754643201 C85.94485419206322 -0.44329491667449467, 426.7158267181366 0.771511175110936, 512.0634519618004 0.6896480698138474 M-0.6718932829052211 -1.7006591179221868 C85.17124262474476 -2.1272609450668094, 428.90051687620576 -1.3398686697334052, 514.2837187781184 -1.0708614423125984" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(523 194) rotate(0 49.5 15)"><path d="M-1.3927636910229921 1.9038706291466951 C40.85635561263189 -1.172579170493409, 77.09587523061782 1.5418644535262138, 98.76961813680828 -0.7629181277006865 M0.31219922844320536 0.16895618196576834 C35.22019558241591 -1.0472391379717738, 71.3413200262934 -0.7200560999754817, 98.72107531968504 0.02675651665776968 M97.23215447179973 0.3285082448273897 C100.70414898553864 8.245190409012139, 101.04226712146775 17.23717660456896, 99.0986206959933 30.51961629278958 M99.67338182870299 0.8142533218488097 C100.00218313680962 6.136189993470908, 98.406417277921 13.519519449211659, 98.12164943758398 29.140001616440713 M97.42073039524257 29.076908754184842 C80.48400388071313 28.96598879653029, 59.78999701645225 29.25588331776671, -1.7546296287328005 28.27319143898785 M98.85010188166052 30.26792963501066 C62.472852255869654 29.868428198704496, 27.128860114514822 29.441851852545515, 0.3791733616963029 29.07734244223684 M1.6853542160242796 31.733361708000302 C-1.196157615724951 21.054142004810274, 0.1811946815811098 9.035797622054815, 0.970304174348712 1.5527999866753817 M-0.3586598997935653 29.127977064810693 C0.4403083517216146 22.593333827331662, -0.917536746058613 14.240383666940033, 0.37172936741262674 -0.25170562509447336" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(533.5 197.5) rotate(0 39 11.5)"><text x="39" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">add note</text></g><g transform="translate(82 254) rotate(0 5 6)"><path d="M6.716362237735836 0.011767320136064185 C7.6875630890858115 0.004037699588739452, 7.810820655629447 0.5390656805081229, 8.49144453426554 1.7377714469383299 C9.172068412901632 2.936477213368537, 10.668961228777995 5.778204198845734, 10.800105509552388 7.2040019187173066 C10.931249790326781 8.62979963858888, 10.148450921304978 9.638173727463956, 9.278310218911892 10.292557766167766 C8.408169516518807 10.946941804871576, 6.916923448278577 11.15058781602225, 5.579261295193878 11.130306150940164 C4.241599142109179 11.110024485858078, 2.136778699505735 10.88805984506134, 1.2523373004037026 10.170867775675248 C0.36789590130167016 9.453675706289156, 0.3907592574738186 8.107284566681672, 0.2726129005816835 6.827153734623611 C0.15446654368954843 5.54702290256555, 0.1376749166578226 3.6185549041636573, 0.5434591590508919 2.4900827833268844 C0.9492434014439612 1.3616106624901114, 1.6093551494000091 0.36613932641081187, 2.7073183549400994 0.05632100960297315 C3.8052815604801897 -0.2534973072048656, 6.446799233073003 0.3071024670391971, 7.131238392291434 0.6311728824798521 C7.815677551509864 0.9552432979205072, 6.756972023312035 1.850753996561864, 6.813953310250682 2.0007435022469036 M5.922548829500867 -1.047848228471767 C7.051240275448803 -0.731602158347266, 7.945353651186221 2.2692610517688685, 8.867293285672845 3.471656731642392 C9.78923292015947 4.674052411515915, 11.513569466504379 5.151011415208889, 11.454186636420612 6.166525850769371 C11.394803806336846 7.182040286329854, 9.409314909831222 8.619176508567234, 8.510996305170247 9.564743345005285 C7.612677700509271 10.510310181443336, 6.912202509370612 11.610482432499907, 6.064275008454757 11.839926869397676 C5.216347507538902 12.069371306295444, 4.365100842794254 11.785374729613078, 3.42343129967512 10.941409966391893 C2.4817617565559864 10.097445203170707, 0.9708293177715931 7.8868989313633335, 0.4142577497399538 6.776138290070563 C-0.14231381829168555 5.665377648777792, -0.549185235536406 5.493178176739373, 0.08400189148528447 4.276846118635265 C0.7171890185069749 3.0605140605311574, 2.922828215080351 0.19888415317100716, 4.213380511870096 -0.5218540585540854 C5.503932808659842 -1.2425922702791778, 7.213584646355425 -0.08096507807854877, 7.827315672223758 -0.047583151715290484 C8.44104669809209 -0.0142012253520322, 8.254382369663505 -0.3563563808572748, 7.895766667080093 -0.3215625003745357" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(81.5 311) rotate(0 5.5 6)"><path d="M4.176264367157778 0.1946136509320553 C5.207206807808453 -0.563290419854372, 5.931437286390944 -0.7117606228820379, 6.991143616139377 -0.333270950564593 C8.05084994588781 0.045218721752851854, 9.712236736611366 1.305991058605816, 10.534502345648377 2.4655516848367243 C11.356767954685388 3.6251123110676327, 12.085251497162854 5.392650663146356, 11.92473727036144 6.624092806820856 C11.764223043560026 7.855534950495357, 10.614123075126354 8.852611130937472, 9.571416984839887 9.854204546883725 C8.52871089455342 10.855797962829978, 6.742681782595174 12.569573830092574, 5.668500728642638 12.633653302498377 C4.594319674690102 12.69773277490418, 3.8867775797134345 11.120746032970285, 3.1263306611246686 10.238681381318539 C2.3658837425359027 9.356616729666793, 1.3761425843980624 8.54871843901391, 1.1058192171100414 7.341265392587905 C0.8354958498220204 6.1338123461619, 1.1295380606448762 4.241305055702607, 1.5043904573965428 2.993963102762504 C1.8792428541482094 1.7466211498224016, 2.820737219953004 0.38431856144656307, 3.3549335976200405 -0.14278632505271105 C3.889129975287077 -0.6698912115519852, 4.609556280207505 -0.39668611874843307, 4.709568723398761 -0.1686662162331407 M5.848671915829505 1.0315544674155026 C6.562741490385101 0.8725958068795155, 6.895570271537958 1.3053409336194806, 7.932845758746122 2.0398516907070015 C8.970121245954287 2.7743624477945223, 11.531504239284804 4.092496826561568, 12.07232483907849 5.438619009940627 C12.613145438872177 6.784741193319686, 11.978521601588938 9.243889355912746, 11.177769357508241 10.116584790981356 C10.377017113427545 10.989280226049967, 8.446543455145438 10.57382964177063, 7.267811374594313 10.674791620352295 C6.089079294043187 10.77575359893396, 5.172683981104837 11.279274419154547, 4.105376874201486 10.722356662471347 C3.0380697672981354 10.165438905788147, 1.6925992390744344 8.551339042848664, 0.863968733174211 7.333285080253098 C0.03533822727398761 6.115231117657532, -1.1642530191731326 4.635041652502019, -0.8664061611998539 3.41403288689795 C-0.5685593032265752 2.193024121293881, 1.3342643606471933 0.772767983390044, 2.6510498810138836 0.007232486628685919 C3.967835401380574 -0.7583030101326722, 6.458297855205859 -0.9922741109640255, 7.034306961000287 -1.1791800936701984 C7.610316066794716 -1.3660860763763714, 6.1727633458460485 -1.2419922221994548, 6.107104515780453 -1.1142034096083515" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(80.5 365) rotate(0 6.5 7.5)"><path d="M5.3456165820495745 -0.043897931243193966 C6.34460687122812 -0.6775212314471016, 7.200175025660477 -0.5372543111688549, 8.388513763177261 0.04135435234296292 C9.576852500694045 0.6199630158547808, 11.724537398317585 1.8922027023345662, 12.475649007150281 3.4277540498277133 C13.226760615982977 4.963305397320861, 13.18595790702461 7.485874071127203, 12.89518341617344 9.254662437301844 C12.60440892532227 11.023450803476486, 11.663539794191403 13.08123881683047, 10.731002062043263 14.040484246875563 C9.798464329895124 14.999729676920655, 8.599296059393726 15.303746647633002, 7.299957023284603 15.010135017572399 C6.000617987175479 14.716523387511796, 4.093782494249026 13.20708018277985, 2.934967845388524 12.27881446651195 C1.7761531965280222 11.35054875024405, 0.6701453914087396 10.755606588904271, 0.347069130121592 9.440540719965002 C0.02399286883444446 8.125474851025732, -0.06249969468447647 5.937653749546579, 0.9965102776656387 4.388419252876329 C2.055520250015754 2.8391847562060786, 5.659902794226904 0.7304583551085697, 6.701128964222283 0.14513373994350243 C7.742355134217663 -0.44019087522156486, 7.414848498886521 0.7425187293791242, 7.243867297637916 0.8764715618859249 M4.103517772664786 -0.4282294050542843 C5.62930178806258 -1.1774377044514561, 7.97844819326613 -1.3426429692829027, 9.30418659282128 -0.9587032289085569 C10.629924992376429 -0.574763488534211, 11.304793267210407 0.542918507115232, 12.057948169995681 1.8754090371917913 C12.811103072780956 3.207899567268351, 14.207791830436726 5.388165267467555, 13.823116009532923 7.036239951550798 C13.43844018862912 8.684314635634042, 11.091680538426644 10.256678601908352, 9.749893244572867 11.763857141691256 C8.40810595071909 13.27103568147416, 6.8079391159480425 15.751543722858312, 5.772392246410259 16.07931119024822 C4.736845376872476 16.407078657638127, 4.273409577767566 15.06010296742965, 3.5366120273461688 13.730461946030703 C2.799814476924771 12.400820924631756, 2.0120115654705044 9.580248735960346, 1.3516069438818725 8.101465061854542 C0.6912023222932405 6.622681387748737, -1.0119763782400804 6.2986511845040125, -0.4258157021856235 4.857759901395875 C0.1603449738688335 3.4168686182877375, 4.424365330302098 0.3334688285074341, 4.868571000208615 -0.5438826367942813 C5.312776670115131 -1.4212341020959967, 2.2906202175428274 -0.8116639180638294, 2.2394183172534725 -0.40634889041441724" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(89 263) rotate(0 0 25.5)"><path d="M0 0 C0 8.5, 0 42.5, 0 51 M0 0 C0 8.5, 0 42.5, 0 51" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(89 319.5) rotate(0 0 25.5)"><path d="M0 0 C0 8.5, 0 42.5, 0 51 M0 0 C0 8.5, 0 42.5, 0 51" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(104 250.5) rotate(0 55 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">refund USD:1.5</text></g><g transform="translate(107 302) rotate(0 135 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">note: the client call that wanted refund</text></g><g transform="translate(104 365) rotate(0 63 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">payment: USD:10</text></g><g transform="translate(82 422) rotate(0 92.5 16)"><text x="0" y="25" font-family="Helvetica, Segoe UI Emoji" font-size="28px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Payment detail</text></g><g><g transform="translate(74 460) rotate(0 264 0)"><path d="M0 0 C88 0, 440 0, 528 0 M0 0 C88 0, 440 0, 528 0" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(104 267) rotate(0 70.5 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">2021/03/15 10:00hs</text></g><g transform="translate(104 325) rotate(0 70.5 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">2021/03/14 10:00hs</text></g><g transform="translate(104 390) rotate(0 70.5 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">2021/03/13 10:00hs</text></g><g transform="translate(85 491) rotate(0 35 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">summary:</text></g><g transform="translate(85 544.4225358963013) rotate(0 29 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">amount:</text></g><g transform="translate(85 573.7558692296348) rotate(0 11 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">fee</text></g><g transform="translate(85 609.3114247851904) rotate(0 51.5 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">refund amount</text></g><g transform="translate(170 490.42253589630127) rotate(0 141.5 8.84375)"><text x="0" y="13.6875" font-family="Helvetica, Segoe UI Emoji" font-size="15.722222222222205px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this is the summary of the contract terms</text></g><g transform="translate(85 644.8669803407461) rotate(0 11 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">net</text></g><g transform="translate(85 680.4225358963013) rotate(0 50.5 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">current status:</text></g><g transform="translate(246 544.4225358963013) rotate(0 28 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(242 579.9780914518569) rotate(0 30 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:1.5</text></g><g transform="translate(246 615.5336470074126) rotate(0 28 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(255 651.0892025629682) rotate(0 23.5 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:0</text></g><g transform="translate(267 680.6447581185239) rotate(0 15 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">paid</text></g><g transform="translate(73 725.1126761436462) rotate(0 273 23.5)"><path d="M0 0 C160.1273434476927 0, 320.2546868953854 0, 546 0 M0 0 C129.1091042054817 0, 258.2182084109634 0, 546 0 M546 0 C546 10.806411408539862, 546 21.612822817079724, 546 47 M546 0 C546 17.242497667018327, 546 34.484995334036654, 546 47 M546 47 C354.8609685463831 47, 163.72193709276615 47, 0 47 M546 47 C362.87298346627506 47, 179.74596693255006 47, 0 47 M0 47 C0 34.5467499085702, 0 22.093499817140398, 0 0 M0 47 C0 32.555069527681916, 0 18.11013905536383, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(558 728.1126761436462) rotate(0 30.5 21)"><path d="M0 0 C18.423322578240185 0, 36.84664515648037 0, 61 0 M0 0 C19.02688319934532 0, 38.05376639869064 0, 61 0 M61 0 C61 11.41579509023577, 61 22.83159018047154, 61 42 M61 0 C61 15.039282721839847, 61 30.078565443679693, 61 42 M61 42 C47.14860691828653 42, 33.297213836573064 42, 0 42 M61 42 C45.04643771992996 42, 29.092875439859924 42, 0 42 M0 42 C0 25.656618914566934, 0 9.313237829133868, 0 0 M0 42 C0 25.817193692363798, 0 9.634387384727596, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(584 738.1126761436462) rotate(0 0 9.5)"><path d="M0 0 C0 3.1666666666666665, 0 15.833333333333334, 0 19 M0 0 C0 3.1666666666666665, 0 15.833333333333334, 0 19" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(584 738.1126761436462) rotate(0 0 9.5)"><path d="M-3.249191361593853 10.07292010253387 C-2.16424995395928 13.053772121441172, -1.079308546324707 16.034624140348473, 0 19 M-3.249191361593853 10.07292010253387 C-2.0975402964937073 13.237055398987385, -0.9458892313935618 16.4011906954409, 0 19" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(584 738.1126761436462) rotate(0 0 9.5)"><path d="M3.249191361593853 10.07292010253387 C2.16424995395928 13.053772121441172, 1.079308546324707 16.034624140348473, 0 19 M3.249191361593853 10.07292010253387 C2.0975402964937073 13.237055398987385, 0.9458892313935618 16.4011906954409, 0 19" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(95 733.1126761436462) rotate(0 113.5 16)"><text x="0" y="25" font-family="Helvetica, Segoe UI Emoji" font-size="28px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Full contract detail</text></g><g transform="translate(76 823.6126761436462) rotate(0 273 23.5)"><path d="M0 0 C192.05903790760786 0, 384.1180758152157 0, 546 0 M0 0 C134.83383903633805 0, 269.6676780726761 0, 546 0 M546 0 C546 13.075937866326422, 546 26.151875732652844, 546 47 M546 0 C546 17.309685763064774, 546 34.61937152612955, 546 47 M546 47 C372.22640238236636 47, 198.45280476473272 47, 0 47 M546 47 C348.70780979264526 47, 151.41561958529053 47, 0 47 M0 47 C0 32.33251672470942, 0 17.665033449418843, 0 0 M0 47 C0 30.551899681147187, 0 14.103799362294374, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(561 826.6126761436462) rotate(0 30.5 21)"><path d="M0 0 C14.458881183993071 0, 28.917762367986143 0, 61 0 M0 0 C15.087347083259374 0, 30.174694166518748 0, 61 0 M61 0 C61 14.473687416873872, 61 28.947374833747745, 61 42 M61 0 C61 16.12216369751841, 61 32.24432739503682, 61 42 M61 42 C45.746581230033186 42, 30.493162460066376 42, 0 42 M61 42 C43.20123909814283 42, 25.402478196285657 42, 0 42 M0 42 C0 28.1621781880036, 0 14.324356376007199, 0 0 M0 42 C0 29.444241777621208, 0 16.888483555242416, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(587 836.6126761436462) rotate(0 0 9.5)"><path d="M0 0 C0 3.1666666666666665, 0 15.833333333333334, 0 19 M0 0 C0 3.1666666666666665, 0 15.833333333333334, 0 19" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(587 836.6126761436462) rotate(0 0 9.5)"><path d="M-3.249191361593853 10.07292010253387 C-2.2236383043102155 12.890603969873316, -1.1980852470265777 15.708287837212765, 0 19 M-3.249191361593853 10.07292010253387 C-2.4751883833471595 12.199475807857286, -1.701185405100466 14.326031513180705, 0 19" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(587 836.6126761436462) rotate(0 0 9.5)"><path d="M3.249191361593853 10.07292010253387 C2.2236383043102155 12.890603969873316, 1.1980852470265777 15.708287837212765, 0 19 M3.249191361593853 10.07292010253387 C2.4751883833471595 12.199475807857286, 1.701185405100466 14.326031513180705, 0 19" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(98 831.6126761436462) rotate(0 184.5 16)"><text x="0" y="25" font-family="Helvetica, Segoe UI Emoji" font-size="28px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Last response from exchange</text></g></svg> \ No newline at end of file
diff --git a/backoffice-order-list.pagination.svg b/backoffice-order-list.pagination.svg
new file mode 100644
index 00000000..1e7dae04
--- /dev/null
+++ b/backoffice-order-list.pagination.svg
@@ -0,0 +1,16 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1107.7777777777778 788.8888888888889" width="1107.7777777777778" height="788.8888888888889">
+ <!-- svg-source:excalidraw -->
+ <!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1dWXPiyNJ9n1/h6HlcdTAwMWQ0tS9cdTAwMTPxPbBcdTAwMWFcdTAwMWKwsVx1MDAwMWN8Y4LA7Ga1JMxy4/73r2R7XHUwMDFhXHUwMDAxKiHaxlTf24pcdTAwMGVFW1x1MDAwYlxi6eTRyazMrH//dnb2zV1O29/+OvvWXjRcdTAwMWLDfstuzL/94W1/adtOfzJWu9Dr385kZjdfj+y57tT5688/12dYzcno7az2sD1qj11HXHUwMDFk9y/199nZv1/Xvu+x2023Me5cdTAwMGXbrye87lp/XHUwMDE1XHUwMDA121x1MDAxYq8m49dvxYRAiDCC31x1MDAwZug7KfVtbrul9nZcdTAwMWFDp73e42365uLbUm6VT149LvuFXHUwMDE5XHUwMDE5gd791c36Szv94bDkLodvP6nR7M1s3yU5rj1cdTAwMTm0q/2W21P74db27+c5XHUwMDEzdVx1MDAwM9Zn2ZNZtzduO87GOZNpo9l3l942sP59b/fgr7P1loV3XHUwMDA059Ci64V93+udL4RFOeJMMoRcdTAwMDBcdTAwMTBcYm1dV3IynNjedf1cdTAwMGVel/WVPTaag666vHHr+zGu3Vx1MDAxODvThq1cdTAwMWXX+rj5P79cdTAwMThcYm5x31wivlx1MDAxZtJr97s9V1x1MDAxZMOZsIRvkeurab8+XHUwMDE19SGEXHUwMDBigfB6j3dcctOL1is+/t6+q72GPX2/e99cdTAwMWPvXHUwMDBm3/V7l55+XHUwMDAz19vp49lw+Lr3P3/8XHUwMDAw0IjQXHUwMDAxTd1YjiHGVEZG2uKihvtP925n8cSWuN3Jg9pLz3ikXHTMLehbxFx1MDAwNtQg4Vx1MDAxNmGQUUHVY5R8+8I+XHUwMDBmakJC/3VcdTAwMDC5izS6XHQ0Idg21IiUXGZS4rvML0Sa2164QSDDUFx1MDAwNzLKgKSEouhcdTAwMTibzjtcdTAwMGWxp7y5wINUoSyzj+dcImM+xlx1MDAxOLLYeuFkXHUwMDEzY4xaXHUwMDEwXHSMqKI9yjDnx1x1MDAwM1x1MDAxOdpFXHUwMDE1ojuEJaBQtCqOxVfrxzVcdTAwMTm7pf7qjW82tmZcdTAwMWGj/nC5ccdf4eVBoNFv/d+y7fjvgtNcdTAwMWX2x+3XS984Pj7sdz1cYn5cdTAwMWK2O5vYdPvqrf19tzuZfvtxXHUwMDE2pUT7vkaKQNRjRTwywp9cdTAwMWI35bhN+sXRtC2fYySVf8rea1x1MDAxML6F1NPhW7Ek9OF7XHUwMDAz3ohcdTAwMDFcdTAwMGKoW1x1MDAwMFx0YExcdTAwMTk7o1x1MDAxZoH371xiicc2XHUwMDBifFVbQEBcdTAwMGa5ryu6i3SCLSWdXGJ/X5Ft3CPMMUNcdTAwMTDiQNy/b1NbL+LLevp6taqXnGw3K1x1MDAxN6iXc1xu3973f8w8/vX3XHUwMDBmUSxcdTAwMDVEh0BFJ4BQeIBiPG81nlx1MDAwN9VkbFx1MDAwNNFLh6eqnXS+OTWfYzm3mFTmXHUwMDA231ZkXHUwMDBihMxSalx1MDAxMSpjhFxmMOR/dX4yx1x1MDAxMr6LPFxmtrEmXHUwMDA0RJJQclKsXHUwMDA1XHUwMDEyMVHWKlx1MDAwMPlnJTZcdTAwMGXaw8uBnIw2j/1Ouk11JW07hJVH/VZLPepcdTAwMGZcdTAwMTAzpTqzIMjTelJGN4urWeo2mWunx/H5+WXz/vrmXHUwMDE5Ti9ccidmSZlFiOBEvq443TKKT2XmTqdzXHUwMDE0WoaEUVxmoETBqtZoXoZcXFx1MDAwN0AoXHUwMDAxXHUwMDAySlx1MDAxOJLoXGJ8XCKZ8rJezdFVupdz4+6qlrXPTSdmz0NXXGLgXHUwMDE0U2+lyPdkxGxcdKC+/59cdTAwMTVcdTAwMGbkaVx1MDAwYiBE6ftcbpNcdTAwMWRcdTAwMGZcdTAwMGJcdTAwMDHGqVx1MDAxNICZT9xs46hcdTAwMTDmhlx1MDAxYdrW3osvpnHGpM6KlFx0SUCRet9Htlwi+nSdT9yO85d3MpXNXHUwMDAw0M+0XHUwMDFlXFyzeVxcgY5Yyk2WXHUwMDE4vK22behcdTAwMGJ4nDBLclx1MDAwMNjbilx1MDAwNVx1MDAwNMK2eVx1MDAxY27bjtpIqUD8J9TXXHUwMDFj6Vx1MDAxMFxiXHUwMDExJ1x1MDAxMEvu81x1MDAxYfYhkGdQkjow2WpnXHUwMDE208lFh19mk1nzeVxcYVBcdTAwMTJcZsDb6mQ0XHUwMDBlQSSBjVx1MDAwMMeESHhS0Vx1MDAxMIWnfdDaw9PjiXs279vtXHUwMDEzyGydYSCtXSgmXHUwMDAynILoVoFcdTAwMDc5lu9fXHUwMDAxXHUwMDFippq36Vx1MDAwYsdtNZy56VZcdTAwMDElQ5ZcdTAwMTRcdTAwMTJjb6VcdTAwMWXntllIXHUwMDBiYky8l6jy+Fxi/lx1MDAxMDOHmoVcZlDWXHUwMDAxoT2AXHUwMDE14JR+4YFmcerYnt3ueJ+qQbguuHd8XHUwMDA1wpFWgUBcboHkimmih/iGc9HsVpo2aC7q949D+6Hdf9BccsmZokCQp+K5klrvq63wXG5Ve1x1MDAxOWeEUK6s/mNcdTAwMTHs41x0XHUwMDEwiIAyVOlcdTAwMTdIP4tcdTAwMDKB2lx1MDAwMFx1MDAxZkTqdVx1MDAwYjhj0ak2UZSlWb1E0vVVsjK7zpTThVTOdKpFXHUwMDFlmfrGhOl2mJlbUGChblx1MDAwNcbQXHUwMDFm//tspkVkXHUwMDE3ertMi1x1MDAxNdNcdTAwMDIoabDYPTXRNobDr6fY1+9cYsI21LIrY1x1MDAxNFNcdTAwMDRldGy351x1MDAwMl6v7p5qs3N2yccvJTs7TZmObVx1MDAwZrhcdTAwMTbyLZsyQulcbktcdTAwMDJcdTAwMDaV90ep4jV6zFx1MDAxMUK0cSFcdTAwMDFcdTAwMDOGO1JcdTAwMWJcbuXVvTpcdTAwMDWHY/310lwiY91xXHUwMDFitpvoj1v9cXd7X3vc0uyZTvr+XFxcdTAwMWNvWf/vbP17Xv/4/v+//1xiPFp7g7bO3nlZXGZcdTAwMWKOm5yMRn1XgbfoXVLgr4vb9mTeazdaXHUwMDAxv29731x1MDAwZr1JMNNcdTAwMTlcdTAwMWKkknOKyFx1MDAwMW9cdTAwMTJcdTAwMTlcdTAwMTfXz43rzk1cdTAwMDJdX5P8RWzhsqb51sawP6tH4Fxya8Pee8afX3Q0Y/OF1ELeJJQg9Vx1MDAwZv2IdX3Bm6TVcNtcdTAwMDe9Sj46XHUwMDE0fziusfK8XHUwMDAwRyB6pL1ZdW9TTjPbXHUwMDFhXHUwMDE17bvpJejH4S01XHUwMDFl1lJcdTAwMTJ/gtDWXHUwMDEwKObkXHUwMDEzo4ShuGZcdTAwMDFcdTAwMTGaXVxce1lxnOHgXHUwMDAwzalh3Vx1MDAxOKlcdTAwMGZ1zVx1MDAwMLZ2XGaJXCLlXHUwMDA3Uciiu54y0Vx1MDAwM4XnRqmbLslCvnS5XHUwMDFhYVYyXHUwMDFk2Ir7NvOntuiaW5hcdTAwMDJKuHLtuKDyeOKIXHUwMDA3JOXt4lx1MDAxYVx1MDAwMeVcdTAwMDYr4crMRLYzXHUwMDFijVx1MDAxYfbSXGJoI6qPqyhcdTAwMDajXHUwMDEwYVx1MDAxYV2MTFx1MDAxZlx1MDAxZW/ZnK3qbvt+yYb5nkxcdTAwMTZ0I/TGgNtLtlx1MDAwYpP+iFnM59bio4FcdTAwMWJcdTAwMDYlN++iW3kgXHUwMDAwXHUwMDAyqUmSOjW4ofxcdTAwMTPgP1x1MDAxNV/AM4j+2rxcdTAwMWSnQznQS25BXHUwMDE48bLdo2uTzqi7eE7U71x1MDAxYemmk55cdTAwMGbB1Sp3XzZcdTAwMWTl3lx1MDAxM9FT+NeBPChsXHUwMDE4XHUwMDEwJceESvU9xMwoeaWU+lx1MDAwYlx1MDAxYVx1MDAwMm2ozbCCXHUwMDA0UqI0XHUwMDFljq5Osm6x3ZA9MVmtUnG3QO6eZ2Nd7qs50EZcYltB5Vx1MDAxZl9M377PXHUwMDBlXHUwMDEz3ZJIKlx1MDAwNDHTmXQmo/bZ6MxR57XOXFyn17e/VoKHXHUwMDBmXHUwMDAyUX0yXHUwMDE3RkSpT0yii5W6251cdTAwMTZWrSf4VK5dXFxcdTAwMTc757d8WDR8XHUwMDEwiFx1MDAxMGxBXCKQQrVcdTAwMTfe3lx1MDAxZeuEXHUwMDE2oMq3XHUwMDA0nCuzXHUwMDA34iNQ141cdTAwMDEhi0sqoVCiXHUwMDFmXHUwMDEzJlx1MDAwM/Q4ZtZ6P1x1MDAxNnw3nVx1MDAxMFPl/lx1MDAxMsKDTeB9m9o6XCKiWC8kYza6uk+UV65oOniNLnWAyICxW7xO41oqJm8kv29hdSff959klEhoXHUwMDBiXHUwMDExIFP4ZIJcdTAwMWSQbnh3Mb6BtFBPgofZ/SSfglx1MDAxMzvxYjpCOVdcYmFcYkAv5uP3XHUwMDA1/1x1MDAxOSOiQFxuolx1MDAxYzQoXHT4UGTv941cdTAwMDPW2SlRWNgr8kHaXG6bL0LYx6j6TyP0XHUwMDA31I+LXCLMvMFcdTAwMTJcdTAwMTFdfvTHmfObVPn56lx1MDAxMWf5vZ2rkUZcdTAwMTJcdTAwMTlcdTAwMGV4XG6U91x1MDAxOFxueGBcdTAwMDLgvcQwhrhcdTAwMTDBivpcdTAwMTfiXHUwMDBmk1wiUot6XG6QXHUwMDAygj/2tFx1MDAwZvVcIiFTg+dlOTZSXHUwMDE46l3HcLVcXEybjnrJQ1FcdTAwMGY+XHUwMDEx9YKJtlxmKDjD1FxuSLna2PpPQFx1MDAxMFx1MDAwMqxcdTAwMDRcdTAwMDfeW8BwOkFcdTAwMTGONm2SXHUwMDFmXHUwMDA1Slx1MDAwZVx1MDAxMuxLa9uHtkIj27lcdTAwMWVcdTAwMTTSt1x1MDAxNKRTt6tOLVGvcePRXHUwMDE2zrHw2Fx1MDAxY4tcdTAwMDOAttNmgENBJWCazD7jQca1gVx1MDAwNO5cdTAwMTVcdTAwMDBcdTAwMWRUJX7bk2410ypcXNDrQerlLj9MLOxnw0HGXHUwMDAwXHJTrlx1MDAxNG0oV/gx70rHaVx1MDAwMePRcMeBklx1MDAxOGIgXHUwMDAw+K9jM1x1MDAwNKhQP45cdTAwMWVAZ/V+M1x1MDAwMVpcdTAwMGbZYu/+qVx1MDAxMbu4yjcuZ0PTkYbAT4I06CVWQ8ROq1x1MDAxYUOhpstpY9rOKsplXHUwMDAxQnqMXHUwMDE2XaJcdTAwMTFnNbwsLfpPXHUwMDBmXHUwMDBm+atC+abq3DDTUVx1MDAwNknoS1N+gURcdTAwMDNBXG5ccrFdhVx1MDAwNlx1MDAxOaZcdTAwMTBsXHUwMDE0Y57SPTEgzc1367zFu2nrU3Z+71fntmmtTlx1MDAxZlxyUFwiwiu3XHUwMDE30SO0zXpcdTAwMTe2XHUwMDEwTFx1MDAwYpSbJWf9dLl4XZSmW1x1MDAxZCCh8S9xMqtcdTAwMTM7NsdcdFNXgplcdTAwMTkhXHUwMDAxXHUwMDAzbU78XHUwMDA0XHUwMDE2p1dTylx1MDAxZKGSskPG/+5uSvdcdTAwMWRyKYbtIYrfLO15I1PWdVx1MDAxMDPG4tC+99znRZx1XHUwMDE2XHUwMDA3XHUwMDAzLS4gXHUwMDEyIbk3rO1/JP/jJlx1MDAwN7dMjv5cdTAwMTSvOVx1MDAxZTLM41xyz1x1MDAxZJLBPUHTm5rdjfWbo1xcK/dYe7xcdTAwMDVoZLrNYVx1MDAxY2Zz/DNHebThv4AqoN3KXGLJmPRiZL9cZu59ia3v29bx5lqb/lx1MDAxNedVXGIgiET0aDuvdET9LmXfPl6P54nGVatwyS+MNzdcdTAwMTQmKlx1MDAwNftcbnNcdTAwMGJcblx1MDAxOOyaXHUwMDFiQFx1MDAxMHKkyW75nzQ35j9cdTAwMWVcdTAwMWFkbuGdu3xcdTAwMDNYO1xy7Vx1MDAxOIVcdTAwMTBcdTAwMWaQMfncilxy7ts9UrZcdTAwMWbvaJ2Nl8/ATlx1MDAxYW5zSjhbgX2H37LK+GbH0Fx1MDAwZplcXGCqjVxmXHUwMDE41sU73ZCY4IApXHUwMDFmbl/Y5PGqX7puXHUwMDBl4zeLYrVQXHUwMDE5XCInzlx1MDAwYv3TdnRBWoBcdTAwMTGEsVx1MDAwMIhG91uKudJsNO88TFx1MDAwYtJcdTAwMTnPXHUwMDFlaFwih5+vjc9bpFx1MDAxMlpIXHUwMDBiMcX57LMgXHUwMDE2Xlx1MDAwNFx1MDAxNylvXHUwMDExMsm9Pqp7XZejQm39SH8ou7G9UepqQmNcdTAwMGLqK6/YqVx1MDAwNvV6JUDEo4+7Oc3m0zM5n7Zqj8sn2V9cdTAwMTXu68WF4UTLtoh2s1x1MDAxNpQguVF5/aGuXHUwMDAyXHUwMDFmYVpcIin2urju61xcMS3MRNx+opVyrp5tNW9rLOugXHUwMDEz90BcZmkyT5kglLLoXHUwMDEwm82GXHUwMDE380JqUMqhclx1MDAxM2fPhyu8gsZTLeNyg2q3QIapRT5cdTAwMGJkn1CYXHRcdTAwMDFUz1x1MDAwNFx1MDAxMbyvUdtRwfYxrm1OpsszTUPa09Et0/dphkpzSOVpwejDgnTpXHUwMDBlM4Vk+ZGV+s2icJ+6Tm1sON1cdTAwMTKvUZy+XHUwMDBliGyUcopcdTAwMGaVKH+EbqF6UpJcdTAwMDOiqVx1MDAwMFqbwHU1Xl9WXHUwMDFmL6tJ96WTKcxTdvb8+cS9XG71s8d4t5ZxXHUwMDEwXHUwMDFkYqmqfZ57tMWdI4eJ3EWlXHUwMDExi2Od62RcdTAwMGXdXHUwMDEyXHUwMDAx9f3ovVe6+DSQhdMt3MVaQEUlXHUwMDEwmEGxN1x1MDAxOfyoUPtcdTAwMTjb2u3O7Fx1MDAxNNpWW5ZcdTAwMTZSXGKBpdfjRFx1MDAxZVx1MDAxMj9cdTAwMTg5opG4XHUwMDE4pIfxu+ZcdTAwMGLr2+1FpWO8XHUwMDExXHUwMDAwhH1cdTAwMDNAr8hneKNF1qnLLMlrjyxT51x1MDAxOTGpylLoy+S9iCchh0Qrulx1MDAwNdCdxdzSIDV/uexhQFx1MDAxZUpcdTAwMTnjy+RcdTAwMTFC1OLrKnl8KmhHrLOEXHUwMDE4QK/9vplcdTAwMTXEp66z1LY60c9cdTAwMTVFmEJcdTAwMDCHXHUwMDA3NJS1nbxTLGKXxpODwVx1MDAxZOvMXmaFmPE4XHUwMDA3iFlcdTAwMDKvl02Yy03tXCKPXHUwMDA282hcZo68ck9JhSZv7tQwN4jCsX6OKKhwTSE7pMnh3d25rKY7rrio83spWlx1MDAwM357Z35cdTAwMTRcdTAwMDQp5VxyfJM6slx1MDAxM2E7KoUjpFx1MDAxY1JcdTAwMDI1c/ScXHUwMDFh3MZyuF6scFx0MeXygPz6RzchizfjPp7XJvVcdTAwMTiZXHUwMDBmk41Z23ige81OfOG+rWbJXHUwMDE0XHUwMDBiS2GcYIaEYJycmsQhXCJcdTAwMTQjZZi/dPg+aEt9Vr/iLFwi+Vx1MDAwMXWX8vY+10Sj1WS2XHUwMDE41EmFoOTVWFdtbFx1MDAwZbS9ZidcdTAwMTR8X+CJkFx1MDAxZJHCKWBcdTAwMDSpK/nF4IfAnOhVuCf4XHUwMDE45IdMXHUwMDBinOxmbpNcdTAwMTX7PO5cdTAwMTRhr3Dz1ODdRNV4nO+hcO4l/SrFXHUwMDAyhfK9MThiXGIxmlx1MDAwZYdcdTAwMThcdTAwMDOEMVx1MDAwZlx1MDAxZVx1MDAxZTw10FxyonCi1+HerDVKnlx1MDAxY1CX1UHpl1x1MDAwYrdSbVQ5v1x1MDAxOY5Ww27v+WeIpIRR+JchO1wihXtcdTAwMTOuXHSvXGLQTGhcdTAwMWLL4fp6aomRQlx0o9FxXr1htdp4kX6oXFxnlqNYk6tnY35fNoCAf1x1MDAxNIhtRlxmXHUwMDE5YFx1MDAxNvW1Qz5eglNEXHUwMDE1TjjhXHUwMDAy+p0jk3BuXHUwMDEyhVx1MDAwYv0guuI1b+ryXHUwMDAzouFs2Foqlfg8YuXVQk7wRbmUaFx1MDAxOY9ttVhY13Tw66BcdTAwMWQ1klx1MDAwMqmgXHUwMDE4XG4zoW0qhdOwmVx1MDAxYVxi9UaNo8Ocyv5QyOxL6qWwai0qcp5HWV2jXHUwMDAyc2BcdTAwMGUgtyRZL5s5qoxcdTAwMDBLMshcdTAwMTS4IFx1MDAxMJJvX9iXU7i6XHUwMDA0yTngv6Lh+6BNtOqEIeWuy1x1MDAwM7p+52uDgfPSqD7UXHUwMDAwzk6eYTHVqpjfXHUwMDBmXHUwMDE5bYmTXHUwMDEzXHUwMDAxO7JcYpeISMZcZlx1MDAxZOcxlcFxSLpcdTAwMWbjnFx1MDAwMCFcdTAwMGXIrr54sTspu/HyMlvMnm9TcD5tkrrpQN/X3p5Ky1x1MDAxYvriXHUwMDE4XGLK2Fx1MDAxMXOxXCK2t4dcdTAwMTJJzJXdmYl0I/vb+6dcdTAwMDbfaVx1MDAwMi5cdTAwMDD15kU9YHZMO5dcXPHzYjfmpibPfHzFXHUwMDFl06ufXHUwMDFk5nJcdTAwMTPmR5xcdTAwMWQ5XCLMXHUwMDA1VVx1MDAxZYIk1Mz8XHUwMDE0I2FOsLZcdTAwMTCYXHUwMDEz+VpcdTAwMDZcdTAwMWM9pFKjbrFcdTAwMTGrNOPVTLswrdjT8/L1w0+OcoqpXHUwMDA1MFDAUkpcdTAwMDH5Z704XHUwMDE5mWNcdTAwMGWZhIZmYZmJcqBccpB7XHUwMDFkfCFcdTAwMDOHdC6DpLtcdTAwMDBcdTAwMGaz2l19ML1cdTAwMWM5z53ryZPxlZH7YM6EhVx1MDAxOVx1MDAxNlx1MDAxNEjJKSVHVOfRYM6R5EzTjvFcdTAwMTfGgzCun7aeUC/rXHUwMDA3yFx1MDAwM1JUqlx1MDAwZvnB/XLV787jzafHbFxuXHUwMDBmqG42759cdTAwMDbiSq9cdTAwMTD1UmNI+Z/eXHUwMDFjvKeGOFx1MDAxNMx7v0JDo+NGolx1MDAxY0t9bS9cdTAwMDBMeLP2Rod5r4tcdTAwMTbz59unZYzXwaJcdTAwMWHL1Fx1MDAxYcXbn1x1MDAxY+ZcZnNcdTAwMGJRxLFcdTAwMTSCXHUwMDExgo6Yr1x1MDAxMlxy5oRThJmhk/OcXHUwMDE05O3hsD91XHUwMDAyiyqJXHUwMDE25lxicIolP2RcdTAwMGWIx+TL6rybmceKN3OeXHUwMDE5y2WhxPLmw5yETWhcZqm0mOefXHUwMDEworAlqb9cdTAwMTfjZ+PcXHUwMDA3p+84J1szZu9UW1wiXHUwMDAwkHrJsKPNt1x1MDAxNlxuLV3fJ0q1SthcdTAwMWKKkMI/XHTiPlxcXfLxY1wiM8zP85VcdTAwMGL7qdJ9OS9cdTAwMGaXXHUwMDFhXFyZUqtLhfLnXHUwMDEwXHUwMDA3QjEjIVx1MDAxMG5cdTAwMGWgY6+OknBMlVx1MDAxZaaYXHUwMDEz/rHeXGJcdTAwMTA9Klx1MDAxMt5FXHUwMDE0JVx1MDAxNkfCm8lJcKlIOqCkXHUwMDEy7/Zdg15ZXHUwMDAy003g975NbY07JPfkjqqdYjc9nVSqqeK4t4hUU2nvm7j+2I2gYspcdTAwMGLhXHUwMDE0XHUwMDEyhpVgVeYjdI3V/lxiPFx1MDAxZFx0y4tEXHT1XHUwMDAwuWJcdTAwMDUsNyayh/tOx0zZdNBjeT17o1uw5vul5Z2MIMGSqOsgXHUwMDFil4/kvvNjXHUwMDEwWlBhUmLEMPNKfjd+XHUwMDAw3t9cdTAwMWFLSYON5o9s71x1MDAxOVHv+Fx1MDAwZX6+urdWyNtcdTAwMTJSre+jXHUwMDFlhySSoOis1rL7WdrN9Fx1MDAxM1VI6DBcdTAwMDdcdTAwMWGPlZ5tOqtJYDGhpFx1MDAxZoKcUbJZXHUwMDFjjpVZ4M8jtcBcdTAwMGVcdTAwMDRcdTAwMThcdTAwMDVOXHUwMDFjg1x1MDAwMtqSS4S96Xb58WjsR7tcdTAwMTC8T39w1YO1vDuOzeRcdTAwMGLJLiflm5rr62ZcdTAwMTjsobyV6GNh+Vx1MDAwNvYp3npcZnwjg8WXu1x1MDAxNdbHwSeod1x1MDAxZv5nSZ1TS8BcdTAwMWZVRt+1llx1MDAwMEpo8d1cdTAwMTF473v045Vee3xcdTAwMWFxbow93sc/XHUwMDBlRcNptt/efD/umFx1MDAxY+JgXHUwMDA0+yuhRFx1MDAxYd48S2jLQVxi5lxcUeJcdTAwMDElfclOOj1tVFZ9++GuctlZzOKdO+PneFx1MDAwMCDEiDngXHUwMDE2+Kw0NM2EoOuXfmjzLE/EXHUwMDAyJVx099AoTt33XHUwMDA2mUtcdTAwMTTH+Sd7kso/XHUwMDAzMqqfuHlWSPNZzpRcdTAwMGbCXHUwMDBlyCBwV7nbq1Jy2aq156yySF/GyyOdXHUwMDEzYoxzi1x1MDAxOEJhKIPoi5JcdTAwMWRJQFx1MDAwYtqgMSeIqFx1MDAxN1Da984+Kth+nFC9L1x1MDAxOG+g8auauej8cOTr+bjbzFx1MDAwNXhth8VcdTAwMDHh+sLNc8l5guK8NqCdUcGlN2ldXHUwMDFjM5Rnt5XhMS1AQn9cdTAwMWHkjlx1MDAwNeDPs1x1MDAwMFxyz+LAXHUwMDE5XHUwMDA2QMBcXIdcdTAwMDBcdTAwMGJMIFx1MDAwNcGB+q+Gv1x1MDAwMS2Y/ffu9e+9vvXG53s3eX3Czv0xqmszQ9q0TuhNXHUwMDFlLogg0UOxrYuGc1x1MDAxN7u/SpJi65JcdTAwMGa6YO5cdTAwMDBd2yVTXHUwMDE0XHUwMDExXHUwMDEyYW5cclx1MDAwN9JcdTAwMTBFpHQ8QYLudSzFgKHV9KbG5yhhL5Lz6f19+cSNm4U23E+w2lx08Vx1MDAwMVx1MDAxM0VmxMNiXCJ6y8fH5c3dtTtcdTAwMTjJ7ko3+YU5glxiI1x1MDAxYyqIqFGFTV4+PGZcdTAwMTHm8Dsm1D6mh6btl/5k5pgjiVxi0mdcXFwipvZ689lFtlx1MDAwMr5aVC/yd0+jXHUwMDAxKjh3XHRcdTAwMDGvcu2uaZJcYlvwdW5rbzJYXGY442zTKJBkoVx1MDAxYelcdTAwMTON4uNcdTAwMWFJSFx0mdCUtH61SfzSSJ+kkd4nXHUwMDAz6F2w7n1sTOPuxUVjVJ1OUdJHniFC6i0wXG5DvV0gNDj+XHUwMDFlXVx1MDAwZWjx7Hv//4qL6uKiXHUwMDEwcLQx64Mvk0afLibV8+JcdTAwMDBEkVx1MDAxY1x1MDAwN1xmTb833y1cdTAwMGWy4HYhpzlWrsPmMj0pZK5cIkbXQShcdTAwMTlcdTAwMTKNXGad71x1MDAxMPmv2PpcdTAwMDFcdTAwMTiSXHUwMDE0wM2WXG4+3aqDXHUwMDEwXHUwMDEyXqWXjFx1MDAxNMKIXHUwMDE4WPe3gvvhgHpUXHUwMDAxXHUwMDEzLIpCYF0vyOzlOO4k2uXzq4dmrjFMLZxcdTAwMDNcYpKKMGxra5+/kiB3prH6yYFccqGSXlx1MDAxNMjAQaOQNEMhOIRcdTAwMTRG0qJcdTAwMDfTo3N34Yxvelx1MDAxN7NcdTAwMTl9uk7klqtYNXNcdTAwMWVcdTAwMWRHXHUwMDE08FBcdTAwMWNxXHUwMDAzcPTfSJKQXHUwMDEwXHUwMDAxXHUwMDE4p2BcdTAwMDc2rztD2mRcbkn4hiP5iWBaxPPXicrVtFSATVK/XHUwMDFkPzxU2dNcdTAwMDFgonRcdTAwMGYpYc4wk1xuUJhK+Vx1MDAwYkyfXHUwMDA1Ji95iGJcdTAwMTlcZiZ9qFxiqmdBIFx1MDAwNuAoYMpcdTAwMGVxt3KeWsxXs1x1MDAxMq7G7XhZXGbj0YRcdTAwMWKTocJccu1cdTAwMTFuMMhcdTAwMDX9pdz24kgwhjFGMEj962PaXHUwMDE4SUG8hNvPk27IaOnWnUx7q+zCtvM2eFxcke78aXyOI1x1MDAwMZtCXHUwMDE5XHUwMDFhs8T7gP3LJfkhYHtccpEwp/Qgl1x1MDAwNEpJoYAoUlx1MDAxNVREYGOjgZ1rTyr9XFyrv2qVL0eNWS1+m315iVx1MDAwNmxcdTAwMTY64lx1MDAwM6ElQt/8QeM1v4BcdTAwMWQlXoNcdTAwMDTymoVcdTAwMDe5JCG97/jWSVx1MDAxZlx1MDAwNjYxXHUwMDA12L+9xzy/NabTkttwvX1vMFf3ut96v7D1b/j20m/PXHUwMDEzweFtL8L9m/eZ//l/XHUwMDAz9/PcIn0=<!-- payload-end -->
+ <defs>
+ <style>
+ @font-face {
+ font-family: "Virgil";
+ src: url("https://excalidraw.com/Virgil.woff2");
+ }
+ @font-face {
+ font-family: "Cascadia";
+ src: url("https://excalidraw.com/Cascadia.woff2");
+ }
+ </style>
+ </defs>
+ <rect x="0" y="0" width="1107.7777777777778" height="788.8888888888889" fill="#ffffff"></rect><g transform="translate(10 10.000000000000028) rotate(0 543.8888888888889 384.44444444444446)"><path d="M0.723124372214079 0.3365711458027363 C391.95835639294245 -0.8412361631087131, 783.2162072796376 0.4376990547486479, 1087.0107315519617 -0.48836636468768124 M-0.002941369637846947 -0.382853788509965 C389.9257119967499 -1.4828408934962418, 779.9215532446074 -1.5276771166216996, 1087.6881302108782 -0.17770181335508825 M1087.3027788618374 -0.6726713649928571 C1089.6171097268991 183.68684671272834, 1089.7888958682947 366.89543781901403, 1088.4060523250864 768.3295620263451 M1087.9849089851396 0.030510562285780907 C1085.9038886939736 300.938926173788, 1085.6426788126678 601.9946009253049, 1087.5766577591912 768.6244716991567 M1088.3804543712902 769.4907343209618 C675.4919865667199 767.3494541761901, 261.73136223749157 767.6671024677779, -0.11244670227169991 768.1741235316628 M1087.6329915871638 768.7146817554617 C766.3348138279592 769.27255416474, 445.282852270537 769.2032954867805, -0.2997167225927115 769.2629726161146 M0.7366928927600385 768.1915153087014 C2.1061463578542075 577.8856401079231, 2.8817731364568075 386.7900195763343, -0.7656992323696614 0.5323542840778828 M-0.18783174715936185 769.2626217593336 C-1.1133020272271499 569.566110808692, -0.60945224666761 369.9983775527527, 0.09518976248800755 -0.2949749413877726" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(75.55555555555566 68.88888888888891) rotate(0 445.55555555555543 29.444444444444443)"><path d="M0.4808515898883343 -0.012904500216245653 C235.55673990129594 -2.3768119670864603, 472.02729297710783 -3.3963211156841777, 891.072552448428 -0.46520636007189753 M-0.3525376673787832 0.25425795875489715 C269.66953281975447 1.7373784031139476, 539.6674948016387 1.926462849544154, 890.9067080210064 -0.34156243242323403 M889.8108880269442 0.9315041918307543 C892.2922427972879 13.996161895390186, 889.7391508540239 26.059051486767, 890.2952279198084 59.39136152983539 M890.2595841960151 -0.05571858678013086 C891.2426785752072 13.576903210952878, 891.0725554451241 27.864019294269383, 890.2726217881877 58.17078206677817 M891.3912460624341 59.68312421449356 C599.4441695051473 56.188639175188214, 308.8016698216398 56.08533333469596, 0.2150200478732586 58.921619778954316 M891.2071682284687 58.86200086966984 C539.6132760199406 55.98506463873717, 188.884459876476 56.42699713814589, -0.1304535385221243 58.56613088742726 M1.2703997176140547 58.35365783692234 C-0.1322276398436063 40.3532280124103, 1.3942282989724641 20.05476542727815, -1.4245854932814837 1.8336538095027208 M0.528827310539782 57.91199595470809 C0.40950243941818676 39.40776109157336, -0.5948587430330614 21.33017627574089, -0.7831148793920875 0.2616568645462394" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(101.11111111111131 86.55555555555557) rotate(0 41 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">paid=yes</text></g><g transform="translate(85.61111111111086 181.44444444444446) rotate(0 54.040590405904254 21.6162361623617)"><path d="M-1.7136677224189043 -0.45462888292968273 L106.69037291309336 0.31192112155258656 L108.82563927671411 42.98703178388814 L0.33965334109961987 42.63890054447393" stroke="none" stroke-width="0" fill="#228be6"></path><path d="M-0.6522676926106215 -1.6137900073081255 C31.22976709532861 -1.020376273135682, 60.71043660311648 0.26999949600265416, 107.54594975984195 -0.13810947723686695 M-0.7122927466407418 0.9168269047513604 C39.69531219082167 -0.48540165116254586, 78.42156546660195 0.05756802270944816, 107.1042878776277 0.40117415878921747 M106.51495105302432 0.5233137290924788 C108.69742517177933 7.471644123767389, 108.78746341173523 18.69044990601554, 109.25570786273578 42.82774763552288 M108.25356484944471 -0.8501192620024085 C107.79743370877348 11.981040995618256, 107.46067274080359 24.155921689335113, 108.02993355686316 43.47622885832379 M107.01467192447284 41.78197174517254 C70.52669313450701 42.842725421522466, 34.59499066595234 43.73169204149088, -1.296453295275569 42.135456077734034 M107.08903871471533 43.54130354055951 C64.82541284146586 42.846460679659906, 22.119387943253017 44.565202066788736, -0.901519582606852 43.980700309367876 M-0.5175459962338209 44.769688121954005 C-1.2641117677481586 33.168721526539635, -0.6632283434660845 18.68332309213601, 1.736215116456151 0.8398864548653364 M-0.21554522309452295 42.64900832900594 C-0.4166158540714602 34.61720748425601, 0.6660357908736845 24.30443225138352, 0.860076948069036 0.7743602404370904" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(116.13591635916328 188.04940549405467) rotate(0 23.5 15)"><text x="23.5" y="21" font-family="Virgil, Segoe UI Emoji" font-size="24.01804018040188px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">paid</text></g><g transform="translate(194.89319393194137 181.44444444444446) rotate(0 54.04059040590414 21.6162361623617)"><path d="M-1.3908078987151384 0.31192112155258656 L108.82563927671411 -0.24544054083526134 L108.42083415290811 42.63890054447393 L-0.3034044224768877 41.597594942877095" stroke="none" stroke-width="0" fill="#fff"></path><path d="M0.7425572294741869 -0.019976051524281502 C42.16437333106418 2.142501365474851, 84.32148186734656 0.7339921706239293, 109.3986051110039 1.3883464615792036 M0.15151925291866064 -0.014142363332211971 C36.47092671264183 -0.46209003411584315, 73.29700130951099 -0.5897431858664077, 107.15899972612509 -0.6031870236620307 M108.95819783485034 -1.5112807471305132 C108.70967615130226 11.788571518951057, 108.9171479392318 21.72321802026212, 107.6157084134827 42.41433273998837 M107.97428469354757 0.017475427128374577 C107.712049606941 12.299524347289644, 108.10445943822647 24.38522412346898, 108.45281423623213 42.349502678008776 M106.96770531213382 42.65662752834896 C73.19168184592837 42.76173507128703, 38.214061165977796 41.351597000703684, 1.9287415761500597 41.51709466425518 M107.67280043656477 42.303378934951525 C69.95899144282444 44.355908746871485, 31.469317847948858 44.314488734159006, -0.28695322666317225 43.713268066735964 M-1.0562518816441298 44.89789348093609 C-0.34349449256730546 27.048075245895497, 1.8480890812509014 13.885175269521898, -1.8409371953457594 0.12064346484839916 M-0.3905372777953744 43.607535864206056 C0.7852998960713733 30.221734043951102, 0.953262476990639 19.880122630495467, -0.8568338612094522 -0.22731444146484137" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(246.53198031980446 188.04940549405467) rotate(0 2.4018040180401385 15.011275112751179)"><text x="2.4018040180401883" y="21.022550225502346" font-family="Virgil, Segoe UI Emoji" font-size="24.018040180401886px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">1</text></g><g transform="translate(302.97437474374647 181.44444444444446) rotate(0 73.48503485034848 21.6162361623617)"><path d="M0.7444584649056196 -0.24544054083526134 L147.30972304179642 -0.5935717802494764 L146.6666652782199 41.5975949428771 L-1.166099103167653 42.4626633189414" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.26398312859237194 1.2703997176140547 C31.69684836542433 -0.12343006881252516, 65.78158313397716 1.4030258700035454, 147.84211659043405 -1.4245854932814837 M-0.6660204092040658 0.528827310539782 C56.5887393855064 0.42195920003589515, 114.20908355369099 -0.582401982415353, 146.52925051081303 -0.7831148793920875 M147.93712496369454 0.724600164219737 C148.3341748225089 13.696224323723424, 146.69417537325583 27.383758441112853, 146.55417495577905 43.57724039999585 M146.52641261446598 0.22879055235534906 C146.8726086110081 9.53822248429407, 147.29548929037708 17.705962254672734, 147.14225313890103 42.69921788105558 M146.36590391009423 43.545594148317385 C112.24160405908675 41.71229632843436, 82.03478658417791 41.09393491495551, 1.0049515385180712 41.24818813053708 M146.70305202233914 44.02212032208036 C97.43863467616254 42.61521110683559, 49.42328559017881 42.347778864203676, 0.49126268830150366 42.9736993266065 M-0.4553684573620558 42.141667000928926 C1.9645370176617354 27.779735111626742, -1.612615294140175 10.7678684536478, -0.419308302924037 -0.4310904461890459 M0.6921143671497703 42.285089011283624 C1.0289158686096493 33.55954997247626, -0.6879949406688388 22.110592697890098, -0.6954039493575692 0.15596056077629328" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(303.3874538745399 188.04940549405467) rotate(0 53.5 15)"><text x="53.5" y="21" font-family="Virgil, Segoe UI Emoji" font-size="24.018040180401872px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">not wired</text></g><g transform="translate(201.4337843378455 190.56068060680616) rotate(0 47.500000000000114 12.5)"><text x="47.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">refounded</text></g><g transform="translate(446.5149651496513 179.4948749487495) rotate(0 73.48503485034848 21.6162361623617)"><path d="M-0.003510626032948494 -1.4614292364567518 L146.31939669682953 -0.6365696769207716 L147.11519505813095 44.57860102874975 L-1.0213279444724321 42.71126469595175" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-1.1061982493847609 -1.2956960517913103 C56.23514476220844 -0.11668335664803664, 112.54554485693153 -0.4908488320165364, 148.61543148367974 -0.7413736302405596 M0.010224117897450924 -0.4716049721464515 C51.72386994275443 1.0073270111286319, 104.20327714303866 1.6247395484649814, 147.15897575843456 0.684313059784472 M148.8328916391668 0.2777918856590986 C148.66951866922506 14.596093725767801, 146.53985132751592 28.450190777668496, 148.37351607888314 44.99259375778775 M146.05523911941174 0.21301078889518976 C146.7947239126189 10.446452472887533, 145.5529384161456 20.64144296211669, 146.65266705381993 43.88930493125509 M147.7202944716749 41.33239220825772 C104.60042396330272 41.95707750366937, 59.067408389622926 42.500960886943446, 1.096820356324315 43.84789245573621 M147.74611211645725 43.57592349776815 C111.36223495282812 43.99987347125825, 74.49674367634496 43.47219590544518, 0.6817121943458915 44.16180559525083 M-0.15022754482924938 43.59865587202649 C-0.3110639283713998 31.966038720246615, 1.104171531433135 18.491653303696236, -1.1194259505718946 0.18993994407355785 M0.7909424742683768 42.81664773354124 C0.1397215412147496 29.763402415163977, 0.6958276615627264 15.314589202804783, -0.6144391158595681 0.4094383427873254" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(507.99999999999955 188.6111111111112) rotate(0 12 12.5)"><text x="12" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">all</text></g><g><g transform="translate(76.66666666666652 323.33333333333337) rotate(0 410.9597084536506 0.6623217280022686)"><path d="M0.11396396644413476 0.35462422482669353 C136.97502254555346 0.4984815966337919, 683.9119472940624 0.3337576162070035, 821.0881788315457 0.19148866049945346 M-1.28534368051216 -0.504802002478391 C135.93530491937292 -0.0810517622716726, 685.8398785322704 1.6525571529380978, 823.2047605878134 1.829445458482951" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(102.22222222222217 291) rotate(0 23 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">date</text></g><g transform="translate(233.33333333333326 295.44444444444446) rotate(0 33.500000000000114 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">amount</text></g><g transform="translate(441.11111111111086 288.77777777777777) rotate(0 39.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">summary</text></g><g transform="translate(56.666666666666515 348.1111111111111) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(260.11111111111086 348.1111111111111) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(462.33333333333394 348.1111111111111) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(681.5926870748299 182.4778911564626) rotate(0 71.39795918367349 18.45918367346937)"><path d="M0.9182322639971972 -0.010384591296315193 L141.5213119029163 1.4713554661720991 L142.5956259607433 36.60360818002749 L-1.7397459726780653 37.64052020404864" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.661520691588521 -0.2653036694973707 C38.566842083969384 -0.32390197642242624, 75.33429596975678 -1.5459937108317585, 144.4595578811227 1.5429694671183825 M-0.580301939509809 0.24507792200893164 C47.84412171993673 1.676795096835502, 94.57317279790134 0.3970695750325999, 142.3629313637598 -0.71565015707165 M141.5929659507333 0.283897640183568 C142.6554910216023 15.934801757162688, 142.1741249236752 30.13014137524044, 144.30224900460826 37.00455858577419 M143.44546973007755 0.4938303669914603 C142.39244256044933 11.839259999422154, 142.82560140515872 24.91715632954572, 143.2478454341276 37.88980791457374 M143.40228610253916 38.895312808644064 C95.27058760522088 38.52380548583549, 46.10510424156959 36.47002963887733, -1.1852971632033587 37.43900235761333 M142.7317128409727 37.653403734047004 C103.95013178364776 38.697404196552554, 63.02621769562214 37.75640281110219, 0.72687962744385 36.12486368902404 M-1.918924005702138 36.537688099037894 C0.49115983280467257 23.00345103169542, 0.3892683747701572 10.627541067014079, 1.635814217850566 -1.611890135332942 M0.9926913091912866 37.12055331953246 C-0.20867706168309924 24.868789376331733, -0.38960246074811694 13.510319767542626, -0.43195134308189154 -0.7232819059863687" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(716.2406462585036 188.937074829932) rotate(0 5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">/</text></g><g transform="translate(746.7406462585036 188.437074829932) rotate(0 5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">/</text></g><g transform="translate(835.7406462585036 181.437074829932) rotate(0 17.75 17.75)"><path d="M1.4713554661720991 -0.20029240660369396 L35.185240833088756 -1.7397459726780653 L36.222152857109904 34.540565552189946 L-0.8602302391082048 35.32612800784409" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M1.0456227082759142 1.2537511866539717 C9.299331746296957 1.392673393371515, 20.494571011979133 0.4081811510352418, 34.617939652875066 -1.935016067698598 M0.2952331146225333 -0.8023240556940436 C7.60543570755981 -0.4884995226515457, 16.464206072408707 0.795755475317128, 35.057356788776815 -0.8304489543661475 M37.216549100354314 -0.4583767969161272 C37.24402789275628 10.021090097771959, 35.63658306996804 17.566808747220787, 35.01720047183335 34.283975867554545 M35.271956636570394 0.118803889490664 C36.45785938412417 13.407834404474126, 36.64675034791697 26.31945498446003, 34.70535926427692 35.39704591128975 M37.252452375367284 36.12861135415733 C23.472373798443 34.51605563786347, 12.568029550742356 35.27395307448227, 0.9877980370074511 37.49904438666999 M35.85175995435566 35.30475670192391 C24.488688187533988 36.56109157405328, 13.862355579342694 36.61914074621629, -0.7019141772761941 35.40074870083481 M0.058422865346074104 35.63013312034309 C1.7234226477565244 29.891904327971858, -1.5443195688305422 21.463457563798872, -0.39134919457137585 1.183028845116496 M-0.1410466292873025 35.03815767262131 C0.3372390829725191 20.89399450928904, -0.7950579262571409 7.6110078367404626, -0.005192295648157597 -0.6373032322153449" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(836.7406462585036 182.437074829932) rotate(0 17.5 4.5)"><path d="M-0.20029240660369396 -0.3147591669112444 L33.260254027321935 0.7221528571099043 L34.040565552189946 8.139769760891795 L-0.17387199215590954 8.025066642090678" stroke="none" stroke-width="0" fill="#000"></path><path d="M1.2537511866539717 -0.17646902613341808 C11.69935809215531 1.3599854931700976, 20.75058442819864 -1.065044321073219, 33.0649839323014 -1.160603879019618 M-0.8023240556940436 -0.9844924071803689 C10.924785723444076 -0.8189817471895366, 23.566813448444012 -0.5459748013410717, 34.16955104563385 -0.601476208306849 M34.793730441387744 0.7621362277306617 C35.678883305313065 2.86653999555856, 35.24281494033523 5.4382480884902185, 34.452789140399545 9.584596226457506 M35.0534617502708 0.3521473217289895 C35.175075234081596 3.5815955857280644, 35.15514619311318 5.931306329509243, 34.95367066008039 9.13643274041824 M35.62861135415733 8.698676528409123 C19.85504827881232 9.82731417636387, 6.653291157446802 10.294477202696726, 1.9990443866699934 8.871588947251439 M34.80475670192391 8.410758568905294 C22.654252272564918 8.329612326109782, 9.639674089848995 8.421201806748286, -0.09925129916518927 8.040537997148931 M0.05855990415439005 9.745133436564355 C0.7256752920057624 5.745955100655555, 0.192633698573336 3.76650418555364, 0.5323629803024233 0.893422178272158 M-0.2078290473204106 9.184056796459481 C-0.1690955808386207 5.792555766971781, 0.23188478294759984 3.233728716289624, -0.2867864544969052 0.3310549798887223" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(844.2406462585036 173.937074829932) rotate(0 3 7)"><path d="M-0.3147591669112444 -1.7397459726780653 L6.722152857109904 -0.9594344478100538 L5.139769760891795 13.82612800784409 L-0.9749333579093218 12.991880359128118" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M-0.05294070784002547 0.49909185413271195 C2.7208617478609085 0.1661316458322108, 4.251323711313307 -0.6181173559091986, 5.651818836294114 0.14704675320535898 M-0.29534772215411065 -0.1298961010761559 C1.6791289287619295 0.3035198416560888, 3.6548549883998938 -0.20099524296820165, 5.819557137507945 0.0425846460275352 M7.185545243136584 1.0544314460828899 C6.18049230420962 4.592195389047266, 5.782198767308146 7.580968128703535, 6.909371907822788 14.691362513788045 M6.547784722689539 0.31634894674643865 C6.648082326464355 4.045251279044897, 5.4118254141137 7.447738263290376, 6.212228707317263 14.691930911596865 M5.909602958522737 13.644410851038993 C4.015875909850001 13.890638422649353, 2.0157102243974805 14.618571656625717, -0.03852331582456825 14.44102183226496 M5.823227570671588 14.218063888233155 C3.3970836407504974 14.223764041997491, 1.0596952230669554 13.958510012365878, -0.2878386008553207 13.942898112814873 M1.159096456877887 15.145069952495396 C-1.1324126953072846 9.953476935625076, -0.2780340367741882 6.1032857818529, 1.389767832867801 0.2830603616312146 M0.286310572270304 13.697634059842676 C-0.4865508060902356 10.51466499203816, 0.01611192114651204 5.94045513672754, 0.5149744131602347 -0.07010234231129286" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(859.2406462585036 173.937074829932) rotate(0 3 7)"><path d="M-1.7397459726780653 0.7221528571099043 L5.040565552189946 -0.8602302391082048 L5.8261280078440905 13.025066642090678 L-1.0081196408718824 15.056815473362803" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M0.49909185413271195 0.4628908401355146 C2.3174309939146043 -0.25932403335347776, 3.6468688046559694 -0.3428870929218829, 6.147046753205359 0.09382397588342428 M-0.1298961010761559 -0.214695047121495 C2.232520267087966 -0.07372341893613338, 3.7051450512371957 -0.12137331806123258, 6.042584646027535 0.0034483951516449673 M7.05443144608289 0.0603338671848177 C6.34401650255546 5.0636247005313635, 5.116696731504053 11.712540648318827, 6.691362513788045 13.559903062693774 M6.316348946746439 0.6800083973444997 C6.301980760879815 3.324490776192397, 5.944564682431519 7.973707289714366, 6.691930911596865 14.39703369224444 M5.644410851038993 14.156190503202378 C3.5460443694144486 14.287299706954508, 1.9482418907806274 13.952436980027706, 0.44102183226495983 14.564865261875093 M6.218063888233155 13.76194890262559 C4.224422667268663 13.75407126095146, 1.9481126650236542 13.676806913278998, -0.05710188718512654 14.034803686756641 M1.1450699524953962 12.871676905266941 C0.3067848220653831 9.485159558057784, 0.819010873157531 6.907975821383296, 0.2830603616312146 -0.39328369963914156 M-0.30236594015732404 13.493702665809542 C0.3860392182320356 9.993830674048512, -0.3814543367177247 6.509904975164679, -0.07010234231129286 -0.11016570841893558" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(852.7406462585036 190.437074829932) rotate(0 0.4136596550233662 14.018710910808295)"><path d="M1.5429694671183825 0.6791472714394331 C-0.7240987134212629 7.672045155833475, -0.8212984656495974 19.70843738986645, 0.8127465862780809 27.090466229245067 M-0.71565015707165 0.8512679943814874 C-0.593649901910685 4.995557233062573, -0.6425991017790511 11.791796259931289, 0.5114946505054832 27.358274550177157" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(843.2406462585036 189.437074829932) rotate(0 0.5629659114699734 13.444375627208501)"><path d="M0.6791472714394331 -0.8820603471249342 C-1.5565182614233346 6.988482060725801, 1.0142419246397911 16.614775889436714, 1.0904662292450666 26.395351888611913 M0.8512679943814874 -0.44264321122318506 C-0.8509099357295782 5.045523302373476, 0.22226321836933494 11.301915421080775, 1.358274550177157 27.770811601541936" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(862.7406462585036 190.937074829932) rotate(0 0.1943756272085011 12.205900981556624)"><path d="M-0.8820603471249342 -1.935016067698598 C-0.3891023084288463 10.256202619546093, 1.6590211204020306 20.127653384837323, -0.10464811138808727 23.531015185639262 M-0.44264321122318506 -0.8304489543661475 C-0.3989150488981976 6.675062941028738, 0.5991077593760566 13.937271811966786, 1.2708116015419364 26.346818030811846" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(871.7406462585036 198.937074829932) rotate(0 -18.399716884363443 -0.20371928019449115)"><path d="M-1.935016067698598 -1.160603879019618 C-12.332892250083388 0.16279632726684212, -25.055629958957436 -1.754598370399326, -35.96898481436074 -0.8659740071743727 M-0.8304489543661475 -0.601476208306849 C-7.624840645864606 -0.13900404131039978, -14.675304381735623 -0.37968709027394654, -33.153181969188154 0.7531653186306357" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(871.2406462585036 207.937074829932) rotate(0 -18.73372510774061 0.1685324264161352)"><path d="M-1.160603879019618 0.4901558440178633 C-11.714128804048524 0.5761207006312907, -25.653988590305673 -1.649372979402542, -36.86597400717437 -0.43130031414330006 M-0.601476208306849 0.141948820091784 C-13.857496561380104 0.9444397260434926, -27.962744390117006 1.3181100061163307, -35.246834681369364 1.043095619417727" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(806.2222222222217 348.5555555555555) rotate(0 45 18)"><path d="M-0.1009294968098402 0.032259492203593254 L91.19794815964997 -1.8443855363875628 L91.66577303595841 36.53021874837577 L-1.8107971530407667 35.01062556914985" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-1.0773364622145891 -0.1083675604313612 C33.215027964673936 -0.46852796869352453, 62.852696880698204 0.5247905294410885, 88.87884524278343 0.7387143988162279 M-0.09163471963256598 0.7004486164078116 C19.527516283094883 -0.35074017504230137, 39.48324660863727 1.0242040648125113, 89.0719413170591 -0.3206842401996255 M89.08242848329246 -0.09468298964202404 C91.56307515699416 13.296556179970503, 88.41234985191375 24.339103409275413, 91.54730579070747 37.99782324023545 M90.25086182449013 -0.6488700369372964 C90.58471122391522 12.817258630879223, 89.37899315364659 24.06642162334174, 90.83289584610611 36.71538738813251 M89.75023290328681 35.49247455783188 C60.05786820221692 34.28110877843574, 28.751213263720274 37.54979882808402, 0.05162563733756542 36.02113992162049 M89.74444422218949 36.06704930868 C61.533974850550294 35.94209777386859, 32.625233727507286 35.78094925554469, -0.1684854021295905 35.04115380253643 M0.4379786532372236 37.66757041402161 C-0.6175115058198571 28.70902658551931, 1.8030102899298073 16.589901168271897, -0.30137148685753345 0.49695790000259876 M-0.5108814230188727 35.24282945599407 C0.725504224896431 24.39693183247, 0.5529797428846359 12.489036795310675, 0.5984677383676171 0.6361987432464957" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(829.7222222222217 354.0555555555555) rotate(0 21.5 12.5)"><text x="21.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">send</text></g><g transform="translate(906.2222222222222 351.3333333333332) rotate(0 45 18)"><path d="M1.6657730359584093 0.5302187483757734 L88.18920284695923 -0.9893744308501482 L91.90684843249619 37.48068502359092 L-1.8532262425869703 34.916044084355235" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-1.598378213122487 0.6852743644267321 C25.391191220842305 0.8773342589847744, 51.50743721425534 0.734975419472903, 88.67920318059623 -0.18326943926513195 M-0.8614607146009803 0.4298454960808158 C32.37597886472941 0.5299046291969717, 66.8591164192185 0.8663337781094015, 90.02248847577721 -0.4587857583537698 M88.40668168477714 0.9316058773547411 C91.82763904888184 12.627393858879806, 91.20596266347916 22.316164704784754, 89.57979950122535 36.50172364898026 M89.1887289294973 -0.8658442357555032 C90.97489676602184 9.179455255158246, 90.60661346442997 16.24027198087424, 90.12877038214356 35.87511645164341 M91.11423906497657 37.43390548415482 C65.33549012709409 35.19548686714843, 41.01288552209735 35.32581403227523, -0.5322556216269732 35.48888844437897 M90.631642610766 36.02046428527683 C62.22807081975043 35.20460532577708, 34.3283146796748 35.9105813649483, -0.2954109301790595 36.21898932661861 M1.71197703294456 34.84335726685822 C-0.1738334295526147 22.6953311547637, 0.782329082749784 7.814335758611559, -1.549357207491994 -1.0217628460377455 M0.44814580772072077 36.44628448691219 C0.37502643406391145 28.562012701667847, -0.2739060527086258 19.867757662944495, 0.5989740798249841 -0.9221927681937814" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(917.7222222222222 356.8333333333332) rotate(0 33.5 12.5)"><text x="33.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">copy id</text></g><g transform="translate(705.1111111111109 345.77777777777766) rotate(0 45 18)"><path d="M-1.8107971530407667 -0.9893744308501482 L91.90684843249619 1.4806850235909224 L88.14677375741303 34.916044084355235 L0.3639959115535021 34.44664659909904" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-1.1211547572165728 0.7387143988162279 C24.096546656452123 0.2879820953123272, 49.90680597722531 -0.4916429032571613, 91.40089723281562 -1.2896747570484877 M-0.9280586829409003 -0.3206842401996255 C18.7451526299119 -0.37111603775992996, 37.010711087845266 -0.8456467048265041, 89.95265850517899 0.7787034949287772 M91.54730579070747 1.9978232402354479 C90.63883210856467 14.724076812714339, 89.29300220448523 27.835830339416862, 88.70225992612541 36.788893999531865 M90.83289584610611 0.7153873881325126 C90.17255495913327 11.376188771612943, 89.83671279676258 24.003221501223745, 89.74623727891594 36.619690551422536 M90.05162563733757 36.02113992162049 C71.70168708730489 36.79672455461696, 51.98080546781421 36.13414591224864, 0.13409861735999584 37.07435858435929 M89.83151459787041 35.04115380253643 C60.90068700350821 35.76554769845679, 32.43555860500783 36.23740718336776, 0.8337852070108056 35.64572761859745 M-0.30137148685753345 36.4969579000026 C0.34663515951484447 21.313230906426906, -1.8575130734220147 6.769520468637346, -1.5143410880118608 1.2413405794650316 M0.5984677383676171 36.636198743246496 C-0.21179723918437954 23.864129304327072, 0.43764158904552464 10.773806348256766, 0.8328865179792047 0.2651093741878867" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(719.6111111111109 351.27777777777766) rotate(0 30.5 12.5)"><text x="30.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">refund</text></g><g transform="translate(261.9444444444439 384.6111111111111) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(464.1666666666674 384.6111111111111) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(265.2777777777769 421.2777777777777) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(467.50000000000045 421.2777777777777) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(259.72222222222126 460.16666666666674) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(461.9444444444448 460.16666666666674) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(259.72222222222126 495.7222222222223) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(461.9444444444448 495.7222222222223) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(258.6111111111104 527.9444444444445) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(460.83333333333303 527.9444444444445) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(256.3888888888887 562.3888888888889) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(458.61111111110995 562.3888888888889) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(56.666666666666515 380.5892034636603) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(56.666666666666515 420.5892034636604) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(56.666666666666515 456.4577480422124) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(56.666666666666515 489.7910813755459) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(56.666666666666515 520.9021924866571) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(56.666666666666515 558.6799702644347) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(82.22222222222217 81.04851484298709) rotate(0 60 21.11111111111113)"><path d="M64.43145868371232 -0.29706418066814066 C75.014573584833 -0.3936394173282576, 87.14845813715881 2.309752053290628, 95.83431958214527 4.720300383043504 C104.52018102713173 7.13084871279638, 112.77722763269999 10.51760375199874, 116.54662735363104 14.166225797849117 C120.31602707456209 17.814847843699493, 121.3539327995914 22.86663155169869, 118.45071790773154 26.612032658145765 C115.54750301587168 30.35743376459284, 107.61310992648208 34.21114438965054, 99.12733800247186 36.638632436531566 C90.64156607846164 39.06612048341259, 78.30554266244579 40.50879170720484, 67.53608636367021 41.17696093943189 C56.76663006489463 41.845130171658944, 44.30813955209601 42.09255763968866, 34.510600209818385 40.647647829893884 C24.71306086754076 39.20273802009911, 14.586186278769208 35.780578052028, 8.75085031000446 32.507502080663244 C2.9155143412397093 29.234426109298493, -0.9076318717544514 24.886411144208672, -0.5014156027701162 21.009192001705376 C-0.09519933378578099 17.13197285920208, 4.598241205126292 12.449179809157025, 11.18814792391047 9.24418722564346 C17.77805464269465 6.039194642129894, 30.03764877556118 3.3509966466177676, 39.03802470993496 1.7792365006239876 C48.03840064430874 0.20747635463020786, 60.53599653542638 0.0000775087274475228, 65.19040353015313 -0.1863736503192186 C69.84481052487989 -0.3728248093658847, 66.87340037386826 0.11117706029500418, 66.96446667829548 0.6605295463439909 M87.77960511007333 2.7725817663224213 C97.74741168766312 3.9369814449519485, 107.9561739116313 6.490873717030778, 113.26754058428604 9.722705308664688 C118.57890725694078 12.954536900298598, 120.9976818054467 17.85027725929021, 119.64780514600176 22.16357131612588 C118.29792848655681 26.476865372961548, 112.06723855210996 32.20998623671117, 105.16828062761634 35.602469649678696 C98.26932270312273 38.994953062646225, 88.45330745640584 41.46417356913298, 78.2540575990401 42.518471793931035 C68.05480774167435 43.57277001872909, 54.639984563193565 43.18979784613211, 43.972781483421926 41.92825899846702 C33.30557840365029 40.666720150801936, 21.425434657609063 37.92008981987231, 14.25083912041027 34.94923870794054 C7.0762435832114745 31.978387596008766, 1.9772752206618531 28.201705793046877, 0.9252082602291551 24.103152326876383 C-0.12685870020354284 20.00459886070589, 3.1311911755670616 13.848318610201183, 7.938437357814081 10.357917910917585 C12.745683540061101 6.867517211633988, 20.157547273497084 5.07272160509908, 29.768685353711273 3.1607481311748025 C39.379823433925466 1.2487746572505252, 55.707496200589134 -0.769522499951373, 65.60526583909922 -1.1139229326280784 C75.5030354776093 -1.4583233653047838, 85.58179224538871 0.6430086647707267, 89.15530318477178 1.0943455351145701 C92.72881412415485 1.5456824054584135, 87.79434647463128 0.9651796686981626, 87.04633147539764 1.5940982894349816" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(823.4715287388553 251.27458606336654) rotate(0 8.039671634795468 15.71084566856743)" fill-rule="evenodd"><path d="M-6.993269019240465 0.5993889849632978 L21.629991938174534 0.621719328686595 L29.475133638274855 2.9562120717018843 L33.193980107199984 4.555076686665416 L35.85438328848946 8.27481952123344 L37.16283120641014 25.231712548062205 L34.95727533830403 26.684605864807963 L28.18892783466874 29.206802694126964 L19.426375749881323 32.600121883675456 L-4.210512843324049 30.22302290610969 L-11.733048692746664 31.724980859085917 L-17.146230799965906 27.019142715260386 L-15.970867571376452 17.551858572289348 L-17.297357020899653 6.779244152829051 L-18.068385234638228 3.5617120545357466 L-7.378811829203691 -1.9375907499343157" stroke="none" stroke-width="0" fill="#12b886" fill-rule="evenodd"></path><path d="M-8.06599798765215 -0.3006452154368162 C-2.008147239747884 -0.03850276780625189, 21.576255913422564 -1.2217025112360718, 28.921693007093854 1.4235043335705995 C36.267130100765144 4.068711178377271, 35.94019656458295 10.90897907105585, 36.00662457437558 15.57059585340321 C36.07305258416821 20.23221263575057, 36.97331571830644 26.8738900590688, 29.320261065849646 29.393205027654766 C21.66720641339285 31.912519996240732, -2.033248380382566 34.71440821972986, -9.911703340365197 30.68648566491902 C-17.790158300347827 26.658563110108176, -18.190233243130873 10.52282277829945, -17.95046869404614 5.225669698789716 C-17.710704144961408 -0.07148338072001881, -9.884290644062332 -0.3701655816286801, -8.4731160458568 -1.0964328121393918 M-9.362833840290037 -1.5040878988802433 C-3.5150606857123385 -1.5974529180427393, 20.74541298356758 -3.4607695414125916, 28.159920509424992 -0.47673064008355137 C35.57442803528241 2.507308261245489, 34.895582913769246 11.203440643002589, 35.12421131485445 16.400145509094 C35.35283971593965 21.59685037518541, 37.177855159400245 28.197251098006966, 29.531690915936217 30.70349855646491 C21.88552667247219 33.20974601492286, -2.5125377962338007 35.31501566474636, -10.752774145929719 31.43763025984168 C-18.993010495625636 27.560244854936997, -20.388254851498434 12.571765267699956, -19.909727182239294 7.43918612703681 C-19.431199512980154 2.306606986373663, -9.961384792236261 1.7182079146802425, -7.881608130374875 0.6421554158627987" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(829.130816620991 249.77458606336654) rotate(0 16.25 16.25)"><path d="M16.781989215732228 0.5853186586487347 C19.951085483192276 0.8981009637509603, 24.982877457379224 3.038176763022061, 27.650444230548633 5.548176906017824 C30.31801100371804 8.058177049013587, 32.322690591407756 12.458413972506925, 32.78738985474867 15.645319516623312 C33.25208911808958 18.8322250607397, 32.63416911930612 22.02260200606143, 30.43863981059409 24.66961017071615 C28.243110501882057 27.316618335370872, 23.283077632333825 30.452320938064148, 19.614214002476466 31.52736850455164 C15.945350372619108 32.60241607103913, 11.351292327333153 32.49626781404105, 8.42545803144994 31.119895569641095 C5.499623735566727 29.743523325241142, 3.243069453888217 26.616616024042948, 2.0592082271771837 23.26913503815193 C0.8753470004661501 19.921654052260912, 0.5170440113818501 14.492444584240411, 1.3222906711837386 11.035009654294996 C2.127537330985627 7.57757472434958, 3.814544288085322 4.156740442802986, 6.890688185988514 2.5245254584794328 C9.966832083891706 0.8923104741558789, 17.365715623304077 1.548773272758128, 19.77915405860289 1.2417197483536722 C22.192592493901707 0.9346662239492163, 21.603076854782465 0.4953097593402763, 21.3713187977814 0.682204312052697 M12.059811670099505 0.7246274863399975 C15.303364073046302 -0.742877641180155, 19.95494872905251 -0.47256321041898186, 23.20461867414793 0.8387467324027078 C26.45428861924335 2.1500566752243975, 30.265996208657267 5.410080415665686, 31.55783134067203 8.592487143270136 C32.84966647268679 11.774893870874585, 32.06507333090667 16.55216349448904, 30.955629466236516 19.93318709802941 C29.846185601566358 23.31421070156978, 27.702327634781696 26.96968904977148, 24.90116815265108 28.878628764512356 C22.100008670520467 30.787568479253235, 17.437711348064923 31.642423796103955, 14.148672573452817 31.386825386474687 C10.859633798840713 31.13122697684542, 7.340694307457641 29.78860800077606, 5.166935504978454 27.34503830673675 C2.9931767024992677 24.901468612697442, 1.4075869486896044 20.01983299757924, 1.106119758577698 16.725407222238847 C0.8046525684657917 13.430981446898453, 1.416309975071379 10.313772995385142, 3.358132364307016 7.57848365469439 C5.299954753542653 4.843194314003638, 11.49534337803334 1.581823840720272, 12.75705409399152 0.31367117809433864 C14.018764809949701 -0.9544814845315948, 10.9166439557308 -0.32763113910465574, 10.928396660056102 -0.030432321061210743" stroke="none" stroke-width="0" fill="#fff"></path><path d="M19.046318761438858 0.5800127644717374 C22.53658152533153 1.1808422153518507, 27.399638694567358 3.89144430015443, 29.718237663907196 6.400782498353378 C32.036836633247034 8.910120696552326, 33.14488096520185 12.401909766692311, 32.957912577477884 15.636041953665423 C32.77094418975392 18.870174140638532, 31.069850449859455 22.91459543923834, 28.596427337563416 25.80557562019204 C26.123004225267376 28.696555801145742, 21.41863975222694 32.18169854822391, 18.117373903701655 32.981923039387624 C14.816108055176368 33.782147530551335, 11.554701440923367 32.39795432358185, 8.788832246411701 30.6069225671743 C6.022963051900035 28.815890810766753, 2.7461545235450124 25.396742848474663, 1.5221587366316616 22.235732500942333 C0.2981629497183109 19.074722153410004, 0.31378512363807154 14.934132158976364, 1.4448575249315976 11.64086048198032 C2.5759299262251236 8.347588804984277, 4.9033168254496395 4.249767137036518, 8.308593144392818 2.476102438966066 C11.713869463335996 0.7024377408956137, 19.206706852917 0.92168400120139, 21.876515438590665 0.9988722935576053 C24.54632402426433 1.0760605859138206, 24.37916686890658 2.7090894775211622, 24.327444658434807 2.939232193103358 M12.918783780710935 -0.5389370271512846 C15.797602127609993 -1.6130575316725533, 18.208229161556456 -0.5735899251262315, 21.388476059808177 0.8066138830427931 C24.568722958059897 2.186817691211818, 30.005531940367277 4.317242977851395, 32.00026517022126 7.742285821862863 C33.99499840007525 11.167328665874331, 34.45618994415456 17.63054503179779, 33.35687543893209 21.3568709471116 C32.25756093370963 25.083196862425407, 28.29170010611127 28.38453677684335, 25.40437813888645 30.10024131374572 C22.51705617166163 31.815945850648088, 19.341271790737476 31.848615897842212, 16.032943635583177 31.651098168525817 C12.724615480428879 31.45358043920942, 8.447569641365538 31.324198314904795, 5.55440920796066 28.915134937847352 C2.6612487745557822 26.50607156078991, -0.9076248707589993 20.814596329601667, -1.3260189648460887 17.19671790618116 C-1.744413058933178 13.578839482760651, 0.7481017081938499 10.014601507024981, 3.0440446434381236 7.207864397324302 C5.339987578682397 4.401127287623623, 10.933735907573684 1.3762921657589866, 12.449638646619555 0.3562952479770818 C13.965541385665425 -0.663701669804823, 11.994713766930596 0.7295971678125588, 12.139461077713346 1.0878828906328728" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(676.8888888888891 248.94444444444446) rotate(0 45 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">ascending</text></g><g transform="translate(838.8888888888891 628.4444444444445) rotate(0 56 18)"><path d="M-0.5233762580901384 0.10464573092758656 L111.35407760553062 0.6800965685397387 L112.94145998172462 37.214777829125524 L-1.4594102818518877 36.80628472752869" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.6756556611508131 1.4255805891007185 C40.549962082877755 1.487979543581605, 86.2608722615987 -0.42834215126931663, 110.79764890857041 1.3104656022042036 M0.22976632323116064 -0.949811308644712 C41.574790806137024 0.04004270065575821, 83.55148242618888 -1.0212042010948064, 112.2693472346291 -0.3396372189745307 M112.41974163241684 1.3483383934944868 C113.7494551954791 10.11489717438817, 110.83973948340864 15.766250190511347, 113.7256897110492 36.768042055889964 M111.55338220205158 -0.6877247681841254 C112.95887968294322 6.824540363065899, 113.0973832642287 14.01545635033399, 111.27019299473614 35.48604890797287 M113.14018660970032 37.94783684425056 C88.88373712338506 35.904347358420495, 67.1756904233247 35.48639678783715, -1.4191588144749403 35.78486648015678 M111.95892919506878 35.47117516491562 C81.47314921375363 35.791139545030894, 52.33650463130324 36.066125782318416, -0.5563624063506722 35.83028304670006 M1.6583477277308702 34.10316529683769 C2.195480251647532 25.5045161858201, -0.23012367453426125 17.842785333469507, -0.9779000859707594 -0.21504989452660084 M-0.1911964574828744 36.75580084417015 C-0.6430237275362014 26.91198588963598, 0.021032603383064286 15.98736134190112, 0.8307882091030478 0.9776416132226586" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(860.8888888888891 633.9444444444445) rotate(0 23 12.5)"><text x="23" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">next</text></g><g><g transform="translate(930.3888888888891 634.9444444444445) rotate(0 6.64451540079267 10.869358232145998)"><path d="M-1.5667299569320563 1.7049631776220762 C5.939751740311624 3.701956547568475, 8.149379178481428 8.568337655720109, 14.793068189810702 9.684994557020813 M-0.297501695370356 0.683123343466037 C4.7276222536841175 3.9185431058350275, 10.154625555149746 7.894954891184057, 12.953026419560176 11.2584607210299 M14.855760758517397 12.301132600768765 C7.316577986903487 13.63851781468357, 4.629279010388684 18.983646497166323, -1.5202816487481086 21.055593120825908 M14.191432105336872 10.455247256891202 C9.533901025406745 13.44816088489615, 3.396363560988256 17.139174027702, -0.7702130640399799 19.903391811562336" stroke="#000000" stroke-width="4" fill="none"></path></g></g><g transform="translate(526.8888888888891 630.4444444444445) rotate(0 56 18)"><path d="M-1.446791561320424 1.9245435018092394 L111.63937583379447 0.31087309308350086 L110.15507623367012 35.684875490143895 L0.6247847359627485 34.98398965783417" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.0748626571148634 -1.6953215915709734 C30.907463708892465 1.46187959946692, 58.540243642404675 1.582518506422639, 110.34890043921769 -0.22689852304756641 M0.5451029678806663 0.665362567640841 C29.852308828197422 -0.42654404889792197, 61.094343446753925 0.32365428555756814, 111.64653347339481 -0.18270575907081366 M110.684097411111 0.06613173894584179 C112.23768522124738 11.6297684378922, 113.81963439565152 26.89546011425555, 113.30488389916718 36.05069669894874 M112.52054951991886 -0.5541239967569709 C111.6850756239146 9.476502822153272, 112.4270204436034 19.21953293848783, 112.78401215281337 35.05062845442444 M112.38853973336518 35.20146927051246 C66.59857345856726 35.42730688162148, 23.623733602836722 36.10027199096978, -0.6283061485737562 35.0339021962136 M112.65501458849758 36.20920136664063 C70.39885391946882 35.55675324637443, 28.181709020398557 36.1298790558055, -0.5417135516181588 36.94514983985573 M1.5431640166789293 34.070249108597636 C0.9908767918124795 27.80250364691019, -1.7118610760197044 19.562374686077238, -1.3346418719738722 -0.49780205078423023 M0.6136287888512015 36.47526663634926 C-0.7209102708101273 26.742027524672448, -0.7389351624250412 20.3875125112012, -0.04930208716541529 0.13895043823868036" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(561.8888888888891 636.9444444444445) rotate(0 34 12.5)"><text x="34" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">pevious</text></g><g><g transform="translate(535.3888888888891 636.9444444444445) rotate(180.49781397584707 6.677438159099438 9.972046739777909)"><path d="M0.9851605985403744 0.3318776869689557 C1.8622716032770135 2.7899318885458637, 4.052958508913637 4.394031308919287, 12.96137741790733 10.362967335851163 M-0.24684225380106595 -0.6124774664899058 C4.492572104727082 2.978959399266917, 7.184708390158729 5.807214102052896, 14.031393880958658 10.98189556967853 M13.702358636513978 9.871438592272046 C10.480658887867286 14.890322419781496, 5.584714944166414 17.330243354891124, -0.6765175627595669 19.603652852325965 M13.401410614147018 11.125345231590591 C11.012330477911341 13.542811825448425, 8.094723552444158 14.435486507396243, 0.7313874816318308 20.55657094604561" stroke="#000000" stroke-width="4" fill="none"></path></g></g><g transform="translate(650.8888888888891 629.9444444444445) rotate(0 18.5 18)"><path d="M-1.9804030638188124 -0.036293597891926765 C11.589471131470056 -1.0186465706210583, 21.200484929420057 -0.35647133248858154, 35.02593487687409 1.9024415891617537 M-0.1852690139785409 0.8794262418523431 C13.286328744422644 0.5043475678469986, 24.39731458723545 0.8056008568312973, 36.190410568378866 0.3085462162271142 M38.24807948060334 -1.9553917963057756 C36.45946912031621 8.61374196484685, 36.94656775455922 19.55576810576022, 37.14486122317612 36.59610393457115 M36.495586588047445 -0.5398083617910743 C37.853469176217914 8.186556212417782, 37.56881888024509 15.99156553912908, 36.6021154364571 35.71423322055489 M35.01927328296006 36.34064176492393 C25.937013844493777 35.41711134853773, 16.70509811025113 34.630270015625285, -1.5496413093060255 37.264358488842845 M36.70627979841083 35.83214908931404 C25.848752652201803 35.678918449664486, 14.88128497712314 36.25591903784312, -0.08344780001789331 35.89124533627182 M-1.3242313247174025 34.02972456626594 C0.6950498143211007 24.101515306532384, -2.099242695234716 12.914728699997067, -1.5411542635411024 -1.0574553925544024 M-0.9476290801540017 36.99667188618332 C0.44213208377361296 26.10996834989637, 0.24059068977832793 15.47799599189311, 0.07424209918826818 -0.2596300831064582" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(669.3888888888891 635.4444444444445) rotate(0 2 12.5)"><text x="2" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">1</text></g><g transform="translate(697.3888888888891 627.9444444444445) rotate(0 18.5 18)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.5003955126134804 5.771927652557485 C1.4796934336281202 5.618674737798239, 2.564767937941225 3.4545234969670116, 5.063195675941652 0.8578278187510783 M-0.5453503321530173 6.574254928951256 C1.2909484630428858 4.344412709211776, 2.8081644358405047 3.0072481308489687, 5.158941446947402 0.20194003729496535 M-0.7891831851471557 11.918648355125963 C5.732369836664892 7.549671884375301, 6.626141925142162 4.081602887169336, 9.910735073638094 -0.8086495180532574 M-0.43381167639981644 12.456747097938836 C3.7809320971782725 8.469218054663962, 6.46998715163412 4.605793486493512, 10.009329224330319 0.02959854631570591 M1.636381640047743 17.938463625405603 C3.531491076071819 15.457404185480883, 8.883059461259089 11.643732395034196, 16.79610098293372 -0.3714874696987698 M-0.08924428006170793 18.24967402210521 C3.6493106407687037 15.114111270477299, 7.416991800145636 10.867940187268506, 16.40246986458399 0.660798670437651 M-1.6379735672660853 23.338291685744284 C4.1730249999472 17.16785626203788, 10.800955678442001 10.46836255635231, 23.10981952426758 -0.10452228466277091 M0.904431185889921 23.75813127932614 C7.515084635868347 15.741460271213079, 14.387889584134617 6.955429290226025, 21.907235627340043 -0.031810873730528044 M0.31654757545789636 29.208510402355543 C9.734382744397488 19.095967875025128, 18.431601251256378 6.974234367058926, 26.630258653920503 -0.8479403691354452 M-0.7717854231084331 30.28633660706525 C8.472339336642447 21.165629341752382, 17.999441918048618 10.99561804566494, 25.713636414755495 0.8799528967601002 M0.6292628332319552 38.08675872026258 C10.197424720009296 25.977134791017832, 15.686816566788739 16.304040148553046, 32.09806426190475 -1.6441809030935879 M-0.29689543384137806 35.50104882339262 C11.507596450852457 22.980038780036313, 21.5618920465067 10.317310917779643, 32.25888183754573 -0.8189871375203843 M6.7119292120303875 34.61488413859753 C14.435279406006877 25.75714702003824, 24.091813784346222 15.015970851648998, 36.10034924727057 0.7937021293770989 M4.4921093803685075 35.69178998798726 C17.585012786262087 23.815438370862474, 27.79909411500725 9.342386933251873, 36.167468827964115 0.722981787389191 M12.074298494941397 36.30179599416575 C17.85542041660469 29.560128557628474, 25.80373481298841 21.67968442324948, 35.383193518106154 4.769539940081989 M10.947052335812552 37.0024486857014 C16.146155403372873 29.692588827905283, 21.539771255506498 22.966363170701502, 37.59493163980197 5.580412318841075 M15.133561706015222 38.135612177881555 C23.398521512431206 28.586343251851616, 26.11370051749836 24.736779603159285, 35.6610884553858 14.216195653153207 M15.44926630224412 35.51217674299623 C20.215050790495265 30.508504854298543, 25.456387188710583 25.7592456024487, 37.06853631223672 13.131693704014268 M21.52684911026412 35.27115913476814 C26.038144212533894 30.451083320255545, 30.808625441489458 24.554551979406995, 36.77643342013127 20.213127168836735 M21.753343702878592 36.39163922794182 C26.92422514022558 30.39868119571735, 32.178452220784905 25.46397224746896, 37.678027176993254 19.045364653701625 M27.069532633370045 37.486857420153854 C30.581608689221333 33.3335621129043, 32.7980361751491 29.934796734519573, 38.062579859440454 23.987939368751974 M26.99525767395485 36.16029148916149 C30.424284812295927 32.30650814140762, 33.61451254041885 27.196018566521243, 36.78845274338616 24.597920311805936 M32.833997382295045 35.72400923740955 C33.68929371029411 33.75386765383093, 35.2038152509789 31.761601077758083, 37.21629556674162 30.978984791001547 M32.090437258618614 35.83327925225625 C33.200994249205955 34.66491517687366, 34.24068614642496 33.62190392709626, 36.91351949060919 30.975013802394514" stroke="#868e96" stroke-width="0.5" fill="none"></path><path d="M-0.5715335588902235 -0.49642118997871876 C14.668633979465813 -0.9108503033500165, 24.851064167357983 0.48785905343480407, 36.11863464303315 -0.3871461469680071 M0.6321792444214225 -0.07569253351539373 C11.472143136989326 1.1799260917212813, 22.15913671553135 0.11883273153565821, 36.668690278194845 -0.6515812566503882 M36.782490672543645 0.6072543542832136 C37.7480865643546 7.992765993624927, 35.64891963463277 16.182078215852382, 37.8345382232219 35.99457314424217 M36.4712723037228 -0.21462699677795172 C36.86639051906764 6.326595966331661, 36.17852290742099 15.541556455381215, 37.34861795511097 36.137311161495745 M36.480739833787084 34.7925167363137 C26.931195322517304 37.127804785398766, 11.992492562346158 35.377790539888665, -0.6567859034985304 36.28765222243965 M37.95702426042408 36.518074930645525 C23.563182829413563 35.39963580706157, 9.96235497109592 35.983674511695284, -0.04174493346363306 36.93031677696854 M1.4829917568713427 37.49509593658149 C1.488118828870356 26.75443335920572, 0.6432052865996957 17.576726638153193, 1.5282682199031115 -0.9647570569068193 M-0.8010983327403665 36.18238028977066 C-0.42384562313556673 27.859350774250924, -0.7534578484296799 21.565832710452376, -0.43297089729458094 0.061816693283617496" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(746.3888888888891 628.9444444444445) rotate(0 18.5 18)"><path d="M0.14848419837653637 -0.5192601662129164 C10.400568033847959 1.7482864010613413, 24.316437803767624 -1.54623308298178, 36.350320963189006 -0.6567859034985304 M-0.3900280287489295 0.9570242604240775 C12.150231542158872 0.33041843459941445, 22.808259400725365 0.16138493702746926, 37.127984882332385 -0.04174493346363306 M38.591959623619914 1.4829917568713427 C38.25070671398193 15.925095122307539, 35.8661519106105 29.229321977123618, 35.288942186161876 37.52826821990311 M36.81448900792748 -0.8010983327403665 C36.860559378936884 8.742404817231, 36.119320755079386 17.476229889504612, 37.72941449377686 35.56702910270542 M36.853166906163096 36.21972739882767 C24.132547045405953 36.01690063309856, 13.280180892534553 34.17866090369411, 1.2676463406533003 34.556509675458074 M36.369737894274294 36.61789451446384 C23.920801216270775 35.74885723656975, 9.910250501707196 36.26382375425659, -0.21036130096763372 35.6496409913525 M-0.4427108485251665 37.90463084168732 C-1.3454834005609155 27.065513955056666, 1.8517069437727331 16.487568409368393, -0.16846159286797047 0.1904506701976061 M-0.9621658911928535 35.29026622977108 C0.502590520977974 23.028725844062862, -0.9275004130601883 10.069506892375646, -0.061062960885465145 0.42981509771198034" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(794.3888888888891 627.8036000993517) rotate(0 18.5 18)"><path d="M1.257516412064433 1.5747267622500658 C16.00022277692333 1.2036110762041061, 28.03226439263672 -1.690225958498195, 35.89539786987007 -0.24942350201308727 M0.5366927990689874 0.6981038590893149 C11.415930603910239 0.6728834416065366, 22.824283131957056 -0.34305194958113133, 37.11791810486466 0.024839921854436398 M36.77972146682441 -1.0650749187916517 C36.63477846819907 9.221964042633772, 36.83065083462745 15.549288114532828, 37.76290741376579 34.30376988835633 M36.69853386376053 -0.07186241541057825 C36.01285488970578 13.744361464865506, 36.92068795926869 26.85176786314696, 36.61633849237114 36.275365247391164 M36.729094414040446 35.11646014638245 C23.971055797394364 36.38611321133561, 12.507601455040273 36.53022097033448, -0.9134234506636858 36.136613013222814 M37.55629110429436 36.727895393036306 C29.012008890416475 35.37956981754862, 21.135818450525402 35.57613785958849, -0.875207512639463 36.858157380484045 M-0.2281660158187151 34.198250414803624 C-0.6077800187841058 24.994106684625148, -1.8942494187131524 14.616014666482805, 1.515025882050395 -0.18564754538238049 M-0.4140528133139014 35.25664852466434 C-0.09531637370586396 28.0754059785977, -0.49175309479236606 19.38523608725518, -0.5438231816515326 -0.8888015011325479" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(708.3888888888891 633.4444444444445) rotate(0 7.5 12.5)"><text x="7.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">2</text></g><g transform="translate(757.8888888888891 634.4444444444445) rotate(0 7 12.5)"><text x="7" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">3</text></g><g transform="translate(806.8888888888891 633.3036000993517) rotate(0 6 12.5)"><text x="6" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">4</text></g></svg> \ No newline at end of file
diff --git a/backoffice-order-list.svg b/backoffice-order-list.svg
new file mode 100644
index 00000000..fe274325
--- /dev/null
+++ b/backoffice-order-list.svg
@@ -0,0 +1,16 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1107.7777777777778 788.8888888888889" width="1107.7777777777778" height="788.8888888888889">
+ <!-- svg-source:excalidraw -->
+ <!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1daVPqyrr+vn+FtfbXbVbPw666XHUwMDFmXHUwMDE0UFx1MDAxY1x1MDAxMFx1MDAxNFx1MDAxNfHWKSpAmFxmU1x1MDAxMmQ4df777aBLXHUwMDAypDFsRdpzV/au1DJcdTAwMDM0yfM+/c797z9cdTAwMGVcdTAwMGV+XHUwMDA004Hz4++DXHUwMDFmzqRmu+26Z49//Fx1MDAxNVx1MDAxZX92PL/d76lTaP6331x1MDAxZnm1+ZWtIFx1MDAxOPh///y5uMOq9bsvdzmu03V6ga+u+1/198HBv+f7yPd4Ti2we03Xmd8wP7X4KlwiVlx1MDAwZl71e/NvxVBcIkRcdTAwMDGib1x1MDAxN7T9tPq2wKmrs1xy2/WdxZnw0I9cdTAwMDDfXHUwMDE0L2aXqavqtJ1cdTAwMWKRLmg9XFxdL7600XbdYjB1X36SXWuNvMiQ/MDrPzmldj1oqfNw5fjbfX5fPYDFXV5/1Gz1XHUwMDFj31+6pz+wa+1gXHUwMDFhXHUwMDFlXHUwMDAz4O3oyzP4+2BxZFx1MDAxMl7BObToYmNvZ8P7hbAoR5xJhlx1MDAxMFx1MDAwMFx1MDAwMqGVcaX6bt9cdTAwMGLH9SeYb4uRVe3aU1Nccq9Xf7sm8OyeP7A99bpcdTAwMTbXjX/9YiC4xSPb4sW0nHazXHUwMDE1qGs4XHUwMDEzlohscjFcdTAwMWFn/lbUh1x1MDAxMC5cdTAwMDTCizPhXHUwMDE4XHUwMDA2Z/U5Pv61+lRbtjd4fXo//PCPyPjDoWdewPXr9vm5//z1T2DGdDCDXHUwMDEwMlx1MDAwMDjmyXE2OSvjduchaEw6bIqdxiUoP7eMx5nA3IKRTSxcdTAwMDFcclx1MDAxMm5cdTAwMTFcdTAwMDZcdTAwMTlcdTAwMTVUvUTJV1x1MDAwN/Z5QFx1MDAxM1x1MDAxMkbHXHUwMDAx5DrO6DLMhGCrQCNSMkhJZJhfhrPAmVx1MDAwNHFcdTAwMTBDUlx1MDAwYjElvFx1MDAwMqv/cWKIXHLGXHKfeFx1MDAwM16b4Kd07lZmq6fixHyIMWSxxcbJMsRcdTAwMTi1YPggqOI8yjDnu8NcdTAwMThaXHUwMDA3VWRcIvnFVlx1MDAwMlxuxaliN2S1eFn9XlBsz8LnhcDS0Vx1MDAxM7vbdqdLz3uOrlx1MDAxMFx1MDAwMHa7/j9Tx48+XHUwMDAz33HbvTmgxNL1R267XHUwMDE5XCLwh+s0lqFcdTAwMTm01YT9djroXHUwMDBmfvxzXG6lWDtVQ1x1MDAwZVx1MDAxOMaEg+RcdTAwMDBcdTAwMWba17dHXHUwMDFlaVx1MDAxN7pcdTAwMDNHXHUwMDBlXHUwMDBmSfqyk33QXHUwMDAwfFx1MDAwNaj7g7fiSFx1MDAxOIH3XHUwMDEyulx1MDAxMVx1MDAwM1x1MDAxNoBcdTAwMWNBXHUwMDAyXHUwMDE4I1x1MDAxNDH6XHUwMDExdP+pXHUwMDE4o+qw2GnaXHUwMDAyXHUwMDAyhsCd7+g60Fx0tlx1MDAxMEaEv+7IKuxcdTAwMTHmmCFcYnEs7F+PqaNnR9NKJj+bVYp+tpmVXHUwMDEz1Lrwcz9ez++FYpU2qIWgkGr6wlx1MDAxMMHEXHUwMDEwPK3bw6dS6rBcdTAwMGLRc4OnS43MZW1gPsdybjGppmv4siMrKGSWmm0gp6Faw1B05vxkjiV8XHUwMDFkelx1MDAxOKyCTVxiiCShZK9gi6ViosRVXHUwMDAw8msnli56h5ljWVx1MDAxOS1f+0a7NTVcdTAwMTLH28DL3Xa9rl71XHUwMDA3qJlinVxcICVcdTAwMTNcdTAwMThcdTAwMDPFz4nl4mqUvkldOJne0fj0vPaQv1x1MDAxZcLBueHULCmzXGJcdTAwMTGcyPkuoszvgJtcdTAwMWKNxk6IXHUwMDE5XHUwMDEyRjFQZm+8Vms0M0OqQyCUmGCi9Fx1MDAwM55cdTAwMTiBXHUwMDFkcnI7rZQu6CzTulxijoJZOeudms7MoX2uXHUwMDEwwCmm4U6x796Y2Vx1MDAxMkB9/69cdTAwMWSPJWpcdTAwMGIgROnrXHUwMDBlkzVcdTAwMGJcdTAwMGJcdTAwMDHGqVx1MDAxNFHiMJW52dJVXHUwMDFiqFx1MDAxYmp4W/ssvpjHozrlKo9cdTAwMTPFXGbKVkkuRLSTvzy+6V2e38t09lx1MDAwNID2Sf0xMJvGXHUwMDE15ohFkZRcdTAwMTi87FZF6Fx1MDAwYmicMEtyNV++7FiMXHUwMDE3bJXG4aroqIOUXG7Ev6GCzYFcdTAwMGWA4aRcdTAwMDZcYlNcdTAwMDKXXHUwMDE4gfxcdTAwMDSlqFx1MDAwZlN152Qy6J81+Hk2lTWfxlx1MDAxNVx1MDAwNqWSNvCy21x1MDAxYotDkEjBRoBjQiTcq86QhKY5WrpqXHUwMDAzTff6wcG47Tl7ULO1zj29XFwwQGXUXHUwMDEx+Z5U4KdcdTAwMGJ22b5cdTAwMDJcdTAwMWVM124yZ35Qt/2x6VJcdTAwMDElQ5ZcdTAwMTRcdTAwMTLjcKde56pYSEuZXHUwMDE5JJxDlcVH8IeYeaNYyFx1MDAxOMU6xrVcdTAwMDewXHUwMDAynFJfeKxY7Ne35zmN8DM1+NY593avfnCkVz8gRFxmQsyS49xcdTAwMWSLWvOu5oHapPJQdb1Hp/2oi8aZon+gUIXngKLX3YpzhaqzjDNC1DzJ6cf817tTPyBcdTAwMDJKTGVUPfou+lx1MDAwN9T697B6I5AoXHUwMDA1PTH+jlx1MDAwYrI4qlx1MDAxNEmmMkvdjfInt5lcXPrCdJ5FIZNGosF01cnMLSiwULyGMYw6/z6bZlx1MDAxMVlH3jrNYkWzXHUwMDAwSlx1MDAxYa/p7pdlbdf9en6df0dcdTAwMWOwoZZaXHUwMDE1KFxiXHUwMDExiCa37JyxgPnZfac8OmXnvPdcXPSyg7TpyFx1MDAwZWFroci2rEEolcKSgEFl+FGqSI3uMjiIllx1MDAwNlx1MDAxMlx1MDAxMytcXNOyoVBcdTAwMDbd3Fx1MDAxZdhcdTAwMWXp86ElRLpcdTAwMWbYXnDc7tXbvaY601x1MDAxYrnu2zmnV9ecXHUwMDE59NvRXGaccFv862Dxa+Z/vP37X3/FXq19PCt3r81cdTAwMTOu7Vx1MDAwN6l+t9tcdTAwMGVcdTAwMTR0XHUwMDBi4ZBWxzn/dUee11x1MDAxZrdcdTAwMWO7XHUwMDFl8/tWz/2jSSTiWF1cdTAwMGJcdTAwMTIxruZ4XGKTazHySOSHdr5xfYzyeXJ5djhcdFjNfFljOJrLI/CSrOFwjolmXHUwMDE17UzUXCKutFxys1xiVfM6USMxMVx1MDAwZV+3XHUwMDAzZ6tp5KMx+O1RTZU6KtR/ySM8tVJwk/Zr2Xq34N1cdTAwMGbOQftcYt5Q40EtJYmmXHUwMDA1rUQ+MSef6Fx1MDAxY9yIalx1MDAxNuOYWUd1mFx0x1x1MDAxOd5NhtJcdTAwMDdVo676yMBcZlhr40ZYmUBcYksoXHUwMDEzw1pcdTAwMWW3QG5oXHUwMDE3m5mizF1cdTAwMTbPZ13MiqbDWvHectLUXG5Vc1x1MDAwYlNAXHRXXHUwMDE2XHUwMDFkXHUwMDE3VO5OLeIxiXjrqEZKWaWMUWZcIq79Ubdre1MjgI02uFxmJVx1MDAwNcpEh3SLfMDH6lxyXHUwMDFis1klcFx1MDAxZabMvWzJVE5cdTAwMTeTN1x1MDAwNtpQXHUwMDAwuUnl58BiXHUwMDExY1x1MDAxNu9cZtowLpl5XHUwMDFk28ryXHUwMDAwXHUwMDEwSE1i1H6hXHLlT4B/Kq6AXHUwMDA3XHUwMDEw/b38MPaGcaiPV4aJvWrGTlxm8Ea3OVx1MDAxOVx1MDAxZVfu7UzNz4xdcDW7eLg1XHUwMDFk4MqU2MDdX4fvODdhjE9cdTAwMWNcdTAwMTMq1fdcdTAwMTBcdTAwMTN94nfF9N/QXHUwMDEwVHNtsYCyllx1MDAxMMU8mlLxXHUwMDFlsLNBwbFlS/Rns/RRkCP3w1FPl+hqXHUwMDBlsJVcdTAwMWFtxdV5fDFvRz57k6YtiaRCXHUwMDEwXHUwMDEz7Ue/33VcdTAwMGW6XHUwMDA3vrqvflx1MDAxMPittve1evfmgFx1MDAwZtVnbVx0ReBcdTAwMWNSllx1MDAxY+mVoDnIzepcdTAwMWTYuS2f5Vx1MDAwYo3TXHUwMDFi7lx1MDAxNlxmXHUwMDBm+Fx1MDAxMIItSFx1MDAwNFwiiIW+7NWoJrRcdTAwMDBV5iTgXFxZc0B8XHUwMDA06Lp4XHUwMDBmsrikXHUwMDEyXG6l6WPCZIxcdTAwMTKOmbU4j1x1MDAwNV/PXHUwMDFixFRZvITweFx1MDAwMXg9po52iShUcqlDXHUwMDBmXT1cdTAwMWPfzlx1MDAwMlHz8Vx1MDAwMl3qXHUwMDAycVx1MDAwMnpBIZ/B5fShvJb8oY7Vk3w9v5eIXHUwMDEw11x1MDAxN1x1MDAxZEhlXHUwMDFjYlxuWXIl4/6sd1xyaa6SXHUwMDAyj6OH/mVcdTAwMWH2veNn01x1MDAxMcq5QlxiU6qGgFx1MDAwNERccsBfXHUwMDAxIVxupCDKKoOSgFx1MDAwZrny/lxcumCRh5KEg8NyXHUwMDFlpK2l+VwihH2Mqn+aoX3oY6CQISw5Jyi53djunZxep2+HV1Wc5Vx1MDAwZt5FmdgpZDjiKVx1MDAxMFx1MDAxNtqIeGBcdTAwMDLiw1x1MDAxYzCGuFx1MDAxMPHq9G/Ib6eLSD3syTz6xkRyolx1MDAxN8cy/TSc3lx1MDAxZXZcdTAwMTWIWvlDXFy6LWRMh73kXHUwMDFiYVx1MDAwZj5cdTAwMTH2glx0R8ZUl2FqxaRXLVx1MDAxZP3lXHUwMDA3hFx1MDAwMCuVXHUwMDAzv1ursD+VYjPc9N45TiBcdTAwMTbqXHUwMDA1JFx1MDAwZlx1MDAxMubsbCP/lMvcUJBJ38xcdTAwMWHl40qZXHUwMDFiXHUwMDBmt80sXHUwMDBid82yOFx1MDAwNmlrXHJcdTAwMDW4XHUwMDEyfVx0mCaNz3iUcW1dXHUwMDE2VPpcdTAwMTKl6tEnT2i6acmgdFLPndH8U/r5/tI9nnhDw1HGXHUwMDAw3aS9UrSkvcKPWVg6VotcdELDNSNKYoiBXHUwMDAw4L+Pz8KsOVx1MDAwMthcdTAwMTZaY6VdO1x1MDAwNvXHbKH10LFcdTAwMGbPri7t85FrOtJcdTAwMTD4JkiDYVx1MDAxYTVU+oy5pKZLY2NazyihSHAptzDGXHUwMDA18WfueXHS7jw+Xl7lbq9L/jUzXHUwMDFkZJBsnDTlXHUwMDE36GggTkVDbF1Fg1xmU6jknuyV0lwit+89tS3y6MItfGiLW9Z+71fns2mFTm9cdTAwMTlxjCReUo/eTf2pNGFcdTAwMWTBjEBcdTAwMTej1KiduS3kXHUwMDBi0nSpXHUwMDAzZKNcdTAwMGJM7E3qxJrMccLUSDAzwylgoMyJbyBxXHUwMDFilCnFqIhjtkVcdTAwMTXk/XXxoUHOheu46Oh66o3tk1tdtzBjJFx1MDAwZb03z32e01kncTBW4mJcXFx1MDAxMZKHUW2Of4vc61x1MDAwNldEjn6PaW5DeykhqaRcYia3lftocF32moftWveiflEtV29cdTAwMDDqmi50XHUwMDE4b1x1MDAxMjr+mZFcdTAwMWWtXHUwMDAzMKbsZ71cdTAwMThCMiZcdTAwMDEkhni+XHKQuMPFc1u53lhx01f6XHUwMDBiXHUwMDFlVvlcbphcXKnkd1xyUblPezfVfG98bF/Vc+f8zHhpQ5uUSsG+Qtri/Fx1MDAwNevSXHUwMDA2XHUwMDEwhFx1MDAxY2nSW/5fSlx1MDAxYoteXHUwMDBmXHKSts1tutCG0C5cdTAwMDOMQbSF0Fxy64dPXHUwMDBmTovcetV7WmG96Vx1MDAxMHgpw4WOUmHFtlx1MDAxOH7JK4PL/UE/JHOx6TYyJrKL11pcdTAwMWYxwVx1MDAwMVNG3Ht+k+pVu5ivuUfXk0Ipd+dcIv+I59p7zZYhQoswXG64lFx1MDAxOG3RXHUwMDA3rnBRXHUwMDFjdceNx0FO+r3RIz2+wMO88ZmLVCBcdTAwMGLpIVx1MDAxNrZv+SSIba58S5S5XGKZ5Ira37dddlxutcUr/UdcdTAwMTmOzlJ1q1x0jSwo1JeAXCKu5vWwZC6xXHUwMDFj+LVaZ0hOXHUwMDA39XJ12pHtWe6hUphcdTAwMThOtGyFaPGKXHUwMDE44KVi61x1MDAwZrVcdTAwMTH4XGLTXHUwMDEySTGFUcMuXHUwMDFl/oPcSFx1MDAxY3lcdTAwMWR6d3tRydZrN2WW9dF+mZbr231DgCWTdIvKtdHIPVx1MDAxYufST8VcdTAwMGJ0W8PZU3eGZ9B4qmVcdTAwMWMsUe0qyKRFPlx1MDAwYmSfUI9cdFx1MDAwMaSUIYLfa8u2U7B9jGtr/cH0QNN+do90y7Rp5FxihK9cdTAwMWXALVxuJug0cE9yqdsqK7ZrXHUwMDA1XHUwMDExdJp+uWc43arpZENcdTAwMWRcdTAwMTBcdTAwMTNLNZziQ5XJXHUwMDFmoVvIXHUwMDAwkVx1MDAxY1x1MDAxME1cdTAwMDXQQlx1MDAwNPKlo8q0VD0vpYLnxklunPayp8P9diaMaOMrXHUwMDE4XHUwMDBiu1x1MDAxOEgmtnDJp0ve6UXVXHUwMDEz9750jy/O7uzDI6wzncyhW8KRvv18OKWLT1x1MDAwM9lmuoXrWIspplx1MDAwNFx1MDAwMjMo3k1cYt8p1D7Gtp7TXHUwMDE47UO31ZZcdTAwMTRcdTAwMTOtXGaE1ZaAsK1WYOj6wj4+e8q4R/e1Z9b2nMldw3ghXHUwMDAwkERcIkDhTcqwXeqJte8ySzJvimXmqlwiXHUwMDA2VVlcIqpcdTAwMGayXHUwMDAyxIgyjbdoNtjMgeboMCg+pcfP5y1cZshj8cT4+niEILP4ojxcdTAwMWXvXHUwMDBi2Fx06ywhXHUwMDA2MOy0b2L98L7rLPWrQul9vuHSY4iBLXy+nn/pXHUwMDE3XG44oEepp6d71lx1MDAxOD2PcofGw1xc/UJL4MW2jHKyrLjInaE8XHUwMDE5faOw3lNSocma+83fv1x1MDAxYfdcdTAwMDC9MoJomHGMk9P3/f2pLGVcdTAwMWGBOKvwXHUwMDA3KepP/ObefP9cdTAwMDdCwFx1MDAwMpGVXHUwMDFi2Z6AnZS+XHUwMDExXCKIXHUwMDEwqFmL5zd/x8J8g5pCXHUwMDA046HdmTwtpVx1MDAxYVx1MDAxY8vCda+Nx+V+5ZCM3ZQ9cozHedjlJOLnW+mKXHUwMDFjXHUwMDA2XFxcdTAwMTTEXHRmSKhcdTAwMDdC9k3gXHUwMDEwXHUwMDExipGSy99cbvg7yNZ7sMM27lDSLVx1MDAxYVTJm4eLXHUwMDFh6s76o8lThdxcdTAwMTGUuurpXG6NzUF22OaEgrdccu5cdNhcdFx0nFx1MDAwMkaQXHUwMDFhyW/+3lx1MDAwMuV6/Vx1MDAxYiFcdDBcdTAwMDBcIrmakmqe3KTuvNMjv1x1MDAwMFu5647Nm8cl40G+mb5cdTAwMTlcZutAiZRQXHUwMDEwgjDYod8wmf5cdTAwMWQuV4dwdD1mc1BuXHUwMDEwfVx1MDAxM73+jVx1MDAxOFxy+/qS5HZlXHUwMDAzZZ7PgruSXeL82u3O3GZr+Fx1MDAxZNwnXHUwMDFi2PvrcJ2QvcNcdTAwMDXVRFj3Z1wisPdN31x1MDAxYuOLSJvNIVx1MDAwNZFcdTAwMDQyllxcXHUwMDAzr5Vy044/Kp6KO6c4rKLJaFxmdKX65iBcdTAwMWTQ5bXbV1wi7VAuN2TbXahcdTAwMWSTpaXZJYzJXHUwMDE3xyxcdTAwMWFcdTAwMGJlbH31dlx1MDAwNFxiVrLJ6G48if+IT5G2tFVcdTAwMTnvSlx1MDAwM4yaze8u0DBrXp7LTKfQ7Pi+na9cdTAwMTdwKms+yMJeZEC79FxiQcurt3+ogPqdbq2JOlx1MDAxMVx1MDAwYlx1MDAwMKiUzMiuf27frlx1MDAxZvScseNcdTAwMWT0vbqCkzlkXG6hvs5cdTAwMDYy9YYpk1skazy26vZpNVvoXHUwMDFj51x1MDAxYc2ryVVryL6BRkyXO8kvXHUwMDAxnSO8tDrC6riMI1P1RplcZlx1MDAxNy41h0wh1SqnjDKkcLZcdTAwMDWbXHUwMDE26nfeXGamXG6NIDOEafhcdTAwMDRzR9dcdTAwMWTjMVx1MDAwNrFcXFxuetBcdTAwMTWQyaXVXG52l4hcZnnM+jYxXjNcdLFcdTAwMDJcdTAwMTdFxtJp363vh061XHUwMDE2XHUwMDE41qpcZlx1MDAxMISJb1wimiT6XHUwMDFlykvXrFxc7k0yj3f5k2n3sMbVizG/TzCAMJqTxJZRziiw6JegPKFrmHDChVKQTTTBTPItXHUwMDEwbUJnqCBQKLZZzZ259SlgZNhlt7OJ7OOz2+Jx3XhkK1x1MDAwMrewTkf4OmAnje1BKiiGwkRg79u3oEV5RM9dS1vm6olihpNrKVS2XSGzz+nn3Kw+uZPjS5TV9cwyXHUwMDA35Uq/tSRZbMvlUkxcdTAwMTBLMshcdTAwMTS2IFx1MDAxMJLvTlx1MDAxNU7I32pcYpJzXHUwMDEwXHUwMDE5iDkwN4i/KdBqJqFdXHUwMDFmtlRMXHUwMDBl7Mvy05P/bJdcdTAwMWXLXHUwMDAwZ/tDWEjX78xfmVx1MDAwM60oJnvCdWLfsEREqqnERGCbyt9IX3ZcdTAwMDIp4YBJjJJrKWfPXiPt2c/Po8loeJOG40GNVEyH+TsrLFGAlVx1MDAxMCjKxEBQxnZYXHUwMDEzkHCFJSiRxIp/oIk4N3KJJVxmtEpcbpSCK/pcdTAwMDJbRD9cXO9cIjXjp4XmYZDuXHUwMDBmee+KVTOz71x1MDAwZXKyXGZytneQh1x1MDAxNlx1MDAxMpdkR9GN/0aQS32fZCG4INvEsss0KNiHd7Wj0omTXHUwMDFi3HmD09v843fHOJdcdTAwMTbAQMFK6VxiXGKB/WNcXNE4ZFx1MDAxMlx1MDAxYVlcdTAwMGJgJsaZ1iVcdTAwMGXB3COOtljBXHUwMDE3kuZcdTAwMDQ8jsr3lafBeddcdTAwMWY28v2O8b053lx1MDAwMTmDyFImt6BASk4p2aFWnlxm5Fx1MDAxY0nONFxywX8jfFx1MDAxZOFCz+KIzFxyd5zcXHUwMDFmXi09Xj49TGft5vio1qlm0/iJXn93hCtVhXBl6CGltzFGd1jRlVRVXHQjvlx1MDAxMFx1MDAxYelcdTAwMTA3XHUwMDEz5FTfWobxsMGEpMlB3mqiyXh405lcdTAwMWXyXG6YlFx1MDAwZU/KduHmu4NcXEBcdTAwMGJRNZlJIVx1MDAxOCFoh2nTyUBOOEXYzDyRvULccd32wI9NXHUwMDEy2VBojijGXCJcXHovOZOnnmenzZPxYeF6zE96cporskvzQa64Wt9BXHRSaSlcdTAwMTZHglx1MDAxMIUsSdFcdTAwMGXToVwicHpDOUFLXHUwMDEyiGJS7Fx1MDAwMFJcdTAwMTNcZtvRYr8vwPrjtUPDXHUwMDBmezAoXHUwMDA2dlx1MDAxMD7GXHUwMDE3mKkva9dfxWHRUPHHc9tcdTAwMTlcdTAwMWbH9zRcdNua/Fx1MDAxMX7mf/5cdTAwMGZcdTAwMTJHgEIifQ==<!-- payload-end -->
+ <defs>
+ <style>
+ @font-face {
+ font-family: "Virgil";
+ src: url("https://excalidraw.com/Virgil.woff2");
+ }
+ @font-face {
+ font-family: "Cascadia";
+ src: url("https://excalidraw.com/Cascadia.woff2");
+ }
+ </style>
+ </defs>
+ <rect x="0" y="0" width="1107.7777777777778" height="788.8888888888889" fill="#ffffff"></rect><g transform="translate(10 10.000000000000028) rotate(0 543.8888888888889 384.44444444444446)"><path d="M0.723124372214079 0.3365711458027363 C391.95835639294245 -0.8412361631087131, 783.2162072796376 0.4376990547486479, 1087.0107315519617 -0.48836636468768124 M-0.002941369637846947 -0.382853788509965 C389.9257119967499 -1.4828408934962418, 779.9215532446074 -1.5276771166216996, 1087.6881302108782 -0.17770181335508825 M1087.3027788618374 -0.6726713649928571 C1089.6171097268991 183.68684671272834, 1089.7888958682947 366.89543781901403, 1088.4060523250864 768.3295620263451 M1087.9849089851396 0.030510562285780907 C1085.9038886939736 300.938926173788, 1085.6426788126678 601.9946009253049, 1087.5766577591912 768.6244716991567 M1088.3804543712902 769.4907343209618 C675.4919865667199 767.3494541761901, 261.73136223749157 767.6671024677779, -0.11244670227169991 768.1741235316628 M1087.6329915871638 768.7146817554617 C766.3348138279592 769.27255416474, 445.282852270537 769.2032954867805, -0.2997167225927115 769.2629726161146 M0.7366928927600385 768.1915153087014 C2.1061463578542075 577.8856401079231, 2.8817731364568075 386.7900195763343, -0.7656992323696614 0.5323542840778828 M-0.18783174715936185 769.2626217593336 C-1.1133020272271499 569.566110808692, -0.60945224666761 369.9983775527527, 0.09518976248800755 -0.2949749413877726" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(75.55555555555566 68.88888888888891) rotate(0 445.55555555555543 29.444444444444443)"><path d="M0.4808515898883343 -0.012904500216245653 C235.55673990129594 -2.3768119670864603, 472.02729297710783 -3.3963211156841777, 891.072552448428 -0.46520636007189753 M-0.3525376673787832 0.25425795875489715 C269.66953281975447 1.7373784031139476, 539.6674948016387 1.926462849544154, 890.9067080210064 -0.34156243242323403 M889.8108880269442 0.9315041918307543 C892.2922427972879 13.996161895390186, 889.7391508540239 26.059051486767, 890.2952279198084 59.39136152983539 M890.2595841960151 -0.05571858678013086 C891.2426785752072 13.576903210952878, 891.0725554451241 27.864019294269383, 890.2726217881877 58.17078206677817 M891.3912460624341 59.68312421449356 C599.4441695051473 56.188639175188214, 308.8016698216398 56.08533333469596, 0.2150200478732586 58.921619778954316 M891.2071682284687 58.86200086966984 C539.6132760199406 55.98506463873717, 188.884459876476 56.42699713814589, -0.1304535385221243 58.56613088742726 M1.2703997176140547 58.35365783692234 C-0.1322276398436063 40.3532280124103, 1.3942282989724641 20.05476542727815, -1.4245854932814837 1.8336538095027208 M0.528827310539782 57.91199595470809 C0.40950243941818676 39.40776109157336, -0.5948587430330614 21.33017627574089, -0.7831148793920875 0.2616568645462394" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(101.11111111111131 86.55555555555557) rotate(0 41 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">paid=yes</text></g><g transform="translate(85.61111111111086 181.44444444444446) rotate(0 54.040590405904254 21.6162361623617)"><path d="M-1.7136677224189043 -0.45462888292968273 L106.69037291309336 0.31192112155258656 L108.82563927671411 42.98703178388814 L0.33965334109961987 42.63890054447393" stroke="none" stroke-width="0" fill="#228be6"></path><path d="M-0.6522676926106215 -1.6137900073081255 C31.22976709532861 -1.020376273135682, 60.71043660311648 0.26999949600265416, 107.54594975984195 -0.13810947723686695 M-0.7122927466407418 0.9168269047513604 C39.69531219082167 -0.48540165116254586, 78.42156546660195 0.05756802270944816, 107.1042878776277 0.40117415878921747 M106.51495105302432 0.5233137290924788 C108.69742517177933 7.471644123767389, 108.78746341173523 18.69044990601554, 109.25570786273578 42.82774763552288 M108.25356484944471 -0.8501192620024085 C107.79743370877348 11.981040995618256, 107.46067274080359 24.155921689335113, 108.02993355686316 43.47622885832379 M107.01467192447284 41.78197174517254 C70.52669313450701 42.842725421522466, 34.59499066595234 43.73169204149088, -1.296453295275569 42.135456077734034 M107.08903871471533 43.54130354055951 C64.82541284146586 42.846460679659906, 22.119387943253017 44.565202066788736, -0.901519582606852 43.980700309367876 M-0.5175459962338209 44.769688121954005 C-1.2641117677481586 33.168721526539635, -0.6632283434660845 18.68332309213601, 1.736215116456151 0.8398864548653364 M-0.21554522309452295 42.64900832900594 C-0.4166158540714602 34.61720748425601, 0.6660357908736845 24.30443225138352, 0.860076948069036 0.7743602404370904" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(116.13591635916328 188.04940549405467) rotate(0 23.5 15)"><text x="23.5" y="21" font-family="Virgil, Segoe UI Emoji" font-size="24.01804018040188px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">paid</text></g><g transform="translate(194.89319393194137 181.44444444444446) rotate(0 54.04059040590414 21.6162361623617)"><path d="M-1.3908078987151384 0.31192112155258656 L108.82563927671411 -0.24544054083526134 L108.42083415290811 42.63890054447393 L-0.3034044224768877 41.597594942877095" stroke="none" stroke-width="0" fill="#fff"></path><path d="M0.7425572294741869 -0.019976051524281502 C42.16437333106418 2.142501365474851, 84.32148186734656 0.7339921706239293, 109.3986051110039 1.3883464615792036 M0.15151925291866064 -0.014142363332211971 C36.47092671264183 -0.46209003411584315, 73.29700130951099 -0.5897431858664077, 107.15899972612509 -0.6031870236620307 M108.95819783485034 -1.5112807471305132 C108.70967615130226 11.788571518951057, 108.9171479392318 21.72321802026212, 107.6157084134827 42.41433273998837 M107.97428469354757 0.017475427128374577 C107.712049606941 12.299524347289644, 108.10445943822647 24.38522412346898, 108.45281423623213 42.349502678008776 M106.96770531213382 42.65662752834896 C73.19168184592837 42.76173507128703, 38.214061165977796 41.351597000703684, 1.9287415761500597 41.51709466425518 M107.67280043656477 42.303378934951525 C69.95899144282444 44.355908746871485, 31.469317847948858 44.314488734159006, -0.28695322666317225 43.713268066735964 M-1.0562518816441298 44.89789348093609 C-0.34349449256730546 27.048075245895497, 1.8480890812509014 13.885175269521898, -1.8409371953457594 0.12064346484839916 M-0.3905372777953744 43.607535864206056 C0.7852998960713733 30.221734043951102, 0.953262476990639 19.880122630495467, -0.8568338612094522 -0.22731444146484137" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(246.53198031980446 188.04940549405467) rotate(0 2.4018040180401385 15.011275112751179)"><text x="2.4018040180401883" y="21.022550225502346" font-family="Virgil, Segoe UI Emoji" font-size="24.018040180401886px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">1</text></g><g transform="translate(302.97437474374647 181.44444444444446) rotate(0 73.48503485034848 21.6162361623617)"><path d="M0.7444584649056196 -0.24544054083526134 L147.30972304179642 -0.5935717802494764 L146.6666652782199 41.5975949428771 L-1.166099103167653 42.4626633189414" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.26398312859237194 1.2703997176140547 C31.69684836542433 -0.12343006881252516, 65.78158313397716 1.4030258700035454, 147.84211659043405 -1.4245854932814837 M-0.6660204092040658 0.528827310539782 C56.5887393855064 0.42195920003589515, 114.20908355369099 -0.582401982415353, 146.52925051081303 -0.7831148793920875 M147.93712496369454 0.724600164219737 C148.3341748225089 13.696224323723424, 146.69417537325583 27.383758441112853, 146.55417495577905 43.57724039999585 M146.52641261446598 0.22879055235534906 C146.8726086110081 9.53822248429407, 147.29548929037708 17.705962254672734, 147.14225313890103 42.69921788105558 M146.36590391009423 43.545594148317385 C112.24160405908675 41.71229632843436, 82.03478658417791 41.09393491495551, 1.0049515385180712 41.24818813053708 M146.70305202233914 44.02212032208036 C97.43863467616254 42.61521110683559, 49.42328559017881 42.347778864203676, 0.49126268830150366 42.9736993266065 M-0.4553684573620558 42.141667000928926 C1.9645370176617354 27.779735111626742, -1.612615294140175 10.7678684536478, -0.419308302924037 -0.4310904461890459 M0.6921143671497703 42.285089011283624 C1.0289158686096493 33.55954997247626, -0.6879949406688388 22.110592697890098, -0.6954039493575692 0.15596056077629328" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(303.3874538745399 188.04940549405467) rotate(0 53.5 15)"><text x="53.5" y="21" font-family="Virgil, Segoe UI Emoji" font-size="24.018040180401872px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">not wired</text></g><g transform="translate(201.4337843378455 190.56068060680616) rotate(0 47.500000000000114 12.5)"><text x="47.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">refounded</text></g><g transform="translate(446.5149651496513 179.4948749487495) rotate(0 73.48503485034848 21.6162361623617)"><path d="M-0.003510626032948494 -1.4614292364567518 L146.31939669682953 -0.6365696769207716 L147.11519505813095 44.57860102874975 L-1.0213279444724321 42.71126469595175" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-1.1061982493847609 -1.2956960517913103 C56.23514476220844 -0.11668335664803664, 112.54554485693153 -0.4908488320165364, 148.61543148367974 -0.7413736302405596 M0.010224117897450924 -0.4716049721464515 C51.72386994275443 1.0073270111286319, 104.20327714303866 1.6247395484649814, 147.15897575843456 0.684313059784472 M148.8328916391668 0.2777918856590986 C148.66951866922506 14.596093725767801, 146.53985132751592 28.450190777668496, 148.37351607888314 44.99259375778775 M146.05523911941174 0.21301078889518976 C146.7947239126189 10.446452472887533, 145.5529384161456 20.64144296211669, 146.65266705381993 43.88930493125509 M147.7202944716749 41.33239220825772 C104.60042396330272 41.95707750366937, 59.067408389622926 42.500960886943446, 1.096820356324315 43.84789245573621 M147.74611211645725 43.57592349776815 C111.36223495282812 43.99987347125825, 74.49674367634496 43.47219590544518, 0.6817121943458915 44.16180559525083 M-0.15022754482924938 43.59865587202649 C-0.3110639283713998 31.966038720246615, 1.104171531433135 18.491653303696236, -1.1194259505718946 0.18993994407355785 M0.7909424742683768 42.81664773354124 C0.1397215412147496 29.763402415163977, 0.6958276615627264 15.314589202804783, -0.6144391158595681 0.4094383427873254" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(507.99999999999955 188.6111111111112) rotate(0 12 12.5)"><text x="12" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">all</text></g><g><g transform="translate(76.66666666666652 323.33333333333337) rotate(0 410.9597084536506 0.6623217280022686)"><path d="M0.11396396644413476 0.35462422482669353 C136.97502254555346 0.4984815966337919, 683.9119472940624 0.3337576162070035, 821.0881788315457 0.19148866049945346 M-1.28534368051216 -0.504802002478391 C135.93530491937292 -0.0810517622716726, 685.8398785322704 1.6525571529380978, 823.2047605878134 1.829445458482951" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(102.22222222222217 291) rotate(0 23 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">date</text></g><g transform="translate(233.33333333333326 295.44444444444446) rotate(0 33.500000000000114 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">amount</text></g><g transform="translate(441.11111111111086 288.77777777777777) rotate(0 39.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">summary</text></g><g transform="translate(47.666666666666515 392.1111111111111) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(251.11111111111086 392.1111111111111) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(453.33333333333394 392.1111111111111) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(681.5926870748299 182.4778911564626) rotate(0 71.39795918367349 18.45918367346937)"><path d="M0.9182322639971972 -0.010384591296315193 L141.5213119029163 1.4713554661720991 L142.5956259607433 36.60360818002749 L-1.7397459726780653 37.64052020404864" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.661520691588521 -0.2653036694973707 C38.566842083969384 -0.32390197642242624, 75.33429596975678 -1.5459937108317585, 144.4595578811227 1.5429694671183825 M-0.580301939509809 0.24507792200893164 C47.84412171993673 1.676795096835502, 94.57317279790134 0.3970695750325999, 142.3629313637598 -0.71565015707165 M141.5929659507333 0.283897640183568 C142.6554910216023 15.934801757162688, 142.1741249236752 30.13014137524044, 144.30224900460826 37.00455858577419 M143.44546973007755 0.4938303669914603 C142.39244256044933 11.839259999422154, 142.82560140515872 24.91715632954572, 143.2478454341276 37.88980791457374 M143.40228610253916 38.895312808644064 C95.27058760522088 38.52380548583549, 46.10510424156959 36.47002963887733, -1.1852971632033587 37.43900235761333 M142.7317128409727 37.653403734047004 C103.95013178364776 38.697404196552554, 63.02621769562214 37.75640281110219, 0.72687962744385 36.12486368902404 M-1.918924005702138 36.537688099037894 C0.49115983280467257 23.00345103169542, 0.3892683747701572 10.627541067014079, 1.635814217850566 -1.611890135332942 M0.9926913091912866 37.12055331953246 C-0.20867706168309924 24.868789376331733, -0.38960246074811694 13.510319767542626, -0.43195134308189154 -0.7232819059863687" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(716.2406462585036 188.937074829932) rotate(0 5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">/</text></g><g transform="translate(746.7406462585036 188.437074829932) rotate(0 5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">/</text></g><g transform="translate(835.7406462585036 181.437074829932) rotate(0 17.75 17.75)"><path d="M1.4713554661720991 -0.20029240660369396 L35.185240833088756 -1.7397459726780653 L36.222152857109904 34.540565552189946 L-0.8602302391082048 35.32612800784409" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M1.0456227082759142 1.2537511866539717 C9.299331746296957 1.392673393371515, 20.494571011979133 0.4081811510352418, 34.617939652875066 -1.935016067698598 M0.2952331146225333 -0.8023240556940436 C7.60543570755981 -0.4884995226515457, 16.464206072408707 0.795755475317128, 35.057356788776815 -0.8304489543661475 M37.216549100354314 -0.4583767969161272 C37.24402789275628 10.021090097771959, 35.63658306996804 17.566808747220787, 35.01720047183335 34.283975867554545 M35.271956636570394 0.118803889490664 C36.45785938412417 13.407834404474126, 36.64675034791697 26.31945498446003, 34.70535926427692 35.39704591128975 M37.252452375367284 36.12861135415733 C23.472373798443 34.51605563786347, 12.568029550742356 35.27395307448227, 0.9877980370074511 37.49904438666999 M35.85175995435566 35.30475670192391 C24.488688187533988 36.56109157405328, 13.862355579342694 36.61914074621629, -0.7019141772761941 35.40074870083481 M0.058422865346074104 35.63013312034309 C1.7234226477565244 29.891904327971858, -1.5443195688305422 21.463457563798872, -0.39134919457137585 1.183028845116496 M-0.1410466292873025 35.03815767262131 C0.3372390829725191 20.89399450928904, -0.7950579262571409 7.6110078367404626, -0.005192295648157597 -0.6373032322153449" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(836.7406462585036 182.437074829932) rotate(0 17.5 4.5)"><path d="M-0.20029240660369396 -0.3147591669112444 L33.260254027321935 0.7221528571099043 L34.040565552189946 8.139769760891795 L-0.17387199215590954 8.025066642090678" stroke="none" stroke-width="0" fill="#000"></path><path d="M1.2537511866539717 -0.17646902613341808 C11.69935809215531 1.3599854931700976, 20.75058442819864 -1.065044321073219, 33.0649839323014 -1.160603879019618 M-0.8023240556940436 -0.9844924071803689 C10.924785723444076 -0.8189817471895366, 23.566813448444012 -0.5459748013410717, 34.16955104563385 -0.601476208306849 M34.793730441387744 0.7621362277306617 C35.678883305313065 2.86653999555856, 35.24281494033523 5.4382480884902185, 34.452789140399545 9.584596226457506 M35.0534617502708 0.3521473217289895 C35.175075234081596 3.5815955857280644, 35.15514619311318 5.931306329509243, 34.95367066008039 9.13643274041824 M35.62861135415733 8.698676528409123 C19.85504827881232 9.82731417636387, 6.653291157446802 10.294477202696726, 1.9990443866699934 8.871588947251439 M34.80475670192391 8.410758568905294 C22.654252272564918 8.329612326109782, 9.639674089848995 8.421201806748286, -0.09925129916518927 8.040537997148931 M0.05855990415439005 9.745133436564355 C0.7256752920057624 5.745955100655555, 0.192633698573336 3.76650418555364, 0.5323629803024233 0.893422178272158 M-0.2078290473204106 9.184056796459481 C-0.1690955808386207 5.792555766971781, 0.23188478294759984 3.233728716289624, -0.2867864544969052 0.3310549798887223" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(844.2406462585036 173.937074829932) rotate(0 3 7)"><path d="M-0.3147591669112444 -1.7397459726780653 L6.722152857109904 -0.9594344478100538 L5.139769760891795 13.82612800784409 L-0.9749333579093218 12.991880359128118" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M-0.05294070784002547 0.49909185413271195 C2.7208617478609085 0.1661316458322108, 4.251323711313307 -0.6181173559091986, 5.651818836294114 0.14704675320535898 M-0.29534772215411065 -0.1298961010761559 C1.6791289287619295 0.3035198416560888, 3.6548549883998938 -0.20099524296820165, 5.819557137507945 0.0425846460275352 M7.185545243136584 1.0544314460828899 C6.18049230420962 4.592195389047266, 5.782198767308146 7.580968128703535, 6.909371907822788 14.691362513788045 M6.547784722689539 0.31634894674643865 C6.648082326464355 4.045251279044897, 5.4118254141137 7.447738263290376, 6.212228707317263 14.691930911596865 M5.909602958522737 13.644410851038993 C4.015875909850001 13.890638422649353, 2.0157102243974805 14.618571656625717, -0.03852331582456825 14.44102183226496 M5.823227570671588 14.218063888233155 C3.3970836407504974 14.223764041997491, 1.0596952230669554 13.958510012365878, -0.2878386008553207 13.942898112814873 M1.159096456877887 15.145069952495396 C-1.1324126953072846 9.953476935625076, -0.2780340367741882 6.1032857818529, 1.389767832867801 0.2830603616312146 M0.286310572270304 13.697634059842676 C-0.4865508060902356 10.51466499203816, 0.01611192114651204 5.94045513672754, 0.5149744131602347 -0.07010234231129286" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(859.2406462585036 173.937074829932) rotate(0 3 7)"><path d="M-1.7397459726780653 0.7221528571099043 L5.040565552189946 -0.8602302391082048 L5.8261280078440905 13.025066642090678 L-1.0081196408718824 15.056815473362803" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M0.49909185413271195 0.4628908401355146 C2.3174309939146043 -0.25932403335347776, 3.6468688046559694 -0.3428870929218829, 6.147046753205359 0.09382397588342428 M-0.1298961010761559 -0.214695047121495 C2.232520267087966 -0.07372341893613338, 3.7051450512371957 -0.12137331806123258, 6.042584646027535 0.0034483951516449673 M7.05443144608289 0.0603338671848177 C6.34401650255546 5.0636247005313635, 5.116696731504053 11.712540648318827, 6.691362513788045 13.559903062693774 M6.316348946746439 0.6800083973444997 C6.301980760879815 3.324490776192397, 5.944564682431519 7.973707289714366, 6.691930911596865 14.39703369224444 M5.644410851038993 14.156190503202378 C3.5460443694144486 14.287299706954508, 1.9482418907806274 13.952436980027706, 0.44102183226495983 14.564865261875093 M6.218063888233155 13.76194890262559 C4.224422667268663 13.75407126095146, 1.9481126650236542 13.676806913278998, -0.05710188718512654 14.034803686756641 M1.1450699524953962 12.871676905266941 C0.3067848220653831 9.485159558057784, 0.819010873157531 6.907975821383296, 0.2830603616312146 -0.39328369963914156 M-0.30236594015732404 13.493702665809542 C0.3860392182320356 9.993830674048512, -0.3814543367177247 6.509904975164679, -0.07010234231129286 -0.11016570841893558" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(852.7406462585036 190.437074829932) rotate(0 0.4136596550233662 14.018710910808295)"><path d="M1.5429694671183825 0.6791472714394331 C-0.7240987134212629 7.672045155833475, -0.8212984656495974 19.70843738986645, 0.8127465862780809 27.090466229245067 M-0.71565015707165 0.8512679943814874 C-0.593649901910685 4.995557233062573, -0.6425991017790511 11.791796259931289, 0.5114946505054832 27.358274550177157" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(843.2406462585036 189.437074829932) rotate(0 0.5629659114699734 13.444375627208501)"><path d="M0.6791472714394331 -0.8820603471249342 C-1.5565182614233346 6.988482060725801, 1.0142419246397911 16.614775889436714, 1.0904662292450666 26.395351888611913 M0.8512679943814874 -0.44264321122318506 C-0.8509099357295782 5.045523302373476, 0.22226321836933494 11.301915421080775, 1.358274550177157 27.770811601541936" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(862.7406462585036 190.937074829932) rotate(0 0.1943756272085011 12.205900981556624)"><path d="M-0.8820603471249342 -1.935016067698598 C-0.3891023084288463 10.256202619546093, 1.6590211204020306 20.127653384837323, -0.10464811138808727 23.531015185639262 M-0.44264321122318506 -0.8304489543661475 C-0.3989150488981976 6.675062941028738, 0.5991077593760566 13.937271811966786, 1.2708116015419364 26.346818030811846" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(871.7406462585036 198.937074829932) rotate(0 -18.399716884363443 -0.20371928019449115)"><path d="M-1.935016067698598 -1.160603879019618 C-12.332892250083388 0.16279632726684212, -25.055629958957436 -1.754598370399326, -35.96898481436074 -0.8659740071743727 M-0.8304489543661475 -0.601476208306849 C-7.624840645864606 -0.13900404131039978, -14.675304381735623 -0.37968709027394654, -33.153181969188154 0.7531653186306357" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(871.2406462585036 207.937074829932) rotate(0 -18.73372510774061 0.1685324264161352)"><path d="M-1.160603879019618 0.4901558440178633 C-11.714128804048524 0.5761207006312907, -25.653988590305673 -1.649372979402542, -36.86597400717437 -0.43130031414330006 M-0.601476208306849 0.141948820091784 C-13.857496561380104 0.9444397260434926, -27.962744390117006 1.3181100061163307, -35.246834681369364 1.043095619417727" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(797.2222222222217 392.5555555555555) rotate(0 45 18)"><path d="M-0.1009294968098402 0.032259492203593254 L91.19794815964997 -1.8443855363875628 L91.66577303595841 36.53021874837577 L-1.8107971530407667 35.01062556914985" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-1.0773364622145891 -0.1083675604313612 C33.215027964673936 -0.46852796869352453, 62.852696880698204 0.5247905294410885, 88.87884524278343 0.7387143988162279 M-0.09163471963256598 0.7004486164078116 C19.527516283094883 -0.35074017504230137, 39.48324660863727 1.0242040648125113, 89.0719413170591 -0.3206842401996255 M89.08242848329246 -0.09468298964202404 C91.56307515699416 13.296556179970503, 88.41234985191375 24.339103409275413, 91.54730579070747 37.99782324023545 M90.25086182449013 -0.6488700369372964 C90.58471122391522 12.817258630879223, 89.37899315364659 24.06642162334174, 90.83289584610611 36.71538738813251 M89.75023290328681 35.49247455783188 C60.05786820221692 34.28110877843574, 28.751213263720274 37.54979882808402, 0.05162563733756542 36.02113992162049 M89.74444422218949 36.06704930868 C61.533974850550294 35.94209777386859, 32.625233727507286 35.78094925554469, -0.1684854021295905 35.04115380253643 M0.4379786532372236 37.66757041402161 C-0.6175115058198571 28.70902658551931, 1.8030102899298073 16.589901168271897, -0.30137148685753345 0.49695790000259876 M-0.5108814230188727 35.24282945599407 C0.725504224896431 24.39693183247, 0.5529797428846359 12.489036795310675, 0.5984677383676171 0.6361987432464957" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(820.7222222222217 398.0555555555555) rotate(0 21.5 12.5)"><text x="21.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">send</text></g><g transform="translate(897.2222222222222 395.3333333333332) rotate(0 45 18)"><path d="M1.6657730359584093 0.5302187483757734 L88.18920284695923 -0.9893744308501482 L91.90684843249619 37.48068502359092 L-1.8532262425869703 34.916044084355235" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-1.598378213122487 0.6852743644267321 C25.391191220842305 0.8773342589847744, 51.50743721425534 0.734975419472903, 88.67920318059623 -0.18326943926513195 M-0.8614607146009803 0.4298454960808158 C32.37597886472941 0.5299046291969717, 66.8591164192185 0.8663337781094015, 90.02248847577721 -0.4587857583537698 M88.40668168477714 0.9316058773547411 C91.82763904888184 12.627393858879806, 91.20596266347916 22.316164704784754, 89.57979950122535 36.50172364898026 M89.1887289294973 -0.8658442357555032 C90.97489676602184 9.179455255158246, 90.60661346442997 16.24027198087424, 90.12877038214356 35.87511645164341 M91.11423906497657 37.43390548415482 C65.33549012709409 35.19548686714843, 41.01288552209735 35.32581403227523, -0.5322556216269732 35.48888844437897 M90.631642610766 36.02046428527683 C62.22807081975043 35.20460532577708, 34.3283146796748 35.9105813649483, -0.2954109301790595 36.21898932661861 M1.71197703294456 34.84335726685822 C-0.1738334295526147 22.6953311547637, 0.782329082749784 7.814335758611559, -1.549357207491994 -1.0217628460377455 M0.44814580772072077 36.44628448691219 C0.37502643406391145 28.562012701667847, -0.2739060527086258 19.867757662944495, 0.5989740798249841 -0.9221927681937814" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(908.7222222222222 400.8333333333332) rotate(0 33.5 12.5)"><text x="33.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">copy id</text></g><g transform="translate(696.1111111111109 389.77777777777766) rotate(0 45 18)"><path d="M-1.8107971530407667 -0.9893744308501482 L91.90684843249619 1.4806850235909224 L88.14677375741303 34.916044084355235 L0.3639959115535021 34.44664659909904" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-1.1211547572165728 0.7387143988162279 C24.096546656452123 0.2879820953123272, 49.90680597722531 -0.4916429032571613, 91.40089723281562 -1.2896747570484877 M-0.9280586829409003 -0.3206842401996255 C18.7451526299119 -0.37111603775992996, 37.010711087845266 -0.8456467048265041, 89.95265850517899 0.7787034949287772 M91.54730579070747 1.9978232402354479 C90.63883210856467 14.724076812714339, 89.29300220448523 27.835830339416862, 88.70225992612541 36.788893999531865 M90.83289584610611 0.7153873881325126 C90.17255495913327 11.376188771612943, 89.83671279676258 24.003221501223745, 89.74623727891594 36.619690551422536 M90.05162563733757 36.02113992162049 C71.70168708730489 36.79672455461696, 51.98080546781421 36.13414591224864, 0.13409861735999584 37.07435858435929 M89.83151459787041 35.04115380253643 C60.90068700350821 35.76554769845679, 32.43555860500783 36.23740718336776, 0.8337852070108056 35.64572761859745 M-0.30137148685753345 36.4969579000026 C0.34663515951484447 21.313230906426906, -1.8575130734220147 6.769520468637346, -1.5143410880118608 1.2413405794650316 M0.5984677383676171 36.636198743246496 C-0.21179723918437954 23.864129304327072, 0.43764158904552464 10.773806348256766, 0.8328865179792047 0.2651093741878867" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(710.6111111111109 395.27777777777766) rotate(0 30.5 12.5)"><text x="30.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">refund</text></g><g transform="translate(252.9444444444439 428.6111111111111) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(455.1666666666674 428.6111111111111) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(256.2777777777769 465.2777777777777) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(458.50000000000045 465.2777777777777) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(250.72222222222126 504.16666666666674) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(452.9444444444448 504.16666666666674) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(250.72222222222126 539.7222222222223) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(452.9444444444448 539.7222222222223) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(295.5555555555552 341.11111111111114) rotate(0 174.44444444444457 18.333333333333343)"><path d="M-1.0681783669495017 1.031096980570677 C73.20061775701555 -1.8143897336436776, 146.74695437224878 -2.3995385208752418, 347.9274695466192 -0.08587071327733616 M0.3432465093375461 -0.056267767302365934 C116.55891899571239 -1.3353759228272475, 232.25537192386162 -2.0601832743772897, 348.4416372442024 -0.16580867443052108 M348.2315145683374 -0.11582735367119312 C349.8111769651893 11.634705016699938, 347.1811224317077 25.67524402464431, 349.43699305773634 38.20300109001499 M348.6698640062373 -0.5501104881986976 C348.81511087770497 11.796267007167147, 350.0405447339538 24.445349313629183, 348.82031718631197 36.64201156391454 M347.8700842004777 35.40464035909159 C249.75853481806246 35.444250285578306, 148.77854696866342 35.61081524708789, -0.023010664960209263 36.59628237240452 M348.83529710562095 36.10390452683374 C252.02474997802634 39.0320235504457, 156.2358218045352 38.77060331091425, 0.17419656216198381 37.01151878779259 M0.15473717637360096 37.984907396758615 C0.4784403220129508 24.53979202763489, -1.8204565271424753 8.479776069521908, 0.3341574687510729 -1.8848259169608355 M0.9898476144298911 37.60086281194043 C0.44161918551350626 22.71695771565041, -0.13619059532259908 9.386062606237832, 0.7715855082497001 -0.7959312787279487" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(380.49999999999955 346.5555555555556) rotate(0 89.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">load newer orders</text></g><g transform="translate(293.33333333333303 644.9999999999999) rotate(0 174.44444444444457 18.33333333333337)"><path d="M0.05049737453580272 -0.19567378226536872 C132.5622384985254 -0.7262705220288249, 262.9932237824309 -0.7843824533088418, 348.2164413933341 0.22574206268852562 M-0.22847343745139412 -0.0837792162530403 C136.64133998953147 -2.4645438008143707, 273.6842303322534 -1.6387778677337579, 348.68942347535705 0.08325539152151527 M350.6698127602126 -1.0238073449581861 C348.35158661963027 9.686396633895741, 348.93738780380767 20.687068828692052, 347.04739453540105 37.892729443187534 M348.93287133601416 -0.923294828273356 C348.81286804041747 9.38353498342137, 349.24169434270743 18.931162791637092, 347.9419759753059 36.23341509109986 M349.68692612981255 36.98772328051447 C226.7017415487152 37.83625899222344, 102.94538058969198 38.00792170490247, -0.22757979627406208 35.397032721408 M348.62980505126205 37.28426856965023 C273.4284667526013 34.787444190263514, 197.57291619914741 34.897459036655135, 0.4371075903411188 36.023328022826554 M1.7790216486901045 35.82067058670026 C-0.8030556003563105 24.35418513262025, 2.0737192471511663 13.89752824604512, -1.888444336131215 -1.0965493898838758 M0.12038922403007746 35.97489982253563 C-0.47837430676445375 25.671606751779727, 0.27221980253234496 13.74845493926357, -0.9774683406576514 0.6257281145080924" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(378.2777777777774 650.4444444444445) rotate(0 86 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">load older orders</text></g><g transform="translate(249.6111111111104 571.9444444444445) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(451.83333333333303 571.9444444444445) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(247.3888888888887 606.3888888888889) rotate(0 34 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:10</text></g><g transform="translate(449.61111111110995 606.3888888888889) rotate(0 96.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">some m sized tshirt</text></g><g transform="translate(47.666666666666515 424.5892034636603) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(47.666666666666515 464.5892034636604) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(47.666666666666515 500.4577480422124) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(47.666666666666515 533.7910813755459) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(47.666666666666515 564.9021924866571) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(47.666666666666515 602.6799702644347) rotate(0 89 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">19/03/2021 12:00</text></g><g transform="translate(82.22222222222217 81.04851484298709) rotate(0 60 21.11111111111113)"><path d="M64.43145868371232 -0.29706418066814066 C75.014573584833 -0.3936394173282576, 87.14845813715881 2.309752053290628, 95.83431958214527 4.720300383043504 C104.52018102713173 7.13084871279638, 112.77722763269999 10.51760375199874, 116.54662735363104 14.166225797849117 C120.31602707456209 17.814847843699493, 121.3539327995914 22.86663155169869, 118.45071790773154 26.612032658145765 C115.54750301587168 30.35743376459284, 107.61310992648208 34.21114438965054, 99.12733800247186 36.638632436531566 C90.64156607846164 39.06612048341259, 78.30554266244579 40.50879170720484, 67.53608636367021 41.17696093943189 C56.76663006489463 41.845130171658944, 44.30813955209601 42.09255763968866, 34.510600209818385 40.647647829893884 C24.71306086754076 39.20273802009911, 14.586186278769208 35.780578052028, 8.75085031000446 32.507502080663244 C2.9155143412397093 29.234426109298493, -0.9076318717544514 24.886411144208672, -0.5014156027701162 21.009192001705376 C-0.09519933378578099 17.13197285920208, 4.598241205126292 12.449179809157025, 11.18814792391047 9.24418722564346 C17.77805464269465 6.039194642129894, 30.03764877556118 3.3509966466177676, 39.03802470993496 1.7792365006239876 C48.03840064430874 0.20747635463020786, 60.53599653542638 0.0000775087274475228, 65.19040353015313 -0.1863736503192186 C69.84481052487989 -0.3728248093658847, 66.87340037386826 0.11117706029500418, 66.96446667829548 0.6605295463439909 M87.77960511007333 2.7725817663224213 C97.74741168766312 3.9369814449519485, 107.9561739116313 6.490873717030778, 113.26754058428604 9.722705308664688 C118.57890725694078 12.954536900298598, 120.9976818054467 17.85027725929021, 119.64780514600176 22.16357131612588 C118.29792848655681 26.476865372961548, 112.06723855210996 32.20998623671117, 105.16828062761634 35.602469649678696 C98.26932270312273 38.994953062646225, 88.45330745640584 41.46417356913298, 78.2540575990401 42.518471793931035 C68.05480774167435 43.57277001872909, 54.639984563193565 43.18979784613211, 43.972781483421926 41.92825899846702 C33.30557840365029 40.666720150801936, 21.425434657609063 37.92008981987231, 14.25083912041027 34.94923870794054 C7.0762435832114745 31.978387596008766, 1.9772752206618531 28.201705793046877, 0.9252082602291551 24.103152326876383 C-0.12685870020354284 20.00459886070589, 3.1311911755670616 13.848318610201183, 7.938437357814081 10.357917910917585 C12.745683540061101 6.867517211633988, 20.157547273497084 5.07272160509908, 29.768685353711273 3.1607481311748025 C39.379823433925466 1.2487746572505252, 55.707496200589134 -0.769522499951373, 65.60526583909922 -1.1139229326280784 C75.5030354776093 -1.4583233653047838, 85.58179224538871 0.6430086647707267, 89.15530318477178 1.0943455351145701 C92.72881412415485 1.5456824054584135, 87.79434647463128 0.9651796686981626, 87.04633147539764 1.5940982894349816" stroke="#000000" stroke-width="1" fill="none"></path></g></svg> \ No newline at end of file
diff --git a/backoffice-product-create.with-stock.svg b/backoffice-product-create.with-stock.svg
new file mode 100644
index 00000000..4027af8e
--- /dev/null
+++ b/backoffice-product-create.with-stock.svg
@@ -0,0 +1,16 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 827 1012" width="827" height="1012">
+ <!-- svg-source:excalidraw -->
+ <!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1daVfqyNr93r/CZX9t0zVcdTAwMGbnXHUwMDFig7PigID4rrtcXFx1MDAxMVx1MDAwMkSZXGZcdTAwMDHEe+9/f59Cj1x1MDAwNJJgRNHYV85Z3YdcZiSp2vuZalfl339sbGz6k76z+Wtj03mo2W237tnjzb/M9pHjXHLcXlx1MDAxN3aR6fdBb+jVpke2fL8/+PX337MzrFqv83SW03Y6TtdcdTAwMWbAcf9cdTAwMDffNzb+Pf1v4DqeU/PtbrPtTE+Y7lxuXFxcbsnFrYVed3pZxlx1MDAxOFeYXHUwMDBi/nKAO8jD5XynXHUwMDBle1x1MDAxYnZ74Mz2mE2bZ6PR3XZ5/+ShUVE7tbtuuYQy+7OrNtx2u+hP2k/PZNdaQy9wT1x1MDAwM9/r3TlcdTAwMTW37rdgP17Y/nLeoFx1MDAwNy0wO8vrXHKbra4zXHUwMDE4zJ3T69s115+YbVxivWx9aoRfXHUwMDFisy1cdTAwMGbmMZV++W7OIJQtXFw712v3PHPtP9H0M7v6jV27a8ItdOsvx/ie3Vx1MDAxZPRtXHUwMDBm+mR23Pj5qVSgtVuO22z5sFFrbOngZ3Z5Z9rUXHUwMDEyXHTNpZydai7Z369P+/xfi1xy1bK9/nODbFx1MDAwZcyXwO2aO91+XHUwMDAyzO/Tp/v++9dcbtBcdN7RXHUwMDAydCjRmHKBaWLo7OQu6rkz3L67L9Gr8/FpsXQ1aKRcdTAwMWQ6mlFLUSmZXHUwMDEyXGIzzvE8kFx1MDAxNLUwQ4SZlkBKyVhYMc1cdTAwMTGXq8NcbmNsKYwwXHUwMDE2gmmJlWBhlDFsSUqUVFppKuBIsVxiM6xcdTAwMTRRTCvFP1x1MDAxZmi+8+BHYozTOIxcdTAwMTGKJIbHTY6xWu78qE5y7Fxm5YqlrcpjOUvYSdoxJiSyXHUwMDE0p0wwiblkhM9jTCNLXHUwMDEyTFxiXCJcYlPGg736wbaLMkswwSlcdTAwMDeQXHUwMDEwLjlcdGOMSEszJDkjwvSMVmRcdTAwMTFjXHUwMDE0mdtEa7Jls67sdf2i+ziFXHSx4JZcdTAwMDWCq2qsXHUwMDE11XzuqFx1MDAxZLvjtidzvTPFXCJcXHA/XHUwMDFmbKyB03a75lx1MDAwN7GOfUhzZqbtNlxycjfbTmNcdTAwMWXSvlx1MDAwYt77Zbff62+ubns1XHUwMDE2cbxcdTAwMDBcdTAwMTZcdTAwMTNmbiwxLzqFUZFcdTAwMWRf31x1MDAxNob32et607Hv5OEk7byQRFnwlIhwpLTmgszxgnHgXHUwMDA114xIolx0XHUwMDA3i7c220tcdLeEoFxuuIU1Jlx1MDAxMkd5eG5JpJlcdTAwMTaCUDDAgi7SXHUwMDAyXGY4Qlx1MDAxY3P8XHUwMDA1Pj7O9GrM4yCGwSBcdKQlk4kxdnTTnIiRfDxpoWF3cMK61ztcdTAwMDWZdoxcdIYsXHUwMDAx7p2Da6V0wfSCSbZcYlx1MDAwNbZRXHUwMDA2f5DmPFx1MDAxNmPvNb2CWUBqbnyzXHUwMDEw4Fx1MDAxMmlcdTAwMThir5teTDTwQXxcdTAwMTPb27GbzpeY3ye4XHUwMDBlXHUwMDA2XuvkruBXe7vj+kn94vSq1Lmd/VxcNHeezFx1MDAxMppDXHTRzJJcdTAwMDJxXHUwMDAxXHUwMDE4oVhcIlx1MDAxYepcXIJ0uDuxWlx1MDAwMs2PgtdXk25V+D1cdTAwMDOac0iLXHUwMDE0XHUwMDBmm6mpQY03Xlx1MDAxNFFcdFCUs9uLN15hpHeH7XZcYq4mQYf83DR8r9Fwa47Jz//ue736sOb/vVx1MDAxOcWNgFx1MDAwM5/jwupwjmRcdTAwMGJbzfZcdTAwMDcyiMXwXHUwMDAyMVx1MDAwZV5cdTAwMGUlab0nLjVcdTAwMGacTm50OyhcXDZ3tmqV6tBcdTAwMWWJm/SgMNr0c4UtXHUwMDA2Zp1jXHUwMDA0XHUwMDFlm6lZezyFXHUwMDE30lwiXHUwMDEycjutXHUwMDExXHUwMDAyn742y49cdLPAeMBccmiCzc1E2IrXTT/kXHUwMDA2TFx1MDAwMOa/geHPO4Oa5/Z9g8OvjL7jmFx1MDAwMZ1cdTAwMTBLXHJC4Xmxpskjb98r7N7W++TkpPZ4l+d3J5PsXHUwMDAxTTs1hOBcdTAwMTZmUigqNIHOnWNcdTAwMDaXypKQnYCzg4hcdCG1NmowbDBG4VJIXCLwrHhcdTAwMTVmYFxm5EZcdTAwMTDO4q/jRlJqlLqun1JOkFhvq8BUQm4kkrtcdTAwMGJHqFa3X7/JVrM39daDwIdt/yz1nOCQXGYgIVx1MDAxOKFEQ4Ch5khcdTAwMDHBn1x1MDAwNVx1MDAxOVx1MDAwMqGCXG5cdTAwMDGAXVx1MDAxZikg7YXrUy6FKVx1MDAxYVx1MDAwYrqSu8BAYCQ4YvTrSJHYYfQ9XGK3UkpcdTAwMGJcdTAwMTFbvFRUgvFkKHnxcpRvXHUwMDFm2erg/lx1MDAxMe27/pk8yon9kZt6WjBcdTAwMDLegCOFXGI8seLzvkIoXHJ5rTC9rTUmKr5I8+5cdTAwMDSaWlx1MDAxMjFAlsSCYEDEarRgXHUwMDE0XHUwMDEzXG40/lx1MDAwNrTw7Vx1MDAwN2eQUlpgXHUwMDFjR1x1MDAwYqbhhjDhyb1cdTAwMDVGvVx1MDAxZEIurm3Su/P7tODRkVdLPS1MdZJcbkywYJJcdDpfWIJcdTAwMTjSklx1MDAxY6gjhJBErjG74KY2QZVUXHUwMDAwMlPRXHUwMDEzq9BCXHUwMDEwoK9S+DuwomB3vrKqdOtkL9h9Y+RcdTAwMGW2i82LzFXtsFx1MDAxYnz+JZX/aWmJzSehXHUwMDEwaVhESK6pgq4jgVxu+Mtwc0SH8lx1MDAwZq4s/Vlz6qxux1Cu5vVcdTAwMDaDrZbt11rfqLJcdTAwMDR5XHUwMDBi0cKk/lx1MDAxMfZLxo68cMjRJacqSf5cdTAwMTddWFpqUJdcdTAwMGVcYmFcdTAwMWNfspFcdTAwMWNcXJ6Ub1x1MDAxOCltXuz2tsfbu7csQ1x1MDAxYXViT/hhy0m7VZWKQF5cbkm4JFxuaVx1MDAxZOi8p2BDWJDsgXfBXGIyPrK+0XiuLIZcdTAwMDSYJsxMtSBqQIhcIlx1MDAwYlEwOJAoYEY1XG5JPrCE/Fx1MDAxObr0XHUwMDBihuKXw4xcdTAwMDYy+kX4XHUwMDEziOGYwsnLXHUwMDFmh1x1MDAwN9vtx7JzfNVn3kHt1lx1MDAxMZ1H1E49zFx1MDAxOORYmHHI9lx1MDAxMMWKzFx1MDAxYmVw2Fx1MDAxNlVcdTAwMTBqglc0cos1XHUwMDBlPGJkcXC7XHUwMDEwJlDOOFFhmHFqXHUwMDExXHR2XGZTXHUwMDBlXHUwMDE3w1x1MDAwMdP/XHUwMDFiZkxOXHUwMDA3lFjatEVcdTAwMTBcdTAwMDPG48zwXHUwMDA2LFpynN2c7OR7pWqTV1x1MDAwZrNcdTAwMGb7h11/eDtOfUlBa2FRXHUwMDAxQKJgv4VgXHUwMDBiJVx1MDAwNUUtk6WD7ZgmNfG6j3ebM25N74Bcblx1MDAwMu5NMFx1MDAxY1x1MDAxMVRQaiGJKJHadI2QgXL5b6RxXHUwMDBlXHUwMDEw5UJEXHUwMDE32p63wdZcXL7D+/mtSU61rncnw1xu9654e/N5/1pcdTAwMDD5hJF8K3M9zlRcdTAwMWZy9Vxu74hyszLawW44Nlx1MDAwYo/4QU9C8Gi6SYLBp4Qt+Fx1MDAxZI0sxSCrkVxuMYKEXG41MDFjXHSKXHUwMDFhKmplxmh5uIGxXHUwMDAy58X5lMuG8Fx1MDAwMef2SeODKYjk1lx1MDAwMJLf6ETQc1x1MDAxOFx1MDAwN6OCmS2iKDZfxVx1MDAxMkH+RChPopFNOJZo11x1MDAwM001N2BoQUCgmZBCXHUwMDAyWCBwiM56YjKXXHUwMDFhXFzV8ZbkLlx1MDAxZLdeb8dkR2xcdTAwMTF9S4jEeodnOyM8QZ1bdXekc1x1MDAxZHZILpJcdTAwMTBJYWxRXHUwMDA28TMxg7pcdTAwMDQtXHUwMDE0izS1TDGZI824XHUwMDExoIV4tIQjPzx6d0bEXHUwMDA0+ORgqlx1MDAxZCRIrK8miCtFRbJCZ0KCYJSIXHUwMDFmga5NXHUwMDE1P9TWyVG1mj1cdTAwMWH7dHDWPaj3S3m3mkhaQrnFJcGaKWn04GKBXHUwMDFm4GcwM3IkXCI4XHUwMDBiiHhcdTAwMDNcdTAwMDJOXG6hXHUwMDAwmDmFXHUwMDA0uCpcdTAwMWOhXHUwMDEy/uHHavyYjkBcIklDXHUwMDA1f1x1MDAwM7j4XHUwMDExY8WoZGak5uPYUSrm1+E+VtafJGJGQs3rXHUwMDEyQVwiRlx1MDAwNFx1MDAxZVx0JZ+rcvN46Fx1MDAxZe6OlT1cdTAwMWVdPFTrNvbqp6lcdTAwMWZPkVx1MDAxNFtcdTAwMTiicMLAXHUwMDFlc45cdTAwMTdcboJaWUxCazNGIbNba+6p5kSvXHUwMDExgkQqLFx1MDAwNMlcdFx1MDAxM1x1MDAwNP5STsIlXHUwMDBlXG6MXHUwMDAxQyTXUzheXHUwMDFkZ1x1MDAxOFx1MDAwNbTtoXE7waXWKrnwtfyIjsWgt1PIa1mpNo895o1TPydKUmJcdTAwMDFhXHUwMDExpeBuOEbzXHUwMDAzXHUwMDE0XFxoiyCIxMDNqDlcdTAwMWbx4Vx1MDAxM1tcdTAwMDR9VVxcXHJeMVxiNFx1MDAxYbjZXHUwMDE3kYfRqSCs1iOAelx1MDAwZtLii7bwtJBLzzny16B2PWhWXHUwMDA3XHUwMDBmrv9Qd0+vdvxex7vOo/RDbZlJXHUwMDEzWFvgVcHCTFx1MDAxNdY4Xjnxfqjh16H2qk2DJF5TLXTqkIbjXHUwMDA3XSH55YiCOU5eULvlmeFJqdj37tRVgbvX9frOMEXC4rjCLbZcYmFcbpvYXHUwMDE5MzJfUFOIWIA2qsx0KsZ1vJr/3c5cdTAwMTOJOaRFiFx1MDAxMahx5GZcXFYpKSCDXHUwMDEy4XqahCxZI6ajvefzNthazmda2FbbuLz7iJruY317QpqJSiXTR1q5nibGxXsx6Ve6xYdT0Ti9OecndqAxlqQ5hoiQyDCTqrDgPMVpN2FkSSMnXHUwMDAxa4Ag6Fx1MDAwYuvpMVJcdTAwMTZ4KKxNPChopGR2OtyLIWIkXHUwMDFhXHUwMDAyU0HJp8vtU5DmfFx1MDAwNEZiymlSaqVldLWAsNgwnprUlOF3XGagRqVDv/jGxn82NsqZQFx1MDAxNSqYXHUwMDE4SUtcdTAwMTLOXHUwMDE1pab8qjT5rMRoXHUwMDAxgUu41Fx1MDAxY9HtO7XTdYdk4mb4sHk8quwmq01cdTAwMTNcYtQhymBcYlx1MDAxMcSF0Fx1MDAwYmRcIpY26lxySEIxpVx1MDAxMTVcdTAwMDM4XHUwMDAwQ4hHTeVeIXDAP2T6bDJRqk2ROdB1XHUwMDAxLoVcdTAwMGJcdTAwMGWz+FFD5i1cdTAwMTJJqVx1MDAxMnLpMlx1MDAxMX9o6uhzvFuuPvTb2+XGTeNhq1cr3ubOXHUwMDA3YfpMf3qBPkhbglx1MDAxMKJcdTAwMTTEXHJM0PmStFx0XHUwMDE5jJWTyFxm3lx1MDAwNCdcdTAwMTT9plx1MDAwZlxus1x1MDAwNWJIXHUwMDBljlx1MDAxYoJcdTAwMTBcdTAwMDSmTnDxQ5aPiE5eUj1gXHUwMDBi5Fx1MDAxMuGlKVxmXHUwMDA0ZTxbpORcdTAwMTDPXHUwMDEzmSSxf4Uu/Z5cdTAwMWJcXI/FfGb/2ph17/TLy7//9dfrR4ewMzs71GRte+Dnep2O68MjnJpbWrzPgW97ftbt1t1uc3Gf063H7JmelfG83rjl2PWI81x1MDAxNvetnrRAXHUwMDA0XHUwMDE321+YQOz7lrVpbpvVoSqetMulYf/SL2ZcdTAwMWXuc+gyhlwiXHUwMDBiMP+6hIVaJpDS4HtcdTAwMTm43/mExWiLLFxillx1MDAxONJgn5Tk71q25s9GI7DcysvQtJbTiVx1MDAwYpxJyJcgtY1Kipn1pGKiWjONw1x1MDAxYVx1MDAxM87ALVCKo7VMM1tAx7nqXq1y38LbtLh9o/L2KD9cXOvI/2tSZaXjXHUwMDAxXGL5mySCvUGqnEVcdTAwMWR3jEpor7dXalx1MDAxNLd4s17Eo9QnzdxcYoBcdTAwMDF+mpn5JEQvYlBaZkRcdTAwMDGiR2pS61x1MDAwZnddM5FEhCqChNJiYkpmhGtcdTAwMTZdgPkksEWGSdpCilxucDSQ1U7nrUXHSVx1MDAxMVL+ljvYeJ5LvFGHYzda9sjZXHUwMDE4+L3aXXRwJOd+I/lcdTAwMTDn+9YkkWH1xFx1MDAwYls0gSA2oU7iuZh5uXvt5USmXjjwL1x1MDAwZY5v80e30EGpXG5pYnRbUk+HaSVjXHUwMDEwXHUwMDEyXHUwMDBiNV+/MI7LQkKCwTaraCDxrlUjoq22Rlx1MDAxNkQyXG6CcmHmYbIowZawKFx1MDAwMJFcIkJcdTAwMDSnRvRcdTAwMWUy28iEvVKg11xuTJWL3n2VyoPro3xjh2Zcblx1MDAwZuOHU/9LzXZwlYVFKTRFXHUwMDEwXHUwMDFiJlx1MDAwYvOecLhfqJ6j7vVhb3C/f2OTzE1Fnpa+XHUwMDA1XHUwMDBlNbEkMiVNoVxiZlx1MDAwMVx1MDAxMdMzXHUwMDBlOaQ2jENcdTAwMTdTwVVgStRcdTAwMWFWL1x1MDAxMVxcS2XGuanGJEJ2XHUwMDAw90I49IumhGqFdGhcYkdcdMog3tPROtVPXHUwMDAyY5RZXHUwMDA3Nlx1MDAxM2hkRVx1MDAxOYfYh0k1d9BcdTAwMTKrXvNcdTAwMWPbj5GTyLjWWEmx8lx1MDAwZYuu4+e6I04wZYmUXHUwMDBiz1x1MDAwNv2I47tcdTAwMDMvk99cdTAwMWFcdTAwMTZcdTAwMWNBjnWxO4ibqZWSXHUwMDAwXHUwMDFjuGFxXHUwMDA2TIH4xixcdTAwMDNcdTAwMTQy5cTiQC+BMLh1tI5cdTAwMDD8Q0w5Z2D19OvS2/NDenTq7TmeXHUwMDE0Z16+epbhx+eHX2vJZayyzEiiJWTtJPmsluNcXIXfbE12+Vn57jLr8kl7dJp6XHUwMDE5uFx1MDAwMjNOXHUwMDEwNiM9WFx0TOVcIlx1MDAwNpWFOaJmiSFIs9D61i7l2lx1MDAxMkhcdTAwMTFmMm8znVx1MDAwMK1ixzE1vaZEzNTyT8JiXHUwMDEyQ85j5INcdTAwMTGW3Fx1MDAwNkS2v8ySP2F7stfFXcSxLFx1MDAxNS+3XG6N07abXHUwMDE5XHUwMDFlJ1x1MDAxOVwiXHUwMDEwXGKM2Fx1MDAxY6aUUlx1MDAxMFx1MDAxOUBWJ6CnVWA13Nlyo1FcdTAwMTNF+Vx1MDAxMiD/U1x1MDAwYpkrVShcdNhjXHUwMDFkXFxcdTAwMWJ3Zu9EvMJtKtujOtG6S1x06/lu1/Vdu72YSc6RXCJcdFx03l3MX1a8L9DrwklcdTAwMTHnjzNHhfY9svereecqXHUwMDExsI1cXHZcdTAwMGXYmr5cdTAwMDJsXHUwMDE5MYfqXHUwMDA318lwXHLINKJrXHUwMDFkNUyFXHUwMDAzOFxuTVx1MDAxYYS+YDKRXHUwMDE3Tz6BwjO3mlJA77fRfe9IZZtUXHUwMDE3OyN1uOvf23ZcdTAwMTJAmyXJ5lx1MDAwMVxy3YcsZdRcdTAwMTCCQ+tzXHUwMDFkXHUwMDFlgYK48Fx1MDAwN9OrYpozpszKjVGY5rGlYWJKXGZcdTAwMTJ/5PqCXfj/XHUwMDA2gDqdhjrZYE5YXGYyq6VcdTAwMGLBXHUwMDA1NFjy6mCjX6nt3J9dXeTHZ+w2N0FEiHK6k0lJtUUpokZMgTRcdTAwMTHzY8laK4g/OVx1MDAwNNZcXFx1MDAxMYzft5hsdC6Jn1x1MDAxNuOB6JaaWFwiKFJcZiaTs/1UyaiyIDP1pNdyyavb2zt9jlx1MDAxZruF/MlN6by5s5Uls1x1MDAxNf1cZlx1MDAwNnLdwviudVnrZttHubJ9WyvuoeBcdTAwMDGHN0N1WTnc6jS7/Fwi139cdTAwMWNcdTAwMWWP8p1PyUaX4pjSWHG4XHUwMDExUpo3XHUwMDFmvGFm8nWZ3d/VXHUwMDBmXHUwMDFly1x1MDAwZlx1MDAxM9nMj7cwP1x1MDAxOY3TjWOlqVx1MDAxMSdOlzmDXFxJi1x1MDAwNVx1MDAxY0szz0RKTThAOdBcdTAwMTSr4FhcdOVoXHUwMDExIaFcZoZ2QSV4hPZcdTAwMWJLMFx1MDAwZTpmlsE/XHUwMDAxj7GxXHUwMDE1VkhyLnVcIk/0vCDlPu/Qs72d+nD7obA9XHUwMDE5qsp1KW7UJTV4ZEvxqD5cdTAwMTCPc1x1MDAwN8zAXHUwMDE4hmJIXHUwMDE5rpWGnohcdTAwMTOG/1x1MDAwM2BcdTAwMTjOZ19UnVx1MDAxMmGtk2Wuz3PxJ1tcdTAwMTSVy/tcdTAwMDflm71is9zOnVx1MDAxNTsp9+7weJaOR6HSlli7VYyoykSM60HGpVx1MDAwNEDxNTnGt0VivEGUSGplXHUwMDE24EyMxELevd+3XHUwMDFmt7LIZ6Vrfu+dTYopt4dcdTAwMWGLb4LE6ftcYiST31x1MDAxOInzmtHglPjYVcKM+uNt5vAx2z9ytlx1MDAwZXzkVLSXRYXqwd1ZyqVrXHUwMDFhoyVOXHUwMDE5zlx1MDAxN59cdTAwMTAloqggkYhwkEiNa1Yk3b45cPoqus2PVaXO2tB8TJvOTlx0PW9CKeqHiUrjSVx1MDAxOT+vV0NGrt6wXHUwMDFjL7lme/Wjo+rpebFYaeztqbxf9VLOSYSWOFx1MDAwNvNcdTAwMDKiL+NkWDRKJVZASvGa4OOHky9cdTAwMDcscFJ9XHUwMDA3Ri6J1TRcdTAwMDFcdTAwMWOiN6zoMNzixfubc97falx1MDAxZu/dY6FxtkxSTknyqptcXH+whiMpXHUwMDE5UUsxS1xiXHUwMDEyql4r/f1Q8vdcdTAwMDcvUJJ/XHUwMDEzN1x1MDAxOb/0XCInnFx1MDAxMfmGgtKocnQ70HZ+t7zDXb9Yrt+Wxp20k1IvJSVmQVK+r1BcdTAwMWZb4IxcdTAwMTDXoEU+goXjXHUwMDE4XHUwMDA3Xzz3Q8iNhZueP3pr1q5cdTAwMGLHp5eNONZFMo41kio5XHUwMDE5naY4PC40UbE7bPQzl2en29WLTNrJqJZcdTAwMDathH5cdTAwMDJcdTAwMTmjylx1MDAxOaGIVZi3XHUwMDExKc1+3OPvL6+zUVx1MDAwNI/HKWDjXHUwMDEzT/RYXlxyj89LvdN+df+G984qqrydRKIhXHUwMDE1s1ximaF1ccZcdTAwMWWiMSnWy0utol7Y87+o1vhcYjrEXGLwwLdcdTAwMGJJKI1UKlx1MDAwNehcdTAwMWJe61VN50B+qK5jXHUwMDE01H2uLuh41+qVy9RKrctLdNJlRU4uj6u9yenh8P6Ah6lcdTAwMTDzylxusMiLXHUwMDFhPLDnRsuMMEFcdTAwMTJcdTAwMDWnv89eYVx1MDAxNTHJlP0vTpNfZeVcdTAwMTVlnFx1MDAxMGXh1Z6MdYrHNlx1MDAxM9AjjCTKtt/w6ornQZTt7rkv5eDePa/52zdcdTAwMWVcdTAwMTOF3kNiXGZhROnbQVx1MDAxNGFHfzCUXHUwMDEwQ5grcFBIhlx1MDAwNFtTpMSGo4SB32PBt6F+IIbO89t2ZruHKuOjvf5jtnyYvfWKYVxm2cbJL+JHLOomNdWv4CdKNLksVP1O8EFrhlx1MDAwZmOUSSzDi22YnSGn+1JakCaZXHJcdTAwMGVcdTAwMDamcFx1MDAwMVx1MDAwZfJcdTAwMDFcdTAwMTnjelfceGZAJJNcdTAwMTKuXHUwMDE0uGRcdTAwMWE3R+ZdqVx1MDAxNCVcdTAwMTe4Qaw1aGZcdTAwMWJcdTAwMDVMh6QgSqXjvTKPXHUwMDEzuKVmzpVkpu5qxOxaI0ZcdTAwMTekmkpcdTAwMTEzq4cyXHKhPqUqfuZsKtak5IIojYNLWXz8kpR/PPNg0+73i76Z1/rrXHUwMDE5dnAxt/5cdTAwMWPTznC7OXKdcTZauGq0q3+Y3/zv/1x1MDAwM4DAXHUwMDFktCJ9<!-- payload-end -->
+ <defs>
+ <style>
+ @font-face {
+ font-family: "Virgil";
+ src: url("https://excalidraw.com/Virgil.woff2");
+ }
+ @font-face {
+ font-family: "Cascadia";
+ src: url("https://excalidraw.com/Cascadia.woff2");
+ }
+ </style>
+ </defs>
+ <rect x="0" y="0" width="827" height="1012" fill="#ffffff"></rect><g transform="translate(10 10) rotate(0 403.5 496)"><path d="M0.6120161302387714 0.2306227557361126 C176.34838936785238 0.22690063446387648, 354.00070575121794 -0.3170953896678985, 807.453930426389 -0.3243877775967121 M-0.0015226308256387712 0.1010874155908823 C310.84229007391264 -3.3018346436135477, 621.1829346725718 -3.3442769773118206, 807.3457405503839 -0.35789241753518586 M807.2221156604588 0.14504600688815117 C807.7818173653185 340.53735774978986, 807.4114872938692 682.1625422649084, 807.7767260320485 992.542293011397 M807.3937234338373 -0.1761252399533987 C809.7578097438663 226.10918501354752, 809.8873681282848 452.84014994539314, 807.314637356624 991.8598415974526 M806.9638260610402 991.44779246971 C562.5161133198999 990.1462100305592, 317.69396286513654 990.2463866748845, -0.7308547966182233 991.3081124417482 M806.9703991707414 991.9383708599954 C535.3735030521638 994.8362671773842, 263.54323863219463 995.1941872399261, -0.04486282505095005 992.02657196559 M-0.06409778520464897 992.3358103863894 C3.7934890135824677 631.3772417865694, 3.8704169377386566 270.238020568341, 0.17447407320141795 -0.36201249435544014 M-0.22888067401945592 991.7009844068436 C-3.119588717713951 632.726607242599, -2.632397124066948 274.1862880770116, -0.3936608735471964 -0.004026996716856956" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(464.83774860145513 59.14024356108871) rotate(0 55.90505832485928 20.866439494680833)"><path d="M-0.051659053191542625 -1.634156608954072 C36.94070351820192 0.7715043930354424, 71.85475226208074 0.6546438245120354, 112.0596170379982 -0.36675735749304295 M0.9190285978838801 0.42944845277816057 C34.87821251257488 -1.31326388171362, 69.29951171504665 0.2965231949980347, 111.19771139707571 0.5860496731474996 M113.07795190356826 -0.32446142472326756 C113.4415928133409 9.43747504109984, 112.59424382528472 20.25144969967197, 110.97358804486846 41.66059426666095 M111.32541911687856 -0.8346077231690288 C112.22897948563936 10.766147995373908, 110.64129810274484 19.697467259143895, 110.91824044671064 41.97668359038278 M111.82467132352447 40.30153827071979 C70.28315607515889 42.389773649598034, 27.544308444591152 40.40890322389689, -0.30386519990861416 41.855814200647615 M111.89092649903303 42.50511524435922 C88.91503984478241 41.701741695731855, 65.4012074431563 41.47751197251675, 0.8208050606772304 40.81396293994828 M-0.1380999144166708 43.511910182245515 C-0.4255363315407095 35.120493855599875, -0.274292942887908 23.429431151390762, -1.3130928929895163 -0.3070374969393015 M-0.4735911013558507 41.01682544109269 C-0.28501732269142743 31.302176799277046, 1.3036948033251894 21.6066293003447, 0.5878638802096248 0.7773615987971425" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(191.85346471574246 66.72122020134566) rotate(0 17.32326764212877 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">ID</text></g><g transform="translate(249.4970250899562 226.7594272925893) rotate(0 162.83190000956358 47.85474831189481)"><path d="M-0.96208451997514 0.6683708647747145 C107.76010040830967 1.306099765628057, 216.5470174083707 -0.4148437560221909, 325.4259883209972 -0.24426163094201275 M-0.3173531422678079 -0.5115772151687729 C110.02456843588416 1.13169501829559, 220.07356780765346 1.31326795527431, 326.2381214646235 0.17076886330751043 M326.9985814814538 -0.7640320304781199 C324.14170812200507 26.92932354006564, 324.0098075134655 49.68722951038967, 325.7222033863038 94.89843360795614 M324.91671369067285 -0.6041608182713389 C325.65261542344473 35.02616473000127, 324.98514869356535 68.0857781887353, 326.03873366705034 96.13161552320209 M326.54887460023514 95.44100734495612 C224.05056724430383 95.12862323027028, 122.86998802934731 93.49880166670485, 0.9025957708928238 96.01284381950762 M325.6963271804402 95.59112770213056 C200.6912590925861 97.24168078048874, 76.38719433820502 97.09487302357955, -0.6849227868670017 95.78329254107791 M-0.36528593860566616 94.9919541896784 C0.06972456096820157 58.69338710273053, -0.05369597554989536 25.236592095250444, -1.557630067691207 -0.36099752224981785 M-0.34486470837146044 94.74515882502284 C-0.11387012361963633 74.7228081714263, -1.0757075047441327 55.34757990094743, -0.22900356072932482 -0.23087996523827314" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(161.677450113325 122.23882343430955) rotate(0 32.41127494333767 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Image</text></g><g transform="translate(241 70.76056343317032) rotate(0 104.5 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">http://backoffice.com/product/</text></g><g transform="translate(102.44305107894843 233.274029900237) rotate(0 62.02847446052556 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Description</text></g><g transform="translate(186.14768369298304 354.7916331332008) rotate(0 20.67615815350848 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.35260340919839px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Unit</text></g><g transform="translate(177.2066423293038 410.30923636616376) rotate(0 25.14667883534821 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">price</text></g><g transform="translate(163.7950802837853 465.82683959912833) rotate(0 31.852459858107693 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">taxes</text></g><g transform="translate(171.7361216474635 177.75642666727367) rotate(0 27.38193917626802 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Name</text></g><g transform="translate(265 105.26759386062622) rotate(0 43 29)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.5049887999566147 6.065775581498735 C0.7735259564440724 4.712977619385839, 2.879661183105751 1.729078227385057, 4.702386339338965 0.23034067040656148 M0.00263213928324485 6.236133628760569 C1.5116257424780761 4.824451727797482, 2.9814240111625057 2.493517844809919, 4.630601625102109 0.710399743154388 M0.4465643220673905 11.486569108485758 C2.9249053470137816 7.172372607709439, 7.437210533592926 5.25661060922005, 10.298306482982767 0.4508509586646916 M-0.6137727989722385 11.95339940455514 C4.633439243273046 8.18962015474221, 8.098044482208397 3.954531787963522, 10.11635821978463 0.026238121379888235 M-1.6901673200121383 18.0936125748797 C6.55060372372104 10.243915280746279, 10.646508966998452 6.111857800307236, 15.665042502343137 2.3045959423226288 M-0.8808458950883011 18.848115073424452 C3.8159796278061267 12.674128084492455, 9.094087217485264 7.737928321628456, 16.421676133296867 -0.23340429021744225 M-1.276242779363015 24.445154554857968 C5.578398802990729 17.413082785317545, 11.413407665141476 10.398648254177198, 23.04152580750909 -0.7105239337146756 M-0.7022356342338707 24.344057083777248 C6.380697117637786 16.182934877476377, 13.28779608446597 7.933720148466179, 20.964020657630527 0.03838627824331553 M-0.04988094507256591 29.33739587641155 C7.0120119370191984 25.730597462089516, 10.006223412788234 17.943435374715627, 26.14347130866012 1.4401165669795812 M0.8575670701031939 30.760536425512484 C7.105904732631673 22.713801229868118, 15.22365048830267 14.34255834182656, 25.945205330524953 0.9430860042583884 M-1.3536189795565328 35.77887158822392 C5.075044145004193 27.23925538648384, 15.139984352969769 22.60721778707203, 31.337135247370995 -0.4486414621338959 M-0.9733267511334738 36.86502979770427 C7.875070385125491 27.501374851894475, 14.543559229126712 18.45958113048341, 32.23865802441428 -1.0426708058208938 M-0.08663467023065152 44.178507363978554 C13.669105370299231 27.590999933502005, 24.912327111441225 14.871029860481936, 38.24539712425445 0.39977201829669085 M-0.29786075450023475 42.08419358692669 C14.427733982529414 25.50245831957434, 28.222538302728815 9.241859812460625, 37.54376580827062 -0.04548183725210819 M1.264576483517807 47.672248243027255 C8.54781036874557 38.38475910357233, 18.916723847518924 27.251053729331733, 40.933731930885244 -0.23152064826795993 M-0.9869603710249848 49.73674260792218 C14.863261502468212 32.73712109448201, 28.38014142762853 16.10293764927254, 42.165597179528106 -0.8641034086839312 M1.1561144732636066 53.902591568830715 C10.035168212376526 42.97228409970224, 19.763854607213062 29.9630482221798, 48.599237917876124 1.5473318275239514 M0.44413039672641474 53.71923304204206 C16.752785639737294 35.15413072047181, 32.61290503843837 16.50986354004546, 47.29767983215886 0.03697616962606176 M0.9878206076005007 58.6093444702952 C20.002711110078877 40.50531183892943, 37.72847830799741 18.266376286021064, 54.75660882680184 -1.2422669608668677 M0.4307448007070924 60.00306991858322 C16.603498476933947 42.12275101716081, 33.16190463112388 23.37997737615955, 52.80172288859701 0.45860995402920324 M6.289249744065284 58.65444721999032 C18.819539100875105 48.94882018613083, 27.9836960639131 36.05251452863097, 57.92716165827514 0.6528155259113753 M6.138515579313218 58.565580473005895 C19.87963453284589 45.23155273312041, 32.309295832153936 29.440322467857463, 57.490394667814684 -0.5265809907320893 M11.535989709327641 60.1786648386045 C26.757283884926437 40.00016833119607, 45.70734231075873 22.28113688385197, 62.824808903870775 1.7422641313193807 M11.87344437757385 59.45295575138913 C25.46065743410066 43.1659461382924, 39.84268439997761 26.797328214933437, 62.907044917246 -0.6431342333064904 M15.832577994962346 59.55105716959844 C31.694579903928627 42.459300561888895, 47.258114224472195 23.99494666275534, 69.0450863142015 0.8924926447089447 M17.35856844292314 58.63597068508426 C35.343721410270234 36.83301120661354, 54.53551787932734 16.873365341169567, 69.60848258086308 0.5936806660484208 M23.665175351582125 58.99741300232395 C34.43999497766112 44.500196596770024, 48.144155729125586 30.119651882798394, 76.25112513084206 -1.648532840459211 M22.080384219333187 59.54466821383372 C36.74555131110029 41.94171406401574, 50.27907494701671 27.102693929209245, 74.94469803110006 -0.1910644863160087 M30.087538020761755 59.62507343024173 C48.95711727880547 38.39743777226618, 67.27936723980868 12.06419235667174, 80.8626798544052 -1.1511172848333189 M29.068569579238144 58.99943264398881 C42.655283665768216 43.11029662953569, 55.55309798378013 26.419423633999788, 79.34164083692906 0.7744701243426135 M33.410045503113956 60.52310849270356 C44.883873419758956 46.66099394937112, 56.06419420555535 28.622891384656526, 85.24210047646568 0.6209866550473464 M33.178761591610105 60.217416290291965 C49.80521980480643 40.409662229419546, 67.04532434811807 20.670775325355407, 84.0809419957842 0.3399656793756378 M40.3856727902135 59.78714053317015 C51.3514547115027 47.77681495241936, 60.651632768685516 33.77374222677703, 88.41518316066472 0.7748840092028857 M38.872278753883215 58.74361283409451 C49.24811991121937 46.49967293987028, 61.84133244316594 33.14650750067801, 87.61451461466609 1.70350010919379 M42.89901813267313 57.61952084099332 C58.955788572585696 43.79647176846155, 71.67498645200916 30.472725895072994, 89.88137859059607 9.294522531539549 M44.4988987600296 59.457283965138885 C60.45578698534574 41.054778458342895, 77.0931615343211 21.634794445849998, 87.96851225802784 7.323783130593945 M51.15227527206759 57.35415300963375 C59.75969116262987 47.299107400537665, 72.29999315154316 34.85164175288639, 86.23917391182499 15.612611860295289 M50.07658073248337 58.5030327397764 C57.353517053173476 48.300114033019725, 65.61955562376335 38.833241511571956, 88.9624608897941 13.39832540720468 M54.35426120900964 60.55666957844324 C68.29191383402885 47.11658299987482, 77.58439830043154 32.52114696294013, 88.49935661592627 18.69196183893078 M53.57424299021667 58.297230222749484 C66.82034682852901 46.25326337216405, 77.95239537415263 33.03065188274849, 88.11627275739903 20.851026870377297 M61.25032940608352 60.803964971105266 C65.49539603314625 53.00972100047903, 73.21883973801516 45.748443507493526, 90.05433745351262 26.352111256797837 M60.0354262516731 60.21379842563223 C68.84495124846636 49.22581049371385, 77.10807395858828 38.98260304789889, 88.2133193048147 26.565055459854232 M64.09169270087351 59.01082423630332 C70.1139115173711 51.76548737472962, 77.57396000050042 44.17847122108624, 87.20806363716831 33.04886078757994 M65.14136654779632 59.817089047498754 C72.33724259583425 51.69382688316736, 79.32899080400455 43.53973972271522, 88.42409437548478 32.06863006220959 M68.60474621899232 60.756551788389174 C74.79642658294958 53.22996912316725, 77.50973786157137 50.12322139275734, 87.14534175447758 39.20090172996055 M69.77406813505843 59.09476221559146 C76.05414834790082 52.384794996197996, 81.05684201384616 45.439250569068676, 87.86928712535288 38.76789925151746 M76.48155229048089 60.021685072631115 C79.11654540202038 52.65715704279814, 84.4158570660748 48.80612767372208, 89.81597946685844 44.53405435376401 M76.1195891057908 60.096796896672345 C78.19319836105069 55.31474942283893, 81.91159918763944 51.19129455117371, 88.18358900895447 44.214260871406374 M80.44737789201255 60.128651046682364 C82.55769389717321 56.22217114465181, 86.73953464187971 53.14481419712647, 87.57121831091686 51.26833620445817 M80.91939637324478 59.33275860745854 C83.20337395784485 56.918275810906636, 85.15487786046539 54.86646561700479, 88.01826741105512 49.97544897777974 M-0.038809945040203075 57.966263029481176 C-0.038809945040203075 57.966263029481176, -0.038809945040203075 57.966263029481176, -0.038809945040203075 57.966263029481176 M-0.038809945040203075 57.966263029481176 C-0.038809945040203075 57.966263029481176, -0.038809945040203075 57.966263029481176, -0.038809945040203075 57.966263029481176 M7.032931100275651 58.00743002491432 C4.892015081057667 56.57269134014604, 3.8225323906856037 55.1225673442549, -0.4638983592326609 53.19329333471543 M6.6154572204466024 58.125776796884715 C4.9081668267282454 57.19128496103465, 3.278870721706101 56.18672279929317, 0.5995698552643091 52.667475317962825 M10.858010765976033 56.38722950632584 C8.980232182032653 55.81093859445247, 5.819050664929676 50.52904605061982, -1.1905508019663698 46.353189829541314 M12.172781553185304 57.687898885113114 C8.161654025851545 54.48468519986822, 5.283097838015057 50.81955478095068, -0.831822614435137 47.32153014968144 M19.224220826964693 56.14225204362898 C11.705831573542277 51.46269119895924, 6.193176988226737 47.51568246406691, 1.7547021373321208 43.32769449635916 M17.830863035026805 57.36827740985333 C14.706181755830848 55.127608648513146, 8.476281527796717 49.873589956067356, -0.234932086881539 41.69405747878872 M25.883134780934355 59.336980571522346 C17.543009536952752 51.6063610201783, 12.633210175241643 45.63839744858876, -0.5326546819501168 36.52663061715756 M23.588696946872673 58.5282925800597 C14.540874372850611 48.95528134851633, 5.483914226994536 40.780157747637574, 0.8581166092685812 36.44762903492991 M32.39355053619612 56.445071366321244 C20.64780402692937 48.95070374463375, 10.43192974398854 41.659140123853746, 0.5031089524035011 30.142896290017756 M29.669070524695705 57.07043622963498 C21.415580029684172 49.399461333440954, 10.620880514421188 41.16273214188291, 0.9583058014739905 30.9499977716119 M35.217006071120984 56.296366277941445 C26.097413400795055 49.56805078898848, 14.508208880337111 37.25448948781764, 0.9965558135411836 27.516289960864988 M36.938154315226264 57.843257483885566 C25.96431000538581 46.52706808715845, 12.291579663339064 36.83855130313582, 0.478854268742273 25.545020972650555 M43.63339873907991 58.746097781298666 C32.24195096491721 46.760348206557026, 20.436850416407054 38.14479329728169, 0.3569463705022251 21.198736816586514 M41.743564177694694 58.5419851556178 C32.80797472225987 50.63221478600702, 24.601873445425046 42.29475938938578, 1.114514423472098 21.766221725323756 M47.942614009112184 57.70556606328019 C37.6598121269103 48.46405818562313, 28.24342162414876 39.53594027552369, -0.8319378535651696 14.768316553107574 M49.70974002449966 58.64545483210959 C34.84366802084999 44.808983766526495, 18.594573497498537 32.65866799537545, 0.33514566967104553 15.057066688447371 M54.11905840436603 59.61222581981124 C35.417512921576574 43.197481783118064, 17.741206010027334 23.695870503783098, -0.8366176396217071 9.140235607315429 M54.98622875964875 56.7924456721768 C39.7662218718744 44.12664384453187, 25.68513079828148 32.73981580357311, 0.9546410447377838 10.988188324299283 M59.78683614388073 57.74065848777909 C44.51898990937119 44.87270531497893, 25.66333881804656 27.87654976527921, 1.1259072854808196 4.380854925135315 M61.81661092054063 56.9989026380973 C41.325993423267086 42.01932769739743, 23.032478646615388 25.491432981269554, -0.37549942232010514 3.977662666695357 M68.87428208102726 58.67265904209948 C49.81533253916426 41.93631190392178, 31.39170739454032 25.571722820196886, 0.8633348907817047 -1.9813378065455014 M67.78678361640566 58.03427329267747 C51.94355790978379 43.369681496139705, 35.392176974079895 29.504283821357447, 0.40275793089604783 -0.49176844708651857 M71.81559044417662 57.327913082688156 C54.08737390135573 42.15026233995425, 36.45698328457187 21.82427978893277, 5.900270421434101 0.7628308691127792 M73.62033926897419 58.35843488622368 C46.59994769165118 36.09836690471566, 19.217345550427012 11.707125282290853, 6.039939980398771 0.7521116526840821 M79.75244357736807 57.994673921432366 C56.208369629974 37.14230410720095, 34.24572462409024 18.687771182605125, 13.566825214026812 -0.21151942989815886 M79.97394435314487 58.0586214435138 C55.178876564117814 39.07945308556161, 32.35959976979004 19.182567245753816, 11.661415631136242 -0.23749514061053212 M85.18854487874985 58.799849379257374 C70.72542751956634 44.17072808186656, 59.95935674168625 33.22795247006958, 19.31327536259913 -0.48722914169104925 M85.68562233542532 57.225760560863726 C67.46128002648189 40.96697380642448, 49.93016444861445 27.073278212027756, 17.675804483007127 -0.8440579271924697 M88.94595712147014 53.3957379020884 C62.3285388551556 32.813819883926186, 39.542952172260705 11.500390691585082, 23.326918015299263 0.816515804659339 M89.32484199482309 54.5474595220893 C67.85493402081333 38.72491213610604, 47.656365900341655 21.081938496545796, 23.985583127519014 -0.7598522357458748 M86.10260245367716 48.02252856085066 C75.80350182021274 38.04415436606093, 59.5624351888998 24.566213449065142, 32.50724801616651 1.3551562210402786 M88.72376742284577 50.27675529850636 C69.04220841898028 34.18172989596978, 52.70534446301288 18.303036773729335, 30.55601178957057 -0.7687377914928497 M87.96743904030129 45.81927328339347 C75.20768492410134 31.339335743061064, 60.77475726778246 22.33697508955141, 37.12049084357183 0.028846457367503575 M87.5461846652831 45.44933678085485 C69.03886902728084 29.352610241113887, 51.254084169049705 12.610186361381935, 37.663417265892136 -0.3698217191270352 M88.69731735971351 38.045501419632586 C71.04399971579787 22.275653752436355, 52.27358961753272 6.850277601108257, 41.00123135088622 -1.9868685114432374 M89.49810801886548 39.01140934444115 C74.36147566195541 28.094050698932392, 58.921276566540925 15.096363910410648, 42.69057166571408 0.1594685441579422 M86.51744726528477 35.73613294448372 C74.17737595393936 22.297973599762837, 63.389760265055 14.208543254144708, 49.75404250714897 1.7896240014953158 M88.1419970928232 34.380858052071595 C79.06130409629235 26.275860618772978, 69.47326648671054 16.9672065414319, 49.92207115143506 0.7003123356399676 M87.92302672605442 28.732155544834153 C78.20694226723157 17.950194964784934, 65.82585464561889 8.570052366198258, 53.40801833550828 -2.383908807891597 M88.69213554955499 28.384174741024093 C75.38460617792067 17.542043256600575, 61.820879629505086 5.725180828187856, 53.79261887706267 -1.331167435865094 M86.3337747651706 24.15071141660912 C77.36817083703886 13.752447150853751, 69.11375141965458 3.8425562272663214, 62.391950555003454 -2.162573002716716 M89.26291404306838 22.632794820114505 C78.35669347555321 14.639459842510892, 68.66959442758787 7.457879250674953, 60.455951629995575 -0.7666820580793576 M90.06910810167267 16.696069496695884 C82.37500579349764 11.948056003566915, 75.97714684586697 6.411875418627661, 66.18886151900546 -0.6442611080642919 M88.43775686076208 17.740319501620718 C82.84196791283598 13.517771198326706, 78.65801127194467 9.064663598210867, 67.03312276946411 0.6905597818035503 M88.24796450870879 14.473653231019668 C82.73665256523998 10.061227220826721, 80.13994589907782 3.9962127580290447, 73.53763295588527 -1.3389750240185947 M87.76269528164364 12.04279356935858 C84.58682920443509 9.893480906272993, 78.49616250729795 4.505095500908311, 73.40788096719865 -0.5972209159100146 M87.49958069944006 8.708667809389578 C85.75276945004398 7.068298522837807, 85.4448879575832 4.604519812185818, 78.99936786698913 0.4960874231390868 M89.03036955711615 7.817616691872526 C86.15992992839305 5.703741593264226, 83.53037505096987 4.138733611280108, 79.23181641003852 -0.18029103951079417 M88.6037661814848 2.246031285328428 C87.164820567656 1.69499413907655, 86.45544488583297 1.1567325226360565, 85.30928516755097 -0.32664069746633284 M88.20634940338974 2.140735858371119 C87.13056601746187 1.504405482764609, 86.39320889159012 0.4269119875172227, 85.17639491757595 -0.27189724192966946" stroke="#ced4da" stroke-width="0.5" fill="none"></path><path d="M1.2833336349576712 -0.20210695825517178 C26.264553903974594 -1.4820367433689534, 53.37526597902179 -1.9639644362591206, 87.90453079901636 1.6061993185430765 M0.7910978468134999 -0.9158364655449986 C29.10138486661017 -0.553940929081291, 59.80458284374327 -1.4824445318244397, 85.12034845072776 0.34006507974117994 M86.69530085287988 -1.1325306352227926 C85.35720007156954 14.490840502642095, 87.47046683764086 25.223397812992335, 85.36597273312509 56.86980068124831 M85.70289540011436 0.46385892014950514 C87.26780787443742 17.7852092217654, 87.02948379850015 35.474924811162055, 85.81809285003692 57.159964132122695 M85.23000023327768 57.341260546818376 C56.78170889597386 56.95030437683687, 24.02138104438781 59.065846013780686, -0.25596889294683933 58.12556856311858 M86.75304916221648 58.43610935192555 C53.95805252194404 57.871169723998754, 22.63317631166428 57.66141802860424, 0.662036475725472 57.16271974425763 M0.03531995974481106 58.92977684177458 C0.7145148164965213 44.16558788288384, 0.9834250457026065 25.391566541790958, -0.8231715206056833 0.6875288430601358 M0.7059939475730062 57.03384329658002 C0.18653230490162975 40.465856389701365, 0.12291945638135082 25.266173735447225, -0.06287804525345564 0.8138775704428554" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(303.14233728099066 462.18991210408274) rotate(0 29.20304557052708 15.019700190719561)"><path d="M-1.0984133537858725 -1.5110005978494883 C17.671119970841648 1.926576370932654, 40.21249815936077 -0.23277801778118262, 58.06093416782631 -1.0722546819597483 M-0.01225514430552721 0.4319292278960347 C20.665152421486216 -0.40156814638957194, 41.744342023105595 0.7669872027219851, 57.46690482413931 0.5372962029650807 M60.06423912616982 0.4613895174115896 C57.90467638980307 7.195001272910716, 60.134641778577944 18.340453467252615, 58.54924027296318 31.991146761395694 M57.96992534911795 -0.15894255321472883 C58.00702416305652 9.166336727376823, 58.54995133881679 20.94159483639855, 58.10398641741438 29.142285565317334 M57.160195988142625 29.434474188306094 C44.16742622254375 31.241232429252747, 29.503264016148975 28.858126972423676, -0.0935413297265768 30.70587314985013 M59.22469035303755 30.641962031305493 C43.161423966230984 29.44031650053655, 27.380737955095803 29.1803115926901, -0.7261240901425481 29.303445110500515 M-0.658626263961196 29.491012710549594 C0.7373647436401161 17.40126080984873, 0.03074184506147226 8.883383527678141, 1.3252037707716227 0.9112189169973135 M-0.8419847907498479 30.591566095531643 C-0.5492335561742618 18.94149529314116, -0.4160334769716099 7.455331541837101, -0.18515188712626696 0.533256527967751" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(261.2145066031824 503.3849129532873) rotate(0 155.2906633177264 26.638255679750785)"><path d="M-0.624289475551761 -0.19043343539405394 C99.73877876142258 1.5964010939473132, 199.24285734257668 2.321220196926108, 310.02138800640387 0.137703828063164 M0.2645620378022147 0.48981998140533894 C95.10830220933451 -0.9764894606436063, 189.60168113193637 -0.5836154588016225, 309.92141502276445 -0.6983936331285973 M311.46241117258637 -1.168308025225997 C311.5862189984247 11.454190683610868, 312.06611441134663 25.354515701651835, 310.09820336838334 52.43328664964805 M309.8777921189469 -0.31464625615626574 C310.0734623536227 18.72781694243611, 309.8613118692992 35.85950114169987, 310.65451815621077 52.30440986762564 M310.65346389389083 54.458247689592284 C227.07222496551893 54.324072280007776, 144.89070156838412 54.92094923133379, 0.8276050451235265 54.623405789248814 M310.1269699857599 53.052467873322875 C219.13600131585275 54.95162755222612, 127.88207555635186 54.91429623976157, 0.6083325826976749 53.258750001399996 M1.3116531129926443 52.08392862743507 C1.317569858525652 37.79669913764175, 0.676619476769823 22.508121152365028, -0.5361858252435923 1.774029666557908 M0.4484726460650563 53.4996095658354 C-0.3116531186783208 43.01010995445691, 0.4815350658214198 31.84609843359356, -0.6044884352013469 0.7387443957850337" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(517.3691237516648 459.91069099716265) rotate(0 27.687581811088194 16.535163950158392)"><path d="M-0.06658775173127651 1.7426361795514822 C16.638982184205148 0.9877153474666976, 35.55737598793942 -0.05650957042194371, 53.45561009829319 1.2318486329168081 M0.7652714429423213 0.41782226879149675 C13.339113375102944 1.0572315456811796, 25.013681434888078 0.5160462560598265, 55.552976663200326 -0.7866967348381877 M55.409461321285136 -0.4157663229852915 C54.21144821549051 8.699499222621196, 56.154561721330815 16.542462140664206, 54.48507869427479 31.78077316094584 M54.903600032417245 -0.8460412649437785 C55.819673692621656 9.665216233594457, 55.59545857254452 20.338153000015993, 56.08877327570147 33.72191320822037 M56.68867051785267 33.361689088832804 C35.32405646220859 33.74877373490861, 15.46731021967485 32.623009662967235, -0.9712940510362387 31.735190330039927 M56.20869138368792 32.28890382215775 C39.81947302512469 34.01532507876694, 25.261388509029718 33.99693451265633, -0.9767642738297582 33.68206586406029 M1.1827219668775797 32.24239104796595 C-1.3323882710090218 24.30666755847433, -1.856746841584736 17.707894371106732, 1.5395168606191874 -1.9816210512071848 M-0.05898697394877672 33.71010841891564 C0.7596258099757386 22.15891825286304, -0.7094604496277618 10.039976202349987, -0.04397402424365282 -0.6701242653653026" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(530.9123771413247 466.84791780420676) rotate(0 13.639173834949702 9.092782556633153)"><text x="13.639173834949712" y="14.185565113266307" font-family="Helvetica, Segoe UI Emoji" font-size="16.164946767347814px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">add</text></g><g transform="translate(332.3453828515203 469.8457509454257) rotate(0 9.092782556633153 9.092782556633153)"><text x="9.092782556633153" y="14.185565113266307" font-family="Helvetica, Segoe UI Emoji" font-size="16.164946767347807px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">10</text></g><g transform="translate(256.57219487957764 466.8148234265485) rotate(0 17.175255940307068 9.092782556633153)"><text x="0" y="14.185565113266307" font-family="Helvetica, Segoe UI Emoji" font-size="16.164946767347814px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD</text></g><g transform="translate(252.12172404655144 174.47556443147732) rotate(0 159.33190000956358 18.04547312311763)"><path d="M-0.5200925400271478 -0.8625112139548522 C121.48290772432871 -3.4296463960329646, 243.9740992444339 -0.9986379822773479, 319.8705416690835 0.15254824070670067 M0.1396140743468666 -0.2623568760836703 C76.42224278522202 -1.7334399312084197, 151.7833518892316 -1.8945122188302, 319.2471477055355 -0.25384268174362984 M319.14528514194205 1.7683633919805288 C319.08858710566415 9.773196374479078, 317.3799061779107 20.30455485441415, 317.82801921415046 36.11570921011142 M318.5461115895854 -0.9381824163720012 C319.7786909957974 9.503438169037528, 319.4482441862671 20.129198959830358, 319.63133976451024 36.20199562732003 M319.983920828346 34.93324256123956 C207.447808589558 38.32365593347228, 96.57256771174033 36.75584586740048, 0.4808252872793874 37.3838810189712 M318.5316649804755 36.45065360163346 C199.36052073230866 35.99849735670303, 81.05344898398712 36.61733185836955, -0.008075096866123028 36.71290446084454 M-0.4458962734788656 36.23192914791278 C1.6644646467566453 24.25822784713548, -1.4609071074128188 17.0453049734822, -1.329640930518508 0.9026429411023855 M0.40408008079975843 35.44052653137467 C-0.05922558512458931 26.3917437814024, 0.5588158408187853 15.98517008446968, 0.8992260871455073 0.5424526007845998" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(253.1320332195105 345.20750548863066) rotate(0 81.83190000956358 17.54547312311763)"><path d="M1.88001804985106 -1.648715639486909 C55.55154318316047 0.2135170009348195, 111.58835800458023 -2.019241699912806, 164.34855569648448 1.841301715001464 M-0.1881769122555852 0.5122685106471181 C60.883316930538946 -0.5141367903614082, 123.18535867830174 0.3671613642311058, 163.65230006567094 0.8857467146590352 M163.2179037456483 0.14098290167748928 C164.7783545420569 8.665269989173671, 161.65298278788742 21.950335503793877, 162.33415908860866 35.99358918733769 M164.06788009992692 -0.6504197148606181 C162.91263426344653 9.795417856643878, 163.5306756893899 18.883464481187925, 164.56302610627267 35.633398847019905 M164.4171149258584 34.35480907030278 C104.5478895459361 33.66125775431504, 40.37806029943664 35.18021185253968, 0.22411775030195713 33.47887107200795 M163.5237797855482 34.17425115529322 C118.70987204667227 35.55509937575764, 72.77488867760839 35.0093631522984, 0.20823227148503065 34.670923100149864 M0.9401149693876505 35.3806335575121 C-0.6198477420876767 29.050419756834344, -0.16703727579815647 19.426174812968114, -1.7754892762750387 -0.6428550723940134 M-0.8666509510949254 34.98288594309115 C-0.13001467742251227 23.912924636599605, 0.8472815855569952 11.15027248080386, -0.10428730864077806 -0.052675398997962475" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(252.12172404655144 395.7332733095518) rotate(0 80.83190000956358 18.04547312311763)"><path d="M-1.5653996709734201 0.5924824420362711 C50.030685896857804 -1.4448028433058115, 101.0439829972818 0.34721431854034934, 160.5467497644097 -1.1328454669564962 M0.3307131798937917 -0.14409334678202868 C52.33555951992044 1.6600937030200569, 103.47910539150226 2.1141184053306192, 161.63830657332096 -0.5941225113347173 M161.3852187928826 0.6056279484182596 C159.81449187762786 7.407208866041792, 161.1900076366191 16.551740604588176, 163.26060640188757 35.531848473771134 M162.65818567602787 -0.009955746121704578 C161.07096792838811 9.535440569788301, 161.449108467319 21.20829641176032, 162.44504259555492 35.45135299052916 M159.97604381414953 34.41117577098183 C109.82851806906554 35.037734525425975, 58.976988036261815 34.03488703273112, 0.13121012412011623 37.734847648366014 M162.3295380923048 35.9334766038867 C107.76729058939597 35.55144216740271, 52.94829584069858 37.34812014424941, 0.08592343050986528 35.70086038794241 M0.17136982642114162 36.283837421162644 C-1.1335610415687047 26.626544428237466, -2.0030365850676977 12.747871201547639, -0.9343102220445871 -0.08872831426560879 M-0.20524788182228804 36.57044280256949 C-0.1877992442960712 24.377334890327965, -0.8936144701356861 11.346781718992204, 0.04653861839324236 0.4656484602019191" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(262.2248157761428 578.6193872124595) rotate(0 153.33190000956358 19.239391943829446)"><path d="M8.205580876403637 -0.7497754152864218 M9.676779167906652 0.923706070145013 C89.64549648909639 0.7732424470567162, 171.4159692635522 -0.9087769154924459, 296.411646420182 -0.1368711933819068 M9.485474694077428 0.055118482865122 C102.40268126851984 0.8510376402454752, 195.92796896126723 -0.005892834128393809, 296.97331919472276 -0.0804798443268342 M297.0441040472125 0 C304.3754317663354 -1.7091770824044943, 306.97685527178356 2.696666298188629, 305.52537094923565 8.510063235842772 M295.70823047878196 0.046978289261460304 C301.17721995271046 1.0083674277178942, 304.3679033896037 1.1803615957837428, 306.3061511000701 9.3487241665918 M306.03119672220384 9.988843430858074 C306.20868563673594 13.48002815378187, 306.05345892983564 16.717251126949687, 306.2984430225077 27.538159807393637 M307.00650424521587 10.266200193276099 C305.8158589134255 16.22301088124764, 306.97160423225137 23.184356038580994, 307.08280324299005 28.190956451724357 M306.6638000191272 28.859087915744148 C307.09843140217373 35.36370960166701, 303.8211290143174 40.021464145590215, 296.2515961361115 39.32940713207856 M305.3825306234033 28.70408692548748 C306.70343928244796 35.09909831788414, 304.96984953142004 38.10954520659208, 299.2833832656962 39.925939315125945 M297.3395179638402 39.96749731784635 C191.61324735882565 40.626120687050744, 88.28001951033572 38.65128313676497, 8.67128900929562 38.18756615445914 M297.63821990727183 38.76198332167004 C231.50321463596262 38.22090256925356, 165.56426764239754 37.58997755649434, 9.553241836978117 37.76348199169583 M9.619695971914716 38.478783887658864 C4.1515503914434335 37.85297582190171, -0.3811421636492014 37.15883705308684, -0.1394349578768015 30.194236244659386 M10.580797777705975 39.824051237512975 C4.962527980875583 36.35219530122042, 1.0423440297134219 35.46087686028355, 1.6102815289981662 27.958774186230713 M1.4151221363457023 30.682574087132682 C1.395261960585475 24.027437267332992, -0.09144334092603074 21.350676127217632, -1.4327670122512768 10.289407268572038 M0.9585775926520578 29.620437913437446 C0.11964692946202413 20.91800209275555, 0.7677329616169768 14.048085071244685, -0.025904939685964412 9.72282873964071 M0 9.619695971914716 C0.5688870307058096 3.952424524106445, 2.57601503444499 -1.2930257376283407, 7.88823966794569 0.8727511111646891 M0.3546189423650503 11.430662875258513 C0.3471536804921924 2.861876362596067, 2.9257107669826468 -0.9303204123862088, 10.980595976588464 -0.5958743934519588" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(282.6148405114666 586.7802895501023) rotate(0 54.28459907031555 9.970640645568153)"><text x="0" y="14.941281291136328" font-family="Helvetica, Segoe UI Emoji" font-size="17.725583369898924px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:5 | VAT</text></g><g transform="translate(549.6064400205669 588.9959874713385) rotate(0 6.093169283402744 9.970640645568153)"><text x="0" y="14.941281291136328" font-family="Helvetica, Segoe UI Emoji" font-size="17.72558336989893px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">X</text></g><g><g transform="translate(530.6222882484633 578.9739703476571) rotate(0 -0.27004847406038834 18.648419851507015)"><path d="M0.04895899035036555 -0.7005767975002527 C-0.007434478029608803 5.223480316159923, 0.8709535095840693 30.26270754962066, 0.8574078653007746 36.49408163410603 M-1.384476269055158 1.546016438473016 C-1.6284975971467794 7.585657411219228, 0.2645852331630885 31.90963643246168, 0.35950153095647686 37.99741650051429" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(264.7989966846808 830.4184092888754) rotate(0 148.65462737143469 17.190719699745955)"><path d="M-1.9334663804620504 1.6443487163633108 L295.66614231624567 1.3200544472783804 L297.65747931756937 35.52988474309053 L0.6051808539777994 35.06644176184739" stroke="none" stroke-width="0" fill="#fff"></path><path d="M0.7914507742611576 -1.0240039720642273 C114.36266686238285 1.4373667822993306, 232.45091438027146 -0.7668287064963868, 295.97353338608 -0.6289964467260885 M-0.3077540775712225 0.31954050168844417 C65.37030189513659 0.9088819889770366, 129.2279997136572 1.9278172825686628, 297.11809807319264 -0.6602509276931665 M295.49761552893483 -1.6364958342164755 C297.7708321404979 8.910792956298874, 297.26310243134947 16.749091649768324, 295.34240735852086 32.69134951248373 M296.9145416661065 0.8050715802237391 C296.9094662005732 13.515630507922337, 297.24007847259736 25.68772488941732, 297.35861847241335 35.21802821714039 M298.26264619407897 35.841381415217946 C179.2325983610987 36.79200859992621, 61.35337550971754 36.41059798454842, -1.379921648297545 33.81684925264352 M296.9207646258972 34.439952395925346 C203.88936522586124 33.26310113317658, 109.57729764516841 33.570151409978024, -0.7208730575982707 33.72372842678641 M1.674868082627654 33.93865591898169 C-1.2907062314227735 24.708016607510643, 0.7594292022510852 17.707962394306204, -0.92783840931952 0.31214373745024204 M0.052322772331535816 34.05398261505719 C-0.44418009209730314 25.14821860264806, -0.033522119999906286 14.580882133879072, 0.39083355385810137 -0.07352171558886766" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(278.94846946963287 833.6767133324811) rotate(0 137.50000000000006 12)"><text x="137.5" y="17" font-family="Virgil, Segoe UI Emoji" font-size="19.083617711452316px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">this product dont have stock</text></g><g transform="translate(500.5721744336686 896.0678871853065) rotate(0 45.46391278316571 18.185565113266307)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.17327891740483536 5.926760336061113 C0.5268665654269594 4.511410468427604, 2.358327153560583 2.445720629550779, 5.286728580626196 0.614669846355658 M-0.3313980359258005 6.2655461129295755 C1.2854138376411384 4.460416869757921, 2.9163343223988294 2.664839741164588, 4.721939949648923 0.10266394241128501 M0.22069314057935352 10.85876749944645 C2.1021778346732427 7.897825102835731, 6.560356872272736 2.458011027627734, 9.973744505596292 0.7196405361488223 M0.8874707446526395 11.280493721037685 C3.6118843140100703 8.391678056577154, 6.66161308071622 5.002068396454806, 10.401102434796226 -0.6857590538367866 M0.4841778156766434 19.90765740806299 C2.5209694406561254 15.247794585377957, 9.202882512070168 9.203188600177569, 13.722005588471372 1.9697264383477142 M0.8444843980902572 18.266697095614546 C3.7451513072263376 14.378607474741269, 6.862402522284878 9.728434004612408, 15.063821230552573 0.7525853400048783 M0.902760101687095 23.09322572471118 C8.026389968340307 15.409569989033052, 16.08390499874307 8.231611846448377, 22.128659334311152 -1.6880516713321683 M-0.3288741063141014 24.878371298960506 C3.8740053434482657 19.787313469840495, 8.844557197320107 13.611911746625653, 22.150620329471195 0.39114569911505015 M0.9200345641513721 32.12894162512218 C5.912523646671287 23.15765118907612, 11.044486732709485 16.28179206892615, 27.191561408948512 1.7973475879070104 M-0.7221754211420759 31.010741525095156 C6.342382097223655 21.544998895196134, 14.23682467296164 13.947611407188727, 26.97160869804433 0.4600395321857871 M-0.787195680355758 36.217849327756696 C8.824200336297503 23.194820887448834, 17.828745670908603 16.028891355522532, 33.765249303958214 -0.9550159404740448 M1.085859888540476 36.48321551786982 C9.871154209464578 25.26248771828962, 19.14831196058755 14.756369313762253, 32.37482358370612 -0.19495822943158103 M5.650467975702501 36.81954535518436 C17.34852205539363 25.35020590847298, 26.707742805487275 12.280266263846617, 36.085883769953 -1.4693534671235362 M4.747192686129726 36.81804238774477 C17.309193678167453 23.764581225491284, 28.18449764629962 9.9874113715499, 36.97176143042867 0.7311953540053686 M12.735575166976853 36.788031817648026 C20.17886777791209 24.457166819345876, 29.14396588118258 13.66878053134765, 42.95722104850762 -0.3883238985807651 M11.178770799635751 36.28441589535347 C18.917108093574463 26.38588598829967, 29.37174583599142 14.580734668419804, 42.91710011064612 -1.0661154111520403 M14.038271019080035 35.35886312949951 C26.19822063561721 26.99684635656775, 36.214156146023036 13.507277575574111, 46.43964064023483 -0.3728571954939319 M15.590723485530667 35.79187116793837 C25.886850465517014 26.127942365323413, 33.15369997124475 17.068390594966058, 48.191476693330586 0.5052617898386167 M21.4777371195963 37.96635558942228 C28.69267644401077 29.56080415579661, 35.19183798227604 21.330389075423653, 55.03611753670937 -1.0773310144023291 M20.361552399758096 36.61374427957355 C34.43247709906855 22.721022147417834, 44.96154350750287 9.24241416609306, 52.381209675916196 -0.13467936167132777 M27.29151443110991 37.570216121099826 C35.50442052012612 23.407851927186176, 46.413914557026786 10.224551070911346, 58.381249988544 -0.04939406595416429 M27.601204510761683 36.620050991833146 C32.91234850956735 28.845470196841404, 41.68422183181296 20.178760551362004, 58.96107675237508 0.7683228240605438 M32.004826204233595 37.98217101388392 C43.911505668531134 24.36619921494683, 51.9795504173895 9.1485614674976, 64.42723173731346 0.29485724331126306 M30.714145012513526 37.51036549445954 C41.62638413594773 25.71736203001617, 50.00163059704473 16.74060004141143, 63.07403704514135 0.23387140338555668 M36.96049118054213 35.64549886123529 C45.929232387424435 27.58453467814926, 54.51930198409083 16.08662916873072, 68.13287978363051 -0.22894454725425106 M37.52302052744778 35.49960334380409 C46.38469882314324 25.82041272323561, 57.03144230931564 13.340173517025029, 67.81400887318715 -0.44666255895386797 M41.007951360648235 38.73520720250572 C48.62225628628454 27.641068987898834, 55.69523629931895 21.1440819367278, 72.6496066190699 1.451385405810015 M42.551436874536535 36.3244481046092 C51.36809742223696 26.02315647840691, 59.72408270484283 15.779700440869657, 74.00559198394659 0.22093336839361655 M49.68924423612669 36.182855881155916 C57.63622386781005 22.17186263008386, 67.48005023448476 10.165444469716086, 78.01044799424437 -1.235239108144171 M48.80368130121395 37.17442470822621 C54.77145208883253 27.60078222548234, 62.39601841015521 19.85096332329016, 78.4868453213918 0.9401396251704028 M51.92803055759022 36.77673368653767 C63.362436213849456 25.03425442827842, 75.48229285587807 11.870901843914723, 86.31603515072868 0.5216480043439162 M52.04750025145212 37.69832609439753 C64.32365867558734 22.718966353983763, 76.9801229022334 9.129268770148151, 85.8890092579569 -0.4452219822721588 M57.21556656661359 38.18668171211169 C65.38257846858875 25.74700529813095, 72.73374784997965 19.842319153694714, 90.42362258913556 2.0142417826260584 M58.59382159768519 35.9352865694745 C67.56183359416421 25.88413110314395, 76.11693673170184 16.942255361577832, 90.91928336261401 0.055438360808338416 M64.29973176380955 38.06426999722977 C72.23264523996407 27.69689118405876, 83.33161453422471 15.170622163474789, 93.16488321406828 0.30541831083128557 M63.579532408885285 37.32120844819953 C73.61524739438667 24.96942761844781, 85.61072792458926 12.156841735652819, 94.17237154582577 2.7746805764315496 M70.37100114075284 35.067620885352625 C78.32283647530434 24.347059963459046, 85.94545093638382 15.59767542850847, 94.65917221815855 10.310073038756947 M68.74720118248652 36.61983541192396 C75.76025766771804 26.94145547092822, 83.27199505220653 19.642449612785033, 93.03749594358325 8.374623014785449 M75.75147294805622 35.96158566583204 C82.06843205290613 31.487259011969634, 86.85992793900385 21.71014428691685, 92.77979445894314 14.046396238972633 M74.72785561246103 36.929179150390205 C81.19995689376275 28.1461262678151, 87.83076920052835 21.689116451519077, 92.75841429428263 14.004467911330252 M81.08084092729445 36.64256793212871 C86.74201348116824 30.993899987145568, 91.3317113668542 22.119014276275507, 95.25061902400631 21.019016710161836 M78.82070482124294 35.61259271994959 C82.97138606679513 32.4967463382322, 87.00380905353492 28.071487515537484, 94.12378450386751 19.589895090140075 M84.2779579063705 37.01561935206086 C86.62263527936423 34.60893843603655, 90.63559431400083 30.591018248513457, 93.0417053746997 26.128389317550486 M85.10377968804117 37.05884237719842 C87.42405758890186 34.2136014892161, 89.37208557434528 31.84299810914697, 93.3113483943517 26.466590938958127 M90.91140995489054 35.93870992092097 C90.76525846802717 35.722352288030905, 91.77066461052031 34.55126546666562, 93.8228931199532 32.2420807559073 M90.5889633010383 36.11628181948008 C90.92313675313288 35.50922798573568, 91.78049471317593 34.34861264147239, 93.78247820336894 32.373642316696426 M0.10444548165822454 36.46192329856294 C0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294 M0.10444548165822454 36.46192329856294 C0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294 M5.458079062382413 35.66775489400338 C4.845755643156841 34.4790866954558, 2.524582836855311 33.36637146402766, -0.1465964664618351 31.016005288765413 M5.913115186596943 35.916506853580586 C3.8709132416343706 34.129898965929904, 1.6647445096795521 32.928908406663695, -0.45004543297987964 30.430942496240718 M12.331776332139798 35.93783190645008 C7.016575251665989 34.31978167626398, 3.203267449707393 28.378569325811185, -1.4275945619744836 25.826808587087434 M12.68641881200654 36.48497755400567 C8.655613241059099 32.92782273209093, 4.004114284304841 29.68238541612503, -0.2729857706529675 25.547774467988056 M19.051709203873692 36.24665192719743 C11.42787898285343 31.1409751564346, 7.919064940873906 27.19898279956223, -2.0783647080714918 18.701046032089444 M19.533420672533033 36.94095558226303 C13.954995278626884 31.866335645209787, 10.802964404784138 28.533308323654527, 0.0808168187905931 20.55252919178799 M25.720243824347264 35.84057326514939 C19.121345305020203 31.203429183663047, 12.585834824456406 24.33567246701027, 1.9828372349979473 13.24991172631195 M24.7116761847207 35.27204085134635 C17.385782082506843 30.608658486652573, 11.625371847006235 25.44647874876629, 0.9221168126927806 15.214406633609144 M32.51786813673794 36.792925229381886 C22.834208189019208 29.416572952383333, 18.42085224002058 26.232473140907008, -1.2631091381172999 10.372494773990235 M31.32953679257303 36.85061104511109 C20.53103867733696 27.366156255227093, 11.127267686577643 19.634051272002438, 0.5149223218922154 9.729100893302581 M35.69047303919393 36.36342814082017 C20.921756903192033 23.148026768051974, 7.088522443026903 11.042047414149863, 0.1262597666220615 4.868767237011566 M37.16643221259761 36.388687509873115 C21.61764798199487 24.14298407265972, 7.285472012799232 10.880138281418986, -0.1657408037124326 3.709236620646193 M41.57114712575453 35.211429061351495 C30.79026617480801 23.406173158046503, 14.610896233559071 12.691334928918813, 2.335138177587009 -2.0915852847083123 M43.377075794693106 37.19420739541032 C32.3896728872815 25.806870586751128, 21.379775546539722 16.598481467859017, 0.7287198576091888 0.48969106594634915 M47.23470962479072 37.86598859089161 C36.55279066417422 26.758795488807507, 25.642060507425853 16.566458846963474, 6.783465920153468 -0.03395530533909463 M48.739747460589875 37.54736045202906 C41.12430903617064 29.149488304327395, 31.00135774404907 20.938383491301025, 7.508228262092381 -1.0309475720760193 M54.69933913967347 37.75655795435626 C41.379463197038255 24.666389212294632, 28.161110048534336 12.529653433466265, 10.441979330910241 -1.1738482068890947 M54.451672444518266 36.63751611753572 C45.11679139122971 29.04973934533355, 36.728339865272645 21.061609082093224, 12.85284081468532 -0.4791649000386018 M59.12820238944207 36.243656088632704 C50.55913210113796 29.780719995436677, 41.98883360883309 20.652691091427787, 18.90157950389662 1.0152705725289533 M61.92440003387694 35.50015060420817 C48.376524747168546 25.51762224830783, 34.34819340712977 14.343010671712722, 19.475864615286675 0.3318824818364927 M67.48398714724475 37.08895643964618 C50.238289807091 21.68852398385586, 36.88352524805656 9.891486331135305, 24.990188587260818 -0.976409896159721 M66.0320865076735 36.39318369586229 C55.177802613594395 26.71759564209701, 42.04169339859019 15.11436867046795, 24.33446375540403 -1.469768455134881 M74.50407888212078 36.766259194283954 C57.270845061364284 23.269818869388452, 41.31472663499705 5.927659099292448, 30.747926425042124 -0.3840738010678457 M72.6804217783066 37.01420097977596 C62.24622881500631 25.41516418362153, 50.11679863247487 14.508273798909272, 31.198585959936054 -0.5976649361748265 M81.35509369744113 34.931578077461765 C71.23411999709687 26.14899246565166, 60.19660027393721 19.602472682217734, 36.08164349561151 0.30180820772032035 M80.05491233000657 35.87679064375554 C68.87389033377806 28.45686319591566, 57.61414058046298 19.09650543002353, 36.89924552561309 0.7693984140230228 M83.83450707157682 37.45381743909536 C72.47437938317908 26.22773179426622, 60.235450454071284 11.150126056126709, 40.966549652339964 -1.6338438948794867 M84.41625995950382 35.24747056310741 C74.23772560602877 28.17952441183241, 64.07834491775897 18.392315975971773, 42.123902061665504 -1.075693341734972 M89.81757301834435 36.789390312081494 C80.287132903029 26.79283570354827, 70.99843347318927 17.280758116546366, 49.64784286426678 -2.100042421979996 M90.14103093647421 36.42655635861895 C81.35858520115417 28.310298480118334, 73.26762791931868 19.357178041474118, 49.21183923049196 -0.4314483661709154 M89.64772828477803 30.484128122392864 C82.45112105955909 24.89386145445192, 75.79671805593158 17.789429933582472, 53.29524215454015 0.27035482234402863 M91.70581020131144 30.156321106653483 C80.04004024429061 22.993795640760446, 71.43165246207708 12.291213809939215, 55.40244768610003 -0.8114312504689458 M92.67770311603107 26.669079326869273 C78.77982683930338 17.310621285252406, 68.27658910778011 4.0744862137521025, 61.978164242199384 -1.5683832250201526 M90.82206213002809 25.02304397694143 C81.38564809281493 15.37579261426356, 69.28115154616111 6.980144937324926, 60.4041517158884 -0.7270407823511782 M92.6034104904744 18.68971077542647 C84.51306907841125 13.160289137129269, 78.20223996078454 10.947607731156284, 67.32025648061546 -0.6047740891567912 M91.36376976935446 19.99246159478917 C85.92860742293006 15.885114591442798, 79.35551258088826 10.968282812622363, 67.64269217908742 -0.31117314901123905 M91.70325150214737 15.385057029951703 C88.26734129762269 11.535662838564349, 84.36530093782407 7.902974056152573, 74.70102559815933 -0.7394446701501565 M92.20049021918928 15.595167359974575 C85.12709624355112 7.967566980978734, 76.91494413336152 3.2516835053533413, 74.05650524742742 -0.38129485014277265 M89.88932532246365 9.554397210841927 C86.31680242360362 5.498622923889272, 84.14799310780596 4.650895842908723, 81.0327780013824 0.10997986401513749 M91.3540672763451 10.1132530226744 C87.18053213857112 6.098253167757369, 85.23590123928057 4.264733092891528, 79.10875403158498 -0.4510662271260414 M91.94336655079874 5.248401963464371 C88.99690573220613 3.6208691703443145, 87.80334434488266 1.3850811027111916, 85.45651023582168 -0.7520750587657744 M91.27384208045456 4.232693979270213 C89.24114205882104 3.1665622195677217, 88.02368007619651 0.8983498872736158, 85.62201111175663 -0.6592928023860509" stroke="#fff" stroke-width="0.5" fill="none"></path><path d="M1.174586271867156 -1.5460707005113363 C27.118742748464303 1.6834161959952205, 50.413216226404224 -1.919479361885181, 90.97451308550926 1.6532382313162088 M0.9062348874285817 0.8642510650679469 C25.0985692457893 -1.3254726374423837, 50.17008165133019 -0.29838122370604026, 90.1567249828452 0.20373453479260206 M91.68712762179466 0.2695192638784647 C92.99670256916117 11.529099737245643, 90.01200409475398 25.768838062785672, 90.12249753060432 34.381517641598975 M91.89089851914586 0.49450530391186476 C91.22343199860757 9.003582531374695, 91.81427242767518 19.301984519274537, 90.87054260908307 37.265500889512396 M91.13786170067878 35.02537130599717 C61.008743250676034 37.224461737968845, 33.70247598170355 37.54838121304743, 0.2720902319997549 34.43871908670167 M90.9751919144267 36.79211913177619 C60.559517760497876 36.53279177535703, 31.080699876405475 35.98700911987951, 0.5258173914626241 36.10243351885924 M-0.8370420578867197 35.5139539766858 C-0.9798263408422077 25.55694511080735, 0.9281791947603619 16.922013042414257, 1.030346130952239 -0.1619128044694662 M-0.10184073727577925 36.41690118739257 C-0.5795824076421916 25.505670132232652, -0.4618578995950878 12.715734052353493, 0.6752524645999074 -0.8882812978699803" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(513.7061936821401 901.6245876365842) rotate(0 32.32989353469566 12.62886466199052)"><text x="32.32989353469562" y="17.25772932398095" font-family="Virgil, Segoe UI Emoji" font-size="20.20618345918478px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">create</text></g><g transform="translate(397.54125713774556 898.5936601177054) rotate(0 45.46391278316571 18.185565113266307)"><path d="M-0.6514978054910898 -0.4505688603967428 L89.51836535515876 -0.05385351739823818 L91.36468723597618 36.12078564649323 L-0.38322308100759983 37.80978690868119" stroke="none" stroke-width="0" fill="#fff"></path><path d="M0.6703169289976358 0.8684796448796988 C28.12387672804778 -2.4033413198097673, 60.857215961302025 -0.7811367180450882, 89.73749583023282 1.5933087822049856 M-0.19997741002589464 0.890440640039742 C21.41093302067493 -0.6292326650917931, 41.90696288954714 -0.7253886959851189, 91.38542587957026 0.8247203500941396 M89.7393054272482 0.9443663116544485 C92.26390328279138 10.40997590862365, 90.95333751311898 23.277538249123126, 89.47380684869977 37.43361142685512 M90.27908666333796 0.7244136007502675 C90.75712896745331 9.17236501226302, 90.78360907595284 18.5410594123622, 90.33450965485217 36.418767209517455 M92.82838439005108 38.24610999634365 C67.48249654149315 35.39093048473516, 45.762213322451814 36.8023234715096, 1.3728474918752909 37.09241053869823 M90.4811077555144 36.85568427609155 C59.36646532484349 37.49997908306819, 27.060709422187706 37.24808994365436, 0.1320082126185298 36.539561535584426 M1.0152515713125467 35.57972905447582 C-2.0007362929545978 25.59053664270988, -1.006923553105507 13.749268654161714, -1.2785177286714315 0.670719301328063 M0.5679205833002925 36.46560671495149 C0.129152770621548 25.017458336028, -0.5601244908740421 13.47351241834718, 0.8530245898291469 0.34997564274817705" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(413.20104931861374 904.1503605689804) rotate(0 29.80412060229753 12.62886466199052)"><text x="29.804120602297502" y="17.25772932398095" font-family="Virgil, Segoe UI Emoji" font-size="20.206183459184757px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">cancel</text></g><g transform="translate(123.5 664.626766204834) rotate(0 58 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">initial stock</text></g><g transform="translate(156.5 714.626766204834) rotate(0 39 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">address</text></g><g transform="translate(102.5 776.8802865147591) rotate(0 65 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">next restock</text></g><g transform="translate(260.3303338509263 774.2055955821155) rotate(0 71.39795918367349 18.45918367346934)"><path d="M-1.2484422978013754 0.4418428298085928 L142.99115605792986 0.31856212578713894 L144.1082922383307 38.517493602078446 L-0.5765381511300802 38.84527414683629" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.15676417388021946 0.8365626279264688 C38.09583842169913 -1.990887723892205, 73.31777657330875 -1.9641484245948722, 142.08395975596295 1.0458698812872171 M0.20124074537307024 0.09201990347355604 C51.19247709035457 0.3875205088446718, 101.8129525176725 0.740816222507773, 141.94683207991557 -0.24418060202151537 M141.52414387232648 -1.826649134978652 C144.44298352779083 6.142032914108836, 141.94406767667465 16.942557385681674, 143.48326790100919 35.967706754993685 M143.16560949805216 -0.6394297303631902 C143.0188989069756 7.62597010543341, 143.3161583271321 17.242157104010772, 143.32505743625597 36.99036265276749 M144.40295946366177 38.39912755806375 C111.93738102340238 36.09874949749803, 78.74960981886076 34.246395626629344, -1.75063213147223 36.154749050926455 M142.44311921718554 36.950589903820344 C103.79005482565348 36.60013501875156, 65.4684389891141 37.47296388976329, -0.16323322337120771 37.48744199537117 M1.0025707837194204 36.01266826708246 C1.201585615141393 27.876006428119986, 0.20987572715997826 14.70216845695536, 1.487218951806426 1.5460226479917765 M-0.8892952827736735 37.74577257894356 C-0.2542080628432866 26.256092076693463, -0.02051866526981555 15.492137702067879, -0.3287605373188853 0.40010308008641005" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(414.4782930345996 773.1647792555849) rotate(0 17.75 17.750000000000057)"><path d="M0.31856212578713894 1.3123738709837198 L37.09912625513971 -0.5765381511300802 L37.42690679989755 37.21813785471022 L0.232384717091918 36.942678743973374" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M-1.9333232101053 0.5553250070661306 C8.465159680554645 -1.016302354731597, 21.789357064012442 0.8806958719110116, 34.547268146649 -1.3192931059747934 M-0.5544278444722295 -0.786480518989265 C11.163272515265273 -0.8110162904998288, 22.484628690127288 -0.803770183636807, 35.032643782906234 0.2480446668341756 M33.674459213390946 -0.679310405626893 C36.183179762787184 9.079949805000798, 34.225109186596235 15.447766763065012, 36.23402434028685 35.588929986581206 M34.51925348024815 0.38474505860358477 C35.30172629936133 12.491542582912372, 35.34499775154982 23.21021468760446, 35.413136440329254 34.509111133404076 M36.09533100761473 36.72306857071817 C20.740479190787298 34.06463470930699, 7.731385812070219 35.19650003189687, -0.4926315601915121 35.68195799551904 M35.051853376440704 35.014334169216454 C26.527119230525567 35.12910712399986, 17.273948614578693 35.09469482937362, -0.546799254603684 34.95318102557212 M1.3034743014723063 35.50800636969507 C-1.3637668627267703 24.557655810704453, 1.7067842346662656 10.700114928837866, -0.3675018008798361 0.32056972943246365 M0.5225893734022975 35.41164350230247 C0.6497707850625739 27.678237716527654, 0.10637422272469854 19.88977535879239, 0.2209214149042964 0.09761884529143572" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(415.4782930345996 774.1647792555849) rotate(0 17.5 4.5)"><path d="M1.3123738709837198 1.5991262551397085 L34.42346184886992 1.9269067998975515 L36.71813785471022 9.232384717091918 L1.4426787439733744 8.545650338754058" stroke="none" stroke-width="0" fill="#000"></path><path d="M0.5553250070661306 -1.9065839108079672 C11.252025987487286 1.3842014430556446, 25.113008813001215 -0.6144002915825695, 33.68070689402521 0.4024814907461405 M-0.786480518989265 -0.20113213080912828 C9.972983374726027 -0.05013085645623505, 20.802299143746495 -0.2733064715284854, 35.248044666834176 -0.6358872475102544 M34.694310317467895 0.4533344929106534 C35.39118953519501 1.4502106228843332, 34.48003704422154 4.086326731648296, 35.04001849396154 9.33272201763466 M35.17313527637161 0.012925734138116263 C35.24598628846929 2.1569111302960664, 34.686307154279206 4.2099378834944226, 34.55410001003183 9.361584246670827 M36.22306857071817 7.742977136746049 C20.15803749905899 8.340564630320296, 8.198572452180084 8.611551366141066, 0.18195799551904202 8.29440169967711 M34.514334169216454 9.424682247452438 C24.22398782754317 9.41222333018668, 13.576796583831307 8.296349427150563, -0.5468189744278789 9.50128539185971 M0.003602866362780288 8.313962197769433 C0.6242612967174501 7.4032747775316246, -0.018328686626627982 4.249753361474722, 0.14425637824460857 -0.8003657544963062 M-0.03976042396388946 9.424574839090928 C-0.11895811121910813 5.735381677234545, -0.25191538643091915 2.210085219098255, 0.04392848038114605 0.07167647830210627" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(422.9782930345996 765.6647792555849) rotate(0 3 7)"><path d="M1.5991262551397085 -0.5765381511300802 L7.9269067998975515 1.7181378547102213 L6.232384717091918 15.442678743973374 L-0.4543496612459421 14.087501997128129" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M-0.5719751732423901 -0.21358758341521022 C2.628144755959511 0.3388521343655884, 4.342948027141393 -0.4124476820044219, 6.120744447223842 0.0552119420841336 M-0.060339639242738496 -0.25472588622942566 C1.6624021626077594 -0.20536322303116322, 3.3311058213002984 0.12160223118960856, 5.809233825746924 -0.27399737024679777 M6.705186988972127 0.48114467356353985 C5.2067497305758295 4.537520166113974, 6.386029183138162 11.00969861429185, 6.517567582987249 13.104798377491534 M6.020106697548181 0.37039734823629256 C5.913092201314867 3.8222652555443353, 5.80189099546522 7.951337581034751, 6.562464383710176 14.518266073893756 M5.622893141023814 13.474810360558331 C3.438069146499038 13.851062014456838, 1.1865198025479913 14.091279455777258, -0.2116794900968671 14.019333534128965 M6.1274046742357315 13.951030032988637 C4.72169645531103 13.911566394753754, 2.937908345181495 13.806814357824624, 0.15038561755791308 13.86414513802156 M-1.0671699145808815 15.041053266264498 C0.9909726524911819 9.141667467355727, -0.34849446171894666 4.424796049855648, -1.2450133958831429 1.1583673248067496 M0.6604497496969997 13.769867623876781 C0.20690964378416532 9.813909449148923, 0.08148247815668586 6.570061698462814, 0.11149674402549858 0.4593308548443018" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(437.9782930345996 765.6647792555849) rotate(0 3 7)"><path d="M-0.5765381511300802 1.9269067998975515 L7.718137854710221 0.232384717091918 L7.442678743973374 13.545650338754058 L0.087501997128129 13.808903371915221" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M-0.21358758341521022 0.3137609643861651 C1.5755149215459823 -0.22862203868106007, 2.0442181421443824 0.17794196454808114, 6.055211942084133 -0.06434365678578613 M-0.25472588622942566 -0.07325418060645461 C1.2147912391461433 -0.12813893727958203, 3.0090999866835775 -0.17869824640452858, 5.726002629753202 0.27294081682339305 M6.48114467356354 -0.6654624143615364 C5.016244625877589 3.4359384875744583, 6.014699262212962 6.361810481734574, 5.104798377491534 14.122479893825949 M6.370397348236293 0.05039671408012514 C5.553649669922889 2.766150380577892, 5.360242101587355 6.216374128405005, 6.518266073893756 14.621652925480157 M5.474810360558331 13.770914511196315 C3.8357706550508737 13.814499846044928, 2.097388794086873 13.750609824005515, 0.01933353412896399 13.6490259392187 M5.951030032988638 14.17072239452973 C4.409594318736345 13.86144115846604, 2.7737302559427914 14.175866552405058, -0.13585486197844146 14.149957438651473 M1.0410532662644982 15.082215853594244 C0.04090840185061101 8.6303167283535, 0.22383836472406987 2.5301225820556277, 1.1583673248067496 -0.4508642533794045 M-0.23013237612321974 14.280072156060488 C-0.4245848945528269 9.223019867669791, 0.08070310138165948 4.248246498499065, 0.4593308548443018 0.559694189298898" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(431.4782930345996 782.1647792555849) rotate(0 0.5468580335904107 12.372694713063595)"><path d="M1.0458698812872171 1.1850396152585745 C-1.0414710963563993 7.368292424916289, 0.4776253729173913 17.55743097220082, 0.2855211440473795 25.39114431105554 M-0.24418060202151537 -0.841840180568397 C-0.409980257707648 6.118116722949781, -0.4678353140735999 10.822574113304727, 1.4098027227446437 25.587229606695473" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(421.9782930345996 781.1647792555849) rotate(0 0.17159971734508872 13.353806471917835)"><path d="M1.1850396152585745 -0.952731853350997 C-1.3166319093387575 6.130649340911768, 0.2890364058129489 11.244471519081854, -0.608855688944459 26.42703896202147 M-0.841840180568397 -0.46735621709376574 C0.15024389981292186 7.202163689234295, -0.8711819410510362 16.584683693223635, -0.4127703933045268 27.660344797186553" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(441.4782930345996 782.6647792555849) rotate(0 0.12265311462903128 12.342205943074134)"><path d="M-0.952731853350997 -1.3192931059747934 C0.9324330047564582 6.91740478031803, 0.7120757622038947 12.366762054911815, -0.07296103797852993 25.097735738381743 M-0.46735621709376574 0.2480446668341756 C-0.3755162441404536 4.584133002269082, 1.4928107829997317 10.069517143503765, 1.1603447971865535 26.003704992122948" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(450.4782930345996 790.664779255585) rotate(0 -17.07710979739204 -0.6478455420583487)"><path d="M-1.3192931059747934 0.4024814907461405 C-11.793938991241157 -0.37644327102229, -25.064813285320998 -1.7349254530481995, -34.40226426161826 -1.6981725748628378 M0.2480446668341756 -0.6358872475102544 C-10.283110520616175 0.7509016089327634, -19.652342299558224 -0.49855631662532685, -33.49629500787705 0.3436747668311" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(449.9782930345996 799.664779255585) rotate(0 -18.64784554205835 -0.14958731250055735)"><path d="M0.4024814907461405 0.18403980694711208 C-13.15231382268481 -0.987076467256993, -27.443867312176152 0.07876694083213809, -37.69817257486284 0.5116387959569693 M-0.6358872475102544 -0.913324567489326 C-6.864246189380065 -0.6076583313010633, -15.883079464891926 1.024633036069572, -35.6563252331689 0.5246697040274739" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(305.2282930345998 779.1647792555849) rotate(0 24.5 12.500000000000057)"><text x="24.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">never</text></g><g transform="translate(106.5 704.0493012070656) rotate(0 253.5 23)"><path d="M0.5629302881658077 0.4079400517046452 C178.50822254782543 -1.1284281096719204, 355.5737197330222 -2.2864198289178312, 506.6874665878713 0.09966313615441323 M-0.2259759318083525 -0.08420432098209858 C129.41039337413386 0.7642480915002526, 258.3802698364481 0.5654349987916649, 506.7991286981851 -0.2586099077016115 M508.3695134278387 -0.21732479892671108 C508.4300949931331 12.72659373227507, 507.36687479021026 21.997349803149703, 507.16306815110147 45.46272181905806 M506.3117071958259 -0.5819502891972661 C507.6103150845505 16.157887718826533, 507.20355114350093 31.459023143537344, 507.2516631754115 46.03314028959721 M506.64354089722036 45.7626497246325 C369.818456978444 48.33715922125801, 231.92759165707972 47.7881747651957, -0.6082854129374028 46.65483209863305 M506.6009722579271 46.131862397119406 C367.88999762414016 46.32800570898131, 227.92310143578794 46.39965236358717, -0.14168663136661053 45.84461730234325 M-1.4572384003549814 47.64517646469176 C-1.7741691346652806 29.45925877224654, -1.134138452578336 10.879597564786671, 1.1999752279371023 0.004227751865983009 M0.8556497069075704 45.06700213532895 C-0.7358073994703591 31.075472213700415, 0.6821643009595573 18.00845992360264, -0.5133905140683055 0.1264954088255763" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(554.5 704.0493012070656) rotate(0 29.5 23)"><path d="M1.4399882908910513 1.6747896019369364 C14.44411287708208 -1.0540664759930225, 31.312409445084633 0.08672654950059944, 60.182067489251494 -0.42022634111344814 M-0.48541111033409834 0.7202930627390742 C14.766581410449 -0.5222067131567746, 31.2936565194279 0.18298242549411958, 59.47826847154647 0.4973900197073817 M60.33726320229471 -0.9679620321840048 C58.955062397141006 13.081898241676392, 58.25716239990666 24.31388169974089, 59.377169167622924 44.33289032615721 M59.064271536655724 0.45134590845555067 C59.916039326880124 10.913379285484552, 59.75225920388475 22.46561022568494, 58.51735865790397 46.419775682501495 M60.8746652957052 45.96848898567259 C34.37920422675088 44.180458812033756, 11.529043069295582 44.72450730017386, 1.3988604303449392 46.39183318056166 M58.09078085143119 45.082479435019195 C47.03540408024564 45.42535781544633, 34.06474124491214 45.20714798253961, 0.516704467125237 45.84133260231465 M0.3895358797162771 45.28644978441298 C0.20722997648641467 28.793598146550355, 0.8689529345743359 8.578694888204332, -1.6127830389887094 1.3499249760061502 M-0.4392999140545726 46.55384867172688 C0.6603878494910895 36.177095426991585, 0.2929620203189552 26.439306835271417, -0.4428530363366008 -0.9589170040562749" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(582.5 715.0493012070656) rotate(0 0 10)"><path d="M0 0 C0 5.064523076638579, 0 10.129046153277159, 0 20 M0 0 C0 7.689090663567186, 0 15.378181327134373, 0 20" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(582.5 715.0493012070656) rotate(0 0 10)"><path d="M-3.420201433256687 10.603073792140915 C-2.5541169789826452 12.982621273599525, -1.6880325247086034 15.362168755058136, 0 20 M-3.420201433256687 10.603073792140915 C-2.105289487858032 14.21576467069487, -0.7903775424593769 17.828455549248822, 0 20" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(582.5 715.0493012070656) rotate(0 0 10)"><path d="M3.420201433256687 10.603073792140915 C2.5541169789826452 12.982621273599525, 1.6880325247086034 15.362168755058136, 0 20 M3.420201433256687 10.603073792140915 C2.105289487858032 14.21576467069487, 0.7903775424593769 17.828455549248822, 0 20" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(267.6680999904363 658.2573492283382) rotate(0 80.83190000956358 18.04547312311763)"><path d="M-0.829492712393403 -0.44271994195878506 C54.746856633182375 1.4969847018818763, 105.04351809728843 0.04768030000733403, 160.77218537899557 0.8697062078863382 M0.5018613012507558 -0.6531273247674108 C62.22906895276217 2.285433518406294, 123.10846490536001 1.1509210045303326, 162.04238201706562 0.5316224871203303 M163.5285316047341 0.4583688322454691 C163.5269597907669 10.74216141937428, 160.4010602970726 23.091194866488443, 160.57545470568243 36.574320955498735 M162.59721900551472 -0.9321080865338445 C161.531706711279 12.293581176044928, 160.33313178084956 24.47992088265446, 161.03478889196072 35.0948267945262 M163.27224587771002 37.3809858991938 C107.52870321908571 37.87890955959048, 55.126444358679194 37.529027612549925, -0.41045173443853855 35.17527316354088 M162.32094149320278 36.967041350266555 C116.832307267202 33.801135904600976, 71.5418208149439 34.93127373557365, 0.39777856785804033 35.260195321700195 M0.33078829012811184 35.572499020321885 C-2.196946777226705 23.47997957872268, 1.2370940672137554 10.271182442421328, 1.0614386554807425 0.7053387109190226 M-0.2031614212319255 35.28598195996008 C-0.18581865251117824 26.505558448482716, -0.45870579302364467 16.216974345879862, 0.6032687099650502 0.38389872293919325" stroke="#495057" stroke-width="1" fill="none"></path></g></svg> \ No newline at end of file
diff --git a/backoffice-product-create.without-stock.svg b/backoffice-product-create.without-stock.svg
new file mode 100644
index 00000000..04aabeb4
--- /dev/null
+++ b/backoffice-product-create.without-stock.svg
@@ -0,0 +1,16 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 827 838" width="827" height="838">
+ <!-- svg-source:excalidraw -->
+ <!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1cXFlT28hcdTAwMWF9n19BMa+D0t1fr3kzNjDsXHUwMDEws8TcukVcdEvYXHUwMDAyb0jyXHUwMDAyc+e/369cdTAwMDWDZVsyXHUwMDFhg4NTlSSVwlpoufuc862tv35bW1uPXHUwMDFme/7617V1f1R3W4FcdTAwMTe6w/U/7PGBXHUwMDFmRkG3g6dY8jnq9sN6cmUzjnvR1y9fxnc49W77+S6/5bf9Tlx1MDAxY+F1/8HPa2t/Jf+nxlx0/Xrsdlx1MDAxYS0/uSE5NVx1MDAxZYpSMX30qNtJhqVSglKSXG71ekVcdTAwMTBVcLzY9/D0rduK/PFcdTAwMTl7aP10MLjfutg9XHUwMDFl3V7q7fp95+KclHbHw95cdTAwMDatVjV+bD1/Kbfe7Ieph4risHvvX1x1MDAwNl7ctKNPXHUwMDFkf70v6uJcdTAwMTSM71xuu/1Gs+NH0cQ93Z5bXHUwMDBm4kd7jJDXo8+z8HVtfGSEn7g2r5+TO7ScXHUwMDFhu9xtdUM79u8k+TNcdTAwMWX9xq3fN/BcdTAwMTE63us1ceh2op5cdTAwMWLiooyvXHUwMDFivnwrTcaT2fSDRjO2XHUwMDA3qVx1MDAxZVx1MDAwZugnk6uINEKp8cV2kN6ulyzzf6enpumGvZcpWI/sh9RcdTAwMDPaZ9t6xsg/tyfn/v5jXHUwMDAxtCiVj1x1MDAxNmBcdTAwMWGo4Fx1MDAxY1xuo2W7fOaVT2nr/uFcdTAwMWOuvlxyT6rnV9HtqqPFcHA08oJrSShcdTAwMTeCTmBcdTAwMDfnwKGcMFx1MDAwZUJSorXKRVx1MDAxMjeCXGK1OJIopY6mhFwiS7lRiFk+XHUwMDBiLE5cdTAwMWSFy6K00Vx1MDAwNiReKadxRrVmmlx1MDAxYq3Fj0da7I/iTJCl5nRcbmRgXHUwMDAwiNGUXHUwMDE2xli9/O3AY2V+SsrV843Lp4tNxo9XXHUwMDFkY1JcdTAwMTFHXHUwMDBi4JIrVF/OxCTGXGZxXHUwMDE0o4xcdTAwMTFGKHAhlydXwFx1MDAxZMmlXHUwMDAwgSBhQlx0Nosxplx1MDAxY8OJXHUwMDEynEmKQDSaTWNcZoh9TLIkMVx1MDAxYi9lt1x1MDAxM1eDJzubjDn4yJLgqIZcdTAwMWFcckZMXFy17baD1uPE6iRYxFx1MDAwMXcr6cmK/FbQScTN5H5Je2epXHUwMDE1NCxy11v+7SSk41x1MDAwMC326+m421tfXFx8XHLlebygXHUwMDFhONdcbv6FqW5cdTAwMWZccqr88PruqP+wee01fPde7T+uOjFcdTAwMTTTXHUwMDBlzj9hgmhjhGRcdTAwMTPE4Fx1MDAwMokhXGZnilx1MDAxOSZQ8pYmvsCEg96RRnJRQ5miXHUwMDE5Vt1cYkdcdTAwMTHDjZRcZlCBJUzzXHUwMDAyXHUwMDE1nFx1MDAxMEFcdTAwMDX9XHUwMDA0K5+nvYZCLsaUNWuay+Lie3DTeJRcdTAwMDP1dNwk/U50zDvX20dq1TEmOXEk2neBtlx1MDAxNWBKe1GTXHUwMDFkXHUwMDA2aDSB419ihMjF2Hu1V3JHMyascZZSXHSAWYi9rb2UXHUwMDE55IP8ScS37Tb8T9HfZ7hGUdg8vj+Ka92doXfsnZ1cXJ2378a/Lps7z7JEJlDCXGZ3lCRCXCJGXHUwMDAweVx1MDAwMzOLy4iZXc5UXHUwMDE4MFx1MDAwYs2Pgtdnk25R+L1cdTAwMDBaXGJcZoy0mI1aXHUwMDEzQc1cdTAwMTUvhFx1MDAwZWCoy8eznq9ds0Dv9FutXHUwMDE5tNqgXHUwMDFjY3I7793b26Du25j8Sy/sev16/GU9i1x1MDAxYVRmU2FxNGeShS8m/SlrOjV7XHUwMDEytdAwk5r0t5S/see3y4O76Oh7Y3ujflnru1x1MDAwM3mzOiDMVn6hqYPxK9pkglx1MDAwNpvrsbv17F0ohymM7YwhXHUwMDA0TfrShJ8y7qB24Fx1MDAwM1x1MDAxOEbtw2RIxdvKj7FcdTAwMDGXXG7Mu4m3fN2v+FE9XGZ6scXhZ3rfeczARcilXHUwMDA2qrtBiTekuOdcdTAwMWSHRzt3Xo9cdTAwMWRcdTAwMWbXn+4r4v74cXNcdTAwMGZWnVx1MDAxYlJcbodyJTVIVFx1MDAwMlxyXHUwMDEz1Fx1MDAxMEo7ylCJxlx1MDAwZT0mQvTSuMGpXHUwMDA1XHUwMDE54FBEXHUwMDExnHu6XGI1KEV2XHUwMDEzXGaw6eeRoyg3zjtBvKKkYLnWXHUwMDE2tUdgPGp0XHUwMDExc/tMXG5f6man591s1jZvvOZI0v1WfLrypFx1MDAxMFx1MDAxOFxyXHUwMDEwKTlcdTAwMDNmgICeYFx1MDAwNXp/XHUwMDBlhlxiXGYkSImIXVx1MDAxZSsw7sXxMfqXNm8sYSGDgVwiRlx0WvpUXHUwMDAyd3VNRi9Eh2tFeSFz05dMS47PpYr7UYNK68DVe1x1MDAwZk9kN4hP1UFZ7lx1MDAwZYKVp1x1MDAwNWdoXHUwMDBlXHUwMDA00YRpUKizk7TQXHUwMDA2XHUwMDAzW2lX21x1MDAxOMp0fpbm3Vx1MDAxMTQ4inBElqKSoVwiLZS9pFxuI1x1MDAwN1x1MDAwNob9XGa0iN2RXHUwMDFmrSgtUm7stFx1MDAwZkXsMilJi5tcdTAwMGJKutuMnV27rHtcdTAwMWb34CiEQVhfeV7Y/CRIyqjkikuYTC1xQlx1MDAxZCWQO1JKxdRcdTAwMTJcdTAwMDNcZmGzXHUwMDEzoJVGlFx0kEQuwlx1MDAwYsmQv1rTn4FcdTAwMTZHbvsz80p3/uZcdTAwMTl/uFx1MDAxZFx1MDAwNNFWtXFWuqrvd9Lff07yP0ku8ck4XHUwMDE0XVxyx9pcdTAwMTBcdTAwMDNcdTAwMWGXjqWi9tdcInPGgopcdTAwMGbOLf1e9z3uuTmUq4fdKNpounG9+Vx1MDAxM+WWMHJhRtroP0PA1Jzii1x1MDAwMS6UXHUwMDEwRcx6dnJprqS+0b+Rn7ahoIUg4t/oauNsp7s13Nq54yV26zH3Uew3/VXXVaVcdTAwMTnGplxmQDFNTDpcdTAwMTR/9jekg0uErlx1MDAwNiVcdTAwMTj1seWV5IV2OJEoTpRTXCJ4VlFcYohDXHUwMDAwJVx1MDAwN2NcdTAwMDXKwaRs4qu7gTE02odPqMfPx1x1MDAxOaTMxDTOXHUwMDE4yjFDZ6+4X7u/t9V6uvBcdTAwMGavejzcq9/5sv1EWiuPM45xXHUwMDE25Vx1MDAwMiM+XHUwMDAyVLNJXUab7YBGd1x1MDAxM1xyo226WGL1kVx1MDAxMkeg5UVPXHUwMDAxXHUwMDA0XHUwMDE3TM/iTIDDXHUwMDE0Slx1MDAxOVx1MDAwNYGDUTHTYGRzObaqxFetxYgykVx1MDAwZjSJJOecm+KCdnO8Xeme11x1MDAxYaK2vzna3e/E/bvhyudcdTAwMTWMkVx1MDAwZUhEXHUwMDEyKGH7e6byXG5cdTAwMWFcdTAwMWNcdTAwMWKqo3okkU1++8e7XHUwMDA1TTjJXHUwMDEzgGSMKslphmNcdTAwMDHgoPtcdTAwMGVMXHUwMDE5XHUwMDE0NSpVKmv+XHUwMDBm1NAyojZImZ1uezmGR8uVtuhVNlx1MDAxZcu6eb3z2L9cdTAwMTThlWitv5xfXG5cIp8xUmmWroel2qjsXYq2vGhcXFx1MDAwZbZpMOufzdb9bFDjJMukUPKB8SnLY4ijuTJUacJcdTAwMTmRemaCmS0paLBcXDTaVmrF7Fx1MDAwNFON5kuIhMyW8Snz9oOqhCvgzS1cdTAwMDEk/6CT4MpRmvZcdTAwMGJSjbgmN2g1gFx1MDAxMmqKddxcdTAwMTSsKLpeaqYmyoZcdTAwMGV6XHUwMDA0hkslXHUwMDE1YkWn+oCKlFx1MDAxMes4qlx1MDAxZs5cdF/agee1clx1MDAwMiQ+XHK+OTzi3f3T7Vx1MDAwMX0k7Tt9f2DKbb7PzorwSFPqoFx1MDAwYlxymtnKLiNTXHQjXHUwMDAzSCN0sInhwrahzdBoXHUwMDBlRX7R6N1BXHUwMDExl2iT09H2mFx1MDAxZnOcQiOYXHUwMDAxRVx1MDAwYtXFXG7yg5JC9EhccrlS9NBcdTAwMWLHXHUwMDA3tdrmwTCG6LSz5/XOK0GtUHtcdFxiRyh0srlWtitcXE7RXHUwMDAzrVxm5bYliUnBU054qotcdTAwMTPQXHUwMDExQJHTRKKholx1MDAxOa3Cv+ixXHUwMDE4PZIqJFEwU1x1MDAwYrOAm1M2ZrioVMNcdTAwMDey47xaWYb1WLhcdKVcdTAwMTAzXG42vuZWXHUwMDFhOYY/6H6y4tX3m6f9YH9nqN3h4GxU81xcXHUwMDFheicrX1FRQFx1MDAxZIyyXHUwMDE146jGQtCpjKDRXHUwMDBlVzjZnFunZKmRp57oe83oSVx1MDAwNOlcdTAwMTCMTLhk+Fx1MDAwZtBcYsw4XFyAhEFcdTAwMWRSy8lcdTAwMWMvXHUwMDBlM0pcdTAwMDTJ5at4XHUwMDE2V1J8d8vFXHUwMDEzOZRRd/uoYtRlrXFcdTAwMTjycLjye6FcdTAwMTQwXHUwMDA3XHRLXHUwMDAw0NxcYpyRXHSgXHRpXHUwMDFjpFx1MDAxYmKIaz1hIz58d4uEN1x1MDAxYqzRKqaRXHUwMDA2qYd9bfSwvSqE6uV0Qb1cdTAwMDdq87K2aFJcdTAwMDRcdTAwMTOmeDbtOmrUolFcdTAwMTCPvODkajvutsPrXG5ZfajN0zRJjYNWXHUwMDE1JSbpsqb5zVx1MDAxM++HXHUwMDFhfVx1MDAxYmpvilx1MDAxYYbwXHUwMDA2jDQrhzQ6p+5cboprI6Qqbj3vRKl/fF7thff66khcdTAwMDTXnrfdX6Hm4ry8LXVcdTAwMTjjmlrfmXI2mU7ThDmINtB2T1x1MDAxNU/T7sOtJ5FcdTAwMTNIy+hHXHUwMDAwa8ltZVZrJYVO7+p7LVx1MDAxMGCQbFxiN9nm8+VcdTAwMThcdTAwMWW9qJSa1NVb9GLniTSCJ2/rkTVcbiVKkq+0cDZNXHUwMDBlq1x1MDAwZvKxd9mpjk7k7cnNN3HspiZjTphjiYiBXGa3oVxuT29WTJaJXHUwMDEyR9mOXHUwMDEyVFx1MDAwMzLRfPZKZKJcdTAwMWS0UNSgi0skZPbNJlx1MDAwNV/KNGVcdTAwMDZcdTAwMWRTXHTsh7fcr0CY81x1MDAxMVx1MDAxOMlJpilltFHZyVx1MDAwMsbn7C1cdTAwMTJ2XHUwMDFmY7HOqOLx0Fextva/tbWLUipcdTAwMGKVjoyUo5hcdTAwMTBcdTAwMWHAZl+1YT8qMpqC4Fx1MDAxYzI1XHUwMDA2sHWvtztBnz1cdTAwMDYl0W9cdTAwMWNcdTAwMGUud4qlplx1MDAxObrqXHUwMDA0Q1x1MDAwMkJcdTAwMTjBuTVTbGKOsVxyXHUwMDFjiitcbpCRNMBcdTAwMGIo+nhgXHUwMDEz95qgXHUwMDA1/sWmXHUwMDFmzSZcdTAwMDCDOqbljFx1MDAwMbeYTDUvT5FcdINcdTAwMTRLp1wikUpBKn0vRFx1MDAxZlg59lx1MDAxY+5cXNRGvdbWxe3N7WijW6/elb9Fs+xJfvVcdTAwMTR7iHEkY0xr9Fx1MDAxYriEyYy0dVx1MDAxOazKKWJLN0LRXHUwMDE59pBZsqBcdTAwMGYp0HCjXHUwMDEzQlxipzJV5fzFlXd4J6+hXHUwMDFlklx1MDAwNWNcdJVZxlG5ZEGXXHUwMDBmNU5KVmRX61x1MDAxYnTpdYP0i1jsn/FPa+PlTT68/vzfP96+elx1MDAwNjvju2emrOVGcbnbblx1MDAwNzF+hVx1MDAxM/tI089cdTAwMTnFblx1MDAxOG9cdTAwMDZcdTAwMWQv6DSmz/lcdTAwMWQv50xyVylcZrvDpu96XHUwMDE5902fWzxo0XNaXHUwMDAwXGZT2vbbXHUwMDE3T8TcNWp9XT1uXZz3e9/jamn0UCbfczgyhfNPi1ikdKwnZdD2cjS/U1x1MDAxMYswXHUwMDBlp+gnXHUwMDFi1CeNWv9cdTAwMWXd+P32NvXOldfCNJPJ3lx1MDAwNcFcdTAwMTXGS1x1MDAxONpmXHUwMDA1xbbfxXYxgTHczL7Dhlxuu1x1MDAwNVx1MDAwNIBm9zKNtVx1MDAwMIbl2p/1y4cm3YLq1o2uuINKf6l1/zdfQaJnZGRcZkCptJ2W4j0om6RcdTAwMWRcZsk5+bP75/ltdUM0vCpcdTAwMWSsfNBs30HCMc5cdTAwMDKwjURTPShaXG7HXHUwMDE2XHUwMDE00HdcdTAwMDRcdTAwMWJZf7jlelx1MDAwNVwielx1MDAxOUm/NENvlIHM6uHnXHUwMDBlszBFeUSvl6qMrZBg68aGZydnflx1MDAxMFx1MDAxMDNdKONcdTAwMTBcclx1MDAxMsMmjHiTfW3ZPlRGp38ziNZeNlx1MDAxYq813Wgtirv1+2yXSeXNz7+rg77v7SUy/+0lSlx1MDAwMjpzXHUwMDA2ikv69fed67AsS97RXny2d3hXObjDhVoptyens0uypJSrOLpcdTAwMWQo7pM5XHUwMDBlQ4VDUF60olpcdTAwMDCR73q5RLawXHUwMDFi4lhcdTAwMGKKfru02zV5VkdcdTAwMTdKP+JcdTAwMTFcYlx1MDAxYVx1MDAwMVx1MDAwMSy9cK89M9YzVpK8lYO6POs+1EDtXVx1MDAxZlRut6F0NFx1MDAxYY5O4k9VdvSi8mBcYlx1MDAwMkGIwVPxvPvuUe1cdTAwMWLpXFzvd6OH3Vx1MDAxYpeVbi7VyflPXHUwMDAxQ2VfTmOznlIzylPbaFx1MDAxM1x1MDAxODKCwVx1MDAwZlx1MDAxN7jCIIXm7/Iv3nrHiVx1MDAxNFx1MDAwNq0tsdlzyjJcdTAwMWFcdTAwMTOYcJhQilx1MDAxOXT5cHXMTJFHS+Dc4G/5TCxmiTvOXCLDOdbAXHUwMDA1ekdcXOmJi+Zoez303Tin4UTlzcZCPS3vkHOVn8wjgqCdXHUwMDAxKFx1MDAxMlK96PmBoPd7Yamy0T/yJTs01U6Ut51rRVxcdFx1MDAxNGhHcIqrQe3bXHUwMDAwxbSSo84juyShaNzJMlxc9Fx1MDAwZlFywYHYV1S91Zr7bVx1MDAxZlx1MDAwZU7CP/1QydOwUjsticNv+58q5FLkuuh2XHUwMDE3NNGSXHUwMDE0XHUwMDE38sPypbjZeNxcdTAwMTGnXHUwMDE39983XHUwMDAz8dhcdTAwMWGcrHyXuE6q8dSWgtA3pqCmXHUwMDEwqFx1MDAxZCpcYtjXXHUwMDEwaZNuXFz48O2ExsHpZshcdTAwMDViy2eELKLiXHUwMDE00MdXWubsPv9BSCxcIuNcIqe9MEPHXcRj68fp+G8vXHUwMDEzsO72etXYmpCvL3zCuVxmvJfvM07brFx1MDAwZlx1MDAwMn+4ma03VnJ+s7/z7/9cdTAwMDNcIl9cdTAwMTegIn0=<!-- payload-end -->
+ <defs>
+ <style>
+ @font-face {
+ font-family: "Virgil";
+ src: url("https://excalidraw.com/Virgil.woff2");
+ }
+ @font-face {
+ font-family: "Cascadia";
+ src: url("https://excalidraw.com/Cascadia.woff2");
+ }
+ </style>
+ </defs>
+ <rect x="0" y="0" width="827" height="838" fill="#ffffff"></rect><g transform="translate(10 10) rotate(0 403.5 409)"><path d="M0.6120161302387714 0.2306227557361126 C176.34838936785238 0.22690063446387648, 354.00070575121794 -0.3170953896678985, 807.453930426389 -0.3243877775967121 M-0.0015226308256387712 0.1010874155908823 C310.84229007391264 -3.3018346436135477, 621.1829346725718 -3.3442769773118206, 807.3457405503839 -0.35789241753518586 M807.2221156604588 0.14504600688815117 C807.629914862372 280.7199353313073, 807.2595847909226 562.5276974279433, 807.7767260320485 818.5422930113971 M807.3937234338373 -0.1761252399533987 C809.249268865861 186.39470398928972, 809.3788272502795 373.41118789687755, 807.314637356624 817.8598415974527 M806.9638260610402 817.4477924697101 C562.5161133198999 816.1462100305594, 317.69396286513654 816.2463866748847, -0.7308547966182233 817.3081124417483 M806.9703991707414 817.9383708599955 C535.3735030521638 820.8362671773843, 263.54323863219463 821.1941872399262, -0.04486282505095005 818.0265719655902 M-0.06409778520464897 818.3358103863895 C3.1812742923125623 520.685010314919, 3.258202216468751 222.85355762504042, 0.17447407320141795 -0.36201249435544014 M-0.22888067401945592 817.7009844068438 C-2.604273076124489 521.6903553085401, -2.1170814824774857 226.11378420889372, -0.3936608735471964 -0.004026996716856956" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(464.83774860145513 107.14024356108871) rotate(0 55.90505832485928 20.866439494680833)"><path d="M-0.051659053191542625 -1.634156608954072 C36.94070351820192 0.7715043930354424, 71.85475226208074 0.6546438245120354, 112.0596170379982 -0.36675735749304295 M0.9190285978838801 0.42944845277816057 C34.87821251257488 -1.31326388171362, 69.29951171504665 0.2965231949980347, 111.19771139707571 0.5860496731474996 M113.07795190356826 -0.32446142472326756 C113.4415928133409 9.43747504109984, 112.59424382528472 20.25144969967197, 110.97358804486846 41.66059426666095 M111.32541911687856 -0.8346077231690288 C112.22897948563936 10.766147995373908, 110.64129810274484 19.697467259143895, 110.91824044671064 41.97668359038278 M111.82467132352447 40.30153827071979 C70.28315607515889 42.389773649598034, 27.544308444591152 40.40890322389689, -0.30386519990861416 41.855814200647615 M111.89092649903303 42.50511524435922 C88.91503984478241 41.701741695731855, 65.4012074431563 41.47751197251675, 0.8208050606772304 40.81396293994828 M-0.1380999144166708 43.511910182245515 C-0.4255363315407095 35.120493855599875, -0.274292942887908 23.429431151390762, -1.3130928929895163 -0.3070374969393015 M-0.4735911013558507 41.01682544109269 C-0.28501732269142743 31.302176799277046, 1.3036948033251894 21.6066293003447, 0.5878638802096248 0.7773615987971425" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(191.85346471574246 114.72122020134566) rotate(0 17.32326764212877 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">ID</text></g><g transform="translate(249.4970250899562 274.7594272925893) rotate(0 162.83190000956358 47.85474831189481)"><path d="M-0.96208451997514 0.6683708647747145 C107.76010040830967 1.306099765628057, 216.5470174083707 -0.4148437560221909, 325.4259883209972 -0.24426163094201275 M-0.3173531422678079 -0.5115772151687729 C110.02456843588416 1.13169501829559, 220.07356780765346 1.31326795527431, 326.2381214646235 0.17076886330751043 M326.9985814814538 -0.7640320304781199 C324.14170812200507 26.92932354006564, 324.0098075134655 49.68722951038967, 325.7222033863038 94.89843360795614 M324.91671369067285 -0.6041608182713389 C325.65261542344473 35.02616473000127, 324.98514869356535 68.0857781887353, 326.03873366705034 96.13161552320209 M326.54887460023514 95.44100734495612 C224.05056724430383 95.12862323027028, 122.86998802934731 93.49880166670485, 0.9025957708928238 96.01284381950762 M325.6963271804402 95.59112770213056 C200.6912590925861 97.24168078048874, 76.38719433820502 97.09487302357955, -0.6849227868670017 95.78329254107791 M-0.36528593860566616 94.9919541896784 C0.06972456096820157 58.69338710273053, -0.05369597554989536 25.236592095250444, -1.557630067691207 -0.36099752224981785 M-0.34486470837146044 94.74515882502284 C-0.11387012361963633 74.7228081714263, -1.0757075047441327 55.34757990094743, -0.22900356072932482 -0.23087996523827314" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(161.677450113325 170.23882343430955) rotate(0 32.41127494333767 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Image</text></g><g transform="translate(241 118.76056343317032) rotate(0 104.5 9)"><text x="0" y="14" font-family="Helvetica, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">http://backoffice.com/product/</text></g><g transform="translate(102.44305107894843 281.274029900237) rotate(0 62.02847446052556 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Description</text></g><g transform="translate(186.14768369298304 402.7916331332008) rotate(0 20.67615815350848 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.35260340919839px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Unit</text></g><g transform="translate(177.2066423293038 458.30923636616376) rotate(0 25.14667883534821 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">price</text></g><g transform="translate(163.7950802837853 513.8268395991283) rotate(0 31.852459858107693 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">taxes</text></g><g transform="translate(171.7361216474635 225.75642666727367) rotate(0 27.38193917626802 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Name</text></g><g transform="translate(265 153.26759386062622) rotate(0 43 29)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.5049887999566147 6.065775581498735 C0.7735259564440724 4.712977619385839, 2.879661183105751 1.729078227385057, 4.702386339338965 0.23034067040656148 M0.00263213928324485 6.236133628760569 C1.5116257424780761 4.824451727797482, 2.9814240111625057 2.493517844809919, 4.630601625102109 0.710399743154388 M0.4465643220673905 11.486569108485758 C2.9249053470137816 7.172372607709439, 7.437210533592926 5.25661060922005, 10.298306482982767 0.4508509586646916 M-0.6137727989722385 11.95339940455514 C4.633439243273046 8.18962015474221, 8.098044482208397 3.954531787963522, 10.11635821978463 0.026238121379888235 M-1.6901673200121383 18.0936125748797 C6.55060372372104 10.243915280746279, 10.646508966998452 6.111857800307236, 15.665042502343137 2.3045959423226288 M-0.8808458950883011 18.848115073424452 C3.8159796278061267 12.674128084492455, 9.094087217485264 7.737928321628456, 16.421676133296867 -0.23340429021744225 M-1.276242779363015 24.445154554857968 C5.578398802990729 17.413082785317545, 11.413407665141476 10.398648254177198, 23.04152580750909 -0.7105239337146756 M-0.7022356342338707 24.344057083777248 C6.380697117637786 16.182934877476377, 13.28779608446597 7.933720148466179, 20.964020657630527 0.03838627824331553 M-0.04988094507256591 29.33739587641155 C7.0120119370191984 25.730597462089516, 10.006223412788234 17.943435374715627, 26.14347130866012 1.4401165669795812 M0.8575670701031939 30.760536425512484 C7.105904732631673 22.713801229868118, 15.22365048830267 14.34255834182656, 25.945205330524953 0.9430860042583884 M-1.3536189795565328 35.77887158822392 C5.075044145004193 27.23925538648384, 15.139984352969769 22.60721778707203, 31.337135247370995 -0.4486414621338959 M-0.9733267511334738 36.86502979770427 C7.875070385125491 27.501374851894475, 14.543559229126712 18.45958113048341, 32.23865802441428 -1.0426708058208938 M-0.08663467023065152 44.178507363978554 C13.669105370299231 27.590999933502005, 24.912327111441225 14.871029860481936, 38.24539712425445 0.39977201829669085 M-0.29786075450023475 42.08419358692669 C14.427733982529414 25.50245831957434, 28.222538302728815 9.241859812460625, 37.54376580827062 -0.04548183725210819 M1.264576483517807 47.672248243027255 C8.54781036874557 38.38475910357233, 18.916723847518924 27.251053729331733, 40.933731930885244 -0.23152064826795993 M-0.9869603710249848 49.73674260792218 C14.863261502468212 32.73712109448201, 28.38014142762853 16.10293764927254, 42.165597179528106 -0.8641034086839312 M1.1561144732636066 53.902591568830715 C10.035168212376526 42.97228409970224, 19.763854607213062 29.9630482221798, 48.599237917876124 1.5473318275239514 M0.44413039672641474 53.71923304204206 C16.752785639737294 35.15413072047181, 32.61290503843837 16.50986354004546, 47.29767983215886 0.03697616962606176 M0.9878206076005007 58.6093444702952 C20.002711110078877 40.50531183892943, 37.72847830799741 18.266376286021064, 54.75660882680184 -1.2422669608668677 M0.4307448007070924 60.00306991858322 C16.603498476933947 42.12275101716081, 33.16190463112388 23.37997737615955, 52.80172288859701 0.45860995402920324 M6.289249744065284 58.65444721999032 C18.819539100875105 48.94882018613083, 27.9836960639131 36.05251452863097, 57.92716165827514 0.6528155259113753 M6.138515579313218 58.565580473005895 C19.87963453284589 45.23155273312041, 32.309295832153936 29.440322467857463, 57.490394667814684 -0.5265809907320893 M11.535989709327641 60.1786648386045 C26.757283884926437 40.00016833119607, 45.70734231075873 22.28113688385197, 62.824808903870775 1.7422641313193807 M11.87344437757385 59.45295575138913 C25.46065743410066 43.1659461382924, 39.84268439997761 26.797328214933437, 62.907044917246 -0.6431342333064904 M15.832577994962346 59.55105716959844 C31.694579903928627 42.459300561888895, 47.258114224472195 23.99494666275534, 69.0450863142015 0.8924926447089447 M17.35856844292314 58.63597068508426 C35.343721410270234 36.83301120661354, 54.53551787932734 16.873365341169567, 69.60848258086308 0.5936806660484208 M23.665175351582125 58.99741300232395 C34.43999497766112 44.500196596770024, 48.144155729125586 30.119651882798394, 76.25112513084206 -1.648532840459211 M22.080384219333187 59.54466821383372 C36.74555131110029 41.94171406401574, 50.27907494701671 27.102693929209245, 74.94469803110006 -0.1910644863160087 M30.087538020761755 59.62507343024173 C48.95711727880547 38.39743777226618, 67.27936723980868 12.06419235667174, 80.8626798544052 -1.1511172848333189 M29.068569579238144 58.99943264398881 C42.655283665768216 43.11029662953569, 55.55309798378013 26.419423633999788, 79.34164083692906 0.7744701243426135 M33.410045503113956 60.52310849270356 C44.883873419758956 46.66099394937112, 56.06419420555535 28.622891384656526, 85.24210047646568 0.6209866550473464 M33.178761591610105 60.217416290291965 C49.80521980480643 40.409662229419546, 67.04532434811807 20.670775325355407, 84.0809419957842 0.3399656793756378 M40.3856727902135 59.78714053317015 C51.3514547115027 47.77681495241936, 60.651632768685516 33.77374222677703, 88.41518316066472 0.7748840092028857 M38.872278753883215 58.74361283409451 C49.24811991121937 46.49967293987028, 61.84133244316594 33.14650750067801, 87.61451461466609 1.70350010919379 M42.89901813267313 57.61952084099332 C58.955788572585696 43.79647176846155, 71.67498645200916 30.472725895072994, 89.88137859059607 9.294522531539549 M44.4988987600296 59.457283965138885 C60.45578698534574 41.054778458342895, 77.0931615343211 21.634794445849998, 87.96851225802784 7.323783130593945 M51.15227527206759 57.35415300963375 C59.75969116262987 47.299107400537665, 72.29999315154316 34.85164175288639, 86.23917391182499 15.612611860295289 M50.07658073248337 58.5030327397764 C57.353517053173476 48.300114033019725, 65.61955562376335 38.833241511571956, 88.9624608897941 13.39832540720468 M54.35426120900964 60.55666957844324 C68.29191383402885 47.11658299987482, 77.58439830043154 32.52114696294013, 88.49935661592627 18.69196183893078 M53.57424299021667 58.297230222749484 C66.82034682852901 46.25326337216405, 77.95239537415263 33.03065188274849, 88.11627275739903 20.851026870377297 M61.25032940608352 60.803964971105266 C65.49539603314625 53.00972100047903, 73.21883973801516 45.748443507493526, 90.05433745351262 26.352111256797837 M60.0354262516731 60.21379842563223 C68.84495124846636 49.22581049371385, 77.10807395858828 38.98260304789889, 88.2133193048147 26.565055459854232 M64.09169270087351 59.01082423630332 C70.1139115173711 51.76548737472962, 77.57396000050042 44.17847122108624, 87.20806363716831 33.04886078757994 M65.14136654779632 59.817089047498754 C72.33724259583425 51.69382688316736, 79.32899080400455 43.53973972271522, 88.42409437548478 32.06863006220959 M68.60474621899232 60.756551788389174 C74.79642658294958 53.22996912316725, 77.50973786157137 50.12322139275734, 87.14534175447758 39.20090172996055 M69.77406813505843 59.09476221559146 C76.05414834790082 52.384794996197996, 81.05684201384616 45.439250569068676, 87.86928712535288 38.76789925151746 M76.48155229048089 60.021685072631115 C79.11654540202038 52.65715704279814, 84.4158570660748 48.80612767372208, 89.81597946685844 44.53405435376401 M76.1195891057908 60.096796896672345 C78.19319836105069 55.31474942283893, 81.91159918763944 51.19129455117371, 88.18358900895447 44.214260871406374 M80.44737789201255 60.128651046682364 C82.55769389717321 56.22217114465181, 86.73953464187971 53.14481419712647, 87.57121831091686 51.26833620445817 M80.91939637324478 59.33275860745854 C83.20337395784485 56.918275810906636, 85.15487786046539 54.86646561700479, 88.01826741105512 49.97544897777974 M-0.038809945040203075 57.966263029481176 C-0.038809945040203075 57.966263029481176, -0.038809945040203075 57.966263029481176, -0.038809945040203075 57.966263029481176 M-0.038809945040203075 57.966263029481176 C-0.038809945040203075 57.966263029481176, -0.038809945040203075 57.966263029481176, -0.038809945040203075 57.966263029481176 M7.032931100275651 58.00743002491432 C4.892015081057667 56.57269134014604, 3.8225323906856037 55.1225673442549, -0.4638983592326609 53.19329333471543 M6.6154572204466024 58.125776796884715 C4.9081668267282454 57.19128496103465, 3.278870721706101 56.18672279929317, 0.5995698552643091 52.667475317962825 M10.858010765976033 56.38722950632584 C8.980232182032653 55.81093859445247, 5.819050664929676 50.52904605061982, -1.1905508019663698 46.353189829541314 M12.172781553185304 57.687898885113114 C8.161654025851545 54.48468519986822, 5.283097838015057 50.81955478095068, -0.831822614435137 47.32153014968144 M19.224220826964693 56.14225204362898 C11.705831573542277 51.46269119895924, 6.193176988226737 47.51568246406691, 1.7547021373321208 43.32769449635916 M17.830863035026805 57.36827740985333 C14.706181755830848 55.127608648513146, 8.476281527796717 49.873589956067356, -0.234932086881539 41.69405747878872 M25.883134780934355 59.336980571522346 C17.543009536952752 51.6063610201783, 12.633210175241643 45.63839744858876, -0.5326546819501168 36.52663061715756 M23.588696946872673 58.5282925800597 C14.540874372850611 48.95528134851633, 5.483914226994536 40.780157747637574, 0.8581166092685812 36.44762903492991 M32.39355053619612 56.445071366321244 C20.64780402692937 48.95070374463375, 10.43192974398854 41.659140123853746, 0.5031089524035011 30.142896290017756 M29.669070524695705 57.07043622963498 C21.415580029684172 49.399461333440954, 10.620880514421188 41.16273214188291, 0.9583058014739905 30.9499977716119 M35.217006071120984 56.296366277941445 C26.097413400795055 49.56805078898848, 14.508208880337111 37.25448948781764, 0.9965558135411836 27.516289960864988 M36.938154315226264 57.843257483885566 C25.96431000538581 46.52706808715845, 12.291579663339064 36.83855130313582, 0.478854268742273 25.545020972650555 M43.63339873907991 58.746097781298666 C32.24195096491721 46.760348206557026, 20.436850416407054 38.14479329728169, 0.3569463705022251 21.198736816586514 M41.743564177694694 58.5419851556178 C32.80797472225987 50.63221478600702, 24.601873445425046 42.29475938938578, 1.114514423472098 21.766221725323756 M47.942614009112184 57.70556606328019 C37.6598121269103 48.46405818562313, 28.24342162414876 39.53594027552369, -0.8319378535651696 14.768316553107574 M49.70974002449966 58.64545483210959 C34.84366802084999 44.808983766526495, 18.594573497498537 32.65866799537545, 0.33514566967104553 15.057066688447371 M54.11905840436603 59.61222581981124 C35.417512921576574 43.197481783118064, 17.741206010027334 23.695870503783098, -0.8366176396217071 9.140235607315429 M54.98622875964875 56.7924456721768 C39.7662218718744 44.12664384453187, 25.68513079828148 32.73981580357311, 0.9546410447377838 10.988188324299283 M59.78683614388073 57.74065848777909 C44.51898990937119 44.87270531497893, 25.66333881804656 27.87654976527921, 1.1259072854808196 4.380854925135315 M61.81661092054063 56.9989026380973 C41.325993423267086 42.01932769739743, 23.032478646615388 25.491432981269554, -0.37549942232010514 3.977662666695357 M68.87428208102726 58.67265904209948 C49.81533253916426 41.93631190392178, 31.39170739454032 25.571722820196886, 0.8633348907817047 -1.9813378065455014 M67.78678361640566 58.03427329267747 C51.94355790978379 43.369681496139705, 35.392176974079895 29.504283821357447, 0.40275793089604783 -0.49176844708651857 M71.81559044417662 57.327913082688156 C54.08737390135573 42.15026233995425, 36.45698328457187 21.82427978893277, 5.900270421434101 0.7628308691127792 M73.62033926897419 58.35843488622368 C46.59994769165118 36.09836690471566, 19.217345550427012 11.707125282290853, 6.039939980398771 0.7521116526840821 M79.75244357736807 57.994673921432366 C56.208369629974 37.14230410720095, 34.24572462409024 18.687771182605125, 13.566825214026812 -0.21151942989815886 M79.97394435314487 58.0586214435138 C55.178876564117814 39.07945308556161, 32.35959976979004 19.182567245753816, 11.661415631136242 -0.23749514061053212 M85.18854487874985 58.799849379257374 C70.72542751956634 44.17072808186656, 59.95935674168625 33.22795247006958, 19.31327536259913 -0.48722914169104925 M85.68562233542532 57.225760560863726 C67.46128002648189 40.96697380642448, 49.93016444861445 27.073278212027756, 17.675804483007127 -0.8440579271924697 M88.94595712147014 53.3957379020884 C62.3285388551556 32.813819883926186, 39.542952172260705 11.500390691585082, 23.326918015299263 0.816515804659339 M89.32484199482309 54.5474595220893 C67.85493402081333 38.72491213610604, 47.656365900341655 21.081938496545796, 23.985583127519014 -0.7598522357458748 M86.10260245367716 48.02252856085066 C75.80350182021274 38.04415436606093, 59.5624351888998 24.566213449065142, 32.50724801616651 1.3551562210402786 M88.72376742284577 50.27675529850636 C69.04220841898028 34.18172989596978, 52.70534446301288 18.303036773729335, 30.55601178957057 -0.7687377914928497 M87.96743904030129 45.81927328339347 C75.20768492410134 31.339335743061064, 60.77475726778246 22.33697508955141, 37.12049084357183 0.028846457367503575 M87.5461846652831 45.44933678085485 C69.03886902728084 29.352610241113887, 51.254084169049705 12.610186361381935, 37.663417265892136 -0.3698217191270352 M88.69731735971351 38.045501419632586 C71.04399971579787 22.275653752436355, 52.27358961753272 6.850277601108257, 41.00123135088622 -1.9868685114432374 M89.49810801886548 39.01140934444115 C74.36147566195541 28.094050698932392, 58.921276566540925 15.096363910410648, 42.69057166571408 0.1594685441579422 M86.51744726528477 35.73613294448372 C74.17737595393936 22.297973599762837, 63.389760265055 14.208543254144708, 49.75404250714897 1.7896240014953158 M88.1419970928232 34.380858052071595 C79.06130409629235 26.275860618772978, 69.47326648671054 16.9672065414319, 49.92207115143506 0.7003123356399676 M87.92302672605442 28.732155544834153 C78.20694226723157 17.950194964784934, 65.82585464561889 8.570052366198258, 53.40801833550828 -2.383908807891597 M88.69213554955499 28.384174741024093 C75.38460617792067 17.542043256600575, 61.820879629505086 5.725180828187856, 53.79261887706267 -1.331167435865094 M86.3337747651706 24.15071141660912 C77.36817083703886 13.752447150853751, 69.11375141965458 3.8425562272663214, 62.391950555003454 -2.162573002716716 M89.26291404306838 22.632794820114505 C78.35669347555321 14.639459842510892, 68.66959442758787 7.457879250674953, 60.455951629995575 -0.7666820580793576 M90.06910810167267 16.696069496695884 C82.37500579349764 11.948056003566915, 75.97714684586697 6.411875418627661, 66.18886151900546 -0.6442611080642919 M88.43775686076208 17.740319501620718 C82.84196791283598 13.517771198326706, 78.65801127194467 9.064663598210867, 67.03312276946411 0.6905597818035503 M88.24796450870879 14.473653231019668 C82.73665256523998 10.061227220826721, 80.13994589907782 3.9962127580290447, 73.53763295588527 -1.3389750240185947 M87.76269528164364 12.04279356935858 C84.58682920443509 9.893480906272993, 78.49616250729795 4.505095500908311, 73.40788096719865 -0.5972209159100146 M87.49958069944006 8.708667809389578 C85.75276945004398 7.068298522837807, 85.4448879575832 4.604519812185818, 78.99936786698913 0.4960874231390868 M89.03036955711615 7.817616691872526 C86.15992992839305 5.703741593264226, 83.53037505096987 4.138733611280108, 79.23181641003852 -0.18029103951079417 M88.6037661814848 2.246031285328428 C87.164820567656 1.69499413907655, 86.45544488583297 1.1567325226360565, 85.30928516755097 -0.32664069746633284 M88.20634940338974 2.140735858371119 C87.13056601746187 1.504405482764609, 86.39320889159012 0.4269119875172227, 85.17639491757595 -0.27189724192966946" stroke="#ced4da" stroke-width="0.5" fill="none"></path><path d="M1.2833336349576712 -0.20210695825517178 C26.264553903974594 -1.4820367433689534, 53.37526597902179 -1.9639644362591206, 87.90453079901636 1.6061993185430765 M0.7910978468134999 -0.9158364655449986 C29.10138486661017 -0.553940929081291, 59.80458284374327 -1.4824445318244397, 85.12034845072776 0.34006507974117994 M86.69530085287988 -1.1325306352227926 C85.35720007156954 14.490840502642095, 87.47046683764086 25.223397812992335, 85.36597273312509 56.86980068124831 M85.70289540011436 0.46385892014950514 C87.26780787443742 17.7852092217654, 87.02948379850015 35.474924811162055, 85.81809285003692 57.159964132122695 M85.23000023327768 57.341260546818376 C56.78170889597386 56.95030437683687, 24.02138104438781 59.065846013780686, -0.25596889294683933 58.12556856311858 M86.75304916221648 58.43610935192555 C53.95805252194404 57.871169723998754, 22.63317631166428 57.66141802860424, 0.662036475725472 57.16271974425763 M0.03531995974481106 58.92977684177458 C0.7145148164965213 44.16558788288384, 0.9834250457026065 25.391566541790958, -0.8231715206056833 0.6875288430601358 M0.7059939475730062 57.03384329658002 C0.18653230490162975 40.465856389701365, 0.12291945638135082 25.266173735447225, -0.06287804525345564 0.8138775704428554" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(303.14233728099066 510.18991210408274) rotate(0 29.20304557052708 15.019700190719561)"><path d="M-1.0984133537858725 -1.5110005978494883 C17.671119970841648 1.926576370932654, 40.21249815936077 -0.23277801778118262, 58.06093416782631 -1.0722546819597483 M-0.01225514430552721 0.4319292278960347 C20.665152421486216 -0.40156814638957194, 41.744342023105595 0.7669872027219851, 57.46690482413931 0.5372962029650807 M60.06423912616982 0.4613895174115896 C57.90467638980307 7.195001272910716, 60.134641778577944 18.340453467252615, 58.54924027296318 31.991146761395694 M57.96992534911795 -0.15894255321472883 C58.00702416305652 9.166336727376823, 58.54995133881679 20.94159483639855, 58.10398641741438 29.142285565317334 M57.160195988142625 29.434474188306094 C44.16742622254375 31.241232429252747, 29.503264016148975 28.858126972423676, -0.0935413297265768 30.70587314985013 M59.22469035303755 30.641962031305493 C43.161423966230984 29.44031650053655, 27.380737955095803 29.1803115926901, -0.7261240901425481 29.303445110500515 M-0.658626263961196 29.491012710549594 C0.7373647436401161 17.40126080984873, 0.03074184506147226 8.883383527678141, 1.3252037707716227 0.9112189169973135 M-0.8419847907498479 30.591566095531643 C-0.5492335561742618 18.94149529314116, -0.4160334769716099 7.455331541837101, -0.18515188712626696 0.533256527967751" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(261.2145066031824 551.3849129532873) rotate(0 155.2906633177264 26.638255679750785)"><path d="M-0.624289475551761 -0.19043343539405394 C99.73877876142258 1.5964010939473132, 199.24285734257668 2.321220196926108, 310.02138800640387 0.137703828063164 M0.2645620378022147 0.48981998140533894 C95.10830220933451 -0.9764894606436063, 189.60168113193637 -0.5836154588016225, 309.92141502276445 -0.6983936331285973 M311.46241117258637 -1.168308025225997 C311.5862189984247 11.454190683610868, 312.06611441134663 25.354515701651835, 310.09820336838334 52.43328664964805 M309.8777921189469 -0.31464625615626574 C310.0734623536227 18.72781694243611, 309.8613118692992 35.85950114169987, 310.65451815621077 52.30440986762564 M310.65346389389083 54.458247689592284 C227.07222496551893 54.324072280007776, 144.89070156838412 54.92094923133379, 0.8276050451235265 54.623405789248814 M310.1269699857599 53.052467873322875 C219.13600131585275 54.95162755222612, 127.88207555635186 54.91429623976157, 0.6083325826976749 53.258750001399996 M1.3116531129926443 52.08392862743507 C1.317569858525652 37.79669913764175, 0.676619476769823 22.508121152365028, -0.5361858252435923 1.774029666557908 M0.4484726460650563 53.4996095658354 C-0.3116531186783208 43.01010995445691, 0.4815350658214198 31.84609843359356, -0.6044884352013469 0.7387443957850337" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(517.3691237516648 507.91069099716265) rotate(0 27.687581811088194 16.535163950158392)"><path d="M-0.06658775173127651 1.7426361795514822 C16.638982184205148 0.9877153474666976, 35.55737598793942 -0.05650957042194371, 53.45561009829319 1.2318486329168081 M0.7652714429423213 0.41782226879149675 C13.339113375102944 1.0572315456811796, 25.013681434888078 0.5160462560598265, 55.552976663200326 -0.7866967348381877 M55.409461321285136 -0.4157663229852915 C54.21144821549051 8.699499222621196, 56.154561721330815 16.542462140664206, 54.48507869427479 31.78077316094584 M54.903600032417245 -0.8460412649437785 C55.819673692621656 9.665216233594457, 55.59545857254452 20.338153000015993, 56.08877327570147 33.72191320822037 M56.68867051785267 33.361689088832804 C35.32405646220859 33.74877373490861, 15.46731021967485 32.623009662967235, -0.9712940510362387 31.735190330039927 M56.20869138368792 32.28890382215775 C39.81947302512469 34.01532507876694, 25.261388509029718 33.99693451265633, -0.9767642738297582 33.68206586406029 M1.1827219668775797 32.24239104796595 C-1.3323882710090218 24.30666755847433, -1.856746841584736 17.707894371106732, 1.5395168606191874 -1.9816210512071848 M-0.05898697394877672 33.71010841891564 C0.7596258099757386 22.15891825286304, -0.7094604496277618 10.039976202349987, -0.04397402424365282 -0.6701242653653026" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(530.9123771413247 514.8479178042068) rotate(0 13.639173834949702 9.092782556633153)"><text x="13.639173834949712" y="14.185565113266307" font-family="Helvetica, Segoe UI Emoji" font-size="16.164946767347814px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">add</text></g><g transform="translate(332.3453828515203 517.8457509454257) rotate(0 9.092782556633153 9.092782556633153)"><text x="9.092782556633153" y="14.185565113266307" font-family="Helvetica, Segoe UI Emoji" font-size="16.164946767347807px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">10</text></g><g transform="translate(256.57219487957764 514.8148234265485) rotate(0 17.175255940307068 9.092782556633153)"><text x="0" y="14.185565113266307" font-family="Helvetica, Segoe UI Emoji" font-size="16.164946767347814px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD</text></g><g transform="translate(252.12172404655144 222.47556443147732) rotate(0 159.33190000956358 18.04547312311763)"><path d="M-0.5200925400271478 -0.8625112139548522 C121.48290772432871 -3.4296463960329646, 243.9740992444339 -0.9986379822773479, 319.8705416690835 0.15254824070670067 M0.1396140743468666 -0.2623568760836703 C76.42224278522202 -1.7334399312084197, 151.7833518892316 -1.8945122188302, 319.2471477055355 -0.25384268174362984 M319.14528514194205 1.7683633919805288 C319.08858710566415 9.773196374479078, 317.3799061779107 20.30455485441415, 317.82801921415046 36.11570921011142 M318.5461115895854 -0.9381824163720012 C319.7786909957974 9.503438169037528, 319.4482441862671 20.129198959830358, 319.63133976451024 36.20199562732003 M319.983920828346 34.93324256123956 C207.447808589558 38.32365593347228, 96.57256771174033 36.75584586740048, 0.4808252872793874 37.3838810189712 M318.5316649804755 36.45065360163346 C199.36052073230866 35.99849735670303, 81.05344898398712 36.61733185836955, -0.008075096866123028 36.71290446084454 M-0.4458962734788656 36.23192914791278 C1.6644646467566453 24.25822784713548, -1.4609071074128188 17.0453049734822, -1.329640930518508 0.9026429411023855 M0.40408008079975843 35.44052653137467 C-0.05922558512458931 26.3917437814024, 0.5588158408187853 15.98517008446968, 0.8992260871455073 0.5424526007845998" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(253.1320332195105 393.20750548863066) rotate(0 81.83190000956358 17.54547312311763)"><path d="M1.88001804985106 -1.648715639486909 C55.55154318316047 0.2135170009348195, 111.58835800458023 -2.019241699912806, 164.34855569648448 1.841301715001464 M-0.1881769122555852 0.5122685106471181 C60.883316930538946 -0.5141367903614082, 123.18535867830174 0.3671613642311058, 163.65230006567094 0.8857467146590352 M163.2179037456483 0.14098290167748928 C164.7783545420569 8.665269989173671, 161.65298278788742 21.950335503793877, 162.33415908860866 35.99358918733769 M164.06788009992692 -0.6504197148606181 C162.91263426344653 9.795417856643878, 163.5306756893899 18.883464481187925, 164.56302610627267 35.633398847019905 M164.4171149258584 34.35480907030278 C104.5478895459361 33.66125775431504, 40.37806029943664 35.18021185253968, 0.22411775030195713 33.47887107200795 M163.5237797855482 34.17425115529322 C118.70987204667227 35.55509937575764, 72.77488867760839 35.0093631522984, 0.20823227148503065 34.670923100149864 M0.9401149693876505 35.3806335575121 C-0.6198477420876767 29.050419756834344, -0.16703727579815647 19.426174812968114, -1.7754892762750387 -0.6428550723940134 M-0.8666509510949254 34.98288594309115 C-0.13001467742251227 23.912924636599605, 0.8472815855569952 11.15027248080386, -0.10428730864077806 -0.052675398997962475" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(252.12172404655144 443.7332733095518) rotate(0 80.83190000956358 18.04547312311763)"><path d="M-1.5653996709734201 0.5924824420362711 C50.030685896857804 -1.4448028433058115, 101.0439829972818 0.34721431854034934, 160.5467497644097 -1.1328454669564962 M0.3307131798937917 -0.14409334678202868 C52.33555951992044 1.6600937030200569, 103.47910539150226 2.1141184053306192, 161.63830657332096 -0.5941225113347173 M161.3852187928826 0.6056279484182596 C159.81449187762786 7.407208866041792, 161.1900076366191 16.551740604588176, 163.26060640188757 35.531848473771134 M162.65818567602787 -0.009955746121704578 C161.07096792838811 9.535440569788301, 161.449108467319 21.20829641176032, 162.44504259555492 35.45135299052916 M159.97604381414953 34.41117577098183 C109.82851806906554 35.037734525425975, 58.976988036261815 34.03488703273112, 0.13121012412011623 37.734847648366014 M162.3295380923048 35.9334766038867 C107.76729058939597 35.55144216740271, 52.94829584069858 37.34812014424941, 0.08592343050986528 35.70086038794241 M0.17136982642114162 36.283837421162644 C-1.1335610415687047 26.626544428237466, -2.0030365850676977 12.747871201547639, -0.9343102220445871 -0.08872831426560879 M-0.20524788182228804 36.57044280256949 C-0.1877992442960712 24.377334890327965, -0.8936144701356861 11.346781718992204, 0.04653861839324236 0.4656484602019191" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(262.2248157761428 626.6193872124595) rotate(0 153.33190000956358 19.239391943829446)"><path d="M8.205580876403637 -0.7497754152864218 M9.676779167906652 0.923706070145013 C89.64549648909639 0.7732424470567162, 171.4159692635522 -0.9087769154924459, 296.411646420182 -0.1368711933819068 M9.485474694077428 0.055118482865122 C102.40268126851984 0.8510376402454752, 195.92796896126723 -0.005892834128393809, 296.97331919472276 -0.0804798443268342 M297.0441040472125 0 C304.3754317663354 -1.7091770824044943, 306.97685527178356 2.696666298188629, 305.52537094923565 8.510063235842772 M295.70823047878196 0.046978289261460304 C301.17721995271046 1.0083674277178942, 304.3679033896037 1.1803615957837428, 306.3061511000701 9.3487241665918 M306.03119672220384 9.988843430858074 C306.20868563673594 13.48002815378187, 306.05345892983564 16.717251126949687, 306.2984430225077 27.538159807393637 M307.00650424521587 10.266200193276099 C305.8158589134255 16.22301088124764, 306.97160423225137 23.184356038580994, 307.08280324299005 28.190956451724357 M306.6638000191272 28.859087915744148 C307.09843140217373 35.36370960166701, 303.8211290143174 40.021464145590215, 296.2515961361115 39.32940713207856 M305.3825306234033 28.70408692548748 C306.70343928244796 35.09909831788414, 304.96984953142004 38.10954520659208, 299.2833832656962 39.925939315125945 M297.3395179638402 39.96749731784635 C191.61324735882565 40.626120687050744, 88.28001951033572 38.65128313676497, 8.67128900929562 38.18756615445914 M297.63821990727183 38.76198332167004 C231.50321463596262 38.22090256925356, 165.56426764239754 37.58997755649434, 9.553241836978117 37.76348199169583 M9.619695971914716 38.478783887658864 C4.1515503914434335 37.85297582190171, -0.3811421636492014 37.15883705308684, -0.1394349578768015 30.194236244659386 M10.580797777705975 39.824051237512975 C4.962527980875583 36.35219530122042, 1.0423440297134219 35.46087686028355, 1.6102815289981662 27.958774186230713 M1.4151221363457023 30.682574087132682 C1.395261960585475 24.027437267332992, -0.09144334092603074 21.350676127217632, -1.4327670122512768 10.289407268572038 M0.9585775926520578 29.620437913437446 C0.11964692946202413 20.91800209275555, 0.7677329616169768 14.048085071244685, -0.025904939685964412 9.72282873964071 M0 9.619695971914716 C0.5688870307058096 3.952424524106445, 2.57601503444499 -1.2930257376283407, 7.88823966794569 0.8727511111646891 M0.3546189423650503 11.430662875258513 C0.3471536804921924 2.861876362596067, 2.9257107669826468 -0.9303204123862088, 10.980595976588464 -0.5958743934519588" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(282.6148405114666 634.7802895501023) rotate(0 54.28459907031555 9.970640645568153)"><text x="0" y="14.941281291136328" font-family="Helvetica, Segoe UI Emoji" font-size="17.725583369898924px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:5 | VAT</text></g><g transform="translate(549.6064400205669 636.9959874713385) rotate(0 6.093169283402744 9.970640645568153)"><text x="0" y="14.941281291136328" font-family="Helvetica, Segoe UI Emoji" font-size="17.72558336989893px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">X</text></g><g><g transform="translate(530.6222882484633 626.9739703476571) rotate(0 -0.27004847406038834 18.648419851507015)"><path d="M0.04895899035036555 -0.7005767975002527 C-0.007434478029608803 5.223480316159923, 0.8709535095840693 30.26270754962066, 0.8574078653007746 36.49408163410603 M-1.384476269055158 1.546016438473016 C-1.6284975971467794 7.585657411219228, 0.2645852331630885 31.90963643246168, 0.35950153095647686 37.99741650051429" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(287.7989966846808 683.4184092888754) rotate(0 113.15462737143469 18.690719699745898)"><path d="M-1.9334663804620504 1.6443487163633108 L224.66614231624567 1.3200544472783804 L226.65747931756937 38.52988474309053 L0.6051808539777994 38.06644176184739" stroke="none" stroke-width="0" fill="#fff"></path><path d="M0.9184027599402856 -1.1882584548755255 C86.46972511784737 1.6256983093257507, 177.26262947522582 -0.9320592748369452, 224.75927814232622 -0.7298900847057054 M-0.3571191076136633 0.3707961230277783 C49.972156882129795 0.643398277402882, 98.18908172224421 1.82577501676321, 226.08743575080888 -0.7661579140062222 M224.49761552893483 -1.6364958342164755 C226.74919176040777 9.648902454676763, 226.24146205125936 18.225310646524104, 224.34240735852086 35.69134951248373 M225.91454166610652 0.8050715802237391 C225.9085903626865 14.666290142933443, 226.23920263471067 27.989044159439533, 226.35861847241335 38.21802821714039 M227.4155741357738 39.07556216770485 C136.51704433353865 39.90097875133781, 46.953936611464414 39.45838829186104, -1.601266802071041 36.726286652203626 M225.85844920038974 37.44933812315798 C155.30386526128143 36.262508179317564, 83.26318865547391 36.61881059359989, -0.8365040848976223 36.61822885978447 M1.674868082627654 36.93865591898169 C-1.2635972902793948 26.915067861667623, 0.7865381433944638 19.12206490262016, -0.92783840931952 0.31214373745024204 M0.052322772331535816 37.05398261505719 C-0.4247863707906066 27.324666033553015, -0.014128398693209754 15.93377699568898, 0.39083355385810137 -0.07352171558886766" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(291.8402333765148 689.676713332481) rotate(0 108.60823609311808 12.123710075510871)"><text x="108.6082360931181" y="17.24742015102172" font-family="Virgil, Segoe UI Emoji" font-size="19.083617711452316px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">this product has stock</text></g><g transform="translate(483.5721744336686 739.0678871853065) rotate(0 45.46391278316571 18.185565113266307)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.17327891740483536 5.926760336061113 C0.5268665654269594 4.511410468427604, 2.358327153560583 2.445720629550779, 5.286728580626196 0.614669846355658 M-0.3313980359258005 6.2655461129295755 C1.2854138376411384 4.460416869757921, 2.9163343223988294 2.664839741164588, 4.721939949648923 0.10266394241128501 M0.22069314057935352 10.85876749944645 C2.1021778346732427 7.897825102835731, 6.560356872272736 2.458011027627734, 9.973744505596292 0.7196405361488223 M0.8874707446526395 11.280493721037685 C3.6118843140100703 8.391678056577154, 6.66161308071622 5.002068396454806, 10.401102434796226 -0.6857590538367866 M0.4841778156766434 19.90765740806299 C2.5209694406561254 15.247794585377957, 9.202882512070168 9.203188600177569, 13.722005588471372 1.9697264383477142 M0.8444843980902572 18.266697095614546 C3.7451513072263376 14.378607474741269, 6.862402522284878 9.728434004612408, 15.063821230552573 0.7525853400048783 M0.902760101687095 23.09322572471118 C8.026389968340307 15.409569989033052, 16.08390499874307 8.231611846448377, 22.128659334311152 -1.6880516713321683 M-0.3288741063141014 24.878371298960506 C3.8740053434482657 19.787313469840495, 8.844557197320107 13.611911746625653, 22.150620329471195 0.39114569911505015 M0.9200345641513721 32.12894162512218 C5.912523646671287 23.15765118907612, 11.044486732709485 16.28179206892615, 27.191561408948512 1.7973475879070104 M-0.7221754211420759 31.010741525095156 C6.342382097223655 21.544998895196134, 14.23682467296164 13.947611407188727, 26.97160869804433 0.4600395321857871 M-0.787195680355758 36.217849327756696 C8.824200336297503 23.194820887448834, 17.828745670908603 16.028891355522532, 33.765249303958214 -0.9550159404740448 M1.085859888540476 36.48321551786982 C9.871154209464578 25.26248771828962, 19.14831196058755 14.756369313762253, 32.37482358370612 -0.19495822943158103 M5.650467975702501 36.81954535518436 C17.34852205539363 25.35020590847298, 26.707742805487275 12.280266263846617, 36.085883769953 -1.4693534671235362 M4.747192686129726 36.81804238774477 C17.309193678167453 23.764581225491284, 28.18449764629962 9.9874113715499, 36.97176143042867 0.7311953540053686 M12.735575166976853 36.788031817648026 C20.17886777791209 24.457166819345876, 29.14396588118258 13.66878053134765, 42.95722104850762 -0.3883238985807651 M11.178770799635751 36.28441589535347 C18.917108093574463 26.38588598829967, 29.37174583599142 14.580734668419804, 42.91710011064612 -1.0661154111520403 M14.038271019080035 35.35886312949951 C26.19822063561721 26.99684635656775, 36.214156146023036 13.507277575574111, 46.43964064023483 -0.3728571954939319 M15.590723485530667 35.79187116793837 C25.886850465517014 26.127942365323413, 33.15369997124475 17.068390594966058, 48.191476693330586 0.5052617898386167 M21.4777371195963 37.96635558942228 C28.69267644401077 29.56080415579661, 35.19183798227604 21.330389075423653, 55.03611753670937 -1.0773310144023291 M20.361552399758096 36.61374427957355 C34.43247709906855 22.721022147417834, 44.96154350750287 9.24241416609306, 52.381209675916196 -0.13467936167132777 M27.29151443110991 37.570216121099826 C35.50442052012612 23.407851927186176, 46.413914557026786 10.224551070911346, 58.381249988544 -0.04939406595416429 M27.601204510761683 36.620050991833146 C32.91234850956735 28.845470196841404, 41.68422183181296 20.178760551362004, 58.96107675237508 0.7683228240605438 M32.004826204233595 37.98217101388392 C43.911505668531134 24.36619921494683, 51.9795504173895 9.1485614674976, 64.42723173731346 0.29485724331126306 M30.714145012513526 37.51036549445954 C41.62638413594773 25.71736203001617, 50.00163059704473 16.74060004141143, 63.07403704514135 0.23387140338555668 M36.96049118054213 35.64549886123529 C45.929232387424435 27.58453467814926, 54.51930198409083 16.08662916873072, 68.13287978363051 -0.22894454725425106 M37.52302052744778 35.49960334380409 C46.38469882314324 25.82041272323561, 57.03144230931564 13.340173517025029, 67.81400887318715 -0.44666255895386797 M41.007951360648235 38.73520720250572 C48.62225628628454 27.641068987898834, 55.69523629931895 21.1440819367278, 72.6496066190699 1.451385405810015 M42.551436874536535 36.3244481046092 C51.36809742223696 26.02315647840691, 59.72408270484283 15.779700440869657, 74.00559198394659 0.22093336839361655 M49.68924423612669 36.182855881155916 C57.63622386781005 22.17186263008386, 67.48005023448476 10.165444469716086, 78.01044799424437 -1.235239108144171 M48.80368130121395 37.17442470822621 C54.77145208883253 27.60078222548234, 62.39601841015521 19.85096332329016, 78.4868453213918 0.9401396251704028 M51.92803055759022 36.77673368653767 C63.362436213849456 25.03425442827842, 75.48229285587807 11.870901843914723, 86.31603515072868 0.5216480043439162 M52.04750025145212 37.69832609439753 C64.32365867558734 22.718966353983763, 76.9801229022334 9.129268770148151, 85.8890092579569 -0.4452219822721588 M57.21556656661359 38.18668171211169 C65.38257846858875 25.74700529813095, 72.73374784997965 19.842319153694714, 90.42362258913556 2.0142417826260584 M58.59382159768519 35.9352865694745 C67.56183359416421 25.88413110314395, 76.11693673170184 16.942255361577832, 90.91928336261401 0.055438360808338416 M64.29973176380955 38.06426999722977 C72.23264523996407 27.69689118405876, 83.33161453422471 15.170622163474789, 93.16488321406828 0.30541831083128557 M63.579532408885285 37.32120844819953 C73.61524739438667 24.96942761844781, 85.61072792458926 12.156841735652819, 94.17237154582577 2.7746805764315496 M70.37100114075284 35.067620885352625 C78.32283647530434 24.347059963459046, 85.94545093638382 15.59767542850847, 94.65917221815855 10.310073038756947 M68.74720118248652 36.61983541192396 C75.76025766771804 26.94145547092822, 83.27199505220653 19.642449612785033, 93.03749594358325 8.374623014785449 M75.75147294805622 35.96158566583204 C82.06843205290613 31.487259011969634, 86.85992793900385 21.71014428691685, 92.77979445894314 14.046396238972633 M74.72785561246103 36.929179150390205 C81.19995689376275 28.1461262678151, 87.83076920052835 21.689116451519077, 92.75841429428263 14.004467911330252 M81.08084092729445 36.64256793212871 C86.74201348116824 30.993899987145568, 91.3317113668542 22.119014276275507, 95.25061902400631 21.019016710161836 M78.82070482124294 35.61259271994959 C82.97138606679513 32.4967463382322, 87.00380905353492 28.071487515537484, 94.12378450386751 19.589895090140075 M84.2779579063705 37.01561935206086 C86.62263527936423 34.60893843603655, 90.63559431400083 30.591018248513457, 93.0417053746997 26.128389317550486 M85.10377968804117 37.05884237719842 C87.42405758890186 34.2136014892161, 89.37208557434528 31.84299810914697, 93.3113483943517 26.466590938958127 M90.91140995489054 35.93870992092097 C90.76525846802717 35.722352288030905, 91.77066461052031 34.55126546666562, 93.8228931199532 32.2420807559073 M90.5889633010383 36.11628181948008 C90.92313675313288 35.50922798573568, 91.78049471317593 34.34861264147239, 93.78247820336894 32.373642316696426 M0.10444548165822454 36.46192329856294 C0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294 M0.10444548165822454 36.46192329856294 C0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294 M5.458079062382413 35.66775489400338 C4.845755643156841 34.4790866954558, 2.524582836855311 33.36637146402766, -0.1465964664618351 31.016005288765413 M5.913115186596943 35.916506853580586 C3.8709132416343706 34.129898965929904, 1.6647445096795521 32.928908406663695, -0.45004543297987964 30.430942496240718 M12.331776332139798 35.93783190645008 C7.016575251665989 34.31978167626398, 3.203267449707393 28.378569325811185, -1.4275945619744836 25.826808587087434 M12.68641881200654 36.48497755400567 C8.655613241059099 32.92782273209093, 4.004114284304841 29.68238541612503, -0.2729857706529675 25.547774467988056 M19.051709203873692 36.24665192719743 C11.42787898285343 31.1409751564346, 7.919064940873906 27.19898279956223, -2.0783647080714918 18.701046032089444 M19.533420672533033 36.94095558226303 C13.954995278626884 31.866335645209787, 10.802964404784138 28.533308323654527, 0.0808168187905931 20.55252919178799 M25.720243824347264 35.84057326514939 C19.121345305020203 31.203429183663047, 12.585834824456406 24.33567246701027, 1.9828372349979473 13.24991172631195 M24.7116761847207 35.27204085134635 C17.385782082506843 30.608658486652573, 11.625371847006235 25.44647874876629, 0.9221168126927806 15.214406633609144 M32.51786813673794 36.792925229381886 C22.834208189019208 29.416572952383333, 18.42085224002058 26.232473140907008, -1.2631091381172999 10.372494773990235 M31.32953679257303 36.85061104511109 C20.53103867733696 27.366156255227093, 11.127267686577643 19.634051272002438, 0.5149223218922154 9.729100893302581 M35.69047303919393 36.36342814082017 C20.921756903192033 23.148026768051974, 7.088522443026903 11.042047414149863, 0.1262597666220615 4.868767237011566 M37.16643221259761 36.388687509873115 C21.61764798199487 24.14298407265972, 7.285472012799232 10.880138281418986, -0.1657408037124326 3.709236620646193 M41.57114712575453 35.211429061351495 C30.79026617480801 23.406173158046503, 14.610896233559071 12.691334928918813, 2.335138177587009 -2.0915852847083123 M43.377075794693106 37.19420739541032 C32.3896728872815 25.806870586751128, 21.379775546539722 16.598481467859017, 0.7287198576091888 0.48969106594634915 M47.23470962479072 37.86598859089161 C36.55279066417422 26.758795488807507, 25.642060507425853 16.566458846963474, 6.783465920153468 -0.03395530533909463 M48.739747460589875 37.54736045202906 C41.12430903617064 29.149488304327395, 31.00135774404907 20.938383491301025, 7.508228262092381 -1.0309475720760193 M54.69933913967347 37.75655795435626 C41.379463197038255 24.666389212294632, 28.161110048534336 12.529653433466265, 10.441979330910241 -1.1738482068890947 M54.451672444518266 36.63751611753572 C45.11679139122971 29.04973934533355, 36.728339865272645 21.061609082093224, 12.85284081468532 -0.4791649000386018 M59.12820238944207 36.243656088632704 C50.55913210113796 29.780719995436677, 41.98883360883309 20.652691091427787, 18.90157950389662 1.0152705725289533 M61.92440003387694 35.50015060420817 C48.376524747168546 25.51762224830783, 34.34819340712977 14.343010671712722, 19.475864615286675 0.3318824818364927 M67.48398714724475 37.08895643964618 C50.238289807091 21.68852398385586, 36.88352524805656 9.891486331135305, 24.990188587260818 -0.976409896159721 M66.0320865076735 36.39318369586229 C55.177802613594395 26.71759564209701, 42.04169339859019 15.11436867046795, 24.33446375540403 -1.469768455134881 M74.50407888212078 36.766259194283954 C57.270845061364284 23.269818869388452, 41.31472663499705 5.927659099292448, 30.747926425042124 -0.3840738010678457 M72.6804217783066 37.01420097977596 C62.24622881500631 25.41516418362153, 50.11679863247487 14.508273798909272, 31.198585959936054 -0.5976649361748265 M81.35509369744113 34.931578077461765 C71.23411999709687 26.14899246565166, 60.19660027393721 19.602472682217734, 36.08164349561151 0.30180820772032035 M80.05491233000657 35.87679064375554 C68.87389033377806 28.45686319591566, 57.61414058046298 19.09650543002353, 36.89924552561309 0.7693984140230228 M83.83450707157682 37.45381743909536 C72.47437938317908 26.22773179426622, 60.235450454071284 11.150126056126709, 40.966549652339964 -1.6338438948794867 M84.41625995950382 35.24747056310741 C74.23772560602877 28.17952441183241, 64.07834491775897 18.392315975971773, 42.123902061665504 -1.075693341734972 M89.81757301834435 36.789390312081494 C80.287132903029 26.79283570354827, 70.99843347318927 17.280758116546366, 49.64784286426678 -2.100042421979996 M90.14103093647421 36.42655635861895 C81.35858520115417 28.310298480118334, 73.26762791931868 19.357178041474118, 49.21183923049196 -0.4314483661709154 M89.64772828477803 30.484128122392864 C82.45112105955909 24.89386145445192, 75.79671805593158 17.789429933582472, 53.29524215454015 0.27035482234402863 M91.70581020131144 30.156321106653483 C80.04004024429061 22.993795640760446, 71.43165246207708 12.291213809939215, 55.40244768610003 -0.8114312504689458 M92.67770311603107 26.669079326869273 C78.77982683930338 17.310621285252406, 68.27658910778011 4.0744862137521025, 61.978164242199384 -1.5683832250201526 M90.82206213002809 25.02304397694143 C81.38564809281493 15.37579261426356, 69.28115154616111 6.980144937324926, 60.4041517158884 -0.7270407823511782 M92.6034104904744 18.68971077542647 C84.51306907841125 13.160289137129269, 78.20223996078454 10.947607731156284, 67.32025648061546 -0.6047740891567912 M91.36376976935446 19.99246159478917 C85.92860742293006 15.885114591442798, 79.35551258088826 10.968282812622363, 67.64269217908742 -0.31117314901123905 M91.70325150214737 15.385057029951703 C88.26734129762269 11.535662838564349, 84.36530093782407 7.902974056152573, 74.70102559815933 -0.7394446701501565 M92.20049021918928 15.595167359974575 C85.12709624355112 7.967566980978734, 76.91494413336152 3.2516835053533413, 74.05650524742742 -0.38129485014277265 M89.88932532246365 9.554397210841927 C86.31680242360362 5.498622923889272, 84.14799310780596 4.650895842908723, 81.0327780013824 0.10997986401513749 M91.3540672763451 10.1132530226744 C87.18053213857112 6.098253167757369, 85.23590123928057 4.264733092891528, 79.10875403158498 -0.4510662271260414 M91.94336655079874 5.248401963464371 C88.99690573220613 3.6208691703443145, 87.80334434488266 1.3850811027111916, 85.45651023582168 -0.7520750587657744 M91.27384208045456 4.232693979270213 C89.24114205882104 3.1665622195677217, 88.02368007619651 0.8983498872736158, 85.62201111175663 -0.6592928023860509" stroke="#fff" stroke-width="0.5" fill="none"></path><path d="M1.174586271867156 -1.5460707005113363 C27.118742748464303 1.6834161959952205, 50.413216226404224 -1.919479361885181, 90.97451308550926 1.6532382313162088 M0.9062348874285817 0.8642510650679469 C25.0985692457893 -1.3254726374423837, 50.17008165133019 -0.29838122370604026, 90.1567249828452 0.20373453479260206 M91.68712762179466 0.2695192638784647 C92.99670256916117 11.529099737245643, 90.01200409475398 25.768838062785672, 90.12249753060432 34.381517641598975 M91.89089851914586 0.49450530391186476 C91.22343199860757 9.003582531374695, 91.81427242767518 19.301984519274537, 90.87054260908307 37.265500889512396 M91.13786170067878 35.02537130599717 C61.008743250676034 37.224461737968845, 33.70247598170355 37.54838121304743, 0.2720902319997549 34.43871908670167 M90.9751919144267 36.79211913177619 C60.559517760497876 36.53279177535703, 31.080699876405475 35.98700911987951, 0.5258173914626241 36.10243351885924 M-0.8370420578867197 35.5139539766858 C-0.9798263408422077 25.55694511080735, 0.9281791947603619 16.922013042414257, 1.030346130952239 -0.1619128044694662 M-0.10184073727577925 36.41690118739257 C-0.5795824076421916 25.505670132232652, -0.4618578995950878 12.715734052353493, 0.6752524645999074 -0.8882812978699803" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(496.7061936821401 744.6245876365844) rotate(0 32.32989353469566 12.628864661990463)"><text x="32.32989353469562" y="17.25772932398095" font-family="Virgil, Segoe UI Emoji" font-size="20.20618345918478px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">create</text></g><g transform="translate(374.54125713774556 736.5936601177054) rotate(0 45.46391278316571 18.185565113266307)"><path d="M-0.6514978054910898 -0.4505688603967428 L89.51836535515876 -0.05385351739823818 L91.36468723597618 36.12078564649323 L-0.38322308100759983 37.80978690868119" stroke="none" stroke-width="0" fill="#fff"></path><path d="M0.6703169289976358 0.8684796448796988 C28.12387672804778 -2.4033413198097673, 60.857215961302025 -0.7811367180450882, 89.73749583023282 1.5933087822049856 M-0.19997741002589464 0.890440640039742 C21.41093302067493 -0.6292326650917931, 41.90696288954714 -0.7253886959851189, 91.38542587957026 0.8247203500941396 M89.7393054272482 0.9443663116544485 C92.26390328279138 10.40997590862365, 90.95333751311898 23.277538249123126, 89.47380684869977 37.43361142685512 M90.27908666333796 0.7244136007502675 C90.75712896745331 9.17236501226302, 90.78360907595284 18.5410594123622, 90.33450965485217 36.418767209517455 M92.82838439005108 38.24610999634365 C67.48249654149315 35.39093048473516, 45.762213322451814 36.8023234715096, 1.3728474918752909 37.09241053869823 M90.4811077555144 36.85568427609155 C59.36646532484349 37.49997908306819, 27.060709422187706 37.24808994365436, 0.1320082126185298 36.539561535584426 M1.0152515713125467 35.57972905447582 C-2.0007362929545978 25.59053664270988, -1.006923553105507 13.749268654161714, -1.2785177286714315 0.670719301328063 M0.5679205833002925 36.46560671495149 C0.129152770621548 25.017458336028, -0.5601244908740421 13.47351241834718, 0.8530245898291469 0.34997564274817705" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(390.20104931861374 742.1503605689803) rotate(0 29.80412060229753 12.628864661990463)"><text x="29.804120602297502" y="17.25772932398095" font-family="Virgil, Segoe UI Emoji" font-size="20.206183459184757px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">cancel</text></g></svg> \ No newline at end of file
diff --git a/backoffice-product-list.actions.svg b/backoffice-product-list.actions.svg
new file mode 100644
index 00000000..b97af851
--- /dev/null
+++ b/backoffice-product-list.actions.svg
@@ -0,0 +1,16 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1115 672" width="1115" height="672">
+ <!-- svg-source:excalidraw -->
+ <!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1d2XLiSrZ9P1/hqH5t3DlcdTAwMGbnzYxmtFx1MDAxOczg21x1MDAxZFx1MDAwNFxiXHUwMDAxMlx1MDAwMoEkxo7+95tQ1YVcZshcYtuAONFcdTAwMGWioqzBXHUwMDEy0tor97By57//uLv74S7H+o8/737oXHUwMDBirWVcdTAwMWFcdTAwMWS7Nf/x9/X2mW47hjVSu9Dmd8ea2trmyL7rjp0///GP7Vx1MDAxOfeaNfx5lm7qQ33kOuq4/1O/3939e/Ov5zq2rrmtUc/UNydsdnkuheDu1oI12lxcVlx1MDAwMlx1MDAwZaBEQv4+wHDi6nKu3lF7uy3T0bd71pt+TNojvT4uoZxdTfesXFxcdTAwMWZlmoP+9qpdwzTL7tL8+Z1aWn9qe+7JcW1roNeMjttX++HO9t/nOZZ6XHUwMDAy27Nsa9rrj3THeXeONW5phrtcXG9cdTAwMDPg99afXHUwMDBm4c+77ZaF+o1A8fv3zVx1MDAxOWz32jHLtOz1tf9cdTAwMDY2P9urt1vaoKduYdT5fYxrt0bOuGWrd7I9bv7fb1x1MDAwNST9vbGvXHUwMDFivb6rtjKKtlfUN0+XQ0JcdFx1MDAwMWx79Poy43Rn857/tftw+i17/Osh/HDWv3hucX13iZ8g+e/pm33/+fthuJjG6CBSIFx1MDAxNn5IgZJcdTAwMGLJOCU4MFQyXHUwMDBmtcXiLWelXHUwMDFiLJ1LLZaLl8f60lx1MDAwNyqabTlOpN9ytX5cYuDC0T3w/rB36EGeXHUwMDE3/Fx09PxNMKFLto9cdTAwMWPB+b26tEBQYEo5Z/swXHUwMDAy91x1MDAwMHNcZqiEXHUwMDEwXHUwMDAyIVx1MDAwNFx1MDAxN3BcdTAwMTdWXHUwMDEwclx1MDAwMDhmXFyejqvNjX6MK8/pLduNXHUwMDFho44x6qk9o6lp/t6njzo+e8aW4SWy9c/2f3fb97D55ff///X3g0f7PrDN2fuPavv3/tj5uz/MluPGrOHQcFx1MDAxNZ6f1ze5e+eb7/tg29a8r7c6XHUwMDA3vvHuvlx1MDAwZi3Q1Vx1MDAxN+4hXHUwMDBi9NDEjlx1MDAwMVwixCElkFx1MDAwNadqXHUwMDFhm1eoM1/VnUSpluUv02q/W1xiPVVz+t7YqPyKsX1I1Vx1MDAxNO5bXHUwMDE4ontcdTAwMDaFXHUwMDEwXHUwMDAyXHUwMDAwXHUwMDEzys9C1Nv3YY3csrHavGvwbmuyNTTM5btHusGPuoAxbPV071x1MDAxM3D0XHK5q2PFu4NcdTAwMWZMozfacL/efY8811BcdTAwMWXH792uNf7xKeQy4otcXECJ4jxOg0PX4I+9Ub+cXHUwMDFhP0DDWGlgkX82Q+9lUM8j2ECXobNBXHUwMDE3XHUwMDAyXHUwMDFjXHUwMDA0u1xiQlwioKDoXHUwMDEzg8HZsdvRXHUwMDFkzTbG7lx1MDAxYT+hQLCv80NcYmdEXHIzPDCA87VViZuWmUi03Vx1MDAxOML12YyMc2FcdTAwMDcwp7vcK85cdTAwMDZgwYPgVzmd6qY4xCGEr8KpeTe2XHItXHUwMDFj/EuZP3pcdTAwMTmDjGFcdTAwMThcdTAwMTi9qUFcdTAwMDJcdTAwMTbqXHUwMDEzq282KzzzwqurTG9cdTAwMWN29Fxuj8f7XHUwMDEzvV9y0z/2XHUwMDFjXHUwMDAyoVx1MDAxN1JcZrhcdTAwMTQylPB1W1x1MDAwYt1cdFx1MDAwN3K5L3KV/444XG7uN1xmkExLNC+WV+NSXCJVf3DloDlcdTAwMGY7cCVcdTAwMDM7wOXXXHUwMDA2Llx1MDAxMMp54ehMuYmvXHUwMDAxd2xbXcNcclx1MDAwNXKFb7RcdTAwMDapgFRieUK6pG/a02GxqpVKtNJcdTAwMWN2cqVMZLxcbjt2IeBiXHUwMDA3vOxs4IUgWMBcdTAwMDYoVMFcdTAwMDaCYUSv41ra4O49IK+IYOKfb1x1MDAwMJxTzNRcdTAwMThcdTAwMTZcdTAwMTjBXHUwMDE1fVx1MDAxMX2MIVBwn0uTPm4me/N5PPRcYkZwJ713RvrFMlx1MDAxMIApIYhcdTAwMTJcdTAwMThKv0G9gM5FofthbVx1MDAwM1L/jDWlXGZcdTAwMTFcdTAwMGVPSDtk4qW8qJf4qlXSXrWxw/DU9vN7Q5axxu8wjDG6XHUwMDA3ilx1MDAwN1x1MDAxOcZcdTAwMWNT9jVE+yasiXifJodkXHUwMDFm3Vx1MDAxNL8/Zq9cZlx1MDAwMtX9cVwiMT+cXvu1TW19cPKPSWKlga5XSrm00Op4mv/xa/9ZyyV+5Fx0iX/GQEBFLFx1MDAwNFx1MDAwNI+5XlByvrQ6QyCrsGHU8u1cXCbil/Jcblx1MDAxNfYoe+9cdTAwMDFgKO7p2bFcdTAwMDc9ybXfYFx1MDAxM2BcdTAwMGZdXHUwMDE0SslcdTAwMDT1odJcdTAwMGKh61x1MDAxMON6Rp0jjKu3nOWdPtLs5SZXdte2rME/R27fcO7Ux7GG+t3I0PS7f448XHUwMDE5tTure+f211x1MDAxYpW/3Jlqh91cck7eXe3s7lx1MDAwNvSEOrt0jVx1MDAxMZJcXKjXXHUwMDE12GSaNk+WnUhr0o+741RcdDzPJCG3YDJcXLzPXHUwMDE0Y3JcdJNhh7znXHUwMDAzXHUwMDE2w1x0hpKAq/Lx1yzmpVx1MDAxY/+TgMNeyqVcdTAwMTHvYZ5dxKsghVx1MDAwMIxP8LD7s8KMxtO1XGJJsCZoiIKMrFx1MDAxYbeAeMH4XHUwMDE1XHUwMDEw74lNP0I8Q4xzwG5cdTAwMWTx+Fx1MDAxZdFwYJ775qLVs8YqtkEgeCmlXitXtFTV0FwiOnOI3ehFXHUwMDFi7dEtYF5SeVx1MDAwNcyLXHUwMDAzftE+5qWgnHNcIm5cdTAwMWTyPCyY576OXHLFaK3GOSGL3Y924lx1MDAwM6nh0mux5fTzwy5dRpK3gHhcYuRVXHUwMDFjm1x1MDAwM0qpXHUwMDAzNC8pWYtcdTAwMWTJXHJjXHUwMDFlgo3371O3uTDkPfW1XZaHXHUwMDA0qaiLy+Dh73P7XHUwMDEx0sKiYSdT9cFcdTAwMDBXSYNyv4J5uDCPXHUwMDEwvVx1MDAwMuYxXGKCeVx1MDAwNFx1MDAwNFx1MDAxNGztZN4u5iniXHUwMDE3hbuvOFx1MDAxNkpfvCNC1rpfXHUwMDE53JNcdTAwMWa2Vy3+1og8jSHqPDQqo7LeQ7eAd+pcdTAwMTnpfsJcdTAwMWTeMyAll1JccnRcdTAwMDKxL9V//PM99JBcdTAwMWN2j+NcdTAwMTHkmDNxRrzfmEbW89x2jt/7spfWwH6Y2GfEV0+IsSRcdTAwMWOL4Lb2kOGDZ1dOWKNS5NVOdcVcdTAwMGK1no+t7djL9UZcdTAwMTW5XHUwMDFiPHxnRr/b7Vx1MDAxZcpcdTAwMGbdSzVY/P5cdTAwMWOoVXns6pfFXHUwMDExzFVMJ8nhWuvW4Cq6pEOhTVxu0Wi8XHUwMDFkiZVcdTAwMTPTzOPWzM89XHUwMDAyfcq/YdC/vL/me4hPXHUwMDEwYzNqNu3cI43nRpxP4j3afO1lQ19cdTAwMWLFgN9cdTAwMDMhJMObz65zz+/Zur4mXHSQXGbA84lcdTAwMDXVXHUwMDEwI6HYfsCBXHUwMDE5NpDfXHUwMDBizD2fvbFcdTAwMDFCsZ7rdNT/vy5UXHUwMDBmOkvkXHUwMDFlcbD9eJJpR5ynodUxusvD/lx1MDAxM9p5YOjd2b9cdTAwMWQmTd2cbn/gUVxyjU5HgecrXFzvr0KAnFx1MDAxMVx1MDAwZVHwdFGp381cdTAwMTbf7HpNf00lklo6Z2hcdTAwMWFcdTAwMGY52WO+XHUwMDFiQuBvXGYhXHUwMDBlkj0/kCbCYKeeu2tCKrQhXGLxY85V3lx1MDAxY5XzbStblKMk7vTsWbJcdTAwMWR1w831VPpCkFJC2EmlXFzoJq0+XHUwMDE49Z5eZlx1MDAwNcCG/dWiPFx1MDAwZr34XHUwMDFiYrnr2Mvv8zg+pvdAaXos11wiZipcdTAwMGZPZVxiXHUwMDBi+lx1MDAwZdJ34Fi3s8HVSeHu+elcdTAwMTlcdTAwMTHf3CaGnKqQj1x1MDAwNKfn2Vx1MDAxY9ZcdTAwMWJST1x1MDAxYV0zMsxcdTAwMGVNXHUwMDFivrxUbyHu3Z2YRtSgTJGA6zTXWr/yJYo+q8KGY4ypuv1jtD2tduy33KRSjJB6+6HDsthNwquyMsK+yFNcdTAwMDFcdTAwMTJmXHUwMDFje7X1R1x1MDAwYknE6VSby3pcdTAwMTZcciGNsMxj18hEblx1MDAwMXq7KVx1MDAxNzVcdTAwMTbdg3NDL6DAhlx1MDAxMSaUT+2ZXFxyXHUwMDA1cH2NdP9C+lx1MDAxYfSBJ01cdTAwMTmhXHUwMDA0nTBcdTAwMGLoJep0u/WuNX9bpqeLaWRWSU/yt2AvXFy8V/QqdJ7fXoKpa7hcdTAwMDRcdTAwMDRcdTAwMTO/+Zg3YS5hXHUwMDEy10j/XHUwMDEyXHUwMDE0XHUwMDAyjKi46oSya7fwYlx1MDAxYU4uNo/b1Fx1MDAwMa1cdTAwMTjrrVx1MDAxMLxcdTAwMDW8XHUwMDBiJi+P92DaXHUwMDFhjtYuXCImV/U9vo730EhrkL/eXcXmWFLhMYljgM+JVKLRnvN525nMl9mqjC3mxVtcdTAwMDC89JDtxVx1MDAwMFx1MDAxZkxYo1x1MDAwMmZ1J9hvyvLtID40ylx1MDAxYejfXHUwMDEzhXCEhIAouE+Do3pbXHUwMDEyXHUwMDE36Uaq0Mi+XHUwMDE5r8nE803M8IBAXsOpXHSkrCF03WZcdTAwMDLhXHUwMDFidmpCJayB2HdGNMSYiLWIMjDiWXFOXl9bhYTZSFx1MDAxNWpcdTAwMTVzNmj0SjeBeIT45Vx1MDAxMVx1MDAxZkxXXHUwMDAzhUQqmlx1MDAwMuSGIVx1MDAxZlx1MDAxNl1ccvJk1nfQLtRcdTAwMTPm0qvmOIb22nQ4S1x1MDAxOC2j3y2nXCKx0bCkpZ7pLaCdelxuMlx1MDAxYrAjclx1MDAwZlx1MDAxMaeCYsowkPKaslx1MDAxYSmkXHUwMDE0gNFjRf7Po/1/qpqLqGo48lXmKzZbT/o5odKKarSn89qSsVljQWpWzl6suj62XHUwMDE2mkorgHtm9m1Z/O9T1UBKXHUwMDAxYFxigWPjyzyebmvl8XKSiVx1MDAxOYPYXHUwMDEwr5JpuS2nnHtcdTAwMDD6lHfDpK+yi6jAjjIpgoewdfCG1dA1pFxcoDwrP1x1MDAxOFx1MDAwYjR7XHR/qVx1MDAxNUh/WVxyweB+7V9cdTAwMDCiXHUwMDA2Pork+ZrIfYushiDO1pqUY/HudZF60FX6a6tqOPK1M4gog1x1MDAwMlx1MDAxMFx1MDAxYzw5+mTlXHUwMDA35YQ1XHUwMDFjVVx1MDAxZXOleSmVm0WW6bCTPd9cdCBcdTAwMTD7vlx1MDAwMOJcdTAwMWJVNVx1MDAxY1wihT6f/qJbXHUwMDAz6T2O38qNjF1jWk7rQll9aL2WQ8713Fx1MDAxN4NcdTAwMWKdNlx1MDAwMyR47uaNjEl7qi9cdTAwMWZJsmCyXGZ/bCRcdTAwMTax8HO93HHsVVx1MDAxNPtdXHUwMDFlxzeoaqBgXHUwMDFjXHUwMDBi4CX2MKLvIH/fuKzGP+6FXHUwMDA0Mlxu+Slpnr60m2BReYkv5yOpzVx1MDAxYvOBRf2c8VBcdTAwMDW+ROzYh+Q3oqtBXHUwMDEwqVx1MDAxMVx1MDAwNvl18N9axkt8/NqNuniMmTFwVlx1MDAwZk2Zni2v27lGfpBzQVx1MDAwMnF6gq4mWmqTXHUwMDE351mUn8spc/RcXHpemfLhXHUwMDE2oEd3/Vx1MDAwM0FCo6tBTMVC2POarlx1MDAwMK2vke5fSVbj6ba9XHUwMDE3siq4MHaCXG5cctPRKLFYNlx1MDAxZVx1MDAxN4l4hVfs9FvjJvo8cY9BrM+g8Fx1MDAwMtZcdTAwMTJQVSNcdTAwMTAkx3XpITaWMIlqPugkTaHCXHQ7IVx1MDAxZv9YXuRcdTAwMWGd9muTWpplvVx1MDAxOJNKtXFcdTAwMTP5eMHZ5dFcdTAwMWVMU4OAXCJcdTAwMWR1XHUwMDFix3KDIYd7eDQ1XHUwMDFmTOzmXHUwMDA0SuVcdTAwMTbw4FGq+WRcdTAwMTclmlx1MDAwM1x1MDAxY1x1MDAxZrxcdTAwMTRcdTAwMWZrhbey07hcdG9I7vTxu1xi4oOJajCiaohcdTAwMTXkhr2hkGlq/LuSXHSOXGJg6ITpTulOPD7KsuLTqDvpPMZT9eFrZ3BcdTAwMGKIh95VVC7n0lx1MDAwNNLUUCwko5TeMORDpamRXHUwMDFmrGxcdTAwMDeR4ESckFxmj+NVKtsoVOPOXHUwMDFiTTqiJCatuV9DgXAhXHUwMDFlYXJ5xFx1MDAwN9TU8HXRXHUwMDBikKOamlx1MDAxMEM+LJpcdTAwMWFvkmFcdTAwMTfuXHUwMDAwsXXbyVx1MDAxM1x1MDAxMjyyOH4ypy1DNkRcdTAwMTRO8k61Nm7dRJ9VurMkXGZcdTAwMDU8PKJcdTAwMWFcYlx0XHUwMDA1XHUwMDAwXHUwMDAxdr6w9X+qmsv0qlx1MDAxMf56TcCBUC/5hMGl3OpEyq95c85WXHUwMDBm00KLWa2k01xme6VcdTAwMTWIPUNcdTAwMGKhrIZcdTAwMDEusVx1MDAxYWCOVVqTz49cdTAwMGZLPn9s9OSsni7rkYQ92TZrOfdcdTAwMTD0Kf+G+Xfjk0C9XHUwMDFmIGhwZVe81V9ccmeuVlx1MDAxNOwp28lWc1x1MDAwZqWm38y/XHUwMDEwVVoh81fVUIhvSVWDyHrVTM7CjdSDztJfW1XDhK+dXHSEXGLBXHUwMDA0XHUwMDA2V681q9wsPM5HrjXR3KdJWc/wwjTsVL/Tu56utWzhXHUwMDEz1aiojjDl6+FjXHUwMDE2VI9cZqdaKUF7xWdnuWjAamT6MlxmOddj/2mvyjawwihcdTAwMGVO9qt4bD6YzdFzZ1x03lx1MDAwNsCy3bdG6Fx1MDAxN3uEeKc/XHUwMDFl/cZ2XHUwMDFj3yGrWVx1MDAwYjgowkeT9NeF30FcdTAwMDK/bVlcclx1MDAxNL7lK0lV1Ev5XHQrjMRcdTAwMWYq0W59nulEV9XqtFfKmPPRjahq3mc2lVnciKqG0/Vq68dz/YPFwFx1MDAxY8f6NoJtPlx1MDAwM8VWLTpcdTAwMWNlriuq+WDZXHUwMDAzuO47KDhcdTAwMGZOy7pcdTAwMDVTXbOamNqj6ajczsRRVr+RbjXvY0HGw6OqgYCpWIhcdTAwMWT3q8+Krq+x7l9IV1x1MDAwM4V/Vl5wpthcdTAwMWGc0FrMfHxNTZaYjVquk+dvT3mtXHUwMDAxb2JxXHUwMDFjvrNqXHUwMDAyXHUwMDA3oVHWoLUjg5iAN2wwYdLWeIa1vZndgiDM8Vx0nvu0PbGtcVx1MDAxZfBEcSHiXHUwMDEx802XyZvopSd2hJdcdTAwMTdcdTAwMDF8MHFccsbrtSvE0bWgQo738IhrgP8sJL5cdTAwMTbtXHUwMDAxQoMnTFxmkZv12extXFztd/r90SoyXHUwMDEw5CakXHUwMDA2cqdF00VcdTAwMTBcdTAwMWawY43iXHUwMDFkXG7VXVx1MDAxY5Oxh1x1MDAxZPKhUdf4a1xyKINcdTAwMWNcdTAwMTF5QsOahKzJ4TxhI7ycsGmqXHUwMDE4iWTS2i0gXHUwMDFlQnBccq8mkLhGcEEoRjfM8aHS1lxifzGZpFx1MDAxMEFJgmtccqrTRJtcdTAwMTiNVsHNa1WbTJuT13rnJvCOML083lx1MDAwM0prXHUwMDE051x1MDAwMCrI0ZlKIUZ8aKQ15INiP1x1MDAwM1x1MDAxOFwifsIyUFx1MDAwMz2dwFx1MDAxYUlEtVpcIol5Op7vXHUwMDAw51x1MDAxNuBOPcmVTZZHeqU1u/dxSV1ccqVcdTAwMDAxdM5cdTAwMTTP/2Q1l5HVcH9cdTAwMTFcdTAwMWJcdTAwMTbKvVx1MDAxMN4l2Y7mU2NDc1bOVbLtXHUwMDE5WqxeUqabdP3KXFyhqbVcdTAwMDK5Z2QhlNVARtdLKGN5TMn2Nq2biUbjsZhcdTAwMTb5J5azkjjd21xuXHTPPf58yrdh/otcdTAwMWYgLDaT54OHr5w5j3bqmST0dmMyf51FjVx1MDAwNFx1MDAxZfpgMESlVvjBXCJQXHUwMDFj3JSuXHUwMDA2XHUwMDAySKhkXHUwMDEwXHUwMDFlKy9dXHUwMDE3qlx1MDAwN12lv7iw5oNcdTAwMTWUkboxik7ohlAxXHUwMDA3WVOmrFctypupXHUwMDA32F09XHS/zsahIXvxPn5gMpTCXHUwMDFhytTt8KNU369kesRe6WBIXHUwMDA3znw8rMXHcFx1MDAxNHKqR75cYlQvR1x1MDAwMFwiKVx1MDAwYp64yUuNgLaWeq0sRKxuv9bnejZcdTAwMTN6rifgvVu/XHUwMDBlYsMkqyGSq/FcYlx1MDAxY+1EeV34XHUwMDFkpO/bltX453jWXHUwMDFkzymB5ISVRXj8Nfmq8X4+9oysTC5XXHUwMDA3zeeLdY5cdTAwMDSfslxmwpTr/c40VPjh2fLd9qDu6JB/452x8ouPXHUwMDE1M1x1MDAwMTV4XHUwMDFlXHUwMDBld89KpH4pXHUwMDEy4VvyYZRCecKSXHUwMDFjVHTkQ2xgsYiTay5cdTAwMDFcXE3sqV+9JyxA4eSeSM/Pjlxclp1cdTAwMTM1Ulx1MDAxY6jqXHUwMDFmXHUwMDEwJ1KOXHUwMDE48mku823kXHUwMDE3gtSH53nsXHUwMDFjv8f0l059+Fx1MDAxNkz9XHUwMDE3olSWzlx1MDAwNFx1MDAwNcHd4GF0VTOb02i8YMCnVis/wTa6mFx1MDAxYvxJ85Fkh2epOJ/XXHUwMDAxwVx1MDAwMXtBdNdgXHUwMDA0Vz6HpEdXlVx1MDAxZsfAc6pgJN/0N1BJPy77T6128ZxOhcdDOuJUtDqdO8e1tMFhv0K8O+HbkuhcdTAwMWa7XHUwMDE0/nJJXHUwMDA0qSDS217/XHUwMDE41F9cdTAwMTeJwvhp2S/qb8tefVmUOTNeXHUwMDBmN9RcdTAwMTmEe1A/X/pcdTAwMDR6PIQt1Pku1CmGUFxicnT5mrNC/XPE6V+XYUxcYiSAXGIurYKDvpNPjDOtQY1GSab4IMbZi2WLP1x1MDAwNycuxCWZ82DAtsecXGJcdTAwMDLMuDLnY9WY0UM0rYNRzJ60plblcfnc67ZW4aFO03LcsPEn9Vx1MDAwNzxX8Vx1MDAxOOPkXHUwMDA0/oxnksUpb6BydZlfgadUleRmdrhcdTAwMDEv6W5IpvjznCGZh1x1MDAxNLf5sv12zlTQtXD5XHUwMDE4g55cdTAwMTXxn2PQXHUwMDBmXHUwMDA2ZL6eO4NZcFx1MDAwNs2aw9zzoLuozprNcSpa6D4kTT8hR0hcdTAwMDBcdTAwMDUhXHUwMDAxl6RQfFx1MDAwME/7XHUwMDE0XG4l/dnu7Vx1MDAxOIWOR0/xJHPcabJZSZTkqGjXnlx1MDAxM+GgUEd370b6/G5sXHUwMDFimk9m6ypcZuovXFxcdTAwMTJcdTAwMTRcdFwiRHBcdTAwMDJFlWgy+1x1MDAxNjNqc/7cy2eXPVxyjv36eoZcdTAwMDXvSO4zKDgng1x1MDAxZUI83s9PMMgxwt6+fFdA/Fx1MDAxN2Dlm/9cdTAwMTJAckZPodFcdTAwMTVPNVxyK718XHUwMDEw6WpMN53YaFTx671cdTAwMTNcdTAwMWFY7XmiXGaRc8KKXHUwMDFjKmTthTaQcLRudO+jgrvOnEF/dbxYt1x1MDAxMsDeJYCO9oC3htVV1K6/ZCurLEqDVHZRXHK5XHUwMDBmXHUwMDA3MZS7WMHnpCB2QNGyP+YyKlx0k9ino/B1x1LNXHUwMDFhdVxye1x1MDAxOJ5RVPorZCCAyn2hJ+h/hZGF7Vx1MDAxMmm2JjFcdF7SZlx1MDAwMfdeZMgxrIa1Pb47I9uhXHUwMDAzhSG8V1x1MDAxN4JYcsIoR2FiO/9cIlwipFx1MDAxY69lOcGRYpt18FKXy1VcdTAwMDW1ylAr2rmpXHUwMDFi8lwiovqWu9nt87JcdTAwMWRccsR26yUsXHUwMDEwJYCfp4b4RbprKYSY4WE7XGL9ValcdTAwMWNTLlx1MDAwMKTBK+HN7CSXqXaY8bLqtK2J5TxqxUm4QUx2XHUwMDE2ombolyhVQkoh8nSCu1x1MDAxNvNxhCRAJEzMh/1bjFx1MDAxM6lGSYZEcNBM0t3SMCPruaV0hs9VnCvJYsjHSFxu38/4ZWrIXHUwMDA0XHUwMDE3XHUwMDAxXHI50ITkgMOHMFfeXG4/XHUwMDFjcV6XXHUwMDAxh5Z9ppzJXHUwMDFmv6LkXHUwMDFmrfG47Lbc9Vx1MDAxZv1cdGn19Y3Orzvdlrl/zFxmfVx1MDAxZT0sL1xcK1xm/1j/zf/8P5+31VxyIn0=<!-- payload-end -->
+ <defs>
+ <style>
+ @font-face {
+ font-family: "Virgil";
+ src: url("https://excalidraw.com/Virgil.woff2");
+ }
+ @font-face {
+ font-family: "Cascadia";
+ src: url("https://excalidraw.com/Cascadia.woff2");
+ }
+ </style>
+ </defs>
+ <rect x="0" y="0" width="1115" height="672" fill="#ffffff"></rect><g transform="translate(10 10) rotate(0 547.5 326)"><path d="M0.28300008848309516 -0.10272883251309395 C322.7684008703567 -3.249135070387274, 646.6541930401697 -3.1787367158569397, 1095.0694143541157 0.3002875201404095 M-0.14274714626371862 -0.14749729596078395 C435.26786967543893 -1.4277095694653688, 870.4879770824687 -1.2544425983540712, 1095.0382535990327 0.13947891034185886 M1095.5105304963886 0.6175911776721478 C1097.0417141860278 193.74504766874017, 1096.244575185135 386.84475681483747, 1095.3573703296483 651.42318245098 M1095.3055815752596 0.3282193545252085 C1094.1187614355683 166.57846095710994, 1093.6736810718178 332.37165948413315, 1094.8600011285394 651.7144757274539 M1094.4769715793432 651.2951064698398 C805.1007265179418 653.0641451742687, 515.407929485105 653.033354869131, -0.30353157445788387 651.4273693434894 M1094.6100103791803 651.6110134128481 C746.6022469569929 654.7763040247373, 397.94955517482015 654.8151921811514, 0.17216270528733732 652.0659469250589 M-0.41345302984118465 652.6087965361774 C-0.9362985856682059 436.04914478696884, -1.2384745128303762 221.09978280216458, 0.11046352460980416 -0.6152035601437092 M-0.10833036340773106 652.3850279454142 C-1.3619703296124932 496.12023136541245, -1.2095981481969353 340.4985137801617, 0.05485307537019253 -0.18719880543649198" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(64.00000000000006 144) rotate(0 439.0211364959554 -0.12335971165444448)"><path d="M-1.166959761455655 0.08535477407276626 C144.83538518923027 0.18754945810884838, 730.4803302132837 -0.6348739670589263, 876.8331211020799 -0.5568007582425707 M0.4212476344406606 -0.91543791487813 C146.74793048481146 -0.5584875407442389, 733.2945251532396 0.7690726523474164, 879.2092327533663 0.6687184915691979" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(67 108) rotate(0 25.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">image</text></g><g transform="translate(156 111) rotate(0 51.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description</text></g><g transform="translate(347 107) rotate(0 43.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">sell price</text></g><g transform="translate(471 104) rotate(0 28.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">taxes</text></g><g transform="translate(552 106) rotate(0 28.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">profit</text></g><g transform="translate(670 105) rotate(0 50.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">stock left</text></g><g transform="translate(808 106) rotate(0 19.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">sold</text></g><g transform="translate(65 181.01056337356567) rotate(0 24 26.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.10562446120662006 5.778505192001455 C0.712039556784668 4.6270861441647515, 3.167437908844614 3.755203030722913, 4.418349856468386 -0.09472397530104576 M-0.4239287804486105 6.11397725236892 C1.6592724453900873 4.4810907954860655, 2.7182058267483202 2.3891493252281633, 5.074895011591262 -0.003541038945574171 M-1.1174246287811889 10.575922696709215 C2.734097381502821 9.892022070709062, 4.42469628704284 4.229663367708016, 11.356855812621248 0.08554193778780705 M0.7890500427316534 12.414791293114005 C3.1170898113410765 9.233976224064163, 5.458744807902177 6.151746706105989, 11.284780359965694 -0.6686331984505295 M1.5140093704173108 18.90663629481631 C4.631582870951766 10.70237873024596, 11.789564301585466 2.436144699512777, 15.324664840012272 -0.06554243090329859 M-0.9793816544628005 18.42847430696773 C2.6943916622224697 14.781004011416114, 6.630301413952843 9.435944292150975, 16.01880412409403 0.7318394795921614 M-0.7650188410469081 25.73588101164913 C8.920746454391853 14.204511780247685, 16.51723508347639 5.850307444259318, 21.03153752563324 -0.8548783628106591 M-0.13995537979535122 24.174219085550963 C6.353481344144762 15.884491401412916, 14.278609592607756 8.278488104982047, 20.483883683847154 -0.6534752189949629 M1.263320508464183 30.88475954881703 C6.634919983337339 20.997597609901433, 18.019070567320767 12.31014410816875, 25.363465760510774 1.7923018498358072 M0.514747276953365 30.50630129012113 C7.232636173023155 21.76585498391409, 15.854500124793761 13.240760619998529, 27.222094850290926 -0.3229053724545299 M-0.1816200950276574 37.33702668156599 C11.527719900241996 25.177328854358297, 22.92828748330984 11.741319647637276, 33.18218918465713 -1.8500347229406948 M-0.31713091499176826 36.094236193971085 C9.003870338195647 25.813337968368266, 19.106196162096666 14.571353426451065, 32.01635035914073 -0.05598122521645976 M0.15271495949933467 41.82448406014197 C9.363807590350156 33.604965002276806, 13.999529493766772 23.65347718772586, 38.57091444712256 1.4464641847741326 M1.092826251094138 41.93664063289367 C7.933692720034754 31.46025457518482, 18.35487809667769 22.59708821206704, 37.149350267649936 1.1219568616804203 M0.8964073210953885 47.77860895045929 C16.112699673497225 32.28602922829711, 29.463642620133502 12.469397766832557, 42.39528743791931 -1.4856406069965118 M-0.121118667535562 48.78161174585007 C9.684219499470776 36.36219855359981, 21.097344193744245 24.67004479958502, 41.99580418653392 -0.941668231193816 M-0.3819630912367238 51.98037759231836 C9.28944799735884 41.288633883020026, 20.15342841706237 30.915622540323604, 49.367421056097626 -1.4844030823383285 M1.173365468825029 53.245300333187586 C14.898183582059922 38.07296710726578, 29.21486143403588 20.43394257234298, 48.11770904804605 -0.3327437398779942 M4.512945795496279 54.266603520296854 C17.07180769635458 39.88788769460177, 31.05934848771519 23.730698476269385, 50.982631325707736 2.6101696496629785 M5.826192266372317 53.98699917753075 C16.077365923864303 41.98262744992661, 26.735884666447724 30.594581843956334, 51.232335221939685 2.066944662089057 M12.155147918373107 53.764533365977385 C24.73624920233673 35.54278929731255, 40.60505304605046 18.803580700059833, 52.487996424790396 9.888907774698929 M11.188017507888137 53.412488846009055 C26.097623831881933 35.34569988571607, 42.080951438006785 18.597359324908112, 50.2120355444587 8.981253283445731 M17.682537426443997 54.522831895274244 C27.902427521520288 42.58325548531826, 40.57473611963459 26.263301322244107, 51.163033772348356 15.79685003256995 M17.32669750062585 53.77377272758367 C27.67237536344733 41.78874250399487, 39.434652296313104 27.811126954941045, 50.396172405308974 14.631801674539332 M23.765447709721222 53.44437242821063 C33.88581958947318 41.82398626612125, 41.75027613040699 28.86334052596148, 51.3519048833939 18.594291618299255 M23.02709810530086 54.57061745282466 C30.297295479141837 45.32358508948573, 36.28785118698312 37.9823167736937, 50.65457260270591 19.66777052843995 M25.670679167255003 53.01141348070085 C35.99282662780928 42.46358770567434, 44.36655474694058 30.40307274721701, 50.80773828197726 26.308412922801146 M26.886372504166502 53.74447953569323 C33.437658591655314 45.387737891430675, 41.842208972124865 37.83730059483703, 50.76310025640287 27.586280421608755 M32.822471439057615 51.935422122768095 C38.00038396795368 48.40436985680702, 41.70659981835796 42.162816927297115, 51.59754270412019 34.13781247132158 M31.906183432938185 53.79707873175942 C39.79705629290511 46.05624461635858, 46.99615034029385 37.920247420464335, 50.339820010624734 32.60567475233859 M37.866531174179286 53.88225062032667 C41.91956788890755 51.57672740002783, 45.61626031866881 44.71015965266845, 50.44653001084444 39.404135664106555 M38.58798094886926 54.984324679984425 C42.373352179133924 49.16938787278426, 45.3389749752 46.43865620930032, 50.22056994709638 38.08589848142231 M42.778446742715836 53.91791590668237 C45.87370516278307 51.53897573951606, 49.082079417606295 46.502463712105275, 50.894227547431235 45.99206253259846 M43.490267962739395 53.54002766382856 C45.315296859170566 51.99502598868141, 46.73625789037814 49.796692263326236, 50.75788056571024 45.686907878261366 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M5.55558527688535 53.24474245696575 C2.7773596014310655 50.534882422221216, 0.5940922238444915 48.59089050233872, -0.8499289608364633 47.30767662286122 M6.212171928761919 52.939015190818026 C3.8187515091547755 51.386020793981956, 1.7973774544347234 49.444468371683364, -0.2521375584220223 47.29646257034798 M11.43727654129596 51.59293537523378 C10.329994601092338 49.60393688995907, 7.295997248308073 46.99222353448717, -0.4299027520187595 41.86267425145829 M12.697813531610683 52.5739948571824 C6.780077195378912 48.6120961554784, 2.3319492560285005 44.21201698108727, -0.5122637252279023 42.216136472931744 M18.281638977952902 52.64128379643208 C12.575542172619008 49.418425714019754, 7.495861617352492 44.77008045966858, 0.4528664261380264 36.21363275152093 M18.108505676404242 53.3236847410748 C14.676674236342425 48.56571938715583, 8.529895157085782 45.479228215114595, 0.03776857576314896 37.02529730581141 M23.120410543578757 51.74278458022296 C13.534962974150464 43.193500845249375, 3.1782117378665298 35.25629736126288, 1.3726865094281084 33.11874503635775 M23.697378838147117 52.57933168952137 C19.311537319914756 49.63148459177489, 13.460487962059405 44.37719458372209, 1.055023209576989 31.193597922967484 M30.8966786309557 52.80879890655415 C23.662220463442832 46.7331095697774, 16.40644263192145 39.57607964175425, 0.10467819230498776 27.289228879972622 M31.401640252903288 53.81125193850385 C23.414414208412236 47.28487847146896, 18.50518439728561 40.5170402454635, -0.8033509644320418 25.813804026819096 M36.074473786669444 52.918016822913394 C25.11642487715973 43.02828489313245, 14.3329381649189 31.884337400468198, -1.2569615327545396 19.847932320815303 M36.89262637546159 51.961630408556864 C26.168954458111507 44.59397008885212, 16.112926968667363 34.080068805007855, 0.26903176691597785 21.070500716362872 M40.79486800319678 51.896411367750446 C29.49183789669052 39.548714042144525, 12.924685724453994 28.385626269681666, -0.16617086916476786 15.604014156373534 M43.07828541900194 52.73848969867704 C34.39381672537266 45.324885484813215, 24.961888078404094 36.11949431912208, -0.6287577665901214 16.07188853713343 M47.15079807712341 53.75626633855305 C40.06707933182965 42.84177693827111, 28.72192933263241 34.643872466586004, 0.7251534255510945 8.988916175097074 M48.40925071331317 52.523467854399 C30.885641167761275 38.516202174262276, 14.800061017581939 23.09666711343347, 0.27646302322957705 10.2545057131274 M49.499565609143964 47.383676291846896 C30.86398171828729 32.22612827695339, 14.58273549971672 18.747726341616378, -2.1580206020212445 5.495390924473663 M48.22259070479303 48.52806836779531 C38.532196913718955 39.501474970413526, 29.22027931661231 31.028300110322693, -0.26193815883609384 5.291005914879402 M48.850690287626314 43.7229910070438 C31.943287855983947 27.13357168410475, 18.624653813003587 16.501881179088304, 1.036316540595009 -0.3865260570469358 M49.160912240012514 42.44685464132466 C33.43949824889815 28.636990626415667, 17.952908966372423 15.122350118250544, 0.8710181503927846 0.49488049138607 M49.10305660504725 37.96737102259352 C34.621526396953385 22.748630206317735, 18.75535026577142 8.835751172527264, 4.654425371990509 2.1740427889375775 M48.440757282151544 36.11675552398368 C35.16449841691548 24.56458957538787, 20.767439318034363 11.812403254974356, 6.250382752709992 0.6327674990965813 M47.35741385799249 32.24628763598378 C38.004320800177766 23.14197631938842, 27.900335786047243 11.789167623205959, 12.000416252191556 -0.740922568018612 M48.19635291099896 30.673315311306965 C38.11598659268596 21.71734611692051, 26.3501092716837 12.827697871289203, 11.406126603844953 0.3034620931119951 M48.266552788938824 25.56149513566435 C38.89819751975069 19.575857995829047, 30.383636159327764 13.408204685258386, 18.025908048674946 0.6027540355342627 M48.86103796473468 25.955415977291175 C38.94524994316787 18.549244899473237, 29.379304833126913 9.88091422665454, 17.54404947947759 0.8077603099289536 M48.310128944471955 19.22605856912297 C42.42808375875442 15.19023580724047, 33.049439511245524 7.471022324384149, 22.321884433026383 -1.5619404779160693 M47.473336398147524 20.413054942470907 C41.81962099414832 14.962946642453282, 34.18540864306221 8.30103429564001, 23.56888627189673 0.46382363258206105 M50.14483931706867 14.800325974809398 C43.05980653064605 13.44894722137418, 40.20629400109304 5.434523420480339, 29.468870522722668 -0.5672361949198361 M49.05838392441741 16.512067305842805 C45.13246511362931 11.335980140178865, 40.05809875780326 8.970908347563615, 30.4657336317823 -0.988098777432036 M47.20898077331603 11.172520184602575 C46.02998851730225 7.175180685945487, 43.03668327691043 5.428477623827735, 36.26923493467381 0.6524616527305405 M48.7500475258299 10.505730781650158 C45.580758303107345 6.720993282448451, 41.391177441262215 4.699411061306543, 37.24001024997903 0.947706750913472 M48.504556553442974 4.780874481459597 C45.97810916167401 3.3867923009171306, 44.66049198621663 1.7014089559151044, 42.83635921025241 -0.5323754346761916 M48.37182454839815 4.874258963053564 C46.27116637671207 3.2745056664264114, 43.92292455238729 1.6563683806124778, 42.36414958269859 -0.16330708515085918" stroke="#868e96" stroke-width="0.5" fill="none"></path><path d="M0.6146841067820787 -0.5834815222769976 C17.24981013275684 1.954684037938714, 38.87346345670523 1.6631277392059565, 48.18662339635195 0.49796530418097973 M-0.7575594941154122 -0.15434044506400824 C17.31205180343241 1.0470470016077162, 35.081537025235605 0.45269901800900714, 48.35066975560041 -0.8202274134382606 M49.80522185750307 -0.13571646995842457 C49.21652545151302 18.533468589838606, 49.28607876715252 40.09495520908388, 47.25796139426531 54.054462580010316 M47.21079267468305 0.17319962475448847 C48.41616207442248 16.62807494094596, 48.23179444751704 30.820835732296125, 47.62012265529485 53.9406937370077 M49.69581949897112 51.903034834191224 C32.90306157507003 51.21025277979674, 17.322097550705077 52.81465061314406, -1.807249603793025 51.254375306889436 M47.32855032291265 53.45263731572779 C30.574814233742664 53.34825427073987, 14.502092205546802 54.105215109773, -0.8791403034701943 52.01841119024905 M1.367348613217473 52.28490862064066 C1.2964134134631602 38.153827504906815, -1.943988867821172 22.244515722058722, -1.6293098907917738 -0.41773840971291065 M0.05088312830775976 53.179486543871484 C0.4115882316324862 39.501032089162635, 0.6703148582670839 24.31858078539372, -0.9194885054603219 -0.6296470751985908" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(160 167.51056337356567) rotate(0 81 40)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">easy encryption book</text><text x="0" y="34" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this is some nice </text><text x="0" y="54" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description of the </text><text x="0" y="74" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">product</text></g><g transform="translate(376 197.51056337356567) rotate(0 30.5 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:40</text></g><g transform="translate(459 197.51056337356567) rotate(0 39 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:3.25</text></g><g transform="translate(551 197.51056337356567) rotate(0 41 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:37.25</text></g><g transform="translate(686 197.51056337356567) rotate(0 33 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">10 books</text></g><g transform="translate(817 197.51056337356567) rotate(0 15 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">527</text></g><g><g transform="translate(162 190.60997993238266) rotate(0 77.42248349078 -0.09941655881701195)"><path d="M-0.6694575022906065 0.6169069301337002 C25.402197401598098 0.6707725416868924, 129.36748919971288 -0.7288406599313021, 155.5144244838506 -0.8157400477677583 M1.1799385796673598 -0.10482087688520547 C27.131191019285474 0.1816919289343059, 128.58180216060953 0.03209478182718145, 154.31145187424497 0.29342167837545263" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(891 191.01056337356567) rotate(0 30.993243243243228 16.5)"><path d="M1.3511249106377363 0.15056139416992664 L61.73554446301549 -1.222414968535304 L62.79354031882375 34.29554075188935 L1.0476344507187605 31.362570645287633" stroke="none" stroke-width="0" fill="#fff"></path><path d="M1.444743873551488 -0.7684797961264849 C19.564320276170417 1.0145303967447852, 36.12237514863798 -0.9989268419293788, 60.80937539911955 -0.3292982894927263 M0.06992046441882849 -0.8692620387300849 C19.818806055841367 0.09957273935508992, 40.12266811058178 0.33059172963333394, 61.693479126646515 0.24173316452652216 M62.927790754801926 1.6983358543366194 C62.42342363543935 13.676700907479972, 60.71377925820775 23.648197598196568, 61.39449971295088 33.20645466260612 M62.22898656721353 -0.2786032250151038 C61.75852855393789 11.989240319561215, 62.05110108206175 25.583226175233726, 62.330855762913224 32.049342394806445 M62.70912783718794 31.62063970975578 C39.28927419878718 32.75240447842856, 14.015540631797563 33.860975590584474, -0.9415071588009596 33.50793751887977 M62.3230663895154 32.04849910829216 C47.6689671621746 31.838553862932542, 32.43379703487043 33.04612581646762, -0.010968969203531742 33.51688757631928 M0.7993142027407885 32.69588050059974 C-0.07501333438791336 22.50060437591746, -1.9222500272933394 10.393552662245927, 0.8337149638682604 0.25502088479697704 M0.6549858590587974 33.82240262720734 C0.37873217535205184 26.119814921263604, -0.14756393360905348 18.49367470219731, -0.6587352314963937 0.19164043758064508" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(899.088963963964 196.6715994096018) rotate(0 20.95945945945948 8.918918918918905)"><text x="20.959459459459453" y="12.837837837837832" font-family="Virgil, Segoe UI Emoji" font-size="14.270270270270267px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">modify</text></g><g transform="translate(967 192.51056337356567) rotate(0 36 15)"><path d="M-0.2765782196074724 1.2927613276988268 L70.88204935006797 -0.5958228688687086 L71.03429683856666 30.5426944512874 L0.4038580935448408 28.63403350301088" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.9217289071530104 -0.7760771829634905 C19.004610259458424 -1.950476394891739, 35.87473795451224 -0.9825970399379731, 70.32646274752915 0.6832859795540571 M-0.6388314226642251 0.9683965751901269 C17.102149596624077 0.3464421656355262, 34.311955956183375 -0.4028769407048821, 72.66723661031574 0.17841655109077692 M72.79291582293808 -1.1603109557181597 C70.56873342907056 11.840510676614945, 72.84097877657041 21.431692950427543, 72.47287208028138 28.00818726234139 M72.02811483945698 -0.8685845723375678 C72.48396070627496 10.191743288189178, 71.27159606246278 20.94903255160899, 72.15325845684856 29.93897053692491 M73.141885580495 29.958856074139486 C52.00468189381063 30.7245898769796, 27.593127087131137 31.353926293700944, -1.834955571219325 30.85962167195977 M72.05750979389995 30.05526134464891 C54.24854973684997 29.79812975805254, 37.01650828178972 29.842563322000217, 0.41270922031253576 29.886773706413816 M-1.4677761774510145 30.976138262078177 C-1.0913238658569755 21.063678429462023, -1.8261776699684562 10.574953261762861, 0.7963513750582933 0.6772254388779402 M0.3195621808990836 29.58603417966516 C-0.5900252780877053 22.57911875657738, 0.05470579648390411 17.86907928716392, -0.7554914215579629 -0.3264100244268775" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(982 198.01056337356567) rotate(0 24 10)"><text x="24" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">delete</text></g><g transform="translate(67 263.528168797493) rotate(0 24 26.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.4443555593164513 6.492934522827261 C0.8184985205000483 4.48128363586597, 3.269127327975272 2.8299480117094022, 4.460934228035159 1.095475924372416 M-0.3751621436001608 6.528304563884728 C1.2415137733372883 5.01884297698054, 2.302075115469497 3.6601118558279357, 5.09365142505104 0.5872930779901557 M0.1993114971648562 12.345458238243639 C2.8917589955280394 6.992824352116807, 7.644276611821708 5.317532054796995, 10.44026369149698 -1.5327368517324567 M0.29027136574495904 12.669274468391716 C4.0955178138108215 7.024130491441982, 8.867081063465807 2.438663203743052, 11.304741001826656 -0.34848992795797573 M-0.3256699899723987 19.744230923150354 C2.7072050574050577 11.67382602230414, 7.383818767816077 9.582225072777023, 13.916347631722171 -0.9455038023251126 M0.26534148673058944 18.459222853091234 C5.625517723628379 12.281897584129325, 12.72371177899983 4.217963320959063, 15.293604245878239 0.6085181252029708 M2.055576304178617 22.68413619296169 C8.302878225401317 17.89707392337162, 11.80424379085067 9.764454765950378, 20.377611033895874 1.4594389828085426 M0.4166287996060465 25.049142970419584 C5.878358418191016 17.576441209329285, 11.106466129982344 11.737688214192843, 21.42290080087062 0.6417806208297137 M1.9174079327424423 32.33881688467061 C5.6552739759986554 23.854021769750272, 13.605873359214575 14.943212732597484, 24.883241508763643 0.8874457640585245 M0.4694351703440205 31.24560315045362 C10.15596945927751 19.93395185648462, 18.866411779168818 9.375476223909953, 27.1947747633349 0.9091771733027638 M-1.1184788682591638 38.22718402352308 C11.73723441306131 24.902822279755565, 23.03961065906983 13.716674946382156, 33.072322446337736 -1.227360138551962 M-0.42301850683060493 36.79429054148619 C11.456453535960774 22.789063566349917, 24.000036848716928 9.386042564765916, 31.159716993986464 -0.6051505868077989 M-0.022184737804437304 43.24119550976508 C10.762104761368049 31.028715372578944, 21.880196564178355 17.929556716077517, 38.1804042456684 -0.8714702091086188 M-0.26473790019294086 42.957493854310144 C15.054709812407932 25.27489271317104, 27.666887637835075 9.704072262962384, 36.18050567507868 0.02462885445919838 M-0.011284276843149144 48.59748485931091 C11.75557774651142 38.58642446052634, 20.704268598547927 23.44536548145269, 42.60047654676788 -0.8021673775882476 M0.15861767251036696 47.93448210288666 C9.98623777522441 36.234831054110494, 20.771542546768703 23.850449595389026, 42.024428542326916 0.7846102526738292 M-0.989853816372527 52.487184561961 C15.181340083291584 35.48861635815743, 32.27367828234357 17.064733733735878, 46.94699599868643 2.1776506219234513 M1.8719574759852158 52.980077962563044 C11.826052039744988 39.952222417389066, 24.29396445355029 27.117999830408266, 48.45856065298456 0.9150782467972682 M6.13979246660071 55.78226440229301 C17.102894939564294 43.337956591541364, 28.088357567084618 30.718681911026135, 48.99262237547428 2.888132930340774 M5.4302732414280115 54.57974609096382 C19.723879461132704 37.95469166679331, 32.96836008346703 22.59752690370807, 51.21775050180495 2.0479190382906864 M13.229012259155272 54.270127261889556 C25.247840565657253 39.907685288515616, 37.16820417821639 24.70305139255208, 50.63677760517217 9.70526598335524 M11.70179887662059 54.1529389302185 C24.99520487233879 37.43861591616904, 38.59811182687437 20.514022847789676, 51.00442905003197 8.608160810892478 M17.068043460341396 52.28459415666493 C27.793866477289583 39.73988430531355, 42.39563305113521 25.50826407129354, 52.186322856782866 14.984244770767276 M16.08446881381631 54.15283174428823 C25.110895899262108 44.48549682909784, 33.599928045538924 34.10586830002994, 50.800536812371504 15.706094989949946 M20.354563210171357 54.63869465664233 C31.147970936791424 46.211095481625364, 39.01737355807077 36.54265548130396, 51.38776339531864 21.520520737600098 M22.505727038730576 53.46786303874309 C29.109623117141417 44.65960260935578, 36.070465054514706 36.665480494504834, 50.93097871203895 20.06707414353318 M28.75771565769537 55.34984352773607 C35.67467601818879 47.123354590929985, 39.5578445772926 39.457927678472814, 49.771571494829736 25.501430524768004 M26.517804858616728 54.615661202544274 C32.16552218597925 49.04436911667203, 36.78689424376297 42.836924338825106, 50.43919699378767 26.451890723103354 M32.47908419292572 52.28966408996933 C37.487802744158174 47.94451392285306, 40.78557776342559 41.94777230841029, 51.5570996413379 33.910728907516955 M31.88994313419017 53.86161786626183 C37.61345986480477 47.42639905410118, 44.07667141357063 41.97142192385871, 50.02333442684254 33.5300600019533 M39.316719214912624 55.90916485925642 C44.47833774580564 47.829880124106346, 47.19162033433529 43.69496299769489, 49.99690344586489 39.480217536092944 M37.70367004770425 54.41281454385695 C41.173385622371924 49.1661031859867, 45.61553634951591 45.74398176227056, 51.41180721792844 38.300198815875895 M43.87575509828568 52.689547618403786 C44.57679661554157 51.814083425636696, 46.24370970508188 50.62811707862838, 51.24547209837461 45.51778112023541 M43.171157232448984 54.14596581530733 C46.46514983853987 50.0456374699935, 49.48040623135801 46.96209822422931, 50.1552694501354 45.44574796531753 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M6.084923493666966 52.92980472236187 C4.24625972943025 50.713201080968844, 1.6424981695470442 50.07070838041289, 0.2667978667849964 47.22837273835499 M5.483120267270524 52.886263339736175 C4.4912748432758365 51.92136309589425, 3.2810633728851815 50.288417748716434, 0.07966969732291174 47.16450463406105 M10.66636007935138 51.48440084840883 C10.19167213116312 50.23930334586083, 7.85478378366115 48.2419600242983, 0.7992509764663482 43.142301956078654 M11.480605289194301 53.51492517601479 C7.660685669402218 49.60528239790882, 3.8837534505334457 44.85218505215957, 0.6991306324533727 42.23317610572899 M19.64172005457491 53.114933417441904 C11.902946828324826 49.58565612754044, 9.928151682715106 43.1488896182299, 1.590745201734645 38.7600095758999 M17.755606899873023 52.546842802579164 C13.650602265040362 48.444683803510266, 8.787098633382868 44.04874725671449, -0.6125678686147502 36.634790740240575 M24.817279797691 53.3185498323363 C13.869683655452006 42.70799196136906, 5.50300960961734 38.287277151380536, 1.7461571734524615 32.921168155902734 M24.835662388886405 52.66460942570835 C16.300708581517604 45.25790020539455, 8.647617585519818 39.4727118660836, -0.8416187004991524 32.39195663754802 M30.72074133599568 52.13963389133351 C22.110031816435086 46.41758451302299, 17.172290083779984 40.78939642995837, 0.5002397681945752 25.44205864624612 M31.621255056694334 52.8374457360922 C19.435360921337764 43.12095217874814, 7.45417224229595 33.20671833133955, 0.5520537105748247 26.55287128326975 M37.968478966074656 54.44203189192127 C28.46286407009304 45.04314601579639, 15.717468685362924 35.47798869141137, -0.5254662715622178 21.855685335379818 M36.86379948308564 52.45870852926533 C26.280534403629673 44.494324733348506, 15.880216461584311 34.51147863590002, 0.7674132027871021 20.440791651402392 M41.22890843040473 51.461873122549335 C32.53672202959936 41.628866614521975, 21.833914937049855 34.911351005121354, -0.8825553992322117 15.006363270791564 M42.363822006240255 52.875092279224376 C27.934219121014088 38.80022890915758, 11.922300852301472 25.4038339224632, 0.10860873092651069 15.490090162480566 M49.49731027557159 54.24659763070545 C36.61669074054748 45.223600229472936, 26.468222790599853 34.79169025462682, 1.054419377661385 10.98569049093112 M49.27703408094699 53.29440690650395 C34.71640572782282 40.80077534770827, 22.127533841242876 30.092028422098423, -0.633598991827033 10.650976915500905 M50.40832985226988 46.34245622291532 C29.696126498630647 31.59546795086228, 15.52987607321856 16.577919917123562, 0.36276985570428044 6.571575793286224 M49.458082278603605 46.94182777817663 C37.96903850233777 37.34090191235255, 26.753337288506202 28.52136567392836, 0.12423586431530387 4.297277455998024 M48.623830598867464 40.97895492859074 C35.55426642072109 28.442594828920328, 21.063939163264813 18.419805847277075, -0.0781507226267318 -0.8357890336933591 M47.8796515707811 42.7130901717011 C29.4100603809462 25.28334730720723, 10.852937691662312 7.8536064041554425, 0.1396708875334402 -0.368844992031441 M50.070040757841134 35.25941053618147 C38.74055437208701 25.753464274940253, 24.39625080810471 18.108816946614418, 5.480261911259003 2.12962981839467 M47.90086204565939 36.83379481107398 C34.647415304674816 23.745362914851697, 19.224755249841877 11.637905348901146, 6.4428350046211555 0.49541950286168746 M48.25005337577661 32.848450593175244 C36.66858209210332 23.09663666226629, 28.4560672820828 11.599547445084657, 10.119461867387784 -0.2900314308955041 M47.61101890802731 32.01565786682988 C34.32365788532436 20.517993185217072, 22.861541950144236 8.64474251299179, 12.831277296307874 -0.2474620292215315 M50.59400294515068 25.907985638021835 C39.37311391238666 19.778676024597296, 31.735967258077963 10.389710723567532, 16.94341176323641 -0.5754403681141138 M49.211039121064786 26.86123318796546 C40.50625844509728 19.485995268737682, 32.51583225430165 11.595298860238737, 18.59087566327352 0.15447832321554422 M46.73388876254904 20.536236968208968 C43.69729403976956 13.66455986734444, 35.818956830279134 9.766730984838084, 24.07043902039058 -1.08345382077343 M47.31952476456064 19.77169007001531 C39.30869470155292 12.904003956617135, 30.891165998209846 5.900332720333317, 24.518943122806917 0.6580739182075188 M46.853751570448495 14.703708872186413 C41.84041490830318 9.702861960949559, 37.696974969871704 6.440763473481644, 28.9834125063271 1.8888543745763187 M48.35418967669479 16.351535486976076 C42.16982464776505 11.649251830758669, 36.292026284392264 6.182916061777091, 31.305654450587994 0.829745792251039 M49.52291918240607 11.293465370025473 C44.726739369692034 5.650704536975467, 40.69532514720565 4.292301462083362, 35.888842174635435 1.7135418402896683 M48.67799610502206 9.511596966480823 C43.93854350427376 7.273336186757904, 40.6283842451434 3.9413289336099275, 37.41550740934087 0.3710863062580536 M49.23660473116209 5.478461160918216 C47.190280077170954 4.215831042163895, 44.59491851574555 1.888478071859442, 42.57063974881137 0.1235013448800828 M48.64708196893801 5.425205842440466 C47.345717882485744 3.679634318751748, 45.6293152745929 3.0260225571507915, 42.549094045474774 0.09085558403096461" stroke="#868e96" stroke-width="0.5" fill="none"></path><path d="M-0.043694136664271355 -1.1596709210425615 C14.01651876904071 0.0006980941444635902, 25.870312683656824 -1.046767170652747, 46.69141882844271 1.4782677572220564 M0.11736880149692297 -0.4905829420313239 C16.98178648408503 0.46814458299428213, 35.60546529795976 -0.9091070718690755, 48.46887083258481 0.8639597008004785 M49.360218705609455 -0.8828615266829729 C47.542143961163255 15.764066973980523, 47.418814738960954 35.49238394815476, 48.8475918788463 51.10758378915491 M47.28607077803464 -0.07747349049896002 C48.577271963572144 13.550238123442984, 48.54327016613448 27.96875269301237, 47.05860762204976 53.048523963429055 M49.32100296206774 51.13398197107019 C33.602579850330955 51.44846942313018, 17.26819184906781 54.148276649788045, -0.654878793284297 53.345769373700044 M48.25487403478475 52.02453309390696 C36.1167250847444 52.89018439073118, 25.84788365270943 53.27647300381216, 0.6260274788364768 53.97243091557177 M-0.30312603525817394 52.80315205268564 C1.7006166716199367 36.45278963902966, 1.1777322431188075 19.27109597232193, -0.2839497309178114 1.4625388663262129 M-0.7534736255183816 52.07462260220202 C-1.2842561688926073 42.28473588721828, -0.8870045331027361 30.852363553643237, -0.521160856820643 -0.9557195892557502" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(162 250.02816879749298) rotate(0 81 40)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">easy encryption book</text><text x="0" y="34" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this is some nice </text><text x="0" y="54" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description of the </text><text x="0" y="74" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">product</text></g><g transform="translate(378 280.028168797493) rotate(0 30.5 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:40</text></g><g transform="translate(461 280.028168797493) rotate(0 39 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:3.25</text></g><g transform="translate(553 280.028168797493) rotate(0 41 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:37.25</text></g><g transform="translate(688 280.028168797493) rotate(0 33 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">10 books</text></g><g transform="translate(819 280.028168797493) rotate(0 15 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">527</text></g><g><g transform="translate(164 273.12758535630996) rotate(0 78.04629830829799 0.8246654267236693)"><path d="M-0.7851487029343843 0.8869606543332338 C25.272420598194 1.0146954227238894, 130.59274033419788 0.16867206580936905, 156.87774531953036 0.04431905038654804 M1.0035094986855984 0.307011052519083 C26.93328139409423 0.7061743225157262, 130.45031014069914 1.4008016885817052, 156.39051614865662 1.60501180306077" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(893 273.528168797493) rotate(0 30.993243243243228 16.5)"><path d="M0.88822534494102 -0.4743743520230055 L63.4621399839887 -0.7300220709294081 L63.09110065302938 33.83043319173157 L1.8405980747193098 32.509664775803685" stroke="none" stroke-width="0" fill="#fff"></path><path d="M1.4629088658839464 0.07386508397758007 C16.40743173185258 -0.22342551878842254, 28.750760216107345 -2.3165527098551646, 63.662680619723496 -0.43299451656639576 M0.19871733989566565 0.2847141036763787 C14.688414648586786 0.14457108961934273, 30.066401408877027 -0.8399155200779992, 61.391919022753235 -0.36604186799377203 M61.163572782046494 1.132572976872325 C60.55650575049348 11.089008795749397, 61.97139216549821 25.58801472876221, 61.648405366904434 33.48627665452659 M62.28672516937494 0.8214617082849145 C62.45394762287043 12.310146058630199, 60.742817987298 24.021151919290425, 61.023972248985764 33.475241602398455 M60.61992436028212 31.679605988785625 C40.24993458044263 33.61691321262096, 18.04107952045176 31.581117106759294, 0.13524013943970203 33.17677089385688 M62.199212050392624 33.475695312954485 C40.865371723252835 33.45121274044221, 19.06892973443091 34.5791433518142, 0.24011756386607885 33.71492537949234 M-1.786383567377925 34.47881910018623 C0.12363679504953323 21.055174281913786, -1.8039030899945647 10.339504851214588, 0.9016388673335314 -0.9902349431067705 M0.45970703568309546 33.51831945870072 C-0.029425974963232876 22.27442395174876, -0.5292728804331273 11.655498880892992, 0.7468179306015372 -0.35167193319648504" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(901.088963963964 279.1892048335292) rotate(0 20.95945945945948 8.918918918918905)"><text x="20.959459459459453" y="12.837837837837832" font-family="Virgil, Segoe UI Emoji" font-size="14.270270270270267px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">modify</text></g><g transform="translate(969 275.028168797493) rotate(0 36 15)"><path d="M1.4756534975022078 -0.7300220709294081 L73.10461416654289 0.8304331917315722 L73.84059807471931 29.509664775803696 L-0.9716071803122759 29.54979914613069" stroke="none" stroke-width="0" fill="#fff"></path><path d="M1.541468681767583 0.23473760299384594 C25.940598041936756 -1.8849810183048248, 55.51972198523581 -0.45958594679832454, 70.92169082351029 0.9377416651695967 M-0.565501437522471 0.6801093528047204 C27.37907908242196 -0.5093714115396142, 55.04645222779364 -0.5710360226407647, 72.79299007263035 0.42379593942314386 M70.43016660399735 -1.4278584439307451 C71.72161596333608 6.71565593313426, 71.53848182475194 12.809028021991256, 73.06039065308869 28.11721524409951 M72.77812062110752 0.6605014810338616 C71.15706259040162 9.867434654384855, 71.12755736736581 18.766385382972665, 72.3873893758282 29.672560603357862 M71.26068467088044 30.50974806956948 C47.2042964424938 27.99861011967064, 26.445700648799537 29.70142904981972, 0.9078173656016588 31.252054957672964 M72.28845162596554 29.848436982370924 C43.30007343422621 31.318868219070147, 15.037112379632887 31.057426004819582, 0.1629934748634696 29.858025134541105 M0.07678508944809437 28.493052748963247 C-1.5827972604893148 17.021453485824175, 1.1695964024402201 6.622148457914591, 0.3690612930804491 -1.042321713641286 M-0.20140905771404505 29.78337508533151 C-0.8391680738888682 23.54055991582573, 0.6089058198966085 17.382645602338023, 0.44411267247051 -0.23718717601150274" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(984 280.528168797493) rotate(0 24 10)"><text x="24" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">delete</text></g><g transform="translate(74 346.528168797493) rotate(0 24 26.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.5973337649972985 6.081968102653615 C1.5359718604063068 4.872435095519135, 2.4863592802646033 3.0281917318366522, 4.936856931778139 -0.03969169819380702 M-0.47159345854538176 6.092300843124383 C1.236069913499482 4.598955045387707, 3.39743643981937 2.406526198119384, 5.224340700315779 0.2892993822542244 M0.16447477574456792 10.742078559517442 C3.3362110240870235 9.878415167698797, 4.0259593678583325 6.195186536500601, 11.81855105454935 -1.4234349508688091 M0.878682386977564 12.657680387466728 C4.0856549305507865 8.45975679510279, 8.089356084936881 3.5444536345282662, 10.041216445666683 0.05765967397836458 M1.725848271460249 16.582228538487726 C6.2677362761463185 13.976541069740646, 9.643865333310341 6.216427255702502, 14.89912695577689 -1.204752357031686 M-0.38549822946547074 17.775282353070253 C5.404311793510023 12.860527111283513, 8.600944508457527 7.051365404826658, 15.006647548175831 0.9217633322742751 M-1.3990985953994777 26.07205865876293 C8.227615849183449 16.74054924266041, 14.76903551127947 7.092475988494684, 22.3022562789711 -1.9899359909654137 M0.8670759715325449 24.584579034424483 C8.346466440779567 13.757267305991476, 16.2930592905491 4.790389470099214, 21.821306919025147 0.10351005794252188 M-0.18963932706514441 31.060538712654463 C9.182841405009802 21.204402804889583, 19.487247558758458 6.385129394751004, 26.199276600640626 -0.7826342420640646 M0.9531455487524525 30.42927930387502 C8.804385153182738 19.325550620426007, 17.886437228163654 9.536923121427112, 26.459543453205736 0.558605928347701 M1.2435004374850074 37.3302516004083 C10.616922925477427 26.00053020268583, 16.9171000103346 13.674491082282476, 32.80934943579773 0.8024480846955662 M0.06401733391913567 36.50135937221472 C6.30428095910022 28.135244921433674, 14.224573708667556 21.578226103993853, 31.853683948932982 -0.12626836344010783 M2.0102981842727417 41.22432709727042 C10.897715867044143 30.37245981541881, 22.57835789241698 15.645621552841575, 37.76060330849265 -1.0825086197722236 M0.8275215962574833 43.41564701273643 C9.060711064593294 33.076060125157824, 16.61114574040051 23.235991371405124, 37.842092525960254 0.4835077590402683 M-1.2142425626517124 48.59807059415512 C14.21919044820626 34.97020893878759, 25.516505989010195 21.0795527868462, 41.65110598373764 0.13138458955576482 M-0.31641504447915025 49.630200301901326 C9.575962339507285 37.63004601811983, 20.31827441306362 26.10066769392257, 42.761392857502926 0.7890681138589031 M1.3708799907144176 55.468786455862826 C12.67954930789828 42.259791027136444, 25.54606324757771 28.11796907256445, 49.11289223558295 0.1549018535938309 M0.47645261391513216 54.56488097755671 C11.306078004974557 41.913967102080306, 24.323547044678165 26.98479542529077, 47.54174593831438 -0.648013597523029 M6.380929792364412 55.7221163419712 C18.572505451561128 43.639568935991136, 25.6886166863701 31.511473641688074, 49.7486999630788 3.5093641882562707 M5.1742022401367365 53.77644275982712 C18.638956666956332 39.44046636873474, 32.19600483847546 25.59455318173099, 50.67483620064795 3.031687888855643 M12.997342654376983 55.346635009062865 C22.917656412094665 40.30519995478279, 34.134462347439325 28.439523231048, 51.10052921926595 7.459429904234604 M11.651903679467498 53.66187715334205 C23.962034336713668 38.30161953585866, 36.11744088059215 23.86446034916134, 50.213680543247534 8.386989819233314 M15.152934600802364 56.06483534805211 C27.447744642911495 40.700934233283675, 41.804051569540945 26.451569620221033, 50.930319298147154 14.436465866329257 M16.90807730166078 54.55814848456266 C30.08943344134779 38.659075697623116, 42.362522192292644 24.38657921992664, 50.084555418319 14.568222681457286 M20.500460896652832 53.26591880396212 C28.951379405135995 43.812258286332565, 36.76767798315153 37.87411216553079, 50.25215358973469 20.499595394563446 M22.064503029931977 53.14373432155902 C32.94091596975553 40.39084643060774, 44.58746601901777 26.107739893950733, 50.15045168657775 21.24702810609765 M25.476643815978605 54.73097201770723 C32.80154442913343 49.26266024450484, 39.43980478876742 40.081578203710635, 49.67658249307879 28.28732700485147 M26.461498109034437 54.632552115792336 C33.884447916903696 44.92606925811444, 41.8638112794639 38.068424227430796, 50.586647530277155 26.036737607115576 M30.86314487379196 53.282790184310606 C36.92459701666188 49.52438489397448, 41.693927208876126 41.20070212621329, 50.31553661920121 34.42208734743929 M33.25013933718356 53.89253256033265 C37.5590680433236 47.888412463121846, 42.21531851591225 41.32256127875911, 49.816871656142084 33.3656555203039 M36.85059259414312 53.51105369468657 C41.407690344181525 48.89430193990468, 46.47325251334432 43.278225175390446, 50.12664970412371 38.461849947572894 M37.4875408341327 53.63954623164115 C39.755189894834395 50.962755853633844, 43.59451044600186 47.79865600813839, 50.88887620839742 39.8974377439555 M42.981149506392484 52.98302134193455 C45.35505622716534 51.154333716062055, 46.43975159001803 48.95678395241798, 50.44055642881418 45.633495768601385 M43.60238634847157 53.60662534159584 C45.48544578578858 50.178390791822274, 48.407509822239405 47.69129542641759, 50.76639191675918 45.138334361952104 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M6.4867930052712754 53.172999373965574 C4.687493000569459 51.15559665877733, 2.415636980377931 49.783334467578925, -0.6975000715618662 46.80259079694112 M5.787133746026475 52.72089636824341 C3.9134357713433183 50.92768161779805, 2.0152380610466776 49.239383283595295, -0.37955267902367634 47.241176007905196 M10.881550823751404 51.75682378198732 C7.64554682707762 49.24905337388993, 6.466965390185469 47.81656063346862, -0.5344459134109716 41.859730687996986 M12.95520863220425 53.29289560924996 C8.888893006253976 49.78991151660677, 4.0899143882210085 46.737268252514184, -0.2979769925542572 42.051009362450486 M19.81009393734545 52.690628634097635 C13.79033875963847 49.94235718843201, 8.538233461017695 42.02794198746653, -2.1019782513102463 35.306207645949186 M19.473432878867392 53.72467483978963 C11.035507605951182 48.30017272582863, 6.068753389205531 41.31615392842343, -0.41690623440797836 37.417535535324575 M22.787688058513297 50.8957079853934 C17.170365113415258 46.477085146792014, 7.719651058597041 38.221270892918014, -1.161316569509422 30.256121642822137 M23.757497423972083 52.56358804647594 C16.443273684994242 46.66022127185895, 8.22626790646193 40.13998481968266, 0.218299792533303 31.717533807204774 M29.475911025650984 54.935723242510726 C21.715497421117384 44.79688129346557, 11.583330218754728 36.314358710699025, 0.5814459110969494 25.34378268675439 M31.208372341230696 52.57588759080755 C19.509559640146954 42.994984061092424, 6.909763467629915 32.62491083010991, 0.3740256932923387 26.96244904038988 M35.38371526034422 53.31319257793735 C23.26626109009777 40.40829245253141, 11.85093650837944 32.39083354699922, -0.04707194201433573 22.428366941195705 M35.30305814793206 51.913719330819056 C24.82748011646452 43.66445597080954, 15.767416434504735 33.97608432286654, -0.6814287564509502 21.39057727137653 M41.8845946300698 54.090417155123035 C26.87651275122763 40.75850154568181, 12.283319030197752 25.917552702678258, -1.5808864572575718 13.867861328633818 M42.16141711975611 52.588816803007106 C28.850040771965638 41.45752580711488, 14.694670688527502 29.089429620673485, 0.019171335592266914 16.25757998319933 M46.49140780641342 52.32850889655552 C29.585277572238525 36.69949161580578, 13.969411419461437 21.65824329938748, -1.5644725171559672 10.455035762518492 M47.85224664899165 53.38027899040631 C33.891916607789064 38.81784932162049, 18.773967958981057 26.017901078666394, -0.47657737989809323 10.241206337354924 M49.168878265069715 48.7748904837605 C29.63638301042605 31.204265145933746, 13.852706963502015 16.832874088985374, -2.277940200123814 4.8564709153374634 M48.73702924453645 46.990820322589244 C31.20052343891441 33.201400408646904, 15.059207802224236 18.60914479210353, 0.2653568643668023 4.349070941877922 M48.72144756940656 41.04773982114979 C35.038292547479436 27.829745800575736, 19.512656069159757 15.250306560470406, 1.6131418613156816 -0.45146954945950296 M48.889035815461504 42.69996513951459 C31.054802030101804 25.403155180092718, 13.277199416238737 9.656801283170044, 0.4468675940668722 0.323376083264961 M49.030422086900735 35.82654557217314 C37.913956634499954 27.79681307641659, 23.98771218167818 17.06109823023554, 8.124956060753174 0.1609200515298932 M48.361722387446726 37.023353227678975 C33.983898212278035 24.44516226922376, 17.198600064438757 10.051645194316492, 6.136169673495896 -0.5467792445347817 M47.36647298913797 29.53960715931828 C39.6297795996766 24.07659005429157, 28.128045597439755 13.646150824688647, 10.419034633214963 0.3869478128598365 M48.53248010278096 31.868989820117008 C37.34562139416997 22.052287303113296, 26.751332241749463 13.768068321758346, 11.762648120883298 -0.0463889489202467 M46.739812893595044 28.300006996034988 C40.30439757541443 16.255359131781482, 30.230660920631827 10.85287781470415, 17.491918321177845 0.38461802298009395 M48.48406186214412 26.94196782832534 C41.21184471268201 19.468624423190825, 34.82832720835004 15.351558744713268, 17.837766774409 0.8353039441052079 M50.17501922185767 19.344638254810988 C43.629873317327025 13.587502379448054, 36.42679110539105 9.148194460954876, 25.167012671227525 -0.37675427062160516 M48.31065568282503 20.652245610338568 C44.13862707030836 16.62928899875359, 38.44972376528458 11.647041074532265, 23.978174588861833 -0.7798281449238136 M49.06121084140263 14.97017709909605 C42.363896979165965 13.336762491404114, 38.529735259089065 7.576061938546491, 30.4447646758408 -1.1805710294954892 M49.49931134050361 16.519369202653337 C41.87998164120171 10.520337947664853, 36.545661157917294 5.741651817366948, 30.28713227742172 -0.25407511701066454 M49.11970006369174 11.503385910477476 C45.12766084705538 9.458389418559007, 42.10651137096612 4.887870810917311, 36.61853235386422 1.5881833928571503 M48.226556791431534 10.084490638172241 C44.203511216672666 7.1679009383996215, 41.91497919153646 3.765094082780152, 36.5308570075698 0.9115424150069664 M48.45098644979765 4.498401417990665 C45.65178742193897 2.9858106171249523, 44.270945302716015 1.2598488838732187, 42.880182142495755 -0.35561311606504664 M48.24981981292834 5.1836730994633236 C47.07379875938105 3.647436152885617, 45.07708411479066 1.9287439133218258, 42.779806971862556 0.03452524889073627" stroke="#868e96" stroke-width="0.5" fill="none"></path><path d="M-1.3934038262814283 -0.99609843082726 C11.053172347322109 0.5211266968399287, 18.57341986186803 -1.1607437040656805, 49.56624412722887 0.1702654641121626 M-0.6588609674945474 0.12223807070404291 C12.276034534536306 -0.15546147774904967, 22.607001470588155 -0.6778060967847706, 47.06564883794637 -0.06494349148124456 M49.769757749512806 -0.023673268035054207 C49.393754333527774 11.31498773163185, 46.738112718136996 24.036001560278248, 47.50980311818422 54.70631786994638 M48.278699918650105 -0.8762268414720893 C47.588316202079895 21.090339326765395, 48.26201418033803 41.490683304145946, 47.89015640225263 52.73969313595446 M47.220564665272846 52.87695738486948 C30.71856988109649 54.95667109139266, 12.634606789425014 53.578835877254626, -1.066304562613368 53.412458090111635 M47.30673684086652 52.49404546711596 C28.434020487032836 52.72484019178899, 9.784218828938897 52.84683418054136, -0.174504772759974 53.48011410329493 M0.3973103780299425 51.56925788335504 C0.3490825216751544 40.495780409965676, -1.7999863703269514 25.075529788993308, 1.2625426668673754 0.19707235507667065 M0.5298335393890738 52.59477984998377 C-0.8263069844152781 33.93562647895889, -0.47422422527335606 17.09141546785832, -0.5950400093570352 0.8237083265557885" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(169 333.028168797493) rotate(0 81 40)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">easy encryption book</text><text x="0" y="34" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this is some nice </text><text x="0" y="54" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description of the </text><text x="0" y="74" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">product</text></g><g transform="translate(385 363.028168797493) rotate(0 30.5 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:40</text></g><g transform="translate(468 363.028168797493) rotate(0 39 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:3.25</text></g><g transform="translate(560 363.028168797493) rotate(0 41 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:37.25</text></g><g transform="translate(695 363.028168797493) rotate(0 33 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">10 books</text></g><g transform="translate(826 363.028168797493) rotate(0 15 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">527</text></g><g><g transform="translate(171 356.12758535630996) rotate(0 78.83249439910054 0.3671389822661695)"><path d="M0.9397464763373138 0.10215927846729755 C26.914931667968627 0.26654451377689836, 129.49083726517856 0.20562743432819844, 155.33053089492023 0.0568286944180727 M-0.02602535292506225 -0.8898110456764698 C26.388110775500536 -0.43475581362843524, 131.8199079604447 1.4571586255729196, 157.69101415112615 1.624089010208845" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(900 356.528168797493) rotate(0 30.993243243243228 16.5)"><path d="M0.1342372577637434 -0.2333304863423109 L62.890580256796774 1.51038664765656 L61.860355516291555 32.531937720254064 L-1.8343056160956621 33.23360544629395" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-1.1157818417996168 0.09471449069678783 C13.757845711925798 -1.3704927244406142, 27.833806715968596 1.0550511202592454, 61.65789013481825 -1.6744913775473833 M-0.8872772911563516 0.23787859175354242 C14.977191048667994 0.92513506332727, 28.667540392825835 0.6740955285200648, 62.045265173866746 -0.6939814677461982 M63.65638666725844 -0.2483739573508501 C60.64630871810145 13.165282234083861, 60.153150318042705 24.524035395123065, 63.51669418192595 33.65566655807197 M62.713852143242356 0.6676172623410821 C62.50310856560372 12.282983074616642, 61.888716791664585 25.650364000722767, 62.83213312025308 33.20865854714066 M63.75095426417082 33.62409660033882 C44.18602732601576 31.741307820877736, 21.839669189740576 31.265320446095174, -1.3984771948307753 31.10732832364738 M61.57436663503885 33.56265077088028 C46.68403821605812 33.49626105277358, 31.235496563129633 33.621249578879464, 0.6057725986465812 32.2491092691198 M0.8796519059687853 34.67715301923454 C1.645071930354461 24.97301912875846, -1.0187598400656135 14.062981231324375, -1.666591940447688 -0.0595573503524065 M-0.775368825532496 33.17142272088677 C0.9425231282133609 21.158962855581194, 1.0287329320330172 8.865620154887438, 0.42323250975459814 -0.14352163579314947" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(908.088963963964 362.1892048335292) rotate(0 20.95945945945948 8.918918918918905)"><text x="20.959459459459453" y="12.837837837837832" font-family="Virgil, Segoe UI Emoji" font-size="14.270270270270267px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">modify</text></g><g transform="translate(976 358.028168797493) rotate(0 36 15)"><path d="M0.9040937703102827 1.51038664765656 L71.87386902980506 -0.4680622797459364 L70.16569438390434 30.23360544629396 L0.36849805526435375 29.76962566561998" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.0368195753544569 -1.3177219349890947 C22.457431812211873 1.0737246930599214, 44.097314989939335 -1.7085885941982268, 70.62671441026032 -1.8687023241072893 M0.6375025352463126 0.8848788747563958 C21.120570227317515 0.46256675388664004, 42.32359241005034 -0.8652540538087488, 72.82057042326778 -0.24509844090789557 M70.74070471711457 0.5573998373001814 C70.49803134417161 10.86774740647525, 73.78069272255524 23.77462016791106, 73.68042469210923 29.78031280450524 M72.55287046637386 -0.38971766736358404 C72.1566883894615 8.524041924625639, 73.06385633079336 16.646817362867303, 72.15672902669758 29.466847718693327 M73.76699495501816 28.613473681733023 C47.903241809830064 28.362161083072433, 24.431824556365605 28.332003099769363, -1.154489217326045 29.650990454480063 M71.71536116208881 30.198655189014982 C46.227807397954166 30.728752270154665, 22.49212951119989 29.654217824153612, -0.2464703181758523 30.6312713334337 M1.853391470387578 31.05966707877816 C-0.9423880859278143 19.94066859874875, -1.798539726343006 11.349225584417582, 1.107141138985753 -1.1900800187140703 M0.7461599251255393 29.885745734907697 C1.0649803766049446 17.848060933873064, 0.6558431574143471 6.914228404872123, 0.0671186288818717 -0.11666524317115545" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(991 363.528168797493) rotate(0 24 10)"><text x="24" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">delete</text></g><g transform="translate(75 536.528168797493) rotate(0 24 26.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.38194143775386113 6.275280103881948 C1.5063799320197226 5.1953210904665195, 2.3676368849085825 3.6210411671330767, 4.703344506355471 0.0820207241771036 M-0.6591358374478171 6.034128843669884 C1.2173038097014206 4.55421402698535, 3.540895604894136 2.1493203993397887, 5.275839840578383 0.604298998400312 M0.045069553805481055 13.332610337853014 C2.6388692500880486 9.082872988558996, 7.064366489036905 4.144863250781382, 9.974498310637605 -1.2934363146230816 M-0.5633205532003536 12.133755059212028 C3.1373035155404616 8.411577494510084, 6.952095233000736 3.3558448634979032, 9.905348301631344 -0.03352105588766319 M1.4807951589533825 19.623434719537073 C4.728061404470024 11.671789824806444, 12.768745009379638 4.953667339525886, 15.653720983772953 -0.1964269590633938 M-0.10011032601355119 17.734769880679124 C4.615642730359266 11.974186277319909, 10.254538744862328 6.964282965067863, 14.773245206571598 0.3573317543533614 M-0.6308784687706019 24.82579116122341 C6.10033876528531 19.926834893522717, 8.049720957807203 11.975938216123312, 21.192376964071656 -0.9743455020547387 M1.1863088227994059 24.273542537069975 C8.020916110327407 14.016720352976181, 16.05090482359899 5.6878005584122455, 20.94001734750148 -0.6253969609573957 M1.4958457379182235 31.110110524807325 C7.317232041879049 20.524148961225336, 14.311197542651646 14.225570705893787, 26.783212517064424 -1.6120125489297568 M0.18284077947487987 31.04776150616651 C10.888317328291686 18.35477038787925, 20.748642031246334 6.583059023663736, 26.93296064590326 0.8799146305781544 M0.7326640150416175 38.7453038355348 C8.121044353200624 25.81954553068329, 18.593178670244118 16.779492742909, 31.315311032763518 -1.9253047796652432 M-0.5822935617622456 36.42811393626158 C7.5023899510422645 28.23436132189436, 14.901190337621749 17.953871979296963, 32.677565962492324 -0.5175918404699082 M1.359475723621344 41.373328993651796 C12.8610734690172 25.820437355746378, 24.647430143386366 12.183733706812529, 37.27422291021918 0.8492863216530999 M0.2619001308129185 42.301888538148035 C12.070431000933599 29.636338399320113, 23.708063238807313 16.1055932877668, 36.41161147952204 -0.267084860140411 M-0.5912937372923679 46.96081951507263 C11.30356981851984 34.45492995070336, 27.36058745276331 19.57343271590013, 44.30293778944366 -1.2955221749515289 M-0.6952374605462737 49.49335432578705 C13.017127697954216 33.31962993267986, 26.838815779135384 17.49345331232914, 43.277384932707776 0.24253032713671985 M0.22627930130325424 52.44890788959772 C12.440888041119798 41.43987553558448, 23.536821101379832 24.714361753253616, 46.265912319487214 1.58737199643517 M0.9462029288660752 53.882333974525935 C18.95575211275479 33.01154612087806, 36.87297412911519 13.11074563349753, 48.41696137930292 0.8765383603226589 M6.159880662401491 53.45956390180473 C16.699023515970666 42.28555309906619, 24.55790457369453 31.59218555933625, 50.18580627440006 3.0681179767274926 M5.116213030246371 54.579292141989214 C19.909358789745752 38.5962662350768, 33.587435682271874 21.412946031719983, 50.94018931406081 1.891825440878577 M10.310868033081054 52.530190433276275 C21.241071917453908 43.157532039681925, 29.28361291965856 30.234309808729463, 51.21204158222295 10.272702201616958 M12.058026751376449 53.62868127030639 C22.78897121838709 40.838492914357936, 35.33980993038185 27.286106278686834, 50.92449969822533 8.338419752542869 M14.719479312392178 52.74460849992665 C26.805237727621922 42.181039794849795, 38.890393837566364 28.118644240190232, 50.90147941195865 14.306319660903995 M16.54457852450967 54.10867662343862 C25.544464516434164 43.46663516405188, 34.604121660654286 33.79987761949163, 50.726833046502364 13.951612720662837 M23.333391640347138 53.66584767177905 C29.108943832501094 44.85790299827487, 35.25170985787958 37.86604305838566, 52.250625028619424 20.714421799611817 M21.878312335361436 53.53271670695598 C30.781145065163827 43.23648888799502, 39.10017822842045 34.27540209160138, 52.04709428210731 20.08175691330857 M27.071749165996152 56.06132271474779 C37.04022694167388 46.04090227360343, 42.767546095672564 36.32285890792183, 50.03995070625552 28.434345258654723 M26.986459491185087 55.043429909819665 C36.10292619489573 45.23342747941692, 43.70172866448769 35.44124810887369, 51.30372564979353 26.114644781941244 M33.3861352793515 52.55265694885605 C37.94161763408477 45.948176973843395, 46.50011275643797 37.91091106950178, 49.73880893088868 35.19984481327867 M33.01326085269603 53.53120786259972 C37.405718102474154 47.91282934884443, 42.339720706035244 43.321160907923556, 50.5698699187859 33.34479159985369 M39.324600379463405 52.34085889001814 C41.271325873315455 48.24172471518462, 45.918028362185794 45.197244389386064, 49.84975531354067 40.49272211372966 M38.41524460214761 54.828132079257344 C40.255812275569404 50.13560585956791, 43.01855578868898 47.03212026231671, 50.9489432958093 39.395814202838785 M44.35234315675736 52.67171810485398 C44.57294467405641 52.315357371401824, 48.01599055143175 48.30536543753087, 50.43796591856504 45.98697553246686 M43.505791059658456 53.75543904376192 C45.760058164162025 50.832154325681984, 47.974058206306694 48.49877633997056, 50.8215011777355 45.517470949631495 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M6.4278220532372785 52.98617374091656 C4.134097565590607 51.59667858440878, 3.706633377441288 49.90310879481849, 0.23205970760530903 47.18269097565968 M5.814283292172869 52.85663840077133 C3.8422669339224833 50.47865564646851, 1.4085745784844697 48.41713416118338, 0.12386983160025544 47.14918633572121 M12.657821260992007 53.307099823018206 C7.871032978730324 48.328033201937345, 2.9791285357433743 45.91365373006629, 1.691688720606974 43.60464936818803 M13.001036807748989 52.6647573293351 C9.097848484192458 49.97827220915336, 6.600836581527559 48.20795463692666, 0.7675113697580601 42.2397465402993 M18.520939109750692 51.89794580757862 C13.961491950877306 49.24521035642515, 8.366413220939842 44.51882654388997, -2.0835025399645737 35.14727001291162 M18.537371884003882 53.124391783292054 C12.888638527583982 46.98388460621917, 6.7710137406740625 42.35205244919312, -0.36852261104639084 36.943418822515966 M24.09420393099178 53.72338839434802 C16.410079374789213 45.98650517139413, 7.815460442950496 37.81770321526451, 0.5399270098782427 30.984942264789453 M23.682246708954764 52.13632344548374 C14.905577685230728 44.435044093311184, 7.384366991720881 37.90172474351477, -0.8804103569932931 31.87990600888591 M31.65318304742146 54.03348612522023 C22.059755448768946 45.070251889841884, 11.662920442144472 38.68369249559812, -1.7301603172546436 25.79953392700784 M31.091252462700194 53.08223104493009 C20.3348894945454 43.38846629643251, 8.173425600363451 34.24259333427079, -0.835981109981816 26.72404819367014 M35.06425075562544 52.442085297682986 C22.018455696666603 40.2184204042006, 12.635331793705383 31.13615174306747, 1.9777762211135634 19.874049288016536 M36.890803725029 51.98047137716572 C24.150493928378324 43.15660816218404, 13.081457407397416 33.333135841143836, 0.3387289681679615 21.424102350865283 M42.24582279808051 54.935315200186054 C34.41269599915897 44.82061996983549, 26.15661319937994 37.73899406678746, 1.3621421715685695 16.802803395303282 M42.256426834121115 52.802738916187266 C27.913300936962926 39.90753356686743, 13.050282008919265 25.83249289576671, 0.32286883224487006 16.039440901005957 M47.443179721372374 51.31061588021717 C29.902099853883303 34.31607385754868, 12.345873658497887 20.415584464815332, -0.7016154734128337 9.427394287317838 M47.71883324476535 53.38184358252934 C36.19643667660951 41.33698934268942, 24.970182009186992 31.22224087073898, -0.7178008045711737 10.145273943088796 M47.54096687619566 47.864238144302035 C35.625599219839714 34.36020242819971, 22.948663410401196 25.014552910368494, 0.11381508275506169 5.275730761547943 M48.507669528359465 47.56796074326452 C36.878444573647705 37.10779942922083, 24.306156715110387 27.371694966615607, 0.17516588750866324 4.740427022648414 M48.451047700918245 40.57568802185246 C36.95518751108202 34.27157538592088, 28.1239087585059 24.464777561943926, -0.06221291745095055 0.4980046064433596 M48.97062065647446 42.88182567585149 C31.237016665633224 26.863837763885, 12.352801741113929 10.031994809668138, 0.13432649666429958 -0.3479366363185504 M49.349650438016916 37.29828230131819 C39.89488145395924 28.183384275284684, 31.067179024888702 23.494767402703182, 5.768904794559784 -0.7897503695936114 M47.84180671729025 36.17403910428687 C36.96216625463805 26.607574432495827, 26.518872618926533 16.619581491098238, 5.564809949689515 -0.6520071023629219 M48.98986813407739 32.44664853018696 C34.949409097601176 21.112108747989726, 23.113895312079798 11.434452364974359, 11.938622328813565 0.40460205299121466 M48.58553291559567 30.781317199105274 C38.193513051239776 22.051523639611265, 26.740860124809544 11.606832072093628, 11.639165327313734 -0.6843173453836409 M48.05183528157646 24.932697246908553 C39.39707304335474 15.977283968564358, 28.294884930414607 8.343572152790315, 18.80090230278719 -1.649605712352395 M48.777716214570646 25.93121380930335 C37.88762924692407 17.944790606664082, 29.686353537803438 9.732549403173245, 19.018270530216878 0.9321005461159348 M49.417551177099824 19.604649748970687 C41.45592447285811 13.465377337380165, 33.86292821589118 7.371644641611404, 25.72407213806636 1.4407695068632886 M48.411958694004 20.6498982304157 C40.9253399671403 13.516047514843592, 35.021894837015964 8.244476648782753, 23.874438575687776 -0.22092006982959056 M48.521056563124276 17.18301032482313 C44.0896110727311 9.480327444390706, 36.812514797316574 5.260536739972222, 31.44100070212788 0.1286538740880374 M49.28097419207565 15.166877436438968 C42.3260541736859 9.62912628012845, 34.18688542233309 2.9334616865525476, 30.272844239406353 0.048041843276429574 M49.26698923550666 11.298998588409262 C44.550352810937525 5.9816319475774655, 40.12921910145283 3.9017124333914293, 37.02835900507977 -0.6695357811702927 M47.51154274351083 10.641383457874866 C45.514399523859026 8.146103140030005, 44.13332876099406 6.652616135394284, 36.39361581540776 0.14195556132397158 M48.3998157907324 4.839517679472904 C45.86902239796005 3.422494677320297, 43.890769010843904 0.7037185064945268, 42.60621408963168 0.5325070821847704 M48.255588743840356 5.255737153475622 C46.42152957901671 3.6595866440009255, 44.644141795861884 1.8327079626605827, 42.44563792975212 -0.2393064643088792" stroke="#868e96" stroke-width="0.5" fill="none"></path><path d="M1.43196046538651 -1.8363753277808428 C14.670963654294614 -0.6432163956016301, 29.77386035211385 0.22167185522615918, 46.10579413361849 0.7886238973587751 M0.9466191371902823 0.2523713121190667 C13.809565872512763 -0.3840201814100146, 27.084117489121866 -0.47721421908587214, 47.32680769171567 0.3340868065133691 M46.038265885785236 1.1325727384537458 C46.542789903851244 18.667985049542047, 48.08913841602394 38.08947333414109, 48.28467226214708 54.41476610116663 M47.0902966996655 -0.2880104472860694 C47.928156324839236 16.243386545684196, 48.28783128521407 32.4757427442819, 47.16886381711812 53.225316108204446 M47.20925522036852 54.95874240808191 C30.932256669178614 52.16049853689971, 16.609605728462338 55.22578427918258, 0.06271916814148426 52.51696535758676 M47.21766929235311 53.11441117618235 C35.69842293020339 52.546695163436254, 21.45082783605904 53.86547889370473, 0.5471967598423362 52.73479434940966 M-1.9468561988323927 52.30442616157236 C0.026336085377261065 35.37624888280408, 0.9700043912511319 17.921427850984045, 0.22197830863296986 -0.8850639779120684 M0.9264847179874778 53.34382197353991 C1.039212192008272 34.37576257484035, 1.0567030856106432 15.925373807549484, -0.8554847398772836 0.8961213836446404" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(170 523.028168797493) rotate(0 81 40)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">easy encryption book</text><text x="0" y="34" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this is some nice </text><text x="0" y="54" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description of the </text><text x="0" y="74" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">product</text></g><g transform="translate(386 553.028168797493) rotate(0 30.5 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:40</text></g><g transform="translate(469 553.028168797493) rotate(0 39 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:3.25</text></g><g transform="translate(561 553.028168797493) rotate(0 41 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:37.25</text></g><g transform="translate(696 553.028168797493) rotate(0 33 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">10 books</text></g><g transform="translate(827 553.028168797493) rotate(0 15 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">527</text></g><g><g transform="translate(172 546.12758535631) rotate(0 77.33098306171598 0.6780530919134549)"><path d="M-1.1365235198289156 0.4731743384152651 C24.721387578174472 0.4997860599309206, 129.62408036105336 -0.016891593858599688, 155.79848964326084 0.09356984384357925 M0.4676629029214383 -0.32401307925581935 C26.092956038564445 -0.07906245574355131, 128.97310368165375 1.7278171075880526, 154.74465124234558 1.6801192630827426" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(901 546.528168797493) rotate(0 30.993243243243228 16.5)"><path d="M-0.7342798430472612 -0.42230373434722424 L60.96292581162542 -0.2973362188786268 L61.2698649962911 32.96404677815735 L0.5020284336060286 34.414518596604466" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.33585059456527233 0.15594973973929882 C18.10438816532921 1.6488181515978146, 37.01374504350982 0.1867944761560726, 61.14639186239928 -0.207599313929677 M0.704237206839025 0.23421132657676935 C15.029488334310168 -1.1879557302799326, 31.39537266338043 -0.9977597227897747, 61.504250413134095 -0.017496793530881405 M62.160955899722275 1.8130463045090437 C63.591622365788886 6.141115653049201, 61.45743651516862 14.8164426157251, 61.748571687705216 32.61474802903831 M62.2203456222558 0.6143427202478051 C62.64966062793634 8.68310862882063, 62.69158275017641 17.384352297708396, 61.34174797530412 32.827326715923846 M61.4212625560829 33.07565548829734 C37.85280898060725 31.285630483033913, 14.015802624980239 34.33406289279725, -0.8903259616345167 32.0755059402436 M62.244526839210984 32.865866363979876 C37.210528135119716 31.86218023581921, 13.616271519346313 32.813230964378704, -0.17806862387806177 33.44945678208023 M1.0767222065478563 31.457632271572948 C0.3307546768244356 25.84948771269992, 0.6510175261553377 16.254006041400135, 0.25815284438431263 1.2959512751549482 M0.6753099104389548 32.88468679878861 C-0.0012257109861820714 21.12382008517161, -0.5214583586435765 9.648080057650805, 0.026263578794896603 -0.23078799154609442" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(909.088963963964 552.1892048335292) rotate(0 20.95945945945948 8.918918918918905)"><text x="20.959459459459453" y="12.837837837837832" font-family="Virgil, Segoe UI Emoji" font-size="14.270270270270267px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">modify</text></g><g transform="translate(977 548.028168797493) rotate(0 36 15)"><path d="M-1.0235606748610735 -0.2973362188786268 L71.2833785098046 -0.0359532218426466 L72.50202843360603 31.414518596604477 L0.22717669419944286 28.046205701306473" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.15011304430663586 1.8932382743805647 C24.943788654729726 0.3750726926326752, 48.03799743689597 -0.2637412202358246, 70.97351730056107 -1.3463846165686846 M-0.3850548127666116 -0.980867057107389 C24.57171137612313 -0.9593032047525049, 47.52861394044012 -0.18612894866615537, 71.4122794708237 0.1423361310735345 M73.55816495604813 -1.8194066006690264 C71.45014951741322 10.01754726003856, 71.78825561320409 21.85904633253814, 71.50210970826447 28.337727634236227 M72.93744908180088 -0.39537238981574774 C73.04952894477174 8.903338585048918, 71.42541922954842 19.1792233651504, 72.88790435995907 30.031359584070753 M71.96607560105622 28.435338584706198 C52.367747065052384 31.511006970256577, 31.38752346374094 29.102741916030656, 1.74724149890244 31.094393519684683 M71.2352556725964 29.026571900583814 C51.961693765036756 29.881046411208818, 32.44089274462312 30.352880564145753, -0.271672205068171 30.110989154316496 M0.3673810977488756 31.852969435974966 C0.5261356160975992 23.588565454818315, 0.09664451340213415 15.951143208891155, 0.8640030045062304 -1.7109694797545671 M-0.2835356751456857 29.4494250426069 C-1.0063612959347665 17.61092582158745, -0.1763293943367899 6.392483706586063, -0.3671399215236306 -0.21115186717361212" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(992 553.528168797493) rotate(0 24 10)"><text x="24" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">delete</text></g><g transform="translate(59.5 330.5) rotate(0 502.5 98)"><path d="M0 0 C236.60258735949174 0, 473.20517471898347 0, 1005 0 M0 0 C215.53466234123334 0, 431.0693246824667 0, 1005 0 M1005 0 C1005 58.29503336437047, 1005 116.59006672874094, 1005 196 M1005 0 C1005 67.75976032130421, 1005 135.51952064260843, 1005 196 M1005 196 C708.2538820034824 196, 411.50776400696486 196, 0 196 M1005 196 C773.3042747327127 196, 541.6085494654253 196, 0 196 M0 196 C0 152.3522726725787, 0 108.70454534515738, 0 0 M0 196 C0 125.87278479225932, 0 55.74556958451865, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(66.49999999999994 410.5) rotate(0 490.50000000000006 0)"><path d="M0 0 C252.73749677846212 0, 505.47499355692423 0, 981 0 M0 0 C244.79863177081572 0, 489.59726354163143 0, 981 0" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(86.5 432) rotate(0 50.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">add stock</text></g><g transform="translate(203.5 431) rotate(0 53.5 13.5)"><path d="M0 0 C21.8098348245956 0, 43.6196696491912 0, 107 0 M0 0 C37.01331905713305 0, 74.0266381142661 0, 107 0 M107 0 C107 8.421399954054506, 107 16.84279990810901, 107 27 M107 0 C107 6.528938628640026, 107 13.057877257280053, 107 27 M107 27 C72.97604952594264 27, 38.9520990518853 27, 0 27 M107 27 C67.06758288154379 27, 27.13516576308757 27, 0 27 M0 27 C0 19.193650904204695, 0 11.38730180840939, 0 0 M0 27 C0 16.31016710260883, 0 5.6203342052176595, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(380.5 432) rotate(0 74 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">add lost stock</text></g><g transform="translate(549.5 431.5) rotate(0 56.5 15.5)"><path d="M0 0 C36.91112427236513 0, 73.82224854473026 0, 113 0 M0 0 C36.234580317419024 0, 72.46916063483805 0, 113 0 M113 0 C113 9.12061305968091, 113 18.24122611936182, 113 31 M113 0 C113 11.69794686259702, 113 23.39589372519404, 113 31 M113 31 C85.86607737420127 31, 58.732154748402536 31, 0 31 M113 31 C87.95429288418964 31, 62.90858576837927 31, 0 31 M0 31 C0 23.552736231405287, 0 16.105472462810575, 0 0 M0 31 C0 22.399694122653454, 0 13.799388245306908, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(732.5 432) rotate(0 66.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">set new price</text></g><g transform="translate(889.5 429.5) rotate(0 66.5 15)"><path d="M0 0 C28.93567685643211 0, 57.87135371286422 0, 133 0 M0 0 C34.21715312888846 0, 68.43430625777692 0, 133 0 M133 0 C133 11.36833905335516, 133 22.73667810671032, 133 30 M133 0 C133 8.993325554765761, 133 17.986651109531522, 133 30 M133 30 C88.16596848806367 30, 43.331936976127324 30, 0 30 M133 30 C86.7839588851668 30, 40.567917770333594 30, 0 30 M0 30 C0 20.98511249665171, 0 11.970224993303415, 0 0 M0 30 C0 20.7806252008304, 0 11.5612504016608, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(880.5 473.5) rotate(0 71 18.5)"><path d="M0 0 C36.445007521845405 0, 72.89001504369081 0, 142 0 M0 0 C34.50776604618877 0, 69.01553209237754 0, 142 0 M142 0 C142 9.416098087932916, 142 18.832196175865832, 142 37 M142 0 C142 10.410481216106565, 142 20.82096243221313, 142 37 M142 37 C88.53153102900832 37, 35.06306205801664 37, 0 37 M142 37 C96.89771539960056 37, 51.795430799201114 37, 0 37 M0 37 C0 28.526051104161887, 0 20.052102208323774, 0 0 M0 37 C0 28.743454091157766, 0 20.486908182315528, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(911.5 479.5) rotate(0 34.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">confirm</text></g><g transform="translate(725.5 474) rotate(0 62.5 18)"><path d="M0 0 C28.628205729182813 0, 57.256411458365626 0, 125 0 M0 0 C27.893736178521067 0, 55.787472357042134 0, 125 0 M125 0 C125 13.489777306839825, 125 26.97955461367965, 125 36 M125 0 C125 9.066014840081335, 125 18.13202968016267, 125 36 M125 36 C83.77585537964478 36, 42.55171075928956 36, 0 36 M125 36 C88.34966126596555 36, 51.6993225319311 36, 0 36 M0 36 C0 26.61359586305916, 0 17.227191726118324, 0 0 M0 36 C0 27.87999362759292, 0 19.75998725518584, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(746.5 479.5) rotate(0 29.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">cancel</text></g><g transform="translate(88 476.52816915512085) rotate(0 62.5 18)"><path d="M0 0 C32.26106901420281 0, 64.52213802840562 0, 125 0 M0 0 C30.663397454191 0, 61.326794908382 0, 125 0 M125 0 C125 13.758304744586349, 125 27.516609489172698, 125 36 M125 0 C125 13.826618790999056, 125 27.653237581998113, 125 36 M125 36 C79.79285951005295 36, 34.585719020105884 36, 0 36 M125 36 C77.17506856424734 36, 29.350137128494666 36, 0 36 M0 36 C0 23.977064103260638, 0 11.954128206521272, 0 0 M0 36 C0 26.95836720429361, 0 17.916734408587217, 0 0" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(109 482.02816915512085) rotate(0 22 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">more</text></g></svg> \ No newline at end of file
diff --git a/backoffice-product-list.svg b/backoffice-product-list.svg
new file mode 100644
index 00000000..804b0a35
--- /dev/null
+++ b/backoffice-product-list.svg
@@ -0,0 +1,16 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1115 672" width="1115" height="672">
+ <!-- svg-source:excalidraw -->
+ <!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO2dW1PqWlx1MDAxMsffz6ew9rxcdTAwMWWcdb+cN+WugHKRizOnLFxiXHUwMDAxXCKBXHUwMDAwXHTXqfnus4L7SIRcdTAwMDSjO4xcdTAwMTlcdTAwMDfL2rVJXGLE5Ned7tX/1etfv11cXPxw1lx1MDAxM/3HXHUwMDFmXHUwMDE3P/SV1jaN7qy9/PG7u32hz2zDXHUwMDFhq11o+9q25jNt+86B40zsP/7+991cdTAwMTGXmjV6OUo39ZE+dmz1vn+o11x1MDAxN1x1MDAxN//a/qv2XHUwMDE4XffYaWesNydcdTAwMTVUmNXzfaswQDdPw8H20O2b/jqZma457XHf1He7Vmo7geL19Vq9hlxmvr5eXHUwMDFhXWfgblx1MDAwM5K+blx1MDAxY+hGf+CorYyi140vXHUwMDFm/MdcdTAwMDV43WI7M2uoJy3Tmrnf/jew/dl9d6etXHL7M2s+7r6+x5m1x/akPVN/7O59PcM0q87afLlMbW0wn3n+gpdvafx1nnvbX4+zLXVRd0epr+1cdTAwMGbGum2/OcaatDXD2V5cdTAwMDOw+zvcc5zku9ur/+f+51x1MDAwZtqzyc/P+WG7Lzxnpuvu3eGQUEJcdTAwMDDbXT9cdTAwMGZcdTAwMDRcYuxvLVnjLVx1MDAxMFx1MDAxMDPBXHUwMDEw43h3nGGnXHUwMDE0XHTO9lN7bdPWd5fSvYrpXHUwMDE3Sl7OdDw3ze3ef//uR8zNVWO1ei5Y+Vx1MDAxNstcdTAwMTeyq/XqIddcXFx1MDAxZlx1MDAxMmNcdTAwMWHjfVg4ulx1MDAwNN5cdTAwMWb2hlx1MDAxZOTB5C92XHUwMDA055fqMIGgwJRyzlx1MDAwZUFcdTAwMDKXXHUwMDAwc1xmqIRcdTAwMTBcdTAwMDIhXHUwMDA0XHUwMDE3MFqw/iaY0CVcdTAwMGKASptZtp1cdTAwMTi0XHUwMDFkbVx1MDAxMEuwtn/LXHUwMDAxWFx1MDAxMHJcdTAwMDA4Zlxc+pBcdTAwMDUxXHUwMDBmJEtcdTAwMTLIXHUwMDE45Fx1MDAxZTP/KFmvuyeW4fVL7s/uf1x1MDAxN7t7tn3x+v8/f/d9dyAo26NcdTAwMGZcdTAwMTHZfd5ve5/7w2zbTtJcdTAwMWGNXGZH/VH37knun7nttGfOtTHuXHUwMDFh4/7+Pn3cXHLYsz3qajazllx1MDAwM73d9Tluf99cdTAwMTFcdTAwMWKkyWWN2stN005XXHUwMDFht/xhXlx1MDAxZvRKhzbo6Ctn31x1MDAwNulbo6PywOgoPLQyRKM1qu/orSFSPlx1MDAxOWBCXHUwMDBmzOftRd23KchcdTAwMDXFUEL56za1veHqXHUwMDA0jVG777l0PWvsVI2N+22ep4a7NdNcdTAwMWVcdTAwMTnm+s21cT/jyjT6461cdTAwMTfXe55cdTAwMWKkztwxVIzxutuxJt7bbOtbr68+TVx1MDAxY4HX4Ln+eFDNTq6gYWw0sCremz4hxyG8lJG38DJ0XHUwMDAwL1x1MDAwNPhM72foRVx1MDAxMFx1MDAxMlx1MDAwMVx1MDAwNUV+j1x1MDAwNIZcdTAwMDPpXHUwMDE1XHUwMDFjIFx1MDAxNaHwz8dcdTAwMWFcdTAwMDf0dnVbm1x1MDAxOVx1MDAxM8f97pgyXFxsbCrctMx0uuMkXHUwMDExbi5cdTAwMTZkUlxiwzCn+1x1MDAwZVhcdTAwMWMwLPhcdTAwMTnhzyAsuVCXl8NcdTAwMDNYXYKDY1x1MDAxYUggxUR4XHUwMDE4/2WCXHUwMDE1RObFZGZosXXC2WFcdTAwMWGWmlNrYD7V+M1cdTAwMDOvb276kzBcdTAwMDBcdTAwMGJPzPhcdTAwMDLwYdhOz1x1MDAwMH8ugqBcdTAwMThwKaQvwfQgXHUwMDBi3OV7XHUwMDAwXHUwMDAzwbiH8V8m2GmvdDuu8Fx1MDAwZZHMS7QsVzeTSjrbvHLk8GlcdTAwMTlcdTAwMDZeycBcdTAwMWW8/Fxmb1TwXHUwMDAyoVx1MDAwMjKOfEcrKFx1MDAwYoJcdTAwMTdJxjhcdTAwMDU0wvhhMrN6hlx1MDAxM1d4XHUwMDA35mw+Kte1SoXWnkbdQuUmMdmEgVx1MDAxN1x1MDAwMi726GVcdTAwMDf0QnDO3j6JL4WcSlx1MDAwNP3wXHUwMDE1wdlcdTAwMWJcdTAwMTaAQVxuSFx1MDAwNCNcIq/Rg2Npw4u37MWL4Zq+us4lXHUwMDExKDn3lelcdTAwMDA/ZfrLZSpcdTAwMTTDXGLujfr5eGAsz1xify58IFx1MDAwNFFcdTAwMDJ9w1x1MDAwN1x1MDAxMoiwXHUwMDAwgkrKUYTRg7pcdTAwMDbduLJ7k6pcdTAwMTRFs8I37Yr2qE1shuczn8g3qOLB8Vx1MDAxYn4xRpdA+Vx1MDAwZYYxx5T50EzE21FvSFx1MDAwZemm+O17XCKujcR+XGL75za19cou5jLEylx1MDAwM12vVVxueaE18bz44+f+z9iEuimcSMz9XHUwMDA25eDhUN1fRqHSSFx0XHUwMDA0wJ9PXG6PIPiAMsu11Vx1MDAxZFx1MDAwMVmHLaNR7Fx1MDAxNG5cdTAwMTIhR8DeRlx1MDAwMFx1MDAxOIpLepQ+6Fx1MDAxOSN7xU2AM19R8UWhlExQX59cdTAwMGJJIF+MXHUwMDAzzKhcdTAwMDRcdTAwMTFcdTAwMGU66G17faGPtdl6O3R20bGs4T/HzsCwL9SvbY30i7Gh6Vx1MDAxN/9cdTAwMWN7XHUwMDA22C6s3oUzcDeqqLk71/xDXHUwMDBlz0P7hG6bkyM28zTjmaqdaE9cdTAwMDcpZ5KtgPuFJCTUiJt4O2qMyXs2w/xC6LPJRGcynGAoXHTwd8lcdTAwMDfjz3+ZjCRCSMpIhHWSh2rqXHUwMDBmXHUwMDAyvlx1MDAxMHl4XGb5waK0oKl8I0HS7Fx0tERJJjatUGN0npGgcMh7Mssz8idA3pVjcMD8kYcoXGJ5wjAkhIlcYkNzXHUwMDE3eXyJaFxcoW82qjUtWze0hM5sMmv1r1udcVx1MDAxOOgllVx1MDAxZoRe+IRGZ+gjg15cbso5J8KXeVx1MDAxZTyaXHIpXCJcdTAwMTBcdTAwMTBcdTAwMTk19DzG1Fx1MDAwZq67qaHUcOWx3LZcdTAwMDfFUY+uXHUwMDEzmXCDgvLD4Y2PiuqMfXS+XlJcdTAwMDKgRIexv3vtXHUwMDAzo1x1MDAxYsixgIxRXHUwMDEyYUZcdTAwMDDBNlx08K/jxID6+05cdTAwMGXS0qo1y2SbwyGuk1x1MDAxNuWhquhcdTAwMTAh+kHqMThTf0LqXHUwMDExXHUwMDEwUDDiXHUwMDFkMPFUf0hcdTAwMTD1KnFcdTAwMDZMclx1MDAxOSH0XHUwMDE08bjyPups2vy5lbibQNS9atXGVb2PXHUwMDBleT+UzlJcdTAwMGX2cIeXXGZIdeEkRlgg5lNcYqJ+Ytkz71x1MDAxZuY9QEGLlMPmTPjyXHUwMDBlPbL4/XFcdTAwMWbEuVR+Plx1MDAwMuAjXHUwMDE10Hpw2Xv/wTWKt0D2yPi95zFMXHUwMDAyXHUwMDA1bVJIlaZxXHUwMDEyplx1MDAxZf1i1Vc3fHjvyClr1cq83q1veKnRXHUwMDBmsIk9rk9vXHKHdv7y/JT7yVJQXHUwMDE54zNuodfr7d6wXHUwMDFiVbuU6lx08frrU+TzXHUwMDE4008zI5ir3Fl67oa/edd0SUdCm5aur1OdRLKant/kdn4pyufdoVH+48+jIL6NXjxcZsLAilx1MDAxY0dSXHUwMDA1kFxchHFcdTAwMTIvXGYyaj7NXG45miqMOZ+m+vTpsX9cdTAwMWKfwmZcdTAwMDCFXHUwMDE48EsglMHh7e9+XCLDL1x1MDAxOYdUSlx1MDAwMpRJelxcalTl3tdcbp1cIlx1MDAxM4rdL/CZr1x1MDAwNPmlwNzze/BAUE5f3TThXHT744iqb2RELlx1MDAxMVx1MDAwN7tfz+jhkUhpXHUwMDFi0Fhdo7f2XHUwMDBmhNDeXHUwMDA1Q2+OflxypDR1cvrsSKQ1MrpdXHUwMDA1z684+2D1hnL16uS8Rd33LK0y6N2Wn2fNhv6YTWe0fMHQNFx1MDAxZXNvj/l+toRcdTAwMDOypci8PfdcdTAwMTlbw2CvXHUwMDEyvm9DKosjXGJ5boa/XHUwMDA1XHUwMDE1zXG12LFuy3Kcwd3+bJHpXFw78Xb2VFx1MDAwNjMoXHUwMDE4ZlxikFAh4Vx1MDAwYoPQyVhcdTAwMDMw7t89LEqAjVx1MDAwNptVdVmIv7eX+0mMjC7mOO7gj1c3/qJvXHUwMDFil1NPZFx1MDAxNEf8fFx1MDAxZHio1Nb9gu6Wq4DM9Vx1MDAwNFx1MDAwZfqF18VcdTAwMTI2W1LPXHUwMDE4PTMxulx1MDAxZJkz+PBQ/4Dk5q33XCLqeUWRgExw6Uo7fG73WXFcdTAwMTM+M57Xu7PnwrRWTpBm56rLbrGTgb8wXHUwMDEyxDHGVN0zv8RcdTAwMTjh4PFPSoHkQuDPXHUwMDBiKY9cdTAwMTDYJHa3/rRu3qJcdTAwMTGkXHR2k+tcdTAwMTk3iVCKm72RXHUwMDE3XHUwMDAy4CU4XHUwMDA231lwc1q8XHUwMDE4YUJF2fjgeeridTh5bTe8jlxigoShXGJ15t9bcPNwbfd6zZ61fF7n56t5YlHLT4vhXHUwMDA0N28lvupeXHUwMDFkN5mz3ua0XHUwMDBlWVx1MDAwMoKJ/8ROdCw3UvdLPTujXHUwMDE2XHUwMDFmxFdv0ys9mIZdSC5TM2qDdpL1N1xihtPbyI9cdTAwMTF/ltuclniEoVxuQFx1MDAwZVx1MDAwN3nds5GBxShcYlx1MDAxOVx1MDAwNlx1MDAxY1x1MDAwYvp/JLcpiGy61VnyZceeLte3dZlcXC3LoeQ2XHUwMDFlr1x1MDAxZIr5s9rmpMyrRFpdfuw/+1x1MDAxOVx1MDAwNVx1MDAwYt2hXCLenVx1MDAwMVx1MDAxZGqw+bvIbfC13pHEQbqRLbVun43HTPo+1OxnXGLkR4Obs9rmlNhcdTAwMTPq9q3wySu3KeWR4IZLKnGEjj7uWlx1MDAxYlZeksfHdilttrKlRs1cXFxmW/1KSK1ccv9cdTAwMTjyZ6nNaT29kIhQXHUwMDAyiH/zrsCZ1lx1MDAxMFKK3UpbhFNVYyy2acxHi7TRNlx1MDAwNr1qNpFcdTAwMWOPKlr2nlx1MDAxZVx1MDAwMu8ntkFveUfkXHUwMDEyXCJOXHUwMDA1xVRcdTAwMDWIUp7FNicj3l9sI4WUXHUwMDAysMNcdTAwMGVcdTAwMThbx3KkXHUwMDBmomSEYyBcIpgxclx1MDAxNtu4Oz5Vf+UoWOvNhUBcdTAwMTRcdTAwMDFcdTAwMTLmQfxi1qhB+zpvrFx1MDAxOVu0VqRhXHUwMDE1ZqtNL8AoYlN/XHUwMDA1e7lcdTAwMTJcbqhgfK3Yxlx1MDAxZIJcdTAwMDdcZiHwXlx1MDAwNWyZyne06mQ9vUlcdTAwMWHD5FxibzJ5uavnRPnIi05tI1x1MDAwM1x1MDAxNV+EQUGU01x1MDAwZuMlflZcdTAwMTPAM1ZPoVx1MDAxMeVcdTAwMDJcdTAwMTVZ9cpYocVD/OuvQFx1MDAwNqttXGJcdTAwMDaXbmBcdTAwMDGIwJhcIol+hcnTq21cYuLMlaq8J1x1MDAxNfhaUn0jo+8ttuEo0M444lx1MDAwNFx1MDAxM8bDhJ8vdnZnXHUwMDE1h9W0NVx1MDAxYddyhcqyki0sXHUwMDEy63zcfT3fy5ZcdTAwMTDzz5a+WGrDIVLw0ffUav3c5Lnaupk1mFbQelDWr9qP1Zi7elx1MDAxZezqJVx1MDAxNpziUNNccl5cdTAwMTB8Jlx1MDAxM9KZ6+tcdTAwMWPJlEx2w3Ot9CpcdTAwMTl/Vy/3Ulx1MDAxOJWyR1x1MDAxNXBEoLSBQt0jXHUwMDAxvH49jvT5uu+YS21cdTAwMDZy9lx1MDAwNFa1h9R6OZbasrVcdTAwMWNa1OMz3pPaiD1uJD9LbT5jl/44P6Qmj71rXHUwMDA3TzAzhvbm6knmXHUwMDE361+ZdFx1MDAwNZF63KCAXHUwMDA1XHUwMDAyjiTG6pa6quqTrFx1MDAwZnBd6ZBcdTAwMDf7XlTvq1lzfF+535jyKpzUZu/JKchZavOleDHJ1KPET2lcdTAwMDNlMFxckDLOZKRV1O+ttGliOlx1MDAxZadX61ZulU7VeG2Wf26Falx1MDAwN+WdN+meM4XvWMxZaXNSg+FcdTAwMDJBglx1MDAwZcPP7VVcdTAwMGVs8lx1MDAwMTmkXHUwMDA0U6/w+JtcdTAwMGJtctVVodXtPD5RS7OsXHUwMDA3Y1qrt3yG5v2aT7OPXHUwMDAxf1x1MDAxNtqc9lx0XHUwMDAxiITq2vtXX1x1MDAwM4d9pXo8QFx1MDAwNlwi7/BcdTAwMTFjxYF5NytLtFx1MDAwNDg1fCjnXHUwMDFhpeeq3VxuXHUwMDE1XHUwMDE1yb2Wf+9cIn/W2ZxcdTAwMTR5jChjWFx1MDAxY+omt/F44LxvKVx1MDAxOeeU/sKSXFz+yMdZZZPvplLjW1a+XHUwMDFi96bdXFwq21x1MDAxYz12h6EkXHUwMDA33lVcXMJcdTAwMDU2Z5XNKaGnWEhG6aGeZnuzXHUwMDAyI1x1MDAxYilcdTAwMDCHjIaaS/9NZDYpvMnetkr1lP1MM7aoiGl72Vx1MDAwZsU8wuRjzJ9lNidlXHUwMDFlcrdcdTAwMWNcdTAwMDaIr8xGXHUwMDFl0VNi4WJcdTAwMWalnjLGKlx1MDAxYlme3JnztiFb4lx1MDAxYU6Ldr0xafu0ZfVT2bzVzFPAzyqb/1x1MDAxMvBBi0JcdTAwMTJcbtzFvHxl8+zA97+2ylask2h6OJ1VNu6Oz3U5XHUwMDEwgcI/iYFcYrvEyotVV9vdRPWxaC7Z5mpeajOrnbGf4l54XHUwMDA1e4lcdTAwMTJcYqhdfK3Ihlx1MDAwMWUpxNvd0t+6M/e5qzVf5lp9uWjmq3pcIj2b7jq6RPm8i67wXHUwMDFh3OdcciMokYQ0fOE11Vx1MDAxZWxGXHUwMDBiRytcdTAwMGJ2d9u9rVx1MDAxN64qT8VcdTAwMDBcdTAwMDRjVHiFLFhjQyH+X9LYIIJcdTAwMDAl3lXF4kiqb1xc9L01NkxcdTAwMDTaXHUwMDE5o4AwXHUwMDFlbpjhZ1/9OjdLueXYsaaaczet6je8NI+7q99r6U9dZVv8NDZQQsJUTIvfs6BmYjTXKmnaL9/b61VcdTAwMGLWXHUwMDEz84dRzH09XHUwMDBl9vVUXHUwMDA178RbzX2PwU0quVx1MDAxYy6W6L67XHUwMDA2z0NgzZzn1iT+vn6vh1x1MDAxZVxy6kvyRVwiXHUwMDFiyCikXGK/28/ma+nz9d8xXHUwMDE32bRuU6VJv5/stVx1MDAxZlN2XCJltFdYNz8gstlcdTAwMWLclFx1MDAwMeKss8jmuF1cdTAwMDZ0em1VXHUwMDA3T+gxWVI4N65GhXa5TJ9/ZexTuTNcdTAwMDCwf42LXHUwMDA3XHUwMDBl+CNcIlVcdTAwMDbCQ3nBXHUwMDBma2yKXHUwMDA2uJ7URFxuPFx1MDAxYb3ne0gqpedhqHbxdG9cdEn1+qyx+Uq6XHUwMDA0XHUwMDA37qiL/1xcPlx1MDAxNlxcTlx1MDAwMpCphD7KQcbvrbExcM7MXFy1uovpoNXpP+O7Tj5cdTAwMTVqWVx1MDAxMb63vlx1MDAwMlx1MDAwM+9YzFljc1KDgVJlpFx1MDAwNPmsXHUwMDEz5e70eKZcdTAwMDPptySCRdr/Kd5cIlx1MDAxYoWAwyaF6/tETidcdTAwMGbT5WPHzC3CiWz4x4g/i2xOSzyXXHUwMDAyUVxu/ES+8LD//OsjXHUwMDAySkkl4lx1MDAxMavK4iyyXHUwMDE5rLKL5CY9LGuJu4SRfFjfP6Xvw4ls5MeQP4tsToo8Qlx1MDAwMlx1MDAxMMb8u3rI4Fx1MDAwZVx1MDAwN+p+qezKu1x1MDAwNP33V9lMJk0szDVsVp+TWmI66m5KiVB9+iBcdTAwMDRcdTAwMWZccm3OKptTUo9cdTAwMDXEkFwiP5FNsNxcdTAwMWVcdTAwMDNEMKJRrt5cdTAwMWR3jc14vL6eT1x1MDAxYuux3n5ojFx1MDAwN915XHLnQq2LXHRcdTAwMTGmXHUwMDFmI/6ssTmtn6dcdTAwMTgyLHxcdTAwMWJ7XHUwMDFjWSFcdTAwMTAxxqG309l3VtjcXHUwMDE5V5Z2N12mXG7tLFx1MDAwN85Dxlx1MDAxY7T1Q9p9XHUwMDE0Np5k6Fx1MDAwNXboUdjAXHUwMDAz1s/ymohYXHUwMDBmWjFKXHUwMDAyXCLcy+9cdTAwMWLHXHUwMDA3di5mbrNjhFlcdTAwMDRcdTAwMGX+LK9xd3yu5sqC24ZK6a7qRVn4XHUwMDA2XCJls5tedG6y1ZyFXHUwMDE4nmjAnvSncS+6gv1cdTAwMWMpujnlUTaxXHUwMDAxTFx1MDAwMMzlu2Wv7NP0XHQl0+NcXL1ka8X1k+002cpb9orsYVx1MDAxN2HRNXilaCRUzlx1MDAwNEOtXHUwMDFl+sIg3VRcdTAwMTJcdTAwMWR72bJ7KzavPybJRPRl/Iuu8MiSUczVkP7vXGJsXHUwMDE4QsqzQ4/pxJFU37Dom1x1MDAwYmxY8GRNRVx1MDAxNlx1MDAxNFx1MDAxY4LwXG6bXHUwMDAybN3rg3XftEBnnct2bjeALOPu7MV+ooTjqLBhXHUwMDE4MLWdv+frXHUwMDEzjfKwPjZHT1x1MDAwYv5cXFhcZvO1XoajmPv64Gk1KnqnhMpQXHUwMDEx4U+VfmqlWc+tdrWYfMx0XHUwMDE3TT1js3XsfT1cdTAwMDH7XHSMiJXARoVuULD3eyh9LX2+/jvmXHUwMDAym9RV7brXXFzedK839fq8X7kxl+OPdLF5K7BRvJxcdTAwMDU2n7FLf5yHq6E5SVx1MDAwZWZcYnb4XHUwMDAylNuN69H45le6JlBcdTAwMDRAwIxaeJgt7/qMXGKKhYD8JF1sdFx1MDAwYmZ7Zj09n43n42rnJoVu9ZBcdTAwMGJGvVXYMH7uYvOleKmEUOWuzKtj91xuuI70plVxXHUwMDA1IVHWkr63xMbMPWana8zGbccu8ue7otaCoYbl9yU2XHUwMDFjnNvYfKXFIFc6jJhyrb5cdTAwMWU5cOorQlLIN8vufHOJzbwznVmTXCLg6fJKpFx1MDAxMuazLjM+61q+L7F5l/izxOakxKucniC3W4FcdTAwMWbw5EhcdTAwMWY9XGaAfDPB49trbFxmUVhcZtjieVJcdTAwMWZ0XHUwMDA3g/EmMVx1MDAxNCRUU499jc27zJ81NqeNi1x1MDAwNEFcdTAwMTSqS+/fPDJQV6Z2QYjIr8Td/tDHWWSTllxyOVqmZ1xir6dsni0nXHUwMDEyN3ntU1wim/eDm7PI5pTYXHUwMDBiLlxixcjP01x1MDAxZmvqgSRcdTAwMDRQiv+jTjb1ebpDjFa75Fx1MDAxNLX6jMyfpo/Nbijk91U271wif1bZnNbTI1wiXHUwMDAxXHUwMDE1xLdNsFxiLnVIXHUwMDAw+Zv5g99ZZjPU82mskfS11khnMM+nil1gXHUwMDFm4lx1MDAxZUJmI/lZZvPfgN1fZkMpQFxmXHUwMDA1jPaQYOkwYYwzXHUwMDEwbtbyWWZzMplccj9cdTAwMThcdTAwMDXeibshdJdw/0BcdTAwMWJcdTAwMWI9OTJcdTAwMTfVQu22s0CrzUPWdDJO0Lzy2FRe92U2QS34v1hmwyhDjON3xVx1MDAwYs/zpplutXLlvCjesYKVwfn+rkFYlE+7XGJlNoFiPKliQFx1MDAwMsJ1rn1hkDM7N8vek7TeaU2Xj4trI41HXHUwMDAxXGbGp/R6VGbDwf9UXHUwMDFmXHUwMDFiXHUwMDE1uLvVclxiYaxR9Y2LvrvOJtDQXHUwMDEwklx1MDAwNDLvur7vXHUwMDE5Ws1cdTAwMWPemjJrPWrX/Cl7XHUwMDA1e5s7UY67s9+X2chYNrKhTJ1cdTAwMGV/19VcdTAwMGZqN30y2+hgRIf2cjJqpCZwXHUwMDFjc1dcdTAwMGZcdTAwMDNcdFS5jzvBnonw65VcdTAwMTWlRkBHyz7WVlwi2Zw9Npf67U3sff2+zMZN1+MksyGSq+eRt31hXHUwMDFj8fN13/GR2fz28y/80Z5Mqk7bcT/5xUrU1TS6P094XHUwMDE32P9YXHUwMDE4+vLa36u4juU39zP//Vx1MDAxZlrswO8ifQ==<!-- payload-end -->
+ <defs>
+ <style>
+ @font-face {
+ font-family: "Virgil";
+ src: url("https://excalidraw.com/Virgil.woff2");
+ }
+ @font-face {
+ font-family: "Cascadia";
+ src: url("https://excalidraw.com/Cascadia.woff2");
+ }
+ </style>
+ </defs>
+ <rect x="0" y="0" width="1115" height="672" fill="#ffffff"></rect><g transform="translate(10 10) rotate(0 547.5 326)"><path d="M0.28300008848309516 -0.10272883251309395 C322.7684008703567 -3.249135070387274, 646.6541930401697 -3.1787367158569397, 1095.0694143541157 0.3002875201404095 M-0.14274714626371862 -0.14749729596078395 C435.26786967543893 -1.4277095694653688, 870.4879770824687 -1.2544425983540712, 1095.0382535990327 0.13947891034185886 M1095.5105304963886 0.6175911776721478 C1097.0417141860278 193.74504766874017, 1096.244575185135 386.84475681483747, 1095.3573703296483 651.42318245098 M1095.3055815752596 0.3282193545252085 C1094.1187614355683 166.57846095710994, 1093.6736810718178 332.37165948413315, 1094.8600011285394 651.7144757274539 M1094.4769715793432 651.2951064698398 C805.1007265179418 653.0641451742687, 515.407929485105 653.033354869131, -0.30353157445788387 651.4273693434894 M1094.6100103791803 651.6110134128481 C746.6022469569929 654.7763040247373, 397.94955517482015 654.8151921811514, 0.17216270528733732 652.0659469250589 M-0.41345302984118465 652.6087965361774 C-0.9362985856682059 436.04914478696884, -1.2384745128303762 221.09978280216458, 0.11046352460980416 -0.6152035601437092 M-0.10833036340773106 652.3850279454142 C-1.3619703296124932 496.12023136541245, -1.2095981481969353 340.4985137801617, 0.05485307537019253 -0.18719880543649198" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(64.00000000000006 144) rotate(0 439.0211364959554 -0.12335971165444448)"><path d="M-1.166959761455655 0.08535477407276626 C144.83538518923027 0.18754945810884838, 730.4803302132837 -0.6348739670589263, 876.8331211020799 -0.5568007582425707 M0.4212476344406606 -0.91543791487813 C146.74793048481146 -0.5584875407442389, 733.2945251532396 0.7690726523474164, 879.2092327533663 0.6687184915691979" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(67 108) rotate(0 25.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">image</text></g><g transform="translate(156 111) rotate(0 51.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description</text></g><g transform="translate(347 107) rotate(0 43.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">sell price</text></g><g transform="translate(471 104) rotate(0 28.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">taxes</text></g><g transform="translate(552 106) rotate(0 28.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">profit</text></g><g transform="translate(670 105) rotate(0 50.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">stock left</text></g><g transform="translate(808 106) rotate(0 19.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">sold</text></g><g transform="translate(65 181.01056337356567) rotate(0 24 26.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.10562446120662006 5.778505192001455 C0.712039556784668 4.6270861441647515, 3.167437908844614 3.755203030722913, 4.418349856468386 -0.09472397530104576 M-0.4239287804486105 6.11397725236892 C1.6592724453900873 4.4810907954860655, 2.7182058267483202 2.3891493252281633, 5.074895011591262 -0.003541038945574171 M-1.1174246287811889 10.575922696709215 C2.734097381502821 9.892022070709062, 4.42469628704284 4.229663367708016, 11.356855812621248 0.08554193778780705 M0.7890500427316534 12.414791293114005 C3.1170898113410765 9.233976224064163, 5.458744807902177 6.151746706105989, 11.284780359965694 -0.6686331984505295 M1.5140093704173108 18.90663629481631 C4.631582870951766 10.70237873024596, 11.789564301585466 2.436144699512777, 15.324664840012272 -0.06554243090329859 M-0.9793816544628005 18.42847430696773 C2.6943916622224697 14.781004011416114, 6.630301413952843 9.435944292150975, 16.01880412409403 0.7318394795921614 M-0.7650188410469081 25.73588101164913 C8.920746454391853 14.204511780247685, 16.51723508347639 5.850307444259318, 21.03153752563324 -0.8548783628106591 M-0.13995537979535122 24.174219085550963 C6.353481344144762 15.884491401412916, 14.278609592607756 8.278488104982047, 20.483883683847154 -0.6534752189949629 M1.263320508464183 30.88475954881703 C6.634919983337339 20.997597609901433, 18.019070567320767 12.31014410816875, 25.363465760510774 1.7923018498358072 M0.514747276953365 30.50630129012113 C7.232636173023155 21.76585498391409, 15.854500124793761 13.240760619998529, 27.222094850290926 -0.3229053724545299 M-0.1816200950276574 37.33702668156599 C11.527719900241996 25.177328854358297, 22.92828748330984 11.741319647637276, 33.18218918465713 -1.8500347229406948 M-0.31713091499176826 36.094236193971085 C9.003870338195647 25.813337968368266, 19.106196162096666 14.571353426451065, 32.01635035914073 -0.05598122521645976 M0.15271495949933467 41.82448406014197 C9.363807590350156 33.604965002276806, 13.999529493766772 23.65347718772586, 38.57091444712256 1.4464641847741326 M1.092826251094138 41.93664063289367 C7.933692720034754 31.46025457518482, 18.35487809667769 22.59708821206704, 37.149350267649936 1.1219568616804203 M0.8964073210953885 47.77860895045929 C16.112699673497225 32.28602922829711, 29.463642620133502 12.469397766832557, 42.39528743791931 -1.4856406069965118 M-0.121118667535562 48.78161174585007 C9.684219499470776 36.36219855359981, 21.097344193744245 24.67004479958502, 41.99580418653392 -0.941668231193816 M-0.3819630912367238 51.98037759231836 C9.28944799735884 41.288633883020026, 20.15342841706237 30.915622540323604, 49.367421056097626 -1.4844030823383285 M1.173365468825029 53.245300333187586 C14.898183582059922 38.07296710726578, 29.21486143403588 20.43394257234298, 48.11770904804605 -0.3327437398779942 M4.512945795496279 54.266603520296854 C17.07180769635458 39.88788769460177, 31.05934848771519 23.730698476269385, 50.982631325707736 2.6101696496629785 M5.826192266372317 53.98699917753075 C16.077365923864303 41.98262744992661, 26.735884666447724 30.594581843956334, 51.232335221939685 2.066944662089057 M12.155147918373107 53.764533365977385 C24.73624920233673 35.54278929731255, 40.60505304605046 18.803580700059833, 52.487996424790396 9.888907774698929 M11.188017507888137 53.412488846009055 C26.097623831881933 35.34569988571607, 42.080951438006785 18.597359324908112, 50.2120355444587 8.981253283445731 M17.682537426443997 54.522831895274244 C27.902427521520288 42.58325548531826, 40.57473611963459 26.263301322244107, 51.163033772348356 15.79685003256995 M17.32669750062585 53.77377272758367 C27.67237536344733 41.78874250399487, 39.434652296313104 27.811126954941045, 50.396172405308974 14.631801674539332 M23.765447709721222 53.44437242821063 C33.88581958947318 41.82398626612125, 41.75027613040699 28.86334052596148, 51.3519048833939 18.594291618299255 M23.02709810530086 54.57061745282466 C30.297295479141837 45.32358508948573, 36.28785118698312 37.9823167736937, 50.65457260270591 19.66777052843995 M25.670679167255003 53.01141348070085 C35.99282662780928 42.46358770567434, 44.36655474694058 30.40307274721701, 50.80773828197726 26.308412922801146 M26.886372504166502 53.74447953569323 C33.437658591655314 45.387737891430675, 41.842208972124865 37.83730059483703, 50.76310025640287 27.586280421608755 M32.822471439057615 51.935422122768095 C38.00038396795368 48.40436985680702, 41.70659981835796 42.162816927297115, 51.59754270412019 34.13781247132158 M31.906183432938185 53.79707873175942 C39.79705629290511 46.05624461635858, 46.99615034029385 37.920247420464335, 50.339820010624734 32.60567475233859 M37.866531174179286 53.88225062032667 C41.91956788890755 51.57672740002783, 45.61626031866881 44.71015965266845, 50.44653001084444 39.404135664106555 M38.58798094886926 54.984324679984425 C42.373352179133924 49.16938787278426, 45.3389749752 46.43865620930032, 50.22056994709638 38.08589848142231 M42.778446742715836 53.91791590668237 C45.87370516278307 51.53897573951606, 49.082079417606295 46.502463712105275, 50.894227547431235 45.99206253259846 M43.490267962739395 53.54002766382856 C45.315296859170566 51.99502598868141, 46.73625789037814 49.796692263326236, 50.75788056571024 45.686907878261366 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M5.55558527688535 53.24474245696575 C2.7773596014310655 50.534882422221216, 0.5940922238444915 48.59089050233872, -0.8499289608364633 47.30767662286122 M6.212171928761919 52.939015190818026 C3.8187515091547755 51.386020793981956, 1.7973774544347234 49.444468371683364, -0.2521375584220223 47.29646257034798 M11.43727654129596 51.59293537523378 C10.329994601092338 49.60393688995907, 7.295997248308073 46.99222353448717, -0.4299027520187595 41.86267425145829 M12.697813531610683 52.5739948571824 C6.780077195378912 48.6120961554784, 2.3319492560285005 44.21201698108727, -0.5122637252279023 42.216136472931744 M18.281638977952902 52.64128379643208 C12.575542172619008 49.418425714019754, 7.495861617352492 44.77008045966858, 0.4528664261380264 36.21363275152093 M18.108505676404242 53.3236847410748 C14.676674236342425 48.56571938715583, 8.529895157085782 45.479228215114595, 0.03776857576314896 37.02529730581141 M23.120410543578757 51.74278458022296 C13.534962974150464 43.193500845249375, 3.1782117378665298 35.25629736126288, 1.3726865094281084 33.11874503635775 M23.697378838147117 52.57933168952137 C19.311537319914756 49.63148459177489, 13.460487962059405 44.37719458372209, 1.055023209576989 31.193597922967484 M30.8966786309557 52.80879890655415 C23.662220463442832 46.7331095697774, 16.40644263192145 39.57607964175425, 0.10467819230498776 27.289228879972622 M31.401640252903288 53.81125193850385 C23.414414208412236 47.28487847146896, 18.50518439728561 40.5170402454635, -0.8033509644320418 25.813804026819096 M36.074473786669444 52.918016822913394 C25.11642487715973 43.02828489313245, 14.3329381649189 31.884337400468198, -1.2569615327545396 19.847932320815303 M36.89262637546159 51.961630408556864 C26.168954458111507 44.59397008885212, 16.112926968667363 34.080068805007855, 0.26903176691597785 21.070500716362872 M40.79486800319678 51.896411367750446 C29.49183789669052 39.548714042144525, 12.924685724453994 28.385626269681666, -0.16617086916476786 15.604014156373534 M43.07828541900194 52.73848969867704 C34.39381672537266 45.324885484813215, 24.961888078404094 36.11949431912208, -0.6287577665901214 16.07188853713343 M47.15079807712341 53.75626633855305 C40.06707933182965 42.84177693827111, 28.72192933263241 34.643872466586004, 0.7251534255510945 8.988916175097074 M48.40925071331317 52.523467854399 C30.885641167761275 38.516202174262276, 14.800061017581939 23.09666711343347, 0.27646302322957705 10.2545057131274 M49.499565609143964 47.383676291846896 C30.86398171828729 32.22612827695339, 14.58273549971672 18.747726341616378, -2.1580206020212445 5.495390924473663 M48.22259070479303 48.52806836779531 C38.532196913718955 39.501474970413526, 29.22027931661231 31.028300110322693, -0.26193815883609384 5.291005914879402 M48.850690287626314 43.7229910070438 C31.943287855983947 27.13357168410475, 18.624653813003587 16.501881179088304, 1.036316540595009 -0.3865260570469358 M49.160912240012514 42.44685464132466 C33.43949824889815 28.636990626415667, 17.952908966372423 15.122350118250544, 0.8710181503927846 0.49488049138607 M49.10305660504725 37.96737102259352 C34.621526396953385 22.748630206317735, 18.75535026577142 8.835751172527264, 4.654425371990509 2.1740427889375775 M48.440757282151544 36.11675552398368 C35.16449841691548 24.56458957538787, 20.767439318034363 11.812403254974356, 6.250382752709992 0.6327674990965813 M47.35741385799249 32.24628763598378 C38.004320800177766 23.14197631938842, 27.900335786047243 11.789167623205959, 12.000416252191556 -0.740922568018612 M48.19635291099896 30.673315311306965 C38.11598659268596 21.71734611692051, 26.3501092716837 12.827697871289203, 11.406126603844953 0.3034620931119951 M48.266552788938824 25.56149513566435 C38.89819751975069 19.575857995829047, 30.383636159327764 13.408204685258386, 18.025908048674946 0.6027540355342627 M48.86103796473468 25.955415977291175 C38.94524994316787 18.549244899473237, 29.379304833126913 9.88091422665454, 17.54404947947759 0.8077603099289536 M48.310128944471955 19.22605856912297 C42.42808375875442 15.19023580724047, 33.049439511245524 7.471022324384149, 22.321884433026383 -1.5619404779160693 M47.473336398147524 20.413054942470907 C41.81962099414832 14.962946642453282, 34.18540864306221 8.30103429564001, 23.56888627189673 0.46382363258206105 M50.14483931706867 14.800325974809398 C43.05980653064605 13.44894722137418, 40.20629400109304 5.434523420480339, 29.468870522722668 -0.5672361949198361 M49.05838392441741 16.512067305842805 C45.13246511362931 11.335980140178865, 40.05809875780326 8.970908347563615, 30.4657336317823 -0.988098777432036 M47.20898077331603 11.172520184602575 C46.02998851730225 7.175180685945487, 43.03668327691043 5.428477623827735, 36.26923493467381 0.6524616527305405 M48.7500475258299 10.505730781650158 C45.580758303107345 6.720993282448451, 41.391177441262215 4.699411061306543, 37.24001024997903 0.947706750913472 M48.504556553442974 4.780874481459597 C45.97810916167401 3.3867923009171306, 44.66049198621663 1.7014089559151044, 42.83635921025241 -0.5323754346761916 M48.37182454839815 4.874258963053564 C46.27116637671207 3.2745056664264114, 43.92292455238729 1.6563683806124778, 42.36414958269859 -0.16330708515085918" stroke="#868e96" stroke-width="0.5" fill="none"></path><path d="M0.6146841067820787 -0.5834815222769976 C17.24981013275684 1.954684037938714, 38.87346345670523 1.6631277392059565, 48.18662339635195 0.49796530418097973 M-0.7575594941154122 -0.15434044506400824 C17.31205180343241 1.0470470016077162, 35.081537025235605 0.45269901800900714, 48.35066975560041 -0.8202274134382606 M49.80522185750307 -0.13571646995842457 C49.21652545151302 18.533468589838606, 49.28607876715252 40.09495520908388, 47.25796139426531 54.054462580010316 M47.21079267468305 0.17319962475448847 C48.41616207442248 16.62807494094596, 48.23179444751704 30.820835732296125, 47.62012265529485 53.9406937370077 M49.69581949897112 51.903034834191224 C32.90306157507003 51.21025277979674, 17.322097550705077 52.81465061314406, -1.807249603793025 51.254375306889436 M47.32855032291265 53.45263731572779 C30.574814233742664 53.34825427073987, 14.502092205546802 54.105215109773, -0.8791403034701943 52.01841119024905 M1.367348613217473 52.28490862064066 C1.2964134134631602 38.153827504906815, -1.943988867821172 22.244515722058722, -1.6293098907917738 -0.41773840971291065 M0.05088312830775976 53.179486543871484 C0.4115882316324862 39.501032089162635, 0.6703148582670839 24.31858078539372, -0.9194885054603219 -0.6296470751985908" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(160 167.51056337356567) rotate(0 81 40)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">easy encryption book</text><text x="0" y="34" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this is some nice </text><text x="0" y="54" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description of the </text><text x="0" y="74" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">product</text></g><g transform="translate(376 197.51056337356567) rotate(0 30.5 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:40</text></g><g transform="translate(459 197.51056337356567) rotate(0 39 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:3.25</text></g><g transform="translate(551 197.51056337356567) rotate(0 41 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:37.25</text></g><g transform="translate(686 197.51056337356567) rotate(0 33 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">10 books</text></g><g transform="translate(817 197.51056337356567) rotate(0 15 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">527</text></g><g><g transform="translate(162 190.60997993238266) rotate(0 77.42248349078 -0.09941655881701195)"><path d="M-0.6694575022906065 0.6169069301337002 C25.402197401598098 0.6707725416868924, 129.36748919971288 -0.7288406599313021, 155.5144244838506 -0.8157400477677583 M1.1799385796673598 -0.10482087688520547 C27.131191019285474 0.1816919289343059, 128.58180216060953 0.03209478182718145, 154.31145187424497 0.29342167837545263" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(891 191.01056337356567) rotate(0 30.993243243243228 16.5)"><path d="M1.3511249106377363 0.15056139416992664 L61.73554446301549 -1.222414968535304 L62.79354031882375 34.29554075188935 L1.0476344507187605 31.362570645287633" stroke="none" stroke-width="0" fill="#fff"></path><path d="M1.444743873551488 -0.7684797961264849 C19.564320276170417 1.0145303967447852, 36.12237514863798 -0.9989268419293788, 60.80937539911955 -0.3292982894927263 M0.06992046441882849 -0.8692620387300849 C19.818806055841367 0.09957273935508992, 40.12266811058178 0.33059172963333394, 61.693479126646515 0.24173316452652216 M62.927790754801926 1.6983358543366194 C62.42342363543935 13.676700907479972, 60.71377925820775 23.648197598196568, 61.39449971295088 33.20645466260612 M62.22898656721353 -0.2786032250151038 C61.75852855393789 11.989240319561215, 62.05110108206175 25.583226175233726, 62.330855762913224 32.049342394806445 M62.70912783718794 31.62063970975578 C39.28927419878718 32.75240447842856, 14.015540631797563 33.860975590584474, -0.9415071588009596 33.50793751887977 M62.3230663895154 32.04849910829216 C47.6689671621746 31.838553862932542, 32.43379703487043 33.04612581646762, -0.010968969203531742 33.51688757631928 M0.7993142027407885 32.69588050059974 C-0.07501333438791336 22.50060437591746, -1.9222500272933394 10.393552662245927, 0.8337149638682604 0.25502088479697704 M0.6549858590587974 33.82240262720734 C0.37873217535205184 26.119814921263604, -0.14756393360905348 18.49367470219731, -0.6587352314963937 0.19164043758064508" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(899.088963963964 196.6715994096018) rotate(0 20.95945945945948 8.918918918918905)"><text x="20.959459459459453" y="12.837837837837832" font-family="Virgil, Segoe UI Emoji" font-size="14.270270270270267px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">modify</text></g><g transform="translate(967 192.51056337356567) rotate(0 36 15)"><path d="M-0.2765782196074724 1.2927613276988268 L70.88204935006797 -0.5958228688687086 L71.03429683856666 30.5426944512874 L0.4038580935448408 28.63403350301088" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.9217289071530104 -0.7760771829634905 C19.004610259458424 -1.950476394891739, 35.87473795451224 -0.9825970399379731, 70.32646274752915 0.6832859795540571 M-0.6388314226642251 0.9683965751901269 C17.102149596624077 0.3464421656355262, 34.311955956183375 -0.4028769407048821, 72.66723661031574 0.17841655109077692 M72.79291582293808 -1.1603109557181597 C70.56873342907056 11.840510676614945, 72.84097877657041 21.431692950427543, 72.47287208028138 28.00818726234139 M72.02811483945698 -0.8685845723375678 C72.48396070627496 10.191743288189178, 71.27159606246278 20.94903255160899, 72.15325845684856 29.93897053692491 M73.141885580495 29.958856074139486 C52.00468189381063 30.7245898769796, 27.593127087131137 31.353926293700944, -1.834955571219325 30.85962167195977 M72.05750979389995 30.05526134464891 C54.24854973684997 29.79812975805254, 37.01650828178972 29.842563322000217, 0.41270922031253576 29.886773706413816 M-1.4677761774510145 30.976138262078177 C-1.0913238658569755 21.063678429462023, -1.8261776699684562 10.574953261762861, 0.7963513750582933 0.6772254388779402 M0.3195621808990836 29.58603417966516 C-0.5900252780877053 22.57911875657738, 0.05470579648390411 17.86907928716392, -0.7554914215579629 -0.3264100244268775" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(982 198.01056337356567) rotate(0 24 10)"><text x="24" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">delete</text></g><g transform="translate(67 263.528168797493) rotate(0 24 26.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.4443555593164513 6.492934522827261 C0.8184985205000483 4.48128363586597, 3.269127327975272 2.8299480117094022, 4.460934228035159 1.095475924372416 M-0.3751621436001608 6.528304563884728 C1.2415137733372883 5.01884297698054, 2.302075115469497 3.6601118558279357, 5.09365142505104 0.5872930779901557 M0.1993114971648562 12.345458238243639 C2.8917589955280394 6.992824352116807, 7.644276611821708 5.317532054796995, 10.44026369149698 -1.5327368517324567 M0.29027136574495904 12.669274468391716 C4.0955178138108215 7.024130491441982, 8.867081063465807 2.438663203743052, 11.304741001826656 -0.34848992795797573 M-0.3256699899723987 19.744230923150354 C2.7072050574050577 11.67382602230414, 7.383818767816077 9.582225072777023, 13.916347631722171 -0.9455038023251126 M0.26534148673058944 18.459222853091234 C5.625517723628379 12.281897584129325, 12.72371177899983 4.217963320959063, 15.293604245878239 0.6085181252029708 M2.055576304178617 22.68413619296169 C8.302878225401317 17.89707392337162, 11.80424379085067 9.764454765950378, 20.377611033895874 1.4594389828085426 M0.4166287996060465 25.049142970419584 C5.878358418191016 17.576441209329285, 11.106466129982344 11.737688214192843, 21.42290080087062 0.6417806208297137 M1.9174079327424423 32.33881688467061 C5.6552739759986554 23.854021769750272, 13.605873359214575 14.943212732597484, 24.883241508763643 0.8874457640585245 M0.4694351703440205 31.24560315045362 C10.15596945927751 19.93395185648462, 18.866411779168818 9.375476223909953, 27.1947747633349 0.9091771733027638 M-1.1184788682591638 38.22718402352308 C11.73723441306131 24.902822279755565, 23.03961065906983 13.716674946382156, 33.072322446337736 -1.227360138551962 M-0.42301850683060493 36.79429054148619 C11.456453535960774 22.789063566349917, 24.000036848716928 9.386042564765916, 31.159716993986464 -0.6051505868077989 M-0.022184737804437304 43.24119550976508 C10.762104761368049 31.028715372578944, 21.880196564178355 17.929556716077517, 38.1804042456684 -0.8714702091086188 M-0.26473790019294086 42.957493854310144 C15.054709812407932 25.27489271317104, 27.666887637835075 9.704072262962384, 36.18050567507868 0.02462885445919838 M-0.011284276843149144 48.59748485931091 C11.75557774651142 38.58642446052634, 20.704268598547927 23.44536548145269, 42.60047654676788 -0.8021673775882476 M0.15861767251036696 47.93448210288666 C9.98623777522441 36.234831054110494, 20.771542546768703 23.850449595389026, 42.024428542326916 0.7846102526738292 M-0.989853816372527 52.487184561961 C15.181340083291584 35.48861635815743, 32.27367828234357 17.064733733735878, 46.94699599868643 2.1776506219234513 M1.8719574759852158 52.980077962563044 C11.826052039744988 39.952222417389066, 24.29396445355029 27.117999830408266, 48.45856065298456 0.9150782467972682 M6.13979246660071 55.78226440229301 C17.102894939564294 43.337956591541364, 28.088357567084618 30.718681911026135, 48.99262237547428 2.888132930340774 M5.4302732414280115 54.57974609096382 C19.723879461132704 37.95469166679331, 32.96836008346703 22.59752690370807, 51.21775050180495 2.0479190382906864 M13.229012259155272 54.270127261889556 C25.247840565657253 39.907685288515616, 37.16820417821639 24.70305139255208, 50.63677760517217 9.70526598335524 M11.70179887662059 54.1529389302185 C24.99520487233879 37.43861591616904, 38.59811182687437 20.514022847789676, 51.00442905003197 8.608160810892478 M17.068043460341396 52.28459415666493 C27.793866477289583 39.73988430531355, 42.39563305113521 25.50826407129354, 52.186322856782866 14.984244770767276 M16.08446881381631 54.15283174428823 C25.110895899262108 44.48549682909784, 33.599928045538924 34.10586830002994, 50.800536812371504 15.706094989949946 M20.354563210171357 54.63869465664233 C31.147970936791424 46.211095481625364, 39.01737355807077 36.54265548130396, 51.38776339531864 21.520520737600098 M22.505727038730576 53.46786303874309 C29.109623117141417 44.65960260935578, 36.070465054514706 36.665480494504834, 50.93097871203895 20.06707414353318 M28.75771565769537 55.34984352773607 C35.67467601818879 47.123354590929985, 39.5578445772926 39.457927678472814, 49.771571494829736 25.501430524768004 M26.517804858616728 54.615661202544274 C32.16552218597925 49.04436911667203, 36.78689424376297 42.836924338825106, 50.43919699378767 26.451890723103354 M32.47908419292572 52.28966408996933 C37.487802744158174 47.94451392285306, 40.78557776342559 41.94777230841029, 51.5570996413379 33.910728907516955 M31.88994313419017 53.86161786626183 C37.61345986480477 47.42639905410118, 44.07667141357063 41.97142192385871, 50.02333442684254 33.5300600019533 M39.316719214912624 55.90916485925642 C44.47833774580564 47.829880124106346, 47.19162033433529 43.69496299769489, 49.99690344586489 39.480217536092944 M37.70367004770425 54.41281454385695 C41.173385622371924 49.1661031859867, 45.61553634951591 45.74398176227056, 51.41180721792844 38.300198815875895 M43.87575509828568 52.689547618403786 C44.57679661554157 51.814083425636696, 46.24370970508188 50.62811707862838, 51.24547209837461 45.51778112023541 M43.171157232448984 54.14596581530733 C46.46514983853987 50.0456374699935, 49.48040623135801 46.96209822422931, 50.1552694501354 45.44574796531753 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M6.084923493666966 52.92980472236187 C4.24625972943025 50.713201080968844, 1.6424981695470442 50.07070838041289, 0.2667978667849964 47.22837273835499 M5.483120267270524 52.886263339736175 C4.4912748432758365 51.92136309589425, 3.2810633728851815 50.288417748716434, 0.07966969732291174 47.16450463406105 M10.66636007935138 51.48440084840883 C10.19167213116312 50.23930334586083, 7.85478378366115 48.2419600242983, 0.7992509764663482 43.142301956078654 M11.480605289194301 53.51492517601479 C7.660685669402218 49.60528239790882, 3.8837534505334457 44.85218505215957, 0.6991306324533727 42.23317610572899 M19.64172005457491 53.114933417441904 C11.902946828324826 49.58565612754044, 9.928151682715106 43.1488896182299, 1.590745201734645 38.7600095758999 M17.755606899873023 52.546842802579164 C13.650602265040362 48.444683803510266, 8.787098633382868 44.04874725671449, -0.6125678686147502 36.634790740240575 M24.817279797691 53.3185498323363 C13.869683655452006 42.70799196136906, 5.50300960961734 38.287277151380536, 1.7461571734524615 32.921168155902734 M24.835662388886405 52.66460942570835 C16.300708581517604 45.25790020539455, 8.647617585519818 39.4727118660836, -0.8416187004991524 32.39195663754802 M30.72074133599568 52.13963389133351 C22.110031816435086 46.41758451302299, 17.172290083779984 40.78939642995837, 0.5002397681945752 25.44205864624612 M31.621255056694334 52.8374457360922 C19.435360921337764 43.12095217874814, 7.45417224229595 33.20671833133955, 0.5520537105748247 26.55287128326975 M37.968478966074656 54.44203189192127 C28.46286407009304 45.04314601579639, 15.717468685362924 35.47798869141137, -0.5254662715622178 21.855685335379818 M36.86379948308564 52.45870852926533 C26.280534403629673 44.494324733348506, 15.880216461584311 34.51147863590002, 0.7674132027871021 20.440791651402392 M41.22890843040473 51.461873122549335 C32.53672202959936 41.628866614521975, 21.833914937049855 34.911351005121354, -0.8825553992322117 15.006363270791564 M42.363822006240255 52.875092279224376 C27.934219121014088 38.80022890915758, 11.922300852301472 25.4038339224632, 0.10860873092651069 15.490090162480566 M49.49731027557159 54.24659763070545 C36.61669074054748 45.223600229472936, 26.468222790599853 34.79169025462682, 1.054419377661385 10.98569049093112 M49.27703408094699 53.29440690650395 C34.71640572782282 40.80077534770827, 22.127533841242876 30.092028422098423, -0.633598991827033 10.650976915500905 M50.40832985226988 46.34245622291532 C29.696126498630647 31.59546795086228, 15.52987607321856 16.577919917123562, 0.36276985570428044 6.571575793286224 M49.458082278603605 46.94182777817663 C37.96903850233777 37.34090191235255, 26.753337288506202 28.52136567392836, 0.12423586431530387 4.297277455998024 M48.623830598867464 40.97895492859074 C35.55426642072109 28.442594828920328, 21.063939163264813 18.419805847277075, -0.0781507226267318 -0.8357890336933591 M47.8796515707811 42.7130901717011 C29.4100603809462 25.28334730720723, 10.852937691662312 7.8536064041554425, 0.1396708875334402 -0.368844992031441 M50.070040757841134 35.25941053618147 C38.74055437208701 25.753464274940253, 24.39625080810471 18.108816946614418, 5.480261911259003 2.12962981839467 M47.90086204565939 36.83379481107398 C34.647415304674816 23.745362914851697, 19.224755249841877 11.637905348901146, 6.4428350046211555 0.49541950286168746 M48.25005337577661 32.848450593175244 C36.66858209210332 23.09663666226629, 28.4560672820828 11.599547445084657, 10.119461867387784 -0.2900314308955041 M47.61101890802731 32.01565786682988 C34.32365788532436 20.517993185217072, 22.861541950144236 8.64474251299179, 12.831277296307874 -0.2474620292215315 M50.59400294515068 25.907985638021835 C39.37311391238666 19.778676024597296, 31.735967258077963 10.389710723567532, 16.94341176323641 -0.5754403681141138 M49.211039121064786 26.86123318796546 C40.50625844509728 19.485995268737682, 32.51583225430165 11.595298860238737, 18.59087566327352 0.15447832321554422 M46.73388876254904 20.536236968208968 C43.69729403976956 13.66455986734444, 35.818956830279134 9.766730984838084, 24.07043902039058 -1.08345382077343 M47.31952476456064 19.77169007001531 C39.30869470155292 12.904003956617135, 30.891165998209846 5.900332720333317, 24.518943122806917 0.6580739182075188 M46.853751570448495 14.703708872186413 C41.84041490830318 9.702861960949559, 37.696974969871704 6.440763473481644, 28.9834125063271 1.8888543745763187 M48.35418967669479 16.351535486976076 C42.16982464776505 11.649251830758669, 36.292026284392264 6.182916061777091, 31.305654450587994 0.829745792251039 M49.52291918240607 11.293465370025473 C44.726739369692034 5.650704536975467, 40.69532514720565 4.292301462083362, 35.888842174635435 1.7135418402896683 M48.67799610502206 9.511596966480823 C43.93854350427376 7.273336186757904, 40.6283842451434 3.9413289336099275, 37.41550740934087 0.3710863062580536 M49.23660473116209 5.478461160918216 C47.190280077170954 4.215831042163895, 44.59491851574555 1.888478071859442, 42.57063974881137 0.1235013448800828 M48.64708196893801 5.425205842440466 C47.345717882485744 3.679634318751748, 45.6293152745929 3.0260225571507915, 42.549094045474774 0.09085558403096461" stroke="#868e96" stroke-width="0.5" fill="none"></path><path d="M-0.043694136664271355 -1.1596709210425615 C14.01651876904071 0.0006980941444635902, 25.870312683656824 -1.046767170652747, 46.69141882844271 1.4782677572220564 M0.11736880149692297 -0.4905829420313239 C16.98178648408503 0.46814458299428213, 35.60546529795976 -0.9091070718690755, 48.46887083258481 0.8639597008004785 M49.360218705609455 -0.8828615266829729 C47.542143961163255 15.764066973980523, 47.418814738960954 35.49238394815476, 48.8475918788463 51.10758378915491 M47.28607077803464 -0.07747349049896002 C48.577271963572144 13.550238123442984, 48.54327016613448 27.96875269301237, 47.05860762204976 53.048523963429055 M49.32100296206774 51.13398197107019 C33.602579850330955 51.44846942313018, 17.26819184906781 54.148276649788045, -0.654878793284297 53.345769373700044 M48.25487403478475 52.02453309390696 C36.1167250847444 52.89018439073118, 25.84788365270943 53.27647300381216, 0.6260274788364768 53.97243091557177 M-0.30312603525817394 52.80315205268564 C1.7006166716199367 36.45278963902966, 1.1777322431188075 19.27109597232193, -0.2839497309178114 1.4625388663262129 M-0.7534736255183816 52.07462260220202 C-1.2842561688926073 42.28473588721828, -0.8870045331027361 30.852363553643237, -0.521160856820643 -0.9557195892557502" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(162 250.02816879749298) rotate(0 81 40)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">easy encryption book</text><text x="0" y="34" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this is some nice </text><text x="0" y="54" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description of the </text><text x="0" y="74" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">product</text></g><g transform="translate(378 280.028168797493) rotate(0 30.5 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:40</text></g><g transform="translate(461 280.028168797493) rotate(0 39 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:3.25</text></g><g transform="translate(553 280.028168797493) rotate(0 41 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:37.25</text></g><g transform="translate(688 280.028168797493) rotate(0 33 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">10 books</text></g><g transform="translate(819 280.028168797493) rotate(0 15 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">527</text></g><g><g transform="translate(164 273.12758535630996) rotate(0 78.04629830829799 0.8246654267236693)"><path d="M-0.7851487029343843 0.8869606543332338 C25.272420598194 1.0146954227238894, 130.59274033419788 0.16867206580936905, 156.87774531953036 0.04431905038654804 M1.0035094986855984 0.307011052519083 C26.93328139409423 0.7061743225157262, 130.45031014069914 1.4008016885817052, 156.39051614865662 1.60501180306077" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(893 273.528168797493) rotate(0 30.993243243243228 16.5)"><path d="M0.88822534494102 -0.4743743520230055 L63.4621399839887 -0.7300220709294081 L63.09110065302938 33.83043319173157 L1.8405980747193098 32.509664775803685" stroke="none" stroke-width="0" fill="#fff"></path><path d="M1.4629088658839464 0.07386508397758007 C16.40743173185258 -0.22342551878842254, 28.750760216107345 -2.3165527098551646, 63.662680619723496 -0.43299451656639576 M0.19871733989566565 0.2847141036763787 C14.688414648586786 0.14457108961934273, 30.066401408877027 -0.8399155200779992, 61.391919022753235 -0.36604186799377203 M61.163572782046494 1.132572976872325 C60.55650575049348 11.089008795749397, 61.97139216549821 25.58801472876221, 61.648405366904434 33.48627665452659 M62.28672516937494 0.8214617082849145 C62.45394762287043 12.310146058630199, 60.742817987298 24.021151919290425, 61.023972248985764 33.475241602398455 M60.61992436028212 31.679605988785625 C40.24993458044263 33.61691321262096, 18.04107952045176 31.581117106759294, 0.13524013943970203 33.17677089385688 M62.199212050392624 33.475695312954485 C40.865371723252835 33.45121274044221, 19.06892973443091 34.5791433518142, 0.24011756386607885 33.71492537949234 M-1.786383567377925 34.47881910018623 C0.12363679504953323 21.055174281913786, -1.8039030899945647 10.339504851214588, 0.9016388673335314 -0.9902349431067705 M0.45970703568309546 33.51831945870072 C-0.029425974963232876 22.27442395174876, -0.5292728804331273 11.655498880892992, 0.7468179306015372 -0.35167193319648504" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(901.088963963964 279.1892048335292) rotate(0 20.95945945945948 8.918918918918905)"><text x="20.959459459459453" y="12.837837837837832" font-family="Virgil, Segoe UI Emoji" font-size="14.270270270270267px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">modify</text></g><g transform="translate(969 275.028168797493) rotate(0 36 15)"><path d="M1.4756534975022078 -0.7300220709294081 L73.10461416654289 0.8304331917315722 L73.84059807471931 29.509664775803696 L-0.9716071803122759 29.54979914613069" stroke="none" stroke-width="0" fill="#fff"></path><path d="M1.541468681767583 0.23473760299384594 C25.940598041936756 -1.8849810183048248, 55.51972198523581 -0.45958594679832454, 70.92169082351029 0.9377416651695967 M-0.565501437522471 0.6801093528047204 C27.37907908242196 -0.5093714115396142, 55.04645222779364 -0.5710360226407647, 72.79299007263035 0.42379593942314386 M70.43016660399735 -1.4278584439307451 C71.72161596333608 6.71565593313426, 71.53848182475194 12.809028021991256, 73.06039065308869 28.11721524409951 M72.77812062110752 0.6605014810338616 C71.15706259040162 9.867434654384855, 71.12755736736581 18.766385382972665, 72.3873893758282 29.672560603357862 M71.26068467088044 30.50974806956948 C47.2042964424938 27.99861011967064, 26.445700648799537 29.70142904981972, 0.9078173656016588 31.252054957672964 M72.28845162596554 29.848436982370924 C43.30007343422621 31.318868219070147, 15.037112379632887 31.057426004819582, 0.1629934748634696 29.858025134541105 M0.07678508944809437 28.493052748963247 C-1.5827972604893148 17.021453485824175, 1.1695964024402201 6.622148457914591, 0.3690612930804491 -1.042321713641286 M-0.20140905771404505 29.78337508533151 C-0.8391680738888682 23.54055991582573, 0.6089058198966085 17.382645602338023, 0.44411267247051 -0.23718717601150274" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(984 280.528168797493) rotate(0 24 10)"><text x="24" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">delete</text></g><g transform="translate(74 346.528168797493) rotate(0 24 26.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.5973337649972985 6.081968102653615 C1.5359718604063068 4.872435095519135, 2.4863592802646033 3.0281917318366522, 4.936856931778139 -0.03969169819380702 M-0.47159345854538176 6.092300843124383 C1.236069913499482 4.598955045387707, 3.39743643981937 2.406526198119384, 5.224340700315779 0.2892993822542244 M0.16447477574456792 10.742078559517442 C3.3362110240870235 9.878415167698797, 4.0259593678583325 6.195186536500601, 11.81855105454935 -1.4234349508688091 M0.878682386977564 12.657680387466728 C4.0856549305507865 8.45975679510279, 8.089356084936881 3.5444536345282662, 10.041216445666683 0.05765967397836458 M1.725848271460249 16.582228538487726 C6.2677362761463185 13.976541069740646, 9.643865333310341 6.216427255702502, 14.89912695577689 -1.204752357031686 M-0.38549822946547074 17.775282353070253 C5.404311793510023 12.860527111283513, 8.600944508457527 7.051365404826658, 15.006647548175831 0.9217633322742751 M-1.3990985953994777 26.07205865876293 C8.227615849183449 16.74054924266041, 14.76903551127947 7.092475988494684, 22.3022562789711 -1.9899359909654137 M0.8670759715325449 24.584579034424483 C8.346466440779567 13.757267305991476, 16.2930592905491 4.790389470099214, 21.821306919025147 0.10351005794252188 M-0.18963932706514441 31.060538712654463 C9.182841405009802 21.204402804889583, 19.487247558758458 6.385129394751004, 26.199276600640626 -0.7826342420640646 M0.9531455487524525 30.42927930387502 C8.804385153182738 19.325550620426007, 17.886437228163654 9.536923121427112, 26.459543453205736 0.558605928347701 M1.2435004374850074 37.3302516004083 C10.616922925477427 26.00053020268583, 16.9171000103346 13.674491082282476, 32.80934943579773 0.8024480846955662 M0.06401733391913567 36.50135937221472 C6.30428095910022 28.135244921433674, 14.224573708667556 21.578226103993853, 31.853683948932982 -0.12626836344010783 M2.0102981842727417 41.22432709727042 C10.897715867044143 30.37245981541881, 22.57835789241698 15.645621552841575, 37.76060330849265 -1.0825086197722236 M0.8275215962574833 43.41564701273643 C9.060711064593294 33.076060125157824, 16.61114574040051 23.235991371405124, 37.842092525960254 0.4835077590402683 M-1.2142425626517124 48.59807059415512 C14.21919044820626 34.97020893878759, 25.516505989010195 21.0795527868462, 41.65110598373764 0.13138458955576482 M-0.31641504447915025 49.630200301901326 C9.575962339507285 37.63004601811983, 20.31827441306362 26.10066769392257, 42.761392857502926 0.7890681138589031 M1.3708799907144176 55.468786455862826 C12.67954930789828 42.259791027136444, 25.54606324757771 28.11796907256445, 49.11289223558295 0.1549018535938309 M0.47645261391513216 54.56488097755671 C11.306078004974557 41.913967102080306, 24.323547044678165 26.98479542529077, 47.54174593831438 -0.648013597523029 M6.380929792364412 55.7221163419712 C18.572505451561128 43.639568935991136, 25.6886166863701 31.511473641688074, 49.7486999630788 3.5093641882562707 M5.1742022401367365 53.77644275982712 C18.638956666956332 39.44046636873474, 32.19600483847546 25.59455318173099, 50.67483620064795 3.031687888855643 M12.997342654376983 55.346635009062865 C22.917656412094665 40.30519995478279, 34.134462347439325 28.439523231048, 51.10052921926595 7.459429904234604 M11.651903679467498 53.66187715334205 C23.962034336713668 38.30161953585866, 36.11744088059215 23.86446034916134, 50.213680543247534 8.386989819233314 M15.152934600802364 56.06483534805211 C27.447744642911495 40.700934233283675, 41.804051569540945 26.451569620221033, 50.930319298147154 14.436465866329257 M16.90807730166078 54.55814848456266 C30.08943344134779 38.659075697623116, 42.362522192292644 24.38657921992664, 50.084555418319 14.568222681457286 M20.500460896652832 53.26591880396212 C28.951379405135995 43.812258286332565, 36.76767798315153 37.87411216553079, 50.25215358973469 20.499595394563446 M22.064503029931977 53.14373432155902 C32.94091596975553 40.39084643060774, 44.58746601901777 26.107739893950733, 50.15045168657775 21.24702810609765 M25.476643815978605 54.73097201770723 C32.80154442913343 49.26266024450484, 39.43980478876742 40.081578203710635, 49.67658249307879 28.28732700485147 M26.461498109034437 54.632552115792336 C33.884447916903696 44.92606925811444, 41.8638112794639 38.068424227430796, 50.586647530277155 26.036737607115576 M30.86314487379196 53.282790184310606 C36.92459701666188 49.52438489397448, 41.693927208876126 41.20070212621329, 50.31553661920121 34.42208734743929 M33.25013933718356 53.89253256033265 C37.5590680433236 47.888412463121846, 42.21531851591225 41.32256127875911, 49.816871656142084 33.3656555203039 M36.85059259414312 53.51105369468657 C41.407690344181525 48.89430193990468, 46.47325251334432 43.278225175390446, 50.12664970412371 38.461849947572894 M37.4875408341327 53.63954623164115 C39.755189894834395 50.962755853633844, 43.59451044600186 47.79865600813839, 50.88887620839742 39.8974377439555 M42.981149506392484 52.98302134193455 C45.35505622716534 51.154333716062055, 46.43975159001803 48.95678395241798, 50.44055642881418 45.633495768601385 M43.60238634847157 53.60662534159584 C45.48544578578858 50.178390791822274, 48.407509822239405 47.69129542641759, 50.76639191675918 45.138334361952104 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M6.4867930052712754 53.172999373965574 C4.687493000569459 51.15559665877733, 2.415636980377931 49.783334467578925, -0.6975000715618662 46.80259079694112 M5.787133746026475 52.72089636824341 C3.9134357713433183 50.92768161779805, 2.0152380610466776 49.239383283595295, -0.37955267902367634 47.241176007905196 M10.881550823751404 51.75682378198732 C7.64554682707762 49.24905337388993, 6.466965390185469 47.81656063346862, -0.5344459134109716 41.859730687996986 M12.95520863220425 53.29289560924996 C8.888893006253976 49.78991151660677, 4.0899143882210085 46.737268252514184, -0.2979769925542572 42.051009362450486 M19.81009393734545 52.690628634097635 C13.79033875963847 49.94235718843201, 8.538233461017695 42.02794198746653, -2.1019782513102463 35.306207645949186 M19.473432878867392 53.72467483978963 C11.035507605951182 48.30017272582863, 6.068753389205531 41.31615392842343, -0.41690623440797836 37.417535535324575 M22.787688058513297 50.8957079853934 C17.170365113415258 46.477085146792014, 7.719651058597041 38.221270892918014, -1.161316569509422 30.256121642822137 M23.757497423972083 52.56358804647594 C16.443273684994242 46.66022127185895, 8.22626790646193 40.13998481968266, 0.218299792533303 31.717533807204774 M29.475911025650984 54.935723242510726 C21.715497421117384 44.79688129346557, 11.583330218754728 36.314358710699025, 0.5814459110969494 25.34378268675439 M31.208372341230696 52.57588759080755 C19.509559640146954 42.994984061092424, 6.909763467629915 32.62491083010991, 0.3740256932923387 26.96244904038988 M35.38371526034422 53.31319257793735 C23.26626109009777 40.40829245253141, 11.85093650837944 32.39083354699922, -0.04707194201433573 22.428366941195705 M35.30305814793206 51.913719330819056 C24.82748011646452 43.66445597080954, 15.767416434504735 33.97608432286654, -0.6814287564509502 21.39057727137653 M41.8845946300698 54.090417155123035 C26.87651275122763 40.75850154568181, 12.283319030197752 25.917552702678258, -1.5808864572575718 13.867861328633818 M42.16141711975611 52.588816803007106 C28.850040771965638 41.45752580711488, 14.694670688527502 29.089429620673485, 0.019171335592266914 16.25757998319933 M46.49140780641342 52.32850889655552 C29.585277572238525 36.69949161580578, 13.969411419461437 21.65824329938748, -1.5644725171559672 10.455035762518492 M47.85224664899165 53.38027899040631 C33.891916607789064 38.81784932162049, 18.773967958981057 26.017901078666394, -0.47657737989809323 10.241206337354924 M49.168878265069715 48.7748904837605 C29.63638301042605 31.204265145933746, 13.852706963502015 16.832874088985374, -2.277940200123814 4.8564709153374634 M48.73702924453645 46.990820322589244 C31.20052343891441 33.201400408646904, 15.059207802224236 18.60914479210353, 0.2653568643668023 4.349070941877922 M48.72144756940656 41.04773982114979 C35.038292547479436 27.829745800575736, 19.512656069159757 15.250306560470406, 1.6131418613156816 -0.45146954945950296 M48.889035815461504 42.69996513951459 C31.054802030101804 25.403155180092718, 13.277199416238737 9.656801283170044, 0.4468675940668722 0.323376083264961 M49.030422086900735 35.82654557217314 C37.913956634499954 27.79681307641659, 23.98771218167818 17.06109823023554, 8.124956060753174 0.1609200515298932 M48.361722387446726 37.023353227678975 C33.983898212278035 24.44516226922376, 17.198600064438757 10.051645194316492, 6.136169673495896 -0.5467792445347817 M47.36647298913797 29.53960715931828 C39.6297795996766 24.07659005429157, 28.128045597439755 13.646150824688647, 10.419034633214963 0.3869478128598365 M48.53248010278096 31.868989820117008 C37.34562139416997 22.052287303113296, 26.751332241749463 13.768068321758346, 11.762648120883298 -0.0463889489202467 M46.739812893595044 28.300006996034988 C40.30439757541443 16.255359131781482, 30.230660920631827 10.85287781470415, 17.491918321177845 0.38461802298009395 M48.48406186214412 26.94196782832534 C41.21184471268201 19.468624423190825, 34.82832720835004 15.351558744713268, 17.837766774409 0.8353039441052079 M50.17501922185767 19.344638254810988 C43.629873317327025 13.587502379448054, 36.42679110539105 9.148194460954876, 25.167012671227525 -0.37675427062160516 M48.31065568282503 20.652245610338568 C44.13862707030836 16.62928899875359, 38.44972376528458 11.647041074532265, 23.978174588861833 -0.7798281449238136 M49.06121084140263 14.97017709909605 C42.363896979165965 13.336762491404114, 38.529735259089065 7.576061938546491, 30.4447646758408 -1.1805710294954892 M49.49931134050361 16.519369202653337 C41.87998164120171 10.520337947664853, 36.545661157917294 5.741651817366948, 30.28713227742172 -0.25407511701066454 M49.11970006369174 11.503385910477476 C45.12766084705538 9.458389418559007, 42.10651137096612 4.887870810917311, 36.61853235386422 1.5881833928571503 M48.226556791431534 10.084490638172241 C44.203511216672666 7.1679009383996215, 41.91497919153646 3.765094082780152, 36.5308570075698 0.9115424150069664 M48.45098644979765 4.498401417990665 C45.65178742193897 2.9858106171249523, 44.270945302716015 1.2598488838732187, 42.880182142495755 -0.35561311606504664 M48.24981981292834 5.1836730994633236 C47.07379875938105 3.647436152885617, 45.07708411479066 1.9287439133218258, 42.779806971862556 0.03452524889073627" stroke="#868e96" stroke-width="0.5" fill="none"></path><path d="M-1.3934038262814283 -0.99609843082726 C11.053172347322109 0.5211266968399287, 18.57341986186803 -1.1607437040656805, 49.56624412722887 0.1702654641121626 M-0.6588609674945474 0.12223807070404291 C12.276034534536306 -0.15546147774904967, 22.607001470588155 -0.6778060967847706, 47.06564883794637 -0.06494349148124456 M49.769757749512806 -0.023673268035054207 C49.393754333527774 11.31498773163185, 46.738112718136996 24.036001560278248, 47.50980311818422 54.70631786994638 M48.278699918650105 -0.8762268414720893 C47.588316202079895 21.090339326765395, 48.26201418033803 41.490683304145946, 47.89015640225263 52.73969313595446 M47.220564665272846 52.87695738486948 C30.71856988109649 54.95667109139266, 12.634606789425014 53.578835877254626, -1.066304562613368 53.412458090111635 M47.30673684086652 52.49404546711596 C28.434020487032836 52.72484019178899, 9.784218828938897 52.84683418054136, -0.174504772759974 53.48011410329493 M0.3973103780299425 51.56925788335504 C0.3490825216751544 40.495780409965676, -1.7999863703269514 25.075529788993308, 1.2625426668673754 0.19707235507667065 M0.5298335393890738 52.59477984998377 C-0.8263069844152781 33.93562647895889, -0.47422422527335606 17.09141546785832, -0.5950400093570352 0.8237083265557885" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(169 333.028168797493) rotate(0 81 40)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">easy encryption book</text><text x="0" y="34" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this is some nice </text><text x="0" y="54" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description of the </text><text x="0" y="74" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">product</text></g><g transform="translate(385 363.028168797493) rotate(0 30.5 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:40</text></g><g transform="translate(468 363.028168797493) rotate(0 39 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:3.25</text></g><g transform="translate(560 363.028168797493) rotate(0 41 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:37.25</text></g><g transform="translate(695 363.028168797493) rotate(0 33 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">10 books</text></g><g transform="translate(826 363.028168797493) rotate(0 15 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">527</text></g><g><g transform="translate(171 356.12758535630996) rotate(0 78.83249439910054 0.3671389822661695)"><path d="M0.9397464763373138 0.10215927846729755 C26.914931667968627 0.26654451377689836, 129.49083726517856 0.20562743432819844, 155.33053089492023 0.0568286944180727 M-0.02602535292506225 -0.8898110456764698 C26.388110775500536 -0.43475581362843524, 131.8199079604447 1.4571586255729196, 157.69101415112615 1.624089010208845" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(900 356.528168797493) rotate(0 30.993243243243228 16.5)"><path d="M0.1342372577637434 -0.2333304863423109 L62.890580256796774 1.51038664765656 L61.860355516291555 32.531937720254064 L-1.8343056160956621 33.23360544629395" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-1.1157818417996168 0.09471449069678783 C13.757845711925798 -1.3704927244406142, 27.833806715968596 1.0550511202592454, 61.65789013481825 -1.6744913775473833 M-0.8872772911563516 0.23787859175354242 C14.977191048667994 0.92513506332727, 28.667540392825835 0.6740955285200648, 62.045265173866746 -0.6939814677461982 M63.65638666725844 -0.2483739573508501 C60.64630871810145 13.165282234083861, 60.153150318042705 24.524035395123065, 63.51669418192595 33.65566655807197 M62.713852143242356 0.6676172623410821 C62.50310856560372 12.282983074616642, 61.888716791664585 25.650364000722767, 62.83213312025308 33.20865854714066 M63.75095426417082 33.62409660033882 C44.18602732601576 31.741307820877736, 21.839669189740576 31.265320446095174, -1.3984771948307753 31.10732832364738 M61.57436663503885 33.56265077088028 C46.68403821605812 33.49626105277358, 31.235496563129633 33.621249578879464, 0.6057725986465812 32.2491092691198 M0.8796519059687853 34.67715301923454 C1.645071930354461 24.97301912875846, -1.0187598400656135 14.062981231324375, -1.666591940447688 -0.0595573503524065 M-0.775368825532496 33.17142272088677 C0.9425231282133609 21.158962855581194, 1.0287329320330172 8.865620154887438, 0.42323250975459814 -0.14352163579314947" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(908.088963963964 362.1892048335292) rotate(0 20.95945945945948 8.918918918918905)"><text x="20.959459459459453" y="12.837837837837832" font-family="Virgil, Segoe UI Emoji" font-size="14.270270270270267px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">modify</text></g><g transform="translate(976 358.028168797493) rotate(0 36 15)"><path d="M0.9040937703102827 1.51038664765656 L71.87386902980506 -0.4680622797459364 L70.16569438390434 30.23360544629396 L0.36849805526435375 29.76962566561998" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.0368195753544569 -1.3177219349890947 C22.457431812211873 1.0737246930599214, 44.097314989939335 -1.7085885941982268, 70.62671441026032 -1.8687023241072893 M0.6375025352463126 0.8848788747563958 C21.120570227317515 0.46256675388664004, 42.32359241005034 -0.8652540538087488, 72.82057042326778 -0.24509844090789557 M70.74070471711457 0.5573998373001814 C70.49803134417161 10.86774740647525, 73.78069272255524 23.77462016791106, 73.68042469210923 29.78031280450524 M72.55287046637386 -0.38971766736358404 C72.1566883894615 8.524041924625639, 73.06385633079336 16.646817362867303, 72.15672902669758 29.466847718693327 M73.76699495501816 28.613473681733023 C47.903241809830064 28.362161083072433, 24.431824556365605 28.332003099769363, -1.154489217326045 29.650990454480063 M71.71536116208881 30.198655189014982 C46.227807397954166 30.728752270154665, 22.49212951119989 29.654217824153612, -0.2464703181758523 30.6312713334337 M1.853391470387578 31.05966707877816 C-0.9423880859278143 19.94066859874875, -1.798539726343006 11.349225584417582, 1.107141138985753 -1.1900800187140703 M0.7461599251255393 29.885745734907697 C1.0649803766049446 17.848060933873064, 0.6558431574143471 6.914228404872123, 0.0671186288818717 -0.11666524317115545" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(991 363.528168797493) rotate(0 24 10)"><text x="24" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">delete</text></g><g transform="translate(75 440.528168797493) rotate(0 24 26.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.1698404893605162 6.350400208731286 C1.702973706568574 5.54262561814612, 2.516418097589212 3.1602902137444575, 4.287436251672453 0.5746589202282243 M-0.4307996514858553 6.450161413525335 C1.5176730084707402 4.765952125339304, 2.913933209530402 3.216172911877677, 5.243323713498659 0.6183287329820208 M-0.09810483519922619 10.961678691625178 C2.54269215267992 9.62426909221822, 5.387709142365614 4.801562871295244, 10.49028340573324 0.1688890467479589 M0.743311239881407 12.557038908868611 C3.0799091065208124 9.017341576967796, 6.455750594134539 4.523270149729341, 10.319219865602387 0.3607433903112771 M1.0160227817902108 16.59601667607265 C3.539641185267434 12.155373421914694, 9.075479401470139 4.96293746983395, 15.486856793522318 1.1022454525274208 M-0.7680473793810467 17.745266778302067 C5.339618995265642 12.018261832022931, 10.58692557636043 6.655354497848624, 14.979456820062776 0.398126586985307 M-0.6734512390383269 25.795597567870377 C5.975840673064731 17.035766697971603, 13.278279702074538 9.58892240262195, 20.809006173441077 1.3342199692666057 M0.9787740793264721 24.363940355084 C4.146632046833114 19.1112834190547, 8.48974864309382 13.942980668633147, 21.58385180616554 -0.09224278813456266 M-1.1690869042138203 32.1465421689192 C8.450687591998854 23.060117817927846, 15.338456116765304 16.77273723735012, 26.146954358231635 1.570402433538133 M0.027720751292015677 31.248881091129235 C9.042705913975993 20.336078229810546, 16.35634222551384 11.118901063438827, 25.43925506216696 0.21768209561824214 M-2.074407704277011 38.58634060602759 C8.495316797550768 29.735460559876064, 14.318365717909046 19.208558464555992, 32.410658761343754 -0.39509848307229234 M0.25497495652171764 36.216760021449375 C8.507801771286292 25.70544758318141, 18.053496518013965 16.17082452888555, 31.97732199956367 0.006073630532551277 M2.0676097452313655 43.710686131004024 C11.490286813720575 28.663214170401428, 27.033237661963927 12.504679146671542, 37.133887555265176 -1.2786326630878726 M0.7095705775217169 41.80202161855601 C9.914792954323934 30.208720861651063, 22.088806927624773 17.968699740798463, 37.58457347639029 -0.21853403271171246 M-1.506141383200962 50.35010386132531 C9.561191642418475 35.583642181223944, 21.937874505917065 23.095217821451214, 42.41019190344565 -2.032185184922909 M-0.19853402767338224 49.86476253312908 C14.68591995392222 32.44932087052595, 28.488149837179137 15.478735565527458, 42.00711802914344 -0.8111716268257254 M0.15707410286627876 51.84477413835437 C17.212635369703904 34.25057256532807, 30.64583052978904 17.931423572893863, 46.33193372837293 0.5068003188993977 M1.7062662064235674 52.89680495223463 C17.861490186513578 32.96616479900706, 35.29960431666599 13.460057467983603, 47.258429640857756 -0.609008126129563 M7.789097299863869 53.37587084823136 C22.141709175941404 35.79492211900599, 33.28227447361983 20.4423916604432, 52.30202182753474 2.909083340855844 M5.897236936790222 53.38428492021595 C18.479794264235263 40.73502293555822, 30.226366887842598 25.37428793741052, 51.399833857067826 3.3935609325566958 M10.027784918308019 51.8251572241014 C21.50997157109091 41.39620545839044, 32.61452731393694 29.95602079163296, 50.37747090240933 8.711416918200449 M11.740964121989666 54.698498140921274 C21.724411657297768 43.12518979489739, 31.576765985948768 31.561807034210805, 51.352816814798786 7.633953869690195 M15.977217630686464 53.03097088344129 C27.963372829949172 37.47975122548829, 42.91508181441701 23.12930660082683, 49.925078645436955 14.46491889229614 M16.526312370056512 54.383135015030525 C25.79847160129328 44.602954376462975, 32.602893827494405 34.92207718287659, 50.02345232953776 15.061024122336988 M22.55125910044898 55.34601424783672 C29.32361327103367 45.76973819595078, 38.5184009588399 35.51685496203615, 53.0286305950674 19.821119809728632 M21.27673396748741 52.743321059832525 C28.735839944259286 43.87829969321231, 38.00564004784327 36.157005572427884, 51.17835675028141 21.252358145285914 M25.912583750083286 53.98753118476451 C37.19826511765082 42.875033448474326, 45.514834005498216 34.090800382878854, 51.20822304878839 26.108591662974725 M27.65804664731695 53.22704355100721 C32.37568301792506 47.1439514011613, 38.330027696468555 41.27779186395777, 50.63276187256434 26.022154151716897 M33.40864899303916 55.312130365810326 C39.16436921539783 46.53296427417287, 43.37928231850297 42.543583677999464, 50.70017626605919 33.36248082884288 M32.38315582104179 53.73122488084339 C36.9010022001706 47.64179913078022, 41.929191275462856 42.47898553035287, 50.999178141392676 32.48200505164152 M39.01072300180432 53.165961908450996 C42.65965884937762 50.79275989539642, 46.980229437190346 43.719663179468824, 49.176357381339045 38.90113680914158 M38.119832346696526 54.983149200021 C41.22033461022827 49.93930256672907, 43.5108706066782 46.18010837117813, 50.875467564272554 38.64877719257141 M43.33881571517378 54.4885854241622 C45.585798983661526 51.765791178683585, 45.93448342840709 49.740059203421254, 50.55381341618473 45.66153313245096 M43.69388351669588 53.76643269701837 C45.15539430219755 52.21818099726689, 46.35777624357545 50.16820513097421, 50.86699073510232 45.74389460331233 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M6.462166856034119 53.24414954721243 C3.762963223853583 51.31795198097203, 2.2258689197884167 49.3495183347381, 0.0154261836046643 47.665853940540146 M5.95051308813544 52.80511931008906 C3.7262146266838028 51.12057099932235, 2.1769381145939732 49.301271832456784, 0.17705645758754673 47.320809368261294 M11.522815473977044 52.64275482382406 C7.646670043430852 48.789946879086884, 6.683595179241165 48.4490515003275, 0.8734488141767291 43.94612607385838 M12.698873911652283 52.55959984522094 C9.73698258938161 50.527609319388205, 6.342861000215913 48.38453442349163, -0.27130518806655196 43.12568378846967 M17.230737531461422 52.577560206207096 C10.944220766277489 46.93005480050927, 7.066078681402535 40.45860965142245, -2.0086648888608387 35.63552644130236 M19.210160371751194 53.29748383376992 C11.600314585924483 47.4448860092013, 4.663930718727988 41.41148632694569, 0.5343143543506095 37.786575501118065 M25.528013177859677 53.129543954513665 C14.923328530350032 47.222014174157025, 5.675858394391998 38.30907041515204, -1.2503701742612474 31.549566667461505 M23.30350894824703 52.085876322358544 C17.124969156589394 46.80977436928772, 9.313824865823921 39.95348179231884, -0.85595625321052 32.30394970712226 M29.021082312561756 51.89891371240156 C23.226135598254658 47.58227402796291, 18.346626340293227 40.43596960085783, -1.8626469325846244 26.53812533350222 M31.018259647995418 53.646072430696954 C18.478170655258985 41.636478003572186, 7.186665467836132 32.07402980871913, 0.16034228367598757 26.2505834495046 M36.21828700559087 50.92590737892102 C24.53391682063588 43.12038336795325, 16.072211463920063 35.423639026116405, -1.0858928979166738 21.502004579436758 M37.082694726566444 52.75100659103851 C26.577012666297836 44.77713419227828, 16.656273885697907 36.37809029723866, 0.5422446039713034 21.327358213980474 M44.08235452286131 54.1582020940843 C34.0495348460254 45.312409124535165, 23.781429811748623 37.459055513739024, -1.5562972502341896 16.81347355431536 M42.22928632292128 52.7031227890986 C29.20819386976939 41.33897766139219, 15.247962081598736 29.600936828171125, -0.37845141175449193 16.609942807803247 M48.680220684396275 52.51494200694165 C37.7582814613921 43.5983896604183, 25.013939707461688 30.302870482917776, 1.4193360263771195 9.877240648150291 M49.31326981763 52.42965233213059 C30.96945510412734 37.93160818031257, 12.605865045160812 21.649404227359337, 0.2967420004597683 11.141015591688301 M47.8705298643279 48.199238275581266 C36.55660325458962 36.76989034448792, 26.52180948866386 29.598043855622496, -1.4865884980595383 4.194481259991785 M48.46889383287161 47.826363848925794 C29.45101390101136 31.125829975063393, 9.445795515403653 14.9534387845219, -0.848424153815833 5.025542247889002 M50.066488274461555 43.50761353097745 C32.16500891688416 29.963887674822825, 17.52609853122242 18.521722937661416, -0.8972810576298694 -1.0761899701478936 M47.34102351599835 42.598257753661656 C31.20924854967757 25.12736818199891, 11.623103961001554 9.136673416894606, -0.3510089856201271 0.022998012120737765 M48.84801068071153 38.64555741314246 C32.488441246060205 22.568876820819895, 21.39527277479239 12.739290489542324, 4.710642889694281 -0.15016013230394432 M48.166037255971396 37.10637178205355 C33.62952625562626 23.316574600002795, 18.24150598639831 9.854984469496426, 7.042077857621916 0.5471767025514334 M47.64922040310105 30.040026571126532 C37.730590250603 22.37535693647744, 25.02210592463584 9.835225518236903, 11.845761477376712 -2.081557655359682 M47.928076683360835 30.711530991354834 C39.64533739766969 25.101937988626645, 32.65660257239887 17.76650171498231, 11.68142500742097 -0.7672988889991013 M48.48362595754439 27.900416894941934 C43.17988517250888 19.640960588894366, 36.354484944081015 16.457130030787233, 17.06650509633172 1.2628414756971598 M49.55297331212783 26.36656999228091 C40.82531067048062 20.77700689817889, 31.955904051637546 13.690867482790502, 17.548528040238207 0.992366785684526 M46.593944414064765 21.282591283638894 C43.41901489439077 16.149729206096936, 36.74526236287203 10.804125764614458, 24.34801269158251 1.6752282849168108 M48.02682189784247 21.711610717085122 C39.060704266436765 12.828846151309179, 29.846196338510445 5.431470528104388, 24.091395774143706 0.5200065963556693 M47.17727803857646 15.64985187722968 C42.407620980058866 12.434213902472216, 40.06601269341404 8.392406011957343, 31.807308404043383 -1.8322669626884576 M49.5899070794659 15.66628465148287 C44.51313466537075 13.254356938144298, 39.84373953506757 10.132527593054458, 30.418476910598642 -0.11728703377027472 M48.07574973415703 9.977028940517442 C45.293612409484815 7.548422862419908, 41.763115538132276 4.675024172467644, 37.05026145171484 0.58346574017121 M47.94100404900618 9.66806102398968 C44.69273911475758 7.3333973578311085, 41.79262081653643 5.739931400829322, 37.098342799666504 -0.48178728498244183 M48.45402372219135 5.510577134450416 C47.106650587337995 3.802730664830699, 44.994616428559816 1.8276455349802732, 43.27680209273065 -0.7139953276906227 M48.7360434696125 5.285804900561908 C46.82433296941549 3.873341814114009, 45.10911093806997 2.0306145001256994, 42.69159684883023 -0.3563236447814916" stroke="#868e96" stroke-width="0.5" fill="none"></path><path d="M-1.5752300340682268 -1.9289745073765516 C11.962769373878842 0.8033321752399207, 26.971805692836654 -0.4412414775043725, 47.17458417825402 0.35286849923431873 M0.3448597500100732 0.7249927362427115 C17.68115486744792 -0.9241310333088042, 35.589991221763206 -0.9902382766082884, 47.413682521320894 -0.13101331982761621 M47.412164000794306 0.5684823412448168 C49.65593145298773 15.866510961297909, 46.44707779097372 28.428396469168383, 46.42921873740853 53.81767344661059 M48.4462102064863 -0.9871227005496621 C48.63546383374372 21.452421961817898, 47.24244031303564 41.78864840976895, 48.54054662678392 53.72622148599478 M46.01184555701913 54.79688286967578 C37.6337199445814 53.9932345055789, 25.50141151659191 51.382919123098276, -1.633851857855916 53.33696943707766 M47.67972561810167 53.03531138505789 C29.67179490868003 52.23188361089679, 10.959366861917083 52.87602150004359, -0.17243969347327948 53.16355635132643 M1.7904039900749922 53.591004909947536 C0.8039112424571069 42.49609463205563, 0.8308554625231774 32.3687765935436, -0.9031163770705462 1.6693624276667833 M-0.5694316616281867 53.964261545799694 C-0.6366747032199058 32.57672839118169, -0.692061276296154 12.35803278386593, 0.7155499765649438 0.3129187664017081" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(170 427.028168797493) rotate(0 81 40)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">easy encryption book</text><text x="0" y="34" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this is some nice </text><text x="0" y="54" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description of the </text><text x="0" y="74" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">product</text></g><g transform="translate(386 457.028168797493) rotate(0 30.5 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:40</text></g><g transform="translate(469 457.028168797493) rotate(0 39 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:3.25</text></g><g transform="translate(561 457.028168797493) rotate(0 41 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:37.25</text></g><g transform="translate(696 457.028168797493) rotate(0 33 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">10 books</text></g><g transform="translate(827 457.028168797493) rotate(0 15 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">527</text></g><g><g transform="translate(172 450.12758535630996) rotate(0 78.1469732154161 0.46563471062108874)"><path d="M-0.495249493047595 0.21172109954059115 C25.637345581129193 0.30854668729007234, 130.52124966867268 0.04275649897754189, 156.78919592387973 0.07644159905612469 M1.4456057937629523 -0.7227292685396969 C27.489791993070394 -0.3707024990208447, 130.34128687577322 1.8187804491631687, 156.2554783202894 1.6539986897818744" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(901 450.528168797493) rotate(0 30.993243243243228 16.5)"><path d="M-0.11631893925368786 1.1684832852333784 L61.84314798689574 0.9072862546890974 L61.6012865839073 31.01550259999931 L-1.6739954333752394 31.566435543820262" stroke="none" stroke-width="0" fill="#fff"></path><path d="M1.315326539799571 0.12740266509354115 C17.843915861889066 0.580354107723672, 33.4297237356143 0.13937695156141006, 61.028166850424704 0.9528476614505053 M-0.1439613988623023 0.8393155178055167 C15.815387003175362 -0.21270744581241163, 30.716295196777967 0.6867576680658385, 62.35123967412054 -0.9988797167316079 M63.90142782530874 0.1333662886172533 C63.451425421593115 7.747159453202039, 59.753062177059576 14.909721614979208, 62.94214131436437 31.4141964931041 M61.42383693936407 0.3437108537182212 C61.43148670558013 8.37613851474598, 63.06330830816306 19.406932531669735, 62.65911497953474 33.44998793210834 M63.838183661318716 32.274326326325536 C46.31746486008193 32.463888993492176, 32.70686988391838 34.136174013843586, -1.0591598469763994 34.295026602223516 M61.015121363430616 32.23414496984333 C42.09227526880474 33.99658483065023, 23.66988789152505 33.30038687384977, 0.12392973992973566 33.21247614827007 M1.7937459032982588 34.90849811024964 C1.261294062519446 20.521831299643964, 2.0775372938159853 10.059543837793171, 0.4603100698441267 -0.3726185541599989 M0.9017729768529534 32.48336566891521 C-0.691927286060527 21.187113729771227, -0.6079667827207595 7.950446408241987, -0.0787979057058692 0.3462936719879508" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(909.088963963964 456.1892048335292) rotate(0 20.95945945945948 8.918918918918905)"><text x="20.959459459459453" y="12.837837837837832" font-family="Virgil, Segoe UI Emoji" font-size="14.270270270270267px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">modify</text></g><g transform="translate(977 452.028168797493) rotate(0 36 15)"><path d="M-0.1433384995907545 0.9072862546890974 L71.61480009742081 -1.9844974000006914 L70.32600456662476 28.566435543820273 L0.4101357478648424 31.662685183808218" stroke="none" stroke-width="0" fill="#fff"></path><path d="M1.854046730324626 0.6897195000201464 C24.32031206972897 0.20287738442420955, 44.78233355842531 0.9069827020168304, 70.90946587733924 -1.172634957358241 M0.5993599900975823 -0.29391799960285425 C20.940945267863572 0.001239941455423832, 41.67816138211638 -1.60318688955158, 71.07719364855438 -0.7853906312957406 M73.72411784343421 0.8924204129725695 C70.312995799724 11.426753704436127, 73.24289602870121 18.867216832935817, 71.67891862802207 31.081093253567825 M71.26661983225495 -0.9940772214904428 C72.72964657070115 11.845165517181162, 72.50383362891152 22.807316848076887, 71.36747080180794 29.183074071072053 M71.00609805993736 29.359451236203324 C49.25753279663623 30.770493734031927, 25.31466020606458 31.03378407970072, 0.2291159313172102 29.65512061305345 M71.41183930728585 30.895201995037507 C49.51789672542363 29.647588416524243, 26.568718280829486 29.66106052655728, 0.43615314457565546 29.548441811464738 M1.112279860302806 28.861136676743637 C1.6594612061046063 18.23411095049233, 0.19124818434938778 6.619294162839651, 1.3297721426934004 1.4310999531298876 M-0.4557957937940955 30.281237765215348 C-0.6423671835102143 19.19993817992509, -0.34932979876175535 10.468781073577706, -0.05815946962684393 0.5842416426166892" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(992 457.528168797493) rotate(0 24 10)"><text x="24" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">delete</text></g><g transform="translate(75 536.528168797493) rotate(0 24 26.5)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.38194143775386113 6.275280103881948 C1.5063799320197226 5.1953210904665195, 2.3676368849085825 3.6210411671330767, 4.703344506355471 0.0820207241771036 M-0.6591358374478171 6.034128843669884 C1.2173038097014206 4.55421402698535, 3.540895604894136 2.1493203993397887, 5.275839840578383 0.604298998400312 M0.045069553805481055 13.332610337853014 C2.6388692500880486 9.082872988558996, 7.064366489036905 4.144863250781382, 9.974498310637605 -1.2934363146230816 M-0.5633205532003536 12.133755059212028 C3.1373035155404616 8.411577494510084, 6.952095233000736 3.3558448634979032, 9.905348301631344 -0.03352105588766319 M1.4807951589533825 19.623434719537073 C4.728061404470024 11.671789824806444, 12.768745009379638 4.953667339525886, 15.653720983772953 -0.1964269590633938 M-0.10011032601355119 17.734769880679124 C4.615642730359266 11.974186277319909, 10.254538744862328 6.964282965067863, 14.773245206571598 0.3573317543533614 M-0.6308784687706019 24.82579116122341 C6.10033876528531 19.926834893522717, 8.049720957807203 11.975938216123312, 21.192376964071656 -0.9743455020547387 M1.1863088227994059 24.273542537069975 C8.020916110327407 14.016720352976181, 16.05090482359899 5.6878005584122455, 20.94001734750148 -0.6253969609573957 M1.4958457379182235 31.110110524807325 C7.317232041879049 20.524148961225336, 14.311197542651646 14.225570705893787, 26.783212517064424 -1.6120125489297568 M0.18284077947487987 31.04776150616651 C10.888317328291686 18.35477038787925, 20.748642031246334 6.583059023663736, 26.93296064590326 0.8799146305781544 M0.7326640150416175 38.7453038355348 C8.121044353200624 25.81954553068329, 18.593178670244118 16.779492742909, 31.315311032763518 -1.9253047796652432 M-0.5822935617622456 36.42811393626158 C7.5023899510422645 28.23436132189436, 14.901190337621749 17.953871979296963, 32.677565962492324 -0.5175918404699082 M1.359475723621344 41.373328993651796 C12.8610734690172 25.820437355746378, 24.647430143386366 12.183733706812529, 37.27422291021918 0.8492863216530999 M0.2619001308129185 42.301888538148035 C12.070431000933599 29.636338399320113, 23.708063238807313 16.1055932877668, 36.41161147952204 -0.267084860140411 M-0.5912937372923679 46.96081951507263 C11.30356981851984 34.45492995070336, 27.36058745276331 19.57343271590013, 44.30293778944366 -1.2955221749515289 M-0.6952374605462737 49.49335432578705 C13.017127697954216 33.31962993267986, 26.838815779135384 17.49345331232914, 43.277384932707776 0.24253032713671985 M0.22627930130325424 52.44890788959772 C12.440888041119798 41.43987553558448, 23.536821101379832 24.714361753253616, 46.265912319487214 1.58737199643517 M0.9462029288660752 53.882333974525935 C18.95575211275479 33.01154612087806, 36.87297412911519 13.11074563349753, 48.41696137930292 0.8765383603226589 M6.159880662401491 53.45956390180473 C16.699023515970666 42.28555309906619, 24.55790457369453 31.59218555933625, 50.18580627440006 3.0681179767274926 M5.116213030246371 54.579292141989214 C19.909358789745752 38.5962662350768, 33.587435682271874 21.412946031719983, 50.94018931406081 1.891825440878577 M10.310868033081054 52.530190433276275 C21.241071917453908 43.157532039681925, 29.28361291965856 30.234309808729463, 51.21204158222295 10.272702201616958 M12.058026751376449 53.62868127030639 C22.78897121838709 40.838492914357936, 35.33980993038185 27.286106278686834, 50.92449969822533 8.338419752542869 M14.719479312392178 52.74460849992665 C26.805237727621922 42.181039794849795, 38.890393837566364 28.118644240190232, 50.90147941195865 14.306319660903995 M16.54457852450967 54.10867662343862 C25.544464516434164 43.46663516405188, 34.604121660654286 33.79987761949163, 50.726833046502364 13.951612720662837 M23.333391640347138 53.66584767177905 C29.108943832501094 44.85790299827487, 35.25170985787958 37.86604305838566, 52.250625028619424 20.714421799611817 M21.878312335361436 53.53271670695598 C30.781145065163827 43.23648888799502, 39.10017822842045 34.27540209160138, 52.04709428210731 20.08175691330857 M27.071749165996152 56.06132271474779 C37.04022694167388 46.04090227360343, 42.767546095672564 36.32285890792183, 50.03995070625552 28.434345258654723 M26.986459491185087 55.043429909819665 C36.10292619489573 45.23342747941692, 43.70172866448769 35.44124810887369, 51.30372564979353 26.114644781941244 M33.3861352793515 52.55265694885605 C37.94161763408477 45.948176973843395, 46.50011275643797 37.91091106950178, 49.73880893088868 35.19984481327867 M33.01326085269603 53.53120786259972 C37.405718102474154 47.91282934884443, 42.339720706035244 43.321160907923556, 50.5698699187859 33.34479159985369 M39.324600379463405 52.34085889001814 C41.271325873315455 48.24172471518462, 45.918028362185794 45.197244389386064, 49.84975531354067 40.49272211372966 M38.41524460214761 54.828132079257344 C40.255812275569404 50.13560585956791, 43.01855578868898 47.03212026231671, 50.9489432958093 39.395814202838785 M44.35234315675736 52.67171810485398 C44.57294467405641 52.315357371401824, 48.01599055143175 48.30536543753087, 50.43796591856504 45.98697553246686 M43.505791059658456 53.75543904376192 C45.760058164162025 50.832154325681984, 47.974058206306694 48.49877633997056, 50.8215011777355 45.517470949631495 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M0.17273148614539124 53.150153190109506 C0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506, 0.17273148614539124 53.150153190109506 M6.4278220532372785 52.98617374091656 C4.134097565590607 51.59667858440878, 3.706633377441288 49.90310879481849, 0.23205970760530903 47.18269097565968 M5.814283292172869 52.85663840077133 C3.8422669339224833 50.47865564646851, 1.4085745784844697 48.41713416118338, 0.12386983160025544 47.14918633572121 M12.657821260992007 53.307099823018206 C7.871032978730324 48.328033201937345, 2.9791285357433743 45.91365373006629, 1.691688720606974 43.60464936818803 M13.001036807748989 52.6647573293351 C9.097848484192458 49.97827220915336, 6.600836581527559 48.20795463692666, 0.7675113697580601 42.2397465402993 M18.520939109750692 51.89794580757862 C13.961491950877306 49.24521035642515, 8.366413220939842 44.51882654388997, -2.0835025399645737 35.14727001291162 M18.537371884003882 53.124391783292054 C12.888638527583982 46.98388460621917, 6.7710137406740625 42.35205244919312, -0.36852261104639084 36.943418822515966 M24.09420393099178 53.72338839434802 C16.410079374789213 45.98650517139413, 7.815460442950496 37.81770321526451, 0.5399270098782427 30.984942264789453 M23.682246708954764 52.13632344548374 C14.905577685230728 44.435044093311184, 7.384366991720881 37.90172474351477, -0.8804103569932931 31.87990600888591 M31.65318304742146 54.03348612522023 C22.059755448768946 45.070251889841884, 11.662920442144472 38.68369249559812, -1.7301603172546436 25.79953392700784 M31.091252462700194 53.08223104493009 C20.3348894945454 43.38846629643251, 8.173425600363451 34.24259333427079, -0.835981109981816 26.72404819367014 M35.06425075562544 52.442085297682986 C22.018455696666603 40.2184204042006, 12.635331793705383 31.13615174306747, 1.9777762211135634 19.874049288016536 M36.890803725029 51.98047137716572 C24.150493928378324 43.15660816218404, 13.081457407397416 33.333135841143836, 0.3387289681679615 21.424102350865283 M42.24582279808051 54.935315200186054 C34.41269599915897 44.82061996983549, 26.15661319937994 37.73899406678746, 1.3621421715685695 16.802803395303282 M42.256426834121115 52.802738916187266 C27.913300936962926 39.90753356686743, 13.050282008919265 25.83249289576671, 0.32286883224487006 16.039440901005957 M47.443179721372374 51.31061588021717 C29.902099853883303 34.31607385754868, 12.345873658497887 20.415584464815332, -0.7016154734128337 9.427394287317838 M47.71883324476535 53.38184358252934 C36.19643667660951 41.33698934268942, 24.970182009186992 31.22224087073898, -0.7178008045711737 10.145273943088796 M47.54096687619566 47.864238144302035 C35.625599219839714 34.36020242819971, 22.948663410401196 25.014552910368494, 0.11381508275506169 5.275730761547943 M48.507669528359465 47.56796074326452 C36.878444573647705 37.10779942922083, 24.306156715110387 27.371694966615607, 0.17516588750866324 4.740427022648414 M48.451047700918245 40.57568802185246 C36.95518751108202 34.27157538592088, 28.1239087585059 24.464777561943926, -0.06221291745095055 0.4980046064433596 M48.97062065647446 42.88182567585149 C31.237016665633224 26.863837763885, 12.352801741113929 10.031994809668138, 0.13432649666429958 -0.3479366363185504 M49.349650438016916 37.29828230131819 C39.89488145395924 28.183384275284684, 31.067179024888702 23.494767402703182, 5.768904794559784 -0.7897503695936114 M47.84180671729025 36.17403910428687 C36.96216625463805 26.607574432495827, 26.518872618926533 16.619581491098238, 5.564809949689515 -0.6520071023629219 M48.98986813407739 32.44664853018696 C34.949409097601176 21.112108747989726, 23.113895312079798 11.434452364974359, 11.938622328813565 0.40460205299121466 M48.58553291559567 30.781317199105274 C38.193513051239776 22.051523639611265, 26.740860124809544 11.606832072093628, 11.639165327313734 -0.6843173453836409 M48.05183528157646 24.932697246908553 C39.39707304335474 15.977283968564358, 28.294884930414607 8.343572152790315, 18.80090230278719 -1.649605712352395 M48.777716214570646 25.93121380930335 C37.88762924692407 17.944790606664082, 29.686353537803438 9.732549403173245, 19.018270530216878 0.9321005461159348 M49.417551177099824 19.604649748970687 C41.45592447285811 13.465377337380165, 33.86292821589118 7.371644641611404, 25.72407213806636 1.4407695068632886 M48.411958694004 20.6498982304157 C40.9253399671403 13.516047514843592, 35.021894837015964 8.244476648782753, 23.874438575687776 -0.22092006982959056 M48.521056563124276 17.18301032482313 C44.0896110727311 9.480327444390706, 36.812514797316574 5.260536739972222, 31.44100070212788 0.1286538740880374 M49.28097419207565 15.166877436438968 C42.3260541736859 9.62912628012845, 34.18688542233309 2.9334616865525476, 30.272844239406353 0.048041843276429574 M49.26698923550666 11.298998588409262 C44.550352810937525 5.9816319475774655, 40.12921910145283 3.9017124333914293, 37.02835900507977 -0.6695357811702927 M47.51154274351083 10.641383457874866 C45.514399523859026 8.146103140030005, 44.13332876099406 6.652616135394284, 36.39361581540776 0.14195556132397158 M48.3998157907324 4.839517679472904 C45.86902239796005 3.422494677320297, 43.890769010843904 0.7037185064945268, 42.60621408963168 0.5325070821847704 M48.255588743840356 5.255737153475622 C46.42152957901671 3.6595866440009255, 44.644141795861884 1.8327079626605827, 42.44563792975212 -0.2393064643088792" stroke="#868e96" stroke-width="0.5" fill="none"></path><path d="M1.43196046538651 -1.8363753277808428 C14.670963654294614 -0.6432163956016301, 29.77386035211385 0.22167185522615918, 46.10579413361849 0.7886238973587751 M0.9466191371902823 0.2523713121190667 C13.809565872512763 -0.3840201814100146, 27.084117489121866 -0.47721421908587214, 47.32680769171567 0.3340868065133691 M46.038265885785236 1.1325727384537458 C46.542789903851244 18.667985049542047, 48.08913841602394 38.08947333414109, 48.28467226214708 54.41476610116663 M47.0902966996655 -0.2880104472860694 C47.928156324839236 16.243386545684196, 48.28783128521407 32.4757427442819, 47.16886381711812 53.225316108204446 M47.20925522036852 54.95874240808191 C30.932256669178614 52.16049853689971, 16.609605728462338 55.22578427918258, 0.06271916814148426 52.51696535758676 M47.21766929235311 53.11441117618235 C35.69842293020339 52.546695163436254, 21.45082783605904 53.86547889370473, 0.5471967598423362 52.73479434940966 M-1.9468561988323927 52.30442616157236 C0.026336085377261065 35.37624888280408, 0.9700043912511319 17.921427850984045, 0.22197830863296986 -0.8850639779120684 M0.9264847179874778 53.34382197353991 C1.039212192008272 34.37576257484035, 1.0567030856106432 15.925373807549484, -0.8554847398772836 0.8961213836446404" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(170 523.028168797493) rotate(0 81 40)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">easy encryption book</text><text x="0" y="34" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this is some nice </text><text x="0" y="54" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">description of the </text><text x="0" y="74" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">product</text></g><g transform="translate(386 553.028168797493) rotate(0 30.5 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:40</text></g><g transform="translate(469 553.028168797493) rotate(0 39 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:3.25</text></g><g transform="translate(561 553.028168797493) rotate(0 41 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:37.25</text></g><g transform="translate(696 553.028168797493) rotate(0 33 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">10 books</text></g><g transform="translate(827 553.028168797493) rotate(0 15 10)"><text x="0" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">527</text></g><g><g transform="translate(172 546.12758535631) rotate(0 77.33098306171598 0.6780530919134549)"><path d="M-1.1365235198289156 0.4731743384152651 C24.721387578174472 0.4997860599309206, 129.62408036105336 -0.016891593858599688, 155.79848964326084 0.09356984384357925 M0.4676629029214383 -0.32401307925581935 C26.092956038564445 -0.07906245574355131, 128.97310368165375 1.7278171075880526, 154.74465124234558 1.6801192630827426" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(901 546.528168797493) rotate(0 30.993243243243228 16.5)"><path d="M-0.7342798430472612 -0.42230373434722424 L60.96292581162542 -0.2973362188786268 L61.2698649962911 32.96404677815735 L0.5020284336060286 34.414518596604466" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.33585059456527233 0.15594973973929882 C18.10438816532921 1.6488181515978146, 37.01374504350982 0.1867944761560726, 61.14639186239928 -0.207599313929677 M0.704237206839025 0.23421132657676935 C15.029488334310168 -1.1879557302799326, 31.39537266338043 -0.9977597227897747, 61.504250413134095 -0.017496793530881405 M62.160955899722275 1.8130463045090437 C63.591622365788886 6.141115653049201, 61.45743651516862 14.8164426157251, 61.748571687705216 32.61474802903831 M62.2203456222558 0.6143427202478051 C62.64966062793634 8.68310862882063, 62.69158275017641 17.384352297708396, 61.34174797530412 32.827326715923846 M61.4212625560829 33.07565548829734 C37.85280898060725 31.285630483033913, 14.015802624980239 34.33406289279725, -0.8903259616345167 32.0755059402436 M62.244526839210984 32.865866363979876 C37.210528135119716 31.86218023581921, 13.616271519346313 32.813230964378704, -0.17806862387806177 33.44945678208023 M1.0767222065478563 31.457632271572948 C0.3307546768244356 25.84948771269992, 0.6510175261553377 16.254006041400135, 0.25815284438431263 1.2959512751549482 M0.6753099104389548 32.88468679878861 C-0.0012257109861820714 21.12382008517161, -0.5214583586435765 9.648080057650805, 0.026263578794896603 -0.23078799154609442" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(909.088963963964 552.1892048335292) rotate(0 20.95945945945948 8.918918918918905)"><text x="20.959459459459453" y="12.837837837837832" font-family="Virgil, Segoe UI Emoji" font-size="14.270270270270267px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">modify</text></g><g transform="translate(977 548.028168797493) rotate(0 36 15)"><path d="M-1.0235606748610735 -0.2973362188786268 L71.2833785098046 -0.0359532218426466 L72.50202843360603 31.414518596604477 L0.22717669419944286 28.046205701306473" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.15011304430663586 1.8932382743805647 C24.943788654729726 0.3750726926326752, 48.03799743689597 -0.2637412202358246, 70.97351730056107 -1.3463846165686846 M-0.3850548127666116 -0.980867057107389 C24.57171137612313 -0.9593032047525049, 47.52861394044012 -0.18612894866615537, 71.4122794708237 0.1423361310735345 M73.55816495604813 -1.8194066006690264 C71.45014951741322 10.01754726003856, 71.78825561320409 21.85904633253814, 71.50210970826447 28.337727634236227 M72.93744908180088 -0.39537238981574774 C73.04952894477174 8.903338585048918, 71.42541922954842 19.1792233651504, 72.88790435995907 30.031359584070753 M71.96607560105622 28.435338584706198 C52.367747065052384 31.511006970256577, 31.38752346374094 29.102741916030656, 1.74724149890244 31.094393519684683 M71.2352556725964 29.026571900583814 C51.961693765036756 29.881046411208818, 32.44089274462312 30.352880564145753, -0.271672205068171 30.110989154316496 M0.3673810977488756 31.852969435974966 C0.5261356160975992 23.588565454818315, 0.09664451340213415 15.951143208891155, 0.8640030045062304 -1.7109694797545671 M-0.2835356751456857 29.4494250426069 C-1.0063612959347665 17.61092582158745, -0.1763293943367899 6.392483706586063, -0.3671399215236306 -0.21115186717361212" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(992 553.528168797493) rotate(0 24 10)"><text x="24" y="14" font-family="Virgil, Segoe UI Emoji" font-size="16px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">delete</text></g></svg> \ No newline at end of file
diff --git a/backoffice-product-update.svg b/backoffice-product-update.svg
new file mode 100644
index 00000000..5585d5e3
--- /dev/null
+++ b/backoffice-product-update.svg
@@ -0,0 +1,16 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 827 1012" width="827" height="1012">
+ <!-- svg-source:excalidraw -->
+ <!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1dWXfiSNJ971/hU/Pa1uS+9Fx1MDAxYlx1MDAxOLxcdTAwMWIv2GD8nTk+XHUwMDAyZFx1MDAxMGazXHUwMDEwm2fmv3+R2GVcdTAwMDSSQLbBpeoxXaerXHUwMDAwXHQteW9E3MjI0L//2Nn54U/7zo+/dn44k5rdduuePf7xp/l85HhcdTAwMDO314WvyOz9oDf0arMtm77fXHUwMDFm/PXPf873sGq9zsteTtvpOF1/XHUwMDAw2/1cdTAwMWa839n59+z/geN4Ts23u422M9th9lXgUEguf1rodWeHZYxxhbngb1x1MDAxYriDXHUwMDFjXHUwMDFjznfq8O2D3Vx1MDAxZTjzb8xHPy5Ho8d86eh88lBW+7XHbulcdTAwMDZljuZHfXDb7aI/bb9cXJNda1x1MDAwZb3AOVxyfK/36JTdut+E7/HS52/7XHJ6cFx1MDAwN+Z7eb1ho9l1XHUwMDA2g4V9en275vpT81x1MDAxOUJvn77chL925p9MzGUq/fbe7EEoWzr2Xq/d88yx/4Fmr/nRq3btsVx1MDAwMafQrb9t43t2d9C3PVx1MDAxOJP5duPXq1KBu9103EbTh1x1MDAwZrXGllx1MDAwZb7mh3dmt1pcIqG5lPNdzSH7R/XZmP9r+UY1ba//ekN+XGbMm8DpmjPNv1x1MDAwMObn7rPv/vvnXHUwMDA3oKOxiIOOUoQwpqVOXGadTmFUZGf3rcLwKXtfbzj2ozyZplx1MDAxZDqSKFx1MDAwYq5cdTAwMTJcdTAwMTGOlNZcXJBcdTAwMDUgMY4syTUjkmjClaaxsGKaIy4/XHUwMDBlK0q4JVx1MDAwNFWATawxkThcbmXckkgzLVx1MDAwNKFSaUGXUYYxXFwwx1x1MDAxY/9cdTAwMDKc+c7Ej4ZcdTAwMTiPg1x1MDAxOFacXG6kJZOJMXZabUzFSD6fN9GwOzhn3fv9gkw7xlx1MDAwNEOWkFx1MDAxMsCEMYWBXoBcdTAwMThlwlwiXHUwMDE02EZcdTAwMTn8hzTnsVx1MDAxOPus6Vx1MDAxMsxcdTAwMDJSc6aVXHUwMDEyQnJKw1x1MDAxMCPS0lxmSc6IwIb8ioQwRjTwQaAt2bL5UPa6ftF9NneTXHUwMDEwi3I4JGVIY62o5lx1MDAwYlvt21x1MDAxZLc9XVx1MDAxOJ1cdTAwMTlcdTAwMTjhgEdcdTAwMWS74Vx1MDAwNG/YwGm73Vx1MDAxOfZ07IWanTNtt2HQ+6PtPCzC2nfBgb997ff6Pz5GXHUwMDBiweJooVx1MDAxMONgXHUwMDAwXHUwMDEwTsyKxrHT2Vx1MDAxYrVcdTAwMDaF28b+bq1cXFx1MDAxOdojUU07KyAwsVx1MDAxOCCeY1x1MDAwNMaMKbZAXHUwMDBixqVFJEOANoTA3G2NXHUwMDE0mDBcdTAwMGJxXHUwMDAxJ6BcdDYnoz/CXG6CMFx1MDAxM5Lq34BcdTAwMTM5Z1Dz3L5vcJhGZsAgxFKDULherGnyoMT3XG5cdTAwMDetep+cn9eeXHUwMDFmc/zxfJo9pmmnhlx1MDAxMNzCTFxuRYUmMLhcdTAwMGLM4FJZXHUwMDEyXHUwMDAyN0qNM0FIbY1cdTAwMWFcZlx1MDAxYoxROFx1MDAxNJJcYsuAQXqPv8BAblx1MDAwNJ5cdTAwMWX/Om4kpcZN1/VTylx0XHUwMDEyXHUwMDFiRSkwlVx1MDAxMDaK5O7CXHUwMDExqtnt16vZSrZab05cdTAwMDQ+afuXqedcdTAwMDSHOFx0XHTBXGIlmlwiqlx1MDAxNkghKLMgeFwiVFAhXHUwMDAwsNsjXHUwMDA1KFx1MDAwMjg+5VJcdTAwMThNJ+iH3Fx1MDAwNVx1MDAwNlx1MDAwMiPBXHUwMDExo7+OXHUwMDE0iVx1MDAxZEbfc2vpXGai4Fx1MDAxZdJYWlBcdMaTIZqYXHUwMDE2o1xc+9RWx0/P6Mj1L+XpnjhcdTAwMWG5qadcdTAwMDUj4FxyQLxcIlx1MDAwMldcZmZ2kVx1MDAxNkpDyC/MaGtQlSpev35aW1DQplxmkCWxIFx1MDAxOFx1MDAxMPExWjCKXHRcdTAwMDVcdTAwMWH/XHUwMDA2tPDtiTNIKS0wjqNcdTAwMDXTcEKY8OTeXHUwMDAyo94+Idf3Nuk9+n1a8OjIq6WeXHUwMDE2JnFDXHUwMDA1JlgwyVx1MDAwNF3U3Fx1MDAxMENaklx1MDAwM3VcdTAwMDToYFwit6guOLMkeCOpXHUwMDAwZCbZIT5CXHUwMDBiQYC+SuHfgVx1MDAxNVx1MDAwNbvza3zFXHUwMDBiWFtO9po9PYzcQb7YuM7c1U66wetfkVx1MDAxNJ0lXHUwMDAz2aJcYoVIw1wiQnJNXHUwMDE1XGZcdTAwMWRcdCRcdTAwMDffssFcdTAwMTFcdTAwMDPK1VxucG5cbmBcdTAwMGK0W6LP9kn3Ufy9qWXQ9cJcYv9cYuul0PKHb/lCylx1MDAxNTI6Pcl0Rlx1MDAxOOrdYbu90p6uTJVjXHUwMDFjn7GRXHUwMDFjPJ6UMnms0bg+6OXH+YNcdTAwMTbLkIc6saf8pOmk3ahKRUCWglx1MDAwNpdEIa1cdTAwMDOj91x1MDAxMmtcYlx1MDAwYrRcdTAwMWU4XHUwMDE3jEDwkXij+tlcXDlXXHUwMDE2Q1x1MDAwMixcdTAwMTNmJllcdTAwMTCVKqfIQlx1MDAxNOxccuhcdTAwMDTMqEahXHRcdTAwMTksQT7DkPJPY3qzMzKYXHUwMDA2XHUwMDA0/Vx1MDAxMsw4gVx1MDAxMI4pnDz7cXKcbz+XnLO7PvOOay1HdJ5RO/UwYyCxMOMg9lx1MDAxMMWKLNpk8NdcdTAwMTZVXHUwMDEwaYJTpETJLU7JYGRx8LpcdTAwMTAlUM44UWGYcWpcdTAwMTFcdIZcZixcdTAwMTNcdTAwMWNcZlx1MDAwNyz/T5gxOUu1s7TN/EFcYlx1MDAxOI8zw1x1MDAxYrBoyXFWPd/P9W4qXHJeOclOjk66/rA1Tn1GQWthUVx1MDAwMUCiYL+FYEtcdTAwMTlcdTAwMDVFLSPSwXbMNI3YXHUwMDFhzji3ZmdAXHUwMDA1IVhcboYjYlxuSi0kXHUwMDExJVKboVx1MDAxMTKQLf+JNM5cdTAwMDGiXFyI6Dzb62fw6V6uw/u53emeat5cdTAwMWZMh2Xu3fH2j9fvt1x1MDAwMshcdTAwMTeM5JqZ+3GmMtmrl3lHlFx1MDAxYeXRPnbDodmiqJm8jCTEjmaYJFx1MDAxOHxK2JLf0chSXGZEjYTggCChQjeYmKlcdTAwMDRFXHJcdTAwMTW1MrNXPHyDsVx1MDAwMufF+YzLhvBcdTAwMDHn9kVBXFzN61xyXHUwMDA2u03brzV/VSi3XHUwMDA1kPxEJ4KRwzhcdTAwMThcdTAwMTXMbVx1MDAxMUWxclx1MDAxNUtcdTAwMDTyiVD+8ZAvJFHseuBWXHUwMDA1RFx1MDAwZob4RTDNhFx1MDAxNFx1MDAxMsBcdTAwMDKBQ7ToiVx1MDAxMS41OKrjrZAuXHUwMDFkt15vx4gjtoy+XHUwMDE1RGK9k8v9XHUwMDExnqJOSz2e6r1cdTAwMGU7IddJiKQwtijjcD9cdTAwMTVcdTAwMDSsXHUwMDA0LeWKNLVMLpkjzUClcVx1MDAxOeLRXG6OfPPo05KIXHTwyUGlXHUwMDFkJEisryaIK0VFsjxnQoJglIhcdTAwMWaBoU1cdTAwMTU/1O75aaWSPVx1MDAxZPt0cNk9rvdvcm4lXHQ/JOVcdTAwMTaXXHUwMDA0a6akqdZcdTAwMTJL/Fx1MDAwMD+DmSnUIIIzxUP8MHNcdTAwMTBcdTAwMTBcboCZU0iAq1xuXHUwMDE4kG9+fJJcdTAwMWazXHRIJGko329cdTAwMDBcdTAwMTc/YaxcdTAwMTiVzEzUbI5cdTAwMWQ3xdw23EeCvNcnmJGwXHUwMDFhcEWpXHUwMDE2Rlx1MDAwNC5cdCWvJK0+n7gnXHUwMDA3Y2WPR9eTSt3GXv1cIvXTKZJiXHUwMDBiQ1x1MDAxNE5cdTAwMTjYY87xUj5QK4tJuNuMUVB2W9WeaqFcdTAwMWMwolSLXG5cdTAwMGKBOGGCwFx1MDAxZspJOMVBgTFgiOR28sZcdTAwMWbHXHUwMDE5RpzEXHUwMDEyllxuLrVWyUtcdTAwMDJLz+hMXGZ6+4WcluVK48xj3jj1XHUwMDE1y5JcdTAwMTJcdTAwMGJcYosoXHUwMDA1d8MxWpyf4EJbXHUwMDA0QSRcdTAwMDZuRi34iE3jXGZU59qyU/CKQaDRwMm+1XiYMlx1MDAxNYTVduqfPoO0+KQtXFwtaOlcdTAwMDVHvlx1MDAwZWr3g0ZlMHH9Sd29uNv3e1x1MDAxZO8+h9JcdTAwMGa1VSZNYG2BV1x1MDAwNVx1MDAwYjOrPcXxhVx1MDAxM5+HXHUwMDFhXlx1MDAwZrW1NlxyRLymWujUIVxyx8+5gvjliII5Tp5Qa/HM8Pym2PdcdTAwMWXVXYG79/X6/jAuoEtcdTAwMGbSXHUwMDE4tlxiYVxum9hcdTAwMTkzsphQU4hYgDaqIMImjOv4OudPO08kXHUwMDE2kFx1MDAxNlGLQI0jN9OySklcdTAwMDFcbkqE82lcdTAwMTJUskZMR3vP18/g01Iu08S2yuPSwTNquM/1/JQ0XHUwMDEypUpml/ThfJpcdTAwMThcdTAwMTefxLRf7lx1MDAxNidcdTAwMTfi4aJ6xc/twM1YIXNcZlx1MDAxMUHIMCNVmFx1MDAxMIsyXHUwMDA3XHUwMDAyPUuaalx1MDAxMrBcdTAwMDZcYoI+XHUwMDFhJjJSXHUwMDE2eCisTTwoaGTF7Gy2XHUwMDE3Q8RINFx1MDAwNKaCki+fXHUwMDEzTYHM2Vx1MDAwNEZi0mlSaqVldLaAsNgwnlx1MDAxYWnKgn56XHUwMDEzcugvvrPzn52dUiaQhVxuXG4jaUnCuaLUpF+VJl8ljJZcdTAwMTC4gkuNXHUwMDExzT+q/a47JFM3w4eNs1H5IFlumkCgXHUwMDBlUVx1MDAwNkOIIC6EXlwiXHUwMDEzsbQp3lx1MDAwMFx1MDAxMYopjchcdTAwMTnAXHUwMDA2XHUwMDE4QjxqMvdcboFcdTAwMDP+JtNXk4lSbZLMgaFcdTAwMGJwKZxwmMePXHUwMDFhlLdIVEmVkEu3ifhDU0efs4NSZdJv50tcdTAwMGbVh8lur1Zs7V1ccsL0mf30XHUwMDEyfZC2XHUwMDA0IUQpiFx1MDAxYpigiylpXHUwMDEzMlx1MDAxOCsnkZm84Vx1MDAxMofog8JsgVx1MDAxOJKD44YgXHUwMDA0galcdTAwMTNcXHyTZVx1MDAxM9HJm9RcdTAwMDO2gJaQUVx1MDAxMznBPEVoXCJHcojniUxcIuzX0KXfc4Orpc1r/q+d+fDO3rz9+19/rt86hJ353qFb1rZcdTAwMDf+Xq/TcX24hFx1MDAwYnNKy+c58G3Pz7rdutttLH/ndOsx38z2ynheb9x07HrEfsvffVxctEBcdTAwMDRcdTAwMTc7XphA7PueleOtRmWoiuft0s2wf+tcdTAwMTczk6c9dFx1MDAxYkORLy9Yi1x1MDAxMyzUMoGUXHUwMDA238vA/S5cblx1MDAxNlNbZEGwxJBcdTAwMDb7pCT/1KLyfzw8PISlXG7RcrZugTNcdHpcdKRtlChm1ktcdTAwMTVcdTAwMTPVmmlcdTAwMWOuMeFcZtxcdTAwMDKlOLqWaW5cdTAwMGLoeK9yWCs/NXGeXHUwMDE281WVs0e54VZn/tdVKitcdTAwMWRcdTAwMGZA0G+SXGL2jkrlLOq4Y3SDXHUwMDBle4c3XHUwMDBmxV3eqFx1MDAxN/Eo9aKZm/pfgJ9mZjlcdNHLXHUwMDE4lJaZUYDokVx1MDAxYWm9cdc1L5KIqIogIVlMTMqMcM2iXHUwMDEzMF9cdTAwMDS2yDBJW0hRXHUwMDAxjlx1MDAwNlTtbNladJxcdTAwMTRRyd90XHUwMDA3O32vV1x1MDAxZtb8nTpsu9O0R87OwO/VXHUwMDFlo4MjufBcdTAwMWLJpzjXlvSvNNcyXFw98cZcdTAwMTZNIIhNWCfxmsy8Pbj39kSmXjj2r4/PWrnTXHUwMDE2XGZQqkKamLotqWfTtJIxXGKJhVrMX1x1MDAxOMdlISHBYJv+XHUwMDAySHxqPX201dbIgkhGQVAuzDJMXHUwMDE2VbAlLFxuQKSIXHUwMDEwwampeVx1MDAwZpltZMJeKdC6XHUwMDA0U/m691Sh8vj+NPewTzOFyXhy4f9Ssy1RbJwnKYLYMFmY94LDo0LlXG517096g6ejqk0y1bK8uPktcKiJJZFJaVxuRTBcdTAwMGJcdTAwMTQxveKQg7RhXHUwMDFjhphcbq5cdTAwMDIrorbQ10FwLZWZ56ZcdTAwMWGTiLJcdTAwMDM4XHUwMDE3wmFcXDQlVCukQ1M4SlBcdTAwMDbxno6uU/1cIjBGmXVgM4GbrCjjXHUwMDEw+zCpXHUwMDE2Nlph1WueY/sx5SQy7m58qGLlXHUwMDEzXHUwMDE2XccvdUecYMpcdTAwMTJVLrxcdTAwMWH0U45cdTAwMWaPvUxud1hwXHUwMDA0OdPF7iBuoVZKXHUwMDAycOCGxVx1MDAxOTBcdTAwMDXiXHUwMDFi0yAlZMqJxYFeXHUwMDAyYXDraFx1MDAxYlx1MDAwMfhGTDlnYPX0+tLbq1x1MDAxM3p64Vx1MDAxZDqeXHUwMDE0l16ucpnhZ1cnv9aSy9jKMlNcdTAwMTItQbWT5KtazvbKvLo7PeCXpcfbrMun7dFF6svAXHUwMDE1mHGCsJnpwUpgKpcxqCzMXHUwMDExXHUwMDE1iFx1MDAwYpBZaHudxbi2XHUwMDA0UoRcdTAwMTnlbZZcdTAwMTOgj9hxTM2oKVx1MDAxMbOy/IuwmMSQ85jywVxiS25cdTAwMDNcItu/zJK/YHt62MVdxLG8Kd7uXHUwMDE2XHUwMDFlLtpuZniWZIpAIDBiXHUwMDBimFJKQWRcdTAwMDCqTsBIq0CvurdJgaglXHUwMDAwgar1/51E5ocylFx1MDAwNOyxXHUwMDE2OKpUUMRXuM3K9qhO1HYpYT7f7bq+a7eXleRcdTAwMDIpkpDg08n8Vcn7XHUwMDAyvS+cXHUwMDE3ce4sc1poPyH7qJJz7lx1MDAxMlx1MDAwMduUyy5cdTAwMDBb0zXAllx1MDAxMWuovnGdXGbXgExTdK2jpqlwXHUwMDAwR6FFgzBcdTAwMTZMJvLiyVx1MDAxN1B45lRTXG7oozZ66p2qbIPqYmekTlx1MDAwZfwn205cdTAwMDJo05FsXHUwMDEx0DB8yFKmXHUwMDFhQnC4+1xch2egIC78xvRHMc1cdTAwMTlTXHUwMDFjlGdcdTAwMTSmeWxqmJhcdTAwMTSDxHKDlrpcdTAwMGJ/71x1MDAwMKjTaaiTTeaEi0HmuXQhuIBcdTAwMWKWPDv40C/X9p8u765z40vW2ptcIlwiRCndYlJSbVGKqCmmQJqIxblkrVx1MDAxNcSfXHUwMDFjXHUwMDAya65cYsafa7NcdTAwMTmtJfFLL1x1MDAxZYhuqYklgkWKQTE5/54qXHUwMDE5lVx1MDAxNmQmn7ROS961Wo/6XG4/d1x1MDAwYrnz6s1VY383S+Zccv1cZlx1MDAwNva6hfFj87bWzbZP90p2q1Y8RMFcck6qQ3VbPtntNLr8eq//PDxcdTAwMWLlOl+iRlfimNLY4nBTSEmJxu9YmXxfYk+P9ePn0mQqXHUwMDFiufEu5uejcbpxrDQ1xYmzLmeglbRYwrE060yk1IRcdTAwMDOUXHUwMDAzt+IjOFZCOVpElFBcdTAwMDZDu2AleETtN5ZgXHUwMDFjdMwqg79cdTAwMDNcdTAwMWXjXHUwMDFikigkOZc6kSd67Ud5xDv08nC/PsxPXG756VCV72/iZl1Sg0e2XHUwMDEyj2qDeFxc2GBcdTAwMGXGMFx1MDAxNEOV4VppXHUwMDE4ibjC8L9cdTAwMDFcZsN69q2qU1wirHUy5fq6XHUwMDE2f7pLUal0dFxcqlx1MDAxZVx1MDAxNlx1MDAxYqX23mWxk3LvXHUwMDBll2fpeFx1MDAxNCptia1bxYisTMS8XHUwMDFlKC4lXHUwMDAwiuvKMX5bJMZcdTAwMWJEiaRWpv9mYiRcdTAwMTZy7tOR/bybRT67uedP3uW0mHJ7qLH4TZA469QumfyNkbhYM1x1MDAxYVxcXHUwMDEyXHUwMDFm++RcblP98T5z+Jztnzq7xz5yytrLokLl+PEy5aVrXHUwMDFho1x1MDAxNU5cdTAwMTn2XHUwMDE3X1x1MDAxMCWiqCCRiHCQSI1rViTdvjmw+0fqNjdblTq/h+Zl7ul8l9D1JixF3VhRaTwp49f1alDk6lx1MDAxZN14yT07rJ+eVi6uisXyw+GhyvlcdTAwMTUv5ZxEaIVjMI9m+WWcXGZcdTAwMTeNUolcdTAwMTWQUqwr+Pjm5NtcdTAwMDZLnFS/XHUwMDAzI1fEappcdTAwMDBcdTAwMGXROzo6XGZ3efGpesX7u+2zwycsNM6WSMopSda6ye1cdTAwMDdrOJKSXHUwMDExuVx1MDAxNNNCkFC1LvX3TcmfL7xESf6buMn41ouccEbkO1x1MDAxMkqj8mlroO3cQWmfu36xVG/djDtpJ6VeSUrMgqT8XFyiPjbBXHUwMDE5UVxcg5b5XGJcdTAwMTaOY1x1MDAxY3wk1zchd5ZOenHr3fl9Xdo+vWzEsS6ScayRVMnJ6DTEyVmhgYrd4UM/c3t5ka9cXGfSTka1Mmgl9Fx1MDAwYshcdTAwMTiVzlxiRazCPIxIafbtXHUwMDFlf75Zz0ZcdTAwMTHcXHUwMDFlp4CNLzzRY3k3PLu66V30K0dV3rssq1I+SYmGVMxcImSO1uVcdTAwMTV7iMZIrLdnWkU9r+d/sVpjXHUwMDEzdIgpwFx1MDAwM98uJKE0slIpQN9wr1c1W1x1MDAwM7nRuo5RsO7z41x1MDAwNVx1MDAxZJ/qXrmqWql5e4vOu6zIye1ZpTe9OFx1MDAxOT5cdTAwMWTzMFx1MDAxNWKeWFx1MDAwMVx1MDAxNnm5XHUwMDA2XHUwMDBm7LmpZUaYIImCy9/nT7CKWGTK/lx1MDAxN5fJf6TzijJOiLJwtydjneKxzVx1MDAwNIxcYiOJ1PY7XHUwMDFlXfE6iZLvXvlSXHUwMDBlntyrmp+vekxcdTAwMTR6k8RcdTAwMTjCiNL3gyjCjn5jKCGGMDdcdTAwMGYxQTJUsDVDSmw4Slx1MDAxOPg9XHUwMDE2fFx1MDAxOOpcdTAwMDYxdJXL25l8XHUwMDBmlcenh/3nbOkk2/KKYVxm2cbJL+NHLNdNaqrX4CeqaHJVqPo7wVx1MDAwN21cdTAwMTk+jFEmsVxmN9swX4ac7ltqQVx1MDAxYTFcdTAwMWKcXGZMYVx1MDAwM1x1MDAwZbJcdTAwMDHFuN2OXHUwMDFir1xmiGRSwk6BK5Zxc2RcdTAwMWWVSlHyXHUwMDAyN4i1XHUwMDA2jexDXHUwMDAx0yEpiJubs8NcdTAwMTKPK3BLzZoryUze1Vx1MDAxNLNrjVx1MDAxOF0q1VSKmFU9lGlcYvUpVfErZ1PRk5JcdTAwMGKiNFx1MDAwZbay2HpLypeh50elazd38iDRkbjM7Z/71WGrXHUwMDFiNtlcdTAwMTEqirMlg81cdTAwMTCxJNWMkZdWJ2GDTaI6k/1tlNO2TTZcdTAwMTbEVCSrqK5JLL5pXHUwMDEyMk8801wi0Vx1MDAxM59cdTAwMTIqXCKnW/Oms6d/7zz0vJ36XHUwMDEw7KmT2rVcdTAwMWO2XSVHmd75efGy1XMz9aZzP6kmgjhcdTAwMGJBXFywdVx1MDAxMGeR8zTfXHUwMDEwTyiMsFwiXHUwMDAyRS67o/HCyPSLgH032ZJy1s+l2us97sDfg2Hf8XaaTrv/MGynXHUwMDE15v328KrmnXfI/tFz7XbUeK6owWMyS74s3bhEa2DOXCKayX+jPFx1MDAxOcpcdTAwMTVWSCysplx1MDAwYizAicU4k5QjQfhcdTAwMDYxbuCdVjTjQ7I7zJ9cdTAwMWQ9ys5Rs1IuXHUwMDFjnHrTm2RoXlx1MDAxNpJw09agWX6HJZ9AM0CZyHBcdTAwMTfAmVx1MDAxNImFszStXHUwMDExXHUwMDEx3eRK6VlcdTAwMTfh6MdcdTAwMGWlYuWd0267/UGknmMrml5iKlx1MDAxNDdPPktwp164c1k9Kl6MbHE/uVx1MDAxMdfocr/M26f5XHUwMDE40KVHzpnnVTBcdTAwMTBJxKwxREuzMpRKS0uBMSPYrFxmXHUwMDBmNFx1MDAxY990XHUwMDBiXHLQaoQqXHUwMDA1XGJcdTAwMDU9J7CIlnMxm7w9aUhTXCLk2ipcdTAwMWN+US2do9xkqG6mnrPn2J1W3vmSmuhVYGSxXHUwMDE1mGBAheFt8tTCdP/C3cu0r8enzbuqen6aNFx1MDAwYufZ1GNRYYtcbqRcdTAwMDRXXHUwMDFjVP1SP0VcbrJcdTAwMDAxjFx1MDAxNJVcdTAwMWNJXHUwMDFkzDx8ZEK75tRZ3Vx1MDAwZeNcdTAwMTBjSytMkNZUaa2EiFx1MDAxMFx1MDAxNiu2eUVcIlx1MDAwM+aY9mLryqZ/XHUwMDFkXHUwMDEy6549joKhRrFJbLj35lx1MDAwZn3HXHUwMDFhkerTMOvdlUShn7u6LrK9cvFE3adcdTAwMWSHXG5zi4BcdTAwMWQxXHUwMDBiXHUwMDExjG1cXOxcdTAwMGVHOZghxcyzSFxySjndXHUwMDBlXHUwMDBlTfGGJoAxiZjpiVx1MDAxOP3gUy3No4iQxKbaJWI9k2k7XHUwMDFlbES2aVx1MDAxNCZ4XHUwMDBlRmD3LVRV7JonxEJgT8XMS9HAI0PMK0GdhXpJWHKNOCd4nuYxL25cdGU6cEhcbs6RaM6T/Jx5gopmXG62h/NZKHI0uNLEzJRcdTAwMTNcdFshuf734PI0/FxuwIArhChTdOFcdTAwMDeXXHUwMDExsPb3sLAo5opwkEJCkvmU/s/z44B6XG6iXijzsNH1v8dN61atOGZcdTAwMTDkM47Y4v0zPyU1ZnjWOWr97yVcdTAwMWXOXHUwMDEwOrdWXHUwMDA288frUX7Y/X7RN41cdP96NadAJ7f+XHUwMDFh685/68fIdcbZ6M5cdTAwMDOm+cBcdTAwMWbmN//7/y9xU8MifQ==<!-- payload-end -->
+ <defs>
+ <style>
+ @font-face {
+ font-family: "Virgil";
+ src: url("https://excalidraw.com/Virgil.woff2");
+ }
+ @font-face {
+ font-family: "Cascadia";
+ src: url("https://excalidraw.com/Cascadia.woff2");
+ }
+ </style>
+ </defs>
+ <rect x="0" y="0" width="827" height="1012" fill="#ffffff"></rect><g transform="translate(10 10) rotate(0 403.5 496)"><path d="M0.6120161302387714 0.2306227557361126 C176.34838936785238 0.22690063446387648, 354.00070575121794 -0.3170953896678985, 807.453930426389 -0.3243877775967121 M-0.0015226308256387712 0.1010874155908823 C310.84229007391264 -3.3018346436135477, 621.1829346725718 -3.3442769773118206, 807.3457405503839 -0.35789241753518586 M807.2221156604588 0.14504600688815117 C807.7818173653185 340.53735774978986, 807.4114872938692 682.1625422649084, 807.7767260320485 992.542293011397 M807.3937234338373 -0.1761252399533987 C809.7578097438663 226.10918501354752, 809.8873681282848 452.84014994539314, 807.314637356624 991.8598415974526 M806.9638260610402 991.44779246971 C562.5161133198999 990.1462100305592, 317.69396286513654 990.2463866748845, -0.7308547966182233 991.3081124417482 M806.9703991707414 991.9383708599954 C535.3735030521638 994.8362671773842, 263.54323863219463 995.1941872399261, -0.04486282505095005 992.02657196559 M-0.06409778520464897 992.3358103863894 C3.7934890135824677 631.3772417865694, 3.8704169377386566 270.238020568341, 0.17447407320141795 -0.36201249435544014 M-0.22888067401945592 991.7009844068436 C-3.119588717713951 632.726607242599, -2.632397124066948 274.1862880770116, -0.3936608735471964 -0.004026996716856956" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(249.4970250899562 226.7594272925893) rotate(0 162.83190000956358 47.85474831189481)"><path d="M-0.96208451997514 0.6683708647747145 C107.76010040830967 1.306099765628057, 216.5470174083707 -0.4148437560221909, 325.4259883209972 -0.24426163094201275 M-0.3173531422678079 -0.5115772151687729 C110.02456843588416 1.13169501829559, 220.07356780765346 1.31326795527431, 326.2381214646235 0.17076886330751043 M326.9985814814538 -0.7640320304781199 C324.14170812200507 26.92932354006564, 324.0098075134655 49.68722951038967, 325.7222033863038 94.89843360795614 M324.91671369067285 -0.6041608182713389 C325.65261542344473 35.02616473000127, 324.98514869356535 68.0857781887353, 326.03873366705034 96.13161552320209 M326.54887460023514 95.44100734495612 C224.05056724430383 95.12862323027028, 122.86998802934731 93.49880166670485, 0.9025957708928238 96.01284381950762 M325.6963271804402 95.59112770213056 C200.6912590925861 97.24168078048874, 76.38719433820502 97.09487302357955, -0.6849227868670017 95.78329254107791 M-0.36528593860566616 94.9919541896784 C0.06972456096820157 58.69338710273053, -0.05369597554989536 25.236592095250444, -1.557630067691207 -0.36099752224981785 M-0.34486470837146044 94.74515882502284 C-0.11387012361963633 74.7228081714263, -1.0757075047441327 55.34757990094743, -0.22900356072932482 -0.23087996523827314" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(161.677450113325 122.23882343430955) rotate(0 32.41127494333767 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Image</text></g><g transform="translate(102.44305107894843 233.274029900237) rotate(0 62.02847446052556 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Description</text></g><g transform="translate(186.14768369298304 354.7916331332008) rotate(0 20.67615815350848 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.35260340919839px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Unit</text></g><g transform="translate(177.2066423293038 410.30923636616376) rotate(0 25.14667883534821 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">price</text></g><g transform="translate(163.7950802837853 465.82683959912833) rotate(0 31.852459858107693 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">taxes</text></g><g transform="translate(171.7361216474635 177.75642666727367) rotate(0 27.38193917626802 13.970377130749)"><text x="0" y="19.940754261497982" font-family="Virgil, Segoe UI Emoji" font-size="22.352603409198395px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">Name</text></g><g transform="translate(265 105.26759386062622) rotate(0 43 29)"><path d="M1.2833336349576712 -0.20210695825517178 C26.264553903974594 -1.4820367433689534, 53.37526597902179 -1.9639644362591206, 87.90453079901636 1.6061993185430765 M0.7910978468134999 -0.9158364655449986 C29.10138486661017 -0.553940929081291, 59.80458284374327 -1.4824445318244397, 85.12034845072776 0.34006507974117994 M86.69530085287988 -1.1325306352227926 C85.35720007156954 14.490840502642095, 87.47046683764086 25.223397812992335, 85.36597273312509 56.86980068124831 M85.70289540011436 0.46385892014950514 C87.26780787443742 17.7852092217654, 87.02948379850015 35.474924811162055, 85.81809285003692 57.159964132122695 M85.23000023327768 57.341260546818376 C56.78170889597386 56.95030437683687, 24.02138104438781 59.065846013780686, -0.25596889294683933 58.12556856311858 M86.75304916221648 58.43610935192555 C53.95805252194404 57.871169723998754, 22.63317631166428 57.66141802860424, 0.662036475725472 57.16271974425763 M0.03531995974481106 58.92977684177458 C0.7145148164965213 44.16558788288384, 0.9834250457026065 25.391566541790958, -0.8231715206056833 0.6875288430601358 M0.7059939475730062 57.03384329658002 C0.18653230490162975 40.465856389701365, 0.12291945638135082 25.266173735447225, -0.06287804525345564 0.8138775704428554" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(303.14233728099066 462.18991210408274) rotate(0 29.20304557052708 15.019700190719561)"><path d="M-1.0984133537858725 -1.5110005978494883 C17.671119970841648 1.926576370932654, 40.21249815936077 -0.23277801778118262, 58.06093416782631 -1.0722546819597483 M-0.01225514430552721 0.4319292278960347 C20.665152421486216 -0.40156814638957194, 41.744342023105595 0.7669872027219851, 57.46690482413931 0.5372962029650807 M60.06423912616982 0.4613895174115896 C57.90467638980307 7.195001272910716, 60.134641778577944 18.340453467252615, 58.54924027296318 31.991146761395694 M57.96992534911795 -0.15894255321472883 C58.00702416305652 9.166336727376823, 58.54995133881679 20.94159483639855, 58.10398641741438 29.142285565317334 M57.160195988142625 29.434474188306094 C44.16742622254375 31.241232429252747, 29.503264016148975 28.858126972423676, -0.0935413297265768 30.70587314985013 M59.22469035303755 30.641962031305493 C43.161423966230984 29.44031650053655, 27.380737955095803 29.1803115926901, -0.7261240901425481 29.303445110500515 M-0.658626263961196 29.491012710549594 C0.7373647436401161 17.40126080984873, 0.03074184506147226 8.883383527678141, 1.3252037707716227 0.9112189169973135 M-0.8419847907498479 30.591566095531643 C-0.5492335561742618 18.94149529314116, -0.4160334769716099 7.455331541837101, -0.18515188712626696 0.533256527967751" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(261.2145066031824 503.3849129532873) rotate(0 155.2906633177264 26.638255679750785)"><path d="M-0.624289475551761 -0.19043343539405394 C99.73877876142258 1.5964010939473132, 199.24285734257668 2.321220196926108, 310.02138800640387 0.137703828063164 M0.2645620378022147 0.48981998140533894 C95.10830220933451 -0.9764894606436063, 189.60168113193637 -0.5836154588016225, 309.92141502276445 -0.6983936331285973 M311.46241117258637 -1.168308025225997 C311.5862189984247 11.454190683610868, 312.06611441134663 25.354515701651835, 310.09820336838334 52.43328664964805 M309.8777921189469 -0.31464625615626574 C310.0734623536227 18.72781694243611, 309.8613118692992 35.85950114169987, 310.65451815621077 52.30440986762564 M310.65346389389083 54.458247689592284 C227.07222496551893 54.324072280007776, 144.89070156838412 54.92094923133379, 0.8276050451235265 54.623405789248814 M310.1269699857599 53.052467873322875 C219.13600131585275 54.95162755222612, 127.88207555635186 54.91429623976157, 0.6083325826976749 53.258750001399996 M1.3116531129926443 52.08392862743507 C1.317569858525652 37.79669913764175, 0.676619476769823 22.508121152365028, -0.5361858252435923 1.774029666557908 M0.4484726460650563 53.4996095658354 C-0.3116531186783208 43.01010995445691, 0.4815350658214198 31.84609843359356, -0.6044884352013469 0.7387443957850337" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(517.3691237516648 459.91069099716265) rotate(0 27.687581811088194 16.535163950158392)"><path d="M-0.06658775173127651 1.7426361795514822 C16.638982184205148 0.9877153474666976, 35.55737598793942 -0.05650957042194371, 53.45561009829319 1.2318486329168081 M0.7652714429423213 0.41782226879149675 C13.339113375102944 1.0572315456811796, 25.013681434888078 0.5160462560598265, 55.552976663200326 -0.7866967348381877 M55.409461321285136 -0.4157663229852915 C54.21144821549051 8.699499222621196, 56.154561721330815 16.542462140664206, 54.48507869427479 31.78077316094584 M54.903600032417245 -0.8460412649437785 C55.819673692621656 9.665216233594457, 55.59545857254452 20.338153000015993, 56.08877327570147 33.72191320822037 M56.68867051785267 33.361689088832804 C35.32405646220859 33.74877373490861, 15.46731021967485 32.623009662967235, -0.9712940510362387 31.735190330039927 M56.20869138368792 32.28890382215775 C39.81947302512469 34.01532507876694, 25.261388509029718 33.99693451265633, -0.9767642738297582 33.68206586406029 M1.1827219668775797 32.24239104796595 C-1.3323882710090218 24.30666755847433, -1.856746841584736 17.707894371106732, 1.5395168606191874 -1.9816210512071848 M-0.05898697394877672 33.71010841891564 C0.7596258099757386 22.15891825286304, -0.7094604496277618 10.039976202349987, -0.04397402424365282 -0.6701242653653026" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(530.9123771413247 466.84791780420676) rotate(0 13.639173834949702 9.092782556633153)"><text x="13.639173834949712" y="14.185565113266307" font-family="Helvetica, Segoe UI Emoji" font-size="16.164946767347814px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">add</text></g><g transform="translate(332.3453828515203 469.8457509454257) rotate(0 9.092782556633153 9.092782556633153)"><text x="9.092782556633153" y="14.185565113266307" font-family="Helvetica, Segoe UI Emoji" font-size="16.164946767347807px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">10</text></g><g transform="translate(256.57219487957764 466.8148234265485) rotate(0 17.175255940307068 9.092782556633153)"><text x="0" y="14.185565113266307" font-family="Helvetica, Segoe UI Emoji" font-size="16.164946767347814px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD</text></g><g transform="translate(252.12172404655144 174.47556443147732) rotate(0 159.33190000956358 18.04547312311763)"><path d="M-0.5200925400271478 -0.8625112139548522 C121.48290772432871 -3.4296463960329646, 243.9740992444339 -0.9986379822773479, 319.8705416690835 0.15254824070670067 M0.1396140743468666 -0.2623568760836703 C76.42224278522202 -1.7334399312084197, 151.7833518892316 -1.8945122188302, 319.2471477055355 -0.25384268174362984 M319.14528514194205 1.7683633919805288 C319.08858710566415 9.773196374479078, 317.3799061779107 20.30455485441415, 317.82801921415046 36.11570921011142 M318.5461115895854 -0.9381824163720012 C319.7786909957974 9.503438169037528, 319.4482441862671 20.129198959830358, 319.63133976451024 36.20199562732003 M319.983920828346 34.93324256123956 C207.447808589558 38.32365593347228, 96.57256771174033 36.75584586740048, 0.4808252872793874 37.3838810189712 M318.5316649804755 36.45065360163346 C199.36052073230866 35.99849735670303, 81.05344898398712 36.61733185836955, -0.008075096866123028 36.71290446084454 M-0.4458962734788656 36.23192914791278 C1.6644646467566453 24.25822784713548, -1.4609071074128188 17.0453049734822, -1.329640930518508 0.9026429411023855 M0.40408008079975843 35.44052653137467 C-0.05922558512458931 26.3917437814024, 0.5588158408187853 15.98517008446968, 0.8992260871455073 0.5424526007845998" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(253.1320332195105 345.20750548863066) rotate(0 81.83190000956358 17.54547312311763)"><path d="M1.88001804985106 -1.648715639486909 C55.55154318316047 0.2135170009348195, 111.58835800458023 -2.019241699912806, 164.34855569648448 1.841301715001464 M-0.1881769122555852 0.5122685106471181 C60.883316930538946 -0.5141367903614082, 123.18535867830174 0.3671613642311058, 163.65230006567094 0.8857467146590352 M163.2179037456483 0.14098290167748928 C164.7783545420569 8.665269989173671, 161.65298278788742 21.950335503793877, 162.33415908860866 35.99358918733769 M164.06788009992692 -0.6504197148606181 C162.91263426344653 9.795417856643878, 163.5306756893899 18.883464481187925, 164.56302610627267 35.633398847019905 M164.4171149258584 34.35480907030278 C104.5478895459361 33.66125775431504, 40.37806029943664 35.18021185253968, 0.22411775030195713 33.47887107200795 M163.5237797855482 34.17425115529322 C118.70987204667227 35.55509937575764, 72.77488867760839 35.0093631522984, 0.20823227148503065 34.670923100149864 M0.9401149693876505 35.3806335575121 C-0.6198477420876767 29.050419756834344, -0.16703727579815647 19.426174812968114, -1.7754892762750387 -0.6428550723940134 M-0.8666509510949254 34.98288594309115 C-0.13001467742251227 23.912924636599605, 0.8472815855569952 11.15027248080386, -0.10428730864077806 -0.052675398997962475" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(252.12172404655144 395.7332733095518) rotate(0 80.83190000956358 18.04547312311763)"><path d="M-1.5653996709734201 0.5924824420362711 C50.030685896857804 -1.4448028433058115, 101.0439829972818 0.34721431854034934, 160.5467497644097 -1.1328454669564962 M0.3307131798937917 -0.14409334678202868 C52.33555951992044 1.6600937030200569, 103.47910539150226 2.1141184053306192, 161.63830657332096 -0.5941225113347173 M161.3852187928826 0.6056279484182596 C159.81449187762786 7.407208866041792, 161.1900076366191 16.551740604588176, 163.26060640188757 35.531848473771134 M162.65818567602787 -0.009955746121704578 C161.07096792838811 9.535440569788301, 161.449108467319 21.20829641176032, 162.44504259555492 35.45135299052916 M159.97604381414953 34.41117577098183 C109.82851806906554 35.037734525425975, 58.976988036261815 34.03488703273112, 0.13121012412011623 37.734847648366014 M162.3295380923048 35.9334766038867 C107.76729058939597 35.55144216740271, 52.94829584069858 37.34812014424941, 0.08592343050986528 35.70086038794241 M0.17136982642114162 36.283837421162644 C-1.1335610415687047 26.626544428237466, -2.0030365850676977 12.747871201547639, -0.9343102220445871 -0.08872831426560879 M-0.20524788182228804 36.57044280256949 C-0.1877992442960712 24.377334890327965, -0.8936144701356861 11.346781718992204, 0.04653861839324236 0.4656484602019191" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(262.2248157761428 578.6193872124595) rotate(0 153.33190000956358 19.239391943829446)"><path d="M8.205580876403637 -0.7497754152864218 M9.676779167906652 0.923706070145013 C89.64549648909639 0.7732424470567162, 171.4159692635522 -0.9087769154924459, 296.411646420182 -0.1368711933819068 M9.485474694077428 0.055118482865122 C102.40268126851984 0.8510376402454752, 195.92796896126723 -0.005892834128393809, 296.97331919472276 -0.0804798443268342 M297.0441040472125 0 C304.3754317663354 -1.7091770824044943, 306.97685527178356 2.696666298188629, 305.52537094923565 8.510063235842772 M295.70823047878196 0.046978289261460304 C301.17721995271046 1.0083674277178942, 304.3679033896037 1.1803615957837428, 306.3061511000701 9.3487241665918 M306.03119672220384 9.988843430858074 C306.20868563673594 13.48002815378187, 306.05345892983564 16.717251126949687, 306.2984430225077 27.538159807393637 M307.00650424521587 10.266200193276099 C305.8158589134255 16.22301088124764, 306.97160423225137 23.184356038580994, 307.08280324299005 28.190956451724357 M306.6638000191272 28.859087915744148 C307.09843140217373 35.36370960166701, 303.8211290143174 40.021464145590215, 296.2515961361115 39.32940713207856 M305.3825306234033 28.70408692548748 C306.70343928244796 35.09909831788414, 304.96984953142004 38.10954520659208, 299.2833832656962 39.925939315125945 M297.3395179638402 39.96749731784635 C191.61324735882565 40.626120687050744, 88.28001951033572 38.65128313676497, 8.67128900929562 38.18756615445914 M297.63821990727183 38.76198332167004 C231.50321463596262 38.22090256925356, 165.56426764239754 37.58997755649434, 9.553241836978117 37.76348199169583 M9.619695971914716 38.478783887658864 C4.1515503914434335 37.85297582190171, -0.3811421636492014 37.15883705308684, -0.1394349578768015 30.194236244659386 M10.580797777705975 39.824051237512975 C4.962527980875583 36.35219530122042, 1.0423440297134219 35.46087686028355, 1.6102815289981662 27.958774186230713 M1.4151221363457023 30.682574087132682 C1.395261960585475 24.027437267332992, -0.09144334092603074 21.350676127217632, -1.4327670122512768 10.289407268572038 M0.9585775926520578 29.620437913437446 C0.11964692946202413 20.91800209275555, 0.7677329616169768 14.048085071244685, -0.025904939685964412 9.72282873964071 M0 9.619695971914716 C0.5688870307058096 3.952424524106445, 2.57601503444499 -1.2930257376283407, 7.88823966794569 0.8727511111646891 M0.3546189423650503 11.430662875258513 C0.3471536804921924 2.861876362596067, 2.9257107669826468 -0.9303204123862088, 10.980595976588464 -0.5958743934519588" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(282.6148405114666 586.7802895501023) rotate(0 54.28459907031555 9.970640645568153)"><text x="0" y="14.941281291136328" font-family="Helvetica, Segoe UI Emoji" font-size="17.725583369898924px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:5 | VAT</text></g><g transform="translate(549.6064400205669 588.9959874713385) rotate(0 6.093169283402744 9.970640645568153)"><text x="0" y="14.941281291136328" font-family="Helvetica, Segoe UI Emoji" font-size="17.72558336989893px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">X</text></g><g><g transform="translate(530.6222882484633 578.9739703476571) rotate(0 -0.27004847406038834 18.648419851507015)"><path d="M0.04895899035036555 -0.7005767975002527 C-0.007434478029608803 5.223480316159923, 0.8709535095840693 30.26270754962066, 0.8574078653007746 36.49408163410603 M-1.384476269055158 1.546016438473016 C-1.6284975971467794 7.585657411219228, 0.2645852331630885 31.90963643246168, 0.35950153095647686 37.99741650051429" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(264.7989966846808 830.4184092888754) rotate(0 148.65462737143469 17.190719699745955)"><path d="M-1.9334663804620504 1.6443487163633108 L295.66614231624567 1.3200544472783804 L297.65747931756937 35.52988474309053 L0.6051808539777994 35.06644176184739" stroke="none" stroke-width="0" fill="#fff"></path><path d="M0.7914507742611576 -1.0240039720642273 C114.36266686238285 1.4373667822993306, 232.45091438027146 -0.7668287064963868, 295.97353338608 -0.6289964467260885 M-0.3077540775712225 0.31954050168844417 C65.37030189513659 0.9088819889770366, 129.2279997136572 1.9278172825686628, 297.11809807319264 -0.6602509276931665 M295.49761552893483 -1.6364958342164755 C297.7708321404979 8.910792956298874, 297.26310243134947 16.749091649768324, 295.34240735852086 32.69134951248373 M296.9145416661065 0.8050715802237391 C296.9094662005732 13.515630507922337, 297.24007847259736 25.68772488941732, 297.35861847241335 35.21802821714039 M298.26264619407897 35.841381415217946 C179.2325983610987 36.79200859992621, 61.35337550971754 36.41059798454842, -1.379921648297545 33.81684925264352 M296.9207646258972 34.439952395925346 C203.88936522586124 33.26310113317658, 109.57729764516841 33.570151409978024, -0.7208730575982707 33.72372842678641 M1.674868082627654 33.93865591898169 C-1.2907062314227735 24.708016607510643, 0.7594292022510852 17.707962394306204, -0.92783840931952 0.31214373745024204 M0.052322772331535816 34.05398261505719 C-0.44418009209730314 25.14821860264806, -0.033522119999906286 14.580882133879072, 0.39083355385810137 -0.07352171558886766" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(278.94846946963287 833.6767133324811) rotate(0 137.50000000000006 12)"><text x="137.5" y="17" font-family="Virgil, Segoe UI Emoji" font-size="19.083617711452316px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">this product dont have stock</text></g><g transform="translate(500.5721744336686 896.0678871853065) rotate(0 45.46391278316571 18.185565113266307)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M0.17327891740483536 5.926760336061113 C0.5268665654269594 4.511410468427604, 2.358327153560583 2.445720629550779, 5.286728580626196 0.614669846355658 M-0.3313980359258005 6.2655461129295755 C1.2854138376411384 4.460416869757921, 2.9163343223988294 2.664839741164588, 4.721939949648923 0.10266394241128501 M0.22069314057935352 10.85876749944645 C2.1021778346732427 7.897825102835731, 6.560356872272736 2.458011027627734, 9.973744505596292 0.7196405361488223 M0.8874707446526395 11.280493721037685 C3.6118843140100703 8.391678056577154, 6.66161308071622 5.002068396454806, 10.401102434796226 -0.6857590538367866 M0.4841778156766434 19.90765740806299 C2.5209694406561254 15.247794585377957, 9.202882512070168 9.203188600177569, 13.722005588471372 1.9697264383477142 M0.8444843980902572 18.266697095614546 C3.7451513072263376 14.378607474741269, 6.862402522284878 9.728434004612408, 15.063821230552573 0.7525853400048783 M0.902760101687095 23.09322572471118 C8.026389968340307 15.409569989033052, 16.08390499874307 8.231611846448377, 22.128659334311152 -1.6880516713321683 M-0.3288741063141014 24.878371298960506 C3.8740053434482657 19.787313469840495, 8.844557197320107 13.611911746625653, 22.150620329471195 0.39114569911505015 M0.9200345641513721 32.12894162512218 C5.912523646671287 23.15765118907612, 11.044486732709485 16.28179206892615, 27.191561408948512 1.7973475879070104 M-0.7221754211420759 31.010741525095156 C6.342382097223655 21.544998895196134, 14.23682467296164 13.947611407188727, 26.97160869804433 0.4600395321857871 M-0.787195680355758 36.217849327756696 C8.824200336297503 23.194820887448834, 17.828745670908603 16.028891355522532, 33.765249303958214 -0.9550159404740448 M1.085859888540476 36.48321551786982 C9.871154209464578 25.26248771828962, 19.14831196058755 14.756369313762253, 32.37482358370612 -0.19495822943158103 M5.650467975702501 36.81954535518436 C17.34852205539363 25.35020590847298, 26.707742805487275 12.280266263846617, 36.085883769953 -1.4693534671235362 M4.747192686129726 36.81804238774477 C17.309193678167453 23.764581225491284, 28.18449764629962 9.9874113715499, 36.97176143042867 0.7311953540053686 M12.735575166976853 36.788031817648026 C20.17886777791209 24.457166819345876, 29.14396588118258 13.66878053134765, 42.95722104850762 -0.3883238985807651 M11.178770799635751 36.28441589535347 C18.917108093574463 26.38588598829967, 29.37174583599142 14.580734668419804, 42.91710011064612 -1.0661154111520403 M14.038271019080035 35.35886312949951 C26.19822063561721 26.99684635656775, 36.214156146023036 13.507277575574111, 46.43964064023483 -0.3728571954939319 M15.590723485530667 35.79187116793837 C25.886850465517014 26.127942365323413, 33.15369997124475 17.068390594966058, 48.191476693330586 0.5052617898386167 M21.4777371195963 37.96635558942228 C28.69267644401077 29.56080415579661, 35.19183798227604 21.330389075423653, 55.03611753670937 -1.0773310144023291 M20.361552399758096 36.61374427957355 C34.43247709906855 22.721022147417834, 44.96154350750287 9.24241416609306, 52.381209675916196 -0.13467936167132777 M27.29151443110991 37.570216121099826 C35.50442052012612 23.407851927186176, 46.413914557026786 10.224551070911346, 58.381249988544 -0.04939406595416429 M27.601204510761683 36.620050991833146 C32.91234850956735 28.845470196841404, 41.68422183181296 20.178760551362004, 58.96107675237508 0.7683228240605438 M32.004826204233595 37.98217101388392 C43.911505668531134 24.36619921494683, 51.9795504173895 9.1485614674976, 64.42723173731346 0.29485724331126306 M30.714145012513526 37.51036549445954 C41.62638413594773 25.71736203001617, 50.00163059704473 16.74060004141143, 63.07403704514135 0.23387140338555668 M36.96049118054213 35.64549886123529 C45.929232387424435 27.58453467814926, 54.51930198409083 16.08662916873072, 68.13287978363051 -0.22894454725425106 M37.52302052744778 35.49960334380409 C46.38469882314324 25.82041272323561, 57.03144230931564 13.340173517025029, 67.81400887318715 -0.44666255895386797 M41.007951360648235 38.73520720250572 C48.62225628628454 27.641068987898834, 55.69523629931895 21.1440819367278, 72.6496066190699 1.451385405810015 M42.551436874536535 36.3244481046092 C51.36809742223696 26.02315647840691, 59.72408270484283 15.779700440869657, 74.00559198394659 0.22093336839361655 M49.68924423612669 36.182855881155916 C57.63622386781005 22.17186263008386, 67.48005023448476 10.165444469716086, 78.01044799424437 -1.235239108144171 M48.80368130121395 37.17442470822621 C54.77145208883253 27.60078222548234, 62.39601841015521 19.85096332329016, 78.4868453213918 0.9401396251704028 M51.92803055759022 36.77673368653767 C63.362436213849456 25.03425442827842, 75.48229285587807 11.870901843914723, 86.31603515072868 0.5216480043439162 M52.04750025145212 37.69832609439753 C64.32365867558734 22.718966353983763, 76.9801229022334 9.129268770148151, 85.8890092579569 -0.4452219822721588 M57.21556656661359 38.18668171211169 C65.38257846858875 25.74700529813095, 72.73374784997965 19.842319153694714, 90.42362258913556 2.0142417826260584 M58.59382159768519 35.9352865694745 C67.56183359416421 25.88413110314395, 76.11693673170184 16.942255361577832, 90.91928336261401 0.055438360808338416 M64.29973176380955 38.06426999722977 C72.23264523996407 27.69689118405876, 83.33161453422471 15.170622163474789, 93.16488321406828 0.30541831083128557 M63.579532408885285 37.32120844819953 C73.61524739438667 24.96942761844781, 85.61072792458926 12.156841735652819, 94.17237154582577 2.7746805764315496 M70.37100114075284 35.067620885352625 C78.32283647530434 24.347059963459046, 85.94545093638382 15.59767542850847, 94.65917221815855 10.310073038756947 M68.74720118248652 36.61983541192396 C75.76025766771804 26.94145547092822, 83.27199505220653 19.642449612785033, 93.03749594358325 8.374623014785449 M75.75147294805622 35.96158566583204 C82.06843205290613 31.487259011969634, 86.85992793900385 21.71014428691685, 92.77979445894314 14.046396238972633 M74.72785561246103 36.929179150390205 C81.19995689376275 28.1461262678151, 87.83076920052835 21.689116451519077, 92.75841429428263 14.004467911330252 M81.08084092729445 36.64256793212871 C86.74201348116824 30.993899987145568, 91.3317113668542 22.119014276275507, 95.25061902400631 21.019016710161836 M78.82070482124294 35.61259271994959 C82.97138606679513 32.4967463382322, 87.00380905353492 28.071487515537484, 94.12378450386751 19.589895090140075 M84.2779579063705 37.01561935206086 C86.62263527936423 34.60893843603655, 90.63559431400083 30.591018248513457, 93.0417053746997 26.128389317550486 M85.10377968804117 37.05884237719842 C87.42405758890186 34.2136014892161, 89.37208557434528 31.84299810914697, 93.3113483943517 26.466590938958127 M90.91140995489054 35.93870992092097 C90.76525846802717 35.722352288030905, 91.77066461052031 34.55126546666562, 93.8228931199532 32.2420807559073 M90.5889633010383 36.11628181948008 C90.92313675313288 35.50922798573568, 91.78049471317593 34.34861264147239, 93.78247820336894 32.373642316696426 M0.10444548165822454 36.46192329856294 C0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294 M0.10444548165822454 36.46192329856294 C0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294, 0.10444548165822454 36.46192329856294 M5.458079062382413 35.66775489400338 C4.845755643156841 34.4790866954558, 2.524582836855311 33.36637146402766, -0.1465964664618351 31.016005288765413 M5.913115186596943 35.916506853580586 C3.8709132416343706 34.129898965929904, 1.6647445096795521 32.928908406663695, -0.45004543297987964 30.430942496240718 M12.331776332139798 35.93783190645008 C7.016575251665989 34.31978167626398, 3.203267449707393 28.378569325811185, -1.4275945619744836 25.826808587087434 M12.68641881200654 36.48497755400567 C8.655613241059099 32.92782273209093, 4.004114284304841 29.68238541612503, -0.2729857706529675 25.547774467988056 M19.051709203873692 36.24665192719743 C11.42787898285343 31.1409751564346, 7.919064940873906 27.19898279956223, -2.0783647080714918 18.701046032089444 M19.533420672533033 36.94095558226303 C13.954995278626884 31.866335645209787, 10.802964404784138 28.533308323654527, 0.0808168187905931 20.55252919178799 M25.720243824347264 35.84057326514939 C19.121345305020203 31.203429183663047, 12.585834824456406 24.33567246701027, 1.9828372349979473 13.24991172631195 M24.7116761847207 35.27204085134635 C17.385782082506843 30.608658486652573, 11.625371847006235 25.44647874876629, 0.9221168126927806 15.214406633609144 M32.51786813673794 36.792925229381886 C22.834208189019208 29.416572952383333, 18.42085224002058 26.232473140907008, -1.2631091381172999 10.372494773990235 M31.32953679257303 36.85061104511109 C20.53103867733696 27.366156255227093, 11.127267686577643 19.634051272002438, 0.5149223218922154 9.729100893302581 M35.69047303919393 36.36342814082017 C20.921756903192033 23.148026768051974, 7.088522443026903 11.042047414149863, 0.1262597666220615 4.868767237011566 M37.16643221259761 36.388687509873115 C21.61764798199487 24.14298407265972, 7.285472012799232 10.880138281418986, -0.1657408037124326 3.709236620646193 M41.57114712575453 35.211429061351495 C30.79026617480801 23.406173158046503, 14.610896233559071 12.691334928918813, 2.335138177587009 -2.0915852847083123 M43.377075794693106 37.19420739541032 C32.3896728872815 25.806870586751128, 21.379775546539722 16.598481467859017, 0.7287198576091888 0.48969106594634915 M47.23470962479072 37.86598859089161 C36.55279066417422 26.758795488807507, 25.642060507425853 16.566458846963474, 6.783465920153468 -0.03395530533909463 M48.739747460589875 37.54736045202906 C41.12430903617064 29.149488304327395, 31.00135774404907 20.938383491301025, 7.508228262092381 -1.0309475720760193 M54.69933913967347 37.75655795435626 C41.379463197038255 24.666389212294632, 28.161110048534336 12.529653433466265, 10.441979330910241 -1.1738482068890947 M54.451672444518266 36.63751611753572 C45.11679139122971 29.04973934533355, 36.728339865272645 21.061609082093224, 12.85284081468532 -0.4791649000386018 M59.12820238944207 36.243656088632704 C50.55913210113796 29.780719995436677, 41.98883360883309 20.652691091427787, 18.90157950389662 1.0152705725289533 M61.92440003387694 35.50015060420817 C48.376524747168546 25.51762224830783, 34.34819340712977 14.343010671712722, 19.475864615286675 0.3318824818364927 M67.48398714724475 37.08895643964618 C50.238289807091 21.68852398385586, 36.88352524805656 9.891486331135305, 24.990188587260818 -0.976409896159721 M66.0320865076735 36.39318369586229 C55.177802613594395 26.71759564209701, 42.04169339859019 15.11436867046795, 24.33446375540403 -1.469768455134881 M74.50407888212078 36.766259194283954 C57.270845061364284 23.269818869388452, 41.31472663499705 5.927659099292448, 30.747926425042124 -0.3840738010678457 M72.6804217783066 37.01420097977596 C62.24622881500631 25.41516418362153, 50.11679863247487 14.508273798909272, 31.198585959936054 -0.5976649361748265 M81.35509369744113 34.931578077461765 C71.23411999709687 26.14899246565166, 60.19660027393721 19.602472682217734, 36.08164349561151 0.30180820772032035 M80.05491233000657 35.87679064375554 C68.87389033377806 28.45686319591566, 57.61414058046298 19.09650543002353, 36.89924552561309 0.7693984140230228 M83.83450707157682 37.45381743909536 C72.47437938317908 26.22773179426622, 60.235450454071284 11.150126056126709, 40.966549652339964 -1.6338438948794867 M84.41625995950382 35.24747056310741 C74.23772560602877 28.17952441183241, 64.07834491775897 18.392315975971773, 42.123902061665504 -1.075693341734972 M89.81757301834435 36.789390312081494 C80.287132903029 26.79283570354827, 70.99843347318927 17.280758116546366, 49.64784286426678 -2.100042421979996 M90.14103093647421 36.42655635861895 C81.35858520115417 28.310298480118334, 73.26762791931868 19.357178041474118, 49.21183923049196 -0.4314483661709154 M89.64772828477803 30.484128122392864 C82.45112105955909 24.89386145445192, 75.79671805593158 17.789429933582472, 53.29524215454015 0.27035482234402863 M91.70581020131144 30.156321106653483 C80.04004024429061 22.993795640760446, 71.43165246207708 12.291213809939215, 55.40244768610003 -0.8114312504689458 M92.67770311603107 26.669079326869273 C78.77982683930338 17.310621285252406, 68.27658910778011 4.0744862137521025, 61.978164242199384 -1.5683832250201526 M90.82206213002809 25.02304397694143 C81.38564809281493 15.37579261426356, 69.28115154616111 6.980144937324926, 60.4041517158884 -0.7270407823511782 M92.6034104904744 18.68971077542647 C84.51306907841125 13.160289137129269, 78.20223996078454 10.947607731156284, 67.32025648061546 -0.6047740891567912 M91.36376976935446 19.99246159478917 C85.92860742293006 15.885114591442798, 79.35551258088826 10.968282812622363, 67.64269217908742 -0.31117314901123905 M91.70325150214737 15.385057029951703 C88.26734129762269 11.535662838564349, 84.36530093782407 7.902974056152573, 74.70102559815933 -0.7394446701501565 M92.20049021918928 15.595167359974575 C85.12709624355112 7.967566980978734, 76.91494413336152 3.2516835053533413, 74.05650524742742 -0.38129485014277265 M89.88932532246365 9.554397210841927 C86.31680242360362 5.498622923889272, 84.14799310780596 4.650895842908723, 81.0327780013824 0.10997986401513749 M91.3540672763451 10.1132530226744 C87.18053213857112 6.098253167757369, 85.23590123928057 4.264733092891528, 79.10875403158498 -0.4510662271260414 M91.94336655079874 5.248401963464371 C88.99690573220613 3.6208691703443145, 87.80334434488266 1.3850811027111916, 85.45651023582168 -0.7520750587657744 M91.27384208045456 4.232693979270213 C89.24114205882104 3.1665622195677217, 88.02368007619651 0.8983498872736158, 85.62201111175663 -0.6592928023860509" stroke="#fff" stroke-width="0.5" fill="none"></path><path d="M1.174586271867156 -1.5460707005113363 C27.118742748464303 1.6834161959952205, 50.413216226404224 -1.919479361885181, 90.97451308550926 1.6532382313162088 M0.9062348874285817 0.8642510650679469 C25.0985692457893 -1.3254726374423837, 50.17008165133019 -0.29838122370604026, 90.1567249828452 0.20373453479260206 M91.68712762179466 0.2695192638784647 C92.99670256916117 11.529099737245643, 90.01200409475398 25.768838062785672, 90.12249753060432 34.381517641598975 M91.89089851914586 0.49450530391186476 C91.22343199860757 9.003582531374695, 91.81427242767518 19.301984519274537, 90.87054260908307 37.265500889512396 M91.13786170067878 35.02537130599717 C61.008743250676034 37.224461737968845, 33.70247598170355 37.54838121304743, 0.2720902319997549 34.43871908670167 M90.9751919144267 36.79211913177619 C60.559517760497876 36.53279177535703, 31.080699876405475 35.98700911987951, 0.5258173914626241 36.10243351885924 M-0.8370420578867197 35.5139539766858 C-0.9798263408422077 25.55694511080735, 0.9281791947603619 16.922013042414257, 1.030346130952239 -0.1619128044694662 M-0.10184073727577925 36.41690118739257 C-0.5795824076421916 25.505670132232652, -0.4618578995950878 12.715734052353493, 0.6752524645999074 -0.8882812978699803" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(513.7061936821401 901.6245876365842) rotate(0 32.32989353469566 12.62886466199052)"><text x="32.32989353469562" y="17.25772932398095" font-family="Virgil, Segoe UI Emoji" font-size="20.20618345918478px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">create</text></g><g transform="translate(397.54125713774556 898.5936601177054) rotate(0 45.46391278316571 18.185565113266307)"><path d="M-0.6514978054910898 -0.4505688603967428 L89.51836535515876 -0.05385351739823818 L91.36468723597618 36.12078564649323 L-0.38322308100759983 37.80978690868119" stroke="none" stroke-width="0" fill="#fff"></path><path d="M0.6703169289976358 0.8684796448796988 C28.12387672804778 -2.4033413198097673, 60.857215961302025 -0.7811367180450882, 89.73749583023282 1.5933087822049856 M-0.19997741002589464 0.890440640039742 C21.41093302067493 -0.6292326650917931, 41.90696288954714 -0.7253886959851189, 91.38542587957026 0.8247203500941396 M89.7393054272482 0.9443663116544485 C92.26390328279138 10.40997590862365, 90.95333751311898 23.277538249123126, 89.47380684869977 37.43361142685512 M90.27908666333796 0.7244136007502675 C90.75712896745331 9.17236501226302, 90.78360907595284 18.5410594123622, 90.33450965485217 36.418767209517455 M92.82838439005108 38.24610999634365 C67.48249654149315 35.39093048473516, 45.762213322451814 36.8023234715096, 1.3728474918752909 37.09241053869823 M90.4811077555144 36.85568427609155 C59.36646532484349 37.49997908306819, 27.060709422187706 37.24808994365436, 0.1320082126185298 36.539561535584426 M1.0152515713125467 35.57972905447582 C-2.0007362929545978 25.59053664270988, -1.006923553105507 13.749268654161714, -1.2785177286714315 0.670719301328063 M0.5679205833002925 36.46560671495149 C0.129152770621548 25.017458336028, -0.5601244908740421 13.47351241834718, 0.8530245898291469 0.34997564274817705" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(413.20104931861374 904.1503605689804) rotate(0 29.80412060229753 12.62886466199052)"><text x="29.804120602297502" y="17.25772932398095" font-family="Virgil, Segoe UI Emoji" font-size="20.206183459184757px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">cancel</text></g><g transform="translate(123.5 664.626766204834) rotate(0 58 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">initial stock</text></g><g transform="translate(156.5 714.626766204834) rotate(0 39 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">address</text></g><g transform="translate(102.5 776.8802865147591) rotate(0 65 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">next restock</text></g><g transform="translate(260.3303338509263 774.2055955821155) rotate(0 71.39795918367349 18.45918367346934)"><path d="M-1.2484422978013754 0.4418428298085928 L142.99115605792986 0.31856212578713894 L144.1082922383307 38.517493602078446 L-0.5765381511300802 38.84527414683629" stroke="none" stroke-width="0" fill="#fff"></path><path d="M-0.15676417388021946 0.8365626279264688 C38.09583842169913 -1.990887723892205, 73.31777657330875 -1.9641484245948722, 142.08395975596295 1.0458698812872171 M0.20124074537307024 0.09201990347355604 C51.19247709035457 0.3875205088446718, 101.8129525176725 0.740816222507773, 141.94683207991557 -0.24418060202151537 M141.52414387232648 -1.826649134978652 C144.44298352779083 6.142032914108836, 141.94406767667465 16.942557385681674, 143.48326790100919 35.967706754993685 M143.16560949805216 -0.6394297303631902 C143.0188989069756 7.62597010543341, 143.3161583271321 17.242157104010772, 143.32505743625597 36.99036265276749 M144.40295946366177 38.39912755806375 C111.93738102340238 36.09874949749803, 78.74960981886076 34.246395626629344, -1.75063213147223 36.154749050926455 M142.44311921718554 36.950589903820344 C103.79005482565348 36.60013501875156, 65.4684389891141 37.47296388976329, -0.16323322337120771 37.48744199537117 M1.0025707837194204 36.01266826708246 C1.201585615141393 27.876006428119986, 0.20987572715997826 14.70216845695536, 1.487218951806426 1.5460226479917765 M-0.8892952827736735 37.74577257894356 C-0.2542080628432866 26.256092076693463, -0.02051866526981555 15.492137702067879, -0.3287605373188853 0.40010308008641005" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(414.4782930345996 773.1647792555849) rotate(0 17.75 17.750000000000057)"><path d="M0.31856212578713894 1.3123738709837198 L37.09912625513971 -0.5765381511300802 L37.42690679989755 37.21813785471022 L0.232384717091918 36.942678743973374" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M-1.9333232101053 0.5553250070661306 C8.465159680554645 -1.016302354731597, 21.789357064012442 0.8806958719110116, 34.547268146649 -1.3192931059747934 M-0.5544278444722295 -0.786480518989265 C11.163272515265273 -0.8110162904998288, 22.484628690127288 -0.803770183636807, 35.032643782906234 0.2480446668341756 M33.674459213390946 -0.679310405626893 C36.183179762787184 9.079949805000798, 34.225109186596235 15.447766763065012, 36.23402434028685 35.588929986581206 M34.51925348024815 0.38474505860358477 C35.30172629936133 12.491542582912372, 35.34499775154982 23.21021468760446, 35.413136440329254 34.509111133404076 M36.09533100761473 36.72306857071817 C20.740479190787298 34.06463470930699, 7.731385812070219 35.19650003189687, -0.4926315601915121 35.68195799551904 M35.051853376440704 35.014334169216454 C26.527119230525567 35.12910712399986, 17.273948614578693 35.09469482937362, -0.546799254603684 34.95318102557212 M1.3034743014723063 35.50800636969507 C-1.3637668627267703 24.557655810704453, 1.7067842346662656 10.700114928837866, -0.3675018008798361 0.32056972943246365 M0.5225893734022975 35.41164350230247 C0.6497707850625739 27.678237716527654, 0.10637422272469854 19.88977535879239, 0.2209214149042964 0.09761884529143572" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(415.4782930345996 774.1647792555849) rotate(0 17.5 4.5)"><path d="M1.3123738709837198 1.5991262551397085 L34.42346184886992 1.9269067998975515 L36.71813785471022 9.232384717091918 L1.4426787439733744 8.545650338754058" stroke="none" stroke-width="0" fill="#000"></path><path d="M0.5553250070661306 -1.9065839108079672 C11.252025987487286 1.3842014430556446, 25.113008813001215 -0.6144002915825695, 33.68070689402521 0.4024814907461405 M-0.786480518989265 -0.20113213080912828 C9.972983374726027 -0.05013085645623505, 20.802299143746495 -0.2733064715284854, 35.248044666834176 -0.6358872475102544 M34.694310317467895 0.4533344929106534 C35.39118953519501 1.4502106228843332, 34.48003704422154 4.086326731648296, 35.04001849396154 9.33272201763466 M35.17313527637161 0.012925734138116263 C35.24598628846929 2.1569111302960664, 34.686307154279206 4.2099378834944226, 34.55410001003183 9.361584246670827 M36.22306857071817 7.742977136746049 C20.15803749905899 8.340564630320296, 8.198572452180084 8.611551366141066, 0.18195799551904202 8.29440169967711 M34.514334169216454 9.424682247452438 C24.22398782754317 9.41222333018668, 13.576796583831307 8.296349427150563, -0.5468189744278789 9.50128539185971 M0.003602866362780288 8.313962197769433 C0.6242612967174501 7.4032747775316246, -0.018328686626627982 4.249753361474722, 0.14425637824460857 -0.8003657544963062 M-0.03976042396388946 9.424574839090928 C-0.11895811121910813 5.735381677234545, -0.25191538643091915 2.210085219098255, 0.04392848038114605 0.07167647830210627" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(422.9782930345996 765.6647792555849) rotate(0 3 7)"><path d="M1.5991262551397085 -0.5765381511300802 L7.9269067998975515 1.7181378547102213 L6.232384717091918 15.442678743973374 L-0.4543496612459421 14.087501997128129" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M-0.5719751732423901 -0.21358758341521022 C2.628144755959511 0.3388521343655884, 4.342948027141393 -0.4124476820044219, 6.120744447223842 0.0552119420841336 M-0.060339639242738496 -0.25472588622942566 C1.6624021626077594 -0.20536322303116322, 3.3311058213002984 0.12160223118960856, 5.809233825746924 -0.27399737024679777 M6.705186988972127 0.48114467356353985 C5.2067497305758295 4.537520166113974, 6.386029183138162 11.00969861429185, 6.517567582987249 13.104798377491534 M6.020106697548181 0.37039734823629256 C5.913092201314867 3.8222652555443353, 5.80189099546522 7.951337581034751, 6.562464383710176 14.518266073893756 M5.622893141023814 13.474810360558331 C3.438069146499038 13.851062014456838, 1.1865198025479913 14.091279455777258, -0.2116794900968671 14.019333534128965 M6.1274046742357315 13.951030032988637 C4.72169645531103 13.911566394753754, 2.937908345181495 13.806814357824624, 0.15038561755791308 13.86414513802156 M-1.0671699145808815 15.041053266264498 C0.9909726524911819 9.141667467355727, -0.34849446171894666 4.424796049855648, -1.2450133958831429 1.1583673248067496 M0.6604497496969997 13.769867623876781 C0.20690964378416532 9.813909449148923, 0.08148247815668586 6.570061698462814, 0.11149674402549858 0.4593308548443018" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(437.9782930345996 765.6647792555849) rotate(0 3 7)"><path d="M-0.5765381511300802 1.9269067998975515 L7.718137854710221 0.232384717091918 L7.442678743973374 13.545650338754058 L0.087501997128129 13.808903371915221" stroke="none" stroke-width="0" fill="#868e96"></path><path d="M-0.21358758341521022 0.3137609643861651 C1.5755149215459823 -0.22862203868106007, 2.0442181421443824 0.17794196454808114, 6.055211942084133 -0.06434365678578613 M-0.25472588622942566 -0.07325418060645461 C1.2147912391461433 -0.12813893727958203, 3.0090999866835775 -0.17869824640452858, 5.726002629753202 0.27294081682339305 M6.48114467356354 -0.6654624143615364 C5.016244625877589 3.4359384875744583, 6.014699262212962 6.361810481734574, 5.104798377491534 14.122479893825949 M6.370397348236293 0.05039671408012514 C5.553649669922889 2.766150380577892, 5.360242101587355 6.216374128405005, 6.518266073893756 14.621652925480157 M5.474810360558331 13.770914511196315 C3.8357706550508737 13.814499846044928, 2.097388794086873 13.750609824005515, 0.01933353412896399 13.6490259392187 M5.951030032988638 14.17072239452973 C4.409594318736345 13.86144115846604, 2.7737302559427914 14.175866552405058, -0.13585486197844146 14.149957438651473 M1.0410532662644982 15.082215853594244 C0.04090840185061101 8.6303167283535, 0.22383836472406987 2.5301225820556277, 1.1583673248067496 -0.4508642533794045 M-0.23013237612321974 14.280072156060488 C-0.4245848945528269 9.223019867669791, 0.08070310138165948 4.248246498499065, 0.4593308548443018 0.559694189298898" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(431.4782930345996 782.1647792555849) rotate(0 0.5468580335904107 12.372694713063595)"><path d="M1.0458698812872171 1.1850396152585745 C-1.0414710963563993 7.368292424916289, 0.4776253729173913 17.55743097220082, 0.2855211440473795 25.39114431105554 M-0.24418060202151537 -0.841840180568397 C-0.409980257707648 6.118116722949781, -0.4678353140735999 10.822574113304727, 1.4098027227446437 25.587229606695473" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(421.9782930345996 781.1647792555849) rotate(0 0.17159971734508872 13.353806471917835)"><path d="M1.1850396152585745 -0.952731853350997 C-1.3166319093387575 6.130649340911768, 0.2890364058129489 11.244471519081854, -0.608855688944459 26.42703896202147 M-0.841840180568397 -0.46735621709376574 C0.15024389981292186 7.202163689234295, -0.8711819410510362 16.584683693223635, -0.4127703933045268 27.660344797186553" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(441.4782930345996 782.6647792555849) rotate(0 0.12265311462903128 12.342205943074134)"><path d="M-0.952731853350997 -1.3192931059747934 C0.9324330047564582 6.91740478031803, 0.7120757622038947 12.366762054911815, -0.07296103797852993 25.097735738381743 M-0.46735621709376574 0.2480446668341756 C-0.3755162441404536 4.584133002269082, 1.4928107829997317 10.069517143503765, 1.1603447971865535 26.003704992122948" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(450.4782930345996 790.664779255585) rotate(0 -17.07710979739204 -0.6478455420583487)"><path d="M-1.3192931059747934 0.4024814907461405 C-11.793938991241157 -0.37644327102229, -25.064813285320998 -1.7349254530481995, -34.40226426161826 -1.6981725748628378 M0.2480446668341756 -0.6358872475102544 C-10.283110520616175 0.7509016089327634, -19.652342299558224 -0.49855631662532685, -33.49629500787705 0.3436747668311" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g><g transform="translate(449.9782930345996 799.664779255585) rotate(0 -18.64784554205835 -0.14958731250055735)"><path d="M0.4024814907461405 0.18403980694711208 C-13.15231382268481 -0.987076467256993, -27.443867312176152 0.07876694083213809, -37.69817257486284 0.5116387959569693 M-0.6358872475102544 -0.913324567489326 C-6.864246189380065 -0.6076583313010633, -15.883079464891926 1.024633036069572, -35.6563252331689 0.5246697040274739" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(305.2282930345998 779.1647792555849) rotate(0 24.5 12.500000000000057)"><text x="24.5" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">never</text></g><g transform="translate(106.5 704.0493012070656) rotate(0 253.5 23)"><path d="M0.5629302881658077 0.4079400517046452 C178.50822254782543 -1.1284281096719204, 355.5737197330222 -2.2864198289178312, 506.6874665878713 0.09966313615441323 M-0.2259759318083525 -0.08420432098209858 C129.41039337413386 0.7642480915002526, 258.3802698364481 0.5654349987916649, 506.7991286981851 -0.2586099077016115 M508.3695134278387 -0.21732479892671108 C508.4300949931331 12.72659373227507, 507.36687479021026 21.997349803149703, 507.16306815110147 45.46272181905806 M506.3117071958259 -0.5819502891972661 C507.6103150845505 16.157887718826533, 507.20355114350093 31.459023143537344, 507.2516631754115 46.03314028959721 M506.64354089722036 45.7626497246325 C369.818456978444 48.33715922125801, 231.92759165707972 47.7881747651957, -0.6082854129374028 46.65483209863305 M506.6009722579271 46.131862397119406 C367.88999762414016 46.32800570898131, 227.92310143578794 46.39965236358717, -0.14168663136661053 45.84461730234325 M-1.4572384003549814 47.64517646469176 C-1.7741691346652806 29.45925877224654, -1.134138452578336 10.879597564786671, 1.1999752279371023 0.004227751865983009 M0.8556497069075704 45.06700213532895 C-0.7358073994703591 31.075472213700415, 0.6821643009595573 18.00845992360264, -0.5133905140683055 0.1264954088255763" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(554.5 704.0493012070656) rotate(0 29.5 23)"><path d="M1.4399882908910513 1.6747896019369364 C14.44411287708208 -1.0540664759930225, 31.312409445084633 0.08672654950059944, 60.182067489251494 -0.42022634111344814 M-0.48541111033409834 0.7202930627390742 C14.766581410449 -0.5222067131567746, 31.2936565194279 0.18298242549411958, 59.47826847154647 0.4973900197073817 M60.33726320229471 -0.9679620321840048 C58.955062397141006 13.081898241676392, 58.25716239990666 24.31388169974089, 59.377169167622924 44.33289032615721 M59.064271536655724 0.45134590845555067 C59.916039326880124 10.913379285484552, 59.75225920388475 22.46561022568494, 58.51735865790397 46.419775682501495 M60.8746652957052 45.96848898567259 C34.37920422675088 44.180458812033756, 11.529043069295582 44.72450730017386, 1.3988604303449392 46.39183318056166 M58.09078085143119 45.082479435019195 C47.03540408024564 45.42535781544633, 34.06474124491214 45.20714798253961, 0.516704467125237 45.84133260231465 M0.3895358797162771 45.28644978441298 C0.20722997648641467 28.793598146550355, 0.8689529345743359 8.578694888204332, -1.6127830389887094 1.3499249760061502 M-0.4392999140545726 46.55384867172688 C0.6603878494910895 36.177095426991585, 0.2929620203189552 26.439306835271417, -0.4428530363366008 -0.9589170040562749" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(582.5 715.0493012070656) rotate(0 0 10)"><path d="M0 0 C0 5.064523076638579, 0 10.129046153277159, 0 20 M0 0 C0 7.689090663567186, 0 15.378181327134373, 0 20" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(582.5 715.0493012070656) rotate(0 0 10)"><path d="M-3.420201433256687 10.603073792140915 C-2.5541169789826452 12.982621273599525, -1.6880325247086034 15.362168755058136, 0 20 M-3.420201433256687 10.603073792140915 C-2.105289487858032 14.21576467069487, -0.7903775424593769 17.828455549248822, 0 20" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(582.5 715.0493012070656) rotate(0 0 10)"><path d="M3.420201433256687 10.603073792140915 C2.5541169789826452 12.982621273599525, 1.6880325247086034 15.362168755058136, 0 20 M3.420201433256687 10.603073792140915 C2.105289487858032 14.21576467069487, 0.7903775424593769 17.828455549248822, 0 20" stroke="#000000" stroke-width="1" fill="none"></path></g></g><g transform="translate(267.6680999904363 658.2573492283382) rotate(0 80.83190000956358 18.04547312311763)"><path d="M-0.829492712393403 -0.44271994195878506 C54.746856633182375 1.4969847018818763, 105.04351809728843 0.04768030000733403, 160.77218537899557 0.8697062078863382 M0.5018613012507558 -0.6531273247674108 C62.22906895276217 2.285433518406294, 123.10846490536001 1.1509210045303326, 162.04238201706562 0.5316224871203303 M163.5285316047341 0.4583688322454691 C163.5269597907669 10.74216141937428, 160.4010602970726 23.091194866488443, 160.57545470568243 36.574320955498735 M162.59721900551472 -0.9321080865338445 C161.531706711279 12.293581176044928, 160.33313178084956 24.47992088265446, 161.03478889196072 35.0948267945262 M163.27224587771002 37.3809858991938 C107.52870321908571 37.87890955959048, 55.126444358679194 37.529027612549925, -0.41045173443853855 35.17527316354088 M162.32094149320278 36.967041350266555 C116.832307267202 33.801135904600976, 71.5418208149439 34.93127373557365, 0.39777856785804033 35.260195321700195 M0.33078829012811184 35.572499020321885 C-2.196946777226705 23.47997957872268, 1.2370940672137554 10.271182442421328, 1.0614386554807425 0.7053387109190226 M-0.2031614212319255 35.28598195996008 C-0.18581865251117824 26.505558448482716, -0.45870579302364467 16.216974345879862, 0.6032687099650502 0.38389872293919325" stroke="#495057" stroke-width="1" fill="none"></path></g><g transform="translate(275.5 178.73944228887558) rotate(0 109.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">encryption for dummies</text></g><g transform="translate(265.5 240.73944228887558) rotate(0 122.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">this book is super helpful</text></g><g transform="translate(274.5 346.7394422888756) rotate(0 21.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">book</text></g><g transform="translate(272.5 401.7394422888756) rotate(0 39.5 12.5)"><text x="0" y="18" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="start" style="white-space: pre;" direction="ltr">USD:50</text></g><g transform="translate(290.2490921715098 113.97611421662066) rotate(0 18.11940870098084 18.11940870098084)"><path d="M15.529050934765962 -0.5282170842635914 C19.07624828201676 -1.5820770155597434, 24.375426200305114 0.02964719030363483, 27.671172948214775 1.9640840708665408 C30.966919696124435 3.8985209514294468, 33.955327480713294 7.325436096973954, 35.30353142222393 11.078404199113844 C36.65173536373456 14.831372301253735, 37.199645509770875 20.742272595051997, 35.76039659727856 24.48189268370588 C34.32114768478624 28.221512772359763, 30.289897201382818 31.710277369648427, 26.668037947270005 33.516124731037145 C23.04617869315719 35.32197209242586, 17.879630748278945 36.02071436451537, 14.029241072601687 35.31697685203818 C10.17885139692443 34.61323933956099, 5.880946084717337 32.01364727553025, 3.5656998932064603 29.29369965617399 C1.2504537016955832 26.573752036817734, -0.016742131393761156 22.685918108453876, 0.13776392353642564 18.997291135900625 C0.2922699784666124 15.308664163347373, 1.2187921430691486 10.255732073163527, 4.492736222787581 7.161937820854481 C7.766680302506014 4.068143568545436, 16.3603938861254 1.410592891648276, 19.78142840184702 0.4345256220463476 C23.20246291756864 -0.5415416475555809, 25.110597092356834 1.1076210650252782, 25.018943317117284 1.3055342032429103 M9.573971158075786 0.4212871699390597 C12.991412307122248 -1.3274935252242528, 18.784811694434897 0.21957720762009747, 22.616423268628232 1.5749708075612396 C26.448034842821567 2.930364407502382, 30.28018102205941 5.475485834577265, 32.563640603235804 8.553648769585912 C34.8471001844122 11.63181170459456, 36.739798004457086 16.32984069047279, 36.3171807556866 20.043948417613127 C35.894563506916114 23.758056144753464, 32.85594001975392 27.910329891526946, 30.027937110612868 30.83829513242794 C27.199934201471812 33.76626037332893, 22.96308715888016 37.08549532903101, 19.349163300840278 37.611739863019096 C15.735239442800394 38.13798439700718, 11.467181915690713 36.295962513224865, 8.344393962373568 33.995762336356464 C5.221606009056423 31.695562159488063, 1.70451817694462 27.819018768229707, 0.6124355809374045 23.81053880180869 C-0.4796470150698111 19.802058835387673, 0.28328692759823326 13.706674029897432, 1.7918983863302742 9.944882537830361 C3.300509845062315 6.183091045763291, 8.23995987244655 2.8026369839835716, 9.66410433332965 1.2397898494062645 C11.08824879421275 -0.3230572851710425, 10.064780872803812 0.01663509966515131, 10.336765151628876 0.5677997303665201" stroke="#000000" stroke-width="1" fill="none"></path></g><g transform="translate(302.36086585001294 120.04108375079363) rotate(0 5.990604969499316 5.990604969499344)"><path d="M1.9139877090897341 2.9888171252037794 C1.9139877090897341 2.9888171252037794, 1.9139877090897341 2.9888171252037794, 1.9139877090897341 2.9888171252037794 M1.9139877090897341 2.9888171252037794 C1.9139877090897341 2.9888171252037794, 1.9139877090897341 2.9888171252037794, 1.9139877090897341 2.9888171252037794 M2.6290988267460893 9.297715802371368 C2.9369324372754235 7.1934146553686595, 5.382877532495877 4.136977481785139, 8.278887437755213 2.442778013725877 M1.2058348108144532 8.920402766365424 C4.0629727991046725 6.609082503483174, 5.893114928914966 4.053071735802171, 8.397944075619773 1.4257443738962707 M5.130962842797267 12.8353809720746 C5.943958505920536 9.969429164115361, 8.93419785494889 5.9967178269889985, 13.000098595563879 4.126126997159972 M4.512106479239988 12.819855698654683 C5.934745721280551 10.495247903096752, 9.040229097594265 7.3383385801984655, 12.243826065939476 3.294849497625782" stroke="#ced4da" stroke-width="0.5" fill="none"></path><path d="M7.3223059592474975 0.8281240580528717 C8.291737859031931 1.1292617952771988, 10.115551669517158 2.0490142411433445, 10.724146151131265 3.201956420449302 C11.332740632745372 4.354898599755259, 11.11348433729309 6.583849244896731, 10.973872848932142 7.745777133888617 C10.834261360571196 8.907705022880503, 10.784792662765929 9.61488717761481, 9.886477220965585 10.17352375440062 C8.98816177916524 10.73216033118643, 6.991282727537589 11.14427187028105, 5.583980198130081 11.097596594603475 C4.176677668722572 11.0509213189259, 2.431295264049098 10.561585564081879, 1.4426620445205343 9.893472100335167 C0.4540288249919704 9.225358636588455, -0.40453584397095826 8.214570410826415, -0.34781911904130247 7.088915812123206 C-0.2911023941116467 5.963261213419997, 0.9325970769066972 4.3644269496261465, 1.782962394098469 3.139544508115913 C2.6333277112902405 1.9146620666056795, 3.527287492976712 0.20078048067059973, 4.754372784109328 -0.26037883693819364 C5.981458075241943 -0.721538154546987, 8.46134214162148 0.27255086400701867, 9.145474140894164 0.3725886024631526 C9.829606140166849 0.47262634091928657, 9.008580845699958 0.33097080514823024, 8.859164779745434 0.33984759379861007 M2.211590966122506 0.045478273518425816 C3.2158286286151974 -0.46141616987596656, 6.726360046266491 -0.8888717239577764, 8.241371865802845 -0.46020986997673763 C9.7563836853392 -0.03154801599569884, 10.689799586375685 1.5831474794088418, 11.301661883340635 2.6174493974046587 C11.913524180305586 3.6517513154004755, 12.136647937715754 4.48667715639414, 11.912545647592552 5.745601637998163 C11.68844335746935 7.004526119602187, 10.596470062777188 8.980303277612968, 9.957048142601419 10.1709962870288 C9.31762622242565 11.36168929644463, 9.077113797679996 12.738374933295052, 8.076014126537942 12.889759694493153 C7.074914455395888 13.041144455691253, 5.023290213680568 11.959680690147966, 3.9504501157490948 11.079304854217405 C2.877610017817622 10.198929018286844, 2.23968456388857 9.048712360438103, 1.6389735389491031 7.607504678909786 C1.0382625140096362 6.166296997381469, 0.11433061500552602 3.7019230724009438, 0.3461839661122932 2.4320587650475027 C0.5780373172190604 1.1621944576940617, 2.7411707439423108 0.3150458451420144, 3.030093645589706 -0.011681165210860378 C3.3190165472371014 -0.33840817556373515, 1.7605418707563787 0.43846308750090196, 2.0797213759966655 0.4716967029302541" stroke="#000000" stroke-width="1" fill="none"></path></g><g><g transform="translate(336.2267990124901 132.28494255001533) rotate(0 -26.459536574296465 9.675028046740096)" fill-rule="evenodd"><path d="M-38.002005605955034 5.39073732344092 C-38.002005605955034 5.39073732344092, -38.002005605955034 5.39073732344092, -38.002005605955034 5.39073732344092 M-38.002005605955034 5.39073732344092 C-38.002005605955034 5.39073732344092, -38.002005605955034 5.39073732344092, -38.002005605955034 5.39073732344092 M-36.85234713057184 12.73514083300665 C-34.416488358601875 8.948001676784122, -31.743577335640182 5.839490766558796, -28.574804341478583 -0.6983565613167946 M-38.395080201245264 12.467086356300339 C-35.941977359603214 8.506098662047435, -32.333836058244145 5.528608352989377, -28.49425260286064 1.1146182653488008 M-36.115497775139744 16.410319221080478 C-35.3153388067313 13.470206095160341, -30.28030796906645 11.276105172079921, -26.58861738721626 1.431663036486515 M-36.77932683378131 16.217829533959936 C-31.761383160635848 10.915173714946373, -27.168160472988728 5.955564963183877, -23.81994010064537 2.252963100001597 M-35.17626797880219 18.67136863224793 C-29.383278539185884 16.17880516406502, -25.67245596579773 10.177365258456371, -22.770227377408247 2.435376880179606 M-33.512980990597846 18.897576244190596 C-30.20295262636031 14.596643641812854, -25.973620853710155 9.264508746904037, -20.189557268249864 4.262216064428426 M-28.679278815181327 20.574640214303514 C-25.4644205411416 16.095946212425847, -23.87642607156017 14.027322875795162, -15.251437009590218 5.484674244740865 M-28.489461624917904 19.440231419866908 C-26.638041315725857 16.112852375167247, -23.990809793089706 13.020379154462539, -16.16885659508268 6.123862938111535 M-27.274285959156845 19.86444175421237 C-23.044248336128785 20.31662783406344, -21.791359952995972 14.733035594091003, -14.008188480626675 8.233966245125 M-24.914145598497857 22.19979112423933 C-20.665374116316528 16.554368862450275, -17.754591008938633 12.566166384657327, -13.805044443135964 6.39979995921715" stroke="#ced4da" stroke-width="0.5" fill="none"></path><path d="M-27.69134966678061 0.8701048459857701 C-29.50199250522194 1.7327851396781835, -35.42027326093009 3.787315661383423, -37.426325326407316 6.278847175900719 C-39.43237739188454 8.770378690418013, -41.2125901187801 13.67658962821385, -39.72766205964399 15.819293933089543 C-38.24273400050788 17.961998237965236, -32.23837560403203 19.101205152892323, -28.51675697159065 19.135073005154872 C-24.795138339149265 19.16894085741742, -19.658222407333174 18.405559639651116, -17.39795026499569 16.022501046664836 C-15.137678122658203 13.639442453678557, -13.24283236091576 7.683752138308268, -14.955124117565735 4.836721447237195 C-16.66741587421571 1.9896907561661208, -25.490297290511343 -0.1267851852289733, -27.67170080489554 -1.0596830997616051 M-25.706112750182676 0.28130594478920123 C-27.66490230438424 1.3038697763701417, -36.00029033760494 2.223007489757243, -37.93808498599938 4.468319007464579 C-39.875879634393826 6.713630525171915, -38.8923426861347 11.110410854814408, -37.33288064054934 13.753175051033217 C-35.773418594963985 16.395939247252027, -32.173946368517775 19.814832661417128, -28.58131271248726 20.324904184777434 C-24.988679056456743 20.83497570813774, -18.294758406456182 19.006345972977368, -15.77707870436623 16.813604191195044 C-13.25939900227628 14.62086240941272, -11.565736369486817 9.854354404742848, -13.475234499947561 7.1684534940834945 C-15.384732630408305 4.482552583424141, -25.178294226895932 2.1430985943005085, -27.23406748713069 0.6981987272389234" stroke="#000000" stroke-width="1" fill="none"></path></g></g></svg> \ No newline at end of file
diff --git a/core/api-auditor.rst b/core/api-auditor.rst
index fd3803ce..11294d0a 100644
--- a/core/api-auditor.rst
+++ b/core/api-auditor.rst
@@ -41,7 +41,7 @@ know-your-customer (KYC) registration before issuing contracts.
**Response:**
:http:statuscode:`200 OK`:
- The auditor responds with a `AuditorVersion`_ object. This request should
+ The auditor responds with an `AuditorVersion`_ object. This request should
virtually always be successful.
**Details:**
@@ -59,7 +59,7 @@ know-your-customer (KYC) registration before issuing contracts.
// Return which currency this auditor is auditing for.
currency: string;
- // EdDSA master public key of the auditor
+ // EdDSA master public key of the auditor.
auditor_public_key: EddsaPublicKey;
}
@@ -94,7 +94,7 @@ know-your-customer (KYC) registration before issuing contracts.
.. ts:def:: ExchangeList
interface ExchangeList {
- // Exchanges audited by this auditor
+ // Exchanges audited by this auditor.
exchanges: ExchangeEntry[];
}
@@ -102,10 +102,10 @@ know-your-customer (KYC) registration before issuing contracts.
interface ExchangeEntry {
- // Master public key of the exchange
+ // Master public key of the exchange.
master_pub: EddsaPublicKey;
- // Base URL of the exchange
+ // Base URL of the exchange.
exchange_url: string;
}
@@ -170,7 +170,7 @@ paid out first.
// How much time does the merchant have to issue a refund
// request? Zero if refunds are not allowed.
- refund_deadline : Timestamp;
+ refund_deadline: Timestamp;
// Amount to be deposited, excluding fee. Calculated from the
// amount with fee and the fee from the deposit request.
@@ -186,13 +186,13 @@ paid out first.
merchant_pub: EddsaPublicKey;
// Signature from the exchange of type
- // TALER_SIGNATURE_EXCHANGE_CONFIRM_DEPOSIT.
+ // ``TALER_SIGNATURE_EXCHANGE_CONFIRM_DEPOSIT``.
exchange_sig: EddsaSignature;
- // Public signing key from the exchange matching @e exchange_sig.
+ // Public signing key from the exchange matching ``exchange_sig``.
exchange_pub: EddsaPublicKey;
- // Master public key of the exchange corresponding to @e master_sig.
+ // Master public key of the exchange corresponding to ``master_sig``.
// Identifies the exchange this is about.
master_pub: EddsaPublicKey;
@@ -205,7 +205,7 @@ paid out first.
// When does the validity of the exchange_pub end?
ep_end: Timestamp;
- // Exchange master signature over @e exchange_sig.
+ // Exchange master signature over ``exchange_sig``.
master_sig: EddsaSignature;
}
@@ -229,4 +229,4 @@ misbehavior of an exchange to the auditor.
.. http:put:: /complain
-Complain about missbehavior to the auditor.
+Complain about misbehavior to the auditor.
diff --git a/core/api-bank-access.rst b/core/api-bank-access.rst
index 456211b7..fa08c2f4 100644
--- a/core/api-bank-access.rst
+++ b/core/api-bank-access.rst
@@ -62,7 +62,7 @@ name and account password, at least in the GNU Taler demo bank implementation.
.. ts:def:: BankAccountCreateWithdrawalRequest
interface BankAccountCreateWithdrawalRequest {
- // Amount to withdraw
+ // Amount to withdraw.
amount: Amount;
}
@@ -71,17 +71,17 @@ name and account password, at least in the GNU Taler demo bank implementation.
.. ts:def:: BankAccountCreateWithdrawalResponse
interface BankAccountCreateWithdrawalResponse {
- // ID of the withdrawal, can be used to view/modify the withdrawal operation
+ // ID of the withdrawal, can be used to view/modify the withdrawal operation.
withdrawal_id: string;
- // URI that can be passed to the wallet to initiate the withdrawal
+ // URI that can be passed to the wallet to initiate the withdrawal.
taler_withdraw_uri: string;
}
.. http:GET:: ${BANK_API_BASE_URL}/accounts/${account_name}/withdrawals/${withdrawal_id}
- Query the status of a withdrawal operation
+ Query the status of a withdrawal operation.
**Response**
@@ -90,7 +90,7 @@ name and account password, at least in the GNU Taler demo bank implementation.
.. ts:def:: BankAccountGetWithdrawalResponse
interface BankAccountGetWithdrawalResponse {
- // Amount that will be withdrawn with this withdrawal operation
+ // Amount that will be withdrawn with this withdrawal operation.
amount: Amount;
// Was the withdrawal aborted?
@@ -98,18 +98,18 @@ name and account password, at least in the GNU Taler demo bank implementation.
// Has the withdrawal been confirmed by the bank?
// The wire transfer for a withdrawal is only executed once
- // both confirmation_done is true and selection_done is true.
+ // both ``confirmation_done`` is ``true`` and ``selection_done`` is ``true``.
confirmation_done: boolean;
// Did the wallet select reserve details?
selection_done: boolean;
// Reserve public key selected by the exchange,
- // only non-null if selection_done is 'true'
+ // only non-null if ``selection_done`` is ``true``.
selected_reserve_pub: string | null;
// Exchange account selected by the exchange,
- // only non-null if selection_done is 'true'
+ // only non-null if ``selection_done`` is ``true``.
selected_exchange_account: string | null;
}
@@ -157,4 +157,4 @@ Registration (Testing)
**Response**
- :http:statuscode:`200 OK`: Registration was successful
+ :http:statuscode:`200 OK`: Registration was successful.
diff --git a/core/api-bank-integration.rst b/core/api-bank-integration.rst
index 07299d6a..2864fbfd 100644
--- a/core/api-bank-integration.rst
+++ b/core/api-bank-integration.rst
@@ -28,7 +28,7 @@ to tightly integrate with GNU Taler.
.. http:get:: /config
- Get a configuration information about the bank.
+ Get configuration information about the bank.
**Request:**
@@ -48,10 +48,10 @@ to tightly integrate with GNU Taler.
// The format is "current:revision:age".
version: string;
- // currency used by this bank
+ // Currency used by this bank.
currency: string;
- // name of the API
+ // Name of the API.
name: "taler-bank-integration";
}
@@ -61,8 +61,8 @@ Withdrawing
-----------
Withdrawals with a Taler-integrated bank are based on withdrawal operations.
-Some user interaction (on the Bank's website or a Taler-enabled ATM) creates a
-withdrawal operation record in the Bank's database. The wallet can use a unique identifier
+Some user interaction (on the bank's website or a Taler-enabled ATM) creates a
+withdrawal operation record in the bank's database. The wallet can use a unique identifier
for the withdrawal operation (the ``wopid``) to interact with the withdrawal operation.
.. http:get:: ${BANK_API_BASE_URL}/withdrawal-operation/${wopid}
@@ -87,7 +87,7 @@ for the withdrawal operation (the ``wopid``) to interact with the withdrawal ope
.. ts:def:: BankWithdrawalOperationStatus
export class BankWithdrawalOperationStatus {
- // has the wallet selected parameters for the withdrawal operation
+ // Has the wallet selected parameters for the withdrawal operation
// (exchange and reserve public key) and successfully sent it
// to the bank?
selection_done: boolean;
@@ -101,7 +101,7 @@ for the withdrawal operation (the ``wopid``) to interact with the withdrawal ope
amount: Amount;
// Bank account of the customer that is withdrawing, as a
- // payto URI.
+ // ``payto`` URI.
sender_wire?: string;
// Suggestion for an exchange given by the bank.
@@ -136,7 +136,7 @@ for the withdrawal operation (the ``wopid``) to interact with the withdrawal ope
// Reserve public key.
reserve_pub: string;
- // Exchange bank details specified in the 'payto'
+ // Exchange bank details specified in the ``payto``
// format. NOTE: this field is optional, therefore
// the bank will initiate the withdrawal with the
// default exchange, if not given.
@@ -154,7 +154,6 @@ for the withdrawal operation (the ``wopid``) to interact with the withdrawal ope
// URL that the user needs to navigate to in order to
// complete some final confirmation (e.g. 2FA).
//
- // Only applicable when 'transfer_done' is false.
+ // Only applicable when ``transfer_done`` is ``false``.
confirm_transfer_url?: string;
}
-
diff --git a/core/api-common.rst b/core/api-common.rst
index 5171a2c6..19f6bf55 100644
--- a/core/api-common.rst
+++ b/core/api-common.rst
@@ -43,7 +43,7 @@ handle the error as if an internal error (500) had been returned.
**Response:**
:resheader Content-Type: application/json
-
+
:http:statuscode:`200 Ok`:
The request was successful.
:http:statuscode:`301 Moved permanently`:
@@ -76,7 +76,7 @@ handle the error as if an internal error (500) had been returned.
server errors are always reported to the exchange operator, a good operator
should naturally be able to address them in a timely fashion, especially
within 24h. When generating an internal server error, the exchange responds with
- a JSON object containing the following fields:
+ a JSON object containing the following fields: FIXME: What are the fields?
:http:statuscode:`400 Bad request`:
One of the arguments to the request is missing or malformed.
@@ -100,22 +100,22 @@ handle the error as if an internal error (500) had been returned.
// Optional detail about the specific input value that failed. May change without notice!
detail?: string;
- // Name of the parameter that was bogus (if applicable)
+ // Name of the parameter that was bogus (if applicable).
parameter?: string;
- // Path to the argument that was bogus (if applicable)
+ // Path to the argument that was bogus (if applicable).
path?: string;
- // Offset of the argument that was bogus (if applicable)
+ // Offset of the argument that was bogus (if applicable).
offset?: string;
- // Index of the argument that was bogus (if applicable)
+ // Index of the argument that was bogus (if applicable).
index?: string;
- // Name of the object that was bogus (if applicable)
+ // Name of the object that was bogus (if applicable).
object?: string;
- // Name of the currency than was problematic (if applicable)
+ // Name of the currency than was problematic (if applicable).
currency?: string;
// Expected type (if applicable).
@@ -212,12 +212,12 @@ hashed data. See `base32`_.
.. ts:def:: HashCode
- // 64-byte hash code
+ // 64-byte hash code.
type HashCode = string;
.. ts:def:: ShortHashCode
- // 32-byte hash code
+ // 32-byte hash code.
type ShortHashCode = string;
@@ -230,13 +230,13 @@ the range that is safely representable in JavaScript.
.. ts:def:: SafeUint64
// Subset of numbers: Integers in the
- // inclusive range 0 .. (2^53 - 1)
+ // inclusive range 0 .. (2^53 - 1).
type SafeUint64 = number;
Large numbers
^^^^^^^^^^^^^
-Large numbers such as RSA blinding factors and 256 bit keys, are transmitted
+Large numbers such as RSA blinding factors and 256 bit keys, are transmitted
as other binary data in Crockford Base32 encoding.
Timestamps
@@ -248,7 +248,7 @@ Timestamps are represented by the following structure:
interface Timestamp {
// Milliseconds since epoch, or the special
- // value "forever" to represent an event that will
+ // value "never" to represent an event that will
// never happen.
t_ms: number | "never";
}
@@ -270,7 +270,7 @@ Integers
.. ts:def:: Integer
- // JavaScript numbers restricted to integers
+ // JavaScript numbers restricted to integers.
type Integer = number;
Objects
@@ -278,7 +278,7 @@ Objects
.. ts:def:: Object
- // JavaScript objects, no further restrictions
+ // JavaScript objects, no further restrictions.
type Object = object;
Keys
@@ -286,7 +286,7 @@ Keys
.. ts:def:: ClaimToken
- // 16-byte access token used to authorize access
+ // 16-byte access token used to authorize access.
type ClaimToken = string;
.. ts:def:: EddsaPublicKey
@@ -333,7 +333,7 @@ Blinded coin
.. ts:def:: CoinEnvelope
- // Blinded coin's `public EdDSA key <eddsa-coin-pub>`, `base32` encoded
+ // Blinded coin's `public EdDSA key <eddsa-coin-pub>`, `base32` encoded.
type CoinEnvelope = string;
.. ts:def:: DenominationBlindingKeyP
@@ -344,7 +344,7 @@ Blinded coin
type DenominationBlindingKeyP = string;
-
+
.. _signature:
Signatures
@@ -354,22 +354,22 @@ Signatures
.. ts:def:: EddsaSignature
// EdDSA signatures are transmitted as 64-bytes `base32`
- // binary-encoded objects with just the R and S values (base32_ binary-only)
+ // binary-encoded objects with just the R and S values (base32_ binary-only).
type EddsaSignature = string;
.. ts:def:: RsaSignature
- // `base32` encoded RSA signature
+ // `base32` encoded RSA signature.
type RsaSignature = string;
.. ts:def:: BlindedRsaSignature
- // `base32` encoded RSA blinded signature
+ // `base32` encoded RSA blinded signature.
type BlindedRsaSignature = string;
.. ts:def:: RsaBlindingKeySecret
- // `base32` encoded RSA blinding secret
+ // `base32` encoded RSA blinding secret.
type RsaBlindingKeySecret = string;
.. _amount:
@@ -381,43 +381,21 @@ Amounts
type Amount = string;
-Amounts of currency are serialized as a string of the format ``<Currency>:<DecimalAmount>``.
-Taler treats monetary amounts as fixed-precision numbers. Unlike floating point numbers,
+Amounts of currency are serialized as a string of the format
+``<Currency>:<DecimalAmount>``. Taler treats monetary amounts as
+fixed-precision numbers, with 8 decimal places. Unlike floating point numbers,
this allows accurate representation of monetary amounts.
The following constrains apply for a valid amount:
-1. The ``<Currency>`` part must be at most 12 characters long and may not contain a colon (``:``).
-2. The integer part of ``<DecimalAmount>`` may be at most 2^52
-3. the fractional part of ``<DecimalAmount>`` may contain at most 8 decimal digits.
-
-Internally, amounts are parsed into the following object:
+1. The ``<Currency>`` part must be at most 11 characters long and may only consist
+ of ASCII letters (``a-zA-Z``).
+2. The integer part of ``<DecimalAmount>`` may be at most 2^52.
+3. The fractional part of ``<DecimalAmount>`` may contain at most 8 decimal digits.
.. note::
- "EUR:1.50" and "EUR:10" are is a valid amounts. These are all invalid amounts: "A:B:1.5", "EUR:4503599627370501.0", "EUR:1.", "EUR:.1"
-
-.. ts:def:: ParsedAmount
-
- interface ParsedAmount {
- // Name of the currency using either a three-character ISO 4217 currency
- // code, or a regional currency identifier starting with a "*" followed by
- // at most 10 characters. ISO 4217 exponents in the name are not supported,
- // although the "fraction" is corresponds to an ISO 4217 exponent of 6.
- currency: string;
-
- // Non-negative integer value in the currency, can be at most 2^52.
- // Note that "1" here would correspond to 1 EUR or 1 USD,
- // depending on `currency`, not 1 cent.
- value: number;
-
- // Unsigned 32 bit fractional value to be added to ``value`` representing
- // an additional currency fraction, in units of one hundred millionth (1e-8)
- // of the base currency value. For example, a fraction
- // of 50,000,000 would correspond to 50 cents.
- fraction: number;
- }
-
+ "EUR:1.50" and "EUR:10" are valid amounts. These are all invalid amounts: "A:B:1.5", "EUR:4503599627370501.0", "EUR:1.", "EUR:.1".
An amount that is prefixed with a ``+`` or ``-`` character is also used in certain contexts.
When no sign is present, the amount is assumed to be positive.
@@ -471,14 +449,25 @@ value and the denomination of the currency:
.. sourcecode:: c
- struct TALER_Amount {
+ struct TALER_AmountNBO {
+ // Non-negative integer value in the currency (in network byte order),
+ // can be at most 2^52.
+ // Note that "1" here would correspond to 1 EUR or 1 USD,
+ // depending on `currency`, not 1 cent.
uint64_t value;
+
+ // Unsigned 32 bit fractional value (in network byte order)
+ // to be added to ``value`` representing
+ // an additional currency fraction, in units of one hundred millionth (1e-8)
+ // of the base currency value. For example, a fraction
+ // of 50,000,000 would correspond to 50 cents.
uint32_t fraction;
- uint8_t currency_code[12]; // i.e. "EUR" or "USD"
- };
- struct TALER_AmountNBO {
- uint64_t value; // in network byte order
- uint32_t fraction; // in network byte order
+
+ // Name of the currency, using either a three-character ISO 4217 currency
+ // code, or a regional currency identifier between 4 and 11 characters,
+ // consisting of ASCII alphabetic characters ("a-zA-Z").
+ // Should be padded to 12 bytes with 0-characters.
+ // Currency codes are compared case-insensitively.
uint8_t currency_code[12];
};
@@ -644,25 +633,24 @@ Any piece of signed data, complies to the abstract data structure given below.
struct GNUNET_CRYPTO_EccSignaturePurpose {
/**
- The following constrains apply for a valid amount:
+ The following constraints apply for a valid amount:
- * asd
* This field is used to express the context in
* which the signature is made, ensuring that a
* signature cannot be lifted from one part of the protocol
* to another. See `src/include/taler_signatures.h` within the
- * exchange's codebase (git://taler.net/exchange)
+ * exchange's codebase (git://taler.net/exchange).
*/
uint32_t purpose;
/**
* This field equals the number of bytes being signed,
- * namely 'sizeof (struct Data)'
+ * namely 'sizeof (struct Data)'.
*/
uint32_t size;
};
-The following list contains all the data structure that can be signed in
+The following list contains all the data structures that can be signed in
Taler. Their definition is typically found in ``src/include/taler_signatures.h``,
within the
`exchange's codebase <https://docs.taler.net/global-licensing.html#exchange-repo>`_.
diff --git a/core/api-error.rst b/core/api-error.rst
index eb66d37d..8f87481c 100644
--- a/core/api-error.rst
+++ b/core/api-error.rst
@@ -13,7 +13,7 @@
@author Marcello Stanisci
..
- The reason to have a dedicate page for error codes was due to a buggy
+ The reason to have a dedicated page for error codes was due to a buggy
behaviour in pages cross-linking: was not possible from other pages to
reference the '_error-codes' label (see just below) if we kept in api-common.rst
(which is the best place to place this error codes list).
@@ -23,7 +23,7 @@ Error Codes
-----------
The following list shows error codes defined in
-`<EXCHANGE-REPO>/src/include/taler_error_codes.h <https://git.taler.net/exchange.git/tree/src/include/taler_error_codes.h>`_
+`<EXCHANGE-REPO>/src/include/taler_error_codes.h <https://git.taler.net/exchange.git/tree/src/include/taler_error_codes.h>`_.
.. _error-codes:
.. _TALER_ErrorCode:
@@ -33,30 +33,30 @@ The following list shows error codes defined in
* Enumeration with all possible Taler error codes.
*/
enum TALER_ErrorCode {
-
+
/**
* Special code to indicate no error (or no "code" present).
*/
TALER_EC_NONE = 0,
-
+
/**
* Special code to indicate that a non-integer error code was
* returned in the JSON response.
*/
TALER_EC_INVALID = 1,
-
+
/**
* The response we got from the server was not even in JSON format.
*/
TALER_EC_INVALID_RESPONSE = 2,
-
+
/**
* Generic implementation error: this function was not yet implemented.
*/
TALER_EC_NOT_IMPLEMENTED = 3,
-
+
/* ********** generic error codes ************* */
-
+
/**
* The exchange failed to even just initialize its connection to the
* database.
@@ -64,7 +64,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DB_SETUP_FAILED = 1001,
-
+
/**
* The exchange encountered an error event to just start
* the database transaction.
@@ -72,7 +72,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DB_START_FAILED = 1002,
-
+
/**
* The exchange encountered an error event to commit
* the database transaction (hard, unrecoverable error).
@@ -80,7 +80,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DB_COMMIT_FAILED_HARD = 1003,
-
+
/**
* The exchange encountered an error event to commit
* the database transaction, even after repeatedly
@@ -92,14 +92,14 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DB_COMMIT_FAILED_ON_RETRY = 1004,
-
- /**
+
+ /**
* The exchange had insufficient memory to parse the request. This
* response is provided with HTTP status code
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_PARSER_OUT_OF_MEMORY = 1005,
-
+
/**
* The JSON in the client's request to the exchange was malformed.
* (Generic parse error).
@@ -107,7 +107,7 @@ The following list shows error codes defined in
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_JSON_INVALID = 1006,
-
+
/**
* The JSON in the client's request to the exchange was malformed.
* Details about the location of the parse error are provided.
@@ -115,39 +115,39 @@ The following list shows error codes defined in
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_JSON_INVALID_WITH_DETAILS = 1007,
-
+
/**
* A required parameter in the request to the exchange was missing.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PARAMETER_MISSING = 1008,
-
+
/**
* A parameter in the request to the exchange was malformed.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PARAMETER_MALFORMED = 1009,
-
+
/* ********** request-specific error codes ************* */
-
+
/**
* The given reserve does not have sufficient funds to admit the
* requested withdraw operation at this time. The response includes
* the current "balance" of the reserve as well as the transaction
- * "history" that lead to this balance. This response is provided
+ * "history" that led to this balance. This response is provided
* with HTTP status code MHD_HTTP_FORBIDDEN.
*/
TALER_EC_WITHDRAW_INSUFFICIENT_FUNDS = 1100,
-
+
/**
* The exchange has no information about the "reserve_pub" that
* was given.
* This response is provided with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_WITHDRAW_RESERVE_UNKNOWN = 1101,
-
+
/**
* The amount to withdraw together with the fee exceeds the
* numeric range for Taler amounts. This is not a client
@@ -156,7 +156,7 @@ The following list shows error codes defined in
* This response is provided with HTTP status code MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_WITHDRAW_AMOUNT_FEE_OVERFLOW = 1102,
-
+
/**
* All of the deposited amounts into this reserve total up to a
* value that is too big for the numeric range for Taler amounts.
@@ -165,7 +165,7 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_WITHDRAW_AMOUNT_DEPOSITS_OVERFLOW = 1103,
-
+
/**
* For one of the historic withdrawals from this reserve, the
* exchange could not find the denomination key.
@@ -174,7 +174,7 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_WITHDRAW_HISTORIC_DENOMINATION_KEY_NOT_FOUND = 1104,
-
+
/**
* All of the withdrawals from reserve total up to a
* value that is too big for the numeric range for Taler amounts.
@@ -183,38 +183,38 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_WITHDRAW_AMOUNT_WITHDRAWALS_OVERFLOW = 1105,
-
+
/**
- * The exchange somehow knows about this reserve, but there seem to
+ * The exchange somehow knows about this reserve, but there seems to
* have been no wire transfers made. This is not a client failure,
* as this is a database consistency issue of the exchange. This
* response is provided with HTTP status code
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_WITHDRAW_RESERVE_WITHOUT_WIRE_TRANSFER = 1106,
-
+
/**
* The exchange failed to create the signature using the
* denomination key. This response is provided with HTTP status
* code MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_WITHDRAW_SIGNATURE_FAILED = 1107,
-
+
/**
* The exchange failed to store the withdraw operation in its
* database. This response is provided with HTTP status code
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_WITHDRAW_DB_STORE_ERROR = 1108,
-
+
/**
* The exchange failed to check against historic withdraw data from
- * database (as part of ensuring the idempotency of the operation).
+ * the database (as part of ensuring the idempotency of the operation).
* This response is provided with HTTP status code
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_WITHDRAW_DB_FETCH_ERROR = 1109,
-
+
/**
* The exchange is not aware of the denomination key
* the wallet requested for the withdrawal.
@@ -222,22 +222,22 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_WITHDRAW_DENOMINATION_KEY_NOT_FOUND = 1110,
-
+
/**
* The signature of the reserve is not valid. This response is
* provided with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_WITHDRAW_RESERVE_SIGNATURE_INVALID = 1111,
-
+
/**
* The exchange failed to obtain the transaction history of the
* given reserve from the database while generating an insufficient
- * funds errors.
+ * funds error.
* This response is provided with HTTP status code
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_WITHDRAW_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1112,
-
+
/**
* When computing the reserve history, we ended up with a negative
* overall balance, which should be impossible.
@@ -245,7 +245,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_WITHDRAW_RESERVE_HISTORY_IMPOSSIBLE = 1113,
-
+
/**
* The exchange failed to obtain the transaction history of the
* given reserve from the database.
@@ -253,8 +253,8 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_RESERVE_STATUS_DB_ERROR = 1150,
-
-
+
+
/**
* The respective coin did not have sufficient residual value
* for the /deposit operation (i.e. due to double spending).
@@ -263,7 +263,7 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_FORBIDDEN.
*/
TALER_EC_DEPOSIT_INSUFFICIENT_FUNDS = 1200,
-
+
/**
* The exchange failed to obtain the transaction history of the
* given coin from the database (this does not happen merely because
@@ -272,14 +272,14 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DEPOSIT_HISTORY_DB_ERROR = 1201,
-
+
/**
* The exchange failed to store the /depost information in the
* database. This response is provided with HTTP status code
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DEPOSIT_STORE_DB_ERROR = 1202,
-
+
/**
* The exchange database is unaware of the denomination key that
* signed the coin (however, the exchange process is; this is not
@@ -289,7 +289,7 @@ The following list shows error codes defined in
* code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DEPOSIT_DB_DENOMINATION_KEY_UNKNOWN = 1203,
-
+
/**
* The exchange database is unaware of the denomination key that
* signed the coin (however, the exchange process is; this is not
@@ -299,20 +299,20 @@ The following list shows error codes defined in
* code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_DEPOSIT_DENOMINATION_KEY_UNKNOWN = 1204,
-
+
/**
* The signature of the coin is not valid. This response is
* provided with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_COIN_SIGNATURE_INVALID = 1205,
-
+
/**
* The signature of the denomination key over the coin is not valid.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_DENOMINATION_SIGNATURE_INVALID = 1206,
-
+
/**
* The stated value of the coin after the deposit fee is subtracted
* would be negative.
@@ -320,14 +320,14 @@ The following list shows error codes defined in
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE = 1207,
-
+
/**
* The stated refund deadline is after the wire deadline.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE = 1208,
-
+
/**
* The exchange does not recognize the validity of or support the
* given wire format type.
@@ -335,14 +335,14 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_TYPE = 1209,
-
+
/**
* The exchange failed to canonicalize and hash the given wire format.
* This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_JSON = 1210,
-
+
/**
* The hash of the given wire address does not match the hash
* specified in the contract.
@@ -350,16 +350,16 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_CONTRACT_HASH_CONFLICT = 1211,
-
+
/**
* The exchange failed to obtain the transaction history of the
* given coin from the database while generating an insufficient
- * funds errors.
+ * funds error.
* This response is provided with HTTP status code
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DEPOSIT_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1212,
-
+
/**
* The exchange detected that the given account number
* is invalid for the selected wire format type.
@@ -367,14 +367,14 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_ACCOUNT_NUMBER = 1213,
-
+
/**
* The signature over the given wire details is invalid.
* This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_SIGNATURE = 1214,
-
+
/**
* The bank specified in the wire transfer format is not supported
* by this exchange.
@@ -382,7 +382,7 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_BANK = 1215,
-
+
/**
* No wire format type was specified in the JSON wire format
* details.
@@ -390,7 +390,7 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_TYPE_MISSING = 1216,
-
+
/**
* The given wire format type is not supported by this
* exchange.
@@ -398,8 +398,8 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSIT_INVALID_WIRE_FORMAT_TYPE_UNSUPPORTED = 1217,
-
-
+
+
/**
* The respective coin did not have sufficient residual value
* for the /refresh/melt operation. The "history" in this
@@ -408,14 +408,14 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_FORBIDDEN.
*/
TALER_EC_MELT_INSUFFICIENT_FUNDS = 1300,
-
+
/**
* The exchange is unaware of the denomination key that was
* used to sign the melted coin. This response is provided
* with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_MELT_DENOMINATION_KEY_NOT_FOUND = 1301,
-
+
/**
* The exchange had an internal error reconstructing the
* transaction history of the coin that was being melted.
@@ -423,15 +423,15 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_MELT_COIN_HISTORY_COMPUTATION_FAILED = 1302,
-
+
/**
- * The exchange failed to check against historic melt data from
+ * The exchange failed to check against historic melt data from the
* database (as part of ensuring the idempotency of the operation).
* This response is provided with HTTP status code
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_MELT_DB_FETCH_ERROR = 1303,
-
+
/**
* The exchange failed to store session data in the
* database.
@@ -439,7 +439,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_MELT_DB_STORE_SESSION_ERROR = 1304,
-
+
/**
* The exchange failed to store refresh order data in the
* database.
@@ -447,7 +447,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_MELT_DB_STORE_ORDER_ERROR = 1305,
-
+
/**
* The exchange failed to store commit data in the
* database.
@@ -455,7 +455,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_MELT_DB_STORE_COMMIT_ERROR = 1306,
-
+
/**
* The exchange failed to store transfer keys in the
* database.
@@ -463,21 +463,21 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_MELT_DB_STORE_TRANSFER_ERROR = 1307,
-
+
/**
* The exchange is unaware of the denomination key that was
* requested for one of the fresh coins. This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_MELT_FRESH_DENOMINATION_KEY_NOT_FOUND = 1308,
-
+
/**
* The exchange encountered a numeric overflow totaling up
* the cost for the refresh operation. This response is provided
* with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_MELT_COST_CALCULATION_OVERFLOW = 1309,
-
+
/**
* During the transaction phase, the exchange could suddenly
* no longer find the denomination key that was
@@ -485,42 +485,42 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_MELT_DB_DENOMINATION_KEY_NOT_FOUND = 1310,
-
+
/**
* The exchange encountered melt fees exceeding the melted
* coin's contribution. This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_MELT_FEES_EXCEED_CONTRIBUTION = 1311,
-
+
/**
* The exchange's cost calculation does not add up to the
* melt fees specified in the request. This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_MELT_FEES_MISSMATCH = 1312,
-
+
/**
* The denomination key signature on the melted coin is invalid.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_MELT_DENOMINATION_SIGNATURE_INVALID = 1313,
-
+
/**
* The exchange's cost calculation shows that the melt amount
* is below the costs of the transaction. This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_MELT_AMOUNT_INSUFFICIENT = 1314,
-
+
/**
* The signature made with the coin to be melted is invalid.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_MELT_COIN_SIGNATURE_INVALID = 1315,
-
+
/**
* The size of the cut-and-choose dimension of the
* blinded coins request does not match #TALER_CNC_KAPPA.
@@ -528,7 +528,7 @@ The following list shows error codes defined in
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_MELT_CNC_COIN_ARRAY_SIZE_INVALID = 1316,
-
+
/**
* The size of the cut-and-choose dimension of the
* transfer keys request does not match #TALER_CNC_KAPPA.
@@ -536,16 +536,16 @@ The following list shows error codes defined in
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_MELT_CNC_TRANSFER_ARRAY_SIZE_INVALID = 1317,
-
+
/**
* The exchange failed to obtain the transaction history of the
* given coin from the database while generating an insufficient
- * funds errors.
+ * funds error.
* This response is provided with HTTP status code
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_MELT_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1318,
-
+
/**
* The provided transfer keys do not match up with the
* original commitment. Information about the original
@@ -553,15 +553,15 @@ The following list shows error codes defined in
* provided with HTTP status code MHD_HTTP_CONFLICT.
*/
TALER_EC_REVEAL_COMMITMENT_VIOLATION = 1350,
-
+
/**
* Failed to blind the envelope to reconstruct the blinded
- * coins for revealation checks.
+ * coins for revelation checks.
* This response is provided with HTTP status code
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_REVEAL_BLINDING_ERROR = 1351,
-
+
/**
* Failed to produce the blinded signatures over the coins
* to be returned.
@@ -569,15 +569,15 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_REVEAL_SIGNING_ERROR = 1352,
-
+
/**
- * The exchange is unaware of the refresh sessino specified in
+ * The exchange is unaware of the refresh session specified in
* the request.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_REVEAL_SESSION_UNKNOWN = 1353,
-
+
/**
* The exchange failed to retrieve valid session data from the
* database.
@@ -585,7 +585,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_REVEAL_DB_FETCH_SESSION_ERROR = 1354,
-
+
/**
* The exchange failed to retrieve order data from the
* database.
@@ -593,7 +593,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_REVEAL_DB_FETCH_ORDER_ERROR = 1355,
-
+
/**
* The exchange failed to retrieve transfer keys from the
* database.
@@ -601,7 +601,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_REVEAL_DB_FETCH_TRANSFER_ERROR = 1356,
-
+
/**
* The exchange failed to retrieve commitment data from the
* database.
@@ -609,7 +609,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_ERROR.
*/
TALER_EC_REVEAL_DB_FETCH_COMMIT_ERROR = 1357,
-
+
/**
* The size of the cut-and-choose dimension of the
* private transfer keys request does not match #TALER_CNC_KAPPA - 1.
@@ -617,16 +617,16 @@ The following list shows error codes defined in
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_REVEAL_CNC_TRANSFER_ARRAY_SIZE_INVALID = 1358,
-
-
+
+
/**
* The coin specified in the link request is unknown to the exchange.
* This response is provided with HTTP status code
* MHD_HTTP_NOT_FOUND.
*/
TALER_EC_LINK_COIN_UNKNOWN = 1400,
-
-
+
+
/**
* The exchange knows literally nothing about the coin we were asked
* to refund. But without a transaction history, we cannot issue a
@@ -635,7 +635,7 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_REFUND_COIN_NOT_FOUND = 1500,
-
+
/**
* We could not process the refund request as the coin's transaction
* history does not permit the requested refund at this time. The
@@ -643,7 +643,7 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_CONFLICT.
*/
TALER_EC_REFUND_CONFLICT = 1501,
-
+
/**
* The exchange knows about the coin we were asked to refund, but
* not about the specific /deposit operation. Hence, we cannot
@@ -652,14 +652,14 @@ The following list shows error codes defined in
* status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_REFUND_DEPOSIT_NOT_FOUND = 1503,
-
+
/**
* The currency specified for the refund is different from
* the currency of the coin. This response is provided with HTTP
* status code MHD_HTTP_PRECONDITION_FAILED.
*/
TALER_EC_REFUND_CURRENCY_MISSMATCH = 1504,
-
+
/**
* When we tried to check if we already paid out the coin, the
* exchange's database suddenly disagreed with data it previously
@@ -668,7 +668,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_REFUND_DB_INCONSISTENT = 1505,
-
+
/**
* The exchange can no longer refund the customer/coin as the
* money was already transferred (paid out) to the merchant.
@@ -677,7 +677,7 @@ The following list shows error codes defined in
* MHD_HTTP_GONE.
*/
TALER_EC_REFUND_MERCHANT_ALREADY_PAID = 1506,
-
+
/**
* The amount the exchange was asked to refund exceeds
* (with fees) the total amount of the deposit (including fees).
@@ -685,7 +685,7 @@ The following list shows error codes defined in
* MHD_HTTP_PRECONDITION_FAILED.
*/
TALER_EC_REFUND_INSUFFICIENT_FUNDS = 1507,
-
+
/**
* The exchange failed to recover information about the
* denomination key of the refunded coin (even though it
@@ -695,7 +695,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_REFUND_DENOMINATION_KEY_NOT_FOUND = 1508,
-
+
/**
* The refund fee specified for the request is lower than
* the refund fee charged by the exchange for the given
@@ -704,7 +704,7 @@ The following list shows error codes defined in
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_REFUND_FEE_TOO_LOW = 1509,
-
+
/**
* The exchange failed to store the refund information to
* its database.
@@ -712,7 +712,7 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_REFUND_STORE_DB_ERROR = 1510,
-
+
/**
* The refund fee is specified in a different currency
* than the refund amount.
@@ -720,7 +720,7 @@ The following list shows error codes defined in
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_REFUND_FEE_CURRENCY_MISSMATCH = 1511,
-
+
/**
* The refunded amount is smaller than the refund fee,
* which would result in a negative refund.
@@ -728,15 +728,15 @@ The following list shows error codes defined in
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_REFUND_FEE_ABOVE_AMOUNT = 1512,
-
+
/**
* The signature of the merchant is invalid.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_REFUND_MERCHANT_SIGNATURE_INVALID = 1513,
-
-
+
+
/**
* The wire format specified in the "sender_account_details"
* is not understood or not supported by this exchange.
@@ -744,44 +744,44 @@ The following list shows error codes defined in
* (As we did not find an interpretation of the wire format.)
*/
TALER_EC_ADMIN_ADD_INCOMING_WIREFORMAT_UNSUPPORTED = 1600,
-
+
/**
* The currency specified in the "amount" parameter is not
* supported by this exhange. Returned with an HTTP status
* code of MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_ADMIN_ADD_INCOMING_CURRENCY_UNSUPPORTED = 1601,
-
+
/**
* The exchange failed to store information about the incoming
* transfer in its database. This response is provided with HTTP
* status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_ADMIN_ADD_INCOMING_DB_STORE = 1602,
-
+
/**
* The exchange encountered an error (that is not about not finding
- * the wire transfer) trying to lookup a wire transfer identifier
+ * the wire transfer) trying to look up a wire transfer identifier
* in the database. This response is provided with HTTP
* status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TRANSFERS_GET_DB_FETCH_FAILED = 1700,
-
+
/**
* The exchange found internally inconsistent data when resolving a
* wire transfer identifier in the database. This response is
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TRANSFERS_GET_DB_INCONSISTENT = 1701,
-
+
/**
* The exchange did not find information about the specified
* wire transfer identifier in the database. This response is
* provided with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_TRANSFERS_GET_WTID_NOT_FOUND = 1702,
-
-
+
+
/**
* The exchange found internally inconsistent fee data when
* resolving a transaction in the database. This
@@ -789,22 +789,22 @@ The following list shows error codes defined in
* MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DEPOSITS_GET_DB_FEE_INCONSISTENT = 1800,
-
+
/**
* The exchange encountered an error (that is not about not finding
- * the transaction) trying to lookup a transaction
+ * the transaction) trying to look up a transaction
* in the database. This response is provided with HTTP
* status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DEPOSITS_GET_DB_FETCH_FAILED = 1801,
-
+
/**
* The exchange did not find information about the specified
* transaction in the database. This response is
* provided with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_DEPOSITS_GET_NOT_FOUND = 1802,
-
+
/**
* The exchange failed to identify the wire transfer of the
* transaction (or information about the plan that it was supposed
@@ -812,73 +812,73 @@ The following list shows error codes defined in
* HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DEPOSITS_GET_WTID_RESOLUTION_ERROR = 1803,
-
+
/**
* The signature of the merchant is invalid.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID = 1804,
-
-
+
+
/* *********** Merchant backend error codes ********* */
-
+
/**
* The backend could not find the merchant instance specified
* in the request. This response is
* provided with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_CONTRACT_INSTANCE_UNKNOWN = 2000,
-
+
/**
* The exchange failed to provide a meaningful response
* to a /deposit request. This response is provided
* with HTTP status code MHD_HTTP_SERVICE_UNAVAILABLE.
*/
TALER_EC_PAY_EXCHANGE_FAILED = 2101,
-
+
/**
- * The merchant failed to commit the exchanges' response to
+ * The merchant failed to commit the exchange's response to
* a /deposit request to its database. This response is provided
* with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_PAY_DB_STORE_PAY_ERROR = 2102,
-
+
/**
* The specified exchange is not supported/trusted by
* this merchant. This response is provided
* with HTTP status code MHD_HTTP_PRECONDITION_FAILED.
*/
TALER_EC_PAY_EXCHANGE_REJECTED = 2103,
-
+
/**
* The denomination key used for payment is not listed among the
* denomination keys of the exchange. This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_DENOMINATION_KEY_NOT_FOUND = 2104,
-
+
/**
* The denomination key used for payment is not audited by an
* auditor approved by the merchant. This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_DENOMINATION_KEY_AUDITOR_FAILURE = 2105,
-
+
/**
* There was an integer overflow totaling up the amounts or
* deposit fees in the payment. This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_AMOUNT_OVERFLOW = 2106,
-
+
/**
* The deposit fees exceed the total value of the payment.
* This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_FEES_EXCEED_PAYMENT = 2107,
-
+
/**
* After considering deposit fees, the payment is insufficient
* to satisfy the required amount for the contract.
@@ -886,7 +886,7 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_PAYMENT_INSUFFICIENT_DUE_TO_FEES = 2108,
-
+
/**
* While the merchant is happy to cover all applicable deposit fees,
* the payment is insufficient to satisfy the required amount for
@@ -894,77 +894,77 @@ The following list shows error codes defined in
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_PAYMENT_INSUFFICIENT = 2109,
-
+
/**
* The signature over the contract of one of the coins
* was invalid. This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_COIN_SIGNATURE_INVALID = 2110,
-
+
/**
* We failed to contact the exchange for the /pay request.
* This response is provided
* with HTTP status code MHD_HTTP_SERVICE_UNAVAILABLE.
*/
TALER_EC_PAY_EXCHANGE_TIMEOUT = 2111,
-
+
/**
* The backend could not find the merchant instance specified
* in the request. This response is
* provided with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_PAY_INSTANCE_UNKNOWN = 2112,
-
+
/**
* The signature over the contract of the merchant
* was invalid. This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_MERCHANT_SIGNATURE_INVALID = 2113,
-
+
/**
* The refund deadline was after the transfer deadline.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_REFUND_DEADLINE_PAST_WIRE_TRANSFER_DEADLINE = 2114,
-
+
/**
* The request fails to provide coins for the payment.
* This response is provided with HTTP status code
* MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_COINS_ARRAY_EMPTY = 2115,
-
+
/**
* The merchant failed to fetch the merchant's previous state with
* respect to a /pay request from its database. This response is
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_PAY_DB_FETCH_PAY_ERROR = 2116,
-
+
/**
* The merchant failed to fetch the merchant's previous state with
* respect to transactions from its database. This response is
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_PAY_DB_FETCH_TRANSACTION_ERROR = 2117,
-
+
/**
* The transaction ID was used for a conflicing transaction before.
* This response is
* provided with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_DB_TRANSACTION_ID_CONFLICT = 2118,
-
+
/**
* The merchant failed to store the merchant's state with
* respect to the transaction in its database. This response is
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_PAY_DB_STORE_TRANSACTION_ERROR = 2119,
-
+
/**
* The exchange failed to provide a valid response to
* the merchant's /keys request.
@@ -972,50 +972,50 @@ The following list shows error codes defined in
* with HTTP status code MHD_HTTP_SERVICE_UNAVAILABLE.
*/
TALER_EC_PAY_EXCHANGE_KEYS_FAILURE = 2120,
-
+
/**
* The payment is too late, the offer has expired.
* This response is
* provided with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_PAY_OFFER_EXPIRED = 2121,
-
-
+
+
/**
* Integer overflow with specified timestamp argument detected.
* This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_HISTORY_TIMESTAMP_OVERFLOW = 2200,
-
+
/**
* Failed to retrieve history from merchant database.
* This response is provided
* with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_HISTORY_DB_FETCH_ERROR = 2201,
-
+
/**
* We failed to contact the exchange for the /track/transaction
* request. This response is provided with HTTP status code
* MHD_HTTP_SERVICE_UNAVAILABLE.
*/
TALER_EC_DEPOSITS_GET_EXCHANGE_TIMEOUT = 2300,
-
+
/**
* The backend could not find the merchant instance specified
* in the request. This response is
* provided with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_DEPOSITS_GET_INSTANCE_UNKNOWN = 2301,
-
+
/**
* The backend could not find the transaction specified
* in the request. This response is
* provided with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_DEPOSITS_GET_TRANSACTION_UNKNOWN = 2302,
-
+
/**
* The backend had a database access error trying to
* retrieve transaction data from its database.
@@ -1023,7 +1023,7 @@ The following list shows error codes defined in
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DEPOSITS_GET_DB_FETCH_TRANSACTION_ERROR = 2303,
-
+
/**
* The backend had a database access error trying to
* retrieve payment data from its database.
@@ -1031,7 +1031,7 @@ The following list shows error codes defined in
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_DEPOSITS_GET_DB_FETCH_PAYMENT_ERROR = 2304,
-
+
/**
* The backend found no applicable deposits in the database.
* This is odd, as we know about the transaction, but not
@@ -1039,7 +1039,7 @@ The following list shows error codes defined in
* provided with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_DEPOSITS_GET_DB_NO_DEPOSITS_ERROR = 2305,
-
+
/**
* We failed to obtain a wire transfer identifier for one
* of the coins in the transaction. The response is
@@ -1048,7 +1048,7 @@ The following list shows error codes defined in
* exchange signaled that the transfer was in progress.
*/
TALER_EC_DEPOSITS_GET_COIN_TRACE_ERROR = 2306,
-
+
/**
* We failed to obtain the full wire transfer identifier for the
* transfer one of the coins was aggregated into.
@@ -1056,7 +1056,7 @@ The following list shows error codes defined in
* provided with HTTP status code MHD_HTTP_FAILED_DEPENDENCY.
*/
TALER_EC_DEPOSITS_GET_WIRE_TRANSFER_TRACE_ERROR = 2307,
-
+
/**
* We got conflicting reports from the exhange with
* respect to which transfers are included in which
@@ -1065,22 +1065,22 @@ The following list shows error codes defined in
* provided with HTTP status code MHD_HTTP_FAILED_DEPENDENCY.
*/
TALER_EC_DEPOSITS_GET_CONFLICTING_REPORTS = 2308,
-
-
+
+
/**
* We failed to contact the exchange for the /track/transfer
* request. This response is provided with HTTP status code
* MHD_HTTP_SERVICE_UNAVAILABLE.
*/
TALER_EC_TRANSFERS_GET_EXCHANGE_TIMEOUT = 2400,
-
+
/**
* The backend could not find the merchant instance specified
* in the request. This response is
* provided with HTTP status code MHD_HTTP_NOT_FOUND.
*/
TALER_EC_TRANSFERS_GET_INSTANCE_UNKNOWN = 2401,
-
+
/**
* We failed to persist coin wire transfer information in
* our merchant database.
@@ -1088,14 +1088,14 @@ The following list shows error codes defined in
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TRANSFERS_GET_DB_STORE_COIN_ERROR = 2402,
-
+
/**
* We internally failed to execute the /track/transfer request.
* The response is
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TRANSFERS_GET_REQUEST_ERROR = 2403,
-
+
/**
* We failed to persist wire transfer information in
* our merchant database.
@@ -1103,14 +1103,14 @@ The following list shows error codes defined in
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TRANSFERS_GET_DB_STORE_TRANSFER_ERROR = 2404,
-
+
/**
* The exchange returned an error from /track/transfer.
* The response is
* provided with HTTP status code MHD_HTTP_FAILED_DEPENDENCY.
*/
TALER_EC_TRANSFERS_GET_EXCHANGE_ERROR = 2405,
-
+
/**
* We failed to fetch deposit information from
* our merchant database.
@@ -1118,86 +1118,86 @@ The following list shows error codes defined in
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TRANSFERS_GET_DB_FETCH_DEPOSIT_ERROR = 2406,
-
+
/**
* We encountered an internal logic error.
* The response is
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TRANSFERS_GET_DB_INTERNAL_LOGIC_ERROR = 2407,
-
+
/**
* The exchange gave conflicting information about a coin which has
* been wire transferred.
* The response is provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TRANSFERS_GET_CONFLICTING_REPORTS = 2408,
-
+
/**
* The hash provided in the request of /map/in does not match
* the contract sent alongside in the same request.
*/
TALER_EC_MAP_IN_UNMATCHED_HASH = 2500,
-
+
/**
* The backend encountered an error while trying to store the
- * pair <contract, h_proposal_data> into the database.
+ * pair <contract, h_proposal_data> into the database.
* The response is provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_MAP_IN_STORE_DB_ERROR = 2501,
-
+
/**
* The backend encountered an error while trying to retrieve the
- * contract from database. Likely to be an internal error.
+ * contract from the database. Likely to be an internal error.
*/
TALER_EC_MAP_OUT_GET_FROM_DB_ERROR = 2502,
-
-
+
+
/**
* The backend encountered an error while trying to retrieve the
- * contract from database. Likely to be an internal error.
+ * contract from the database. Likely to be an internal error.
*/
TALER_EC_MAP_OUT_CONTRACT_UNKNOWN = 2503,
-
+
/* ********** /test API error codes ************* */
-
+
/**
* The exchange failed to compute ECDH. This response is provided
* with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TEST_ECDH_ERROR = 4000,
-
+
/**
* The EdDSA test signature is invalid. This response is provided
* with HTTP status code MHD_HTTP_BAD_REQUEST.
*/
TALER_EC_TEST_EDDSA_INVALID = 4001,
-
+
/**
* The exchange failed to compute the EdDSA test signature. This response is provided
* with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TEST_EDDSA_ERROR = 4002,
-
+
/**
* The exchange failed to generate an RSA key. This response is provided
* with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TEST_RSA_GEN_ERROR = 4003,
-
+
/**
* The exchange failed to compute the public RSA key. This response
* is provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TEST_RSA_PUB_ERROR = 4004,
-
+
/**
* The exchange failed to compute the RSA signature. This response
* is provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
TALER_EC_TEST_RSA_SIGN_ERROR = 4005,
-
-
+
+
/**
* End of error code range.
*/
diff --git a/core/api-exchange.rst b/core/api-exchange.rst
index 7d951a64..1e9db1d9 100644
--- a/core/api-exchange.rst
+++ b/core/api-exchange.rst
@@ -30,7 +30,7 @@ defines all specific terms used in this section.
Terms of service API
--------------------
-These APIs allow merchants and wallets to obtian the terms of service
+These APIs allow merchants and wallets to obtain the terms of service
and the privacy policy of an exchange.
@@ -101,7 +101,7 @@ possibly by using HTTPS.
**Request:**
- :query last_issue_date: optional argument specifying the maximum value of any of the "stamp_start" members of the denomination keys of a "/keys" response that is already known to the client. Allows the exchange to only return keys that have changed since that timestamp. The given value must be an unsigned 64-bit integer representing seconds after 1970. If the timestamp does not exactly match the "stamp_start" of one of the denomination keys, all keys are returned.
+ :query last_issue_date: Optional argument specifying the maximum value of any of the ``stamp_start`` members of the denomination keys of a ``/keys`` response that is already known to the client. Allows the exchange to only return keys that have changed since that timestamp. The given value must be an unsigned 64-bit integer representing seconds after 1970. If the timestamp does not exactly match the ``stamp_start`` of one of the denomination keys, all keys are returned.
**Response:**
@@ -123,7 +123,8 @@ possibly by using HTTPS.
// The exchange's currency.
currency: string;
- // EdDSA master public key of the exchange, used to sign entries in 'denoms' and 'signkeys'
+ // EdDSA master public key of the exchange, used to sign entries
+ // in ``denoms`` and ``signkeys``.
master_public_key: EddsaPublicKey;
// Relative duration until inactive reserves are closed; not signed, expressed as
@@ -145,19 +146,19 @@ possibly by using HTTPS.
// The exchange's signing keys.
signkeys: SignKey[];
- // compact EdDSA `signature` (binary-only) over the SHA-512 hash of the
+ // Compact EdDSA `signature` (binary-only) over the SHA-512 hash of the
// concatenation of all SHA-512 hashes of the RSA denomination public keys
// in ``denoms`` in the same order as they were in ``denoms``. Note that for
// hashing, the binary format of the RSA public keys is used, and not their
// `base32 encoding <base32>`. Wallets cannot do much with this signature by itself;
// it is only useful when multiple clients need to establish that the exchange
// is sabotaging end-user anonymity by giving disjoint denomination keys to
- // different users. If a exchange were to do this, this signature allows the
+ // different users. If an exchange were to do this, this signature allows the
// clients to demonstrate to the public that the exchange is dishonest.
eddsa_sig: EddsaSignature;
// Public EdDSA key of the exchange that was used to generate the signature.
- // Should match one of the exchange's signing keys from /keys. It is given
+ // Should match one of the exchange's signing keys from ``/keys``. It is given
// explicitly as the client might otherwise be confused by clock skew as to
// which signing key was used.
eddsa_pub: EddsaPublicKey;
@@ -184,19 +185,19 @@ possibly by using HTTPS.
// Public (RSA) key for the denomination.
denom_pub: RsaPublicKey;
- // Fee charged by the exchange for withdrawing a coin of this denomination
+ // Fee charged by the exchange for withdrawing a coin of this denomination.
fee_withdraw: Amount;
- // Fee charged by the exchange for depositing a coin of this denomination
+ // Fee charged by the exchange for depositing a coin of this denomination.
fee_deposit: Amount;
- // Fee charged by the exchange for refreshing a coin of this denomination
+ // Fee charged by the exchange for refreshing a coin of this denomination.
fee_refresh: Amount;
- // Fee charged by the exchange for refunding a coin of this denomination
+ // Fee charged by the exchange for refunding a coin of this denomination.
fee_refund: Amount;
- // Signature of `TALER_DenominationKeyValidityPS`
+ // Signature of `TALER_DenominationKeyValidityPS`.
master_sig: EddsaSignature;
}
@@ -209,14 +210,14 @@ possibly by using HTTPS.
.. ts:def:: Recoup
interface Recoup {
- // hash of the public key of the denomination that is being revoked under
- // emergency protocol (see /recoup).
+ // Hash of the public key of the denomination that is being revoked under
+ // emergency protocol (see ``/recoup``).
h_denom_pub: HashCode;
// We do not include any signature here, as the primary use-case for
// this emergency involves the exchange having lost its signing keys,
// so such a signature here would be pretty worthless. However, the
- // exchange will not honor /recoup requests unless they are for
+ // exchange will not honor ``/recoup`` requests unless they are for
// denomination keys listed here.
}
@@ -240,7 +241,7 @@ possibly by using HTTPS.
stamp_end: Timestamp;
// Signature over ``key`` and ``stamp_expire`` by the exchange master key.
- // Must have purpose TALER_SIGNATURE_MASTER_SIGNING_KEY_VALIDITY.
+ // Must have purpose ``TALER_SIGNATURE_MASTER_SIGNING_KEY_VALIDITY``.
master_sig: EddsaSignature;
}
@@ -255,7 +256,7 @@ possibly by using HTTPS.
// The auditor's URL.
auditor_url: string;
- // The auditor's name (for humans)
+ // The auditor's name (for humans).
auditor_name: string;
// An array of denomination keys the auditor affirms with its signature.
@@ -268,13 +269,13 @@ possibly by using HTTPS.
.. ts:def:: AuditorDenominationKey
interface AuditorDenominationKey {
- // hash of the public RSA key used to sign coins of the respective
+ // Hash of the public RSA key used to sign coins of the respective
// denomination. Note that the auditor's signature covers more than just
// the hash, but this other information is already provided in ``denoms`` and
// thus not repeated here.
denom_pub_h: HashCode;
- // Signature of `TALER_ExchangeKeyValidityPS`
+ // Signature of `TALER_ExchangeKeyValidityPS`.
auditor_sig: EddsaSignature;
}
@@ -306,7 +307,7 @@ possibly by using HTTPS.
interface WireResponse {
- // Master public key of the exchange, must match the key returned in /keys.
+ // Master public key of the exchange, must match the key returned in ``/keys``.
master_public_key: EddsaPublicKey;
// Array of wire accounts operated by the exchange for
@@ -323,11 +324,11 @@ possibly by using HTTPS.
.. ts:def:: WireAccount
interface WireAccount {
- // payto:// URI identifying the account and wire method
+ // ``payto://`` URI identifying the account and wire method
payto_uri: string;
// Signature using the exchange's offline key
- // with purpose TALER_SIGNATURE_MASTER_WIRE_DETAILS.
+ // with purpose ``TALER_SIGNATURE_MASTER_WIRE_DETAILS``.
master_sig: EddsaSignature;
}
@@ -355,7 +356,8 @@ possibly by using HTTPS.
// any of the denomination keys are valid without overlap.
end_date: Timestamp;
- // Signature of `TALER_MasterWireFeePS` with purpose TALER_SIGNATURE_MASTER_WIRE_FEES
+ // Signature of `TALER_MasterWireFeePS` with
+ // purpose ``TALER_SIGNATURE_MASTER_WIRE_FEES``.
sig: EddsaSignature;
}
@@ -429,16 +431,16 @@ Management operations authorized by master key
// Public (RSA) key for the denomination.
denom_pub: RsaPublicKey;
- // Fee charged by the exchange for withdrawing a coin of this denomination
+ // Fee charged by the exchange for withdrawing a coin of this denomination.
fee_withdraw: Amount;
- // Fee charged by the exchange for depositing a coin of this denomination
+ // Fee charged by the exchange for depositing a coin of this denomination.
fee_deposit: Amount;
- // Fee charged by the exchange for refreshing a coin of this denomination
+ // Fee charged by the exchange for refreshing a coin of this denomination.
fee_refresh: Amount;
- // Fee charged by the exchange for refunding a coin of this denomination
+ // Fee charged by the exchange for refunding a coin of this denomination.
fee_refund: Amount;
// Signature over this denomination by the denomination security module.
@@ -503,10 +505,10 @@ Management operations authorized by master key
interface DenomSignature {
- // Hash of the pbulic (RSA) key of the denomination.
+ // Hash of the public (RSA) key of the denomination.
h_denom_pub: HashCode;
- // Signature of `TALER_DenominationKeyValidityPS`
+ // Signature of `TALER_DenominationKeyValidityPS`.
master_sig: EddsaSignature;
}
@@ -518,7 +520,7 @@ Management operations authorized by master key
key: EddsaPublicKey;
// Signature by the exchange master key.
- // Must have purpose TALER_SIGNATURE_MASTER_SIGNING_KEY_VALIDITY.
+ // Must have purpose ``TALER_SIGNATURE_MASTER_SIGNING_KEY_VALIDITY``.
master_sig: EddsaSignature;
}
@@ -526,7 +528,7 @@ Management operations authorized by master key
.. http:post:: /management/denominations/$H_DENOM_PUB/revoke
- Revoke denomination key, prevending further use by the exchange.
+ Revoke denomination key, preventing further use by the exchange.
Only to be used by the exchange's offline key management team. Not useful
for anyone else.
@@ -546,14 +548,14 @@ Management operations authorized by master key
interface DenomRevocationSignature {
// Signature by the exchange master key.
- // Must have purpose TALER_SIGNATURE_MASTER_DENOMINATION_KEY_REVOKED
+ // Must have purpose ``TALER_SIGNATURE_MASTER_DENOMINATION_KEY_REVOKED``.
master_sig: EddsaSignature;
}
.. http:post:: /management/signkeys/$EXCHANGE_PUB/revoke
- Revoke exchange online signing key, prevending further use by the exchange.
+ Revoke exchange online signing key, preventing further use by the exchange.
Only to be used by the exchange's offline key management team. Not useful
for anyone else.
@@ -573,7 +575,7 @@ Management operations authorized by master key
interface SignkeyRevocationSignature {
// Signature by the exchange master key.
- // Must have purpose TALER_SIGNATURE_MASTER_SIGN_KEY_REVOKED
+ // Must have purpose ``TALER_SIGNATURE_MASTER_SIGN_KEY_REVOKED``.
master_sig: EddsaSignature;
}
@@ -602,17 +604,17 @@ Management operations authorized by master key
interface AuditorSetupMessage {
- // base URL of the auditor
+ // Base URL of the auditor.
auditor_url: string;
- // human-readable name of the auditor
+ // Human-readable name of the auditor.
auditor_name: string;
// The auditor's EdDSA signing public key.
auditor_pub: EddsaPublicKey;
// Signature by the exchange master key.
- // Must have purpose TALER_SIGNATURE_MASTER_AUDITOR_ADD.
+ // Must have purpose ``TALER_SIGNATURE_MASTER_AUDITOR_ADD``.
master_sig: EddsaSignature;
// When does the auditor become active?
@@ -656,7 +658,7 @@ Management operations authorized by master key
interface AuditorTeardownMessage {
// Signature by the exchange master key.
- // Must have purpose TALER_SIGNATURE_MASTER_AUDITOR_DEL.
+ // Must have purpose ``TALER_SIGNATURE_MASTER_AUDITOR_DEL``.
master_sig: EddsaSignature;
// When does the auditor become inactive?
@@ -685,7 +687,7 @@ Management operations authorized by master key
:http:statuscode:`403 Forbidden`:
The master signature is invalid.
:http:statuscode:`409 Conflict`:
- The exchange has a conflicting wire fee already setup.
+ The exchange has a conflicting wire fee already set up.
:http:statuscode:`412 Precondition failed`:
The currency used is different from the currency of the exchange.
@@ -695,11 +697,11 @@ Management operations authorized by master key
interface WireFeeSetupMessage {
- // wire method the fee applies to
+ // Wire method the fee applies to.
wire_method: string;
// Signature using the exchange's offline key
- // with purpose TALER_SIGNATURE_MASTER_WIRE_FEES.
+ // with purpose ``TALER_SIGNATURE_MASTER_WIRE_FEES``.
master_sig_wire: EddsaSignature;
// When does the wire fee validity period start?
@@ -741,15 +743,15 @@ Management operations authorized by master key
interface WireSetupMessage {
- // payto:// URL identifying the account and wire method
+ // ``payto://`` URL identifying the account and wire method
payto_uri: string;
// Signature using the exchange's offline key
- // with purpose TALER_SIGNATURE_MASTER_WIRE_DETAILS.
+ // with purpose ``TALER_SIGNATURE_MASTER_WIRE_DETAILS``.
master_sig_wire: EddsaSignature;
// Signature using the exchange's offline key
- // with purpose TALER_SIGNATURE_MASTER_WIRE_ADD.
+ // with purpose ``TALER_SIGNATURE_MASTER_WIRE_ADD``.
master_sig_add: EddsaSignature;
// When does the wire method become active?
@@ -792,11 +794,11 @@ Management operations authorized by master key
interface WireTeardownMessage {
- // payto:// URL identifying the account and wire method
+ // ``payto://`` URL identifying the account and wire method
payto_uri: string;
// Signature using the exchange's offline key
- // with purpose TALER_SIGNATURE_MASTER_WIRE_DEL.
+ // with purpose ``TALER_SIGNATURE_MASTER_WIRE_DEL``.
master_sig_del: EddsaSignature;
// Should be the time when the signature was created,
@@ -850,7 +852,7 @@ This part of the API is for the use by auditors interacting with the exchange.
interface AuditorSignatureAddMessage {
// Signature by the auditor.
- // Must have purpose TALER_SIGNATURE_AUDITOR_XXX.
+ // Must have purpose ``TALER_SIGNATURE_AUDITOR_XXX``.
auditor_sig: EddsaSignature;
}
@@ -885,7 +887,7 @@ exchange.
The client currently does not have to demonstrate knowledge of the private
key of the reserve to make this request, which makes the reserve's public
key privileged information known only to the client, their bank, and the
- exchange. In future, we might wish to revisit this decision to improve
+ exchange. In the future, we might wish to revisit this decision to improve
security, such as by having the client EdDSA-sign an ECDHE key to be used
to derive a symmetric key to encrypt the response. This would be useful if
for example HTTPS were not used for communication with the exchange.
@@ -895,7 +897,7 @@ exchange.
**Response:**
:http:statuscode:`200 OK`:
- The exchange responds with a `ReserveStatus` object; the reserve was known to the exchange,
+ The exchange responds with a `ReserveStatus` object; the reserve was known to the exchange.
:http:statuscode:`404 Not found`:
The reserve key does not belong to a reserve known to the exchange.
@@ -907,7 +909,7 @@ exchange.
// Balance left in the reserve.
balance: Amount;
- // Transaction history for this reserve
+ // Transaction history for this reserve.
history: TransactionHistoryItem[];
}
@@ -933,10 +935,10 @@ exchange.
// Hash of the denomination public key of the coin.
h_denom_pub: HashCode;
- // Hash of the blinded coin to be signed
+ // Hash of the blinded coin to be signed.
h_coin_envelope: HashCode;
- // Signature of 'TALER_WithdrawRequestPS' created with the reserves's
+ // Signature of ``TALER_WithdrawRequestPS`` created with the reserve's
// private key.
reserve_sig: EddsaSignature;
@@ -953,7 +955,7 @@ exchange.
// Amount deposited.
amount: Amount;
- // Sender account payto://-URL
+ // Sender account ``payto://`` URL.
sender_account_url: string;
// Opaque identifier internal to the exchange that
@@ -979,15 +981,15 @@ exchange.
// Wire transfer subject.
wtid: string;
- // payto:// URI of the wire account into which the funds were returned to.
+ // ``payto://`` URI of the wire account into which the funds were returned to.
receiver_account_details: string;
// This is a signature over a
- // struct TALER_ReserveCloseConfirmationPS with purpose
- // TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED.
+ // struct ``TALER_ReserveCloseConfirmationPS`` with purpose
+ // ``TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED``.
exchange_sig: EddsaSignature;
- // Public key used to create exchange_sig.
+ // Public key used to create ``exchange_sig``.
exchange_pub: EddsaPublicKey;
// Time when the reserve was closed.
@@ -1004,11 +1006,11 @@ exchange.
amount: Amount;
// This is a signature over
- // a struct TALER_PaybackConfirmationPS with purpose
- // TALER_SIGNATURE_EXCHANGE_CONFIRM_PAYBACK.
+ // a struct ``TALER_PaybackConfirmationPS`` with purpose
+ // ``TALER_SIGNATURE_EXCHANGE_CONFIRM_PAYBACK``.
exchange_sig: EddsaSignature;
- // Public key used to create exchange_sig.
+ // Public key used to create ``exchange_sig``.
exchange_pub: EddsaPublicKey;
// Time when the funds were paid back into the reserve.
@@ -1063,11 +1065,12 @@ exchange.
// would like the exchange to create.
denom_pub_hash: HashCode;
- // coin's blinded public key, should be (blindly) signed by the exchange's
- // denomination private key
+ // Coin's blinded public key, should be (blindly) signed by the exchange's
+ // denomination private key.
coin_ev: CoinEnvelope;
- // Signature of `TALER_WithdrawRequestPS` created with the `reserves's private key <reserve-priv>`
+ // Signature of `TALER_WithdrawRequestPS` created with
+ // the `reserves's private key <reserve-priv>`.
reserve_sig: EddsaSignature;
}
@@ -1085,16 +1088,17 @@ exchange.
.. ts:def:: WithdrawError
interface WithdrawError {
- // Text describing the error
+ // Text describing the error.
hint: string;
- // Detailed error code
+ // Detailed error code.
code: Integer;
- // Amount left in the reserve
+ // Amount left in the reserve.
balance: Amount;
- // History of the reserve's activity, in the same format as returned by /reserve/status.
+ // History of the reserve's activity, in the same format
+ // as returned by ``/reserve/status``.
history: TransactionHistoryItem[]
}
@@ -1117,10 +1121,10 @@ denomination.
.. http:POST:: /coins/$COIN_PUB/deposit
Deposit the given coin and ask the exchange to transfer the given :ref:`amount`
- to the merchants bank account. This API is used by the merchant to redeem
+ to the merchant's bank account. This API is used by the merchant to redeem
the digital coins.
- The base URL for "/coins/"-requests may differ from the main base URL of the
+ The base URL for ``/coins/``-requests may differ from the main base URL of the
exchange. The exchange MUST return a 307 or 308 redirection to the correct
base URL if this is the case.
@@ -1159,8 +1163,8 @@ denomination.
contribution: Amount;
// The merchant's account details.
- // The salt is used to hide the payto_uri from customers
- // that learn the h_wire of the merchant.
+ // The salt is used to hide the ``payto_uri`` from customers
+ // that learn the ``h_wire`` of the merchant.
wire: {
payto_uri: string;
salt: HashCode;
@@ -1170,20 +1174,20 @@ denomination.
// strictly speaking redundant, this helps detect inconsistencies.
h_wire: HashCode;
- // SHA-512 hash of the contact of the merchant with the customer. Further
+ // SHA-512 hash of the contract of the merchant with the customer. Further
// details are never disclosed to the exchange.
h_contract_terms: HashCode;
- // Hash of denomination RSA key with which the coin is signed
+ // Hash of denomination RSA key with which the coin is signed.
denom_pub_hash: HashCode;
- // exchange's unblinded RSA signature of the coin
+ // Exchange's unblinded RSA signature of the coin.
ub_sig: RsaSignature;
- // timestamp when the contract was finalized.
+ // Timestamp when the contract was finalized.
timestamp: Timestamp;
- // indicative time by which the exchange undertakes to transfer the funds to
+ // Indicative time by which the exchange undertakes to transfer the funds to
// the merchant, in case of successful payment.
wire_transfer_deadline: Timestamp;
@@ -1191,12 +1195,12 @@ denomination.
// merchant for refund requests.
merchant_pub: EddsaPublicKey;
- // date until which the merchant can issue a refund to the customer via the
+ // Date until which the merchant can issue a refund to the customer via the
// exchange, possibly zero if refunds are not allowed.
refund_deadline: Timestamp;
// Signature of `TALER_DepositRequestPS`, made by the customer with the
- // `coin's private key <coin-priv>`
+ // `coin's private key <coin-priv>`.
coin_sig: EddsaSignature;
}
@@ -1209,26 +1213,26 @@ denomination.
// Optional base URL of the exchange for looking up wire transfers
// associated with this transaction. If not given,
// the base URL is the same as the one used for this request.
- // Can be used if the base URL for /transactions/ differs from that
- // for /coins/, i.e. for load balancing. Clients SHOULD
- // respect the transaction_base_url if provided. Any HTTP server
+ // Can be used if the base URL for ``/transactions/`` differs from that
+ // for ``/coins/``, i.e. for load balancing. Clients SHOULD
+ // respect the ``transaction_base_url`` if provided. Any HTTP server
// belonging to an exchange MUST generate a 307 or 308 redirection
// to the correct base URL should a client uses the wrong base
// URL, or if the base URL has changed since the deposit.
transaction_base_url?: string;
- // timestamp when the deposit was received by the exchange.
+ // Timestamp when the deposit was received by the exchange.
exchange_timestamp: Timestamp;
- // the EdDSA signature of `TALER_DepositConfirmationPS` using a current
+ // The EdDSA signature of `TALER_DepositConfirmationPS` using a current
// `signing key of the exchange <sign-key-priv>` affirming the successful
// deposit and that the exchange will transfer the funds after the refund
// deadline, or as soon as possible if the refund deadline is zero.
exchange_sig: EddsaSignature;
- // `public EdDSA key of the exchange <sign-key-pub>` that was used to
+ // `Public EdDSA key of the exchange <sign-key-pub>` that was used to
// generate the signature.
- // Should match one of the exchange's signing keys from /keys. It is given
+ // Should match one of the exchange's signing keys from ``/keys``. It is given
// explicitly as the client might otherwise be confused by clock skew as to
// which signing key was used.
exchange_pub: EddsaPublicKey;
@@ -1237,11 +1241,11 @@ denomination.
.. ts:def:: DepositDoubleSpendError
interface DepositDoubleSpendError {
- // The string constant "insufficient funds"
+ // The string constant "insufficient funds".
hint: string;
// Transaction history for the coin that is
- // being double-spended
+ // being double-spended.
history: CoinSpendHistoryItem[];
}
@@ -1249,7 +1253,7 @@ denomination.
interface CoinSpendHistoryItem {
// Either "DEPOSIT", "MELT", "REFUND", "RECOUP",
- // "OLD-COIN-RECOUP" or "RECOUP-REFRESH"
+ // "OLD-COIN-RECOUP" or "RECOUP-REFRESH".
type: string;
// The total amount of the coin's value absorbed (or restored in the
@@ -1264,20 +1268,20 @@ denomination.
// Deposit fee in case of type "DEPOSIT".
deposit_fee: Amount;
- // public key of the merchant, for "DEPOSIT" operations.
+ // Public key of the merchant, for "DEPOSIT" operations.
merchant_pub?: EddsaPublicKey;
- // date when the operation was made.
+ // Date when the operation was made.
// Only for "DEPOSIT", "RECOUP", "OLD-COIN-RECOUP" and
// "RECOUP-REFRESH" operations.
timestamp?: Timestamp;
- // date until which the merchant can issue a refund to the customer via the
+ // Date until which the merchant can issue a refund to the customer via the
// exchange, possibly zero if refunds are not allowed. Only for "DEPOSIT" operations.
refund_deadline?: Timestamp;
// Signature by the coin, only present if ``type`` is "DEPOSIT", "MELT", "RECOUP",
- // or "RECOUP-REFRESH"
+ // or "RECOUP-REFRESH".
coin_sig?: EddsaSignature;
// Deposit fee in case of type "MELT".
@@ -1287,7 +1291,7 @@ denomination.
rc?: TALER_RefreshCommitmentP;
// Hash of the bank account from where we received the funds,
- // only present if ``type`` is "DEPOSIT"
+ // only present if ``type`` is "DEPOSIT".
h_wire?: HashCode;
// Hash of the public denomination key used to sign the coin.
@@ -1304,23 +1308,23 @@ denomination.
h_contract_terms?: HashCode;
// Refund transaction ID. Only present if ``type`` is
- // "REFUND"
+ // "REFUND".
rtransaction_id?: Integer;
// Coin blinding key. Only present if ``type`` is
- // "RECOUP" or "RECOUP-REFRESH"
+ // "RECOUP" or "RECOUP-REFRESH".
coin_blind?: DenominationBlindingKeyP;
// Reserve receiving the recoup. Only present if ``type`` is
- // "RECOUP"
+ // "RECOUP".
reserve_pub?: EddsaPublicKey;
// `EdDSA Signature <eddsa-sig>` authorizing the REFUND. Made with
// the `public key of the merchant <merchant-pub>`.
- // Only present if ``type`` is "REFUND"
+ // Only present if ``type`` is "REFUND".
merchant_sig?: EddsaSignature;
- // public key of the reserve that will receive the funds, for "RECOUP" operations.
+ // Public key of the reserve that will receive the funds, for "RECOUP" operations.
reserve_pub?: EddsaPublicKey;
// Signature by the exchange, only present if ``type`` is "RECOUP",
@@ -1329,7 +1333,7 @@ denomination.
// and of type TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP_REFRESH otherwise.
exchange_sig?: EddsaSignature;
- // public key used to sign ``exchange_sig``,
+ // Public key used to sign ``exchange_sig``,
// only present if ``exchange_sig`` present.
exchange_pub?: EddsaPublicKey;
@@ -1354,20 +1358,20 @@ transactions with the freshly exchangeed coins unlinkabe to previous transaction
by anyone except the wallet itself.
However, the new coins are linkable from the private keys of all old coins
-using the /refresh/link request. While /refresh/link must be implemented by
+using the ``/refresh/link`` request. While ``/refresh/link`` must be implemented by
the exchange to achieve taxability, wallets do not really ever need that part of
the API during normal operation.
.. _refresh:
.. http:post:: /coins/$COIN_PUB/melt
- "Melts" a coin. Invalidates the coins and prepares for exchangeing of fresh
+ "Melts" a coin. Invalidates the coins and prepares for exchanging of fresh
coins. Taler uses a global parameter ``kappa`` for the cut-and-choose
component of the protocol, for which this request is the commitment. Thus,
various arguments are given ``kappa``-times in this step. At present ``kappa``
is always 3.
- The base URL for "/coins/"-requests may differ from the main base URL of the
+ The base URL for ``/coins/``-requests may differ from the main base URL of the
exchange. The exchange MUST return a 307 or 308 redirection to the correct
base URL if this is the case.
@@ -1376,8 +1380,8 @@ the API during normal operation.
:http:statuscode:`403 Forbidden`:
One of the signatures is invalid.
:http:statuscode:`404 Not found`:
- the exchange does not recognize the denomination key as belonging to the exchange,
- or it has expired
+ The exchange does not recognize the denomination key as belonging to the exchange,
+ or it has expired.
:http:statuscode:`409 Conflict`:
The operation is not allowed as the coin has insufficient
residual value, or because the same public key of the coin has been
@@ -1407,7 +1411,7 @@ the API during normal operation.
value_with_fee: Amount;
// Melt commitment. Hash over the various coins to be withdrawn.
- // See also ``TALER_refresh_get_commitment()``
+ // See also ``TALER_refresh_get_commitment()``.
rc: TALER_RefreshCommitmentP;
}
@@ -1424,11 +1428,11 @@ the API during normal operation.
noreveal_index: Integer;
// Signature of `TALER_RefreshMeltConfirmationPS` whereby the exchange
- // affirms the successful melt and confirming the ``noreveal_index``
+ // affirms the successful melt and confirming the ``noreveal_index``.
exchange_sig: EddsaSignature;
- // `public EdDSA key <sign-key-pub>` of the exchange that was used to generate the signature.
- // Should match one of the exchange's signing keys from /keys. Again given
+ // `Public EdDSA key <sign-key-pub>` of the exchange that was used to generate the signature.
+ // Should match one of the exchange's signing keys from ``/keys``. Again given
// explicitly as the client might otherwise be confused by clock skew as to
// which signing key was used.
exchange_pub: EddsaPublicKey;
@@ -1436,8 +1440,8 @@ the API during normal operation.
// Base URL to use for operations on the refresh context
// (so the reveal operation). If not given,
// the base URL is the same as the one used for this request.
- // Can be used if the base URL for /refreshes/ differs from that
- // for /coins/, i.e. for load balancing. Clients SHOULD
+ // Can be used if the base URL for ``/refreshes/`` differs from that
+ // for ``/coins/``, i.e. for load balancing. Clients SHOULD
// respect the refresh_base_url if provided. Any HTTP server
// belonging to an exchange MUST generate a 307 or 308 redirection
// to the correct base URL should a client uses the wrong base
@@ -1445,7 +1449,7 @@ the API during normal operation.
//
// When melting the same coin twice (technically allowed
// as the response might have been lost on the network),
- // the exchange may return different values for the refresh_base_url.
+ // the exchange may return different values for the ``refresh_base_url``.
refresh_base_url?: string;
}
@@ -1457,19 +1461,19 @@ the API during normal operation.
// Text describing the error.
hint: string;
- // Detailed error code
+ // Detailed error code.
code: Integer;
- // public key of a melted coin that had insufficient funds
+ // Public key of a melted coin that had insufficient funds.
coin_pub: EddsaPublicKey;
- // original total value of the coin
+ // Original total value of the coin.
original_value: Amount;
- // remaining value of the coin
+ // Remaining value of the coin.
residual_value: Amount;
- // amount of the coin's value that was to be melted
+ // Amount of the coin's value that was to be melted.
requested_value: Amount;
// The transaction list of the respective coin that failed to have sufficient funds left.
@@ -1482,17 +1486,17 @@ the API during normal operation.
.. http:post:: /refreshes/$RCH/reveal
Reveal previously committed values to the exchange, except for the values
- corresponding to the ``noreveal_index`` returned by the /coins/-melt step.
+ corresponding to the ``noreveal_index`` returned by the ``/coins/``-melt step.
- The $RCH is the hash over the refresh commitment from the /coins/-melt step
+ The $RCH is the hash over the refresh commitment from the ``/coins/``-melt step
(note that the value is calculated independently by both sides and has never
appeared *explicitly* in the protocol before).
- The base URL for "/refreshes/"-requests may differ from the main base URL of
- the exchange. Clients SHOULD respect the "refresh_base_url" returned for the
+ The base URL for ``/refreshes/``-requests may differ from the main base URL of
+ the exchange. Clients SHOULD respect the ``refresh_base_url`` returned for the
coin during melt operations. The exchange MUST return a
307 or 308 redirection to the correct base URL if the client failed to
- respect the "refresh_base_url" or if the allocation has changed.
+ respect the ``refresh_base_url`` or if the allocation has changed.
Errors such as failing to do proper arithmetic when it comes to calculating
the total of the coin values and fees are simply reported as bad requests.
@@ -1504,7 +1508,7 @@ the API during normal operation.
:http:statuscode:`200 OK`:
The transfer private keys matched the commitment and the original request was well-formed.
- The response body is a `RevealResponse`
+ The response body is a `RevealResponse`.
:http:statuscode:`409 Conflict`:
There is a problem between the original commitment and the revealed private
keys. The returned information is proof of the mismatch, and therefore
@@ -1527,15 +1531,15 @@ the API during normal operation.
// matching the respective entries in ``new_denoms``.
coin_evs: CoinEnvelope[];
- // ``kappa - 1`` transfer private keys (ephemeral ECDHE keys)
+ // ``kappa - 1`` transfer private keys (ephemeral ECDHE keys).
transfer_privs: EddsaPrivateKey[];
- // transfer public key at the ``noreveal_index``.
+ // Transfer public key at the ``noreveal_index``.
transfer_pub: EddsaPublicKey;
// Array of ``n`` signatures made by the wallet using the old coin's private key,
// used later to verify the /refresh/link response from the exchange.
- // Signs over a `TALER_CoinLinkSignaturePS`
+ // Signs over a `TALER_CoinLinkSignaturePS`.
link_sigs: EddsaSignature[];
}
@@ -1552,10 +1556,10 @@ the API during normal operation.
.. ts:def:: RevealConflictResponse
interface RevealConflictResponse {
- // Text describing the error
+ // Text describing the error.
hint: string;
- // Detailed error code
+ // Detailed error code.
code: Integer;
// Commitment as calculated by the exchange from the revealed data.
@@ -1566,7 +1570,7 @@ the API during normal operation.
.. http:get:: /coins/$COIN_PUB/link
- Link the old public key of a melted coin to the coin(s) that were exchangeed during the refresh operation.
+ Link the old public key of a melted coin to the coin(s) that were exchanged during the refresh operation.
**Request:**
@@ -1585,11 +1589,11 @@ the API during normal operation.
.. ts:def:: LinkResponse
interface LinkResponse {
- // transfer ECDHE public key corresponding to the ``coin_pub``, used to
+ // Transfer ECDHE public key corresponding to the ``coin_pub``, used to
// compute the blinding factor and private key of the fresh coins.
transfer_pub: EcdhePublicKey;
- // array with (encrypted/blinded) information for each of the coins
+ // Array with (encrypted/blinded) information for each of the coins
// exchangeed in the refresh operation.
new_coins: NewCoinInfo[];
}
@@ -1607,7 +1611,7 @@ the API during normal operation.
coin_ev : CoinEnvelope;
// Signature made by the old coin over the refresh request.
- // Signs over a `TALER_CoinLinkSignaturePS`
+ // Signs over a `TALER_CoinLinkSignaturePS`.
link_sig: EddsaSignature;
}
@@ -1623,7 +1627,7 @@ either case, the protocol is only used in **abnormal**
situations). In the above cases, the exchange signals to the
wallets that the emergency cash back protocol has been activated
by putting the affected denomination keys into the cash-back
-part of the /keys response. If and only if this has happened,
+part of the ``/keys`` response. If and only if this has happened,
coins that were signed with those denomination keys can be cashed
in using this API.
@@ -1631,7 +1635,7 @@ in using this API.
Demand that a coin be refunded via wire transfer to the original owner.
- The base URL for "/coins/"-requests may differ from the main base URL of the
+ The base URL for ``/coins/``-requests may differ from the main base URL of the
exchange. The exchange MUST return a 307 or 308 redirection to the correct
base URL if this is the case.
@@ -1678,16 +1682,17 @@ in using this API.
// Signature over the `coin public key <eddsa-coin-pub>` by the denomination.
denom_sig: RsaSignature;
- // coin's blinding factor
+ // Coin's blinding factor.
coin_blind_key_secret: RsaBlindingKeySecret;
- // Signature of `TALER_RecoupRequestPS` created with the `coin's private key <coin-priv>`
+ // Signature of `TALER_RecoupRequestPS` created with
+ // the `coin's private key <coin-priv>`.
coin_sig: EddsaSignature;
// Was the coin refreshed (and thus the recoup should go to the old coin)?
// While this information is technically redundant, it helps the exchange
// to respond faster.
- // *Optional* (for backwards compatibility); if absent, "false" is assumed
+ // *Optional* (for backwards compatibility); if absent, ``false`` is assumed.
refreshed?: boolean;
}
@@ -1700,18 +1705,18 @@ in using this API.
.. ts:def:: RecoupWithdrawalConfirmation
interface RecoupWithdrawalConfirmation {
- // Tag to distinguish the RecoupConfirmation response type
+ // Tag to distinguish the `RecoupConfirmation` response type.
refreshed: false;
- // public key of the reserve that will receive the recoup,
+ // Public key of the reserve that will receive the recoup.
reserve_pub: EddsaPublicKey;
}
.. ts:def:: RecoupRefreshConfirmation
interface RecoupRefreshConfirmation {
- // Tag to distinguish the RecoupConfirmation response type
+ // Tag to distinguish the `RecoupConfirmation` response type.
refreshed: true;
- // public key of the old coin that will receive the recoup
+ // Public key of the old coin that will receive the recoup.
old_coin_pub: EddsaPublicKey;
}
@@ -1741,7 +1746,7 @@ may also be performed by the government auditing a merchant.
However, wire transfer identifiers should have sufficient entropy to
ensure that obtaining a successful reply by brute-force is not practical.
Nevertheless, the merchant should protect the wire transfer identifiers
-from his bank statements against unauthorized access, least his income
+from his bank statements against unauthorized access, lest his income
situation is revealed to an adversary. (This is not a major issue, as
an adversary that has access to the line-items of bank statements can
typically also view the balance.)
@@ -1769,27 +1774,27 @@ typically also view the balance.)
// Actual amount of the wire transfer, excluding the wire fee.
total: Amount;
- // Applicable wire fee that was charged
+ // Applicable wire fee that was charged.
wire_fee: Amount;
- // public key of the merchant (identical for all deposits)
+ // Public key of the merchant (identical for all deposits).
merchant_pub: EddsaPublicKey;
- // hash of the wire details (identical for all deposits)
+ // Hash of the wire details (identical for all deposits).
h_wire: HashCode;
- // Time of the execution of the wire transfer by the exchange
+ // Time of the execution of the wire transfer by the exchange.
execution_time: Timestamp;
- // details about the deposits
+ // Details about the deposits.
deposits: TrackTransferDetail[];
- // signature from the exchange made with purpose
- // `TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT`
+ // Signature from the exchange made with purpose
+ // `TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT`.
exchange_sig: EddsaSignature;
- // public EdDSA key of the exchange that was used to generate the signature.
- // Should match one of the exchange's signing keys from /keys. Again given
+ // Public EdDSA key of the exchange that was used to generate the signature.
+ // Should match one of the exchange's signing keys from ``/keys``. Again given
// explicitly as the client might otherwise be confused by clock skew as to
// which signing key was used.
exchange_pub: EddsaSignature;
@@ -1801,13 +1806,13 @@ typically also view the balance.)
// SHA-512 hash of the contact of the merchant with the customer.
h_contract_terms: HashCode;
- // coin's public key, both ECDHE and EdDSA.
+ // Coin's public key, both ECDHE and EdDSA.
coin_pub: CoinPublicKey;
// The total amount the original deposit was worth.
deposit_value: Amount;
- // applicable fees for the deposit
+ // Applicable fees for the deposit.
deposit_fee: Amount;
}
@@ -1821,7 +1826,7 @@ typically also view the balance.)
**Request:**
- :query merchant_sig: EdDSA signature of the merchant made with purpose ``TALER_SIGNATURE_MERCHANT_TRACK_TRANSACTION`` , affirming that it is really the merchant who requires obtaining the wire transfer identifier.
+ :query merchant_sig: EdDSA signature of the merchant made with purpose ``TALER_SIGNATURE_MERCHANT_TRACK_TRANSACTION``, affirming that it is really the merchant who requires obtaining the wire transfer identifier.
**Response:**
@@ -1836,30 +1841,30 @@ typically also view the balance.)
:http:statuscode:`401 Unauthorized`:
The signature is invalid.
:http:statuscode:`404 Not found`:
- The deposit operation is unknown to the exchange
+ The deposit operation is unknown to the exchange.
**Details:**
.. ts:def:: TrackTransactionResponse
interface TrackTransactionResponse {
- // raw wire transfer identifier of the deposit.
+ // Raw wire transfer identifier of the deposit.
wtid: Base32;
- // when was the wire transfer given to the bank.
+ // When was the wire transfer given to the bank.
execution_time: Timestamp;
// The contribution of this coin to the total (without fees)
coin_contribution: Amount;
- // Total amount transferred
+ // Total amount transferred.
total_amount: Amount;
- // binary-only Signature_ for purpose `TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE`
+ // Binary-only Signature_ for purpose `TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE`
// whereby the exchange affirms the successful wire transfer.
exchange_sig: EddsaSignature;
- // public EdDSA key of the exchange that was used to generate the signature.
+ // Public EdDSA key of the exchange that was used to generate the signature.
// Should match one of the exchange's signing keys from /keys. Again given
// explicitly as the client might otherwise be confused by clock skew as to
// which signing key was used.
@@ -1869,7 +1874,7 @@ typically also view the balance.)
.. ts:def:: TrackTransactionAcceptedResponse
interface TrackTransactionAcceptedResponse {
- // time by which the exchange currently thinks the deposit will be executed.
+ // Time by which the exchange currently thinks the deposit will be executed.
execution_time: Timestamp;
}
@@ -1921,7 +1926,7 @@ Refunds
// SHA-512 hash of the contact of the merchant with the customer.
h_contract_terms: HashCode;
- // 64-bit transaction id of the refund transaction between merchant and customer
+ // 64-bit transaction id of the refund transaction between merchant and customer.
rtransaction_id: Integer;
// EdDSA public key of the merchant.
@@ -1936,13 +1941,13 @@ Refunds
interface RefundSuccess {
- // the EdDSA :ref:`signature` (binary-only) with purpose
+ // The EdDSA :ref:`signature` (binary-only) with purpose
// `TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND` using a current signing key of the
- // exchange affirming the successful refund
+ // exchange affirming the successful refund.
exchange_sig: EddsaSignature;
- // public EdDSA key of the exchange that was used to generate the signature.
- // Should match one of the exchange's signing keys from /keys. It is given
+ // Public EdDSA key of the exchange that was used to generate the signature.
+ // Should match one of the exchange's signing keys from ``/keys``. It is given
// explicitly as the client might otherwise be confused by clock skew as to
// which signing key was used.
exchange_pub: EddsaPublicKey;
@@ -1958,7 +1963,7 @@ Refunds
// transaction number re-use (with different amounts).
code: Integer;
- // Human-readable description of the error message
+ // Human-readable description of the error message.
hint: string;
// Information about the conflicting refund request(s).
diff --git a/core/api-merchant.rst b/core/api-merchant.rst
index 653fc4dc..f4aa7f0d 100644
--- a/core/api-merchant.rst
+++ b/core/api-merchant.rst
@@ -76,13 +76,13 @@ Examples:
https://merchant-backend.example.com/private/instances
https://merchant-backend.example.com/private/instances/$ID
- Endpoints to manage own instance
+ Endpoints to manage own instance:
https://merchant-backend.example.com/private
https://merchant-backend.example.com/private/auth
https://merchant-backend.example.com/instances/$ID/private
https://merchant-backend.example.com/instances/$ID/private/auth
- Unavailabe endponts (will return 404):
+ Unavailabe endpoints (will return 404):
https://merchant-backend.example.com/instances/myinst/private/instances
--------------
@@ -140,8 +140,8 @@ This section describes (public) endpoints that wallets must be able
to interact with directly (without HTTP-based authentication). These
endpoints are used to process payments (claiming an order, paying
for the order, checking payment/refund status and aborting payments),
-process refunds (check refund status, obtain refund), and to pickup
-tips.
+process refunds (checking refund status, obtaining the refund),
+and to pick up tips.
Claiming an order
@@ -170,7 +170,7 @@ claim orders (say in a case where stocks are limited).
**Request:**
- The request must be a `ClaimRequest`
+ The request must be a `ClaimRequest`.
.. ts:def:: ClaimRequest
@@ -192,7 +192,7 @@ claim orders (say in a case where stocks are limited).
:http:statuscode:`404 Not found`:
The backend is unaware of the instance or order.
:http:statuscode:`409 Conflict`:
- The someone else claimed the same order ID with different nonce before.
+ Someone else has already claimed the same order ID with a different nonce.
.. ts:def:: ClaimResponse
@@ -244,7 +244,7 @@ Making the payment
The backend took too long to process the request. Likely the merchant's connection
to the exchange timed out. Try again.
:http:statuscode:`409 Conflict`:
- The exchange rejected the payment because a coin was already spent before.
+ The exchange rejected the payment because a coin was already spent.
The response will include the ``coin_pub`` for which the payment failed,
in addition to the response from the exchange to the ``/deposit`` request.
:http:statuscode:`410 Gone`:
@@ -254,12 +254,12 @@ Making the payment
list of accepted exchanges and not audited by an approved auditor.
:http:statuscode:`502 Bad gateway`:
The merchant's interaction with the exchange failed in some way.
- The client might want to try later again.
- This includes failures like the denomination key of a coin not being
+ The client might want to try again later.
+ This includes failures such as the denomination key of a coin not being
known to the exchange as far as the merchant can tell.
:http:statuscode:`504 Gateway timeout`:
The merchant's interaction with the exchange took too long.
- The client might want to try later again.
+ The client might want to try again later.
The backend will return verbatim the error codes received from the exchange's
:ref:`deposit <deposit>` API. If the wallet made a mistake, like by
@@ -294,7 +294,7 @@ Making the payment
// Signature by the coin.
coin_sig: EddsaSignature;
- // Public key of the coin being spend.
+ // Public key of the coin being spent.
coin_pub: EddsaPublicKey;
// Signature made by the denomination public key.
@@ -317,7 +317,7 @@ Querying payment status
Query the payment status of an order. This endpoint is for the wallet.
When the wallet goes to this URL and it is unpaid,
- they will be prompted for payment.
+ it will be prompted for payment.
This endpoint typically also supports requests with the "Accept" header
requesting "text/html". In this case, an HTML response suitable for
triggering the interaction with the wallet is returned, with ``timeout_ms``
@@ -332,8 +332,8 @@ Querying payment status
**Request:**
- :query h_contract=HASH: hash of the order's contract terms (this is used to authenticate the wallet/customer in case $ORDER_ID is guessable). Required once an order was claimed.
- :query token=TOKEN: *Optional*. Authorizes the request via the claim token that was returned in the `PostOrderResponse`. Used with unclaimed orders only. Whether token authorization is required is determined by the merchant when the frontend creates the order.
+ :query h_contract=HASH: Hash of the order's contract terms (this is used to authenticate the wallet/customer in case $ORDER_ID is guessable). Required once an order was claimed.
+ :query token=TOKEN: *Optional*. Authorizes the request via the claim token that was returned in the `PostOrderResponse`. Used with unclaimed orders only. Whether token authorization is required is determined by the merchant when the frontend creates the order.
:query session_id=STRING: *Optional*. Session ID that the payment must be bound to. If not specified, the payment is not session-bound.
:query timeout_ms=NUMBER: *Optional.* If specified, the merchant backend will
wait up to ``timeout_ms`` milliseconds for completion of the payment before
@@ -368,7 +368,7 @@ Querying payment status
// Was the payment refunded (even partially, via refund or abort)?
refunded: boolean;
- // Is any amount of the refund still waiting to be picked up (even partially)
+ // Is any amount of the refund still waiting to be picked up (even partially)?
refund_pending: boolean;
// Amount that was refunded in total.
@@ -401,7 +401,7 @@ Querying payment status
.. ts:def:: StatusGoneResponse
// The client tried to access the order via the claim
- // token (and not a valid h_contract), but the order can't be claimed
+ // token (and not a valid ``h_contract``), but the order can't be claimed
// anymore, as it is already paid.
interface StatusGoneResponse {
// Fulfillment URL for the order.
@@ -428,7 +428,7 @@ again.
Prove that the client previously paid for an order by providing
the merchant's signature from the `payment response <PaymentResponse>`.
Typically used by the customer's wallet if it receives a request for
- payment for an order that it already paid. This is more compact then
+ payment for an order that it already paid. This is more compact than
re-transmitting the full payment details.
Note that this request does include the
usual ``h_contract`` argument to authenticate the wallet and
@@ -464,7 +464,7 @@ again.
// key of the merchant instance.
sig: EddsaSignature;
- // hash of the order's contract terms (this is used to authenticate the
+ // Hash of the order's contract terms (this is used to authenticate the
// wallet/customer and to enable signature verification without
// database access).
h_contract: HashCode;
@@ -481,7 +481,7 @@ In rare cases (such as a wallet restoring from an outdated backup) it is possibl
that a wallet fails to complete a payment because it runs out of e-cash in the
middle of the process. The abort API allows the wallet to abort the payment for
such an incomplete payment and to regain control over the coins that were spent
-so far. Aborts are not permitted for payments that completed. In contrast to
+so far. Aborts are not permitted for payments that have completed. In contrast to
refunds, aborts do not require approval by the merchant because aborts always
are for incomplete payments for an order and never for established contracts.
@@ -530,7 +530,7 @@ are for incomplete payments for an order and never for established contracts.
The error from the exchange is included.
:http:statuscode:`504 Gateway timeout`:
The merchant's interaction with the exchange took too long.
- The client might want to try later again.
+ The client might want to try again later.
The backend will return an `abort response <AbortResponse>`, which includes
verbatim the error codes received from the exchange's
@@ -541,7 +541,7 @@ are for incomplete payments for an order and never for established contracts.
interface AbortRequest {
- // hash of the order's contract terms (this is used to authenticate the
+ // Hash of the order's contract terms (this is used to authenticate the
// wallet/customer in case $ORDER_ID is guessable).
h_contract: HashCode;
@@ -570,9 +570,9 @@ are for incomplete payments for an order and never for established contracts.
interface AbortResponse {
// List of refund responses about the coins that the wallet
- // requested an abort for. In the same order as the 'coins'
+ // requested an abort for. In the same order as the ``coins``
// from the original request.
- // The rtransaction_id is implied to be 0.
+ // The ``rtransaction_id`` is implied to be 0.
refunds: MerchantAbortPayRefundStatus[];
}
@@ -587,7 +587,7 @@ are for incomplete payments for an order and never for established contracts.
// Details about why a refund failed.
interface MerchantAbortPayRefundFailureStatus {
// Used as tag for the sum type RefundStatus sum type.
- type: "failure"
+ type: "failure";
// HTTP status of the exchange request, must NOT be 200.
exchange_status: Integer;
@@ -606,18 +606,18 @@ are for incomplete payments for an order and never for established contracts.
// to the wallet and thus not included.
interface MerchantAbortPayRefundSuccessStatus {
// Used as tag for the sum type MerchantCoinRefundStatus sum type.
- type: "success"
+ type: "success";
// HTTP status of the exchange request, 200 (integer) required for refund confirmations.
exchange_status: 200;
- // the EdDSA :ref:`signature` (binary-only) with purpose
+ // The EdDSA :ref:`signature` (binary-only) with purpose
// `TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND` using a current signing key of the
- // exchange affirming the successful refund
+ // exchange affirming the successful refund.
exchange_sig: EddsaSignature;
- // public EdDSA key of the exchange that was used to generate the signature.
- // Should match one of the exchange's signing keys from /keys. It is given
+ // Public EdDSA key of the exchange that was used to generate the signature.
+ // Should match one of the exchange's signing keys from ``/keys``. It is given
// explicitly as the client might otherwise be confused by clock skew as to
// which signing key was used.
exchange_pub: EddsaPublicKey;
@@ -655,7 +655,7 @@ the contract. Refunds must be approved by the merchant's business logic.
.. ts:def:: WalletRefundRequest
interface WalletRefundRequest {
- // hash of the order's contract terms (this is used to authenticate the
+ // Hash of the order's contract terms (this is used to authenticate the
// wallet/customer).
h_contract: HashCode;
}
@@ -699,7 +699,7 @@ the contract. Refunds must be approved by the merchant's business logic.
// Refund transaction ID.
rtransaction_id: Integer;
- // public key of a coin that was refunded
+ // Public key of a coin that was refunded.
coin_pub: EddsaPublicKey;
// Amount that was refunded, including refund fee charged by the exchange
@@ -719,12 +719,12 @@ the contract. Refunds must be approved by the merchant's business logic.
// HTTP status of the exchange request, 200 (integer) required for refund confirmations.
exchange_status: 200;
- // the EdDSA :ref:`signature` (binary-only) with purpose
+ // The EdDSA :ref:`signature` (binary-only) with purpose
// `TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND` using a current signing key of the
- // exchange affirming the successful refund
+ // exchange affirming the successful refund.
exchange_sig: EddsaSignature;
- // public EdDSA key of the exchange that was used to generate the signature.
+ // Public EdDSA key of the exchange that was used to generate the signature.
// Should match one of the exchange's signing keys from /keys. It is given
// explicitly as the client might otherwise be confused by clock skew as to
// which signing key was used.
@@ -733,7 +733,7 @@ the contract. Refunds must be approved by the merchant's business logic.
// Refund transaction ID.
rtransaction_id: Integer;
- // public key of a coin that was refunded
+ // Public key of a coin that was refunded.
coin_pub: EddsaPublicKey;
// Amount that was refunded, including refund fee charged by the exchange
@@ -777,7 +777,7 @@ a website.
// wallet to determine denominations, fees, etc.
exchange_url: string;
- // (remaining) amount of the tip (including fees).
+ // (Remaining) amount of the tip (including fees).
tip_amount: Amount;
// Timestamp indicating when the tip is set to expire (may be in the past).
@@ -797,7 +797,7 @@ a website.
**Response:**
:http:statuscode:`200 OK`:
- A tip is being returned. The backend responds with a `TipResponse`
+ A tip is being returned. The backend responds with a `TipResponse`.
:http:statuscode:`401 Unauthorized`:
The tip amount requested exceeds the tip.
:http:statuscode:`404 Not found`:
@@ -811,7 +811,7 @@ a website.
interface TipPickupRequest {
- // List of planches the wallet wants to use for the tip
+ // List of planchets the wallet wants to use for the tip.
planchets: PlanchetDetail[];
}
@@ -819,10 +819,10 @@ a website.
interface PlanchetDetail {
// Hash of the denomination's public key (hashed to reduce
- // bandwidth consumption)
+ // bandwidth consumption).
denom_pub_hash: HashCode;
- // coin's blinded public key
+ // Coin's blinded public key.
coin_ev: CoinEnvelope;
}
@@ -859,7 +859,7 @@ Setting up instances
.. http:post:: /private/instances
This request will be used to create a new merchant instance in the backend.
- It is only available at the implicit default instance.
+ It is only available for the implicit ``default`` instance.
**Request:**
@@ -912,7 +912,7 @@ Setting up instances
// Can be overridden by the frontend on a per-order basis.
default_max_deposit_fee: Amount;
- // If the frontend does NOT specify an execution date, how long should
+ // If the frontend does NOT specify an execution date, how long should
// we tell the exchange to wait to aggregate transactions before
// executing the wire transfer? This delay is added to the current
// time when we generate the advisory execution time for the exchange.
@@ -931,7 +931,7 @@ Setting up instances
Update the authentication settings for an instance. POST operations against
an instance are authenticated by checking that an authorization is provided
that matches either the credential required by the instance being modified
- OR the 'default' instance, depending on the access path used.
+ OR the ``default`` instance, depending on the access path used.
**Request** the request must be an `InstanceAuthConfigurationMessage`.
@@ -967,12 +967,12 @@ Setting up instances
Update the configuration of a merchant instance. PATCH operations against
an instance are authenticated by checking that an authorization is provided
that matches either the credential required by the instance being modified
- OR the 'default' instance, depending on the access path used.
+ OR the ``default`` instance, depending on the access path used.
**Request**
The request must be a `InstanceReconfigurationMessage`.
- Removing an existing payto_uri deactivates
+ Removing an existing ``payto_uri`` deactivates
the account (it will no longer be used for future contracts).
**Response:**
@@ -986,8 +986,9 @@ Setting up instances
interface InstanceReconfigurationMessage {
// The URI where the wallet will send coins. A merchant may have
- // multiple accounts, thus this is an array. Note that by
- // removing URIs from this list
+ // multiple accounts, thus this is an array. Note that removing
+ // URIs from this list deactivates the specified accounts
+ // (they will no longer be used for future contracts).
payto_uris: string[];
// Merchant name corresponding to this instance.
@@ -1012,7 +1013,7 @@ Setting up instances
// Can be overridden by the frontend on a per-order basis.
default_max_deposit_fee: Amount;
- // If the frontend does NOT specify an execution date, how long should
+ // If the frontend does NOT specify an execution date, how long should
// we tell the exchange to wait to aggregate transactions before
// executing the wire transfer? This delay is added to the current
// time when we generate the advisory execution time for the exchange.
@@ -1032,7 +1033,7 @@ Inspecting instances
.. http:get:: /private/instances
This is used to return the list of all the merchant instances.
- It is only available at the implicit default instance.
+ It is only available for the implicit ``default`` instance.
**Response:**
@@ -1044,7 +1045,7 @@ Inspecting instances
.. ts:def:: InstancesResponse
interface InstancesResponse {
- // List of instances that are present in the backend (see `Instance`)
+ // List of instances that are present in the backend (see `Instance`).
instances: Instance[];
}
@@ -1058,7 +1059,7 @@ Inspecting instances
// Merchant name corresponding to this instance.
name: string;
- // Merchant instance this response is about ($INSTANCE)
+ // Merchant instance this response is about ($INSTANCE).
id: string;
// Public key of the merchant/instance, in Crockford Base32 encoding.
@@ -1078,7 +1079,7 @@ Inspecting instances
This is used to query a specific merchant instance. GET operations against
an instance are authenticated by checking that an authorization is provided
that matches either the credential required by the instance being modified
- OR the 'default' instance, depending on the access path used.
+ OR the ``default`` instance, depending on the access path used.
**Response:**
@@ -1118,7 +1119,7 @@ Inspecting instances
// Can be overridden by the frontend on a per-order basis.
default_max_deposit_fee: Amount;
- // If the frontend does NOT specify an execution date, how long should
+ // If the frontend does NOT specify an execution date, how long should
// we tell the exchange to wait to aggregate transactions before
// executing the wire transfer? This delay is added to the current
// time when we generate the advisory execution time for the exchange.
@@ -1143,10 +1144,10 @@ Inspecting instances
// payto:// URI of the account.
payto_uri: string;
- // Hash over the wire details (including over the salt)
+ // Hash over the wire details (including over the salt).
h_wire: HashCode;
- // salt used to compute h_wire
+ // Salt used to compute h_wire.
salt: HashCode;
// true if this account is active,
@@ -1168,7 +1169,7 @@ Deleting instances
and makes the instance unusable for new orders or payments.
For deletion, the authentication credentials must match
- the instance that is being deleted or the 'default'
+ the instance that is being deleted or the ``default``
instance, depending on the access path used.
**Request:**
@@ -1182,13 +1183,13 @@ Deleting instances
The backend has successfully removed the instance. The body is empty.
:http:statuscode:`401 Unauthorized`:
The request is unauthorized. Note that for already deleted instances,
- the request must be authorized using the 'default' instance.
+ the request must be authorized using the ``default`` instance.
:http:statuscode:`404 Not found`:
The instance is unknown to the backend.
:http:statuscode:`409 Conflict`:
The instance cannot be deleted because it has pending offers, or
the instance cannot be purged because it has successfully processed
- payments that have not passed the TAX_RECORD_EXPIRATION time.
+ payments that have not passed the ``TAX_RECORD_EXPIRATION`` time.
The latter case only applies if ``purge`` was set.
@@ -1228,16 +1229,16 @@ Adding products to the inventory
interface ProductAddDetail {
- // product ID to use.
+ // Product ID to use.
product_id: string;
// Human-readable product description.
description: string;
- // Map from IETF BCP 47 language tags to localized descriptions
+ // Map from IETF BCP 47 language tags to localized descriptions.
description_i18n: { [lang_tag: string]: string };
- // unit in which the product is measured (liters, kilograms, packages, etc.)
+ // Unit in which the product is measured (liters, kilograms, packages, etc.).
unit: string;
// The price for one ``unit`` of the product. Zero is used
@@ -1247,10 +1248,10 @@ Adding products to the inventory
// taxes.
price: Amount;
- // An optional base64-encoded product image
+ // An optional base64-encoded product image.
image: ImageDataUrl;
- // a list of taxes paid by the merchant for one unit of this product
+ // A list of taxes paid by the merchant for one unit of this product.
taxes: Tax[];
// Number of units of the product in stock in sum in total,
@@ -1278,7 +1279,7 @@ Adding products to the inventory
request are optional, those that are not given are simply preserved (not
modified). Note that the ``description_i18n`` and ``taxes`` can only be
modified in bulk: if it is given, all translations must be provided, not
- only those that changed. "never" should be used for the ``next_restock``
+ only those that changed. ``never`` should be used for the ``next_restock``
timestamp to indicate no intention/possibility of restocking, while a time
of zero is used to indicate "unknown".
@@ -1299,10 +1300,10 @@ Adding products to the inventory
// Human-readable product description.
description: string;
- // Map from IETF BCP 47 language tags to localized descriptions
+ // Map from IETF BCP 47 language tags to localized descriptions.
description_i18n: { [lang_tag: string]: string };
- // unit in which the product is measured (liters, kilograms, packages, etc.)
+ // Unit in which the product is measured (liters, kilograms, packages, etc.).
unit: string;
// The price for one ``unit`` of the product. Zero is used
@@ -1312,10 +1313,10 @@ Adding products to the inventory
// taxes.
price: Amount;
- // An optional base64-encoded product image
+ // An optional base64-encoded product image.
image: ImageDataUrl;
- // a list of taxes paid by the merchant for one unit of this product
+ // A list of taxes paid by the merchant for one unit of this product.
taxes: Tax[];
// Number of units of the product in stock in sum in total,
@@ -1324,7 +1325,7 @@ Adding products to the inventory
// A value of -1 indicates "infinite" (i.e. for "electronic" books).
total_stock: Integer;
- // Number of units of the product that were lost (spoiled, stolen, etc.)
+ // Number of units of the product that were lost (spoiled, stolen, etc.).
total_lost: Integer;
// Identifies where the product is in stock.
@@ -1351,7 +1352,7 @@ Inspecting inventory
.. ts:def:: InventorySummaryResponse
interface InventorySummaryResponse {
- // List of products that are present in the inventory
+ // List of products that are present in the inventory.
products: InventoryEntry[];
}
@@ -1383,10 +1384,10 @@ Inspecting inventory
// Human-readable product description.
description: string;
- // Map from IETF BCP 47 language tags to localized descriptions
+ // Map from IETF BCP 47 language tags to localized descriptions.
description_i18n: { [lang_tag: string]: string };
- // unit in which the product is measured (liters, kilograms, packages, etc.)
+ // Unit in which the product is measured (liters, kilograms, packages, etc.).
unit: string;
// The price for one ``unit`` of the product. Zero is used
@@ -1396,10 +1397,10 @@ Inspecting inventory
// taxes.
price: Amount;
- // An optional base64-encoded product image
+ // An optional base64-encoded product image.
image: ImageDataUrl;
- // a list of taxes paid by the merchant for one unit of this product
+ // A list of taxes paid by the merchant for one unit of this product.
taxes: Tax[];
// Number of units of the product in stock in sum in total,
@@ -1411,7 +1412,7 @@ Inspecting inventory
// Number of units of the product that have already been sold.
total_sold: Integer;
- // Number of units of the product that were lost (spoiled, stolen, etc.)
+ // Number of units of the product that were lost (spoiled, stolen, etc.).
total_lost: Integer;
// Identifies where the product is in stock.
@@ -1435,7 +1436,7 @@ Reserving inventory
``duration`` or ``quantity`` updates the existing lock for the same UUID
and does not result in a conflict.
- Unlocking by using a ``quantity`` of zero is is
+ Unlocking by using a ``quantity`` of zero is
optional but recommended if customers remove products from the
shopping cart. Note that actually POSTing to ``/orders`` with set
``manage_inventory`` and using ``lock_uuid`` will **transition** the
@@ -1466,7 +1467,7 @@ Reserving inventory
// see https://github.com/anthonynsimon/timeflake
lock_uuid: UUID;
- // How long does the frontend intend to hold the lock
+ // How long does the frontend intend to hold the lock?
duration: RelativeTime;
// How many units should be locked?
@@ -1476,7 +1477,7 @@ Reserving inventory
.. note::
- The GNUNET_CRYPTO_random_timeflake() C API can be used
+ The ``GNUNET_CRYPTO_random_timeflake()`` C API can be used
to generate such timeflakes for clients written in C.
@@ -1502,7 +1503,7 @@ Removing products from inventory
Payment processing
------------------
-To process Taler payments, a merchant must first setup an order with
+To process Taler payments, a merchant must first set up an order with
the merchant backend. The order is then claimed by a wallet, and
paid by the wallet. The merchant can check the payment status of the
order. Once the order is paid, the merchant may (for a limited time)
@@ -1553,19 +1554,19 @@ Creating orders
interface PostOrderRequest {
// The order must at least contain the minimal
- // order detail, but can override all
+ // order detail, but can override all.
order: Order;
- // if set, the backend will then set the refund deadline to the current
+ // If set, the backend will then set the refund deadline to the current
// time plus the specified delay. If it's not set, refunds will not be
// possible.
refund_delay?: RelativeTime;
- // specifies the payment target preferred by the client. Can be used
+ // Specifies the payment target preferred by the client. Can be used
// to select among the various (active) wire methods supported by the instance.
payment_target?: string;
- // specifies that some products are to be included in the
+ // Specifies that some products are to be included in the
// order from the inventory. For these inventory management
// is performed (so the products must be in stock) and
// details are completed from the product data of the backend.
@@ -1575,7 +1576,7 @@ Creating orders
// lock a product in the inventory. Only useful if
// ``manage_inventory`` is set. Used in case a frontend
// reserved quantities of the individual products while
- // the shopping card was being built. Multiple UUIDs can
+ // the shopping cart was being built. Multiple UUIDs can
// be used in case different UUIDs were used for different
// products (i.e. in case the user started with multiple
// shopping sessions that were combined during checkout).
@@ -1599,10 +1600,10 @@ Creating orders
.. ts:def:: MinimalOrderDetail
interface MinimalOrderDetail {
- // Amount to be paid by the customer
+ // Amount to be paid by the customer.
amount: Amount;
- // Short summary of the order
+ // Short summary of the order.
summary: string;
// URL that will show that the order was successful after
@@ -1617,7 +1618,7 @@ Creating orders
The following fields can be specified if the order is inventory-based.
In this case, the backend can compute the amounts from the prices given
in the inventory. Note that if the frontend does give more details
- (towards the ContractTerms), this will override those details
+ (portions of ``ContractTerms``), this will override those details
(including total price) that would otherwise computed based on information
from the inventory.
@@ -1633,10 +1634,10 @@ Creating orders
that the backend would otherwise fill in via the inventory.
interface MinimalInventoryProduct {
- // Which product is requested (here mandatory!)
+ // Which product is requested (here mandatory!).
product_id: string;
- // How many units of the product are requested
+ // How many units of the product are requested.
quantity: Integer;
}
@@ -1644,7 +1645,7 @@ Creating orders
.. ts:def:: PostOrderResponse
interface PostOrderResponse {
- // Order ID of the response that was just created
+ // Order ID of the response that was just created.
order_id: string;
// Token that authorizes the wallet to claim the order.
@@ -1658,13 +1659,13 @@ Creating orders
interface OutOfStockResponse {
- // Product ID of an out-of-stock item
+ // Product ID of an out-of-stock item.
product_id: string;
- // Requested quantity
+ // Requested quantity.
requested_quantity: Integer;
- // Available quantity (must be below ``requested_quanitity``)
+ // Available quantity (must be below ``requested_quantity``).
available_quantity: Integer;
// When do we expect the product to be again in stock?
@@ -1685,10 +1686,10 @@ Inspecting orders
:query paid: *Optional*. If set to yes, only return paid orders, if no only unpaid orders. Do not give (or use "all") to see all orders regardless of payment status.
:query refunded: *Optional*. If set to yes, only return refunded orders, if no only unrefunded orders. Do not give (or use "all") to see all orders regardless of refund status.
:query wired: *Optional*. If set to yes, only return wired orders, if no only orders with missing wire transfers. Do not give (or use "all") to see all orders regardless of wire transfer status.
- :query date: *Optional.* Time threshold, see ``delta`` for its interpretation. Defaults to the oldest or most recent entry, depending on ``delta``.
+ :query date: *Optional.* Time threshold in human readable format (yyyy/MM/dd HH:mm:ss), see ``delta`` for its interpretation. Defaults to the oldest or most recent entry, depending on ``delta``.
:query start: *Optional*. Row number threshold, see ``delta`` for its interpretation. Defaults to ``UINT64_MAX``, namely the biggest row id possible in the database.
:query delta: *Optional*. takes value of the form ``N (-N)``, so that at most ``N`` values strictly older (younger) than ``start`` and ``date`` are returned. Defaults to ``-20`` to return the last 20 entries (before ``start`` and/or ``date``).
- :query timeout_ms: *Optional*. Timeout in milli-seconds to wait for additional orders if the answer would otherwise be negative (long polling). Only useful if delta is positive. Note that the merchant MAY still return a response that contains fewer than delta orders.
+ :query timeout_ms: *Optional*. Timeout in milliseconds to wait for additional orders if the answer would otherwise be negative (long polling). Only useful if delta is positive. Note that the merchant MAY still return a response that contains fewer than ``delta`` orders.
**Response:**
@@ -1698,7 +1699,7 @@ Inspecting orders
.. ts:def:: OrderHistory
interface OrderHistory {
- // timestamp-sorted array of all orders matching the query.
+ // Timestamp-sorted array of all orders matching the query.
// The order of the sorting depends on the sign of ``delta``.
orders : OrderHistoryEntry[];
}
@@ -1708,28 +1709,28 @@ Inspecting orders
interface OrderHistoryEntry {
- // order ID of the transaction related to this entry.
+ // Order ID of the transaction related to this entry.
order_id: string;
- // row ID of the order in the database
+ // Row ID of the order in the database.
row_id: number;
- // when the order was created
+ // When the order was created.
timestamp: Timestamp;
- // the amount of money the order is for
+ // The amount of money the order is for.
amount: Amount;
- // the summary of the order
+ // The summary of the order.
summary: string;
- // whether some part of the order is refundable,
+ // Whether some part of the order is refundable,
// that is the refund deadline has not yet expired
// and the total amount refunded so far is below
// the value of the original transaction.
refundable: boolean;
- // whether the order has been paid or not
+ // Whether the order has been paid or not.
paid: boolean;
}
@@ -1746,7 +1747,7 @@ Inspecting orders
:query session_id: *Optional*. Session ID that the payment must be bound to. If not specified, the payment is not session-bound.
:query transfer: *Optional*. If set to "YES", try to obtain the wire transfer status for this order from the exchange. Otherwise, the wire transfer status MAY be returned if it is available.
- :query timeout_ms: *Optional*. Timeout in milli-seconds to wait for a payment if the answer would otherwise be negative (long polling).
+ :query timeout_ms: *Optional*. Timeout in milliseconds to wait for a payment if the answer would otherwise be negative (long polling).
**Response:**
@@ -1758,26 +1759,28 @@ Inspecting orders
We failed to obtain a response from the exchange (about the wire transfer status).
:http:statuscode:`504 Gateway timeout`:
The merchant's interaction with the exchange took too long.
- The client might want to try later again.
+ The client might want to try again later.
.. ts:def:: MerchantOrderStatusResponse
- type MerchantOrderStatusResponse = CheckPaymentPaidResponse | CheckPaymentClaimedResponse | CheckPaymentUnpaidResponse
+ type MerchantOrderStatusResponse = CheckPaymentPaidResponse |
+ CheckPaymentClaimedResponse |
+ CheckPaymentUnpaidResponse;
.. ts:def:: CheckPaymentPaidResponse
interface CheckPaymentPaidResponse {
- // the customer paid for this contract
+ // The customer paid for this contract.
order_status: "paid";
- // Was the payment refunded (even partially)
+ // Was the payment refunded (even partially)?
refunded: boolean;
// True if there are any approved refunds that the wallet has
// not yet obtained.
refund_pending: boolean;
- // Did the exchange wire us the funds
+ // Did the exchange wire us the funds?
wired: boolean;
// Total amount the exchange deposited into our bank account
@@ -1798,13 +1801,15 @@ Inspecting orders
// Total amount that was refunded, 0 if refunded is false.
refund_amount: Amount;
- // Contract terms
+ // Contract terms.
contract_terms: ContractTerms;
- // The wire transfer status from the exchange for this order if available, otherwise empty array
+ // The wire transfer status from the exchange for this order if
+ // available, otherwise empty array.
wire_details: TransactionWireTransfer[];
- // Reports about trouble obtaining wire transfer details, empty array if no trouble were encountered.
+ // Reports about trouble obtaining wire transfer details,
+ // empty array if no trouble were encountered.
wire_reports: TransactionWireReport[];
// The refund details for this order. One entry per
@@ -1819,10 +1824,10 @@ Inspecting orders
.. ts:def:: CheckPaymentClaimedResponse
interface CheckPaymentClaimedResponse {
- // a wallet claimed the order, but did not yet pay for the contract
+ // A wallet claimed the order, but did not yet pay for the contract.
order_status: "claimed";
- // Contract terms
+ // Contract terms.
contract_terms: ContractTerms;
}
@@ -1830,7 +1835,7 @@ Inspecting orders
.. ts:def:: CheckPaymentUnpaidResponse
interface CheckPaymentUnpaidResponse {
- // the order was neither claimed nor paid
+ // The order was neither claimed nor paid.
order_status: "unpaid";
// URI that the wallet must process to complete the payment.
@@ -1855,10 +1860,10 @@ Inspecting orders
.. ts:def:: RefundDetails
interface RefundDetails {
- // Reason given for the refund
+ // Reason given for the refund.
reason: string;
- // when was the refund approved
+ // When was the refund approved.
timestamp: Timestamp;
// Total amount that was refunded (minus a refund fee).
@@ -1868,17 +1873,17 @@ Inspecting orders
.. ts:def:: TransactionWireTransfer
interface TransactionWireTransfer {
- // Responsible exchange
+ // Responsible exchange.
exchange_url: string;
- // 32-byte wire transfer identifier
+ // 32-byte wire transfer identifier.
wtid: Base32;
- // execution time of the wire transfer
+ // Execution time of the wire transfer.
execution_time: Timestamp;
// Total amount that has been wire transferred
- // to the merchant
+ // to the merchant.
amount: Amount;
// Was this transfer confirmed by the merchant via the
@@ -1889,10 +1894,10 @@ Inspecting orders
.. ts:def:: TransactionWireReport
interface TransactionWireReport {
- // Numerical `error code <error-codes>`
+ // Numerical `error code <error-codes>`.
code: number;
- // Human-readable error description
+ // Human-readable error description.
hint: string;
// Numerical `error code <error-codes>` from the exchange.
@@ -1907,6 +1912,8 @@ Inspecting orders
+.. _private-order-data-cleanup:
+
Private order data cleanup
--------------------------
@@ -1949,7 +1956,7 @@ the contract!) to minimize risks from information leakage.
The request is malformed or one of the paths is invalid.
:http:statuscode:`404 Not found`:
The merchant backend could not find the order or the instance
- and thus cannot process the abort request.
+ and thus cannot process the forget request.
:http:statuscode:`409 Conflict`:
The request includes a field that was not marked as forgettable, so
the merchant cannot delete that field.
@@ -1967,7 +1974,7 @@ the contract!) to minimize risks from information leakage.
.. http:delete:: [/instances/$INSTANCE]/private/orders/$ORDER_ID
Delete information about an order. Fails if the order was paid in the
- last 10 years (or whatever TAX_RECORD_EXPIRATION is set to) or was
+ last 10 years (or whatever ``TAX_RECORD_EXPIRATION`` is set to) or was
claimed but is unpaid and thus still a valid offer.
**Response:**
@@ -1998,24 +2005,26 @@ Giving Refunds
**Response:**
:http:statuscode:`200 OK`:
- The refund amount has been increased, the backend responds with a `MerchantRefundResponse`
+ The refund amount has been increased, the backend
+ responds with a `MerchantRefundResponse`.
:http:statuscode:`403 Forbidden`:
- For the given order, the refund delay was zero and thus refunds are categorically not allowed.
+ For the given order, the refund delay was zero and thus
+ refunds are categorically not allowed.
:http:statuscode:`404 Not found`:
- The order is unknown to the merchant
+ The order is unknown to the merchant.
:http:statuscode:`410 Gone`:
It is too late for aborting, the exchange may have already wired the funds
to the merchant.
:http:statuscode:`409 Conflict`:
- The refund amount exceeds the amount originally paid
+ The refund amount exceeds the amount originally paid.
.. ts:def:: RefundRequest
interface RefundRequest {
- // Amount to be refunded
+ // Amount to be refunded.
refund: Amount;
- // Human-readable refund justification
+ // Human-readable refund justification.
reason: string;
}
@@ -2083,43 +2092,43 @@ Informing the backend about incoming wire transfers
The wire transfer identifier is already known to us, but for a different amount,
wire method or exchange.
:http:statuscode:`502 Bad gateway`:
- The exchange returned an error when we asked it about the "GET /transfer" status
+ The exchange returned an error when we asked it about the ``GET /transfer`` status
for this wire transfer. Details of the exchange error are returned.
:http:statuscode:`504 Gateway timeout`:
The merchant's interaction with the exchange took too long.
- The client might want to try later again.
+ The client might want to try again later.
**Details:**
.. ts:def:: TransferInformation
interface TransferInformation {
- // how much was wired to the merchant (minus fees)
+ // How much was wired to the merchant (minus fees).
credit_amount: Amount;
- // raw wire transfer identifier identifying the wire transfer (a base32-encoded value)
+ // Raw wire transfer identifier identifying the wire transfer (a base32-encoded value).
wtid: WireTransferIdentifierRawP;
- // target account that received the wire transfer
+ // Target account that received the wire transfer.
payto_uri: string;
- // base URL of the exchange that made the wire transfer
+ // Base URL of the exchange that made the wire transfer.
exchange_url: string;
}
.. ts:def:: MerchantTrackTransferResponse
interface MerchantTrackTransferResponse {
- // Total amount transferred
+ // Total amount transferred.
total: Amount;
- // Applicable wire fee that was charged
+ // Applicable wire fee that was charged.
wire_fee: Amount;
- // Time of the execution of the wire transfer by the exchange, according to the exchange
+ // Time of the execution of the wire transfer by the exchange, according to the exchange.
execution_time: Timestamp;
- // details about the deposits
+ // Details about the deposits.
deposits_sums: MerchantTrackTransferDetail[];
}
@@ -2133,19 +2142,20 @@ Informing the backend about incoming wire transfers
// The total amount the exchange paid back for ``order_id``.
deposit_value: Amount;
- // applicable fees for the deposit
+ // Applicable fees for the deposit.
deposit_fee: Amount;
}
.. ts:def:: ExchangeConflictDetails
- type ExchangeConflictDetails = WireFeeConflictDetails | TrackTransferConflictDetails
+ type ExchangeConflictDetails = WireFeeConflictDetails |
+ TrackTransferConflictDetails;
.. ts:def:: WireFeeConflictDetails
- // Note: this is not the full 'proof' of missbehavior, as
+ // Note: this is not the full 'proof' of misbehavior, as
// the bogus message from the exchange with a signature
// over the 'different' wire fee is missing.
//
@@ -2161,30 +2171,29 @@ Informing the backend about incoming wire transfers
// Text describing the issue for humans.
hint: string;
-
// Wire fee (wrongly) charged by the exchange, breaking the
- // contract affirmed by the exchange_sig.
+ // contract affirmed by the ``exchange_sig``.
wire_fee: Amount;
- // Timestamp of the wire transfer
+ // Timestamp of the wire transfer.
execution_time: Timestamp;
- // The expected wire fee (as signed by the exchange)
+ // The expected wire fee (as signed by the exchange).
expected_wire_fee: Amount;
- // Expected closing fee (needed to verify signature)
+ // Expected closing fee (needed to verify signature).
expected_closing_fee: Amount;
- // Start date of the expected fee structure
+ // Start date of the expected fee structure.
start_date: Timestamp;
- // End date of the expected fee structure
+ // End date of the expected fee structure.
end_date: Timestamp;
- // Signature of the exchange affirming the expected fee structure
+ // Signature of the exchange affirming the expected fee structure.
master_sig: EddsaSignature;
- // Master public key of the exchange
+ // Master public key of the exchange.
master_pub: EddsaPublicKey;
}
@@ -2192,7 +2201,7 @@ Informing the backend about incoming wire transfers
.. ts:def:: TrackTransferConflictDetails
interface TrackTransferConflictDetails {
- // Numerical `error code <error-codes>`
+ // Numerical `error code <error-codes>`.
code: "TALER_EC_MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_REPORTS";
// Text describing the issue for humans.
@@ -2221,14 +2230,14 @@ Informing the backend about incoming wire transfers
// Signs over a ``struct TALER_DepositConfirmationPS``.
deposit_exchange_sig: EddsaSignature;
- // Hash of the merchant's bank account the wire transfer went to
+ // Hash of the merchant's bank account the wire transfer went to.
h_wire: HashCode;
// Hash of the contract terms with the conflicting deposit.
h_contract_terms: HashCode;
// At what time the exchange received the deposit. Needed
- // to verify the \exchange_sig\.
+ // to verify the ``exchange_sig``.
deposit_timestamp: Timestamp;
// At what time the refund possibility expired (needed to verify ``exchange_sig``).
@@ -2254,17 +2263,17 @@ Informing the backend about incoming wire transfers
.. ts:def:: TrackTransferProof
interface TrackTransferProof {
- // signature from the exchange made with purpose
- // ``TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT``
+ // Signature from the exchange made with purpose
+ // ``TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT``.
exchange_sig: EddsaSignature;
- // public EdDSA key of the exchange that was used to generate the signature.
- // Should match one of the exchange's signing keys from /keys. Again given
+ // Public EdDSA key of the exchange that was used to generate the signature.
+ // Should match one of the exchange's signing keys from ``/keys``. Again given
// explicitly as the client might otherwise be confused by clock skew as to
// which signing key was used.
exchange_pub: EddsaSignature;
- // hash of the wire details (identical for all deposits)
+ // Hash of the wire details (identical for all deposits).
// Needed to check the ``exchange_sig``
h_wire: HashCode;
}
@@ -2276,7 +2285,7 @@ Querying known wire transfers
.. http:get:: [/instances/$INSTANCE]/private/transfers
Obtain a list of all wire transfers the backend has checked. Note that when
- filtering by timestamp (using "before" and/or "after"), we use the time
+ filtering by timestamp (using ``before`` and/or ``after``), we use the time
reported by the exchange and thus will ONLY return results for which we already
have a response from the exchange. This should be virtually all transfers, however
it is conceivable that for some transfer the exchange responded with a temporary
@@ -2286,15 +2295,15 @@ Querying known wire transfers
**Request:**
- :query payto_uri: *Optional*. Filter for transfers to the given bank account (subject and amount MUST NOT be given in the payto URI)
+ :query payto_uri: *Optional*. Filter for transfers to the given bank account (subject and amount MUST NOT be given in the payto URI).
- :query before: *Optional*. Filter for transfers executed before the given timestamp
+ :query before: *Optional*. Filter for transfers executed before the given timestamp.
- :query after: *Optional*. Filter for transfers executed after the given timestamp
+ :query after: *Optional*. Filter for transfers executed after the given timestamp.
- :query limit: *Optional*. At most return the given number of results. Negative for descending in execution time, positive for ascending in execution time. Default is -20.
+ :query limit: *Optional*. At most return the given number of results. Negative for descending in execution time, positive for ascending in execution time. Default is ``-20``.
- :query offset: *Optional*. Starting transfer_serial_id for an iteration.
+ :query offset: *Optional*. Starting ``transfer_serial_id`` for an iteration.
:query verified: *Optional*. Filter transfers by verification status.
@@ -2307,23 +2316,23 @@ Querying known wire transfers
.. ts:def:: TransferList
interface TransferList {
- // list of all the transfers that fit the filter that we know
+ // List of all the transfers that fit the filter that we know.
transfers : TransferDetails[];
}
.. ts:def:: TransferDetails
interface TransferDetails {
- // how much was wired to the merchant (minus fees)
+ // How much was wired to the merchant (minus fees).
credit_amount: Amount;
- // raw wire transfer identifier identifying the wire transfer (a base32-encoded value)
+ // Raw wire transfer identifier identifying the wire transfer (a base32-encoded value).
wtid: WireTransferIdentifierRawP;
- // target account that received the wire transfer
+ // Target account that received the wire transfer.
payto_uri: string;
- // base URL of the exchange that made the wire transfer
+ // Base URL of the exchange that made the wire transfer.
exchange_url: string;
// Serial number identifying the transfer in the merchant backend.
@@ -2367,7 +2376,7 @@ not used to tip customers will automatically be wired
back from the exchange to the originating account.
To begin tipping, a merchant must tell the backend
-to setup a reserve. The backend will return a
+to set up a reserve. The backend will return a
reserve public key which must be used as the wire
transfer subject when wiring the tipping campaign
funds to the exchange.
@@ -2397,31 +2406,31 @@ funds to the exchange.
:http:statuscode:`409 Conflict`:
The exchange does not support the requested wire method.
:http:statuscode:`502 Bad gateway`:
- We could not obtain /wire details from the specified exchange base URL.
+ We could not obtain ``/wire`` details from the specified exchange base URL.
:http:statuscode:`504 Gateway timeout`:
The merchant's interaction with the exchange took too long.
- The client might want to try later again.
+ The client might want to try again later.
.. ts:def:: ReserveCreateRequest
interface ReserveCreateRequest {
- // Amount that the merchant promises to put into the reserve
+ // Amount that the merchant promises to put into the reserve.
initial_balance: Amount;
- // Exchange the merchant intends to use for tipping
+ // Exchange the merchant intends to use for tipping.
exchange_url: string;
- // Desired wire method, for example "iban" or "x-taler-bank"
+ // Desired wire method, for example "iban" or "x-taler-bank".
wire_method: string;
}
.. ts:def:: ReserveCreateConfirmation
interface ReserveCreateConfirmation {
- // Public key identifying the reserve
+ // Public key identifying the reserve.
reserve_pub: EddsaPublicKey;
- // Wire account of the exchange where to transfer the funds
+ // Wire account of the exchange where to transfer the funds.
payto_uri: string;
}
@@ -2431,8 +2440,8 @@ funds to the exchange.
**Request:**
- :query after: *Optional*. Only return reserves created after the given timestamp in milliseconds
- :query active: *Optional*. Only return active/inactive reserves depending on the boolean given
+ :query after: *Optional*. Only return reserves created after the given timestamp in milliseconds.
+ :query active: *Optional*. Only return active/inactive reserves depending on the boolean given.
:query failures: *Optional*. Only return reserves where we disagree with the exchange about the initial balance.
**Response:**
@@ -2444,23 +2453,23 @@ funds to the exchange.
.. ts:def:: TippingReserveStatus
interface TippingReserveStatus {
- // Array of all known reserves (possibly empty!)
+ // Array of all known reserves (possibly empty!).
reserves: ReserveStatusEntry[];
}
.. ts:def:: ReserveStatusEntry
interface ReserveStatusEntry {
- // Public key of the reserve
+ // Public key of the reserve.
reserve_pub: EddsaPublicKey;
- // Timestamp when it was established
+ // Timestamp when it was established.
creation_time: Timestamp;
- // Timestamp when it expires
+ // Timestamp when it expires.
expiration_time: Timestamp;
- // Initial amount as per reserve creation call
+ // Initial amount as per reserve creation call.
merchant_initial_amount: Amount;
// Initial amount as per exchange, 0 if exchange did
@@ -2473,7 +2482,7 @@ funds to the exchange.
// Amount approved for tips that exceeds the pickup_amount.
committed_amount: Amount;
- // Is this reserve active (false if it was deleted but not purged)
+ // Is this reserve active (false if it was deleted but not purged)?
active: boolean;
}
@@ -2487,7 +2496,7 @@ Query funds remaining
**Request:**
- :query tips: *Optional*. If set to "yes", returns also information about all of the tips created
+ :query tips: *Optional*. If set to "yes", returns also information about all of the tips created.
**Response:**
@@ -2505,18 +2514,18 @@ Query funds remaining
reserve was not yet filled.
:http:statuscode:`504 Gateway timeout`:
The merchant's interaction with the exchange took too long.
- The client might want to try later again.
+ The client might want to try again later.
.. ts:def:: ReserveDetail
interface ReserveDetail {
- // Timestamp when it was established
+ // Timestamp when it was established.
creation_time: Timestamp;
- // Timestamp when it expires
+ // Timestamp when it expires.
expiration_time: Timestamp;
- // Initial amount as per reserve creation call
+ // Initial amount as per reserve creation call.
merchant_initial_amount: Amount;
// Initial amount as per exchange, 0 if exchange did
@@ -2533,7 +2542,7 @@ Query funds remaining
// Only present if asked for explicitly.
tips?: TipStatusEntry[];
- // Is this reserve active (false if it was deleted but not purged)
+ // Is this reserve active (false if it was deleted but not purged)?
active: boolean;
}
@@ -2541,7 +2550,7 @@ Query funds remaining
interface TipStatusEntry {
- // Unique identifier for the tip
+ // Unique identifier for the tip.
tip_id: HashCode;
// Total amount of the tip that can be withdrawn.
@@ -2566,7 +2575,7 @@ Authorizing tips
**Response:**
:http:statuscode:`200 OK`:
- A tip has been created. The backend responds with a `TipCreateConfirmation`
+ A tip has been created. The backend responds with a `TipCreateConfirmation`.
:http:statuscode:`404 Not found`:
The instance or the reserve is unknown to the backend.
:http:statuscode:`412 Precondition failed`:
@@ -2575,10 +2584,10 @@ Authorizing tips
.. ts:def:: TipCreateRequest
interface TipCreateRequest {
- // Amount that the customer should be tipped
+ // Amount that the customer should be tipped.
amount: Amount;
- // Justification for giving the tip
+ // Justification for giving the tip.
justification: string;
// URL that the user should be directed to after tipping,
@@ -2592,14 +2601,14 @@ Authorizing tips
// Unique tip identifier for the tip that was created.
tip_id: HashCode;
- // taler://tip URI for the tip
+ // taler://tip URI for the tip.
taler_tip_uri: string;
// URL that will directly trigger processing
- // the tip when the browser is redirected to it
+ // the tip when the browser is redirected to it.
tip_status_url: string;
- // when does the tip expire
+ // When does the tip expire?
tip_expiration: Timestamp;
}
@@ -2608,7 +2617,7 @@ Authorizing tips
Authorize creation of a tip from the given reserve, except with
automatic selection of a working reserve of the instance by the
- backend. Intentionally otherwise identical to the /authorize-tip
+ backend. Intentionally otherwise identical to the ``/authorize-tip``
endpoint given above.
**Request:**
@@ -2618,7 +2627,7 @@ Authorizing tips
**Response:**
:http:statuscode:`200 OK`:
- A tip has been created. The backend responds with a `TipCreateConfirmation`
+ A tip has been created. The backend responds with a `TipCreateConfirmation`.
:http:statuscode:`404 Not found`:
The instance is unknown to the backend.
:http:statuscode:`412 Precondition failed`:
@@ -2660,12 +2669,12 @@ Checking tip status
**Request:**
- :query pickups: if set to "yes", returns also information about all of the pickups
+ :query pickups: If set to "yes", returns also information about all of the pickups.
**Response:**
:http:statuscode:`200 OK`:
- The tip is known. The backend responds with a `TipDetails` message
+ The tip is known. The backend responds with a `TipDetails` message.
:http:statuscode:`404 Not found`:
The tip is unknown to the backend.
@@ -2684,7 +2693,7 @@ Checking tip status
// Timestamp indicating when the tip is set to expire (may be in the past).
expiration: Timestamp;
- // Reserve public key from which the tip is funded
+ // Reserve public key from which the tip is funded.
reserve_pub: EddsaPublicKey;
// Array showing the pickup operations of the wallet (possibly empty!).
@@ -2716,7 +2725,7 @@ Checking tip status
:query limit: *Optional*. At most return the given number of results. Negative for descending in database row id, positive for ascending in database row id.
- :query offset: *Optional*. Starting row_id for an iteration.
+ :query offset: *Optional*. Starting ``row_id`` for an iteration.
**Response:**
@@ -2736,13 +2745,13 @@ Checking tip status
interface Tip {
- // id of the tip in the backend database
+ // ID of the tip in the backend database.
row_id: number;
// Unique identifier for the tip.
tip_id: HashCode;
- // (remaining) amount of the tip (including fees).
+ // (Remaining) amount of the tip (including fees).
tip_amount: Amount;
}
@@ -2756,9 +2765,6 @@ This section describes the overall structure of
the contract terms that are the foundation for
Taler payments.
-FIXME: the "forgettable" attribute is not
-properly specified here!
-
.. _contract-terms:
The contract terms must have the following structure:
@@ -2766,16 +2772,16 @@ The contract terms must have the following structure:
.. ts:def:: ContractTerms
interface ContractTerms {
- // Human-readable description of the whole purchase
+ // Human-readable description of the whole purchase.
summary: string;
- // Map from IETF BCP 47 language tags to localized summaries
+ // Map from IETF BCP 47 language tags to localized summaries.
summary_i18n?: { [lang_tag: string]: string };
// Unique, free-form identifier for the proposal.
// Must be unique within a merchant instance.
// For merchants that do not store proposals in their DB
- // before the customer paid for them, the order_id can be used
+ // before the customer paid for them, the ``order_id`` can be used
// by the frontend to restore a proposal from the information
// encoded in it (such as a short product identifier and timestamp).
order_id: string;
@@ -2785,25 +2791,25 @@ The contract terms must have the following structure:
// before transferring it to the merchant.
amount: Amount;
- // The URL for this purchase. Every time is is visited, the merchant
+ // The URL for this purchase. Every time it is visited, the merchant
// will send back to the customer the same proposal. Clearly, this URL
// can be bookmarked and shared by users.
fulfillment_url?: string;
- // Maximum total deposit fee accepted by the merchant for this contract
+ // Maximum total deposit fee accepted by the merchant for this contract.
max_fee: Amount;
// Maximum wire fee accepted by the merchant (customer share to be
- // divided by the 'wire_fee_amortization' factor, and further reduced
- // if deposit fees are below 'max_fee'). Default if missing is zero.
+ // divided by the ``wire_fee_amortization`` factor, and further reduced
+ // if deposit fees are below ``max_fee``). Default if missing is zero.
max_wire_fee: Amount;
// Over how many customer transactions does the merchant expect to
// amortize wire fees on average? If the exchange's wire fee is
- // above 'max_wire_fee', the difference is divided by this number
+ // above ``max_wire_fee``, the difference is divided by this number
// to compute the expected customer's contribution to the wire fee.
// The customer's contribution may further be reduced by the difference
- // between the 'max_fee' and the sum of the actual deposit fees.
+ // between the ``max_fee`` and the sum of the actual deposit fees.
// Optional, default value if missing is 1. 0 and negative values are
// invalid and also interpreted as 1.
wire_fee_amortization: number;
@@ -2811,13 +2817,13 @@ The contract terms must have the following structure:
// List of products that are part of the purchase (see `Product`).
products: Product[];
- // Time when this contract was generated
+ // Time when this contract was generated.
timestamp: Timestamp;
// After this deadline has passed, no refunds will be accepted.
refund_deadline: Timestamp;
- // After this deadline, the merchant won't accept payments for the contact
+ // After this deadline, the merchant won't accept payments for the contact.
pay_deadline: Timestamp;
// Transfer deadline for the exchange. Must be in the
@@ -2825,20 +2831,20 @@ The contract terms must have the following structure:
wire_transfer_deadline: Timestamp;
// Merchant's public key used to sign this proposal; this information
- // is typically added by the backend Note that this can be an ephemeral key.
+ // is typically added by the backend. Note that this can be an ephemeral key.
merchant_pub: EddsaPublicKey;
// Base URL of the (public!) merchant backend API.
// Must be an absolute URL that ends with a slash.
merchant_base_url: string;
- // More info about the merchant, see below
+ // More info about the merchant, see below.
merchant: Merchant;
// The hash of the merchant instance's wire details.
h_wire: HashCode;
- // Wire transfer method identifier for the wire method associated with h_wire.
+ // Wire transfer method identifier for the wire method associated with ``h_wire``.
// The wallet may only select exchanges via a matching auditor if the
// exchange also supports this wire method.
// The wire transfer fees must be added based on this wire transfer method.
@@ -2884,69 +2890,66 @@ The contract terms must have the following structure:
// Useful when the merchant needs to store extra information on a
// contract without storing it separately in their database.
extra?: any;
-
- // List of forgettable fields. Each element in the list is
- // a jq(1)-style path.
- _forgettable: String[];
}
The wallet must select a exchange that either the merchant accepts directly by
listing it in the exchanges array, or for which the merchant accepts an auditor
that audits that exchange by listing it in the auditors array.
-The `Product` object describes the product being purchased from the merchant. It has the following structure:
+The `Product` object describes the product being purchased from the merchant.
+It has the following structure:
.. ts:def:: Product
interface Product {
- // merchant-internal identifier for the product.
+ // Merchant-internal identifier for the product.
product_id?: string;
// Human-readable product description.
description: string;
- // Map from IETF BCP 47 language tags to localized descriptions
+ // Map from IETF BCP 47 language tags to localized descriptions.
description_i18n?: { [lang_tag: string]: string };
// The number of units of the product to deliver to the customer.
quantity?: Integer;
- // The unit in which the product is measured (liters, kilograms, packages, etc.)
+ // Unit in which the product is measured (liters, kilograms, packages, etc.).
unit?: string;
// The price of the product; this is the total price for ``quantity`` times ``unit`` of this product.
price?: Amount;
- // An optional base64-encoded product image
+ // An optional base64-encoded product image.
image?: ImageDataUrl;
- // a list of taxes paid by the merchant for this product. Can be empty.
+ // A list of taxes paid by the merchant for this product. Can be empty.
taxes?: Tax[];
- // time indicating when this product should be delivered
+ // Time indicating when this product should be delivered.
delivery_date?: Timestamp;
}
.. ts:def:: Tax
interface Tax {
- // the name of the tax
+ // The name of the tax.
name: string;
- // amount paid in tax
+ // Amount paid in tax.
tax: Amount;
}
.. ts:def:: Merchant
interface Merchant {
- // label for a location with the business address of the merchant
+ // Label for a location with the business address of the merchant.
address: Location;
- // the merchant's legal name of business
+ // The merchant's legal name of business.
name: string;
- // label for a location that denotes the jurisdiction for disputes.
+ // Label for a location that denotes the jurisdiction for disputes.
// Some of the typical fields for a location (such as a street address) may be absent.
jurisdiction: Location;
}
@@ -2992,22 +2995,28 @@ The `Product` object describes the product being purchased from the merchant. It
.. ts:def:: Auditor
interface Auditor {
- // official name
+ // Official name.
name: string;
- // Auditor's public key
+ // Auditor's public key.
auditor_pub: EddsaPublicKey;
- // Base URL of the auditor
+ // Base URL of the auditor.
url: string;
}
.. ts:def:: Exchange
interface Exchange {
- // the exchange's base URL
+ // The exchange's base URL.
url: string;
- // master public key of the exchange
+ // Master public key of the exchange.
master_pub: EddsaPublicKey;
}
+
+In addition to the fields described above,
+each object (from ``ContractTerms`` down)
+can mark certain fields as "forgettable" by listing the names of those fields
+in a special peer field ``_forgettable``.
+(See :ref:`Private order data cleanup <private-order-data-cleanup>`.)
diff --git a/core/api-sync.rst b/core/api-sync.rst
index ba7fd8d2..f72c3856 100644
--- a/core/api-sync.rst
+++ b/core/api-sync.rst
@@ -25,7 +25,7 @@ The backup and synchronization service uses an EdDSA key
to identify the "account" of the user. The key is Crockford
Base32-encoded in the URI to access the data and used to sign requests
as well as to encrypt the contents (see below). These signatures are
-provided in detached from as HTTP headers.
+provided in detached form as HTTP headers.
Once the user activates backup or synchronization, the client should
display the key as a QR code as well as in text format together
@@ -38,7 +38,7 @@ a padded and encrypted version of the data.
However, there are a few general rules that will apply to
any version of the backup. Still, except for the
-32 byte minimum upload size, the synchronization service
+32-byte minimum upload size, the synchronization service
itself cannot not enforce these rules.
* First, the database should be compressed (i.e. gzip), then
@@ -118,13 +118,13 @@ Receiving Terms of Service
.. ts:def:: SyncTermsOfServiceResponse
interface SyncTermsOfServiceResponse {
- // maximum backup size supported
+ // Maximum backup size supported.
storage_limit_in_megabytes: number;
// Fee for an account, per year.
annual_fee: Amount;
- // protocol version supported by the server,
+ // Protocol version supported by the server,
// for now always "0.0".
version: string;
@@ -166,7 +166,7 @@ Receiving Terms of Service
:http:statuscode:`304 Not modified`:
The version available at the server is identical to that
- specified in the "If-None-Match" header.
+ specified in the ``If-None-Match`` header.
:http:statuscode:`404 Not found`:
The backup service is unaware of a matching account.
@@ -196,28 +196,28 @@ Receiving Terms of Service
.. http:post:: /backups/${ACCOUNT-KEY}
Upload a new version of the account's database, or download the
- latest version. The request SHOULD include the "Expect: 100 Continue"
- header. The client then SHOULD wait for "100 Continue" before proceeding
+ latest version. The request SHOULD include the ``Expect: 100 Continue``
+ header. The client then SHOULD wait for ``100 Continue`` before proceeding
with the upload, regardless of the size of the upload.
**Request**
- The request must include a "If-Match" header indicating the latest
+ The request must include a ``If-Match`` header indicating the latest
version of the account's database known to the client. If the server
- knows a more recent version, it will respond with a "409 conflict"
+ knows a more recent version, it will respond with a ``409 conflict``
and return the server's version in the response. The client must
then merge the two versions before retrying the upload. Note that
- a "409 Conflict" response will typically be given before the upload,
- (instead of "100 continue"), but may also be given after the upload,
+ a ``409 Conflict`` response will typically be given before the upload,
+ (instead of ``100 continue``), but may also be given after the upload,
for example due to concurrent activities from other accounts on the
same account!
The request MUST also include an "Sync-Signature" signing
- the "If-Match" SHA-512 value and the SHA-512 hash of the body with
+ the ``If-Match`` SHA-512 value and the SHA-512 hash of the body with
the account private key.
Finally, the SHA-512 hash of the body MUST also be given in an
- "If-None-Match" header of the request (so that the signature can be verified
+ ``If-None-Match`` header of the request (so that the signature can be verified
before the upload is allowed to proceed).
The uploaded body must have at least 32 bytes of payload (see
@@ -260,7 +260,7 @@ Receiving Terms of Service
:http:statuscode:`304 Not modified`:
The server is already aware of this version of the client.
- Returned before 100 continue to avoid upload.
+ Returned before ``100 continue`` to avoid upload.
:http:statuscode:`400 Bad request`:
Most likely, the uploaded body is too short (less than 32 bytes).
@@ -268,7 +268,7 @@ Receiving Terms of Service
:http:statuscode:`402 Payment required`:
The synchronization service requires payment before the
account can continue to be used. The fulfillment URL
- should be the /$ACCOUNT-KEY URL, but can be safely ignored
+ should be the ``/$ACCOUNT-KEY`` URL, but can be safely ignored
by the client. The contract should be shown to the user
in the canonical dialog, possibly in a fresh tab.
@@ -277,9 +277,9 @@ Receiving Terms of Service
:http:statuscode:`409 Conflict`:
The server has a more recent version than what is given
- in "If-Match". The more recent version is returned. The
+ in ``If-Match``. The more recent version is returned. The
client should merge the two versions and retry using the
- given response's "E-Tag" in the next attempt in "If-Match".
+ given response's "E-Tag" in the next attempt in ``If-Match``.
:http:statuscode:`410 Gone`:
The backup service has closed operations. The body will
@@ -288,7 +288,7 @@ Receiving Terms of Service
The user should be urged to find another provider.
:http:statuscode:`411 Length required`:
- The client must specify the "Content-length" header before
+ The client must specify the ``Content-length`` header before
attempting upload. While technically optional by the
HTTP specification, the synchronization service may require
the client to provide the length upfront.
@@ -297,7 +297,7 @@ Receiving Terms of Service
The requested upload exceeds the quota for the type of
account. The client should suggest to the user to
migrate to another backup and synchronization service
- (like with "410 Gone").
+ (like with ``410 Gone``).
:http:statuscode:`429 Too many requests`:
This account has exceeded daily thresholds for the number of
@@ -344,7 +344,7 @@ service upon first withdrawal, suggesting one that is free or
accepts payment in the respective currency. If none is available,
the client should warn the user about the lack of available
backups and synchronization and suggest to the user to find a
-reasonable service. Once a synchronization service was selected,
+reasonable service. Once a synchronization service is selected,
the client should urge the user to print the respective key
material.
diff --git a/core/api-wire.rst b/core/api-wire.rst
index ce8c94e4..fbf27469 100644
--- a/core/api-wire.rst
+++ b/core/api-wire.rst
@@ -51,7 +51,7 @@ Making Transactions
:http:statuscode:`200 OK`:
The request has been correctly handled, so the funds have been transferred to
- the recipient's account. The body is a `TransferResponse`
+ the recipient's account. The body is a `TransferResponse`.
:http:statuscode:`400 Bad request`:
Request malformed. The bank replies with an `ErrorDetail` object.
:http:statuscode:`401 Unauthorized`:
@@ -77,7 +77,7 @@ Making Transactions
// time period a transaction belongs to).
timestamp: Timestamp;
- // Opaque of the transaction that the bank has made.
+ // Opaque ID of the transaction that the bank has made.
row_id: SafeUint64;
}
@@ -86,7 +86,7 @@ Making Transactions
interface TransferRequest {
// Nonce to make the request idempotent. Requests with the same
- // transaction_uid that differ in any of the other fields
+ // ``transaction_uid`` that differ in any of the other fields
// are rejected.
request_uid: HashCode;
@@ -102,7 +102,7 @@ Making Transactions
// associated with this wire transfer.
wtid: ShortHashCode;
- // The recipient's account identifier as a payto URI
+ // The recipient's account identifier as a payto URI.
credit_account: string;
}
@@ -126,7 +126,7 @@ Querying the transaction history
merged into one history.
Transactions are identified by an opaque numeric identifier, referred to here
- as "row ID". The semantics of the row ID (including its sorting order) are
+ as *row ID*. The semantics of the row ID (including its sorting order) are
determined by the bank server and completely opaque to the client.
The list of returned transactions is determined by a row ID *starting point*
@@ -168,7 +168,7 @@ Querying the transaction history
interface IncomingHistory {
- // Array of incoming transactions
+ // Array of incoming transactions.
incoming_transactions : IncomingBankTransaction[];
}
@@ -177,20 +177,20 @@ Querying the transaction history
interface IncomingBankTransaction {
- // Opaque identifier of the returned record
+ // Opaque identifier of the returned record.
row_id: SafeUint64;
- // Date of the transaction
+ // Date of the transaction.
date: Timestamp;
- // Amount transferred
+ // Amount transferred.
amount: Amount;
// Payto URI to identify the receiver of funds.
// This must be one of the exchange's bank accounts.
credit_account: string;
- // Payto URI to identify the sender of funds
+ // Payto URI to identify the sender of funds.
debit_account: string;
// The reserve public key extracted from the transaction details.
@@ -207,8 +207,8 @@ Querying the transaction history
might come from a "virtual" account, where multiple real bank accounts are
merged into one history.
- Transactions are identified by an opaque integer, referred to here as "row
- ID". The semantics of the row ID (including its sorting order) are
+ Transactions are identified by an opaque integer, referred to here as *row
+ ID*. The semantics of the row ID (including its sorting order) are
determined by the bank server and completely opaque to the client.
The list of returned transactions is determined by a row ID *starting point*
@@ -250,7 +250,7 @@ Querying the transaction history
interface OutgoingHistory {
- // Array of outgoing transactions
+ // Array of outgoing transactions.
outgoing_transactions : OutgoingBankTransaction[];
}
@@ -259,19 +259,19 @@ Querying the transaction history
interface OutgoingBankTransaction {
- // Opaque identifier of the returned record
+ // Opaque identifier of the returned record.
row_id: SafeUint64;
- // Date of the transaction
+ // Date of the transaction.
date: Timestamp;
- // Amount transferred
+ // Amount transferred.
amount: Amount;
// Payto URI to identify the receiver of funds.
credit_account: string;
- // Payto URI to identify the sender of funds
+ // Payto URI to identify the sender of funds.
// This must be one of the exchange's bank accounts.
debit_account: string;
@@ -301,8 +301,8 @@ exposed by bank gateways in production.
:http:statuscode:`200 OK`:
The request has been correctly handled, so the funds have been transferred to
- the recipient's account. The body is a `AddIncomingResponse`
- :http:statuscode:`400 Bad request`:
+ the recipient's account. The body is a `AddIncomingResponse`.
+ :http:statuscode:`400 Bad request`:
The request is malformed. The bank replies with an `ErrorDetail` object.
:http:statuscode:`401 Unauthorized`:
Authentication failed, likely the credentials are wrong.
@@ -317,7 +317,7 @@ exposed by bank gateways in production.
// Reserve public key that is included in the wire transfer details
// to identify the reserve that is being topped up.
- reserve_pub: EddsaPublicKey
+ reserve_pub: EddsaPublicKey;
// Account (as payto URI) that makes the wire transfer to the exchange.
// Usually this account must be created by the test harness before this API is
@@ -340,6 +340,6 @@ exposed by bank gateways in production.
// time period a transaction belongs to).
timestamp: Timestamp;
- // Opaque of the transaction that the bank has made.
+ // Opaque ID of the transaction that the bank has made.
row_id: SafeUint64;
}
diff --git a/core/errors.rst b/core/errors.rst
index bbb266d3..f7b490da 100644
--- a/core/errors.rst
+++ b/core/errors.rst
@@ -18,7 +18,7 @@ Error Conditions
The exchange returned a response for ``/keys`` with an issuing date
earlier than the previous one.
- **Type**: Warning
+ **Type**: Warning.
**Handling**: The wallet should ignore the response and try again later.
``EXCHANGE_WIRE_INFO_UNAVAILABLE``
@@ -29,11 +29,11 @@ Error Conditions
did not confirm the schema for ``/wire``.
``EXCHANGE_PROTOCOL_VERSION_UNSUPPORTED``
- An exchanges ``/keys`` response indicates a version number that
+ An exchange's ``/keys`` response indicates a version number that
is not compatible with the client.
``EXCHANGE_MASTER_PUB_CHANGED``
- An exchange returns a /keys response with a master public key that differs
+ An exchange returns a ``/keys`` response with a master public key that differs
from a previous response.
``EXCHANGE_DENOM_MISSING``
@@ -74,6 +74,6 @@ End-To-End Testing Scenarios
This section describes some advanced end-to-end testing scenarios that should
eventually be covered by our tests.
-* Reserve is created, closed, and then money is sent again to the reserve
+* Reserve is created, closed, and then money is sent again to the reserve.
-* Amount from recoup should end up in customer's account again
+* Amount from recoup should end up in customer's account again.
diff --git a/core/taler-uri.rst b/core/taler-uri.rst
index 23ebc1ed..a4942b83 100644
--- a/core/taler-uri.rst
+++ b/core/taler-uri.rst
@@ -28,34 +28,34 @@ Payments are requested with the ``pay`` action. The parameters are a hierarchic
taler://pay/{merchant_host}{/merchant_prefix_path*}/{order_id}/{session_id}{?c}{#ssid}
-* ``merchant_host`` is the hostname (and optionally port) of the merchant
+* ``merchant_host`` is the hostname (and optionally port) of the merchant.
* ``merchant_prefix_path`` is an optional list of path components that identifies the path prefix of the merchant base URL.
-* ``order_id`` is the order ID that the customer is asked to pay for
-* ``session_id`` is the optional session ID under which the payment takes place
-* ``c`` is the optional high-entropy order `ClaimToken`
-* ``ssid`` is the optional WLAN SSID that the merchant can offer the wallet to connect to for internet connectivity
+* ``order_id`` is the order ID that the customer is asked to pay for.
+* ``session_id`` is the optional session ID under which the payment takes place.
+* ``c`` is the optional high-entropy order `ClaimToken`.
+* ``ssid`` is the optional WLAN SSID that the merchant can offer the wallet to connect to for internet connectivity.
Examples:
.. code:: none
# Example 1:
- # Order ID "ORD123", no session ID
- # Merchant backend base URL "https://backend.test.taler.net/
+ # Order ID "ORD123", no session ID.
+ # Merchant backend base URL https://backend.test.taler.net/
taler://pay/test.taler.net/ORD123/
# Example 2:
- # Order ID "ORD123", no session ID
- # Merchant backend base URL "https://backend.test.taler.net/instances/x1/
+ # Order ID "ORD123", no session ID.
+ # Merchant backend base URL https://backend.test.taler.net/instances/x1/
taler://pay/test.taler.net/instances/x1/ORD123/
# Example 3:
- # Order ID "ORD123", session ID "ABC123"
- # Merchant backend base URL "https://backend.test.taler.net/
+ # Order ID "ORD123", session ID "ABC123".
+ # Merchant backend base URL https://backend.test.taler.net/
taler://pay/test.taler.net/ORD123/ABC123
# INVALID Example 1:
- # When no session ID is given, the slash must still be present
+ # When no session ID is given, the slash must still be present.
taler://pay/test.taler.net/ORD123
------------------------
@@ -68,11 +68,11 @@ The action ``withdraw`` is used to trigger a bank-integrated withdrawal operatio
taler://withdraw/{bank_host}{/bank_prefix_path*}/{withdrawal_uid}{#ssid}
-* ``bank_host`` is the hostname of the merchant
+* ``bank_host`` is the hostname of the merchant.
* ``bank_prefix_path`` is an optional list of path components that identifies the path prefix of the bank integration API base URL.
-* ``withdrawal_uid`` is the unique ID of the withdrawal operation
+* ``withdrawal_uid`` is the unique ID of the withdrawal operation.
* ``ssid`` is the optional WLAN SSID that the bank (typically in an ATM scenario) can offer the wallet
- to connect to for internet connectivity
+ to connect to for internet connectivity.
--------------------------
Withdrawing (Confirmation)
@@ -84,7 +84,7 @@ Withdrawing (Confirmation)
This action notifies the wallet that the status of a reserve has changed. It is used
by the bank to indicate that the withdrawal has been confirmed by the user (e.g. via 2FA / mTAN / ...).
-The wallet the re-checks the status of all unconfirmed reserves.
+The wallet then re-checks the status of all unconfirmed reserves.
Optionally, ``reserve_pub`` can be specified to also indicate the reserve that
has been updated.
@@ -101,10 +101,10 @@ A ``taler://refund`` URI instructs the wallet to download and apply available re
taler://refund/{merchant_host}{/merchant_prefix_path*}/{order_id}/{#ssid}
taler+http://refund/{merchant_host}{/merchant_prefix_path*}/{order_id}/{#ssid}
-* ``merchant_host`` is the hostname of the merchant
+* ``merchant_host`` is the hostname of the merchant.
* ``merchant_prefix_path`` is an optional list of path components that identifies the path prefix of the merchant base URL.
-* ``order_id`` is the order ID to check for refunds
-* ``ssid`` is the optional WLAN SSID that the merchant can offer the wallet to connect to for internet connectivity
+* ``order_id`` is the order ID to check for refunds.
+* ``ssid`` is the optional WLAN SSID that the merchant can offer the wallet to connect to for internet connectivity.
-------
@@ -118,12 +118,12 @@ a merchant and ask the user to accept/decline it.
taler://tip/{merchant_host}{/merchant_prefix_path*}/{tip_id}/{#ssid}
-* ``merchant_host`` is the hostname of the merchant
+* ``merchant_host`` is the hostname of the merchant.
* ``merchant_prefix_path`` is an optional list of path components that identifies the path prefix of the merchant base URL.
-* ``tip_id`` uniquely identifies the tip
+* ``tip_id`` uniquely identifies the tip.
* ``insecure`` is an optional query parameter. When "1", the ``merchant_host`` is contacted via HTTP.
When absent or "0", the ``merchant_host`` is contacted via HTTPS.
-* ``ssid`` is the optional WLAN SSID that the merchant can offer the wallet to connect to for internet connectivity
+* ``ssid`` is the optional WLAN SSID that the merchant can offer the wallet to connect to for internet connectivity.
----------------
@@ -147,4 +147,3 @@ the user to confirm/decline adding the auditor to the list of trusted auditors.
.. code:: none
taler://auditor/{auditor_host}{/auditor_prefix_path*}/
-
diff --git a/core/wireformats.rst b/core/wireformats.rst
index 2f1c9647..d4ffe5f2 100644
--- a/core/wireformats.rst
+++ b/core/wireformats.rst
@@ -8,7 +8,7 @@ account upon a successful deposit (see :ref:`deposit request <deposit>`). The
merchant has to include the necessary information for the exchange to initiate the
wire transfer.
-The information required for wire transfer depends on the method of wire transfer
+The information required for a wire transfer depends on the method of wire transfer
used. Since the wire transfers differ for each region, we document here the
ones currently supported by the exchange.
@@ -16,8 +16,8 @@ X-TALER-BANK
------------
The ``x-taler-bank`` wire format is used for testing and for integration with Taler's
-simple "bank" system which in the future might be useful to setup a bank
-for a local / regional currency or accounting system. Using ``x-taler-bank``
+simple "bank" system which in the future might be useful to set up a bank
+for a local / regional currency or accounting system. Using the ``x-taler-bank``
wire method in combination with the Taler's bank, it is thus possible to
fully test the Taler system without using "real" currencies. The URL
format for ``x-taler-bank`` is simple, in that it only specifies an account
@@ -28,16 +28,16 @@ number and the origin (domain and optionally a port) of the bank:
payto://x-taler-bank/BANK_URI/ACCOUNT_IDENTIFIER
The account identifier given must be a non-empty alphanumeric ASCII string. As with
-any payto://-URI, additional fields may be present (after a ?), but
+any ``payto://`` URI, additional fields may be present (after a ``?``), but
are not required. The ``BANK_URI`` may include a port number. If none is
given, ``https`` over port 443 is assumed. If a port number is
given, ``http`` over the given port is to be used. Note that this
-means that you cannot run an x-taler-bank over ``https`` on a
+means that you cannot run an ``x-taler-bank`` over ``https`` on a
non-canonical port.
Note that a particular exchange is usually only supporting one particular bank
with the ``x-taler-bank`` wire format, so it is not possible for a merchant with
-an account at a different bank to use "x-taler-bank" to transfer funds across
+an account at a different bank to use ``x-taler-bank`` to transfer funds across
banks. After all, this is for testing and not for real banking.
SEPA
@@ -48,11 +48,11 @@ payments. Since its adoption in 2012, all of the banks in the Eurozone and some
banks in other countries adhere to this standard for sending and receiving
payments. Note that the currency of the transfer will (currently) always be ``EUR``. In
case the receiving account is in a currency other than ``EUR``, the receiving bank
-may covert the amount into that currency; currency exchange charges may be
+may convert the amount into that currency; currency exchange charges may be
levied by the receiving bank.
For the merchant to receive deposits through SEPA, the deposit request must
-follow the payto:// specification for SEPA:
+follow the ``payto://`` specification for SEPA:
.. code-block:: none
diff --git a/design-documents/015-merchant-backoffice-routing.rst b/design-documents/015-merchant-backoffice-routing.rst
new file mode 100644
index 00000000..771b0d30
--- /dev/null
+++ b/design-documents/015-merchant-backoffice-routing.rst
@@ -0,0 +1,160 @@
+Design Doc 015: Merchant backoffice Routing
+###########################################
+
+
+Motivation
+==========
+
+A well defined routing will allow users to share backoffice links pointing
+directly into instance pages (settings, orders, products, etc...)
+
+The backoffice should load from the instance URL and then allow a internal
+routing of the views with the possibility to accessing them directly when
+sharing a link.
+
+This 3 definitions are going to be use in this document:
+
+* BACKOFFICE_URL as the url where the app is loaded.
+
+* BACKEND_URL as the url where the merchant backend is.
+
+* INSTANCE the name of the instance being manage
+
+
+.. _routing:
+
+Application Ready definition
+============================
+
+The application is considered ready after
+
+* the user tried to login.
+
+* the application checked that the backend url points to a merchant backend
+
+* the merchant backend response successfully
+
+The backoffice test for ``$BACKEND_URL/config`` to define if the $BACKEND_URL is ok.
+The application can potentially test if the protocol or version matched.
+
+While the application is not ready, just the top navigation bar will be shown
+with a message in the left and the lang selection option.
+
+Application routing
+====================
+
+There are 2 type of routing: instance and internal
+
+ **instance**: define how the URL will be interpreted to infer which instance is
+ being accessed. Also the full URL is used as default when no BACKEND_URL exist
+ yet in localStorage. After login, the BACKEND_URL is saved in localStorage and
+ the pathname is parsed to infer the instance id.
+
+ **internal**: define which view will be rendered. It is implemented using a hash
+ routing since 1) the SPA is not server side rendered and 2) the http servers
+ doest not need to care about matching all applications URL
+
+Knowing that the $BACKEND_URL points to a correct merchant backend the SPA will
+check for ``$BACKEND_URL/private/instances``:
+
+* if Unauthorized ask for credentials
+
+* if error check with the user
+
+* if not found, then url should end with ``/instances/$INSTANCE``. otherwise is
+ an error. app will continue as admin = false
+
+* if ok then then $INSTANCE == 'default', app will continue as admin = true
+
+When a user access the SPA there are 3 scenarios possible:
+
+* **standard**: admin is false so BACKEND_URL points to a non-default instance.
+ standard features and links are shown
+
+* **admin**: admin is true so BACKEND_URL point to default instance. same as
+ before and user can create and list instances with some additional links in
+ the sidebar.
+
+* **mimic**: admin is true and the request parameter "instance" is set $INSTANCE
+ instance. BACKEND_URL point to default instance but the user is managing
+ $INSTANCE
+
+Normally all communication with the backend will be done to $BACKOFFICE_URL and
+``backend-token`` will be used used for authentication.
+
+For **mimic** scenario then ``backend-token-$INSTANCE`` is used and the queries
+to the merchant are being sent to ``$BACKEND_URL/instances/$INSTANCE``
+
+Application entry points
+========================
+
+When the application is ready to start, it queries the backend to test if the
+user can access to the list of instance and decide if the admin panel should be
+accessible. See :ref:`routing`
+
+All of this entry points are corresponds to the internal routing and is
+implemented using the hash path. For any entry point that do not require a
+parameter (like order id or product id) it should be accessible from the Sidebar.
+
+If the user has admin access, this entry points are available:
+
+ - /instances: Show the list of instances currently created
+ - /instance/new: Show a instance creation form
+
+Where admin or not, there is also this entry points:
+
+ - / : redirects to the instance settings page
+ - /update: instance setting page, renders a form and allow modifying it
+ - /products: list of instance products
+ - /product/$ID/update: product modification page
+ - /product/new : product creation page
+ - /orders : list of instance orders
+ - /transfers : list of transfers
+
+As an example:
+
+* ``$BACKOFFICE_URL/?instance=foo#/orders`` will show the orders of the foo
+ instance, assuming that BACKEND_URL points to the default instance.
+
+* ``$BACKOFFICE_URL/#/product/foo/update`` will show the update page for the
+ `foo` product of the instance pointed by $BACKEND_URL
+
+
+Special cases
+=============
+
+First time
+----------
+
+If the application is loaded for the first time a welcoming message is shown
+with the login form (even if the backend doest not need authentication)
+
+Log out
+-------
+
+On logout, the application go to the initial state. Removing all backend-token-*
+from the localStorage
+
+Unauthorized
+------------
+
+For any case that the backend respond 401 the application will render the
+login view showing a notification error that the user must check the login
+credentials or the backend url
+
+Not found
+---------
+
+For any case that the backend respond 404 the application will render a
+custom not found page
+
+Default instance is missing
+------------------------
+
+If the **user is admin** AND is loading the setting page (/update), product list
+(/products), order list (/orders) or transfer list (/transfers) AND **gets a
+404** it will tell the user that it need to create a default instance before
+proceeding.
+
+
+
diff --git a/design-documents/016-backoffice-order-management.rst b/design-documents/016-backoffice-order-management.rst
new file mode 100644
index 00000000..ec68b22e
--- /dev/null
+++ b/design-documents/016-backoffice-order-management.rst
@@ -0,0 +1,252 @@
+Design Doc 016: Backoffice Order Management
+###########################################
+
+Summary
+=======
+
+This document describe the complete list features for orders management and how
+will be shown.
+
+Motivation
+==========
+
+User will use the backoffice to manage their orders and verify the status of the
+current and past orders.
+
+Requirements
+============
+
+Access all information provided from the Merchant Backend API in a
+understandable and accessible way
+
+User should use the backoffice to manage orders by:
+
+* searching for orders
+* showing details about the order and the activity history
+* refund order that are refundable
+* create orders
+
+Proposed Solution
+=================
+
+Listing orders
+--------------
+
+.. image:: ../backoffice-order-list.svg
+ :width: 800
+
+Will show the SearchBar component that allow multiple filter.
+Filter will allow paid, refunded, wired status and date.
+
+ * paid: yes/no
+ * refunded: yes/no
+ * wired: yes/no
+ * date: 'dd/MM/yyyy'
+
+4 tabs will be show for a easy access to common filter, click on any of this and
+search will reset all filter except date
+
+* paid (default)
+* refunded
+* not wired
+* all (empty filter box)
+
+Columns for the order listings will be:
+
+* date in 'dd/MM/yyyy HH:mm:ss' format
+* amount: value and currency
+* summary
+
+Actions per row:
+
+* refund: pop up with amount and reason (select box and text)
+* copy payment id
+* view details
+
+An export button will allow the user to download the result page in CSV format.
+
+An infinity scroll is propose instead of a pagination, reasons:
+
+* users usually does not jump from one page to another using random access
+* if the user want to search, is going to limit the result using filters
+* no need to go back after loading more result
+* it could be triggered by scrolling, with buttons (or both)
+
+Create orders
+-------------
+
+Form with 4 fields:
+
+* amount
+* summary
+* time until refund ( dropdown: 1week, 2weeks, custom )
+* description
+* payment method
+
+Creation order success
+**********************
+
+Example message:
+
+ Creation successful
+
+ We've create an order for for USD:10.00.
+
+ Send url to the customer: ``taler_pay_uri``
+
+action buttons that allow the following:
+
+* create another payment: go to the create payment page again
+* view details: show details of the payment (see page)
+
+Order details
+-------------
+
+Status text should be set with a background color for easier recognition when
+indicated:
+
+* paid: green
+* claimed: light-green
+* unpaid: grey
+* refunded: red
+
+Header
+******
+
+This is a resume of most important information
+
+* big status with color
+* date
+* total
+
+ - deposit_total (if not refunded)
+ - refund_amount (if status is refunded)
+ - deposit_total - refund amount (if refunded partially)
+
+* order_status_url
+* taler_pay_uri (if unpaid)
+* actions: refund (if not refunded), add note, copy order_status_url
+
+Timeline of events
+******************
+
+Event of status changed over time describe vertically.
+Sorted from newest to oldest.
+On line per status updated, with datetime and a short description.
+
+Info taken from:
+
+* refund_details
+* wire_reports
+* wire_details
+* contractTerm.extra for custom notes ({date: timestamp, description: string})
+
+Payment details
+***************
+
+* summary
+* amount (deposit_total)
+* fee
+* refund_amount (if status is refunded)
+* net (amount - fee - refund)
+* current status
+
+
+Contract Terms
+**************
+
+collapsed as default. show disabled if unpaid
+
+* summary
+* amount
+* fulfillment_url, if present
+* max fee
+* max fire fee
+* wire_fee_amortization
+* list of (exchange | auditor) name and url
+* products table: list of products, one row per product
+
+ * description
+ * quantity
+ * total price
+ * total tax
+ * sum at the bottom
+
+* horizontal timeline of important dates in the contract
+
+ * start at contract creation time
+ * show current date
+ * pay_deadline
+ * wire_transfer_deadline
+ * refund_deadline
+ * delivery_date (immediately if null)
+ * auto_refund
+
+
+
+Last response from exchange
+***************************
+
+collapsed as default, showing a green check if everything is ok or a yellow
+warning otherwise
+
+When open show 2 boxes with text translated from ``exchange_ec`` and ``exchange_hc``
+
+refund popup
+--------------
+
+If there is any refund:
+
+* show total refund from ``refund_amount``
+* a + sign to show more information
+* if expanded show a timeline vertically showing amount a reason
+ ``refund_details``
+
+Show a small notice telling that the refund is going to take ``refund_delay`` time.
+
+Warn if there is a pending refund when ``refund_pending`` is true
+
+Ask for:
+
+* amount
+* reason: concatenation of the next values
+
+ * drop down options: duplicated, fraudulent, requested by customer, other
+ * after selecting, free text for additional information
+
+examples
+--------
+
+
+.. image:: ../backoffice-order-details.paid.svg
+ :width: 800
+
+
+
+Alternatives
+============
+
+
+order list was originally thought with pagination footer
+
+.. image:: ../backoffice-order-list.pagination.svg
+ :width: 800
+
+ascending boolean flag cloud be eliminated using the load before and load after
+and a design without random access to pages was proposed
+
+
+Discussion / Q&A
+================
+
+* Shall we show merchant information from the ContractTerm in the order detail?
+
+* Order creation was first thought as out of scope but should be useful for
+ testing purpose or when frontend is not yet integrated with taler merchant
+ backend. Shall we skip it?
+
+* Do we have the date and time of when the order goes from these states?
+
+ * claimed => paid (maybe last wire_details.execution_time with confirmed = true )
+ * unpaid => claimed (maybe contractTerm.timestamp)
+
diff --git a/design-documents/017-backoffice-inventory-management.rst b/design-documents/017-backoffice-inventory-management.rst
new file mode 100644
index 00000000..e8c1a333
--- /dev/null
+++ b/design-documents/017-backoffice-inventory-management.rst
@@ -0,0 +1,129 @@
+Design Doc 017: Backoffice Inventory Management
+###############################################
+
+Summary
+=======
+
+This document describe the complete list features for inventory management and
+how will be shown.
+
+Motivation
+==========
+
+User will use the backoffice to manage their inventory, prices and update stock.
+
+Requirements
+============
+
+Access all information provided from the Merchant Backend API in a
+understandable and accessible way
+
+User should use the backoffice to manage inventory by:
+
+* creating new products
+* updating the products information
+* inspecting inventory list
+* deleting products from the inventory list
+
+Proposed Solution
+=================
+
+Inspecting inventory
+--------------------
+
+.. image:: ../backoffice-product-list.svg
+ :width: 800
+
+Listing the product will shown this columns:
+
+* image
+* description
+* sell price
+* total taxes
+* profit (price - taxes)
+* stock left (with next_restock in days if present)
+* stock sold
+
+Actions will be
+
+* modify
+* delete: with a confirm popup, it may fail if have some locked
+
+Create and Update Product form
+------------------------------
+
+Creating without stock
+**********************
+
+.. image:: ../backoffice-product-create.with-stock.svg
+ :width: 800
+
+Creating with defined stock
+***************************
+
+.. image:: ../backoffice-product-create.without-stock.svg
+ :width: 800
+
+Updating
+***************************
+
+.. image:: ../backoffice-product-update.svg
+ :width: 800
+
+Update product will use the same form except for the ``product_id``
+
+* product_id: BACKOFFICE_URL + id
+* description: split in two fields, concatenated with a line separator
+
+ * name: required, one line
+ * extra: optional, free text area
+
+* description localized: list with
+
+ * lang: dropdown list with supported lang + custom
+ * description: text area
+
+* unit: string
+* price: amount
+* image: image box that allows upload when clicked
+* taxes: list with
+
+ * name: string
+ * value: amount
+
+* Stock: button that opens more fields for stock control
+
+ * initial stock: number
+ * address: first collapsed, then field for Location
+ * next_restock: date
+ * cancel: button to set the stock to infinity, closing the section
+
+
+Alternatives
+============
+
+* price and stock columns in the list can be merged into a more complex column
+ with the same information
+
+* rows in the table can be expandable when clicked to get access to some common
+ actions like increase stock or change price
+
+.. image:: ../backoffice-product-list.actions.svg
+ :width: 800
+
+* detail page was intentionally left out since all information can be access
+ from the update page
+
+Q&A
+===
+
+* can we add the quantity locked in the product description? so we can add it
+ to the inventory list to reflect the current activity.
+
+* can we allow add extra data like order has in contractTerm?, this could be
+ useful for frontend apps. example of usage: country/state to where the product
+ is sold since taxes may vary
+
+
+
+
diff --git a/design-documents/index.rst b/design-documents/index.rst
index bc43baec..c07f2a4a 100644
--- a/design-documents/index.rst
+++ b/design-documents/index.rst
@@ -24,3 +24,6 @@ and protocol.
012-fee-schedule-metrics
013-peer-to-peer-payments
014-merchant-backoffice-ui
+ 015-merchant-backoffice-routing
+ 016-backoffice-order-management
+ 017-backoffice-inventory-management
diff --git a/taler-mcig.rst b/taler-mcig.rst
index 52f1102c..77a21a13 100644
--- a/taler-mcig.rst
+++ b/taler-mcig.rst
@@ -180,9 +180,7 @@ are demonstrated in the next section.
To forget a set of details, first the details that are to be forgotten
must be marked by including the names of the respective fields
- in a special field ``_forgettable`` in the contract.
- The value of the field is a list of jq(1)-style paths.
- FIXME: What about salt?
+ in one or more special ``_forgettable`` field(s) in the contract.
Then, you can use:
:http:patch:`[/instances/$INSTANCE]/private/orders/$ORDER_ID/forget`
@@ -222,9 +220,11 @@ are demonstrated in the next section.
(e.g. jammed vending machine), but there is no way to notify the
customer about a refund.
- If specified, the customer's wallet will wait that long after
- authorization (and before fulfillment) before automatically
- receiving a refund.
+ If specified, after contract authorization, the customer's wallet will
+ repeatedly check for either fulfillment or refund, up to the end of
+ the auto-refund period.
+ (If neither occur within that period, the customer should complain
+ to you for breach of contract.)
To set the auto-refund period, specify ``auto_refund``
in :http:post:`[/instances/$INSTANCE]/private/orders`.
@@ -252,9 +252,11 @@ are demonstrated in the next section.
The fulfillment URI is normally included in the contract.
You specify it in :http:post:`[/instances/$INSTANCE]/private/orders`.
- NOTE: explain hack to have the backend include the order ID in
- the fulfillment URI somewhere (useful if the backend auto-generates
- an order ID).
+
+ If the fulfillment URI contains the literal string ``${ORDER_ID}``
+ (including curly braces), that will be replaced by the order ID when
+ POSTing to the merchant. (FIXME: What does "POSTing to the merchant" mean?)
+ This is useful when the backend auto-generates the order ID.
Sample Interaction Traces
@@ -308,9 +310,6 @@ M: :http:post:`/private/instances`
}
// (backend returns 204 No content)
- // FIXME: Does InstanceAuthConfigurationMessage require re-configuration?
- // => Don't understand question, note that API changed here recently.
-
The fictitious store, Pretty Pianos, has only two products:
- pianos (physical good);
- *Beethoven Sonatas* (sheet music PDF files, digital good).
@@ -323,17 +322,20 @@ M: :http:post:`/instances/default/private/products`
{
"product_id": "p001",
"description": "piano",
- "unit": "unit", // FIXME: What is a better unit?
+ "unit": "unit",
+ "image": "data:image/png;base64,AAA=",
"price": "KUDOS:20000.0",
- "taxes": [], // FIXME: What is a Tax object?
+ "taxes": [],
"total_stock": 3,
- "next_restock": "2021-04-22"
+ "next_restock": "2021-04-22",
+ "_forgettable": ["image"]
}
// (backend returns 204 No content)
- // FIXME: also add product preview image, and
- // maybe use that as a good example for a
- // forgettable detail
+Note that the ``image`` field is mentioned by name in the ``_forgettable``
+field's list value.
+This means the ``image`` value is *marked as forgettable*.
+This will come into play later (see below).
M: :http:post:`/instances/default/private/products`
@@ -343,15 +345,190 @@ M: :http:post:`/instances/default/private/products`
{
"product_id": "f001",
"description": "Beethoven Sonatas",
- "unit": "file", // FIXME: What is a better unit?
+ "unit": "file",
"price": "KUDOS:9.87",
- "taxes": [], // FIXME: What is a Tax object?
- "next_restock": "0000-00-00"
+ "taxes": [],
+ "total_stock": -1
}
// (backend returns 204 No content)
+Note that there is no ``next_restock`` field in this ``ProductAddDetail``
+object.
+This is because the ``total_stock`` field has value ``-1`` (meaning "infinite")
+since the product is a PDF file.
+
+
+Scenario 1: Simple File Purchase
+--------------------------------
+
+The first scenario is a simple file purchase, without shopping cart,
+similar to the `GNU Essay demo <https://shop.demo.taler.net/en/>`_ experience.
+
+.. We hardcode "en/" for now because support for other
+ languages is not yet available (at time of writing).
+ (FIXME: Drop "en/" when other languages are supported.)
+
+Because there are infinite supplies of product ``f001``,
+there is really no need for inventory management.
+However, you choose to anyway generate a separate order ID
+in the backend for accounting purposes.
+Also, since the product is an easily reproduced digital good,
+you decline to offer the customer the ability to select a "quantity"
+other than 1 (one), and decide that "all sales are final"
+(no refund possible).
+On the other hand, you wish to enable repurchase detection /
+prevention feature, so that once customers pay for the PDF file,
+they need never pay again for it.
+
+When the customer clicks on the product's "buy" button,
+you first POST to ``/private/orders`` to create an order:
+
+M: :http:post:`/instances/default/private/orders`
+
+.. code-block:: javascript
+
+ // PostOrderRequest
+ {
+ "order":
+ // Order (MinimalOrderDetail)
+ {
+ "amount": "KUDOS:9.87",
+ "summary": "Beethoven Sonatas",
+ "fulfillment_URI": "https://example.com/f001?${ORDER_ID}"
+ },
+ "create_token": true
+ }
+
+Notes:
+- There is no ``refund_delay`` field (no refunds possible).
+- We show the ``create_token`` field with value ``true`` even though
+ that is the default (for illustrative purposes).
+- The ``order`` value is actually a ``MinimalOrderDetail`` object.
+- The ``fulfillment_URI`` value includes the product ID and the literal
+ string ``${ORDER_ID}``, to be replaced by the backend-generated order ID.
+
+The backend returns ``200 OK`` with the body:
+
+.. code-block:: javascript
+
+ // PostOrderResponse
+ {
+ "order_id": "G93420934823",
+ "token": "TEUFHEFBQALK"
+ }
+
+Notes:
+- The backend-generated order ID is ``G93420934823``.
+- The claim token is ``TEUFHEFBQALK``.
+
+(FIXME: Replace w/ more realistic examples?)
+
+Now that there is an order in the system, the wallet *claims* the order.
+
+W: :http:post:`/orders/G93420934823/claim`
+
+.. code-block:: javascript
+
+ // ClaimRequest
+ {
+ "nonce": "lksjdflaksjfdlaksjf",
+ "token": "TEUFHEFBQALK"
+ }
+
+Notes:
+- The ``nonce`` value is a randomly-generated string.
+- The POST endpoint includes the order ID ``G93420934823``.
+- The ``token`` value is the claim token ``TEUFHEFBQALK``
+ received in the ``PostOrderResponse``.
+
+The backend returns ``200 OK`` with body:
+
+.. code-block:: javascript
+
+ // ContractTerms
+ {
+ "summary": "one copy of Beethoven Sonatas",
+ "order_id": "G93420934823",
+ "amount": "KUDOS:9.87000000",
+ "fulfillment_url": "https://example.com/f001?G93420934823",
+ "max_fee": FIXME,
+ "max_wire_fee": FIXME,
+ "wire_fee_amortization": 1,
+ "products": [
+ // Product
+ {
+ "product_id": "f001",
+ "description": "Beethoven Sonatas"
+ }
+ ],
+ "timestamp": { "t_ms": 1616537665000 },
+ "refund_deadline": { "t_ms": 1616537665000 },
+ "pay_deadline": { "t_ms": 1616537725000 },
+ "wire_transfer_deadline": { "t_ms": 1616537785000 },
+ "merchant_pub": FIXME,
+ "merchant_base_url": "https://example.com/",
+ "merchant":
+ // Merchant
+ {
+ },
+ "h_wire": FIXME,
+ "wire_method": FIXME,
+ "auditors": [
+ // Auditor
+ ],
+ "exchanges": [
+ // Exchange
+ ],
+ "nonce": "lksjdflaksjfdlaksjf"
+ }
+
+Notes:
+- The ``order_id`` value is the one given in the ``PostOrderResponse``.
+- The ``timestamp`` value represents 2021-03-23 22:14:25 UTC
+ in milliseconds after the `epoch <https://en.wikipedia.org/wiki/Unix_epoch>`__.
+- The ``refund_deadline`` value is the same as the ``timestamp`` value
+ (no refunds possible).
+- The ``pay_deadline`` value is one minute after the ``timestamp`` value.
+- The ``wire_transfer_deadline`` value is two minutes after
+ the ``timestamp`` value.
+- The ``products`` value is a list of one element (one ``Product`` object),
+ which omits the ``price`` field since that is included in the
+ ``ContractTerms.amount`` value. Also, its ``quantity`` defaults to 1 (one).
+- The ``nonce`` value is the same one specified by the wallet.
+
+At this point, the wallet displays the contract terms (or a subset of them)
+to the customer, who now has the option to accept the contract or reject it
+(either explicitly by pressing a "cancel" button, or implicitly by waiting
+for the offer to time out).
+
+The customer accepts the contract:
+
+W: :http:post:`/orders/G93420934823/pay`
+
+.. code-block:: javascript
+
+ // PayRequest
+ {
+ "coins": FIXME,
+ "session_id": FIXME
+ }
+
+The backend returns ``200 OK`` with body:
+
+.. code-block:: javascript
+
+ // PaymentResponse
+ {
+ "sig": FIXME
+ }
+
+FIXME: At this point, does the wallet need to query (status)?
+Also, does the frontend need to do anything else?
+
+The wallet then redirects to the fulfillment URI, which displays
+(or makes available for download) the PDF file "Beethoven Sonatas".
+
+
-Scenarios
----------
-TODO/FIXME: Add various scenarios (including JSON).
+TODO/FIXME: Add more scenarios (including JSON).