@cloudea/yang-editor 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -4
- package/dist/componets.d.ts.map +1 -1
- package/dist/componets.js +16 -62
- package/dist/componets.js.map +1 -1
- package/dist/generator.d.ts +2 -0
- package/dist/generator.d.ts.map +1 -0
- package/dist/generator.js +188 -0
- package/dist/generator.js.map +1 -0
- package/dist/images.d.ts +18 -0
- package/dist/images.d.ts.map +1 -0
- package/dist/images.js +22 -0
- package/dist/images.js.map +1 -0
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/doc/mode-edit.png +0 -0
- package/doc/mode-read.png +0 -0
- package/images/add@2x.png +0 -0
- package/images/bold@2x.png +0 -0
- package/images/clear@2x.png +0 -0
- package/images/copy@2x.png +0 -0
- package/images/cut@2x.png +0 -0
- package/images/delete@2x.png +0 -0
- package/images/deleteline@2x.png +0 -0
- package/images/down@2x.png +0 -0
- package/images/fgcolor.svg +1 -0
- package/images/italic@2x.png +0 -0
- package/images/link@2x.png +0 -0
- package/images/menu2.svg +2 -0
- package/images/menu@2x.png +0 -0
- package/images/reportWebVitals.d.ts.map +1 -0
- package/images/underline@2x.png +0 -0
- package/package.json +7 -2
- package/src/componets.ts +16 -63
- package/src/generator.ts +182 -0
- package/src/images.ts +21 -0
- package/src/index.ts +0 -15
- package/src/style.css +42 -0
- package/tsconfig.json +5 -4
package/dist/images.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Auto-generated file - DO NOT EDIT
|
|
3
|
+
// This file contains base64 encoded images
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.images = void 0;
|
|
6
|
+
exports.images = {
|
|
7
|
+
add2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGmSURBVFiFxVbJYcMgEJwlaSRV+Gn0slWEKzA9WOoBd5DUoPhl/HUVqQTyELqsA1bB8fxWAmZgYWcJHFRKgtypjQkSAOBg6phusDDItYldkqJJG7JoUImdLv4m4Pt45RPzhEwLWL1rvoixgEpJCHdNQxwW8fY/5AAAicOG8Hk3/Y9iMOR55B7uhIsqpgU8/AivBQNLGUAlW0Sl5FgAeu87BkQ35Npgp4u2DkTP7bhqAdzdAxhcKKIbTwBkcwr+BJi7TwF/CmLV7hNChIc8CT4NAs5tXyYCAOFydIsjLGUcdxvgoorF+2UpC6SAytXkAIJPVEAuC0iRnoChUdhyZypdvw5USkI8rOHcNuimlrL3xQH1SnM57AQIyNG4cKvjp3KrWErk2ghYZh1Phjq1Ark2bDNJiPoVvCIN/hKLNuCeQuMhlZJ8M+teVndXn9uOdXAw2J+zJux6wq/7Dw4bAlJ1wjPYnz/64bASrkkFB5ayx0/jUrw/r+jzIsknfGXaC3a6SCaiaV5nTC1cMEOWukTswm4aV7Fbs4kQEknMEzAryKMp5yt6h1+8AKTXUlzRcwAAAABJRU5ErkJggg==',
|
|
8
|
+
bold2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADcSURBVFiF7ZRrDoMgEISnTe9VejLxZMLJ7A/YoIllH80Gf/AlRg0Ph3V2gMlkMA9mfAMQhHslALk+R5ucawG74RILeCnErMz4G61aS33/KPa/hCqwGdbsEPy+p0lWn+OplxECgGJIEV4CqBvCKAFUes64LgI0hlW1YWTGj20IlNNza1isQSRqQcDPA4AuxrubaIIooJRdXAmNByQktAxgQ0iCJYoJqkB3racHUr2HUQKINEJARDt5/j3NR0DA2YCpN1naBQG6ViRWTgDHP0kYJR/wyIGMcx5MJvfmC0EdViqgG/sdAAAAAElFTkSuQmCC',
|
|
9
|
+
clear2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADoSURBVFiF7ZdLDsIwDESHm+VmhJOlN4MFjWRckoztGiTESF70E7/XqIla4J8v5xIcX/YCgG2vj6QAaADuqpoQSoVrsK40CQ3vT1wA1GwJDa9v7kmVWMHTJWTTVVIk2Bk4TaIoWD+OSJjh2j4q0TxwDfFI9E1rKcA2t0rIXXMaS1OLBPUeVAPcIkH3pafJIFFBPn1EYCSh4cUisLyZkDBvQrIBtV5JCQreI2fBI1Ej8KjEKXCvxKlwq0QKnJUIw5nP8qYa3/D8/L4Ozs+yuj6VGK1xS3mXN4DjdHvrJZ4/o+IYI7MFx/9YHqpw4/wia7QRAAAAAElFTkSuQmCC',
|
|
10
|
+
copy2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADMSURBVFiF7ZZbEsIgDEVvHffVuDLpyqArqx8FrRiVhEd/cmYYZngklwwhAMbJTML1BOCu9LXG3in3wwHYGjQ6GpVEYIv9Taf/Gb2gtZFOoIXifn8cvFQYbIIJ4AR4vN9az6zpJsAhS5Pe5ALm2C/YU3SCPu1UAhKhp9MSAcMwASZgpADiBq8CAwGvilbD+msyPcPEzCXnNe3jWZdGQPqF+0uPO+AhKGCSCJRCksWnp+G3CNBIEbnjFl9vV+qQu9Vp88zMlbBgYDk3qnkARgpONsy9a0IAAAAASUVORK5CYII=',
|
|
11
|
+
cut2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADxSURBVFiF7ZZRDoMgDIZ/lx2sN1t3MrzZ9uDIutKCIOjD+BJjgtB+AYoAk39nKXynzxPhUSIWAcDLeE6RYJWQVRuNTE4iUU6shjiOe3SOS0OVyc2Y951BWgn4ij4tAQvCZhuc73uWgPC7iSnX2ROwpoyddm+8nIEqYqIYxCpJS0KPO4QM5smw09+Sa4aQTqNO5kkNRUo0H1C3rkqDIFy0BAR755+yCWUwrwypMO6QROkgytW4lGg6iGIAnVzL5SCkS2fSUgWrSJLrs2D7AQHAw5MYXYa8R0JDuPhCAqSlxkbbcBhp6XVPXnMtX9V7MunCG5oyltrXyXn1AAAAAElFTkSuQmCC',
|
|
12
|
+
delete2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADESURBVFiF7ZdhDoMgDIXflt1rvdnYyexO5n4I0URb4RHFBF9CTKptP4tgAXrXg/QTw65kvCIFAKMxhtJgLwJAAbyNe18i3vU0wC5x7VhN0fPQV6lUqoQcmaR5Bc4AGDEt3SYAEq/WsqUBJNO2KwYgYPpAlwkl2op3QgbALCejLlbBDXADXBuA6YhS16MLm0a7olBsS7aVKBCx2k/BWQA/BiA5fSoSy94D3sFEMP/dtBKAPQC5h5DcIXCUS+YGcaSkX0f6A9JRRH7yUeoDAAAAAElFTkSuQmCC',
|
|
13
|
+
deleteline2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADwSURBVFiF7VZtDsIgDH3THcSj1JNZTzY82fyzxa4gUFZM1L2k6TLa1xcoH8CBf8fQmEfKB+W7gQHMBaM3ubtAFYWlTd4CJlWAEwK5lwhZvERKBaERTkYx98J4qIjZoGYXzMZ44DVTDxRmoZeAapwrYgjARQgI3iJKYMTdTV7kckpzpKnuD4s3NZ3OlwLmdFw3DIB9G7pjFN/XHTy3xZP6H9C+RE0gxPfCx6FFUC64Rw8EbM+KrIAxN7gkrwSa2CKoGYy29ZQ3KO0RABivV2xFu7wJJGHuKOZEbCrORUSNuRVfQYifZiljC+nXPcsP/B6ekq1yptAqTwMAAAAASUVORK5CYII=',
|
|
14
|
+
down2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAABiSURBVFiF7ZBBCoAwDARXX5an+bPiy+rFo5TYaSvIDuSWMEMkY4wxH7MlduKeXg5wqyKpwiktwU7qkpzkOMQ/ECSARmA5iRgm74kYLn8TMU2eiZgub0Uskz9FLJcbY8x/uAClcl7rtXA5XgAAAABJRU5ErkJggg==',
|
|
15
|
+
fgcolor: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTciIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNyAxNyIgZmlsbD0ibm9uZSI+PHBhdGggICBmaWxsPSJyZ2JhKDIyOCwgNzMsIDkxLCAxKSIgIGQ9Ik0yLjUgMEwxNC41IDBDMTUuODgwNyAwIDE3IDEuMTE5MjkgMTcgMi41TDE3IDE0LjVDMTcgMTUuODgwNyAxNS44ODA3IDE3IDE0LjUgMTdMMi41IDE3QzEuMTE5MjkgMTcgMCAxNS44ODA3IDAgMTQuNUwwIDIuNUMwIDEuMTE5MjkgMS4xMTkyOSAwIDIuNSAwWk0yLjUgMUMxLjY3MTU3IDEgMSAxLjY3MTU3IDEgMi41TDEgMTQuNUMxIDE1LjMyODQgMS42NzE1NyAxNiAyLjUgMTZMMTQuNSAxNkMxNS4zMjg0IDE2IDE2IDE1LjMyODQgMTYgMTQuNUwxNiAyLjVDMTYgMS42NzE1NyAxNS4zMjg0IDEgMTQuNSAxTDIuNSAxWiI+PC9wYXRoPjxnICBjbGlwLXBhdGg9InVybCgjY2xpcC1wYXRoLXVEbXBUYVlCZC1HQWJ2bVU0a1JTbSkiPjxwYXRoIGQ9Ik0xMy40Njg2IDEwLjM5NzNDMTMuNDQ4IDEwLjQxNzkgMTMuNDI3MiAxMC40MzgxIDEzLjQwNjEgMTAuNDU4MUMxMy4zODUgMTAuNDc4MSAxMy4zNjM3IDEwLjQ5NzggMTMuMzQyMSAxMC41MTczQzEzLjMyMDYgMTAuNTM2NyAxMy4yOTg4IDEwLjU1NiAxMy4yNzY3IDEwLjU3NDlDMTMuMjU0NyAxMC41OTM4IDEzLjIzMjQgMTAuNjEyNSAxMy4yMDk5IDEwLjYzMDlDMTMuMTg3NCAxMC42NDkyIDEzLjE2NDcgMTAuNjY3MyAxMy4xNDE3IDEwLjY4NTFDMTMuMTE4OCAxMC43MDMgMTMuMDk1NiAxMC43MjA1IDEzLjA3MjIgMTAuNzM3N0MxMy4wNDg5IDEwLjc1NSAxMy4wMjUzIDEwLjc3MTkgMTMuMDAxNSAxMC43ODg2QzEyLjk3NzcgMTAuODA1MiAxMi45NTM3IDEwLjgyMTYgMTIuOTI5NCAxMC44Mzc3QzEyLjkwNTIgMTAuODUzOCAxMi44ODA5IDEwLjg2OTUgMTIuODU2MyAxMC44ODVDMTIuODMxNyAxMC45MDA1IDEyLjgwNjkgMTAuOTE1NiAxMi43ODE5IDEwLjkzMDVDMTIuNzU2OSAxMC45NDUzIDEyLjczMTggMTAuOTU5OSAxMi43MDY1IDEwLjk3NDFDMTIuNjgxMSAxMC45ODgzIDEyLjY1NTYgMTEuMDAyMiAxMi42Mjk5IDExLjAxNThDMTIuNjA0MyAxMS4wMjk0IDEyLjU3ODQgMTEuMDQyNyAxMi41NTI0IDExLjA1NTdDMTIuNTI2NCAxMS4wNjg2IDEyLjUwMDMgMTEuMDgxMyAxMi40NzQgMTEuMDkzNkMxMi40NDc2IDExLjEwNTkgMTIuNDIxMiAxMS4xMTc5IDEyLjM5NDYgMTEuMTI5NkMxMi4zNjc5IDExLjE0MTIgMTIuMzQxMiAxMS4xNTI1IDEyLjMxNDMgMTEuMTYzNkMxMi4yODc0IDExLjE3NDYgMTIuMjYwNCAxMS4xODUyIDEyLjIzMzIgMTEuMTk1NUMxMi4yMDYxIDExLjIwNTkgMTIuMTc4OCAxMS4yMTU5IDEyLjE1MTQgMTEuMjI1NUMxMi4xMjQgMTEuMjM1MiAxMi4wOTY1IDExLjI0NDUgMTIuMDY4OSAxMS4yNTM1QzEyLjA0MTIgMTEuMjYyNSAxMi4wMTM1IDExLjI3MTEgMTEuOTg1NiAxMS4yNzk0QzExLjk1NzggMTEuMjg3NyAxMS45Mjk5IDExLjI5NTYgMTEuOTAxOCAxMS4zMDMyQzExLjg3MzggMTEuMzEwOCAxMS44NDU2IDExLjMxODEgMTEuODE3NCAxMS4zMjVDMTEuNzg5MiAxMS4zMzE5IDExLjc2MDkgMTEuMzM4NSAxMS43MzI1IDExLjM0NDdDMTEuNzA0MSAxMS4zNTA5IDExLjY3NTcgMTEuMzU2NyAxMS42NDcxIDExLjM2MjJDMTEuNjE4NiAxMS4zNjc3IDExLjU5IDExLjM3MjkgMTEuNTYxNCAxMS4zNzc3QzExLjUzMjcgMTEuMzgyNSAxMS41MDQgMTEuMzg2OSAxMS40NzUyIDExLjM5MUMxMS40NDY1IDExLjM5NTEgMTEuNDE3NyAxMS4zOTg4IDExLjM4ODggMTEuNDAyMkMxMS4zNTk5IDExLjQwNTYgMTEuMzMxMSAxMS40MDg2IDExLjMwMjEgMTEuNDExM0MxMS4yNzMyIDExLjQxMzkgMTEuMjQ0MiAxMS40MTYyIDExLjIxNTIgMTEuNDE4MkMxMS4xODYzIDExLjQyMDEgMTEuMTU3MiAxMS40MjE3IDExLjEyODIgMTEuNDIyOUMxMS4wOTkyIDExLjQyNDIgMTEuMDcwMiAxMS40MjUgMTEuMDQxMSAxMS40MjU1QzExLjAxMjEgMTEuNDI2MSAxMC45ODMgMTEuNDI2MiAxMC45NTM5IDExLjQyNkw5Ljg0OTI5IDExLjQyNkM5LjYxNzI4IDExLjQyNiA5LjM5Nzk2IDExLjY0NDcgOS4zOTc5NiAxMS44NzczQzkuMzk3OTYgMTEuOTY0IDkuNDUzMjkgMTIuMDU2NyA5LjU0Mzk2IDEyLjE5NEM5Ljc4MDYyIDEyLjQ0NDcgOS44OTA2MiAxMi43MzYgOS44OTA2MiAxMy4xMDQ3QzkuODkwNjIgMTMuNDYyNyA5LjczOTk2IDEzLjgyIDkuNDc1OTYgMTQuMDg0NkM5LjQ2NzkzIDE0LjA5MjcgOS40NTk4MiAxNC4xMDA3IDkuNDUxNjEgMTQuMTA4NUM5LjQ0MzM5IDE0LjExNjQgOS40MzUwOSAxNC4xMjQxIDkuNDI2NjkgMTQuMTMxOEM5LjQxODI5IDE0LjEzOTUgOS40MDk3OSAxNC4xNDcgOS40MDEyMSAxNC4xNTQ1QzkuMzkyNjMgMTQuMTYxOSA5LjM4Mzk1IDE0LjE2OTMgOS4zNzUyIDE0LjE3NjVDOS4zNjY0MyAxNC4xODM4IDkuMzU3NTkgMTQuMTkwOSA5LjM0ODY2IDE0LjE5NzlDOS4zMzk3MiAxNC4yMDQ5IDkuMzMwNyAxNC4yMTE5IDkuMzIxNiAxNC4yMTg3QzkuMzEyNDkgMTQuMjI1NSA5LjMwMzMyIDE0LjIzMjMgOS4yOTQwNSAxNC4yMzg4QzkuMjg0NzkgMTQuMjQ1NCA5LjI3NTQ1IDE0LjI1MTggOS4yNjYwMyAxNC4yNTgzQzkuMjU2NjEgMTQuMjY0NiA5LjI0NzExIDE0LjI3MDggOS4yMzc1NCAxNC4yNzdDOS4yMjc5NiAxNC4yODMxIDkuMjE4MzIgMTQuMjg5MSA5LjIwODYxIDE0LjI5NTFDOS4xOTg4OSAxNC4zMDA5IDkuMTg5MDkgMTQuMzA2NyA5LjE3OTI0IDE0LjMxMjRDOS4xNjkzOCAxNC4zMTggOS4xNTk0NyAxNC4zMjM1IDkuMTQ5NDcgMTQuMzI4OUM5LjEzOTQ4IDE0LjMzNDMgOS4xMjk0MiAxNC4zMzk3IDkuMTE5MzEgMTQuMzQ0OUM5LjEwOTE4IDE0LjM1IDkuMDk5IDE0LjM1NTEgOS4wODg3NiAxNC4zNkM5LjA3ODUyIDE0LjM2NDkgOS4wNjgyMSAxNC4zNjk3IDkuMDU3ODYgMTQuMzc0NEM5LjA0NzUxIDE0LjM3OTEgOS4wMzcwOSAxNC4zODM3IDkuMDI2NjIgMTQuMzg4MUM5LjAxNjE2IDE0LjM5MjYgOS4wMDU2NCAxNC4zOTY4IDguOTk1MDUgMTQuNDAxQzguOTg0NDggMTQuNDA1MiA4Ljk3Mzg3IDE0LjQwOTIgOC45NjMxOSAxNC40MTMyQzguOTUyNTIgMTQuNDE3MSA4Ljk0MTggMTQuNDIwOCA4LjkzMTA1IDE0LjQyNDZDOC45MjAyOCAxNC40MjgyIDguOTA5NDcgMTQuNDMxNyA4Ljg5ODYzIDE0LjQzNTFDOC44ODc3OCAxNC40Mzg1IDguODc2ODkgMTQuNDQxOCA4Ljg2NTk3IDE0LjQ0NUM4Ljg1NTA0IDE0LjQ0OCA4Ljg0NDA4IDE0LjQ1MSA4LjgzMzA4IDE0LjQ1MzlDOC44MjIwNyAxNC40NTY3IDguODExMDUgMTQuNDU5NSA4Ljc5OTk4IDE0LjQ2MjFDOC43ODg5MSAxNC40NjQ2IDguNzc3ODEgMTQuNDY3MiA4Ljc2NjY5IDE0LjQ2OTZDOC43NTU1NyAxNC40NzE4IDguNzQ0NDEgMTQuNDc0IDguNzMzMjMgMTQuNDc2MUM4LjcyMjA3IDE0LjQ3ODEgOC43MTA4NiAxNC40OCA4LjY5OTY0IDE0LjQ4MTlDOC42ODg0MSAxNC40ODM2IDguNjc3MTYgMTQuNDg1MyA4LjY2NTkgMTQuNDg2OUM4LjY1NDY0IDE0LjQ4ODMgOC42NDMzNSAxNC40ODk3IDguNjMyMDYgMTQuNDkxQzguNjIwNzYgMTQuNDkyMiA4LjYwOTQ1IDE0LjQ5MzQgOC41OTgxMiAxNC40OTQzQzguNTg2NzkgMTQuNDk1MiA4LjU3NTQ1IDE0LjQ5NjIgOC41NjQxMSAxNC40OTY5QzguNTUyNzcgMTQuNDk3NiA4LjU0MTQxIDE0LjQ5OCA4LjUzMDA2IDE0LjQ5ODVDOC41MTg3IDE0LjQ5ODkgOC41MDczMyAxNC40OTkxIDguNDk1OTcgMTQuNDk5M0M4LjM5OTE4IDE0LjQ5OTggOC4zMDI0MyAxNC40OTc5IDguMjA1NzQgMTQuNDkzN0M4LjEwOTA1IDE0LjQ4OTUgOC4wMTI1MiAxNC40ODI4IDcuOTE2MTQgMTQuNDczOUM3LjgxOTc3IDE0LjQ2NSA3LjcyMzY2IDE0LjQ1MzYgNy42Mjc4NCAxNC40NEM3LjUzMjAyIDE0LjQyNjQgNy40MzY1OCAxNC40MTA1IDcuMzQxNTMgMTQuMzkyMkM3LjI0NjQ4IDE0LjM3MzkgNy4xNTE5MyAxNC4zNTM0IDcuMDU3ODkgMTQuMzMwNkM2Ljk2MzgzIDE0LjMwNzcgNi44NzA0IDE0LjI4MjYgNi43Nzc1NyAxNC4yNTUyQzYuNjg0NzUgMTQuMjI3OCA2LjU5MjY0IDE0LjE5ODEgNi41MDEyNSAxNC4xNjYyQzYuNDA5ODYgMTQuMTM0NCA2LjMxOTMxIDE0LjEwMDMgNi4yMjk1OCAxNC4wNjRDNi4xMzk4NSAxNC4wMjc3IDYuMDUxMDYgMTMuOTg5MyA1Ljk2MzIgMTMuOTQ4N0M1Ljg3NTM1IDEzLjkwODEgNS43ODg1MiAxMy44NjUzIDUuNzAyNzQgMTMuODIwNUM1LjYxNjk2IDEzLjc3NTcgNS41MzIzMyAxMy43Mjg4IDUuNDQ4ODMgMTMuNjc5OEM1LjM2NTM0IDEzLjYzMDkgNS4yODMwNyAxMy41OCA1LjIwMjA1IDEzLjUyN0M1LjEyMTAyIDEzLjQ3NDEgNS4wNDEzNCAxMy40MTkyIDQuOTYyOTkgMTMuMzYyNEM0Ljg4NDY0IDEzLjMwNTUgNC44MDc3MiAxMy4yNDY4IDQuNzMyMjIgMTMuMTg2M0M0LjY1NjczIDEzLjEyNTcgNC41ODI3NSAxMy4wNjMzIDQuNTEwMjggMTIuOTk5MkM0LjQzNzgyIDEyLjkzNSA0LjM2Njk2IDEyLjg2OTEgNC4yOTc3IDEyLjgwMTVDNC4yMjg0NCAxMi43MzM5IDQuMTYwODcgMTIuNjY0NyA0LjA5NDk4IDEyLjU5MzhDNC4wMjkwOSAxMi41MjI5IDMuOTY0OTcgMTIuNDUwNCAzLjkwMjYgMTIuMzc2NEMzLjg0MDIzIDEyLjMwMjQgMy43Nzk3MSAxMi4yMjY5IDMuNzIxMDIgMTIuMTQ5OUMzLjY2MjMyIDEyLjA3MyAzLjYwNTUzIDExLjk5NDYgMy41NTA2NSAxMS45MTQ5QzMuNDk1NzcgMTEuODM1MiAzLjQ0Mjg2IDExLjc1NDIgMy4zOTE5MiAxMS42NzE5QzMuMzQwOTggMTEuNTg5NiAzLjI5MjA2IDExLjUwNjEgMy4yNDUxOCAxMS40MjE0QzMuMTk4MyAxMS4zMzY3IDMuMTUzNTEgMTEuMjUxIDMuMTEwOCAxMS4xNjQxQzMuMDY4MDkgMTEuMDc3MyAzLjAyNzUyIDEwLjk4OTQgMi45ODkwOCAxMC45MDA2QzIuOTUwNjUgMTAuODExOCAyLjkxNDM5IDEwLjcyMjEgMi44ODAzMiAxMC42MzE1QzIuODQ2MjUgMTAuNTQwOSAyLjgxNDQgMTAuNDQ5NSAyLjc4NDc3IDEwLjM1NzRDMi43NTUxNCAxMC4yNjUyIDIuNzI3NzcgMTAuMTcyNCAyLjcwMjY2IDEwLjA3ODlDMi42Nzc1NSA5Ljk4NTQ4IDIuNjU0NzIgOS44OTE0NSAyLjYzNDE4IDkuNzk2ODZDMi42MTM2NCA5LjcwMjI4IDIuNTk1NDEgOS42MDcyNyAyLjU3OTQ5IDkuNTExNzlDMi41NjM1OCA5LjQxNjMyIDIuNTQ5OTkgOS4zMjA1MiAyLjUzODczIDkuMjI0MzlDMi41Mjc0NyA5LjEyODI2IDIuNTE4NTYgOS4wMzE5MSAyLjUxMTk5IDguOTM1MzVDMi41MDU0MiA4LjgzODc5IDIuNTAxMiA4Ljc0MjEyIDIuNDk5MzMgOC42NDUzNkwyLjQ5OTMzIDguMzU1MzVDMi41MDAyOCA4LjMwNzAyIDIuNTAxODIgOC4yNTg3MiAyLjUwMzk1IDguMjEwNDNDMi41MDYwNyA4LjE2MjEzIDIuNTA4NzggOC4xMTM4NyAyLjUxMjA4IDguMDY1NjVDMi41MTUzOCA4LjAxNzQzIDIuNTE5MjYgNy45NjkyNSAyLjUyMzcyIDcuOTIxMTJDMi41MjgxOSA3Ljg3MyAyLjUzMzIzIDcuODI0OTMgMi41Mzg4NyA3Ljc3NjkxQzIuNTQ0NSA3LjcyODkgMi41NTA3MSA3LjY4MDk3IDIuNTU3NSA3LjYzMzEyQzIuNTY0MyA3LjU4NTI3IDIuNTcxNjcgNy41Mzc1IDIuNTc5NjIgNy40ODk4MkMyLjU4NzU4IDcuNDQyMTMgMi41OTYxMSA3LjM5NDU3IDIuNjA1MjEgNy4zNDcwOUMyLjYxNDMyIDcuMjk5NjIgMi42MjQgNy4yNTIyNyAyLjYzNDI2IDcuMjA1MDNDMi42NDQ1MSA3LjE1Nzc5IDIuNjU1MzQgNy4xMTA2OSAyLjY2Njc0IDcuMDYzNzJDMi42NzgxNCA3LjAxNjc0IDIuNjkwMSA2Ljk2OTkxIDIuNzAyNjQgNi45MjMyNEMyLjcxNTE3IDYuODc2NTUgMi43MjgyNyA2LjgzMDAzIDIuNzQxOTQgNi43ODM2NkMyLjc1NTYgNi43MzczIDIuNzY5ODIgNi42OTExIDIuNzg0NjEgNi42NDUwOEMyLjc5OTM5IDYuNTk5MDYgMi44MTQ3MyA2LjU1MzIyIDIuODMwNjMgNi41MDc1N0MyLjg0NjUyIDYuNDYxOTMgMi44NjI5NyA2LjQxNjQ4IDIuODc5OTcgNi4zNzEyNEMyLjg5Njk3IDYuMzI1OTkgMi45MTQ1MSA2LjI4MDk1IDIuOTMyNiA2LjIzNjEyQzIuOTUwNjkgNi4xOTEzIDIuOTY5MzMgNi4xNDY3MSAyLjk4ODUgNi4xMDIzM0MzLjAwNzY3IDYuMDU3OTYgMy4wMjczOCA2LjAxMzgzIDMuMDQ3NjIgNS45Njk5M0MzLjA2Nzg3IDUuOTI2MDQgMy4wODg2NCA1Ljg4MjQgMy4xMDk5NCA1LjgzOTAxQzMuMTMxMjUgNS43OTU2MSAzLjE1MzA3IDUuNzUyNDkgMy4xNzU0MiA1LjcwOTYzQzMuMTk3NzcgNS42NjY3OCAzLjIyMDYzIDUuNjI0MTkgMy4yNDQwMiA1LjU4MTg5QzMuMjY3NCA1LjUzOTU4IDMuMjkxMjkgNS40OTc1NyAzLjMxNTY5IDUuNDU1ODRDMy4zNDAwOSA1LjQxNDExIDMuMzY1IDUuMzcyNyAzLjM5MDQgNS4zMzE1N0MzLjQxNTgxIDUuMjkwNDUgMy40NDE3MSA1LjI0OTY0IDMuNDY4MSA1LjIwOTE1QzMuNDk0NSA1LjE2ODY2IDMuNTIxMzggNS4xMjg0OSAzLjU0ODc1IDUuMDg4NjRDMy41NzYxMiA1LjA0ODgxIDMuNjAzOTcgNS4wMDkzMSAzLjYzMjMgNC45NzAxM0MzLjY2MDYzIDQuOTMwOTcgMy42ODk0NCA0Ljg5MjE2IDMuNzE4NyA0Ljg1MzdDMy43NDc5NyA0LjgxNTIyIDMuNzc3NyA0Ljc3NzExIDMuODA3OSA0LjczOTM3QzMuODM4MSA0LjcwMTYyIDMuODY4NzUgNC42NjQyNSAzLjg5OTg1IDQuNjI3MjVDMy45MzA5NSA0LjU5MDI2IDMuOTYyNSA0LjU1MzY0IDMuOTk0NDkgNC41MTczOUM0LjAyNjQ3IDQuNDgxMTYgNC4wNTg5IDQuNDQ1MzEgNC4wOTE3NSA0LjQwOTg2QzQuMTI0NjEgNC4zNzQ0MSA0LjE1NzkgNC4zMzkzNyA0LjE5MTYxIDQuMzA0NzNDNC4yMjUzMiA0LjI3MDA4IDQuMjU5NDUgNC4yMzU4NSA0LjI5Mzk4IDQuMjAyMDRDNC4zMjg2MSA0LjE2ODE2IDQuMzYzNjUgNC4xMzQ3MiA0LjM5OTEgNC4xMDE2OUM0LjQzNDU1IDQuMDY4NjggNC40NzAzOSA0LjAzNjA5IDQuNTA2NjMgNC4wMDM5NUM0LjU0Mjg4IDMuOTcxNzkgNC41Nzk1IDMuOTQwMDggNC42MTY1MSAzLjkwODgyQzQuNjUzNTIgMy44Nzc1NyA0LjY5MDkgMy44NDY3NiA0LjcyODY3IDMuODE2NDJDNC43NjY0MyAzLjc4NjA3IDQuODA0NTUgMy43NTYxOSA0Ljg0MzAzIDMuNzI2NzZDNC44ODE1MyAzLjY5NzM0IDQuOTIwMzYgMy42NjgzOSA0Ljk1OTU1IDMuNjM5OTJDNC45OTg3NSAzLjYxMTQ0IDUuMDM4MjggMy41ODM0NSA1LjA3ODE2IDMuNTU1OTRDNS4xMTgwMiAzLjUyODQyIDUuMTU4MjIgMy41MDE0IDUuMTk4NzUgMy40NzQ4N0M1LjIzOTI5IDMuNDQ4MzMgNS4yODAxMyAzLjQyMjI5IDUuMzIxMyAzLjM5Njc1QzUuMzYyNDYgMy4zNzEyMSA1LjQwMzk0IDMuMzQ2MTcgNS40NDU3MSAzLjMyMTY0QzUuNDg3NDkgMy4yOTcxMSA1LjUyOTU1IDMuMjczMDkgNS41NzE5MSAzLjI0OTU4QzUuNjE0MjggMy4yMjYwNyA1LjY1NjkxIDMuMjAzMDggNS42OTk4MiAzLjE4MDYxQzUuNzQyNzQgMy4xNTgxNCA1Ljc4NTkyIDMuMTM2MiA1LjgyOTM4IDMuMTE0NzhDNS44NzI4MyAzLjA5MzM2IDUuOTE2NTQgMy4wNzI0NyA1Ljk2MDUgMy4wNTIxMkM2LjAwNDQ1IDMuMDMxNzYgNi4wNDg2NiAzLjAxMTk0IDYuMDkzMTEgMi45OTI2NkM2LjEzNzU0IDIuOTczMzggNi4xODIyMiAyLjk1NDY0IDYuMjI3MTEgMi45MzY0NUM2LjI3MiAyLjkxODI2IDYuMzE3MTIgMi45MDA2MSA2LjM2MjQ1IDIuODgzNTJDNi40MDc3OCAyLjg2NjQyIDYuNDUzMzEgMi44NDk4OCA2LjQ5OTA0IDIuODMzOUM2LjU0NDc3IDIuODE3OTEgNi41OTA2OCAyLjgwMjQ4IDYuNjM2OCAyLjc4NzYxQzYuNjgyOSAyLjc3Mjc0IDYuNzI5MTggMi43NTg0MyA2Ljc3NTY0IDIuNzQ0NjlDNi44MjIwOSAyLjczMDk1IDYuODY4NzEgMi43MTc3NyA2LjkxNTQ4IDIuNzA1MTZDNi45NjIyNSAyLjY5MjU1IDcuMDA5MTcgMi42ODA1MSA3LjA1NjI1IDIuNjY5MDVDNy4xMDMzMSAyLjY1NzU4IDcuMTUwNTEgMi42NDY2OSA3LjE5Nzg0IDIuNjM2MzdDNy4yNDUxOCAyLjYyNjA1IDcuMjkyNjQgMi42MTYzMSA3LjM0MDIgMi42MDcxNEM3LjM4Nzc3IDIuNTk3OTggNy40MzU0NCAyLjU4OTQgNy40ODMyMiAyLjU4MTM5QzcuNTMxIDIuNTczMzkgNy41Nzg4NyAyLjU2NTk3IDcuNjI2ODMgMi41NTkxM0M3LjY3NDggMi41NTIyOSA3LjcyMjgzIDIuNTQ2MDQgNy43NzA5NCAyLjU0MDM3QzcuODE5MDQgMi41MzQ3IDcuODY3MjIgMi41Mjk2MSA3LjkxNTQ1IDIuNTI1MTJDNy45NjM2OSAyLjUyMDYyIDguMDExOTcgMi41MTY3MSA4LjA2MDMxIDIuNTEzMzlDOC4xMDg2NCAyLjUxMDA3IDguMTU3IDIuNTA3MzMgOC4yMDU0IDIuNTA1MTlDOC4yNTM4IDIuNTAzMDQgOC4zMDIyMSAyLjUwMTQ5IDguMzUwNjQgMi41MDA1MkM4LjM5OTA3IDIuNDk5NTUgOC40NDc1MiAyLjQ5OTE3IDguNDk1OTcgMi40OTkzOUMxMC4wOTMzIDIuNDk5MzkgMTEuNTk1OSAzLjA1NTM4IDEyLjcyNTkgNC4wNjI3MkMxMi43NTk3IDQuMDkyNDIgMTIuNzkzMSA0LjEyMjU0IDEyLjgyNjIgNC4xNTMwOUMxMi44NTkyIDQuMTgzNjQgMTIuODkxOSA0LjIxNDYxIDEyLjkyNDEgNC4yNDU5OUMxMi45NTY0IDQuMjc3MzYgMTIuOTg4MiA0LjMwOTE0IDEzLjAxOTYgNC4zNDEzMkMxMy4wNTExIDQuMzczNSAxMy4wODIxIDQuNDA2MDYgMTMuMTEyOCA0LjQzOTAzQzEzLjE0MzQgNC40NzE5OSAxMy4xNzM2IDQuNTA1MzQgMTMuMjAzNCA0LjUzOTA3QzEzLjIzMzEgNC41NzI4IDEzLjI2MjUgNC42MDY5IDEzLjI5MTQgNC42NDEzNkMxMy4zMjAzIDQuNjc1ODMgMTMuMzQ4OCA0LjcxMDY0IDEzLjM3NjkgNC43NDU4NEMxMy40MDQ5IDQuNzgxMDMgMTMuNDMyNSA0LjgxNjU2IDEzLjQ1OTYgNC44NTI0NUMxMy40ODY4IDQuODg4MzQgMTMuNTEzNSA0LjkyNDU2IDEzLjUzOTcgNC45NjExMUMxMy41NjU5IDQuOTk3NjcgMTMuNTkxNyA1LjAzNDU1IDEzLjYxNyA1LjA3MTc2QzEzLjY0MjMgNS4xMDg5NiAxMy42NjcxIDUuMTQ2NDkgMTMuNjkxNSA1LjE4NDMzQzEzLjcxNTggNS4yMjIxNyAxMy43Mzk3IDUuMjYwMyAxMy43NjMxIDUuMjk4NzRDMTMuNzg2NSA1LjMzNzE5IDEzLjgwOTQgNS4zNzU5MiAxMy44MzE4IDUuNDE0OTNDMTMuODU0MiA1LjQ1Mzk0IDEzLjg3NjEgNS40OTMyMyAxMy44OTc1IDUuNTMyODFDMTMuOTE4OSA1LjU3MjM4IDEzLjkzOTggNS42MTIyMiAxMy45NjAyIDUuNjUyMzJDMTMuOTgwNiA1LjY5MjQyIDE0LjAwMDUgNS43MzI3NyAxNC4wMTk5IDUuNzczMzdDMTQuMDM5NiA1LjgxNDI2IDE0LjA1ODYgNS44NTU0MyAxNC4wNzcxIDUuODk2ODVDMTQuMDk1NiA1LjkzODI4IDE0LjExMzUgNS45Nzk5NiAxNC4xMzA4IDYuMDIxODlDMTQuMTQ4MSA2LjA2MzgyIDE0LjE2NDggNi4xMDU5OCAxNC4xODEgNi4xNDgzOEMxNC4xOTcxIDYuMTkwNzcgMTQuMjEyNyA2LjIzMzM5IDE0LjIyNzcgNi4yNzYyMkMxNC4yNDI2IDYuMzE5MDYgMTQuMjU2OSA2LjM2MjA5IDE0LjI3MDcgNi40MDUzMkMxNC4yODQ0IDYuNDQ4NTUgMTQuMjk3NSA2LjQ5MTk3IDE0LjMxMDEgNi41MzU1NkMxNC4zMjI1IDYuNTc5MTYgMTQuMzM0NCA2LjYyMjkzIDE0LjM0NTggNi42NjY4N0MxNC4zNTcxIDYuNzEwOCAxNC4zNjc4IDYuNzU0ODggMTQuMzc3OSA2Ljc5OTExQzE0LjM4NzkgNi44NDMzNCAxNC4zOTczIDYuODg3NzEgMTQuNDA2MiA2LjkzMjJDMTQuNDE1IDYuOTc2NyAxNC40MjMyIDcuMDIxMyAxNC40MzA5IDcuMDY2MDNDMTQuNDM4NCA3LjExMDc2IDE0LjQ0NTQgNy4xNTU1OSAxNC40NTE3IDcuMjAwNUMxNC40NTgxIDcuMjQ1NDIgMTQuNDYzNyA3LjI5MDQyIDE0LjQ2ODkgNy4zMzU1QzE0LjQ3MzggNy4zODA1OSAxNC40NzgyIDcuNDI1NzMgMTQuNDgyMSA3LjQ3MDkzQzE0LjQ4NTkgNy41MTYxMyAxNC40ODkgNy41NjEzNyAxNC40OTE2IDcuNjA2NjZDMTQuNDk0MiA3LjY1MTk2IDE0LjQ5NiA3LjY5NzI5IDE0LjQ5NzMgNy43NDI2M0MxNC40OTg2IDcuNzg3OTYgMTQuNDk5MyA3LjgzMzMzIDE0LjQ5OTMgNy44Nzg2OUMxNC40OTkzIDguODM5MzUgMTQuMTMyNiA5LjczNDAyIDEzLjQ2ODYgMTAuMzk3M1pNMTIuMDk3MyA0Ljc2NzM3QzExLjE0MDYgMy45MTQ3MSA5Ljg2MTI5IDMuNDQ0NzEgOC40OTU5NyAzLjQ0NDcxQzguNDE0NDUgMy40NDQyNyA4LjMzMjk4IDMuNDQ1OCA4LjI1MTU1IDMuNDQ5MzFDOC4xNzAxMSAzLjQ1MjgzIDguMDg4ODEgMy40NTgzMiA4LjAwNzYzIDMuNDY1NzlDNy45MjY0NyAzLjQ3MzI2IDcuODQ1NTMgMy40ODI3IDcuNzY0ODIgMy40OTQxMUM3LjY4NDExIDMuNTA1NTEgNy42MDM3MiAzLjUxODg4IDcuNTIzNjcgMy41MzQyQzcuNDQzNjEgMy41NDk1MSA3LjM2Mzk3IDMuNTY2NzcgNy4yODQ3NSAzLjU4NTk2QzcuMjA1NTMgMy42MDUxNSA3LjEyNjgzIDMuNjI2MjYgNy4wNDg2MyAzLjY0OTI4QzYuOTcwNDQgMy42NzIzMSA2Ljg5Mjg1IDMuNjk3MjEgNi44MTU4NyAzLjcyNDAxQzYuNzM4ODkgMy43NTA4MSA2LjY2MjYgMy43Nzk0NiA2LjU4NzAyIDMuODA5OTdDNi41MTE0MyAzLjg0MDQ3IDYuNDM2NjMgMy44NzI3OSA2LjM2MjYxIDMuOTA2OTRDNi4yODg2IDMuOTQxMDkgNi4yMTU0NiAzLjk3NzAyIDYuMTQzMTkgNC4wMTQ3MkM2LjA3MDkyIDQuMDUyNDEgNS45OTk2MSA0LjA5MTg2IDUuOTI5MjcgNC4xMzMwM0M1Ljg1ODkyIDQuMTc0MiA1Ljc4OTYxIDQuMjE3MDYgNS43MjEzNSA0LjI2MTYxQzUuNjUzMDkgNC4zMDYxNSA1LjU4NTk0IDQuMzUyMzIgNS41MTk5MyA0LjQwMDEzQzUuNDUzOTIgNC40NDc5NSA1LjM4OTEgNC40OTczMyA1LjMyNTQ4IDQuNTQ4MjlDNS4yNjE4NiA0LjU5OTI2IDUuMTk5NTMgNC42NTE3NSA1LjEzODQ2IDQuNzA1NzNDNS4wNzc0MSA0Ljc1OTczIDUuMDE3NyA0LjgxNTE5IDQuOTU5MzMgNC44NzIwOEM0LjkwMDk2IDQuOTI4OTggNC44NDQwMiA0Ljk4NzI3IDQuNzg4NDkgNS4wNDY5NEM0LjczMjk2IDUuMTA2NjEgNC42Nzg5MSA1LjE2NzU5IDQuNjI2MzUgNS4yMjk5QzQuNTczNzkgNS4yOTIyIDQuNTIyNzcgNS4zNTU3NCA0LjQ3MzMxIDUuNDIwNTJDNC40MjM4NCA1LjQ4NTMxIDQuMzc1OTcgNS41NTEyNSA0LjMyOTcgNS42MTgzN0M0LjI4MzQ1IDUuNjg1NDggNC4yMzg4NSA1Ljc1MzY3IDQuMTk1OSA1LjgyMjk1QzQuMTUyOTUgNS44OTIyMyA0LjExMTcxIDUuOTYyNTIgNC4wNzIxOCA2LjAzMzgxQzQuMDMyNjYgNi4xMDUwOSAzLjk5NDg5IDYuMTc3MjkgMy45NTg4OCA2LjI1MDQyQzMuOTIyODYgNi4zMjM1NCAzLjg4ODY2IDYuMzk3NSAzLjg1NjIzIDYuNDcyMjlDMy44MjM4MiA2LjU0NzA4IDMuNzkzMjQgNi42MjI2MSAzLjc2NDUgNi42OTg4OEMzLjczNTc2IDYuNzc1MTYgMy43MDg4OSA2Ljg1MjA5IDMuNjgzOSA2LjkyOTY4QzMuNjU4ODkgNy4wMDcyNiAzLjYzNTggNy4wODU0IDMuNjE0NiA3LjE2NDEyQzMuNTkzNCA3LjI0MjgyIDMuNTc0MTMgNy4zMjE5OSAzLjU1Njc5IDcuNDAxNjRDMy41Mzk0NCA3LjQ4MTI5IDMuNTI0MDQgNy41NjEzIDMuNTEwNTkgNy42NDE3QzMuNDk3MTQgNy43MjIwOSAzLjQ4NTY1IDcuODAyNzcgMy40NzYxMiA3Ljg4MzcyQzMuNDY2NTkgNy45NjQ2NyAzLjQ1OTA0IDguMDQ1ODEgMy40NTM0NiA4LjEyNzEzQzMuNDQ3ODggOC4yMDg0NSAzLjQ0NDI4IDguMjg5ODYgMy40NDI2NiA4LjM3MTM1TDMuNDQyNjYgOC42Mjg2OEMzLjQ0NDI4IDguNzEwMTggMy40NDc4OCA4Ljc5MTU5IDMuNDUzNDYgOC44NzI5MUMzLjQ1OTA0IDguOTU0MjMgMy40NjY1OSA5LjAzNTM3IDMuNDc2MTIgOS4xMTYzMkMzLjQ4NTY1IDkuMTk3MjcgMy40OTcxNCA5LjI3Nzk1IDMuNTEwNTkgOS4zNTgzNEMzLjUyNDA0IDkuNDM4NzMgMy41Mzk0NCA5LjUxODc0IDMuNTU2NzkgOS41OTgzOUMzLjU3NDEzIDkuNjc4MDQgMy41OTM0IDkuNzU3MjEgMy42MTQ2IDkuODM1OTJDMy42MzU4IDkuOTE0NjMgMy42NTg4OSA5Ljk5Mjc3IDMuNjgzOSAxMC4wNzA0QzMuNzA4ODkgMTAuMTQ3OSAzLjczNTc2IDEwLjIyNDkgMy43NjQ1IDEwLjMwMTFDMy43OTMyNCAxMC4zNzc0IDMuODIzODIgMTAuNDUzIDMuODU2MjMgMTAuNTI3OEMzLjg4ODY2IDEwLjYwMjUgMy45MjI4NiAxMC42NzY1IDMuOTU4ODggMTAuNzQ5NkMzLjk5NDg5IDEwLjgyMjcgNC4wMzI2NiAxMC44OTQ5IDQuMDcyMTggMTAuOTY2MkM0LjExMTcxIDExLjAzNzUgNC4xNTI5NSAxMS4xMDc4IDQuMTk1OSAxMS4xNzcxQzQuMjM4ODQgMTEuMjQ2NCA0LjI4MzQ0IDExLjMxNDYgNC4zMjk3IDExLjM4MTdDNC4zNzU5NyAxMS40NDg4IDQuNDIzODQgMTEuNTE0NyA0LjQ3MzMxIDExLjU3OTVDNC41MjI3NyAxMS42NDQzIDQuNTczNzkgMTEuNzA3OCA0LjYyNjM1IDExLjc3MDFDNC42Nzg5MSAxMS44MzI0IDQuNzMyOTYgMTEuODkzNCA0Ljc4ODQ5IDExLjk1MzFDNC44NDQwMiAxMi4wMTI4IDQuOTAwOTYgMTIuMDcxMSA0Ljk1OTMzIDEyLjEyOEM1LjAxNzcgMTIuMTg0OSA1LjA3NzQxIDEyLjI0MDMgNS4xMzg0NiAxMi4yOTQzQzUuMTk5NTMgMTIuMzQ4MyA1LjI2MTg2IDEyLjQwMDggNS4zMjU0OCAxMi40NTE3QzUuMzg5MSAxMi41MDI3IDUuNDUzOTIgMTIuNTUyMSA1LjUxOTkzIDEyLjU5OTlDNS41ODU5NCAxMi42NDc3IDUuNjUzMDkgMTIuNjkzOSA1LjcyMTM1IDEyLjczODRDNS43ODk2MSAxMi43ODMgNS44NTg5MiAxMi44MjU4IDUuOTI5MjcgMTIuODY3QzUuOTk5NjEgMTIuOTA4MiA2LjA3MDkyIDEyLjk0NzYgNi4xNDMxOSAxMi45ODUzQzYuMjE1NDYgMTMuMDIzIDYuMjg4NiAxMy4wNTkgNi4zNjI2MSAxMy4wOTMxQzYuNDM2NjMgMTMuMTI3MiA2LjUxMTQzIDEzLjE1OTYgNi41ODcwMiAxMy4xOTAxQzYuNjYyNiAxMy4yMjA2IDYuNzM4ODkgMTMuMjQ5MiA2LjgxNTg3IDEzLjI3NkM2Ljg5Mjg1IDEzLjMwMjggNi45NzA0MyAxMy4zMjc3IDcuMDQ4NjMgMTMuMzUwN0M3LjEyNjgzIDEzLjM3MzggNy4yMDU1MyAxMy4zOTQ5IDcuMjg0NzUgMTMuNDE0MUM3LjM2Mzk3IDEzLjQzMzMgNy40NDM2MSAxMy40NTA1IDcuNTIzNjcgMTMuNDY1OEM3LjYwMzcyIDEzLjQ4MTIgNy42ODQxMSAxMy40OTQ1IDcuNzY0ODIgMTMuNTA1OUM3Ljg0NTUzIDEzLjUxNzMgNy45MjY0NyAxMy41MjY4IDguMDA3NjMgMTMuNTM0MkM4LjA4ODgxIDEzLjU0MTcgOC4xNzAxMSAxMy41NDcyIDguMjUxNTUgMTMuNTUwN0M4LjMzMjk4IDEzLjU1NDIgOC40MTQ0NSAxMy41NTU4IDguNDk1OTcgMTMuNTU1M0M4LjcyNzk2IDEzLjU1NTMgOC45NDcyOSAxMy4zMzY3IDguOTQ3MjkgMTMuMTA0N0M4Ljk0NzI5IDEyLjk1NjcgOC45MTk5NiAxMi45MDMzIDguODQxOTYgMTIuODI1M0w4LjgwODYzIDEyLjc5MTNMOC43NzkyOSAxMi43NDZDOC42NDI2MyAxMi41NDIgOC40NTUzIDEyLjI2MTMgOC40NTUzIDExLjg3NzNDOC40NTUzIDExLjUxODcgOC42MDU5NiAxMS4xNjEzIDguODcwNjIgMTAuODk2N0M4Ljg3ODYzIDEwLjg4ODYgOC44ODY3NCAxMC44ODA2IDguODk0OTQgMTAuODcyOEM4LjkwMzE0IDEwLjg2NDkgOC45MTE0NCAxMC44NTcxIDguOTE5ODMgMTAuODQ5NEM4LjkyODIzIDEwLjg0MTggOC45MzY3MiAxMC44MzQyIDguOTQ1MjkgMTAuODI2N0M4Ljk1Mzg2IDEwLjgxOTMgOC45NjI1NCAxMC44MTE5IDguOTcxMjkgMTAuODA0N0M4Ljk4MDA0IDEwLjc5NzQgOC45ODg4OCAxMC43OTAzIDguOTk3ODEgMTAuNzgzMkM5LjAwNjc0IDEwLjc3NjIgOS4wMTU3NSAxMC43NjkyIDkuMDI0ODQgMTAuNzYyNEM5LjAzMzk1IDEwLjc1NTYgOS4wNDMxMyAxMC43NDg5IDkuMDUyMzggMTAuNzQyM0M5LjA2MTY0IDEwLjczNTcgOS4wNzA5OCAxMC43MjkyIDkuMDgwMzkgMTAuNzIyOUM5LjA4OTgxIDEwLjcxNjUgOS4wOTkzIDEwLjcxMDIgOS4xMDg4OCAxMC43MDQxQzkuMTE4NDUgMTAuNjk4IDkuMTI4MDkgMTAuNjkxOSA5LjEzNzggMTAuNjg2QzkuMTQ3NTIgMTAuNjgwMSA5LjE1NzMxIDEwLjY3NDMgOS4xNjcxNyAxMC42Njg3QzkuMTc3MDIgMTAuNjYzIDkuMTg2OTQgMTAuNjU3NSA5LjE5NjkzIDEwLjY1MkM5LjIwNjkzIDEwLjY0NjYgOS4yMTY5OCAxMC42NDEzIDkuMjI3MSAxMC42MzYxQzkuMjM3MjIgMTAuNjMwOSA5LjI0NzQxIDEwLjYyNTkgOS4yNTc2NSAxMC42MjA5QzkuMjY3ODkgMTAuNjE2IDkuMjc4MTkgMTAuNjExMiA5LjI4ODU1IDEwLjYwNjVDOS4yOTg5MSAxMC42MDE4IDkuMzA5MzMgMTAuNTk3MyA5LjMxOTc5IDEwLjU5MjhDOS4zMzAyNiAxMC41ODg0IDkuMzQwNzggMTAuNTg0MSA5LjM1MTM2IDEwLjU3OTlDOS4zNjE5NSAxMC41NzU4IDkuMzcyNTYgMTAuNTcxNyA5LjM4MzI0IDEwLjU2NzhDOS4zOTM5MSAxMC41NjM5IDkuNDA0NjIgMTAuNTYwMSA5LjQxNTM5IDEwLjU1NjRDOS40MjYxNiAxMC41NTI4IDkuNDM2OTcgMTAuNTQ5MyA5LjQ0NzgyIDEwLjU0NTlDOS40NTg2NyAxMC41NDI1IDkuNDY5NTYgMTAuNTM5MiA5LjQ4MDQ5IDEwLjUzNjFDOS40OTE0MyAxMC41MzMgOS41MDIzOSAxMC41MyA5LjUxMzQgMTAuNTI3MUM5LjUyNDQgMTAuNTI0MiA5LjUzNTQzIDEwLjUyMTUgOS41NDY1IDEwLjUxODlDOS41NTc1OCAxMC41MTYzIDkuNTY4NjggMTAuNTEzOSA5LjU3OTgxIDEwLjUxMTVDOS41OTA5MyAxMC41MDkyIDkuNjAyMDkgMTAuNTA3IDkuNjEzMjggMTAuNTA1QzkuNjI0NDYgMTAuNTAyOSA5LjYzNTY2IDEwLjUwMSA5LjY0Njg5IDEwLjQ5OTJDOS42NTgxMiAxMC40OTc0IDkuNjY5MzcgMTAuNDk1OCA5LjY4MDY0IDEwLjQ5NDNDOS42OTE5IDEwLjQ5MjggOS43MDMxOCAxMC40OTE0IDkuNzE0NDkgMTAuNDkwMkM5LjcyNTggMTAuNDg5IDkuNzM3MTEgMTAuNDg3OSA5Ljc0ODQ0IDEwLjQ4NjlDOS43NTk3NyAxMC40ODU5IDkuNzcxMTEgMTAuNDg1MSA5Ljc4MjQ2IDEwLjQ4NDRDOS43OTM4IDEwLjQ4MzggOS44MDUxNiAxMC40ODMyIDkuODE2NTMgMTAuNDgyOEM5LjgyNzg4IDEwLjQ4MjQgOS44MzkyNSAxMC40ODIxIDkuODUwNjIgMTAuNDgyTDEwLjk1NTMgMTAuNDgyQzEyLjQxNDYgMTAuNDgyIDEzLjU1NTkgOS4zMzkzNSAxMy41NTU5IDcuODgwNjhDMTMuNTUzMyA2LjcwODY5IDEzLjAzNDYgNS42MDQwNCAxMi4wOTczIDQuNzY3MzdaTTExLjkyNzMgOC45MDUzNUMxMS40NjkzIDguOTA1MzUgMTEuMDY2NiA4LjUwNDAxIDExLjA2NjYgOC4wNDQwMkMxMS4wNjY2IDcuNTg2MDMgMTEuNDY3OSA3LjE4MzM2IDExLjkyNzMgNy4xODMzNkMxMi4zODY2IDcuMTgzMzYgMTIuNzg5MyA3LjU4NjAzIDEyLjc4NzkgOC4wNDQwMkMxMi43ODc5IDguNTAyNjggMTIuMzg2NiA4LjkwNTM1IDExLjkyNzMgOC45MDUzNVpNMTAuMjA5OSA2LjYxMDdDOS43NTE5NiA2LjYxMDcgOS4zNDkyOSA2LjIwODcgOS4zNDkyOSA1Ljc0OTM3QzkuMzQ5MjkgNS4yOTEzNyA5Ljc1MDYyIDQuODg4NyAxMC4yMDk5IDQuODg4N0MxMC42NjkzIDQuODg4NyAxMS4wNzE5IDUuMjkxMzcgMTEuMDcwNiA1Ljc0OTM3QzExLjA2NjYgNi4yMTMzNiAxMC42NjkzIDYuNjEwNyAxMC4yMDk5IDYuNjEwN1pNNi44MDU5NyA2LjQyMzM2QzYuNzk1MjcgNi40MTQ0OCA2Ljc4NDc4IDYuNDA1MzQgNi43NzQ1MyA2LjM5NTk1QzYuNzY0MjcgNi4zODY1NyA2Ljc1NDI0IDYuMzc2OTMgNi43NDQ0NSA2LjM2NzA1QzYuNzM0NjUgNi4zNTcxOCA2LjcyNTEgNi4zNDcwNyA2LjcxNTc5IDYuMzM2NzNDNi43MDY0OSA2LjMyNjM5IDYuNjk3NDQgNi4zMTU4MyA2LjY4ODY1IDYuMzA1MDZDNi42Nzk4NSA2LjI5NDI4IDYuNjcxMzMgNi4yODMzIDYuNjYzMDcgNi4yNzIxMUM2LjY1NDgxIDYuMjYwOTIgNi42NDY4MyA2LjI0OTUzIDYuNjM5MTIgNi4yMzc5NkM2LjYzMTQxIDYuMjI2MzggNi42MjM5OCA2LjIxNDYzIDYuNjE2ODQgNi4yMDI2OUM2LjYwOTcgNi4xOTA3NSA2LjYwMjg2IDYuMTc4NjUgNi41OTYzMSA2LjE2NjM4QzYuNTg5NzYgNi4xNTQxMSA2LjU4MzUgNi4xNDE2OSA2LjU3NzU1IDYuMTI5MTJDNi41NzE1OSA2LjExNjU0IDYuNTY1OTUgNi4xMDM4NCA2LjU2MDYxIDYuMDkxQzYuNTU1MjggNi4wNzgxNSA2LjU1MDI1IDYuMDY1MTggNi41NDU1NCA2LjA1MjA5QzYuNTQwODQgNi4wMzkgNi41MzY0NSA2LjAyNTgyIDYuNTMyMzggNi4wMTI1MkM2LjUyODMyIDUuOTk5MjIgNi41MjQ1NyA1Ljk4NTgyIDYuNTIxMTQgNS45NzIzNEM2LjUxNzczIDUuOTU4ODYgNi41MTQ2NCA1Ljk0NTMgNi41MTE4OCA1LjkzMTY3QzYuNTA5MTEgNS45MTgwNCA2LjUwNjY4IDUuOTA0MzQgNi41MDQ1OSA1Ljg5MDU5QzYuNTAyNDkgNS44NzY4NSA2LjUwMDcyIDUuODYzMDYgNi40OTkyOCA1Ljg0OTIyQzYuNDk3ODUgNS44MzUzOCA2LjQ5Njc2IDUuODIxNTIgNi40OTYgNS44MDc2NEM2LjQ5NTIzIDUuNzkzNzUgNi40OTQ4MSA1Ljc3OTg1IDYuNDk0NzIgNS43NjU5NEM2LjQ5NDY0IDUuNzUyMDMgNi40OTQ4OCA1LjczODEyIDYuNDk1NDcgNS43MjQyM0M2LjQ5NjA1IDUuNzEwMzQgNi40OTY5OCA1LjY5NjQ2IDYuNDk4MjUgNS42ODI2MUM2LjQ5OTUgNS42Njg3NiA2LjUwMTA5IDUuNjU0OTQgNi41MDMwMiA1LjY0MTE3QzYuNTA0OTUgNS42Mjc0IDYuNTA3MjEgNS42MTM2OCA2LjUwOTggNS42QzYuNTEyMzkgNS41ODYzNCA2LjUxNTMyIDUuNTcyNzUgNi41MTg1NyA1LjU1OTIyQzYuNTIxODEgNS41NDU3IDYuNTI1NCA1LjUzMjI2IDYuNTI5MyA1LjUxODkxQzYuNTMzMiA1LjUwNTU2IDYuNTM3NDIgNS40OTIzMiA2LjU0MTk3IDUuNDc5MTdDNi41NDY1IDUuNDY2MDIgNi41NTEzNyA1LjQ1Mjk5IDYuNTU2NTUgNS40NDAwOUM2LjU2MTcyIDUuNDI3MTggNi41NjcyIDUuNDE0NCA2LjU3MyA1LjQwMTc2QzYuNTc4NzkgNS4zODkxMSA2LjU4NDg4IDUuMzc2NjEgNi41OTEyOCA1LjM2NDI2QzYuNTk3NjkgNS4zNTE5MiA2LjYwNDM4IDUuMzM5NzMgNi42MTEzNyA1LjMyNzdDNi42MTgzNiA1LjMxNTY3IDYuNjI1NjQgNS4zMDM4MiA2LjYzMzIgNS4yOTIxNUM2LjY0MDc2IDUuMjgwNDggNi42NDg2MSA1LjI2OSA2LjY1NjczIDUuMjU3NzFDNi42NjQ4NSA1LjI0NjQxIDYuNjczMjMgNS4yMzUzMyA2LjY4MTg5IDUuMjI0NDRDNi42OTA1NSA1LjIxMzU1IDYuNjk5NDcgNS4yMDI4OCA2LjcwODY0IDUuMTkyNDNDNi43MTc4MiA1LjE4MTk3IDYuNzI3MjQgNS4xNzE3NCA2LjczNjkxIDUuMTYxNzVDNi43NDY1OCA1LjE1MTc1IDYuNzU2NDggNS4xNDIgNi43NjY2MyA1LjEzMjQ3QzYuNzc2NzcgNS4xMjI5NiA2Ljc4NzE0IDUuMTEzNjkgNi43OTc3MiA1LjEwNDY4QzYuODA4MzEgNS4wOTU2NiA2LjgxOTEyIDUuMDg2OTEgNi44MzAxMyA1LjA3ODQxQzYuODQxMTUgNS4wNjk5MiA2Ljg1MjM2IDUuMDYxNyA2Ljg2Mzc4IDUuMDUzNzVDNi44NzUxOSA1LjA0NTggNi44ODY3OSA1LjAzODE0IDYuODk4NTcgNS4wMzA3NEM2LjkxMDM2IDUuMDIzMzYgNi45MjIzMSA1LjAxNjI2IDYuOTM0NDQgNS4wMDk0NUM2Ljk0NjU3IDUuMDAyNjQgNi45NTg4NiA0Ljk5NjE0IDYuOTcxMzEgNC45ODk5M0M2Ljk4Mzc1IDQuOTgzNyA2Ljk5NjM0IDQuOTc3OCA3LjAwOTA3IDQuOTcyMkM3LjAyMTggNC45NjY1OSA3LjAzNDY2IDQuOTYxMzEgNy4wNDc2NCA0Ljk1NjMzQzcuMDYwNjMgNC45NTEzNSA3LjA3MzczIDQuOTQ2NjggNy4wODY5NSA0Ljk0MjM0QzcuMTAwMTYgNC45Mzc5OSA3LjExMzQ3IDQuOTMzOTcgNy4xMjY4OCA0LjkzMDI3QzcuMTQwMjggNC45MjY1NyA3LjE1Mzc3IDQuOTIzMiA3LjE2NzM0IDQuOTIwMTVDNy4xODA5MSA0LjkxNzA5IDcuMTk0NTUgNC45MTQzOCA3LjIwODI1IDQuOTEyQzcuMjIxOTUgNC45MDk2MiA3LjIzNTcxIDQuOTA3NTUgNy4yNDk1MSA0LjkwNTgzQzcuMjYzMzIgNC45MDQxMSA3LjI3NzE2IDQuOTAyNzMgNy4yOTEwMiA0LjkwMTY4QzcuMzA0ODggNC45MDA2MyA3LjMxODc3IDQuODk5OTEgNy4zMzI2OCA0Ljg5OTU0QzcuMzQ2NTggNC44OTkxNiA3LjM2MDQ4IDQuODk5MTMgNy4zNzQzOSA0Ljg5OTQyQzcuMzg4MyA0Ljg5OTcyIDcuNDAyMTggNC45MDAzNSA3LjQxNjA2IDQuOTAxMzJDNy40Mjk5MyA0LjkwMjI5IDcuNDQzNzcgNC45MDM1OSA3LjQ1NzU5IDQuOTA1MjNDNy40NzE0MSA0LjkwNjg4IDcuNDg1MTYgNC45MDg4NCA3LjQ5ODg5IDQuOTExMTVDNy41MTI2MSA0LjkxMzQ2IDcuNTI2MjYgNC45MTYxIDcuNTM5ODQgNC45MTkwNkM3LjU1MzQzIDQuOTIyMDMgNy41NjY5NCA0LjkyNTMzIDcuNTgwMzcgNC45Mjg5NUM3LjU5MzggNC45MzI1NyA3LjYwNzEzIDQuOTM2NTIgNy42MjAzOCA0Ljk0MDc5QzcuNjMzNjEgNC45NDUwNiA3LjY0NjczIDQuOTQ5NjQgNy42NTk3NSA0Ljk1NDU1QzcuNjcyNzcgNC45NTk0NiA3LjY4NTY2IDQuOTY0NjcgNy42OTg0MiA0Ljk3MDE5QzcuNzExMTggNC45NzU3MiA3LjcyMzggNC45ODE1NiA3LjczNjI5IDQuOTg3N0M3Ljc0ODc3IDQuOTkzODQgNy43NjEwOCA1LjAwMDI3IDcuNzczMjYgNS4wMDcwMUM3Ljc4NTQyIDUuMDEzNzUgNy43OTc0MiA1LjAyMDc4IDcuODA5MjUgNS4wMjgxMUM3LjgyMTA3IDUuMDM1NDIgNy44MzI3MiA1LjA0MzAxIDcuODQ0MTggNS4wNTA5QzcuODU1NjQgNS4wNTg3OSA3Ljg2NjkgNS4wNjY5NCA3Ljg3Nzk2IDUuMDc1MzdMNy44Nzg2MyA1LjA3NjA0QzcuODg5NjYgNS4wODQ4MSA3LjkwMDQ1IDUuMDkzODUgNy45MTEwNCA1LjEwMzE1QzcuOTIxNjIgNS4xMTI0NSA3LjkzMTk1IDUuMTIyMDEgNy45NDIwNyA1LjEzMTgyQzcuOTUyMTcgNS4xNDE2MyA3Ljk2MjAyIDUuMTUxNjggNy45NzE2NCA1LjE2MTk4QzcuOTgxMjcgNS4xNzIyNyA3Ljk5MDYyIDUuMTgyNzkgNy45OTk3MSA1LjE5MzU1QzguMDA4ODIgNS4yMDQzMSA4LjAxNzY0IDUuMjE1MjggOC4wMjYyIDUuMjI2NDdDOC4wMzQ3NSA1LjIzNzY2IDguMDQzMDIgNS4yNDkwNSA4LjA1MTAzIDUuMjYwNjRDOC4wNTkwMyA1LjI3MjIzIDguMDY2NzQgNS4yODQwMiA4LjA3NDE2IDUuMjk2QzguMDgxNTggNS4zMDc5NyA4LjA4ODY5IDUuMzIwMTMgOC4wOTU1MSA1LjMzMjQ0QzguMTAyMzQgNS4zNDQ3NyA4LjEwODg2IDUuMzU3MjUgOC4xMTUwNiA1LjM2OTg5QzguMTIxMjcgNS4zODI1NCA4LjEyNzE2IDUuMzk1MzQgOC4xMzI3NCA1LjQwODI2QzguMTM4MzMgNS40MjEyIDguMTQzNTkgNS40MzQyNyA4LjE0ODUzIDUuNDQ3NDZDOC4xNTM0NiA1LjQ2MDY0IDguMTU4MDggNS40NzM5NiA4LjE2MjM2IDUuNDg3MzhDOC4xNjY2MyA1LjUwMDc5IDguMTcwNTkgNS41MTQzMSA4LjE3NDIyIDUuNTI3OTJDOC4xNzc4NCA1LjU0MTUzIDguMTgxMTIgNS41NTUyMyA4LjE4NDA2IDUuNTY5MDFDOC4xODcwMSA1LjU4Mjc4IDguMTg5NjIgNS41OTY2MiA4LjE5MTg5IDUuNjEwNTJDOC4xOTQxNSA1LjYyNDQzIDguMTk2MDggNS42MzgzNyA4LjE5NzY2IDUuNjUyMzZDOC4xOTkyNSA1LjY2NjM3IDguMjAwNDggNS42ODA0IDguMjAxMzcgNS42OTQ0NUM4LjIwMjI3IDUuNzA4NTEgOC4yMDI4MSA1LjcyMjU4IDguMjAzMDEgNS43MzY2N0M4LjIwMzIxIDUuNzUwNzUgOC4yMDMwNyA1Ljc2NDg0IDguMjAyNTcgNS43Nzg5MUM4LjIwMjA4IDUuNzkyOTkgOC4yMDEyNSA1LjgwNzA1IDguMjAwMDcgNS44MjEwOEM4LjE5ODg4IDUuODM1MTIgOC4xOTczNiA1Ljg0OTEyIDguMTk1NSA1Ljg2MzA4QzguMTkzNjIgNS44NzcwNCA4LjE5MTQxIDUuODkwOTUgOC4xODg4NiA1LjkwNDhDOC4xODYzMSA1LjkxODY2IDguMTgzNDEgNS45MzI0NCA4LjE4MDE4IDUuOTQ2MTVDOC4xNzY5NiA1Ljk1OTg2IDguMTczNCA1Ljk3MzQ4IDguMTY5NDkgNS45ODcwMkM4LjE2NTU5IDYuMDAwNTUgOC4xNjEzNiA2LjAxMzk5IDguMTU2OCA2LjAyNzMyQzguMTUyMjQgNi4wNDA2NCA4LjE0NzM2IDYuMDUzODUgOC4xNDIxNSA2LjA2Njk0QzguMTM2OTQgNi4wODAwMyA4LjEzMTQyIDYuMDkyOTggOC4xMjU1NyA2LjEwNThDOC4xMTk3MiA2LjExODYxIDguMTEzNTcgNi4xMzEyNyA4LjEwNzEgNi4xNDM3OUM4LjEwMDYzIDYuMTU2MzEgOC4wOTM4NiA2LjE2ODY2IDguMDg2NzggNi4xODA4M0M4LjA3OTcxIDYuMTkzMDEgOC4wNzIzNCA2LjIwNTAxIDguMDY0NjggNi4yMTY4M0M4LjA1NzAyIDYuMjI4NjYgOC4wNDkwNyA2LjI0MDI4IDguMDQwODMgNi4yNTE3MUM4LjAzMjU5IDYuMjYzMTMgOC4wMjQwOSA2LjI3NDM2IDguMDE1MyA2LjI4NTM2QzguMDA2NTQgNi4yOTYzOSA3Ljk5NzUyIDYuMzA3MjEgNy45ODgyMyA2LjMxNzhDNy45Nzg5MyA2LjMyODM5IDcuOTY5MzggNi4zMzg3NSA3Ljk1OTU5IDYuMzQ4ODdDNy45NDk3OCA2LjM1ODk5IDcuOTM5NzMgNi4zNjg4NyA3LjkyOTQ2IDYuMzc4NDlDNy45MTkxNyA2LjM4ODExIDcuOTA4NjYgNi4zOTc0OSA3Ljg5NzkxIDYuNDA2NjFDNy44ODcxNiA2LjQxNTcxIDcuODc2MiA2LjQyNDU2IDcuODY1MDIgNi40MzMxM0M3Ljg1Mzg0IDYuNDQxNjkgNy44NDI0NiA2LjQ0OTk5IDcuODMwODcgNi40NThDNy44MTkyOCA2LjQ2NjAyIDcuODA3NSA2LjQ3Mzc0IDcuNzk1NTQgNi40ODExN0M3Ljc4MzU3IDYuNDg4NjEgNy43NzE0MiA2LjQ5NTc1IDcuNzU5MSA2LjUwMjU4QzcuNzQ2NzkgNi41MDk0MSA3LjczNDMyIDYuNTE1OTUgNy43MjE2NyA2LjUyMjE4QzcuNzA5MDMgNi41Mjg0IDcuNjk2MjQgNi41MzQzMiA3LjY4MzMyIDYuNTM5OTFDNy42NzAzOSA2LjU0NTUgNy42NTczMiA2LjU1MDc3IDcuNjQ0MTQgNi41NTU3M0M3LjYzMDk2IDYuNTYwNjggNy42MTc2NCA2LjU2NTMxIDcuNjA0MjMgNi41Njk2MUM3LjU5MDgxIDYuNTczOTEgNy41NzczIDYuNTc3ODggNy41NjM2OSA2LjU4MTUyQzcuNTUwMDkgNi41ODUxNSA3LjUzNjM5IDYuNTg4NDUgNy41MjI2MiA2LjU5MTQxQzcuNTA4ODQgNi41OTQzOCA3LjQ5NSA2LjU5NyA3LjQ4MTEgNi41OTkyOUM3LjQ2NzIgNi42MDE1NyA3LjQ1MzI1IDYuNjAzNSA3LjQzOTI1IDYuNjA1MUM3LjQyNTI1IDYuNjA2NyA3LjQxMTIyIDYuNjA3OTYgNy4zOTcxNyA2LjYwODg2QzcuMzgzMTEgNi42MDk3NiA3LjM2OTAzIDYuNjEwMzIgNy4zNTQ5NSA2LjYxMDU1QzcuMzQwODYgNi42MTA3NyA3LjMyNjc3IDYuNjEwNjQgNy4zMTI2OSA2LjYxMDE2QzcuMjk4NjEgNi42MDk2OCA3LjI4NDU1IDYuNjA4ODYgNy4yNzA1MSA2LjYwNzY5QzcuMjU2NDcgNi42MDY1MyA3LjI0MjQ3IDYuNjA1MDIgNy4yMjg1IDYuNjAzMTVDNy4yMTQ1MyA2LjYwMTMgNy4yMDA2MiA2LjU5OTExIDcuMTg2NzcgNi41OTY1N0M3LjE3MjkxIDYuNTk0MDIgNy4xNTkxMyA2LjU5MTE1IDcuMTQ1NCA2LjU4NzkzQzcuMTMxNjggNi41ODQ3MiA3LjExODA1IDYuNTgxMTcgNy4xMDQ1MiA2LjU3NzI4QzcuMDkwOTggNi41NzM0IDcuMDc3NTQgNi41NjkxOCA3LjA2NDIgNi41NjQ2M0M3LjA1MDg3IDYuNTYwMDkgNy4wMzc2NSA2LjU1NTIxIDcuMDI0NTYgNi41NTAwMkM3LjAxMTQ3IDYuNTQ0ODMgNi45OTg1MSA2LjUzOTMxIDYuOTg1NjggNi41MzM0N0M2Ljk3Mjg2IDYuNTI3NjQgNi45NjAxOSA2LjUyMTUgNi45NDc2NiA2LjUxNTA0QzYuOTM1MTMgNi41MDg1OCA2LjkyMjc4IDYuNTAxODIgNi45MTA1OSA2LjQ5NDc1QzYuODk4MzkgNi40ODc2OSA2Ljg4NjM4IDYuNDgwMzQgNi44NzQ1NiA2LjQ3MjY5QzYuODYyNzMgNi40NjUwNCA2Ljg1MTEgNi40NTcwOSA2LjgzOTY2IDYuNDQ4ODZDNi44MjgyMiA2LjQ0MDY0IDYuODE3IDYuNDMyMTQgNi44MDU5NyA2LjQyMzM2Wk01LjYyNTMyIDguOTA1MzVDNS4xNjczMSA4LjkwNTM1IDQuNzY0NjQgOC41MDQwMSA0Ljc2NDY0IDguMDQ0MDJDNC43NjQ2NCA3LjU4NjAzIDUuMTY1MzIgNy4xODMzNiA1LjYyNTMyIDcuMTgzMzZDNi4wODMzMSA3LjE4MzM2IDYuNDg1OTggNy41ODYwMyA2LjQ4NTk4IDguMDQ0MDJDNi40ODU5OCA4LjUwMjY4IDYuMDg0NjQgOC45MDUzNSA1LjYyNTMyIDguOTA1MzVaIiAgIGZpbGw9IiNFNDQ5NUIiID48L3BhdGg+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoLXVEbXBUYVlCZC1HQWJ2bVU0a1JTbSI+PHBhdGggZD0iTTIuNSAxNC41TDE0LjUgMTQuNUwxNC41IDIuNUwyLjUgMi41TDIuNSAxNC41WiIgZmlsbD0id2hpdGUiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=',
|
|
16
|
+
italic2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAACtSURBVFiF7ZZhCoMwDIXj2L2Wmy03MzuZ+9NqkBVtXkoY9INSQZv3fDRaosnkz1iJaHMMbhV8DLV7g2fn858yzrzLrI372qnTBdMRtYwUaiHGQDcRe+AVUAMCih9NwIpqhgGLywAKvPuRBBhYG4IQ0H4VJIHafpplgMv869M73ICYa80wYIEMeAn7+XgSYFQURSig/SrLDbEzV4eP1jqXAe9bXtXdST8TTibpfAEImy7CCzNLkwAAAABJRU5ErkJggg==',
|
|
17
|
+
link2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEGSURBVFiF7VdbDsMgDPOk3Wu52dKTtT3Z9jGYsoiCA1T7qSWEqhLbJDxa4MKfcZvIJQCe5nlPvU7UKEIBvBrtFBMl4dU1/17OEtcKuR87bMLPjCGcaiKTrUEiwW+phqCdcTZ7IbFeQQ9BsAyK+FbSxliaz6aLrbcSApQBL86A3R1NA8q6TBDEDFe5e8QjR67lj7urkLEx9OzlBHFbpqYBlogxK4y4JT5aRJ6I2R2CQKYYA9PXyJ0gytgALIY8goWJUXRcFASnsIMFsRSX4oevWbvIJBCnGDP/hSC2yr34sIEIoaDv86zLRM5IbqV308Qz5EBsqjD7Z6Spf6R+x+dc2EbELwDAGwAuxWOeKuGGAAAAAElFTkSuQmCC',
|
|
18
|
+
menu2: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMWVtIiBoZWlnaHQ9IjFlbSIgdmlld0JveD0iMCAwIDI1NiAyNTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgY2xhc3M9Imxhcmt1aS1pY29uIGxhcmt1aS1pY29uLWRyYWciIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PHBhdGggZD0iTTg4IDE4N2M5Ljk0MSAwIDE4IDguMDU5IDE4IDE4cy04LjA1OSAxOC0xOCAxOC0xOC04LjA1OS0xOC0xOCA4LjA1OS0xOCAxOC0xOFptODAgMGM5Ljk0MSAwIDE4IDguMDU5IDE4IDE4cy04LjA1OSAxOC0xOCAxOC0xOC04LjA1OS0xOC0xOCA4LjA1OS0xOCAxOC0xOFptLTgwLTc2YzkuOTQxIDAgMTggOC4wNTkgMTggMThzLTguMDU5IDE4LTE4IDE4LTE4LTguMDU5LTE4LTE4IDguMDU5LTE4IDE4LTE4Wm04MCAwYzkuOTQxIDAgMTggOC4wNTkgMTggMThzLTguMDU5IDE4LTE4IDE4LTE4LTguMDU5LTE4LTE4IDguMDU5LTE4IDE4LTE4Wk04OCAzNWM5Ljk0MSAwIDE4IDguMDU5IDE4IDE4cy04LjA1OSAxOC0xOCAxOC0xOC04LjA1OS0xOC0xOCA4LjA1OS0xOCAxOC0xOFptODAgMGM5Ljk0MSAwIDE4IDguMDU5IDE4IDE4cy04LjA1OSAxOC0xOCAxOC0xOC04LjA1OS0xOC0xOCA4LjA1OS0xOCAxOC0xOFoiIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48L3BhdGg+PC9zdmc+',
|
|
19
|
+
menu2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAgCAYAAAB3j6rJAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADNSURBVFiF7ZVBboMwEEXfh5wAS9wAXyPcrHAyyC2QV+0ersBkQRdJ203HUhJFfjuP9L9mxvI3FO6pc8QxxiGEMDVN07dt+7Wu66fXS15h13WTpP62llJy+1Ve4c8m4NjQwxsBxl9mVTV7zdyrhON6ACRdAFJKQ45foVD4D1nPN8Y4mNkZoK7rcVmW2et1ymkC+JCOWfZ978kYzP3phRCmP2ratm32+L1PxEvqzWyWdCkRXyg8kuyIBzCz89MjHkBSiXh4xYj/Po4l4t+SK/yPRiHAIxEaAAAAAElFTkSuQmCC',
|
|
20
|
+
underline2x: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAACwSURBVFiF7ZZLDsMgDEQnUe8V52b0ZNCTJYug1kGK8SB29ZMsWPgzCGEDBP/O4vBJdS3VPEg1HT+EADiqMYmSihPLcR2SNZEQEAJCQAjoCShqvw3WKF2PDhlXS81EzKHMhLkCgW8eaJ83kd9En8gSISBOz9AmTrhPOcF9ArLT00VbwLLpxb0iMjrzv8XzI3oSAvye5gfcjyn4Yl0B03g87KyAqe/4qdbLCJjWxYLA4gR5wzl4RTfvCQAAAABJRU5ErkJggg=='
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=images.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"images.js","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,2CAA2C;;;AAE9B,QAAA,MAAM,GAAG;IACpB,KAAK,EAAE,gsBAAgsB;IACvsB,MAAM,EAAE,gbAAgb;IACxb,OAAO,EAAE,gcAAgc;IACzc,MAAM,EAAE,4ZAA4Z;IACpa,KAAK,EAAE,4cAA4c;IACnd,QAAQ,EAAE,gZAAgZ;IAC1Z,YAAY,EAAE,4cAA4c;IAC1d,MAAM,EAAE,gRAAgR;IACxR,OAAO,EAAE,g74BAAg74B;IACz74B,QAAQ,EAAE,oXAAoX;IAC9X,MAAM,EAAE,weAAwe;IAChf,KAAK,EAAE,w9BAAw9B;IAC/9B,MAAM,EAAE,4ZAA4Z;IACpa,WAAW,EAAE,wXAAwX;CACtY,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,21 +6,6 @@ export interface YangEditorOptions {
|
|
|
6
6
|
width: string;
|
|
7
7
|
height: string;
|
|
8
8
|
mode: YangEditorMode;
|
|
9
|
-
images: {
|
|
10
|
-
add: string;
|
|
11
|
-
menu: string;
|
|
12
|
-
bold: string;
|
|
13
|
-
italic: string;
|
|
14
|
-
underline: string;
|
|
15
|
-
deleteline: string;
|
|
16
|
-
link: string;
|
|
17
|
-
clear: string;
|
|
18
|
-
down: string;
|
|
19
|
-
delete: string;
|
|
20
|
-
copy: string;
|
|
21
|
-
cut: string;
|
|
22
|
-
fgColor: string;
|
|
23
|
-
};
|
|
24
9
|
events: {
|
|
25
10
|
onContentChange?: (html: string) => void;
|
|
26
11
|
};
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAwE,aAAa,EAAC,MAAM,aAAa,CAAC;AAC9I,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE;QACJ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAwE,aAAa,EAAC,MAAM,aAAa,CAAC;AAC9I,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE;QACJ,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KAC5C,CAAA;CACJ;AAED,qBAAa,UAAU;IAUA,OAAO,EAAE,iBAAiB;IAR7C,SAAgB,OAAO,EAAE,WAAW,CAAC;IACrC,SAAgB,OAAO,EAAE,aAAa,CAAC;IACvC,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,SAAgB,cAAc,EAAE,cAAc,CAAC;IAC/C,SAAgB,gBAAgB,EAAE,gBAAgB,CAAC;IAEnD,OAAO,CAAC,UAAU,CAAwD;gBAEvD,OAAO,EAAE,iBAAiB;IAY7C,MAAM;IAYN,cAAc,CAAC,IAAI,EAAE,MAAM;IAI3B,cAAc,IAAI,MAAM;CAG3B;AAED,iBAAS,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAItD;AAED,QAAA,MAAM,gBAAgB;;CAErB,CAAA;AAED,eAAe,gBAAgB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA8I;AAC9I,mCAAyC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA8I;AAC9I,mCAAyC;AAczC,MAAa,UAAU;IAUA;IARH,OAAO,CAAc;IACrB,OAAO,CAAgB;IACvB,IAAI,CAAa;IACjB,cAAc,CAAiB;IAC/B,gBAAgB,CAAmB;IAE3C,UAAU,GAA2B,IAAI,KAAK,EAAmB,CAAC;IAE1E,YAAmB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;QACzC,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,IAAG,OAAO,KAAK,IAAI,EAAG,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAa,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,sBAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,sBAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,GAAG,IAAI,4BAAgB,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM;QACF,iBAAiB;QACjB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;QAC5B,iBAAiB;QACjB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,IAAY;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;IACpD,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC;IACpD,CAAC;CACJ;AAzCD,gCAyCC;AAED,SAAS,MAAM,CAAC,OAA0B;IACrC,IAAI,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACzC,UAAU,CAAC,MAAM,EAAE,CAAC;IACpB,OAAO,UAAU,CAAC;AACvB,CAAC;AAED,MAAM,gBAAgB,GAAI;IACtB,MAAM;CACT,CAAA;AAED,kBAAe,gBAAgB,CAAC"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="17" height="17" viewBox="0 0 17 17" fill="none"><path fill="rgba(228, 73, 91, 1)" d="M2.5 0L14.5 0C15.8807 0 17 1.11929 17 2.5L17 14.5C17 15.8807 15.8807 17 14.5 17L2.5 17C1.11929 17 0 15.8807 0 14.5L0 2.5C0 1.11929 1.11929 0 2.5 0ZM2.5 1C1.67157 1 1 1.67157 1 2.5L1 14.5C1 15.3284 1.67157 16 2.5 16L14.5 16C15.3284 16 16 15.3284 16 14.5L16 2.5C16 1.67157 15.3284 1 14.5 1L2.5 1Z"></path><g clip-path="url(#clip-path-uDmpTaYBd-GAbvmU4kRSm)"><path d="M13.4686 10.3973C13.448 10.4179 13.4272 10.4381 13.4061 10.4581C13.385 10.4781 13.3637 10.4978 13.3421 10.5173C13.3206 10.5367 13.2988 10.556 13.2767 10.5749C13.2547 10.5938 13.2324 10.6125 13.2099 10.6309C13.1874 10.6492 13.1647 10.6673 13.1417 10.6851C13.1188 10.703 13.0956 10.7205 13.0722 10.7377C13.0489 10.755 13.0253 10.7719 13.0015 10.7886C12.9777 10.8052 12.9537 10.8216 12.9294 10.8377C12.9052 10.8538 12.8809 10.8695 12.8563 10.885C12.8317 10.9005 12.8069 10.9156 12.7819 10.9305C12.7569 10.9453 12.7318 10.9599 12.7065 10.9741C12.6811 10.9883 12.6556 11.0022 12.6299 11.0158C12.6043 11.0294 12.5784 11.0427 12.5524 11.0557C12.5264 11.0686 12.5003 11.0813 12.474 11.0936C12.4476 11.1059 12.4212 11.1179 12.3946 11.1296C12.3679 11.1412 12.3412 11.1525 12.3143 11.1636C12.2874 11.1746 12.2604 11.1852 12.2332 11.1955C12.2061 11.2059 12.1788 11.2159 12.1514 11.2255C12.124 11.2352 12.0965 11.2445 12.0689 11.2535C12.0412 11.2625 12.0135 11.2711 11.9856 11.2794C11.9578 11.2877 11.9299 11.2956 11.9018 11.3032C11.8738 11.3108 11.8456 11.3181 11.8174 11.325C11.7892 11.3319 11.7609 11.3385 11.7325 11.3447C11.7041 11.3509 11.6757 11.3567 11.6471 11.3622C11.6186 11.3677 11.59 11.3729 11.5614 11.3777C11.5327 11.3825 11.504 11.3869 11.4752 11.391C11.4465 11.3951 11.4177 11.3988 11.3888 11.4022C11.3599 11.4056 11.3311 11.4086 11.3021 11.4113C11.2732 11.4139 11.2442 11.4162 11.2152 11.4182C11.1863 11.4201 11.1572 11.4217 11.1282 11.4229C11.0992 11.4242 11.0702 11.425 11.0411 11.4255C11.0121 11.4261 10.983 11.4262 10.9539 11.426L9.84929 11.426C9.61728 11.426 9.39796 11.6447 9.39796 11.8773C9.39796 11.964 9.45329 12.0567 9.54396 12.194C9.78062 12.4447 9.89062 12.736 9.89062 13.1047C9.89062 13.4627 9.73996 13.82 9.47596 14.0846C9.46793 14.0927 9.45982 14.1007 9.45161 14.1085C9.44339 14.1164 9.43509 14.1241 9.42669 14.1318C9.41829 14.1395 9.40979 14.147 9.40121 14.1545C9.39263 14.1619 9.38395 14.1693 9.3752 14.1765C9.36643 14.1838 9.35759 14.1909 9.34866 14.1979C9.33972 14.2049 9.3307 14.2119 9.3216 14.2187C9.31249 14.2255 9.30332 14.2323 9.29405 14.2388C9.28479 14.2454 9.27545 14.2518 9.26603 14.2583C9.25661 14.2646 9.24711 14.2708 9.23754 14.277C9.22796 14.2831 9.21832 14.2891 9.20861 14.2951C9.19889 14.3009 9.18909 14.3067 9.17924 14.3124C9.16938 14.318 9.15947 14.3235 9.14947 14.3289C9.13948 14.3343 9.12942 14.3397 9.11931 14.3449C9.10918 14.35 9.099 14.3551 9.08876 14.36C9.07852 14.3649 9.06821 14.3697 9.05786 14.3744C9.04751 14.3791 9.03709 14.3837 9.02662 14.3881C9.01616 14.3926 9.00564 14.3968 8.99505 14.401C8.98448 14.4052 8.97387 14.4092 8.96319 14.4132C8.95252 14.4171 8.9418 14.4208 8.93105 14.4246C8.92028 14.4282 8.90947 14.4317 8.89863 14.4351C8.88778 14.4385 8.87689 14.4418 8.86597 14.445C8.85504 14.448 8.84408 14.451 8.83308 14.4539C8.82207 14.4567 8.81105 14.4595 8.79998 14.4621C8.78891 14.4646 8.77781 14.4672 8.76669 14.4696C8.75557 14.4718 8.74441 14.474 8.73323 14.4761C8.72207 14.4781 8.71086 14.48 8.69964 14.4819C8.68841 14.4836 8.67716 14.4853 8.6659 14.4869C8.65464 14.4883 8.64335 14.4897 8.63206 14.491C8.62076 14.4922 8.60945 14.4934 8.59812 14.4943C8.58679 14.4952 8.57545 14.4962 8.56411 14.4969C8.55277 14.4976 8.54141 14.498 8.53006 14.4985C8.5187 14.4989 8.50733 14.4991 8.49597 14.4993C8.39918 14.4998 8.30243 14.4979 8.20574 14.4937C8.10905 14.4895 8.01252 14.4828 7.91614 14.4739C7.81977 14.465 7.72366 14.4536 7.62784 14.44C7.53202 14.4264 7.43658 14.4105 7.34153 14.3922C7.24648 14.3739 7.15193 14.3534 7.05789 14.3306C6.96383 14.3077 6.8704 14.2826 6.77757 14.2552C6.68475 14.2278 6.59264 14.1981 6.50125 14.1662C6.40986 14.1344 6.31931 14.1003 6.22958 14.064C6.13985 14.0277 6.05106 13.9893 5.9632 13.9487C5.87535 13.9081 5.78852 13.8653 5.70274 13.8205C5.61696 13.7757 5.53233 13.7288 5.44883 13.6798C5.36534 13.6309 5.28307 13.58 5.20205 13.527C5.12102 13.4741 5.04134 13.4192 4.96299 13.3624C4.88464 13.3055 4.80772 13.2468 4.73222 13.1863C4.65673 13.1257 4.58275 13.0633 4.51028 12.9992C4.43782 12.935 4.36696 12.8691 4.2977 12.8015C4.22844 12.7339 4.16087 12.6647 4.09498 12.5938C4.02909 12.5229 3.96497 12.4504 3.9026 12.3764C3.84023 12.3024 3.77971 12.2269 3.72102 12.1499C3.66232 12.073 3.60553 11.9946 3.55065 11.9149C3.49577 11.8352 3.44286 11.7542 3.39192 11.6719C3.34098 11.5896 3.29206 11.5061 3.24518 11.4214C3.1983 11.3367 3.15351 11.251 3.1108 11.1641C3.06809 11.0773 3.02752 10.9894 2.98908 10.9006C2.95065 10.8118 2.91439 10.7221 2.88032 10.6315C2.84625 10.5409 2.8144 10.4495 2.78477 10.3574C2.75514 10.2652 2.72777 10.1724 2.70266 10.0789C2.67755 9.98548 2.65472 9.89145 2.63418 9.79686C2.61364 9.70228 2.59541 9.60727 2.57949 9.51179C2.56358 9.41632 2.54999 9.32052 2.53873 9.22439C2.52747 9.12826 2.51856 9.03191 2.51199 8.93535C2.50542 8.83879 2.5012 8.74212 2.49933 8.64536L2.49933 8.35535C2.50028 8.30702 2.50182 8.25872 2.50395 8.21043C2.50607 8.16213 2.50878 8.11387 2.51208 8.06565C2.51538 8.01743 2.51926 7.96925 2.52372 7.92112C2.52819 7.873 2.53323 7.82493 2.53887 7.77691C2.5445 7.7289 2.55071 7.68097 2.5575 7.63312C2.5643 7.58527 2.57167 7.5375 2.57962 7.48982C2.58758 7.44213 2.59611 7.39457 2.60521 7.34709C2.61432 7.29962 2.624 7.25227 2.63426 7.20503C2.64451 7.15779 2.65534 7.11069 2.66674 7.06372C2.67814 7.01674 2.6901 6.96991 2.70264 6.92324C2.71517 6.87655 2.72827 6.83003 2.74194 6.78366C2.7556 6.7373 2.76982 6.6911 2.78461 6.64508C2.79939 6.59906 2.81473 6.55322 2.83063 6.50757C2.84652 6.46193 2.86297 6.41648 2.87997 6.37124C2.89697 6.32599 2.91451 6.28095 2.9326 6.23612C2.95069 6.1913 2.96933 6.14671 2.9885 6.10233C3.00767 6.05796 3.02738 6.01383 3.04762 5.96993C3.06787 5.92604 3.08864 5.8824 3.10994 5.83901C3.13125 5.79561 3.15307 5.75249 3.17542 5.70963C3.19777 5.66678 3.22063 5.62419 3.24402 5.58189C3.2674 5.53958 3.29129 5.49757 3.31569 5.45584C3.34009 5.41411 3.365 5.3727 3.3904 5.33157C3.41581 5.29045 3.44171 5.24964 3.4681 5.20915C3.4945 5.16866 3.52138 5.12849 3.54875 5.08864C3.57612 5.04881 3.60397 5.00931 3.6323 4.97013C3.66063 4.93097 3.68944 4.89216 3.7187 4.8537C3.74797 4.81522 3.7777 4.77711 3.8079 4.73937C3.8381 4.70162 3.86875 4.66425 3.89985 4.62725C3.93095 4.59026 3.9625 4.55364 3.99449 4.51739C4.02647 4.48116 4.0589 4.44531 4.09175 4.40986C4.12461 4.37441 4.1579 4.33937 4.19161 4.30473C4.22532 4.27008 4.25945 4.23585 4.29398 4.20204C4.32861 4.16816 4.36365 4.13472 4.3991 4.10169C4.43455 4.06868 4.47039 4.03609 4.50663 4.00395C4.54288 3.97179 4.5795 3.94008 4.61651 3.90882C4.65352 3.87757 4.6909 3.84676 4.72867 3.81642C4.76643 3.78607 4.80455 3.75619 4.84303 3.72676C4.88153 3.69734 4.92036 3.66839 4.95955 3.63992C4.99875 3.61144 5.03828 3.58345 5.07816 3.55594C5.11802 3.52842 5.15822 3.5014 5.19875 3.47487C5.23929 3.44833 5.28013 3.42229 5.3213 3.39675C5.36246 3.37121 5.40394 3.34617 5.44571 3.32164C5.48749 3.29711 5.52955 3.27309 5.57191 3.24958C5.61428 3.22607 5.65691 3.20308 5.69982 3.18061C5.74274 3.15814 5.78592 3.1362 5.82938 3.11478C5.87283 3.09336 5.91654 3.07247 5.9605 3.05212C6.00445 3.03176 6.04866 3.01194 6.09311 2.99266C6.13754 2.97338 6.18222 2.95464 6.22711 2.93645C6.272 2.91826 6.31712 2.90061 6.36245 2.88352C6.40778 2.86642 6.45331 2.84988 6.49904 2.8339C6.54477 2.81791 6.59068 2.80248 6.6368 2.78761C6.6829 2.77274 6.72918 2.75843 6.77564 2.74469C6.82209 2.73095 6.86871 2.71777 6.91548 2.70516C6.96225 2.69255 7.00917 2.68051 7.05625 2.66905C7.10331 2.65758 7.15051 2.64669 7.19784 2.63637C7.24518 2.62605 7.29264 2.61631 7.3402 2.60714C7.38777 2.59798 7.43544 2.5894 7.48322 2.58139C7.531 2.57339 7.57887 2.56597 7.62683 2.55913C7.6748 2.55229 7.72283 2.54604 7.77094 2.54037C7.81904 2.5347 7.86722 2.52961 7.91545 2.52512C7.96369 2.52062 8.01197 2.51671 8.06031 2.51339C8.10864 2.51007 8.157 2.50733 8.2054 2.50519C8.2538 2.50304 8.30221 2.50149 8.35064 2.50052C8.39907 2.49955 8.44752 2.49917 8.49597 2.49939C10.0933 2.49939 11.5959 3.05538 12.7259 4.06272C12.7597 4.09242 12.7931 4.12254 12.8262 4.15309C12.8592 4.18364 12.8919 4.21461 12.9241 4.24599C12.9564 4.27736 12.9882 4.30914 13.0196 4.34132C13.0511 4.3735 13.0821 4.40606 13.1128 4.43903C13.1434 4.47199 13.1736 4.50534 13.2034 4.53907C13.2331 4.5728 13.2625 4.6069 13.2914 4.64136C13.3203 4.67583 13.3488 4.71064 13.3769 4.74584C13.4049 4.78103 13.4325 4.81656 13.4596 4.85245C13.4868 4.88834 13.5135 4.92456 13.5397 4.96111C13.5659 4.99767 13.5917 5.03455 13.617 5.07176C13.6423 5.10896 13.6671 5.14649 13.6915 5.18433C13.7158 5.22217 13.7397 5.2603 13.7631 5.29874C13.7865 5.33719 13.8094 5.37592 13.8318 5.41493C13.8542 5.45394 13.8761 5.49323 13.8975 5.53281C13.9189 5.57238 13.9398 5.61222 13.9602 5.65232C13.9806 5.69242 14.0005 5.73277 14.0199 5.77337C14.0396 5.81426 14.0586 5.85543 14.0771 5.89685C14.0956 5.93828 14.1135 5.97996 14.1308 6.02189C14.1481 6.06382 14.1648 6.10598 14.181 6.14838C14.1971 6.19077 14.2127 6.23339 14.2277 6.27622C14.2426 6.31906 14.2569 6.36209 14.2707 6.40532C14.2844 6.44855 14.2975 6.49197 14.3101 6.53556C14.3225 6.57916 14.3344 6.62293 14.3458 6.66687C14.3571 6.7108 14.3678 6.75488 14.3779 6.79911C14.3879 6.84334 14.3973 6.88771 14.4062 6.9322C14.415 6.9767 14.4232 7.0213 14.4309 7.06603C14.4384 7.11076 14.4454 7.15559 14.4517 7.2005C14.4581 7.24542 14.4637 7.29042 14.4689 7.3355C14.4738 7.38059 14.4782 7.42573 14.4821 7.47093C14.4859 7.51613 14.489 7.56137 14.4916 7.60666C14.4942 7.65196 14.496 7.69729 14.4973 7.74263C14.4986 7.78796 14.4993 7.83333 14.4993 7.87869C14.4993 8.83935 14.1326 9.73402 13.4686 10.3973ZM12.0973 4.76737C11.1406 3.91471 9.86129 3.44471 8.49597 3.44471C8.41445 3.44427 8.33298 3.4458 8.25155 3.44931C8.17011 3.45283 8.08881 3.45832 8.00763 3.46579C7.92647 3.47326 7.84553 3.4827 7.76482 3.49411C7.68411 3.50551 7.60372 3.51888 7.52367 3.5342C7.44361 3.54951 7.36397 3.56677 7.28475 3.58596C7.20553 3.60515 7.12683 3.62626 7.04863 3.64928C6.97044 3.67231 6.89285 3.69721 6.81587 3.72401C6.73889 3.75081 6.6626 3.77946 6.58702 3.80997C6.51143 3.84047 6.43663 3.87279 6.36261 3.90694C6.2886 3.94109 6.21546 3.97702 6.14319 4.01472C6.07092 4.05241 5.99961 4.09186 5.92927 4.13303C5.85892 4.1742 5.78961 4.21706 5.72135 4.26161C5.65309 4.30615 5.58594 4.35232 5.51993 4.40013C5.45392 4.44795 5.3891 4.49733 5.32548 4.54829C5.26186 4.59926 5.19953 4.65175 5.13846 4.70573C5.07741 4.75973 5.0177 4.81519 4.95933 4.87208C4.90096 4.92898 4.84402 4.98727 4.78849 5.04694C4.73296 5.10661 4.67891 5.16759 4.62635 5.2299C4.57379 5.2922 4.52277 5.35574 4.47331 5.42052C4.42384 5.48531 4.37597 5.55125 4.3297 5.61837C4.28345 5.68548 4.23885 5.75367 4.1959 5.82295C4.15295 5.89223 4.11171 5.96252 4.07218 6.03381C4.03266 6.10509 3.99489 6.17729 3.95888 6.25042C3.92286 6.32354 3.88866 6.3975 3.85623 6.47229C3.82382 6.54708 3.79324 6.62261 3.7645 6.69888C3.73576 6.77516 3.70889 6.85209 3.6839 6.92968C3.65889 7.00726 3.6358 7.0854 3.6146 7.16412C3.5934 7.24282 3.57413 7.32199 3.55679 7.40164C3.53944 7.48129 3.52404 7.5613 3.51059 7.6417C3.49714 7.72209 3.48565 7.80277 3.47612 7.88372C3.46659 7.96467 3.45904 8.04581 3.45346 8.12713C3.44788 8.20845 3.44428 8.28986 3.44266 8.37135L3.44266 8.62868C3.44428 8.71018 3.44788 8.79159 3.45346 8.87291C3.45904 8.95423 3.46659 9.03537 3.47612 9.11632C3.48565 9.19727 3.49714 9.27795 3.51059 9.35834C3.52404 9.43873 3.53944 9.51874 3.55679 9.59839C3.57413 9.67804 3.5934 9.75721 3.6146 9.83592C3.6358 9.91463 3.65889 9.99277 3.6839 10.0704C3.70889 10.1479 3.73576 10.2249 3.7645 10.3011C3.79324 10.3774 3.82382 10.453 3.85623 10.5278C3.88866 10.6025 3.92286 10.6765 3.95888 10.7496C3.99489 10.8227 4.03266 10.8949 4.07218 10.9662C4.11171 11.0375 4.15295 11.1078 4.1959 11.1771C4.23884 11.2464 4.28344 11.3146 4.3297 11.3817C4.37597 11.4488 4.42384 11.5147 4.47331 11.5795C4.52277 11.6443 4.57379 11.7078 4.62635 11.7701C4.67891 11.8324 4.73296 11.8934 4.78849 11.9531C4.84402 12.0128 4.90096 12.0711 4.95933 12.128C5.0177 12.1849 5.07741 12.2403 5.13846 12.2943C5.19953 12.3483 5.26186 12.4008 5.32548 12.4517C5.3891 12.5027 5.45392 12.5521 5.51993 12.5999C5.58594 12.6477 5.65309 12.6939 5.72135 12.7384C5.78961 12.783 5.85892 12.8258 5.92927 12.867C5.99961 12.9082 6.07092 12.9476 6.14319 12.9853C6.21546 13.023 6.2886 13.059 6.36261 13.0931C6.43663 13.1272 6.51143 13.1596 6.58702 13.1901C6.6626 13.2206 6.73889 13.2492 6.81587 13.276C6.89285 13.3028 6.97043 13.3277 7.04863 13.3507C7.12683 13.3738 7.20553 13.3949 7.28475 13.4141C7.36397 13.4333 7.44361 13.4505 7.52367 13.4658C7.60372 13.4812 7.68411 13.4945 7.76482 13.5059C7.84553 13.5173 7.92647 13.5268 8.00763 13.5342C8.08881 13.5417 8.17011 13.5472 8.25155 13.5507C8.33298 13.5542 8.41445 13.5558 8.49597 13.5553C8.72796 13.5553 8.94729 13.3367 8.94729 13.1047C8.94729 12.9567 8.91996 12.9033 8.84196 12.8253L8.80863 12.7913L8.77929 12.746C8.64263 12.542 8.4553 12.2613 8.4553 11.8773C8.4553 11.5187 8.60596 11.1613 8.87062 10.8967C8.87863 10.8886 8.88674 10.8806 8.89494 10.8728C8.90314 10.8649 8.91144 10.8571 8.91983 10.8494C8.92823 10.8418 8.93672 10.8342 8.94529 10.8267C8.95386 10.8193 8.96254 10.8119 8.97129 10.8047C8.98004 10.7974 8.98888 10.7903 8.99781 10.7832C9.00674 10.7762 9.01575 10.7692 9.02484 10.7624C9.03395 10.7556 9.04313 10.7489 9.05238 10.7423C9.06164 10.7357 9.07098 10.7292 9.08039 10.7229C9.08981 10.7165 9.0993 10.7102 9.10888 10.7041C9.11845 10.698 9.12809 10.6919 9.1378 10.686C9.14752 10.6801 9.15731 10.6743 9.16717 10.6687C9.17702 10.663 9.18694 10.6575 9.19693 10.652C9.20693 10.6466 9.21698 10.6413 9.2271 10.6361C9.23722 10.6309 9.24741 10.6259 9.25765 10.6209C9.26789 10.616 9.27819 10.6112 9.28855 10.6065C9.29891 10.6018 9.30933 10.5973 9.31979 10.5928C9.33026 10.5884 9.34078 10.5841 9.35136 10.5799C9.36195 10.5758 9.37256 10.5717 9.38324 10.5678C9.39391 10.5639 9.40462 10.5601 9.41539 10.5564C9.42616 10.5528 9.43697 10.5493 9.44782 10.5459C9.45867 10.5425 9.46956 10.5392 9.48049 10.5361C9.49143 10.533 9.50239 10.53 9.5134 10.5271C9.5244 10.5242 9.53543 10.5215 9.5465 10.5189C9.55758 10.5163 9.56868 10.5139 9.57981 10.5115C9.59093 10.5092 9.60209 10.507 9.61328 10.505C9.62446 10.5029 9.63566 10.501 9.64689 10.4992C9.65812 10.4974 9.66937 10.4958 9.68064 10.4943C9.6919 10.4928 9.70318 10.4914 9.71449 10.4902C9.7258 10.489 9.73711 10.4879 9.74844 10.4869C9.75977 10.4859 9.77111 10.4851 9.78246 10.4844C9.7938 10.4838 9.80516 10.4832 9.81653 10.4828C9.82788 10.4824 9.83925 10.4821 9.85062 10.482L10.9553 10.482C12.4146 10.482 13.5559 9.33935 13.5559 7.88068C13.5533 6.70869 13.0346 5.60404 12.0973 4.76737ZM11.9273 8.90535C11.4693 8.90535 11.0666 8.50401 11.0666 8.04402C11.0666 7.58603 11.4679 7.18336 11.9273 7.18336C12.3866 7.18336 12.7893 7.58603 12.7879 8.04402C12.7879 8.50268 12.3866 8.90535 11.9273 8.90535ZM10.2099 6.6107C9.75196 6.6107 9.34929 6.2087 9.34929 5.74937C9.34929 5.29137 9.75062 4.8887 10.2099 4.8887C10.6693 4.8887 11.0719 5.29137 11.0706 5.74937C11.0666 6.21336 10.6693 6.6107 10.2099 6.6107ZM6.80597 6.42336C6.79527 6.41448 6.78478 6.40534 6.77453 6.39595C6.76427 6.38657 6.75424 6.37693 6.74445 6.36705C6.73465 6.35718 6.7251 6.34707 6.71579 6.33673C6.70649 6.32639 6.69744 6.31583 6.68865 6.30506C6.67985 6.29428 6.67133 6.2833 6.66307 6.27211C6.65481 6.26092 6.64683 6.24953 6.63912 6.23796C6.63141 6.22638 6.62398 6.21463 6.61684 6.20269C6.6097 6.19075 6.60286 6.17865 6.59631 6.16638C6.58976 6.15411 6.5835 6.14169 6.57755 6.12912C6.57159 6.11654 6.56595 6.10384 6.56061 6.091C6.55528 6.07815 6.55025 6.06518 6.54554 6.05209C6.54084 6.039 6.53645 6.02582 6.53238 6.01252C6.52832 5.99922 6.52457 5.98582 6.52114 5.97234C6.51773 5.95886 6.51464 5.9453 6.51188 5.93167C6.50911 5.91804 6.50668 5.90434 6.50459 5.89059C6.50249 5.87685 6.50072 5.86306 6.49928 5.84922C6.49785 5.83538 6.49676 5.82152 6.496 5.80764C6.49523 5.79375 6.49481 5.77985 6.49472 5.76594C6.49464 5.75203 6.49488 5.73812 6.49547 5.72423C6.49605 5.71034 6.49698 5.69646 6.49825 5.68261C6.4995 5.66876 6.50109 5.65494 6.50302 5.64117C6.50495 5.6274 6.50721 5.61368 6.5098 5.6C6.51239 5.58634 6.51532 5.57275 6.51857 5.55922C6.52181 5.5457 6.5254 5.53226 6.5293 5.51891C6.5332 5.50556 6.53742 5.49232 6.54197 5.47917C6.5465 5.46602 6.55137 5.45299 6.55655 5.44009C6.56172 5.42718 6.5672 5.4144 6.573 5.40176C6.57879 5.38911 6.58488 5.37661 6.59128 5.36426C6.59769 5.35192 6.60438 5.33973 6.61137 5.3277C6.61836 5.31567 6.62564 5.30382 6.6332 5.29215C6.64076 5.28048 6.64861 5.269 6.65673 5.25771C6.66485 5.24641 6.67323 5.23533 6.68189 5.22444C6.69055 5.21355 6.69947 5.20288 6.70864 5.19243C6.71782 5.18197 6.72724 5.17174 6.73691 5.16175C6.74658 5.15175 6.75648 5.142 6.76663 5.13247C6.77677 5.12296 6.78714 5.11369 6.79772 5.10468C6.80831 5.09566 6.81912 5.08691 6.83013 5.07841C6.84115 5.06992 6.85236 5.0617 6.86378 5.05375C6.87519 5.0458 6.88679 5.03814 6.89857 5.03074C6.91036 5.02336 6.92231 5.01626 6.93444 5.00945C6.94657 5.00264 6.95886 4.99614 6.97131 4.98993C6.98375 4.9837 6.99634 4.9778 7.00907 4.9722C7.0218 4.96659 7.03466 4.96131 7.04764 4.95633C7.06063 4.95135 7.07373 4.94668 7.08695 4.94234C7.10016 4.93799 7.11347 4.93397 7.12688 4.93027C7.14028 4.92657 7.15377 4.9232 7.16734 4.92015C7.18091 4.91709 7.19455 4.91438 7.20825 4.912C7.22195 4.90962 7.23571 4.90755 7.24951 4.90583C7.26332 4.90411 7.27716 4.90273 7.29102 4.90168C7.30488 4.90063 7.31877 4.89991 7.33268 4.89954C7.34658 4.89916 7.36048 4.89913 7.37439 4.89942C7.3883 4.89972 7.40218 4.90035 7.41606 4.90132C7.42993 4.90229 7.44377 4.90359 7.45759 4.90523C7.47141 4.90688 7.48516 4.90884 7.49889 4.91115C7.51261 4.91346 7.52626 4.9161 7.53984 4.91906C7.55343 4.92203 7.56694 4.92533 7.58037 4.92895C7.5938 4.93257 7.60713 4.93652 7.62038 4.94079C7.63361 4.94506 7.64673 4.94964 7.65975 4.95455C7.67277 4.95946 7.68566 4.96467 7.69842 4.97019C7.71118 4.97572 7.7238 4.98156 7.73629 4.9877C7.74877 4.99384 7.76108 5.00027 7.77326 5.00701C7.78542 5.01375 7.79742 5.02078 7.80925 5.02811C7.82107 5.03542 7.83272 5.04301 7.84418 5.0509C7.85564 5.05879 7.8669 5.06694 7.87796 5.07537L7.87863 5.07604C7.88966 5.08481 7.90045 5.09385 7.91104 5.10315C7.92162 5.11245 7.93195 5.12201 7.94207 5.13182C7.95217 5.14163 7.96202 5.15168 7.97164 5.16198C7.98127 5.17227 7.99062 5.18279 7.99971 5.19355C8.00882 5.20431 8.01764 5.21528 8.0262 5.22647C8.03475 5.23766 8.04302 5.24905 8.05103 5.26064C8.05903 5.27223 8.06674 5.28402 8.07416 5.296C8.08158 5.30797 8.08869 5.32013 8.09551 5.33244C8.10234 5.34477 8.10886 5.35725 8.11506 5.36989C8.12127 5.38254 8.12716 5.39534 8.13274 5.40826C8.13833 5.4212 8.14359 5.43427 8.14853 5.44746C8.15346 5.46064 8.15808 5.47396 8.16236 5.48738C8.16663 5.50079 8.17059 5.51431 8.17422 5.52792C8.17784 5.54153 8.18112 5.55523 8.18406 5.56901C8.18701 5.58278 8.18962 5.59662 8.19189 5.61052C8.19415 5.62443 8.19608 5.63837 8.19766 5.65236C8.19925 5.66637 8.20048 5.6804 8.20137 5.69445C8.20227 5.70851 8.20281 5.72258 8.20301 5.73667C8.20321 5.75075 8.20307 5.76484 8.20257 5.77891C8.20208 5.79299 8.20125 5.80705 8.20007 5.82108C8.19888 5.83512 8.19736 5.84912 8.1955 5.86308C8.19362 5.87704 8.19141 5.89095 8.18886 5.9048C8.18631 5.91866 8.18341 5.93244 8.18018 5.94615C8.17696 5.95986 8.1734 5.97348 8.16949 5.98702C8.16559 6.00055 8.16136 6.01399 8.1568 6.02732C8.15224 6.04064 8.14736 6.05385 8.14215 6.06694C8.13694 6.08003 8.13142 6.09298 8.12557 6.1058C8.11972 6.11861 8.11357 6.13127 8.1071 6.14379C8.10063 6.15631 8.09386 6.16866 8.08678 6.18083C8.07971 6.19301 8.07234 6.20501 8.06468 6.21683C8.05702 6.22866 8.04907 6.24028 8.04083 6.25171C8.03259 6.26313 8.02409 6.27436 8.0153 6.28536C8.00654 6.29639 7.99752 6.30721 7.98823 6.3178C7.97893 6.32839 7.96938 6.33875 7.95959 6.34887C7.94978 6.35899 7.93973 6.36887 7.92946 6.37849C7.91917 6.38811 7.90866 6.39749 7.89791 6.40661C7.88716 6.41571 7.8762 6.42456 7.86502 6.43313C7.85384 6.44169 7.84246 6.44999 7.83087 6.458C7.81928 6.46602 7.8075 6.47374 7.79554 6.48117C7.78357 6.48861 7.77142 6.49575 7.7591 6.50258C7.74679 6.50941 7.73432 6.51595 7.72167 6.52218C7.70903 6.5284 7.69624 6.53432 7.68332 6.53991C7.67039 6.5455 7.65732 6.55077 7.64414 6.55573C7.63096 6.56068 7.61764 6.56531 7.60423 6.56961C7.59081 6.57391 7.5773 6.57788 7.56369 6.58152C7.55009 6.58515 7.53639 6.58845 7.52262 6.59141C7.50884 6.59438 7.495 6.597 7.4811 6.59929C7.4672 6.60157 7.45325 6.6035 7.43925 6.6051C7.42525 6.6067 7.41122 6.60796 7.39717 6.60886C7.38311 6.60976 7.36903 6.61032 7.35495 6.61055C7.34086 6.61077 7.32677 6.61064 7.31269 6.61016C7.29861 6.60968 7.28455 6.60886 7.27051 6.60769C7.25647 6.60653 7.24247 6.60502 7.2285 6.60315C7.21453 6.6013 7.20062 6.59911 7.18677 6.59657C7.17291 6.59402 7.15913 6.59115 7.1454 6.58793C7.13168 6.58472 7.11805 6.58117 7.10452 6.57728C7.09098 6.5734 7.07754 6.56918 7.0642 6.56463C7.05087 6.56009 7.03765 6.55521 7.02456 6.55002C7.01147 6.54483 6.99851 6.53931 6.98568 6.53347C6.97286 6.52764 6.96019 6.5215 6.94766 6.51504C6.93513 6.50858 6.92278 6.50182 6.91059 6.49475C6.89839 6.48769 6.88638 6.48034 6.87456 6.47269C6.86273 6.46504 6.8511 6.45709 6.83966 6.44886C6.82822 6.44064 6.817 6.43214 6.80597 6.42336ZM5.62532 8.90535C5.16731 8.90535 4.76464 8.50401 4.76464 8.04402C4.76464 7.58603 5.16532 7.18336 5.62532 7.18336C6.08331 7.18336 6.48598 7.58603 6.48598 8.04402C6.48598 8.50268 6.08464 8.90535 5.62532 8.90535Z" fill="#E4495B" ></path></g><defs><clipPath id="clip-path-uDmpTaYBd-GAbvmU4kRSm"><path d="M2.5 14.5L14.5 14.5L14.5 2.5L2.5 2.5L2.5 14.5Z" fill="white"/></clipPath></defs></svg>
|
|
Binary file
|
|
Binary file
|
package/images/menu2.svg
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="1em" height="1em" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" class="larkui-icon larkui-icon-drag" style="width: 16px; height: 16px;"><path d="M88 187c9.941 0 18 8.059 18 18s-8.059 18-18 18-18-8.059-18-18 8.059-18 18-18Zm80 0c9.941 0 18 8.059 18 18s-8.059 18-18 18-18-8.059-18-18 8.059-18 18-18Zm-80-76c9.941 0 18 8.059 18 18s-8.059 18-18 18-18-8.059-18-18 8.059-18 18-18Zm80 0c9.941 0 18 8.059 18 18s-8.059 18-18 18-18-8.059-18-18 8.059-18 18-18ZM88 35c9.941 0 18 8.059 18 18s-8.059 18-18 18-18-8.059-18-18 8.059-18 18-18Zm80 0c9.941 0 18 8.059 18 18s-8.059 18-18 18-18-8.059-18-18 8.059-18 18-18Z" fill="currentColor" fill-rule="nonzero"></path></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportWebVitals.d.ts","sourceRoot":"","sources":["reportWebVitals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,QAAA,MAAM,eAAe,GAAI,cAAc,aAAa,SAUnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudea/yang-editor",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "a fast block editor",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
9
|
-
|
|
9
|
+
"generate": "ts-node src/generator.ts",
|
|
10
|
+
"build": "tsc"
|
|
10
11
|
},
|
|
11
12
|
"author": "cloudea",
|
|
12
13
|
"license": "MIT",
|
|
13
14
|
"devDependencies": {
|
|
15
|
+
"@types/node": "^24.10.1",
|
|
16
|
+
"ts-node": "^10.9.2",
|
|
14
17
|
"typescript": "^5.9.3"
|
|
15
18
|
},
|
|
16
19
|
"repository": {
|
|
@@ -29,6 +32,8 @@
|
|
|
29
32
|
"homepage": "https://github.com/clouddea/yang-editor#readme",
|
|
30
33
|
"files": [
|
|
31
34
|
"dist/",
|
|
35
|
+
"doc/",
|
|
36
|
+
"images/",
|
|
32
37
|
"src/",
|
|
33
38
|
"LICENSE",
|
|
34
39
|
"package.json",
|
package/src/componets.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { images } from "./images";
|
|
1
2
|
import { YangEditor } from "./index";
|
|
2
3
|
|
|
3
4
|
export interface EditorElement {
|
|
@@ -213,7 +214,7 @@ class ContentBeforeMenu implements EditorComponent {
|
|
|
213
214
|
|
|
214
215
|
let button = document.createElement("button");
|
|
215
216
|
button.classList.add("yang-editor-content-before-menu-button");
|
|
216
|
-
button.style.backgroundImage = `url(${
|
|
217
|
+
button.style.backgroundImage = `url("${images.menu2}")`;
|
|
217
218
|
|
|
218
219
|
this.element.onclick = () => this.sideMenu.show(this.target);
|
|
219
220
|
this.element.onmouseenter = () => this.show(this.target);
|
|
@@ -237,7 +238,6 @@ class ContentBeforeMenu implements EditorComponent {
|
|
|
237
238
|
}
|
|
238
239
|
if(target) {
|
|
239
240
|
this.target = target;
|
|
240
|
-
this.element.style.left = `24px`;
|
|
241
241
|
this.element.style.top = target.offsetTop + `px`;
|
|
242
242
|
}
|
|
243
243
|
}
|
|
@@ -254,17 +254,11 @@ class ButtonAdd implements EditorComponent {
|
|
|
254
254
|
constructor(editor: YangEditor) {
|
|
255
255
|
this.context = editor;
|
|
256
256
|
this.element = document.createElement("button");
|
|
257
|
+
this.element.classList.add("yang-editor-button-add");
|
|
257
258
|
this.element.innerText = "";
|
|
258
|
-
this.element.style.
|
|
259
|
-
this.element.style.height = "16px";
|
|
260
|
-
this.element.style.height = "16px";
|
|
261
|
-
this.element.style.backgroundImage = `url(${this.context.options.images.add})`;
|
|
262
|
-
this.element.style.backgroundSize = "contain";
|
|
263
|
-
this.element.style.backgroundRepeat = "no-repeat";
|
|
264
|
-
this.element.style.cursor = "pointer";
|
|
259
|
+
this.element.style.backgroundImage = `url("${images.add2x}")`;
|
|
265
260
|
this.element.title = "Add Collapsed Panel";
|
|
266
261
|
this.element.onclick = () => this.context.body.content.insertCollapse();
|
|
267
|
-
|
|
268
262
|
}
|
|
269
263
|
|
|
270
264
|
onMount(): HTMLElement {
|
|
@@ -296,18 +290,12 @@ class BackGroundColorStrip implements EditorComponent {
|
|
|
296
290
|
|
|
297
291
|
onMount(): HTMLElement {
|
|
298
292
|
this.element.classList.add("yang-editor-color-strip");
|
|
299
|
-
this.element.style.display = "flex";
|
|
300
|
-
this.element.style.alignItems = "center";
|
|
301
293
|
for(let i = 0; i < this.colors.length; i++) {
|
|
302
294
|
let color = this.colors[i];
|
|
303
295
|
let title = this.titles[i];
|
|
304
296
|
let btn = document.createElement("button");
|
|
305
297
|
if(color != undefined && title != undefined) {
|
|
306
298
|
btn.style.backgroundColor = color;
|
|
307
|
-
btn.style.width = "16px";
|
|
308
|
-
btn.style.height = "16px";
|
|
309
|
-
btn.style.borderRadius = "2px";
|
|
310
|
-
btn.style.cursor = "pointer";
|
|
311
299
|
btn.title = title;
|
|
312
300
|
btn.onclick = () => {
|
|
313
301
|
document.execCommand('backColor', false, color);
|
|
@@ -346,25 +334,14 @@ class ForeGroundColorStrip implements EditorComponent {
|
|
|
346
334
|
|
|
347
335
|
onMount(): HTMLElement {
|
|
348
336
|
this.element.classList.add("yang-editor-fgcolor-strip");
|
|
349
|
-
this.element.style.display = "flex";
|
|
350
|
-
this.element.style.alignItems = "center";
|
|
351
337
|
for(let i = 0; i < this.colors.length; i++) {
|
|
352
338
|
let color = this.colors[i];
|
|
353
339
|
let title = this.titles[i];
|
|
354
340
|
let btn = document.createElement("button");
|
|
355
341
|
if(color != undefined && title != undefined) {
|
|
356
|
-
// btn.style.backgroundColor = "transparent";
|
|
357
|
-
// btn.style.backgroundImage = `url(${this.context.options.images.fgColor})`;
|
|
358
|
-
// btn.style.backgroundSize = "16px 16px";
|
|
359
|
-
// btn.style.backgroundRepeat = "no-repeat";
|
|
360
|
-
// btn.style.backgroundPosition = "center";
|
|
361
|
-
btn.style.mask = `url(${this.context.options.images.fgColor}) no-repeat center`;
|
|
362
|
-
btn.style.webkitMask = `url(${this.context.options.images.fgColor}) no-repeat center`;
|
|
363
342
|
btn.style.backgroundColor = color;
|
|
364
|
-
btn.style.
|
|
365
|
-
btn.style.
|
|
366
|
-
btn.style.borderRadius = "2px";
|
|
367
|
-
btn.style.cursor = "pointer";
|
|
343
|
+
btn.style.mask = `url("${images.fgcolor}") no-repeat center`;
|
|
344
|
+
btn.style.webkitMask = `url("${images.fgcolor}") no-repeat center`;
|
|
368
345
|
btn.title = title;
|
|
369
346
|
btn.onclick = () => {
|
|
370
347
|
document.execCommand('foreColor', false, color);
|
|
@@ -394,26 +371,12 @@ class IconButton implements EditorComponent {
|
|
|
394
371
|
this.element = document.createElement("button");
|
|
395
372
|
this.element.classList.add("yang-editor-icon-button");
|
|
396
373
|
this.element.style.backgroundImage = `url(${icon})`;
|
|
397
|
-
this.element.style.backgroundColor = "transparent";
|
|
398
|
-
this.element.style.width = "26px";
|
|
399
|
-
this.element.style.height = "26px";
|
|
400
|
-
this.element.style.borderRadius = "3px";
|
|
401
|
-
this.element.style.cursor = "pointer";
|
|
402
|
-
this.element.style.backgroundSize = "16px 16px";
|
|
403
|
-
this.element.style.backgroundRepeat = "no-repeat";
|
|
404
|
-
this.element.style.backgroundPosition = "center center";
|
|
405
374
|
this.element.title = tooltip;
|
|
406
375
|
this.element.onclick = () => {
|
|
407
376
|
if(onclick) {
|
|
408
377
|
onclick();
|
|
409
378
|
}
|
|
410
379
|
};
|
|
411
|
-
this.element.onmouseover = () => {
|
|
412
|
-
this.element.style.backgroundColor = "rgba(231, 233, 232, 1)";
|
|
413
|
-
};
|
|
414
|
-
this.element.onmouseleave = () => {
|
|
415
|
-
this.element.style.backgroundColor = "transparent";
|
|
416
|
-
}
|
|
417
380
|
|
|
418
381
|
}
|
|
419
382
|
|
|
@@ -444,12 +407,12 @@ export class EditorToolbar implements EditorComponent {
|
|
|
444
407
|
this.element.appendChild(new ButtonAdd(this.context).onMount());
|
|
445
408
|
this.element.appendChild(new BackGroundColorStrip(this.context).onMount());
|
|
446
409
|
this.element.appendChild(new ForeGroundColorStrip(this.context).onMount());
|
|
447
|
-
this.element.appendChild(new IconButton(this.context,
|
|
448
|
-
this.element.appendChild(new IconButton(this.context,
|
|
449
|
-
this.element.appendChild(new IconButton(this.context,
|
|
450
|
-
this.element.appendChild(new IconButton(this.context,
|
|
451
|
-
this.element.appendChild(new IconButton(this.context,
|
|
452
|
-
this.element.appendChild(new IconButton(this.context,
|
|
410
|
+
this.element.appendChild(new IconButton(this.context, images.bold2x, "Bold", this.boldSelection.bind(this)).onMount());
|
|
411
|
+
this.element.appendChild(new IconButton(this.context, images.italic2x, "Italic", this.italicSelection.bind(this)).onMount());
|
|
412
|
+
this.element.appendChild(new IconButton(this.context, images.underline2x, "Underline", this.underlineSelection.bind(this)).onMount());
|
|
413
|
+
this.element.appendChild(new IconButton(this.context, images.deleteline2x, "Delete Line", this.strokeThroughSelection.bind(this)).onMount());
|
|
414
|
+
this.element.appendChild(new IconButton(this.context, images.link2x, "Link", this.insertLink.bind(this)).onMount());
|
|
415
|
+
this.element.appendChild(new IconButton(this.context, images.clear2x, "Clear", this.clearFormatSelection.bind(this)).onMount());
|
|
453
416
|
return this.element;
|
|
454
417
|
}
|
|
455
418
|
|
|
@@ -573,7 +536,7 @@ export class EditorCollapse implements EditorComponent {
|
|
|
573
536
|
this.element.appendChild(this.container);
|
|
574
537
|
|
|
575
538
|
this.container.contentEditable = "false";
|
|
576
|
-
this.button.style.backgroundImage = `url(${
|
|
539
|
+
this.button.style.backgroundImage = `url("${images.down2x}")`;
|
|
577
540
|
}
|
|
578
541
|
}
|
|
579
542
|
|
|
@@ -649,10 +612,10 @@ export class EditorParagraphMenu implements EditorComponent {
|
|
|
649
612
|
this.element.classList.add("yang-editor-paragraph-menu");
|
|
650
613
|
let ul = document.createElement("ul");
|
|
651
614
|
let lis = new Array<HTMLLIElement>();
|
|
652
|
-
let
|
|
615
|
+
let icons = [images.deleteline2x, images.copy2x, images.cut2x];
|
|
653
616
|
let texts = ["Delete", "Copy", "Cut"];
|
|
654
617
|
|
|
655
|
-
for(let i = 0; i <
|
|
618
|
+
for(let i = 0; i < icons.length; i++) {
|
|
656
619
|
let li = document.createElement("li");
|
|
657
620
|
let icon = document.createElement("button");
|
|
658
621
|
let text = document.createElement("p");
|
|
@@ -661,17 +624,7 @@ export class EditorParagraphMenu implements EditorComponent {
|
|
|
661
624
|
text.classList.add("yang-editor-paragraph-menu-item-text");
|
|
662
625
|
let title = texts[i];
|
|
663
626
|
if(title !== undefined) {
|
|
664
|
-
icon.style.backgroundImage = `url(${
|
|
665
|
-
icon.style.backgroundSize = "16px 16px";
|
|
666
|
-
icon.style.backgroundRepeat = "no-repeat";
|
|
667
|
-
icon.style.backgroundPosition = "center";
|
|
668
|
-
icon.style.width = "20px";
|
|
669
|
-
icon.style.height = "20px";
|
|
670
|
-
icon.style.cursor = "pointer";
|
|
671
|
-
icon.style.border = "none";
|
|
672
|
-
icon.style.outline = "none";
|
|
673
|
-
li.style.display = "flex";
|
|
674
|
-
li.style.alignItems = "center";
|
|
627
|
+
icon.style.backgroundImage = `url("${icons[i]}")`;
|
|
675
628
|
text.innerText = title;
|
|
676
629
|
li.appendChild(icon);
|
|
677
630
|
li.appendChild(text);
|
package/src/generator.ts
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
// image-code-generator.ts
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
|
|
5
|
+
interface ImageData {
|
|
6
|
+
[key: string]: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
class ImageCodeGenerator {
|
|
10
|
+
private imagesDir: string;
|
|
11
|
+
private outputFile: string;
|
|
12
|
+
private supportedFormats: Set<string>;
|
|
13
|
+
|
|
14
|
+
constructor(imagesDir: string = '../images', outputFile: string = 'images.ts') {
|
|
15
|
+
this.imagesDir = path.resolve(__dirname, imagesDir);
|
|
16
|
+
this.outputFile = path.resolve(__dirname, outputFile);
|
|
17
|
+
this.supportedFormats = new Set(['.png', '.svg', '.jpg', '.jpeg']);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 检查文件是否为支持的图片格式
|
|
22
|
+
*/
|
|
23
|
+
private isSupportedImage(filePath: string): boolean {
|
|
24
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
25
|
+
return this.supportedFormats.has(ext);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 将图片文件转换为 base64 data URL
|
|
30
|
+
*/
|
|
31
|
+
private async imageToDataUrl(filePath: string): Promise<string> {
|
|
32
|
+
try {
|
|
33
|
+
const fileBuffer = await fs.promises.readFile(filePath);
|
|
34
|
+
const base64Data = fileBuffer.toString('base64');
|
|
35
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
36
|
+
|
|
37
|
+
let mimeType: string;
|
|
38
|
+
switch (ext) {
|
|
39
|
+
case '.svg':
|
|
40
|
+
mimeType = 'image/svg+xml';
|
|
41
|
+
break;
|
|
42
|
+
case '.png':
|
|
43
|
+
mimeType = 'image/png';
|
|
44
|
+
break;
|
|
45
|
+
case '.jpg':
|
|
46
|
+
case '.jpeg':
|
|
47
|
+
mimeType = 'image/jpeg';
|
|
48
|
+
break;
|
|
49
|
+
default:
|
|
50
|
+
mimeType = 'application/octet-stream';
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return `data:${mimeType};base64,${base64Data}`;
|
|
54
|
+
} catch (error) {
|
|
55
|
+
throw new Error(`Failed to convert image ${filePath}: ${error}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* 递归获取所有图片文件
|
|
61
|
+
*/
|
|
62
|
+
private async getAllImageFiles(dir: string): Promise<string[]> {
|
|
63
|
+
const imageFiles: string[] = [];
|
|
64
|
+
|
|
65
|
+
async function traverse(currentDir: string) {
|
|
66
|
+
const items = await fs.promises.readdir(currentDir, { withFileTypes: true });
|
|
67
|
+
|
|
68
|
+
for (const item of items) {
|
|
69
|
+
const fullPath = path.join(currentDir, item.name);
|
|
70
|
+
|
|
71
|
+
if (item.isDirectory()) {
|
|
72
|
+
await traverse(fullPath);
|
|
73
|
+
} else if (item.isFile()) {
|
|
74
|
+
const ext = path.extname(item.name).toLowerCase();
|
|
75
|
+
if (['.png', '.svg', '.jpg', '.jpeg'].includes(ext)) {
|
|
76
|
+
imageFiles.push(fullPath);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
await traverse(dir);
|
|
83
|
+
return imageFiles;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* 生成合法的 TypeScript 标识符名称
|
|
88
|
+
*/
|
|
89
|
+
private generatePropertyName(filePath: string, baseDir: string): string {
|
|
90
|
+
// 获取相对于基础目录的路径
|
|
91
|
+
const relativePath = path.relative(baseDir, filePath);
|
|
92
|
+
|
|
93
|
+
// 移除扩展名,并将路径分隔符转换为下划线
|
|
94
|
+
const withoutExt = relativePath.replace(/\.[^/.]+$/, '');
|
|
95
|
+
let propertyName = withoutExt.replace(/[\/\\-]/g, '_').replace(/[^a-zA-Z0-9_]/g, '');
|
|
96
|
+
|
|
97
|
+
// 确保以字母或下划线开头
|
|
98
|
+
if (!/^[a-zA-Z_]/.test(propertyName)) {
|
|
99
|
+
propertyName = '_' + propertyName;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return propertyName;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* 生成 TypeScript 代码
|
|
107
|
+
*/
|
|
108
|
+
private generateTypeScriptCode(imageData: ImageData): string {
|
|
109
|
+
const properties = Object.entries(imageData)
|
|
110
|
+
.map(([key, value]) => ` ${key}: '${value}'`)
|
|
111
|
+
.join(',\n');
|
|
112
|
+
|
|
113
|
+
return `// Auto-generated file - DO NOT EDIT
|
|
114
|
+
// This file contains base64 encoded images
|
|
115
|
+
|
|
116
|
+
export const images = {
|
|
117
|
+
${properties}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
export type ImageKeys = keyof typeof images;
|
|
121
|
+
`;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* 主函数:生成图片代码文件
|
|
126
|
+
*/
|
|
127
|
+
async generate(): Promise<void> {
|
|
128
|
+
try {
|
|
129
|
+
console.log('Starting image code generation...');
|
|
130
|
+
|
|
131
|
+
// 检查图片目录是否存在
|
|
132
|
+
if (!fs.existsSync(this.imagesDir)) {
|
|
133
|
+
throw new Error(`Images directory not found: ${this.imagesDir}`);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// 获取所有图片文件
|
|
137
|
+
const imageFiles = await this.getAllImageFiles(this.imagesDir);
|
|
138
|
+
console.log(`Found ${imageFiles.length} image files`);
|
|
139
|
+
|
|
140
|
+
if (imageFiles.length === 0) {
|
|
141
|
+
console.warn('No image files found in the specified directory');
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// 转换所有图片为 data URL
|
|
146
|
+
const imageData: ImageData = {};
|
|
147
|
+
|
|
148
|
+
for (const filePath of imageFiles) {
|
|
149
|
+
try {
|
|
150
|
+
const dataUrl = await this.imageToDataUrl(filePath);
|
|
151
|
+
const propertyName = this.generatePropertyName(filePath, this.imagesDir);
|
|
152
|
+
|
|
153
|
+
imageData[propertyName] = dataUrl;
|
|
154
|
+
console.log(`Processed: ${path.relative(this.imagesDir, filePath)} -> ${propertyName}`);
|
|
155
|
+
} catch (error) {
|
|
156
|
+
console.error(`Error processing ${filePath}:`, error);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// 生成 TypeScript 代码
|
|
161
|
+
const tsCode = this.generateTypeScriptCode(imageData);
|
|
162
|
+
|
|
163
|
+
// 写入文件
|
|
164
|
+
await fs.promises.writeFile(this.outputFile, tsCode, 'utf-8');
|
|
165
|
+
|
|
166
|
+
console.log(`✅ Successfully generated ${this.outputFile}`);
|
|
167
|
+
console.log(`📊 Total images processed: ${Object.keys(imageData).length}`);
|
|
168
|
+
|
|
169
|
+
} catch (error) {
|
|
170
|
+
console.error('❌ Error generating image code:', error);
|
|
171
|
+
throw error;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// start generate codes
|
|
177
|
+
async function main() {
|
|
178
|
+
const generator = new ImageCodeGenerator('../images', '../src/images.ts');
|
|
179
|
+
await generator.generate();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
main().catch(console.error);
|