bootstrap-rails-engine 3.0.3.0 → 3.1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e8363f317b5a47321948fb96ec6652e68599f9c3
4
- data.tar.gz: cf015ec05ee151678e6be7a2abeb61789cca8931
3
+ metadata.gz: 47fdf3413dfb868dd974264ee9b99459818f3b54
4
+ data.tar.gz: 8eee5ee258faa4308a9e8e674418fcdd2a1082b8
5
5
  SHA512:
6
- metadata.gz: 56b3b3387850e7db71727a9c1dde89e90d231d43a829f852fbd1c37d1ef64bba0a7220abb61e497fb9aa36469ed2834aa3c0fbc2b40d97cd2daec8a959360024
7
- data.tar.gz: df933eb0688f519420b229ea0259821768837e3c5be7cb961bf7c347802c21191c057207320e9705baaf56171a14de658b41b3d084a72a312f7df1bca3aa353c
6
+ metadata.gz: 6d2c2bc0aed7de79b0a3e3c82a6a9d8028b02f744a039849e1bfa4d94d10c9e70477c33019bd5746ee3917e41b91252c7028fd3a8a1a67e4686ef12cb773f97e
7
+ data.tar.gz: 19fb507e790e3eb2dd35c5bea6baa7823a67a805d530018123b7d816fd22b18efdd1bc5d4879abdc472d48472eb0e47da223cada25bfdc146695fd0bc452b378
Binary file
data.tar.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
  Make [Twitter Bootstrap](http://twitter.github.com/bootstrap) into Rails Engine. [Bootstrap-datepicker](https://github.com/eternicode/bootstrap-datepicker) is also included.
3
3
 
4
4
  ## Version
5
- * Bootstrap 3.0.3
6
- * Bootstrap-datepicker 1.2.0
5
+ * Bootstrap 3.1.1
6
+ * Bootstrap-datepicker 1.3.0
7
7
 
8
8
  ### Older Versions
9
9
 
@@ -54,7 +54,7 @@ If you happen to use [bootstrap-sass](https://github.com/thomas-mcdonald/bootstr
54
54
 
55
55
  ## License
56
56
 
57
- Copyright (c) 2012-2013 Yen-Ju Chen
57
+ Copyright (c) 2012-2014 Yen-Ju Chen
58
58
 
59
59
  MIT License
60
60
 
@@ -28,12 +28,12 @@
28
28
  <glyph unicode="&#x205f;" horiz-adv-x="326" />
29
29
  <glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
30
30
  <glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
31
- <glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
31
+ <glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
32
+ <glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
32
33
  <glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
33
34
  <glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
34
- <glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
35
35
  <glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
36
- <glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
36
+ <glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
37
37
  <glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
38
38
  <glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
39
39
  <glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
@@ -46,7 +46,7 @@
46
46
  <glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
47
47
  <glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
48
48
  <glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
49
- <glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
49
+ <glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
50
50
  <glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
51
51
  <glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
52
52
  <glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
@@ -58,7 +58,7 @@
58
58
  <glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
59
59
  <glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
60
60
  <glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
61
- <glyph unicode="&#xe028;" d="M0 25v475l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
61
+ <glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
62
62
  <glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
63
63
  <glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
64
64
  <glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
@@ -71,14 +71,14 @@
71
71
  <glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
72
72
  <glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
73
73
  <glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
74
- <glyph unicode="&#xe041;" d="M1 700v475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
75
- <glyph unicode="&#xe042;" d="M2 700v475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
74
+ <glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
75
+ <glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
76
76
  <glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
77
77
  <glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
78
78
  <glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
79
79
  <glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
80
80
  <glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
81
- <glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v70h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
81
+ <glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
82
82
  <glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
83
83
  <glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
84
84
  <glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
@@ -93,10 +93,10 @@
93
93
  <glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
94
94
  <glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
95
95
  <glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
96
- <glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
96
+ <glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
97
97
  <glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
98
98
  <glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
99
- <glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l566 567l-136 137l-430 -431l-147 147z" />
99
+ <glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
100
100
  <glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
101
101
  <glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
102
102
  <glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
@@ -110,13 +110,13 @@
110
110
  <glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
111
111
  <glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
112
112
  <glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
113
- <glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
114
- <glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h600v200h-600v-200z" />
115
- <glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141z" />
113
+ <glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
114
+ <glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
115
+ <glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
116
116
  <glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
117
- <glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM363 700h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26 q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-105 0 -172 -56t-67 -183zM500 300h200v100h-200v-100z" />
118
- <glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
119
- <glyph unicode="&#xe087;" d="M0 500v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200 v-206q149 48 201 206h-201v200h200q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210z" />
117
+ <glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
118
+ <glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
119
+ <glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
120
120
  <glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
121
121
  <glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
122
122
  <glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
@@ -127,14 +127,14 @@
127
127
  <glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
128
128
  <glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
129
129
  <glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
130
- <glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
131
- <glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100z M100 0h400v400h-400v-400zM200 900q-3 0 14 48t35 96l18 47l214 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
130
+ <glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
131
+ <glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
132
132
  <glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
133
133
  <glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
134
134
  <glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
135
135
  <glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
136
- <glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
137
- <glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64 q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
136
+ <glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
137
+ <glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
138
138
  <glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
139
139
  <glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
140
140
  <glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
@@ -148,33 +148,33 @@
148
148
  <glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
149
149
  <glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
150
150
  <glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
151
- <glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM99 500v250v5q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351z M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
152
- <glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37 t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
151
+ <glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
152
+ <glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
153
153
  <glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
154
- <glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 212l100 213h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
155
- <glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
154
+ <glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
155
+ <glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
156
156
  <glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
157
- <glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM999 201v600h200v-600h-200z" />
158
- <glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
159
- <glyph unicode="&#xe130;" d="M1 585q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM76 565l237 339h503l89 -100v-294l-340 -130 q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
160
- <glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 500h300l-2 -194l402 294l-402 298v-197h-298v-201z" />
161
- <glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l400 -294v194h302v201h-300v197z" />
162
- <glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
163
- <glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
164
- <glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -34 5.5 -93t7.5 -87q0 -9 17 -44t16 -60q12 0 23 -5.5 t23 -15t20 -13.5q20 -10 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55.5t-20 -57.5q12 -21 22.5 -34.5t28 -27t36.5 -17.5q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q101 -2 221 111q31 30 47 48t34 49t21 62q-14 9 -37.5 9.5t-35.5 7.5q-14 7 -49 15t-52 19 q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q8 16 22 22q6 -1 26 -1.5t33.5 -4.5t19.5 -13q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5 t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23 q-19 -3 -37 0q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -46 0t-45 -3q-20 -6 -51.5 -25.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79zM518 915q3 12 16 30.5t16 25.5q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -18 8 -42.5t16.5 -44 t9.5 -23.5q-6 1 -39 5t-53.5 10t-36.5 16z" />
157
+ <glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
158
+ <glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
159
+ <glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
160
+ <glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
161
+ <glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
162
+ <glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
163
+ <glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
164
+ <glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
165
165
  <glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
166
166
  <glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
167
167
  <glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
168
168
  <glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
169
169
  <glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
170
- <glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM513 609q0 32 21 56.5t52 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-16 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5q-37 0 -62.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
171
- <glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36 q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60l517 511 q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
172
- <glyph unicode="&#xe143;" d="M79 784q0 131 99 229.5t230 98.5q144 0 242 -129q103 129 245 129q130 0 227 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100l-84.5 84.5t-68 74t-60 78t-33.5 70.5t-15 78z M250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-106 48.5q-73 0 -131 -83l-118 -171l-114 174q-51 80 -124 80q-59 0 -108.5 -49.5t-49.5 -118.5z" />
173
- <glyph unicode="&#xe144;" d="M57 353q0 -94 66 -160l141 -141q66 -66 159 -66q95 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141l19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
170
+ <glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
171
+ <glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
172
+ <glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
173
+ <glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
174
174
  <glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
175
175
  <glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
176
- <glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5v-307l64 -14 q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5zM700 237 q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
177
- <glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5 t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10 t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221z" />
176
+ <glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
177
+ <glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
178
178
  <glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
179
179
  <glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
180
180
  <glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
@@ -187,15 +187,15 @@
187
187
  <glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
188
188
  <glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
189
189
  <glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
190
- <glyph unicode="&#xe162;" d="M216 519q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40z" />
190
+ <glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
191
191
  <glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
192
192
  <glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
193
193
  <glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
194
194
  <glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
195
195
  <glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
196
196
  <glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
197
- <glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 401h700v699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
198
- <glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l248 -237v700h-699zM900 150h100v50h-100v-50z" />
197
+ <glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
198
+ <glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
199
199
  <glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
200
200
  <glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
201
201
  <glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
@@ -204,11 +204,11 @@
204
204
  <glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
205
205
  <glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
206
206
  <glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
207
- <glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359z" />
207
+ <glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
208
208
  <glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
209
209
  <glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
210
- <glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118q17 17 20 41.5 t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
211
- <glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
210
+ <glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
211
+ <glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
212
212
  <glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
213
213
  <glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
214
214
  <glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
@@ -221,9 +221,9 @@
221
221
  <glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
222
222
  <glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
223
223
  <glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
224
- <glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300 h200l-300 -300z" />
225
- <glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
224
+ <glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
225
+ <glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
226
226
  <glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
227
- <glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
227
+ <glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
228
228
  </font>
229
229
  </defs></svg>
@@ -1,9 +1,11 @@
1
1
  /* =========================================================
2
2
  * bootstrap-datepicker.js
3
- * http://www.eyecon.ro/bootstrap-datepicker
3
+ * Repo: https://github.com/eternicode/bootstrap-datepicker/
4
+ * Demo: http://eternicode.github.io/bootstrap-datepicker/
5
+ * Docs: http://bootstrap-datepicker.readthedocs.org/
6
+ * Forked from http://www.eyecon.ro/bootstrap-datepicker
4
7
  * =========================================================
5
- * Copyright 2012 Stefan Petre
6
- * Improvements by Andrew Rowls
8
+ * Started by Stefan Petre; improvements by Andrew Rowls + contributors
7
9
  *
8
10
  * Licensed under the Apache License, Version 2.0 (the "License");
9
11
  * you may not use this file except in compliance with the License.
@@ -18,7 +20,7 @@
18
20
  * limitations under the License.
19
21
  * ========================================================= */
20
22
 
21
- (function( $ ) {
23
+ (function($, undefined){
22
24
 
23
25
  var $window = $(window);
24
26
 
@@ -27,42 +29,90 @@
27
29
  }
28
30
  function UTCToday(){
29
31
  var today = new Date();
30
- return UTCDate(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate());
32
+ return UTCDate(today.getFullYear(), today.getMonth(), today.getDate());
31
33
  }
34
+ function alias(method){
35
+ return function(){
36
+ return this[method].apply(this, arguments);
37
+ };
38
+ }
39
+
40
+ var DateArray = (function(){
41
+ var extras = {
42
+ get: function(i){
43
+ return this.slice(i)[0];
44
+ },
45
+ contains: function(d){
46
+ // Array.indexOf is not cross-browser;
47
+ // $.inArray doesn't work with Dates
48
+ var val = d && d.valueOf();
49
+ for (var i=0, l=this.length; i < l; i++)
50
+ if (this[i].valueOf() === val)
51
+ return i;
52
+ return -1;
53
+ },
54
+ remove: function(i){
55
+ this.splice(i,1);
56
+ },
57
+ replace: function(new_array){
58
+ if (!new_array)
59
+ return;
60
+ if (!$.isArray(new_array))
61
+ new_array = [new_array];
62
+ this.clear();
63
+ this.push.apply(this, new_array);
64
+ },
65
+ clear: function(){
66
+ this.splice(0);
67
+ },
68
+ copy: function(){
69
+ var a = new DateArray();
70
+ a.replace(this);
71
+ return a;
72
+ }
73
+ };
74
+
75
+ return function(){
76
+ var a = [];
77
+ a.push.apply(a, arguments);
78
+ $.extend(a, extras);
79
+ return a;
80
+ };
81
+ })();
32
82
 
33
83
 
34
84
  // Picker object
35
85
 
36
- var Datepicker = function(element, options) {
37
- var that = this;
86
+ var Datepicker = function(element, options){
87
+ this.dates = new DateArray();
88
+ this.viewDate = UTCToday();
89
+ this.focusDate = null;
38
90
 
39
91
  this._process_options(options);
40
92
 
41
93
  this.element = $(element);
42
94
  this.isInline = false;
43
95
  this.isInput = this.element.is('input');
44
- this.component = this.element.is('.date') ? this.element.find('.add-on, .btn') : false;
96
+ this.component = this.element.is('.date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;
45
97
  this.hasInput = this.component && this.element.find('input').length;
46
- if(this.component && this.component.length === 0)
98
+ if (this.component && this.component.length === 0)
47
99
  this.component = false;
48
100
 
49
101
  this.picker = $(DPGlobal.template);
50
102
  this._buildEvents();
51
103
  this._attachEvents();
52
104
 
53
- if(this.isInline) {
105
+ if (this.isInline){
54
106
  this.picker.addClass('datepicker-inline').appendTo(this.element);
55
- } else {
107
+ }
108
+ else {
56
109
  this.picker.addClass('datepicker-dropdown dropdown-menu');
57
110
  }
58
111
 
59
112
  if (this.o.rtl){
60
113
  this.picker.addClass('datepicker-rtl');
61
- this.picker.find('.prev i, .next i')
62
- .toggleClass('icon-arrow-left icon-arrow-right');
63
114
  }
64
115
 
65
-
66
116
  this.viewMode = this.o.startView;
67
117
 
68
118
  if (this.o.calendarWeeks)
@@ -85,7 +135,7 @@
85
135
  this.update();
86
136
  this.showMode();
87
137
 
88
- if(this.isInline) {
138
+ if (this.isInline){
89
139
  this.show();
90
140
  }
91
141
  };
@@ -102,14 +152,14 @@
102
152
  // Check if "de-DE" style date is available, if not language should
103
153
  // fallback to 2 letter code eg "de"
104
154
  var lang = o.language;
105
- if (!dates[lang]) {
155
+ if (!dates[lang]){
106
156
  lang = lang.split('-')[0];
107
157
  if (!dates[lang])
108
158
  lang = defaults.language;
109
159
  }
110
160
  o.language = lang;
111
161
 
112
- switch(o.startView){
162
+ switch (o.startView){
113
163
  case 2:
114
164
  case 'decade':
115
165
  o.startView = 2;
@@ -122,7 +172,7 @@
122
172
  o.startView = 0;
123
173
  }
124
174
 
125
- switch (o.minViewMode) {
175
+ switch (o.minViewMode){
126
176
  case 1:
127
177
  case 'months':
128
178
  o.minViewMode = 1;
@@ -137,27 +187,39 @@
137
187
 
138
188
  o.startView = Math.max(o.startView, o.minViewMode);
139
189
 
190
+ // true, false, or Number > 0
191
+ if (o.multidate !== true){
192
+ o.multidate = Number(o.multidate) || false;
193
+ if (o.multidate !== false)
194
+ o.multidate = Math.max(0, o.multidate);
195
+ else
196
+ o.multidate = 1;
197
+ }
198
+ o.multidateSeparator = String(o.multidateSeparator);
199
+
140
200
  o.weekStart %= 7;
141
201
  o.weekEnd = ((o.weekStart + 6) % 7);
142
202
 
143
203
  var format = DPGlobal.parseFormat(o.format);
144
- if (o.startDate !== -Infinity) {
145
- if (!!o.startDate) {
204
+ if (o.startDate !== -Infinity){
205
+ if (!!o.startDate){
146
206
  if (o.startDate instanceof Date)
147
207
  o.startDate = this._local_to_utc(this._zero_time(o.startDate));
148
208
  else
149
209
  o.startDate = DPGlobal.parseDate(o.startDate, format, o.language);
150
- } else {
210
+ }
211
+ else {
151
212
  o.startDate = -Infinity;
152
213
  }
153
214
  }
154
- if (o.endDate !== Infinity) {
155
- if (!!o.endDate) {
215
+ if (o.endDate !== Infinity){
216
+ if (!!o.endDate){
156
217
  if (o.endDate instanceof Date)
157
218
  o.endDate = this._local_to_utc(this._zero_time(o.endDate));
158
219
  else
159
220
  o.endDate = DPGlobal.parseDate(o.endDate, format, o.language);
160
- } else {
221
+ }
222
+ else {
161
223
  o.endDate = Infinity;
162
224
  }
163
225
  }
@@ -165,7 +227,7 @@
165
227
  o.daysOfWeekDisabled = o.daysOfWeekDisabled||[];
166
228
  if (!$.isArray(o.daysOfWeekDisabled))
167
229
  o.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\s]*/);
168
- o.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function (d) {
230
+ o.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){
169
231
  return parseInt(d, 10);
170
232
  });
171
233
 
@@ -178,7 +240,7 @@
178
240
  if (!_plc || _plc === 'auto')
179
241
  ; // no action
180
242
  else if (plc.length === 1){
181
- switch(plc[0]){
243
+ switch (plc[0]){
182
244
  case 'top':
183
245
  case 'bottom':
184
246
  o.orientation.y = plc[0];
@@ -204,25 +266,42 @@
204
266
  _events: [],
205
267
  _secondaryEvents: [],
206
268
  _applyEvents: function(evs){
207
- for (var i=0, el, ev; i<evs.length; i++){
269
+ for (var i=0, el, ch, ev; i < evs.length; i++){
208
270
  el = evs[i][0];
209
- ev = evs[i][1];
210
- el.on(ev);
271
+ if (evs[i].length === 2){
272
+ ch = undefined;
273
+ ev = evs[i][1];
274
+ }
275
+ else if (evs[i].length === 3){
276
+ ch = evs[i][1];
277
+ ev = evs[i][2];
278
+ }
279
+ el.on(ev, ch);
211
280
  }
212
281
  },
213
282
  _unapplyEvents: function(evs){
214
- for (var i=0, el, ev; i<evs.length; i++){
283
+ for (var i=0, el, ev, ch; i < evs.length; i++){
215
284
  el = evs[i][0];
216
- ev = evs[i][1];
217
- el.off(ev);
285
+ if (evs[i].length === 2){
286
+ ch = undefined;
287
+ ev = evs[i][1];
288
+ }
289
+ else if (evs[i].length === 3){
290
+ ch = evs[i][1];
291
+ ev = evs[i][2];
292
+ }
293
+ el.off(ev, ch);
218
294
  }
219
295
  },
220
296
  _buildEvents: function(){
221
- if (this.isInput) { // single input
297
+ if (this.isInput){ // single input
222
298
  this._events = [
223
299
  [this.element, {
224
300
  focus: $.proxy(this.show, this),
225
- keyup: $.proxy(this.update, this),
301
+ keyup: $.proxy(function(e){
302
+ if ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)
303
+ this.update();
304
+ }, this),
226
305
  keydown: $.proxy(this.keydown, this)
227
306
  }]
228
307
  ];
@@ -232,7 +311,10 @@
232
311
  // For components that are not readonly, allow keyboard nav
233
312
  [this.element.find('input'), {
234
313
  focus: $.proxy(this.show, this),
235
- keyup: $.proxy(this.update, this),
314
+ keyup: $.proxy(function(e){
315
+ if ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)
316
+ this.update();
317
+ }, this),
236
318
  keydown: $.proxy(this.keydown, this)
237
319
  }],
238
320
  [this.component, {
@@ -240,7 +322,7 @@
240
322
  }]
241
323
  ];
242
324
  }
243
- else if (this.element.is('div')) { // inline datepicker
325
+ else if (this.element.is('div')){ // inline datepicker
244
326
  this.isInline = true;
245
327
  }
246
328
  else {
@@ -250,6 +332,20 @@
250
332
  }]
251
333
  ];
252
334
  }
335
+ this._events.push(
336
+ // Component: listen for blur on element descendants
337
+ [this.element, '*', {
338
+ blur: $.proxy(function(e){
339
+ this._focused_from = e.target;
340
+ }, this)
341
+ }],
342
+ // Input: listen for blur on element
343
+ [this.element, {
344
+ blur: $.proxy(function(e){
345
+ this._focused_from = e.target;
346
+ }, this)
347
+ }]
348
+ );
253
349
 
254
350
  this._secondaryEvents = [
255
351
  [this.picker, {
@@ -259,14 +355,14 @@
259
355
  resize: $.proxy(this.place, this)
260
356
  }],
261
357
  [$(document), {
262
- mousedown: $.proxy(function (e) {
358
+ 'mousedown touchstart': $.proxy(function(e){
263
359
  // Clicked outside the datepicker, hide it
264
360
  if (!(
265
361
  this.element.is(e.target) ||
266
362
  this.element.find(e.target).length ||
267
363
  this.picker.is(e.target) ||
268
364
  this.picker.find(e.target).length
269
- )) {
365
+ )){
270
366
  this.hide();
271
367
  }
272
368
  }, this)
@@ -288,35 +384,44 @@
288
384
  this._unapplyEvents(this._secondaryEvents);
289
385
  },
290
386
  _trigger: function(event, altdate){
291
- var date = altdate || this.date,
387
+ var date = altdate || this.dates.get(-1),
292
388
  local_date = this._utc_to_local(date);
293
389
 
294
390
  this.element.trigger({
295
391
  type: event,
296
392
  date: local_date,
297
- format: $.proxy(function(altformat){
298
- var format = altformat || this.o.format;
393
+ dates: $.map(this.dates, this._utc_to_local),
394
+ format: $.proxy(function(ix, format){
395
+ if (arguments.length === 0){
396
+ ix = this.dates.length - 1;
397
+ format = this.o.format;
398
+ }
399
+ else if (typeof ix === 'string'){
400
+ format = ix;
401
+ ix = this.dates.length - 1;
402
+ }
403
+ format = format || this.o.format;
404
+ var date = this.dates.get(ix);
299
405
  return DPGlobal.formatDate(date, format, this.o.language);
300
406
  }, this)
301
407
  });
302
408
  },
303
409
 
304
- show: function(e) {
410
+ show: function(){
305
411
  if (!this.isInline)
306
412
  this.picker.appendTo('body');
307
413
  this.picker.show();
308
- this.height = this.component ? this.component.outerHeight() : this.element.outerHeight();
309
414
  this.place();
310
415
  this._attachSecondaryEvents();
311
- if (e) {
312
- e.preventDefault();
313
- }
314
416
  this._trigger('show');
315
417
  },
316
418
 
317
- hide: function(e){
318
- if(this.isInline) return;
319
- if (!this.picker.is(':visible')) return;
419
+ hide: function(){
420
+ if (this.isInline)
421
+ return;
422
+ if (!this.picker.is(':visible'))
423
+ return;
424
+ this.focusDate = null;
320
425
  this.picker.hide().detach();
321
426
  this._detachSecondaryEvents();
322
427
  this.viewMode = this.o.startView;
@@ -333,62 +438,85 @@
333
438
  this._trigger('hide');
334
439
  },
335
440
 
336
- remove: function() {
441
+ remove: function(){
337
442
  this.hide();
338
443
  this._detachEvents();
339
444
  this._detachSecondaryEvents();
340
445
  this.picker.remove();
341
446
  delete this.element.data().datepicker;
342
- if (!this.isInput) {
447
+ if (!this.isInput){
343
448
  delete this.element.data().date;
344
449
  }
345
450
  },
346
451
 
347
452
  _utc_to_local: function(utc){
348
- return new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));
453
+ return utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));
349
454
  },
350
455
  _local_to_utc: function(local){
351
- return new Date(local.getTime() - (local.getTimezoneOffset()*60000));
456
+ return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));
352
457
  },
353
458
  _zero_time: function(local){
354
- return new Date(local.getFullYear(), local.getMonth(), local.getDate());
459
+ return local && new Date(local.getFullYear(), local.getMonth(), local.getDate());
355
460
  },
356
461
  _zero_utc_time: function(utc){
357
- return new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));
462
+ return utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));
358
463
  },
359
464
 
360
- getDate: function() {
465
+ getDates: function(){
466
+ return $.map(this.dates, this._utc_to_local);
467
+ },
468
+
469
+ getUTCDates: function(){
470
+ return $.map(this.dates, function(d){
471
+ return new Date(d);
472
+ });
473
+ },
474
+
475
+ getDate: function(){
361
476
  return this._utc_to_local(this.getUTCDate());
362
477
  },
363
478
 
364
- getUTCDate: function() {
365
- return this.date;
479
+ getUTCDate: function(){
480
+ return new Date(this.dates.get(-1));
366
481
  },
367
482
 
368
- setDate: function(d) {
369
- this.setUTCDate(this._local_to_utc(d));
483
+ setDates: function(){
484
+ var args = $.isArray(arguments[0]) ? arguments[0] : arguments;
485
+ this.update.apply(this, args);
486
+ this._trigger('changeDate');
487
+ this.setValue();
370
488
  },
371
489
 
372
- setUTCDate: function(d) {
373
- this.date = d;
490
+ setUTCDates: function(){
491
+ var args = $.isArray(arguments[0]) ? arguments[0] : arguments;
492
+ this.update.apply(this, $.map(args, this._utc_to_local));
493
+ this._trigger('changeDate');
374
494
  this.setValue();
375
495
  },
376
496
 
377
- setValue: function() {
497
+ setDate: alias('setDates'),
498
+ setUTCDate: alias('setUTCDates'),
499
+
500
+ setValue: function(){
378
501
  var formatted = this.getFormattedDate();
379
- if (!this.isInput) {
502
+ if (!this.isInput){
380
503
  if (this.component){
381
504
  this.element.find('input').val(formatted).change();
382
505
  }
383
- } else {
506
+ }
507
+ else {
384
508
  this.element.val(formatted).change();
385
509
  }
386
510
  },
387
511
 
388
- getFormattedDate: function(format) {
512
+ getFormattedDate: function(format){
389
513
  if (format === undefined)
390
514
  format = this.o.format;
391
- return DPGlobal.formatDate(this.date, format, this.o.language);
515
+
516
+ var lang = this.o.language;
517
+ return $.map(this.dates, function(d){
518
+ return DPGlobal.formatDate(d, format, lang);
519
+ }).join(this.o.multidateSeparator);
392
520
  },
393
521
 
394
522
  setStartDate: function(startDate){
@@ -410,7 +538,8 @@
410
538
  },
411
539
 
412
540
  place: function(){
413
- if(this.isInline) return;
541
+ if (this.isInline)
542
+ return;
414
543
  var calendarWidth = this.picker.outerWidth(),
415
544
  calendarHeight = this.picker.outerHeight(),
416
545
  visualPadding = 10,
@@ -418,9 +547,9 @@
418
547
  windowHeight = $window.height(),
419
548
  scrollTop = $window.scrollTop();
420
549
 
421
- var zIndex = parseInt(this.element.parents().filter(function() {
422
- return $(this).css('z-index') != 'auto';
423
- }).first().css('z-index'))+10;
550
+ var zIndex = parseInt(this.element.parents().filter(function(){
551
+ return $(this).css('z-index') !== 'auto';
552
+ }).first().css('z-index'))+10;
424
553
  var offset = this.component ? this.component.parent().offset() : this.element.offset();
425
554
  var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);
426
555
  var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);
@@ -432,7 +561,7 @@
432
561
  'datepicker-orient-right datepicker-orient-left'
433
562
  );
434
563
 
435
- if (this.o.orientation.x !== 'auto') {
564
+ if (this.o.orientation.x !== 'auto'){
436
565
  this.picker.addClass('datepicker-orient-' + this.o.orientation.x);
437
566
  if (this.o.orientation.x === 'right')
438
567
  left -= calendarWidth - width;
@@ -452,7 +581,7 @@
452
581
  // decision based on which shows more of the calendar
453
582
  var yorient = this.o.orientation.y,
454
583
  top_overflow, bottom_overflow;
455
- if (yorient === 'auto') {
584
+ if (yorient === 'auto'){
456
585
  top_overflow = -scrollTop + offset.top - calendarHeight;
457
586
  bottom_overflow = scrollTop + windowHeight - (offset.top + height + calendarHeight);
458
587
  if (Math.max(top_overflow, bottom_overflow) === bottom_overflow)
@@ -475,56 +604,74 @@
475
604
 
476
605
  _allow_update: true,
477
606
  update: function(){
478
- if (!this._allow_update) return;
479
-
480
- var oldDate = new Date(this.date),
481
- date, fromArgs = false;
482
- if(arguments && arguments.length && (typeof arguments[0] === 'string' || arguments[0] instanceof Date)) {
483
- date = arguments[0];
484
- if (date instanceof Date)
485
- date = this._local_to_utc(date);
607
+ if (!this._allow_update)
608
+ return;
609
+
610
+ var oldDates = this.dates.copy(),
611
+ dates = [],
612
+ fromArgs = false;
613
+ if (arguments.length){
614
+ $.each(arguments, $.proxy(function(i, date){
615
+ if (date instanceof Date)
616
+ date = this._local_to_utc(date);
617
+ dates.push(date);
618
+ }, this));
486
619
  fromArgs = true;
487
- } else {
488
- date = this.isInput ? this.element.val() : this.element.data('date') || this.element.find('input').val();
620
+ }
621
+ else {
622
+ dates = this.isInput
623
+ ? this.element.val()
624
+ : this.element.data('date') || this.element.find('input').val();
625
+ if (dates && this.o.multidate)
626
+ dates = dates.split(this.o.multidateSeparator);
627
+ else
628
+ dates = [dates];
489
629
  delete this.element.data().date;
490
630
  }
491
631
 
492
- this.date = DPGlobal.parseDate(date, this.o.format, this.o.language);
632
+ dates = $.map(dates, $.proxy(function(date){
633
+ return DPGlobal.parseDate(date, this.o.format, this.o.language);
634
+ }, this));
635
+ dates = $.grep(dates, $.proxy(function(date){
636
+ return (
637
+ date < this.o.startDate ||
638
+ date > this.o.endDate ||
639
+ !date
640
+ );
641
+ }, this), true);
642
+ this.dates.replace(dates);
643
+
644
+ if (this.dates.length)
645
+ this.viewDate = new Date(this.dates.get(-1));
646
+ else if (this.viewDate < this.o.startDate)
647
+ this.viewDate = new Date(this.o.startDate);
648
+ else if (this.viewDate > this.o.endDate)
649
+ this.viewDate = new Date(this.o.endDate);
493
650
 
494
- if (fromArgs) {
651
+ if (fromArgs){
495
652
  // setting date by clicking
496
653
  this.setValue();
497
- } else if (date) {
654
+ }
655
+ else if (dates.length){
498
656
  // setting date by typing
499
- if (oldDate.getTime() !== this.date.getTime())
657
+ if (String(oldDates) !== String(this.dates))
500
658
  this._trigger('changeDate');
501
- } else {
502
- // clearing date
503
- this._trigger('clearDate');
504
659
  }
660
+ if (!this.dates.length && oldDates.length)
661
+ this._trigger('clearDate');
505
662
 
506
- if (this.date < this.o.startDate) {
507
- this.viewDate = new Date(this.o.startDate);
508
- this.date = new Date(this.o.startDate);
509
- } else if (this.date > this.o.endDate) {
510
- this.viewDate = new Date(this.o.endDate);
511
- this.date = new Date(this.o.endDate);
512
- } else {
513
- this.viewDate = new Date(this.date);
514
- this.date = new Date(this.date);
515
- }
516
663
  this.fill();
517
664
  },
518
665
 
519
666
  fillDow: function(){
520
667
  var dowCnt = this.o.weekStart,
521
- html = '<tr>';
522
- if(this.o.calendarWeeks){
668
+ html = '<tr>';
669
+ if (this.o.calendarWeeks){
523
670
  var cell = '<th class="cw">&nbsp;</th>';
524
671
  html += cell;
525
672
  this.picker.find('.datepicker-days thead tr:first-child').prepend(cell);
526
673
  }
527
- while (dowCnt < this.o.weekStart + 7) {
674
+ while (dowCnt < this.o.weekStart + 7){
528
675
  html += '<th class="dow">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>';
529
676
  }
530
677
  html += '</tr>';
@@ -534,7 +681,7 @@
534
681
  fillMonths: function(){
535
682
  var html = '',
536
683
  i = 0;
537
- while (i < 12) {
684
+ while (i < 12){
538
685
  html += '<span class="month">'+dates[this.o.language].monthsShort[i++]+'</span>';
539
686
  }
540
687
  this.picker.find('.datepicker-months td').html(html);
@@ -544,7 +691,9 @@
544
691
  if (!range || !range.length)
545
692
  delete this.range;
546
693
  else
547
- this.range = $.map(range, function(d){ return d.valueOf(); });
694
+ this.range = $.map(range, function(d){
695
+ return d.valueOf();
696
+ });
548
697
  this.fill();
549
698
  },
550
699
 
@@ -552,39 +701,40 @@
552
701
  var cls = [],
553
702
  year = this.viewDate.getUTCFullYear(),
554
703
  month = this.viewDate.getUTCMonth(),
555
- currentDate = this.date.valueOf(),
556
704
  today = new Date();
557
- if (date.getUTCFullYear() < year || (date.getUTCFullYear() == year && date.getUTCMonth() < month)) {
705
+ if (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){
558
706
  cls.push('old');
559
- } else if (date.getUTCFullYear() > year || (date.getUTCFullYear() == year && date.getUTCMonth() > month)) {
707
+ }
708
+ else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){
560
709
  cls.push('new');
561
710
  }
711
+ if (this.focusDate && date.valueOf() === this.focusDate.valueOf())
712
+ cls.push('focused');
562
713
  // Compare internal UTC date with local today, not UTC today
563
714
  if (this.o.todayHighlight &&
564
- date.getUTCFullYear() == today.getFullYear() &&
565
- date.getUTCMonth() == today.getMonth() &&
566
- date.getUTCDate() == today.getDate()) {
715
+ date.getUTCFullYear() === today.getFullYear() &&
716
+ date.getUTCMonth() === today.getMonth() &&
717
+ date.getUTCDate() === today.getDate()){
567
718
  cls.push('today');
568
719
  }
569
- if (currentDate && date.valueOf() == currentDate) {
720
+ if (this.dates.contains(date) !== -1)
570
721
  cls.push('active');
571
- }
572
722
  if (date.valueOf() < this.o.startDate || date.valueOf() > this.o.endDate ||
573
- $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1) {
723
+ $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1){
574
724
  cls.push('disabled');
575
725
  }
576
726
  if (this.range){
577
727
  if (date > this.range[0] && date < this.range[this.range.length-1]){
578
728
  cls.push('range');
579
729
  }
580
- if ($.inArray(date.valueOf(), this.range) != -1){
730
+ if ($.inArray(date.valueOf(), this.range) !== -1){
581
731
  cls.push('selected');
582
732
  }
583
733
  }
584
734
  return cls;
585
735
  },
586
736
 
587
- fill: function() {
737
+ fill: function(){
588
738
  var d = new Date(this.viewDate),
589
739
  year = d.getUTCFullYear(),
590
740
  month = d.getUTCMonth(),
@@ -592,19 +742,20 @@
592
742
  startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,
593
743
  endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,
594
744
  endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,
595
- currentDate = this.date && this.date.valueOf(),
745
+ todaytxt = dates[this.o.language].today || dates['en'].today || '',
746
+ cleartxt = dates[this.o.language].clear || dates['en'].clear || '',
596
747
  tooltip;
597
748
  this.picker.find('.datepicker-days thead th.datepicker-switch')
598
749
  .text(dates[this.o.language].months[month]+' '+year);
599
750
  this.picker.find('tfoot th.today')
600
- .text(dates[this.o.language].today)
751
+ .text(todaytxt)
601
752
  .toggle(this.o.todayBtn !== false);
602
753
  this.picker.find('tfoot th.clear')
603
- .text(dates[this.o.language].clear)
754
+ .text(cleartxt)
604
755
  .toggle(this.o.clearBtn !== false);
605
756
  this.updateNavArrows();
606
757
  this.fillMonths();
607
- var prevMonth = UTCDate(year, month-1, 28,0,0,0,0),
758
+ var prevMonth = UTCDate(year, month-1, 28),
608
759
  day = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());
609
760
  prevMonth.setUTCDate(day);
610
761
  prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);
@@ -613,19 +764,19 @@
613
764
  nextMonth = nextMonth.valueOf();
614
765
  var html = [];
615
766
  var clsName;
616
- while(prevMonth.valueOf() < nextMonth) {
617
- if (prevMonth.getUTCDay() == this.o.weekStart) {
767
+ while (prevMonth.valueOf() < nextMonth){
768
+ if (prevMonth.getUTCDay() === this.o.weekStart){
618
769
  html.push('<tr>');
619
- if(this.o.calendarWeeks){
770
+ if (this.o.calendarWeeks){
620
771
  // ISO 8601: First week contains first thursday.
621
772
  // ISO also states week starts on Monday, but we can be more abstract here.
622
773
  var
623
774
  // Start of current week: based on weekstart/current date
624
775
  ws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),
625
776
  // Thursday of this week
626
- th = new Date(+ws + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),
777
+ th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),
627
778
  // First Thursday of year, year from thursday
628
- yth = new Date(+(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),
779
+ yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),
629
780
  // Calendar week: ms between thursdays, div ms per day, div 7 days
630
781
  calWeek = (th - yth) / 864e5 / 7 + 1;
631
782
  html.push('<td class="cw">'+ calWeek +'</td>');
@@ -653,29 +804,31 @@
653
804
 
654
805
  clsName = $.unique(clsName);
655
806
  html.push('<td class="'+clsName.join(' ')+'"' + (tooltip ? ' title="'+tooltip+'"' : '') + '>'+prevMonth.getUTCDate() + '</td>');
656
- if (prevMonth.getUTCDay() == this.o.weekEnd) {
807
+ if (prevMonth.getUTCDay() === this.o.weekEnd){
657
808
  html.push('</tr>');
658
809
  }
659
810
  prevMonth.setUTCDate(prevMonth.getUTCDate()+1);
660
811
  }
661
812
  this.picker.find('.datepicker-days tbody').empty().append(html.join(''));
662
- var currentYear = this.date && this.date.getUTCFullYear();
663
813
 
664
814
  var months = this.picker.find('.datepicker-months')
665
815
  .find('th:eq(1)')
666
816
  .text(year)
667
817
  .end()
668
818
  .find('span').removeClass('active');
669
- if (currentYear && currentYear == year) {
670
- months.eq(this.date.getUTCMonth()).addClass('active');
671
- }
672
- if (year < startYear || year > endYear) {
819
+
820
+ $.each(this.dates, function(i, d){
821
+ if (d.getUTCFullYear() === year)
822
+ months.eq(d.getUTCMonth()).addClass('active');
823
+ });
824
+
825
+ if (year < startYear || year > endYear){
673
826
  months.addClass('disabled');
674
827
  }
675
- if (year == startYear) {
828
+ if (year === startYear){
676
829
  months.slice(0, startMonth).addClass('disabled');
677
830
  }
678
- if (year == endYear) {
831
+ if (year === endYear){
679
832
  months.slice(endMonth+1).addClass('disabled');
680
833
  }
681
834
 
@@ -687,62 +840,81 @@
687
840
  .end()
688
841
  .find('td');
689
842
  year -= 1;
690
- for (var i = -1; i < 11; i++) {
691
- html += '<span class="year'+(i == -1 ? ' old' : i == 10 ? ' new' : '')+(currentYear == year ? ' active' : '')+(year < startYear || year > endYear ? ' disabled' : '')+'">'+year+'</span>';
843
+ var years = $.map(this.dates, function(d){
844
+ return d.getUTCFullYear();
845
+ }),
846
+ classes;
847
+ for (var i = -1; i < 11; i++){
848
+ classes = ['year'];
849
+ if (i === -1)
850
+ classes.push('old');
851
+ else if (i === 10)
852
+ classes.push('new');
853
+ if ($.inArray(year, years) !== -1)
854
+ classes.push('active');
855
+ if (year < startYear || year > endYear)
856
+ classes.push('disabled');
857
+ html += '<span class="' + classes.join(' ') + '">'+year+'</span>';
692
858
  year += 1;
693
859
  }
694
860
  yearCont.html(html);
695
861
  },
696
862
 
697
- updateNavArrows: function() {
698
- if (!this._allow_update) return;
863
+ updateNavArrows: function(){
864
+ if (!this._allow_update)
865
+ return;
699
866
 
700
867
  var d = new Date(this.viewDate),
701
868
  year = d.getUTCFullYear(),
702
869
  month = d.getUTCMonth();
703
- switch (this.viewMode) {
870
+ switch (this.viewMode){
704
871
  case 0:
705
- if (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()) {
872
+ if (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){
706
873
  this.picker.find('.prev').css({visibility: 'hidden'});
707
- } else {
874
+ }
875
+ else {
708
876
  this.picker.find('.prev').css({visibility: 'visible'});
709
877
  }
710
- if (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()) {
878
+ if (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){
711
879
  this.picker.find('.next').css({visibility: 'hidden'});
712
- } else {
880
+ }
881
+ else {
713
882
  this.picker.find('.next').css({visibility: 'visible'});
714
883
  }
715
884
  break;
716
885
  case 1:
717
886
  case 2:
718
- if (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear()) {
887
+ if (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear()){
719
888
  this.picker.find('.prev').css({visibility: 'hidden'});
720
- } else {
889
+ }
890
+ else {
721
891
  this.picker.find('.prev').css({visibility: 'visible'});
722
892
  }
723
- if (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear()) {
893
+ if (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear()){
724
894
  this.picker.find('.next').css({visibility: 'hidden'});
725
- } else {
895
+ }
896
+ else {
726
897
  this.picker.find('.next').css({visibility: 'visible'});
727
898
  }
728
899
  break;
729
900
  }
730
901
  },
731
902
 
732
- click: function(e) {
903
+ click: function(e){
733
904
  e.preventDefault();
734
- var target = $(e.target).closest('span, td, th');
735
- if (target.length == 1) {
736
- switch(target[0].nodeName.toLowerCase()) {
905
+ var target = $(e.target).closest('span, td, th'),
906
+ year, month, day;
907
+ if (target.length === 1){
908
+ switch (target[0].nodeName.toLowerCase()){
737
909
  case 'th':
738
- switch(target[0].className) {
910
+ switch (target[0].className){
739
911
  case 'datepicker-switch':
740
912
  this.showMode(1);
741
913
  break;
742
914
  case 'prev':
743
915
  case 'next':
744
- var dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className == 'prev' ? -1 : 1);
745
- switch(this.viewMode){
916
+ var dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1);
917
+ switch (this.viewMode){
746
918
  case 0:
747
919
  this.viewDate = this.moveMonth(this.viewDate, dir);
748
920
  this._trigger('changeMonth', this.viewDate);
@@ -761,7 +933,7 @@
761
933
  date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
762
934
 
763
935
  this.showMode(-2);
764
- var which = this.o.todayBtn == 'linked' ? null : 'view';
936
+ var which = this.o.todayBtn === 'linked' ? null : 'view';
765
937
  this._setDate(date, which);
766
938
  break;
767
939
  case 'clear':
@@ -772,33 +944,34 @@
772
944
  element = this.element.find('input');
773
945
  if (element)
774
946
  element.val("").change();
775
- this._trigger('changeDate');
776
947
  this.update();
948
+ this._trigger('changeDate');
777
949
  if (this.o.autoclose)
778
950
  this.hide();
779
951
  break;
780
952
  }
781
953
  break;
782
954
  case 'span':
783
- if (!target.is('.disabled')) {
955
+ if (!target.is('.disabled')){
784
956
  this.viewDate.setUTCDate(1);
785
- if (target.is('.month')) {
786
- var day = 1;
787
- var month = target.parent().find('span').index(target);
788
- var year = this.viewDate.getUTCFullYear();
957
+ if (target.is('.month')){
958
+ day = 1;
959
+ month = target.parent().find('span').index(target);
960
+ year = this.viewDate.getUTCFullYear();
789
961
  this.viewDate.setUTCMonth(month);
790
962
  this._trigger('changeMonth', this.viewDate);
791
- if (this.o.minViewMode === 1) {
792
- this._setDate(UTCDate(year, month, day,0,0,0,0));
963
+ if (this.o.minViewMode === 1){
964
+ this._setDate(UTCDate(year, month, day));
793
965
  }
794
- } else {
795
- var year = parseInt(target.text(), 10)||0;
796
- var day = 1;
797
- var month = 0;
966
+ }
967
+ else {
968
+ day = 1;
969
+ month = 0;
970
+ year = parseInt(target.text(), 10)||0;
798
971
  this.viewDate.setUTCFullYear(year);
799
972
  this._trigger('changeYear', this.viewDate);
800
- if (this.o.minViewMode === 2) {
801
- this._setDate(UTCDate(year, month, day,0,0,0,0));
973
+ if (this.o.minViewMode === 2){
974
+ this._setDate(UTCDate(year, month, day));
802
975
  }
803
976
  }
804
977
  this.showMode(-1);
@@ -807,83 +980,118 @@
807
980
  break;
808
981
  case 'td':
809
982
  if (target.is('.day') && !target.is('.disabled')){
810
- var day = parseInt(target.text(), 10)||1;
811
- var year = this.viewDate.getUTCFullYear(),
812
- month = this.viewDate.getUTCMonth();
813
- if (target.is('.old')) {
814
- if (month === 0) {
983
+ day = parseInt(target.text(), 10)||1;
984
+ year = this.viewDate.getUTCFullYear();
985
+ month = this.viewDate.getUTCMonth();
986
+ if (target.is('.old')){
987
+ if (month === 0){
815
988
  month = 11;
816
989
  year -= 1;
817
- } else {
990
+ }
991
+ else {
818
992
  month -= 1;
819
993
  }
820
- } else if (target.is('.new')) {
821
- if (month == 11) {
994
+ }
995
+ else if (target.is('.new')){
996
+ if (month === 11){
822
997
  month = 0;
823
998
  year += 1;
824
- } else {
999
+ }
1000
+ else {
825
1001
  month += 1;
826
1002
  }
827
1003
  }
828
- this._setDate(UTCDate(year, month, day,0,0,0,0));
1004
+ this._setDate(UTCDate(year, month, day));
829
1005
  }
830
1006
  break;
831
1007
  }
832
1008
  }
1009
+ if (this.picker.is(':visible') && this._focused_from){
1010
+ $(this._focused_from).focus();
1011
+ }
1012
+ delete this._focused_from;
1013
+ },
1014
+
1015
+ _toggle_multidate: function(date){
1016
+ var ix = this.dates.contains(date);
1017
+ if (!date){
1018
+ this.dates.clear();
1019
+ }
1020
+ else if (ix !== -1){
1021
+ this.dates.remove(ix);
1022
+ }
1023
+ else {
1024
+ this.dates.push(date);
1025
+ }
1026
+ if (typeof this.o.multidate === 'number')
1027
+ while (this.dates.length > this.o.multidate)
1028
+ this.dates.remove(0);
833
1029
  },
834
1030
 
835
1031
  _setDate: function(date, which){
836
- if (!which || which == 'date')
837
- this.date = new Date(date);
838
- if (!which || which == 'view')
839
- this.viewDate = new Date(date);
1032
+ if (!which || which === 'date')
1033
+ this._toggle_multidate(date && new Date(date));
1034
+ if (!which || which === 'view')
1035
+ this.viewDate = date && new Date(date);
1036
+
840
1037
  this.fill();
841
1038
  this.setValue();
842
1039
  this._trigger('changeDate');
843
1040
  var element;
844
- if (this.isInput) {
1041
+ if (this.isInput){
845
1042
  element = this.element;
846
- } else if (this.component){
1043
+ }
1044
+ else if (this.component){
847
1045
  element = this.element.find('input');
848
1046
  }
849
- if (element) {
1047
+ if (element){
850
1048
  element.change();
851
1049
  }
852
- if (this.o.autoclose && (!which || which == 'date')) {
1050
+ if (this.o.autoclose && (!which || which === 'date')){
853
1051
  this.hide();
854
1052
  }
855
1053
  },
856
1054
 
857
1055
  moveMonth: function(date, dir){
858
- if (!dir) return date;
1056
+ if (!date)
1057
+ return undefined;
1058
+ if (!dir)
1059
+ return date;
859
1060
  var new_date = new Date(date.valueOf()),
860
1061
  day = new_date.getUTCDate(),
861
1062
  month = new_date.getUTCMonth(),
862
1063
  mag = Math.abs(dir),
863
1064
  new_month, test;
864
1065
  dir = dir > 0 ? 1 : -1;
865
- if (mag == 1){
866
- test = dir == -1
1066
+ if (mag === 1){
1067
+ test = dir === -1
867
1068
  // If going back one month, make sure month is not current month
868
1069
  // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)
869
- ? function(){ return new_date.getUTCMonth() == month; }
1070
+ ? function(){
1071
+ return new_date.getUTCMonth() === month;
1072
+ }
870
1073
  // If going forward one month, make sure month is as expected
871
1074
  // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)
872
- : function(){ return new_date.getUTCMonth() != new_month; };
1075
+ : function(){
1076
+ return new_date.getUTCMonth() !== new_month;
1077
+ };
873
1078
  new_month = month + dir;
874
1079
  new_date.setUTCMonth(new_month);
875
1080
  // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11
876
1081
  if (new_month < 0 || new_month > 11)
877
1082
  new_month = (new_month + 12) % 12;
878
- } else {
1083
+ }
1084
+ else {
879
1085
  // For magnitudes >1, move one month at a time...
880
- for (var i=0; i<mag; i++)
1086
+ for (var i=0; i < mag; i++)
881
1087
  // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...
882
1088
  new_date = this.moveMonth(new_date, dir);
883
1089
  // ...then reset the day, keeping it in the new month
884
1090
  new_month = new_date.getUTCMonth();
885
1091
  new_date.setUTCDate(day);
886
- test = function(){ return new_month != new_date.getUTCMonth(); };
1092
+ test = function(){
1093
+ return new_month !== new_date.getUTCMonth();
1094
+ };
887
1095
  }
888
1096
  // Common date-resetting loop -- if date is beyond end of month, make it
889
1097
  // end of month
@@ -904,156 +1112,202 @@
904
1112
 
905
1113
  keydown: function(e){
906
1114
  if (this.picker.is(':not(:visible)')){
907
- if (e.keyCode == 27) // allow escape to hide and re-show picker
1115
+ if (e.keyCode === 27) // allow escape to hide and re-show picker
908
1116
  this.show();
909
1117
  return;
910
1118
  }
911
1119
  var dateChanged = false,
912
- dir, day, month,
913
- newDate, newViewDate;
914
- switch(e.keyCode){
1120
+ dir, newDate, newViewDate,
1121
+ focusDate = this.focusDate || this.viewDate;
1122
+ switch (e.keyCode){
915
1123
  case 27: // escape
916
- this.hide();
1124
+ if (this.focusDate){
1125
+ this.focusDate = null;
1126
+ this.viewDate = this.dates.get(-1) || this.viewDate;
1127
+ this.fill();
1128
+ }
1129
+ else
1130
+ this.hide();
917
1131
  e.preventDefault();
918
1132
  break;
919
1133
  case 37: // left
920
1134
  case 39: // right
921
- if (!this.o.keyboardNavigation) break;
922
- dir = e.keyCode == 37 ? -1 : 1;
1135
+ if (!this.o.keyboardNavigation)
1136
+ break;
1137
+ dir = e.keyCode === 37 ? -1 : 1;
923
1138
  if (e.ctrlKey){
924
- newDate = this.moveYear(this.date, dir);
925
- newViewDate = this.moveYear(this.viewDate, dir);
1139
+ newDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);
1140
+ newViewDate = this.moveYear(focusDate, dir);
926
1141
  this._trigger('changeYear', this.viewDate);
927
- } else if (e.shiftKey){
928
- newDate = this.moveMonth(this.date, dir);
929
- newViewDate = this.moveMonth(this.viewDate, dir);
1142
+ }
1143
+ else if (e.shiftKey){
1144
+ newDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);
1145
+ newViewDate = this.moveMonth(focusDate, dir);
930
1146
  this._trigger('changeMonth', this.viewDate);
931
- } else {
932
- newDate = new Date(this.date);
933
- newDate.setUTCDate(this.date.getUTCDate() + dir);
934
- newViewDate = new Date(this.viewDate);
935
- newViewDate.setUTCDate(this.viewDate.getUTCDate() + dir);
1147
+ }
1148
+ else {
1149
+ newDate = new Date(this.dates.get(-1) || UTCToday());
1150
+ newDate.setUTCDate(newDate.getUTCDate() + dir);
1151
+ newViewDate = new Date(focusDate);
1152
+ newViewDate.setUTCDate(focusDate.getUTCDate() + dir);
936
1153
  }
937
1154
  if (this.dateWithinRange(newDate)){
938
- this.date = newDate;
939
- this.viewDate = newViewDate;
1155
+ this.focusDate = this.viewDate = newViewDate;
940
1156
  this.setValue();
941
- this.update();
1157
+ this.fill();
942
1158
  e.preventDefault();
943
- dateChanged = true;
944
1159
  }
945
1160
  break;
946
1161
  case 38: // up
947
1162
  case 40: // down
948
- if (!this.o.keyboardNavigation) break;
949
- dir = e.keyCode == 38 ? -1 : 1;
1163
+ if (!this.o.keyboardNavigation)
1164
+ break;
1165
+ dir = e.keyCode === 38 ? -1 : 1;
950
1166
  if (e.ctrlKey){
951
- newDate = this.moveYear(this.date, dir);
952
- newViewDate = this.moveYear(this.viewDate, dir);
1167
+ newDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);
1168
+ newViewDate = this.moveYear(focusDate, dir);
953
1169
  this._trigger('changeYear', this.viewDate);
954
- } else if (e.shiftKey){
955
- newDate = this.moveMonth(this.date, dir);
956
- newViewDate = this.moveMonth(this.viewDate, dir);
1170
+ }
1171
+ else if (e.shiftKey){
1172
+ newDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);
1173
+ newViewDate = this.moveMonth(focusDate, dir);
957
1174
  this._trigger('changeMonth', this.viewDate);
958
- } else {
959
- newDate = new Date(this.date);
960
- newDate.setUTCDate(this.date.getUTCDate() + dir * 7);
961
- newViewDate = new Date(this.viewDate);
962
- newViewDate.setUTCDate(this.viewDate.getUTCDate() + dir * 7);
1175
+ }
1176
+ else {
1177
+ newDate = new Date(this.dates.get(-1) || UTCToday());
1178
+ newDate.setUTCDate(newDate.getUTCDate() + dir * 7);
1179
+ newViewDate = new Date(focusDate);
1180
+ newViewDate.setUTCDate(focusDate.getUTCDate() + dir * 7);
963
1181
  }
964
1182
  if (this.dateWithinRange(newDate)){
965
- this.date = newDate;
966
- this.viewDate = newViewDate;
1183
+ this.focusDate = this.viewDate = newViewDate;
967
1184
  this.setValue();
968
- this.update();
1185
+ this.fill();
969
1186
  e.preventDefault();
970
- dateChanged = true;
971
1187
  }
972
1188
  break;
1189
+ case 32: // spacebar
1190
+ // Spacebar is used in manually typing dates in some formats.
1191
+ // As such, its behavior should not be hijacked.
1192
+ break;
973
1193
  case 13: // enter
974
- this.hide();
975
- e.preventDefault();
1194
+ focusDate = this.focusDate || this.dates.get(-1) || this.viewDate;
1195
+ this._toggle_multidate(focusDate);
1196
+ dateChanged = true;
1197
+ this.focusDate = null;
1198
+ this.viewDate = this.dates.get(-1) || this.viewDate;
1199
+ this.setValue();
1200
+ this.fill();
1201
+ if (this.picker.is(':visible')){
1202
+ e.preventDefault();
1203
+ if (this.o.autoclose)
1204
+ this.hide();
1205
+ }
976
1206
  break;
977
1207
  case 9: // tab
1208
+ this.focusDate = null;
1209
+ this.viewDate = this.dates.get(-1) || this.viewDate;
1210
+ this.fill();
978
1211
  this.hide();
979
1212
  break;
980
1213
  }
981
1214
  if (dateChanged){
982
- this._trigger('changeDate');
1215
+ if (this.dates.length)
1216
+ this._trigger('changeDate');
1217
+ else
1218
+ this._trigger('clearDate');
983
1219
  var element;
984
- if (this.isInput) {
1220
+ if (this.isInput){
985
1221
  element = this.element;
986
- } else if (this.component){
1222
+ }
1223
+ else if (this.component){
987
1224
  element = this.element.find('input');
988
1225
  }
989
- if (element) {
1226
+ if (element){
990
1227
  element.change();
991
1228
  }
992
1229
  }
993
1230
  },
994
1231
 
995
- showMode: function(dir) {
996
- if (dir) {
1232
+ showMode: function(dir){
1233
+ if (dir){
997
1234
  this.viewMode = Math.max(this.o.minViewMode, Math.min(2, this.viewMode + dir));
998
1235
  }
999
- /*
1000
- vitalets: fixing bug of very special conditions:
1001
- jquery 1.7.1 + webkit + show inline datepicker in bootstrap popover.
1002
- Method show() does not set display css correctly and datepicker is not shown.
1003
- Changed to .css('display', 'block') solve the problem.
1004
- See https://github.com/vitalets/x-editable/issues/37
1005
-
1006
- In jquery 1.7.2+ everything works fine.
1007
- */
1008
- //this.picker.find('>div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).show();
1009
- this.picker.find('>div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).css('display', 'block');
1236
+ this.picker
1237
+ .find('>div')
1238
+ .hide()
1239
+ .filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName)
1240
+ .css('display', 'block');
1010
1241
  this.updateNavArrows();
1011
1242
  }
1012
1243
  };
1013
1244
 
1014
1245
  var DateRangePicker = function(element, options){
1015
1246
  this.element = $(element);
1016
- this.inputs = $.map(options.inputs, function(i){ return i.jquery ? i[0] : i; });
1247
+ this.inputs = $.map(options.inputs, function(i){
1248
+ return i.jquery ? i[0] : i;
1249
+ });
1017
1250
  delete options.inputs;
1018
1251
 
1019
1252
  $(this.inputs)
1020
1253
  .datepicker(options)
1021
1254
  .bind('changeDate', $.proxy(this.dateUpdated, this));
1022
1255
 
1023
- this.pickers = $.map(this.inputs, function(i){ return $(i).data('datepicker'); });
1256
+ this.pickers = $.map(this.inputs, function(i){
1257
+ return $(i).data('datepicker');
1258
+ });
1024
1259
  this.updateDates();
1025
1260
  };
1026
1261
  DateRangePicker.prototype = {
1027
1262
  updateDates: function(){
1028
- this.dates = $.map(this.pickers, function(i){ return i.date; });
1263
+ this.dates = $.map(this.pickers, function(i){
1264
+ return i.getUTCDate();
1265
+ });
1029
1266
  this.updateRanges();
1030
1267
  },
1031
1268
  updateRanges: function(){
1032
- var range = $.map(this.dates, function(d){ return d.valueOf(); });
1269
+ var range = $.map(this.dates, function(d){
1270
+ return d.valueOf();
1271
+ });
1033
1272
  $.each(this.pickers, function(i, p){
1034
1273
  p.setRange(range);
1035
1274
  });
1036
1275
  },
1037
1276
  dateUpdated: function(e){
1277
+ // `this.updating` is a workaround for preventing infinite recursion
1278
+ // between `changeDate` triggering and `setUTCDate` calling. Until
1279
+ // there is a better mechanism.
1280
+ if (this.updating)
1281
+ return;
1282
+ this.updating = true;
1283
+
1038
1284
  var dp = $(e.target).data('datepicker'),
1039
1285
  new_date = dp.getUTCDate(),
1040
1286
  i = $.inArray(e.target, this.inputs),
1041
1287
  l = this.inputs.length;
1042
- if (i == -1) return;
1288
+ if (i === -1)
1289
+ return;
1290
+
1291
+ $.each(this.pickers, function(i, p){
1292
+ if (!p.getUTCDate())
1293
+ p.setUTCDate(new_date);
1294
+ });
1043
1295
 
1044
1296
  if (new_date < this.dates[i]){
1045
1297
  // Date being moved earlier/left
1046
- while (i>=0 && new_date < this.dates[i]){
1298
+ while (i >= 0 && new_date < this.dates[i]){
1047
1299
  this.pickers[i--].setUTCDate(new_date);
1048
1300
  }
1049
1301
  }
1050
1302
  else if (new_date > this.dates[i]){
1051
1303
  // Date being moved later/right
1052
- while (i<l && new_date > this.dates[i]){
1304
+ while (i < l && new_date > this.dates[i]){
1053
1305
  this.pickers[i++].setUTCDate(new_date);
1054
1306
  }
1055
1307
  }
1056
1308
  this.updateDates();
1309
+
1310
+ delete this.updating;
1057
1311
  },
1058
1312
  remove: function(){
1059
1313
  $.map(this.pickers, function(p){ p.remove(); });
@@ -1065,11 +1319,14 @@
1065
1319
  // Derive options from element data-attrs
1066
1320
  var data = $(el).data(),
1067
1321
  out = {}, inkey,
1068
- replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])'),
1069
- prefix = new RegExp('^' + prefix.toLowerCase());
1322
+ replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');
1323
+ prefix = new RegExp('^' + prefix.toLowerCase());
1324
+ function re_lower(_,a){
1325
+ return a.toLowerCase();
1326
+ }
1070
1327
  for (var key in data)
1071
1328
  if (prefix.test(key)){
1072
- inkey = key.replace(replace, function(_,a){ return a.toLowerCase(); });
1329
+ inkey = key.replace(replace, re_lower);
1073
1330
  out[inkey] = data[key];
1074
1331
  }
1075
1332
  return out;
@@ -1080,8 +1337,8 @@
1080
1337
  var out = {};
1081
1338
  // Check if "de-DE" style date is available, if not language should
1082
1339
  // fallback to 2 letter code eg "de"
1083
- if (!dates[lang]) {
1084
- lang = lang.split('-')[0]
1340
+ if (!dates[lang]){
1341
+ lang = lang.split('-')[0];
1085
1342
  if (!dates[lang])
1086
1343
  return;
1087
1344
  }
@@ -1094,16 +1351,15 @@
1094
1351
  }
1095
1352
 
1096
1353
  var old = $.fn.datepicker;
1097
- $.fn.datepicker = function ( option ) {
1354
+ $.fn.datepicker = function(option){
1098
1355
  var args = Array.apply(null, arguments);
1099
1356
  args.shift();
1100
- var internal_return,
1101
- this_return;
1102
- this.each(function () {
1357
+ var internal_return;
1358
+ this.each(function(){
1103
1359
  var $this = $(this),
1104
1360
  data = $this.data('datepicker'),
1105
- options = typeof option == 'object' && option;
1106
- if (!data) {
1361
+ options = typeof option === 'object' && option;
1362
+ if (!data){
1107
1363
  var elopts = opts_from_el(this, 'date'),
1108
1364
  // Preliminary otions
1109
1365
  xopts = $.extend({}, defaults, elopts, options),
@@ -1116,11 +1372,11 @@
1116
1372
  };
1117
1373
  $this.data('datepicker', (data = new DateRangePicker(this, $.extend(opts, ropts))));
1118
1374
  }
1119
- else{
1375
+ else {
1120
1376
  $this.data('datepicker', (data = new Datepicker(this, opts)));
1121
1377
  }
1122
1378
  }
1123
- if (typeof option == 'string' && typeof data[option] == 'function') {
1379
+ if (typeof option === 'string' && typeof data[option] === 'function'){
1124
1380
  internal_return = data[option].apply(data, args);
1125
1381
  if (internal_return !== undefined)
1126
1382
  return false;
@@ -1144,6 +1400,8 @@
1144
1400
  keyboardNavigation: true,
1145
1401
  language: 'en',
1146
1402
  minViewMode: 0,
1403
+ multidate: false,
1404
+ multidateSeparator: ',',
1147
1405
  orientation: "auto",
1148
1406
  rtl: false,
1149
1407
  startDate: -Infinity,
@@ -1187,10 +1445,10 @@
1187
1445
  navFnc: 'FullYear',
1188
1446
  navStep: 10
1189
1447
  }],
1190
- isLeapYear: function (year) {
1448
+ isLeapYear: function(year){
1191
1449
  return (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));
1192
1450
  },
1193
- getDaysInMonth: function (year, month) {
1451
+ getDaysInMonth: function(year, month){
1194
1452
  return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
1195
1453
  },
1196
1454
  validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
@@ -1205,19 +1463,22 @@
1205
1463
  }
1206
1464
  return {separators: separators, parts: parts};
1207
1465
  },
1208
- parseDate: function(date, format, language) {
1209
- if (date instanceof Date) return date;
1466
+ parseDate: function(date, format, language){
1467
+ if (!date)
1468
+ return undefined;
1469
+ if (date instanceof Date)
1470
+ return date;
1210
1471
  if (typeof format === 'string')
1211
1472
  format = DPGlobal.parseFormat(format);
1212
- if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)) {
1213
- var part_re = /([\-+]\d+)([dmwy])/,
1214
- parts = date.match(/([\-+]\d+)([dmwy])/g),
1215
- part, dir;
1473
+ var part_re = /([\-+]\d+)([dmwy])/,
1474
+ parts = date.match(/([\-+]\d+)([dmwy])/g),
1475
+ part, dir, i;
1476
+ if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)){
1216
1477
  date = new Date();
1217
- for (var i=0; i<parts.length; i++) {
1478
+ for (i=0; i < parts.length; i++){
1218
1479
  part = part_re.exec(parts[i]);
1219
1480
  dir = parseInt(part[1]);
1220
- switch(part[2]){
1481
+ switch (part[2]){
1221
1482
  case 'd':
1222
1483
  date.setUTCDate(date.getUTCDate() + dir);
1223
1484
  break;
@@ -1234,65 +1495,70 @@
1234
1495
  }
1235
1496
  return UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0);
1236
1497
  }
1237
- var parts = date && date.match(this.nonpunctuation) || [],
1238
- date = new Date(),
1239
- parsed = {},
1498
+ parts = date && date.match(this.nonpunctuation) || [];
1499
+ date = new Date();
1500
+ var parsed = {},
1240
1501
  setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],
1241
1502
  setters_map = {
1242
- yyyy: function(d,v){ return d.setUTCFullYear(v); },
1243
- yy: function(d,v){ return d.setUTCFullYear(2000+v); },
1503
+ yyyy: function(d,v){
1504
+ return d.setUTCFullYear(v);
1505
+ },
1506
+ yy: function(d,v){
1507
+ return d.setUTCFullYear(2000+v);
1508
+ },
1244
1509
  m: function(d,v){
1245
1510
  if (isNaN(d))
1246
1511
  return d;
1247
1512
  v -= 1;
1248
- while (v<0) v += 12;
1513
+ while (v < 0) v += 12;
1249
1514
  v %= 12;
1250
1515
  d.setUTCMonth(v);
1251
- while (d.getUTCMonth() != v)
1516
+ while (d.getUTCMonth() !== v)
1252
1517
  d.setUTCDate(d.getUTCDate()-1);
1253
1518
  return d;
1254
1519
  },
1255
- d: function(d,v){ return d.setUTCDate(v); }
1520
+ d: function(d,v){
1521
+ return d.setUTCDate(v);
1522
+ }
1256
1523
  },
1257
- val, filtered, part;
1524
+ val, filtered;
1258
1525
  setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];
1259
1526
  setters_map['dd'] = setters_map['d'];
1260
1527
  date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
1261
1528
  var fparts = format.parts.slice();
1262
1529
  // Remove noop parts
1263
- if (parts.length != fparts.length) {
1530
+ if (parts.length !== fparts.length){
1264
1531
  fparts = $(fparts).filter(function(i,p){
1265
1532
  return $.inArray(p, setters_order) !== -1;
1266
1533
  }).toArray();
1267
1534
  }
1268
1535
  // Process remainder
1269
- if (parts.length == fparts.length) {
1270
- for (var i=0, cnt = fparts.length; i < cnt; i++) {
1536
+ function match_part(){
1537
+ var m = this.slice(0, parts[i].length),
1538
+ p = parts[i].slice(0, m.length);
1539
+ return m === p;
1540
+ }
1541
+ if (parts.length === fparts.length){
1542
+ var cnt;
1543
+ for (i=0, cnt = fparts.length; i < cnt; i++){
1271
1544
  val = parseInt(parts[i], 10);
1272
1545
  part = fparts[i];
1273
- if (isNaN(val)) {
1274
- switch(part) {
1546
+ if (isNaN(val)){
1547
+ switch (part){
1275
1548
  case 'MM':
1276
- filtered = $(dates[language].months).filter(function(){
1277
- var m = this.slice(0, parts[i].length),
1278
- p = parts[i].slice(0, m.length);
1279
- return m == p;
1280
- });
1549
+ filtered = $(dates[language].months).filter(match_part);
1281
1550
  val = $.inArray(filtered[0], dates[language].months) + 1;
1282
1551
  break;
1283
1552
  case 'M':
1284
- filtered = $(dates[language].monthsShort).filter(function(){
1285
- var m = this.slice(0, parts[i].length),
1286
- p = parts[i].slice(0, m.length);
1287
- return m == p;
1288
- });
1553
+ filtered = $(dates[language].monthsShort).filter(match_part);
1289
1554
  val = $.inArray(filtered[0], dates[language].monthsShort) + 1;
1290
1555
  break;
1291
1556
  }
1292
1557
  }
1293
1558
  parsed[part] = val;
1294
1559
  }
1295
- for (var i=0, _date, s; i<setters_order.length; i++){
1560
+ var _date, s;
1561
+ for (i=0; i < setters_order.length; i++){
1296
1562
  s = setters_order[i];
1297
1563
  if (s in parsed && !isNaN(parsed[s])){
1298
1564
  _date = new Date(date);
@@ -1305,6 +1571,8 @@
1305
1571
  return date;
1306
1572
  },
1307
1573
  formatDate: function(date, format, language){
1574
+ if (!date)
1575
+ return '';
1308
1576
  if (typeof format === 'string')
1309
1577
  format = DPGlobal.parseFormat(format);
1310
1578
  var val = {
@@ -1319,9 +1587,9 @@
1319
1587
  };
1320
1588
  val.dd = (val.d < 10 ? '0' : '') + val.d;
1321
1589
  val.mm = (val.m < 10 ? '0' : '') + val.m;
1322
- var date = [],
1323
- seps = $.extend([], format.separators);
1324
- for (var i=0, cnt = format.parts.length; i <= cnt; i++) {
1590
+ date = [];
1591
+ var seps = $.extend([], format.separators);
1592
+ for (var i=0, cnt = format.parts.length; i <= cnt; i++){
1325
1593
  if (seps.length)
1326
1594
  date.push(seps.shift());
1327
1595
  date.push(val[format.parts[i]]);
@@ -1336,7 +1604,14 @@
1336
1604
  '</tr>'+
1337
1605
  '</thead>',
1338
1606
  contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
1339
- footTemplate: '<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'
1607
+ footTemplate: '<tfoot>'+
1608
+ '<tr>'+
1609
+ '<th colspan="7" class="today"></th>'+
1610
+ '</tr>'+
1611
+ '<tr>'+
1612
+ '<th colspan="7" class="clear"></th>'+
1613
+ '</tr>'+
1614
+ '</tfoot>'
1340
1615
  };
1341
1616
  DPGlobal.template = '<div class="datepicker">'+
1342
1617
  '<div class="datepicker-days">'+
@@ -1382,7 +1657,8 @@
1382
1657
  '[data-provide="datepicker"]',
1383
1658
  function(e){
1384
1659
  var $this = $(this);
1385
- if ($this.data('datepicker')) return;
1660
+ if ($this.data('datepicker'))
1661
+ return;
1386
1662
  e.preventDefault();
1387
1663
  // component click requires us to explicitly show it
1388
1664
  $this.datepicker('show');
@@ -1392,4 +1668,4 @@
1392
1668
  $('[data-provide="datepicker-inline"]').datepicker();
1393
1669
  });
1394
1670
 
1395
- }( window.jQuery ));
1671
+ }(window.jQuery));