aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2022-04-27 15:54:04 +0200
committerlonkaars <loek@pipeframe.xyz>2022-04-27 15:54:04 +0200
commit3b7c6a085a7e8d2b91ce063349ed9829eee72385 (patch)
tree5da537e506a754bc490a0e4d7b3b2cd3e09bb19a
parent4d58ddd03b22dab33f37d1916fc94e6d6a875c87 (diff)
add mappdf script
-rw-r--r--maps/map1.pdfbin0 -> 78962 bytes
-rw-r--r--maps/map1.svg1558
-rwxr-xr-xmaps/mappdf.py56
-rw-r--r--maps/readme.md17
-rw-r--r--maps/tiles/0.svg3
-rw-r--r--maps/tiles/1.svg11
-rw-r--r--maps/tiles/2.svg11
-rw-r--r--maps/tiles/3.svg11
-rw-r--r--maps/tiles/4.svg11
-rw-r--r--maps/tiles/5.svg11
-rw-r--r--maps/tiles/6.svg11
-rw-r--r--maps/tiles/7.svg11
-rw-r--r--maps/tiles/8.svg11
-rw-r--r--maps/tiles/9.svg11
-rw-r--r--maps/tiles/a.svg11
-rw-r--r--maps/tiles/b.svg11
-rw-r--r--maps/tiles/c.svg11
-rw-r--r--maps/tiles/d.svg11
-rw-r--r--maps/tiles/e.svg11
-rw-r--r--maps/tiles/f.svg11
20 files changed, 1797 insertions, 2 deletions
diff --git a/maps/map1.pdf b/maps/map1.pdf
new file mode 100644
index 0000000..a87deef
--- /dev/null
+++ b/maps/map1.pdf
Binary files differ
diff --git a/maps/map1.svg b/maps/map1.svg
new file mode 100644
index 0000000..4b6e46b
--- /dev/null
+++ b/maps/map1.svg
@@ -0,0 +1,1558 @@
+<?xml version='1.0' encoding='ASCII' standalone='yes'?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3590.551181102362px" viewBox="0 0 3590.551181102362 5744.881889763779" height="5744.881889763779px">
+ <g>
+ <g transform="translate(0, 0) scale(14.960629921259843 14.960629921259843) "><g transform="translate(0, 0) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 0) scale(1 1) "><g clip-path="url(#clip0_3_39)">
+<rect width="24" height="24" fill="white"/>
+<path d="M24 12L0 12" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_39">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 0) scale(1 1) "><g clip-path="url(#clip0_3_39)">
+<rect width="24" height="24" fill="white"/>
+<path d="M24 12L0 12" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_39">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 0) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 0) scale(1 1) "><g clip-path="url(#clip0_3_47)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 0V12H15V0H9ZM12 15H24V9H12V15ZM9 12V24H15V12H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_47">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 0) scale(1 1) "><g clip-path="url(#clip0_3_39)">
+<rect width="24" height="24" fill="white"/>
+<path d="M24 12L0 12" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_39">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 0) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 0) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 0) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 0) scale(1 1) "><g clip-path="url(#clip0_3_41)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12L15 12ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 12V24H15V12L9 12Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_41">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 24) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 24) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 24) scale(1 1) "><g clip-path="url(#clip0_3_34)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_34">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 24) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 24) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 24) scale(1 1) "><g clip-path="url(#clip0_3_34)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_34">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 24) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 24) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 24) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 24) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 48) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 48) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 48) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 48) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 48) scale(1 1) "><g clip-path="url(#clip0_3_35)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12H9ZM9 0V12H15V0H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_35">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 48) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 48) scale(1 1) "><g clip-path="url(#clip0_3_39)">
+<rect width="24" height="24" fill="white"/>
+<path d="M24 12L0 12" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_39">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 48) scale(1 1) "><g clip-path="url(#clip0_3_39)">
+<rect width="24" height="24" fill="white"/>
+<path d="M24 12L0 12" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_39">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 48) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 48) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 72) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 72) scale(1 1) "><g clip-path="url(#clip0_3_45)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_45">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 72) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 72) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 72) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 72) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 72) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 72) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 72) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 72) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 96) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 96) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 96) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 96) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 96) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 96) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 96) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 96) scale(1 1) "><g clip-path="url(#clip0_3_45)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_45">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 96) scale(1 1) "><g clip-path="url(#clip0_3_47)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 0V12H15V0H9ZM12 15H24V9H12V15ZM9 12V24H15V12H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_47">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 96) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 120) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 120) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 120) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 120) scale(1 1) "><g clip-path="url(#clip0_3_45)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_45">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 120) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 120) scale(1 1) "><g clip-path="url(#clip0_3_35)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12H9ZM9 0V12H15V0H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_35">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 120) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 120) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 120) scale(1 1) "><g clip-path="url(#clip0_3_47)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 0V12H15V0H9ZM12 15H24V9H12V15ZM9 12V24H15V12H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_47">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 120) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 144) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 144) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 144) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 144) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 144) scale(1 1) "><g clip-path="url(#clip0_3_47)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 0V12H15V0H9ZM12 15H24V9H12V15ZM9 12V24H15V12H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_47">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 144) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 144) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 144) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 144) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 144) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 168) scale(1 1) "><g clip-path="url(#clip0_3_35)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12H9ZM9 0V12H15V0H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_35">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 168) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 168) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 168) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 168) scale(1 1) "><g clip-path="url(#clip0_3_35)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12H9ZM9 0V12H15V0H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_35">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 168) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 168) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 168) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 168) scale(1 1) "><g clip-path="url(#clip0_3_34)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_34">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 168) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 192) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 192) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 192) scale(1 1) "><g clip-path="url(#clip0_3_41)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12L15 12ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 12V24H15V12L9 12Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_41">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 192) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 192) scale(1 1) "><g clip-path="url(#clip0_3_41)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12L15 12ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 12V24H15V12L9 12Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_41">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 192) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 192) scale(1 1) "><g clip-path="url(#clip0_3_39)">
+<rect width="24" height="24" fill="white"/>
+<path d="M24 12L0 12" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_39">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 192) scale(1 1) "><g clip-path="url(#clip0_3_39)">
+<rect width="24" height="24" fill="white"/>
+<path d="M24 12L0 12" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_39">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 192) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 192) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 216) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 216) scale(1 1) "><g clip-path="url(#clip0_3_48)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_48">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 216) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 216) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 216) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 216) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 216) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 216) scale(1 1) "><g clip-path="url(#clip0_3_39)">
+<rect width="24" height="24" fill="white"/>
+<path d="M24 12L0 12" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_39">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 216) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 216) scale(1 1) "><g clip-path="url(#clip0_3_35)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12H9ZM9 0V12H15V0H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_35">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 240) scale(1 1) "><g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 240) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 240) scale(1 1) "><g clip-path="url(#clip0_3_48)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_48">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 240) scale(1 1) "><g clip-path="url(#clip0_3_48)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_48">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 240) scale(1 1) "><g clip-path="url(#clip0_3_48)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_48">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 240) scale(1 1) "><g clip-path="url(#clip0_3_48)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_48">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 240) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 240) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 240) scale(1 1) "><g clip-path="url(#clip0_3_41)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12L15 12ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 12V24H15V12L9 12Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_41">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 240) scale(1 1) "><g clip-path="url(#clip0_3_41)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12L15 12ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 12V24H15V12L9 12Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_41">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 264) scale(1 1) "><g clip-path="url(#clip0_3_47)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 0V12H15V0H9ZM12 15H24V9H12V15ZM9 12V24H15V12H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_47">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 264) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 264) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 264) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 264) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 264) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 264) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 264) scale(1 1) "><g clip-path="url(#clip0_3_45)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_45">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 264) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 264) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 288) scale(1 1) "><g clip-path="url(#clip0_3_47)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 0V12H15V0H9ZM12 15H24V9H12V15ZM9 12V24H15V12H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_47">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 288) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 288) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 288) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 288) scale(1 1) "><rect width="24" height="24" fill="white"/>
+</g>
+ <g transform="translate(120, 288) scale(1 1) "><rect width="24" height="24" fill="white"/>
+</g>
+ <g transform="translate(144, 288) scale(1 1) "><rect width="24" height="24" fill="white"/>
+</g>
+ <g transform="translate(168, 288) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 288) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 288) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 312) scale(1 1) "><g clip-path="url(#clip0_3_47)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 0V12H15V0H9ZM12 15H24V9H12V15ZM9 12V24H15V12H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_47">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 312) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 312) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 312) scale(1 1) "><g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 312) scale(1 1) "><rect width="24" height="24" fill="white"/>
+</g>
+ <g transform="translate(120, 312) scale(1 1) "><rect width="24" height="24" fill="white"/>
+</g>
+ <g transform="translate(144, 312) scale(1 1) "><rect width="24" height="24" fill="white"/>
+</g>
+ <g transform="translate(168, 312) scale(1 1) "><g clip-path="url(#clip0_3_47)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 0V12H15V0H9ZM12 15H24V9H12V15ZM9 12V24H15V12H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_47">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 312) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 312) scale(1 1) "><g clip-path="url(#clip0_3_45)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_45">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 336) scale(1 1) "><g clip-path="url(#clip0_3_47)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 0V12H15V0H9ZM12 15H24V9H12V15ZM9 12V24H15V12H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_47">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 336) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 336) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 336) scale(1 1) "><g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 336) scale(1 1) "><g clip-path="url(#clip0_3_48)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_48">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 336) scale(1 1) "><g clip-path="url(#clip0_3_48)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_48">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 336) scale(1 1) "><g clip-path="url(#clip0_3_48)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_48">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 336) scale(1 1) "><g clip-path="url(#clip0_3_45)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_45">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 336) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 336) scale(1 1) "><g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(0, 360) scale(1 1) "><g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(24, 360) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(48, 360) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(72, 360) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(96, 360) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(120, 360) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(144, 360) scale(1 1) "><g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(168, 360) scale(1 1) "><g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(192, 360) scale(1 1) "><g clip-path="url(#clip0_3_35)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12H9ZM9 0V12H15V0H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_35">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+ <g transform="translate(216, 360) scale(1 1) "><g clip-path="url(#clip0_3_35)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12H9ZM9 0V12H15V0H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_35">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</g>
+</g>
+ </g>
+</svg>
diff --git a/maps/mappdf.py b/maps/mappdf.py
new file mode 100755
index 0000000..4f4a45d
--- /dev/null
+++ b/maps/mappdf.py
@@ -0,0 +1,56 @@
+import sys
+from struct import unpack
+import svgutils.transform as sg
+import svgutils.compose as sc
+
+SVG_TILE_SIZE = 24
+DPI = 96
+INCH = 2.54
+ROBOT_SIZE = 9.5
+ROBOT_SIZE_UNIT = "cm"
+
+RESIZE_FACTOR = ROBOT_SIZE / (SVG_TILE_SIZE / DPI * INCH)
+
+def read_tiles():
+ tiles = []
+ for x in range(16):
+ tile = open(f"./tiles/{x:x}.svg", "r")
+ tiles.append(tile.read())
+ tile.close()
+ return tiles
+
+def mappdf(filename):
+ file = open(filename, 'rb')
+ contents = file.read()
+ file.close()
+ tiles = read_tiles()
+
+ width, height = unpack('>HH', contents[0:4])
+
+ target = sg.SVGFigure()
+ target.set_size((f"{width * SVG_TILE_SIZE}px", f"{height * SVG_TILE_SIZE}px"))
+
+ for y in range(height):
+ for x in range(width):
+ nibble = x + y * width
+ byte = int(nibble / 2)
+ shift = byte * 2 - nibble + 1
+ num = (contents[4 + byte] & (0xf << 4 * shift)) >> 4 * shift
+
+ tile = sg.fromstring(tiles[num]).getroot()
+ tile.moveto(x * SVG_TILE_SIZE, y * SVG_TILE_SIZE)
+ target.append(tile)
+
+ target.save(f"{filename}.svg")
+ target_scaled = sc.SVG(f"{filename}.svg")
+ target_scaled.scale(RESIZE_FACTOR)
+ target = sc.Figure(width * SVG_TILE_SIZE * RESIZE_FACTOR, height * SVG_TILE_SIZE * RESIZE_FACTOR, target_scaled)
+ target.save(f"{filename}.svg")
+ print(f"inkscape --export-pdf={filename}.pdf {filename}.svg")
+
+
+if __name__ == "__main__":
+ if len(sys.argv) > 1:
+ mappdf(sys.argv[1])
+ else:
+ exit(1)
diff --git a/maps/readme.md b/maps/readme.md
index 85f94b0..2629b4a 100644
--- a/maps/readme.md
+++ b/maps/readme.md
@@ -27,6 +27,19 @@ notation for the map. google drive ocr works well enough to read out the red
characters if you turn off path visibility in the figma document. figma also
allows pdf export so you can print the maps, but the tiles are 24x24 pixels,
not robot-sized (one tile is supposed to have about the same width and height
-as the robot's diameter). but maybe i'll make another script that stitches
-together the map tiles as svg, and then converts the whole thing to pdf.
+as the robot's diameter).
+
+## exporting maps as pdf or svg
+
+```sh
+# generate svg file
+python3 mappdf.py [file]
+
+# render svg as pdf
+inkscape --export-pdf=map.pdf [file].svg
+
+# (optional) convert to tiles for printing at home
+# loop up map size using pdfinfo on map.pdf file
+pdfposter map.pdf tiles.pdf -m a4 -p [map size]
+```
diff --git a/maps/tiles/0.svg b/maps/tiles/0.svg
new file mode 100644
index 0000000..fcdfaaa
--- /dev/null
+++ b/maps/tiles/0.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="24" height="24" fill="white"/>
+</svg>
diff --git a/maps/tiles/1.svg b/maps/tiles/1.svg
new file mode 100644
index 0000000..171df35
--- /dev/null
+++ b/maps/tiles/1.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_34)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_34">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/2.svg b/maps/tiles/2.svg
new file mode 100644
index 0000000..e3eb06b
--- /dev/null
+++ b/maps/tiles/2.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_35)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12H9ZM9 0V12H15V0H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_35">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/3.svg b/maps/tiles/3.svg
new file mode 100644
index 0000000..1e0dbad
--- /dev/null
+++ b/maps/tiles/3.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_36)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM9 0V6H15V0H9ZM6 9H0V15H6V9ZM9 6C9 7.65685 7.65685 9 6 9V15C10.9706 15 15 10.9706 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/4.svg b/maps/tiles/4.svg
new file mode 100644
index 0000000..a85e022
--- /dev/null
+++ b/maps/tiles/4.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_40)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_40">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/5.svg b/maps/tiles/5.svg
new file mode 100644
index 0000000..fdbcd25
--- /dev/null
+++ b/maps/tiles/5.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_39)">
+<rect width="24" height="24" fill="white"/>
+<path d="M24 12L0 12" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_39">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/6.svg b/maps/tiles/6.svg
new file mode 100644
index 0000000..181d7e2
--- /dev/null
+++ b/maps/tiles/6.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_38)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V6H15V0H9ZM18 15H24V9H18V15ZM9 6C9 10.9706 13.0294 15 18 15V9C16.3431 9 15 7.65685 15 6H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_38">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/7.svg b/maps/tiles/7.svg
new file mode 100644
index 0000000..ca8166b
--- /dev/null
+++ b/maps/tiles/7.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_37)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 0V12H15V0H9ZM12 9H0V15H12V9ZM12 15H24V9H12V15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_37">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/8.svg b/maps/tiles/8.svg
new file mode 100644
index 0000000..9da7e0d
--- /dev/null
+++ b/maps/tiles/8.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_41)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12L15 12ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 12V24H15V12L9 12Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_41">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/9.svg b/maps/tiles/9.svg
new file mode 100644
index 0000000..d499439
--- /dev/null
+++ b/maps/tiles/9.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_42)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V18H9V24H15ZM6 9H0V15H6V9ZM15 18C15 13.0294 10.9706 9 6 9V15C7.65685 15 9 16.3431 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_42">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/a.svg b/maps/tiles/a.svg
new file mode 100644
index 0000000..e787a43
--- /dev/null
+++ b/maps/tiles/a.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_44)">
+<rect width="24" height="24" fill="white"/>
+<path d="M12 24V-1.90735e-06" stroke="black" stroke-width="6" stroke-linecap="round"/>
+</g>
+<defs>
+<clipPath id="clip0_3_44">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/b.svg b/maps/tiles/b.svg
new file mode 100644
index 0000000..9cd38e6
--- /dev/null
+++ b/maps/tiles/b.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_45)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_45">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/c.svg b/maps/tiles/c.svg
new file mode 100644
index 0000000..2f5d16b
--- /dev/null
+++ b/maps/tiles/c.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_49)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM15 24V18H9V24H15ZM18 15H24V9H18V15ZM15 18C15 16.3431 16.3431 15 18 15V9C13.0294 9 9 13.0294 9 18H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_49">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/d.svg b/maps/tiles/d.svg
new file mode 100644
index 0000000..1ad64ea
--- /dev/null
+++ b/maps/tiles/d.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_48)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_48">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/e.svg b/maps/tiles/e.svg
new file mode 100644
index 0000000..9c9759a
--- /dev/null
+++ b/maps/tiles/e.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_47)">
+<rect width="24" height="24" fill="white"/>
+<path d="M15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM9 0V12H15V0H9ZM12 15H24V9H12V15ZM9 12V24H15V12H9Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_47">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/maps/tiles/f.svg b/maps/tiles/f.svg
new file mode 100644
index 0000000..a13b768
--- /dev/null
+++ b/maps/tiles/f.svg
@@ -0,0 +1,11 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_3_46)">
+<rect width="24" height="24" fill="white"/>
+<path d="M9 24C9 25.6569 10.3431 27 12 27C13.6569 27 15 25.6569 15 24H9ZM24 15C25.6569 15 27 13.6569 27 12C27 10.3431 25.6569 9 24 9V15ZM0 9C-1.65685 9 -3 10.3431 -3 12C-3 13.6569 -1.65685 15 0 15V9ZM15 0C15 -1.65685 13.6569 -3 12 -3C10.3431 -3 9 -1.65685 9 0H15ZM15 24V12H9V24H15ZM12 15H24V9H12V15ZM12 9H0V15H12V9ZM15 12V0H9V12H15Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_3_46">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>